/* Metro module 16216; source: modules/reply_nudge/ReplyNudgeManager.tsx; dependencies: [57, 5, 6, 7, 15, 17, 18, 5221, 1226, 5078, 4605, 3793, 5219, 5220, 5223, 661, 3, 3829, 3834, 21, 672, 5224, 1910, 12151, 683, 4860, 2] */ function _fun125309(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#125309, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:6, offset: 0x025d4558, size: 527 bytes, params: 8, frame: 19 const env0_0 = require; const _arrayLikeToArray_125312 = function(a0, a1) { var r0; var r1; var r2; var value3; var length; var value5; var value = undefined; var value2 = value == null; reducibleJoin2: while (true) { if (value2) { r0 = value2; break reducibleJoin2; } value3 = value > a0.length; r0 = value3; break reducibleJoin2; } reducibleJoin4: while (true) { if (r0) { length = a0.length; r1 = length; break reducibleJoin4; } r1 = value; break reducibleJoin4; } value = (0, global.Array)(r1); var value4 = 0; if (value4 < r1) { r2 = value4; reducibleLoop5: while (true) { value[r2] = a0[r2]; value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; if (value5 < r1) { r2 = value5; continue reducibleLoop5; } break reducibleLoop5; } } return value; }; const hasReacted = function({reactions}) { var r1; r1 = reactions?.some(_fun125317); return r1 != null && r1; }; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_3 = importDefault(57) /* metro dependency 57 */; const env0_4 = importDefault(5) /* metro dependency 5 */; const env0_5 = importDefault(6) /* metro dependency 6 */; const env0_6 = importDefault(7) /* metro dependency 7 */; const env0_7 = importDefault(15) /* metro dependency 15 */; const env0_8 = importDefault(17) /* metro dependency 17 */; const env0_9 = importDefault(18) /* metro dependency 18 */; const userAffinitiesV2Store = importDefault(5221) /* metro dependency 5221: UserAffinitiesV2Store */; const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */; const consentStore = importDefault(5078) /* metro dependency 5078: ConsentStore */; const readStateStore = importDefault(4605) /* metro dependency 4605: ReadStateStore */; const relationshipStore = importDefault(3793) /* metro dependency 3793: RelationshipStore */; const privateChannelSortStore = importDefault(5219) /* metro dependency 5219: PrivateChannelSortStore */; const replyNudgeStore = importDefault(5220) /* metro dependency 5220: ReplyNudgeStore */; let value = require(5223) /* metro dependency 5223: ReplyNudgeConstants */; const env0_17 = value.MAX_LATEST_MESSAGE_AGE_MS; const env0_18 = value.MESSAGE_LOOKBEHIND_COUNT; value = require(661) /* metro dependency 661: Constants */; const env0_19 = value.AnalyticEvents; const env0_20 = value.Consents; const env0_21 = value.MessageTypesSets; value = importDefault(3) /* metro dependency 3: Logger */; value = new value('ReplyNudgeManager'); value = importDefault(4860) /* metro dependency 4860: AutomaticLifecycleManager */; value = _fun125318(value); let value4 = new value(); (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/reply_nudge/ReplyNudgeManager.tsx'); exports.default = value4; exports.ReplyNudgeManager = value; } function _createForOfIteratorHelperLoose_125310(a0, a1) { // fn#125310, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:395, offset: 0x025d4767, size: 372 bytes, params: 3, frame: 20 var r6; var r9; var r5; var value3; var regexp; const env0_0 = a0; const Symbol = global.Symbol; let value = typeof Symbol !== 'undefined'; let r1 = value && a0[global.Symbol.iterator]; r1 = !r1 ? a0['@@iterator'] : r1; if (r1) { value = r1.call(a0); return value.next.bind(value); } const Array = global.Array; if (Array.isArray(a0)) { if (r1) { } return _fun125311; } value = undefined; if (a0) { if (typeof a0 === 'string') { value = _arrayLikeToArray_125312(a0, value); r5 = value; } else { value3 = ({}).toString.call(a0).slice(8, -1); r6 = value3 === 'Object' && a0.constructor; r9 = r6 ? a0.constructor.name : value3; if (r9 === 'Map') { r6 = global.Array.from(a0); } else if (r9 === 'Set') { r6 = global.Array.from(a0); } else if (r9 === 'Arguments') { value = _arrayLikeToArray_125312(a0, value); r6 = value; } else { regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', ''); if (regexp.test(r9)) { value = _arrayLikeToArray_125312(a0, value); r6 = value; } else { r6 = value; } } r5 = r6; } } else { r5 = value; } if (r5) { if (r5) { } return _fun125311; } const TypeError = global.TypeError; throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'); } function _isNativeReflectConstruct_125313() { // fn#125313, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:1305, offset: 0x025d48db, size: 98 bytes, params: 1, frame: 18 var Boolean; var prototype; var valueOf; var call; var Reflect; var construct; var closure; var value; var error; try { Boolean = global.Boolean; prototype = Boolean.prototype; valueOf = prototype.valueOf; call = valueOf.call; Reflect = global.Reflect; construct = Reflect.construct; Boolean = global.Boolean; closure = function() { }; value = Reflect.apply(construct, Reflect, [Boolean, [], closure]); value = Reflect.apply(call, valueOf, [value]); var result = !value; } catch (error) { } return (_isNativeReflectConstruct_125313_isNativeReflectConstruct = function() { return !!result; })(); } function hasReacted({reactions}) { // fn#125316, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:1540, offset: 0x025d493d, size: 52 bytes, params: 2, frame: 13 const r1 = reactions?.some(function(a0) { return a0.me || a0.me_burst; }); return r1 != null && r1; } function _fun125318(a0) { // fn#125318, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:1656, offset: 0x025d4985, size: 282 bytes, params: 2, frame: 17 const closure = ReplyNudgeManager; env0_9(closure, a0); const binding = env0_6; const items2 = [{key: '_terminate', value: function() { global.clearInterval(this.updateInterval); this.updateInterval = null; }}]; items2[1] = {key: 'handlePostConnectionOpen', value: value_125322}; const binding2 = env0_4; const env0_2 = binding2(_fun125325); items2[2] = {key: 'updateReplyNudges', value: value_125327}; const env0_1 = binding2(_fun125329); items2[3] = {key: 'nudgeChannel', value: value_125330}; const env0_0 = binding2(_fun125332); items2[4] = {key: 'fetchLookbehindMessages', value: value_125335}; items2[5] = {key: 'processMostRecentDMs', value: value_125336}; items2[6] = {key: 'trackNudgesCreated', value: value_125341}; return binding(closure, items2); } function ReplyNudgeManager(a0) { // fn#125319, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:1668, offset: 0x025d4a9f, size: 194 bytes, params: 2, frame: 20 var r0; var Reflect; let value = copyRestArgs(0, undefined); let binding = env1_5; binding(this, ReplyNudgeManager); const items = []; arraySpread(items, value, 0, items); value = env1_8(ReplyNudgeManager); binding = env1_7; if (_isNativeReflectConstruct_125313()) { Reflect = global.Reflect; value = Reflect.construct(value, items, env1_8(this).constructor); r0 = value; } else { value = value.apply(this, items); r0 = value; } value = binding(this, r0); const Set = global.Set; const value4 = Object.create(Set.prototype, {constructor: {value: Set}}); const set = new Set(); value.pendingFetch = set instanceof Object ? set : value4; value.updateInterval = null; value.actions = {POST_CONNECTION_OPEN: POST_CONNECTION_OPEN_125320}; return value; } function value_125322() { // fn#125322, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:2204, offset: 0x025d4b83, size: 109 bytes, params: 1, frame: 16 var environment; global.clearInterval(this.updateInterval); const setInterval = global.setInterval; const value = environment.__proto__; const Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis; const MINUTE = Millis.MINUTE; this.updateInterval = setInterval(_fun125323, 30 * MINUTE); this.updateReplyNudges(); } function* _fun125325() { // fn#125325, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:2407, offset: 0x025d4c10, size: 412 bytes, params: 1, frame: 20 var environment; var r3; var binding2; var MessagePreviewSetting; var value6; var MessagePreviewTypes; var ALL; var value7; var hasConsented; var PERSONALIZATION; var hasConsented2; var ReplyNudgeExperiment; var getConfig; var enabled; var info; var binding3; var property; var value8; var messages; var value9; var value10; var getMostRecents; var value11; var value12; var value13; var value14; var processMostRecentDMs; var map; var closure; var value15; var warn; var error; var error2; if (false) { return undefined; } value = undefined; let value3 = environment.__proto__.__proto__; let binding = env2_0; const EnableDmReplyNudgeReminders = binding(env2_2[17]).EnableDmReplyNudgeReminders; let getSetting = EnableDmReplyNudgeReminders.getSetting; const value5 = Reflect.apply(getSetting, EnableDmReplyNudgeReminders, []) !== false; reducibleJoin3: while (true) { if (value5) { binding = env2_0; binding2 = env2_2; MessagePreviewSetting = binding(binding2[17]).MessagePreviewSetting; getSetting = MessagePreviewSetting.getSetting; value6 = Reflect.apply(getSetting, MessagePreviewSetting, []); MessagePreviewTypes = binding(binding2[18]).MessagePreviewTypes; ALL = MessagePreviewTypes.ALL; value7 = value6 === ALL; r3 = value7; break reducibleJoin3; } r3 = value5; break reducibleJoin3; } reducibleJoin5: while (true) { if (r3) { binding = env2_12; hasConsented = binding.hasConsented; PERSONALIZATION = env2_20.PERSONALIZATION; hasConsented2 = Reflect.apply(hasConsented, binding, [PERSONALIZATION]); r3 = hasConsented2; break reducibleJoin5; } break reducibleJoin5; } reduciblePort40: while (true) { exceptionLanding39: while (true) { if (r3) { binding = env2_0; ReplyNudgeExperiment = binding(env2_2[21]).ReplyNudgeExperiment; getConfig = ReplyNudgeExperiment.getConfig; enabled = Reflect.apply(getConfig, ReplyNudgeExperiment, [{location: 'ReplyNudgeManager._initialize'}]).enabled; if (enabled) { binding = env2_22; info = binding.info; Reflect.apply(info, binding, ['Updating most recent DMs']); try { binding = env2_1; } catch (error) { break exceptionLanding39; } try { binding3 = env2_2; } catch (error) { break exceptionLanding39; } try { property = binding3[22]; } catch (error) { break exceptionLanding39; } try { value8 = binding(property); } catch (error) { break exceptionLanding39; } try { messages = value8.messages; } catch (error) { break exceptionLanding39; } try { value9 = Reflect.apply(messages, value8, []); } catch (error) { break exceptionLanding39; } try { value10 = value9 == null; } catch (error) { break exceptionLanding39; } reducibleJoin21: while (true) { if (value10) { r3 = value; break reducibleJoin21; } try { getMostRecents = value9.getMostRecents; } catch (error) { break exceptionLanding39; } try { value11 = Reflect.apply(getMostRecents, value9, [null]); } catch (error) { break exceptionLanding39; } r3 = value11; break reducibleJoin21; } yield r3; try { value12 = undefined; value13 = false; } catch (error) { break exceptionLanding39; } if (value13) { return value12; } try { value14 = value12 == null; } catch (error) { break exceptionLanding39; } if (value14) { try { binding = env2_22; } catch (error) { break exceptionLanding39; } try { warn = binding.warn; } catch (error) { break exceptionLanding39; } try { Reflect.apply(warn, binding, ['No recent DMs loaded from local database']); } catch (error) { break exceptionLanding39; } return value; } try { processMostRecentDMs = this.processMostRecentDMs; } catch (error) { break exceptionLanding39; } try { map = value12.map; } catch (error) { break exceptionLanding39; } try { } catch (error) { break exceptionLanding39; } try { closure = function(a0) { var r0; var r1; var r3; var item3; var value3; var iterator = a0[Symbol.iterator](); var iterator2 = iterator.next; var item2 = Reflect.apply(iterator2, iterator, []); var item = item2.value; item2 = item2.done ? undefined : iterator; var value = undefined; var value2 = item2 === value; var r2 = value2 ? value : item; if (value2) { r0 = item2; r1 = value; r3 = value2; } else { item3 = Reflect.apply(iterator2, item2, []); item = item3.value; item3 = item3.done ? undefined : item2; value3 = item3 === value; if (value3) { r0 = item3; r1 = value; r3 = value3; } else { r0 = item3; r1 = item; r3 = value3; } } if (!r3) { r0.return(); } return [r2, r1.message]; }; } catch (error) { break exceptionLanding39; } try { value15 = Reflect.apply(map, value12, [closure]); } catch (error) { break exceptionLanding39; } try { Reflect.apply(processMostRecentDMs, this, [value15]); } catch (error) { break exceptionLanding39; } break reduciblePort40; } break reduciblePort40; } break reduciblePort40; } binding = env2_22; error2 = binding.error; Reflect.apply(error2, binding, ['Error updating most recent DMs', error]); break reduciblePort40; } return value; } function* _fun125329(a0, a1, a2, a3) { // fn#125329, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:3124, offset: 0x025d4db7, size: 129 bytes, params: 5, frame: 22 const value = a0; if (false) { return undefined; } let binding = env2_16; const isChannelNudged2 = binding.isChannelNudged(value, {includeInvisible: true}); binding = env2_0; const value5 = undefined; const value6 = binding(env2_2[23]); const setReplyNudge = value6.setReplyNudge; const Date = global.Date; yield Reflect.apply(setReplyNudge, value6, [value, Date.now(), a1, a2, a3]); if (false) { return undefined; } return isChannelNudged2 ? value5 : value; } function* _fun125332(a0, a1, a2) { // fn#125332, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:3364, offset: 0x025d4e43, size: 857 bytes, params: 4, frame: 38 var environment; var r16; var r25; var author; var r14; var r8; var r5; var id; var value; var value2; var value3; var binding; var binding2; var property; var value4; var messages; var value5; var value6; var value7; var timeAsync; var channel_id; var HermesInternal; var concat; var value8; var closure; var value9; var value10; var value11; var id2; var map; var value12; var binding3; var value13; var extractTimestamp; var value14; var length; var value15; var value16; var binding4; var property2; var value17; var compare; var id3; var value18; var value19; var value20; var binding5; var property3; var value21; var value22; var value23; var value24; var value25; var author2; var value26; var value27; var property4; var value28; var value29; var value30; var id4; var value31; var value32; var value33; var value34; var binding6; var value35; var age; var value36; var value37; var binding7; var value38; var value39; var value40; var value41; var value42; var binding8; var value43; var Millis; var MINUTE; var value44; var value45; var value46; var nudgeChannel; var value47; var value48; var value49; var value50; var pendingFetch; var error; var error2; exceptionLanding151: while (true) { value = undefined; value2 = false; if (value2) { return value; } var env0_0 = a0; value = undefined; var env0_1 = value; value3 = environment.__proto__.__proto__; reducibleJoin4: while (true) { reduciblePort150: while (true) { exceptionLanding144: while (true) { try { try { binding = env2_1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } break reducibleJoin4; } try { binding = env2_22; } catch (error) { break exceptionLanding151; } try { error2 = binding.error; } catch (error) { break exceptionLanding151; } try { Reflect.apply(error2, binding, ['Error fetching lookbehind messages', error]); } catch (error) { break exceptionLanding151; } break reduciblePort150; } pendingFetch = this.pendingFetch; channel_id = a0.channel_id; pendingFetch.delete(channel_id); return value; } try { try { binding2 = env2_2; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { property = binding2[22]; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value4 = binding(property); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { messages = value4.messages; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value5 = Reflect.apply(messages, value4, []); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { env0_1 = value5; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } value6 = null; try { try { value7 = value6 == value5; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } if (value7) { this.pendingFetch.delete(a0.channel_id); return value; } try { try { binding = env2_22; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { timeAsync = binding.timeAsync; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { channel_id = a0.channel_id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { HermesInternal = global.HermesInternal; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { concat = HermesInternal.concat; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value8 = 'fetching lookbehind messages for ' + channel_id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { closure = _fun125333; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value9 = Reflect.apply(timeAsync, binding, [value8, closure]); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } yield value9; try { try { value10 = undefined; value11 = false; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } if (value11) { this.pendingFetch.delete(a0.channel_id); return value10; } try { try { id2 = a0.id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { map = value10.map; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { closure = function(a0) { return a0.message; }; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value12 = Reflect.apply(map, value10, [closure]); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding = env2_1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding3 = env2_2; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { property = binding3[19]; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value13 = binding(property); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { extractTimestamp = value13.extractTimestamp; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { id = a0.id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value14 = Reflect.apply(extractTimestamp, value13, [id]); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { length = value12.length; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } value15 = 0; try { try { value16 = value15 < length; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } reducibleJoin125: while (true) { reducibleJoin124: while (true) { if (value16) { r16 = value15; reducibleLoop45: while (true) { try { try { property = value12[r16]; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding = env2_1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding4 = env2_2; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { property2 = binding4[19]; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value17 = binding(property2); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { compare = value17.compare; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { id = property.id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { id3 = a0.id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value18 = Reflect.apply(compare, value17, [id, id3]); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value19 = value18 > value15; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } value20 = false; if (value19) { r5 = value20; break reducibleJoin125; } try { try { binding = env2_1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding5 = env2_2; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { property3 = binding5[19]; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value21 = binding(property3); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { extractTimestamp = value21.extractTimestamp; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { id = property.id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value22 = Reflect.apply(extractTimestamp, value21, [id]); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value23 = value14 - a1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value24 = value22 < value23; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } value25 = true; if (value24) { r5 = value25; break reducibleJoin125; } try { try { author2 = property.author; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value26 = r16 > value15; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } reducibleJoin71: while (true) { if (value26) { try { try { value27 = r16 - 1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { property4 = value12[value27]; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } r25 = property4; break reducibleJoin71; } r25 = value6; break reducibleJoin71; } try { try { value28 = value6 == r25; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } reducibleJoin74: while (true) { if (value28) { author = value; break reducibleJoin74; } try { try { author = r25.author; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } break reducibleJoin74; } try { try { value29 = value6 == author2; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } if (!value29) { try { try { value30 = value6 == author; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } reducibleJoin80: while (true) { if (value30) { break reducibleJoin80; } try { try { id = author2.id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { id4 = author.id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value31 = id !== id4; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } if (value31) { r5 = value20; break reducibleJoin125; } break reducibleJoin80; } } try { try { binding = env2_26; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value32 = binding(property); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } if (value32) { r5 = value20; break reducibleJoin125; } try { try { value33 = typeof r16 === 'bigint' ? r16 + 1n : +r16 + 1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { length = value12.length; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value34 = value33 < length; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } if (value34) { r16 = value33; continue reducibleLoop45; } try { try { binding = env2_1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding6 = env2_2; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { property = binding6[19]; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value35 = binding(property); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { age = value35.age; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { channel_id = a0.channel_id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value36 = Reflect.apply(age, value35, [channel_id]); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { length = value12.length; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value37 = length > value15; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } reducibleJoin106: while (true) { if (value37) { try { try { binding = env2_1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding7 = env2_2; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { property = binding7[19]; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value38 = binding(property); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { age = value38.age; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { length = value12.length; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value39 = length - 1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { property = value12[value39]; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { id = property.id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value40 = Reflect.apply(age, value38, [id]); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } r14 = value40; break reducibleJoin106; } r14 = value15; break reducibleJoin106; } try { try { value41 = r14 > value15; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } reducibleJoin119: while (true) { if (value41) { try { try { value42 = value36 - r14; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding = env2_1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding8 = env2_2; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { property = binding8[20]; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value43 = binding(property); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { Millis = value43.Millis; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { MINUTE = Millis.MINUTE; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value44 = 5 * MINUTE; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value45 = value42 < value44; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } r8 = value45; break reducibleJoin119; } r8 = value41; break reducibleJoin119; } try { try { length = value12.length; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding = env2_18; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value46 = length < binding; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } if (r8) { r8 = value46; break reducibleJoin124; } break reducibleJoin124; } if (r5) { try { try { nudgeChannel = this.nudgeChannel; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { channel_id = a0.channel_id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { author = a0.author; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value47 = value6 == author; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } reducibleJoin135: while (true) { if (value47) { id = value; break reducibleJoin135; } try { try { id = author.id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } break reducibleJoin135; } try { try { value48 = value6 != id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } value49 = '0'; reducibleJoin139: while (true) { if (value48) { r5 = id; break reducibleJoin139; } r5 = value49; break reducibleJoin139; } try { try { value50 = Reflect.apply(nudgeChannel, this, [channel_id, id2, a2, r5]); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } pendingFetch = this.pendingFetch; channel_id = a0.channel_id; pendingFetch.delete(channel_id); return value50; } pendingFetch = this.pendingFetch; channel_id = a0.channel_id; pendingFetch.delete(channel_id); return value; } try { try { binding = env2_1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding6 = env2_2; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { property = binding6[19]; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value35 = binding(property); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { age = value35.age; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { channel_id = a0.channel_id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value36 = Reflect.apply(age, value35, [channel_id]); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { length = value12.length; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value37 = length > value15; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } reducibleJoin106: while (true) { if (value37) { try { try { binding = env2_1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding7 = env2_2; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { property = binding7[19]; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value38 = binding(property); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { age = value38.age; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { length = value12.length; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value39 = length - 1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { property = value12[value39]; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { id = property.id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value40 = Reflect.apply(age, value38, [id]); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } r14 = value40; break reducibleJoin106; } r14 = value15; break reducibleJoin106; } try { try { value41 = r14 > value15; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } reducibleJoin119: while (true) { if (value41) { try { try { value42 = value36 - r14; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding = env2_1; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding8 = env2_2; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { property = binding8[20]; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value43 = binding(property); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { Millis = value43.Millis; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { MINUTE = Millis.MINUTE; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value44 = 5 * MINUTE; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value45 = value42 < value44; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } r8 = value45; break reducibleJoin119; } r8 = value41; break reducibleJoin119; } try { try { length = value12.length; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { binding = env2_18; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value46 = length < binding; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } if (r8) { r8 = value46; break reducibleJoin124; } break reducibleJoin124; } r5 = r8; break reducibleJoin125; } if (r5) { try { try { nudgeChannel = this.nudgeChannel; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { channel_id = a0.channel_id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { author = a0.author; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } try { try { value47 = value6 == author; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } reducibleJoin135: while (true) { if (value47) { id = value; break reducibleJoin135; } try { try { id = author.id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } break reducibleJoin135; } try { try { value48 = value6 != id; } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } value49 = '0'; reducibleJoin139: while (true) { if (value48) { r5 = id; break reducibleJoin139; } r5 = value49; break reducibleJoin139; } try { try { value50 = Reflect.apply(nudgeChannel, this, [channel_id, id2, a2, r5]); } catch (error) { break exceptionLanding144; } } catch (error) { break exceptionLanding151; } pendingFetch = this.pendingFetch; channel_id = a0.channel_id; pendingFetch.delete(channel_id); return value50; } pendingFetch = this.pendingFetch; channel_id = a0.channel_id; pendingFetch.delete(channel_id); return value; } this.pendingFetch.delete(a0.channel_id); throw error; } function value_125336(a0) { // fn#125336, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:4364, offset: 0x025d51c4, size: 266 bytes, params: 2, frame: 22 var environment; var r5; var value5; var value6; var value7; const value = environment.__proto__; const ReplyNudgeExperiment = (require(5224) /* metro dependency 5224: ReplyNudgeExperiment */).ReplyNudgeExperiment; const config = ReplyNudgeExperiment.getConfig({location: 'handleMessagePreviewsLocallyLoaded'}); const env0_2 = config.minUserDMAffinity; const env0_3 = config.minSinceReceiverMessageMs; const env0_4 = config.minLatestMessageAgeMs; const Date = global.Date; const env0_5 = Date.now(); const env0_6 = AuthenticationStore.getId(); const closure = value_125336_loop; const value3 = _createForOfIteratorHelperLoose_125310(a0); const value4 = value3(); let done = value4.done; if (!done) { for (r5 = value4; true; r5 = value7) { value5 = r5.value; value6 = env1_3(value5, 2); var env0_8 = value6[0]; closure(value6[1]); value7 = value3(); done = value7.done; if (done) { break; } } } const Promise = global.Promise; Promise.allSettled([]).then(_fun125340); } function value_125341(a0) { // fn#125341, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:5704, offset: 0x025d5631, size: 280 bytes, params: 2, frame: 21 var environment; var value; var ReplyNudgeExperiment; var displayNudges; var value2; var value3; var value4; var value5; var value6; var value7; var defaultImport; if (a0.length !== 0) { value = environment.__proto__; ReplyNudgeExperiment = (require(5224) /* metro dependency 5224: ReplyNudgeExperiment */).ReplyNudgeExperiment; displayNudges = ReplyNudgeExperiment.getConfig({location: 'trackNudgesCreated'}).displayNudges; var env0_0 = PrivateChannelSortStore.getPrivateChannelIds(); value2 = a0.map(_fun125342); value3 = a0.map(function(a0) { return ReplyNudgeStore.getChannelNudge(a0, {includeInvisible: true}); }); value4 = value3.map(_fun125344); value5 = value3.map(_fun125345); value6 = value3.map(_fun125346); value7 = value3.map(_fun125347); defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */; defaultImport.track(AnalyticEvents.REPLY_NUDGES_CREATED, {channel_ids: a0, channel_dm_list_indexes: value2, nudge_author_affinities: value4, nudge_author_is_friend: value5, nudge_author_ids: value6, nudge_message_ids: value7, invisible: !displayNudges}); } } function _fun125323() { // fn#125323, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:2283, offset: 0x025d4bf0, size: 21 bytes, params: 1, frame: 9 env0_0.updateReplyNudges(); } function _fun125333() { // fn#125333, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:3510, offset: 0x025d519c, size: 40 bytes, params: 1, frame: 15 return env0_1.getLatest(null, env0_0.channel_id, env3_18); } function value_125336_loop(a0) { // fn#125337, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:4599, owner: value_125336._loop, offset: 0x025d52ce, size: 581 bytes, params: 2, frame: 22 var environment; var r7; var dmProbability; var r5; var r0; var author; var getUserAffinity; var minUserDMAffinityBinding; var pendingFetch; let env0_0 = a0; let value = environment.__proto__.__proto__; const value3 = ReadStateStore.lastMessageId(env0_8); let id = a0.id; if (value3 === id) { var value4 = undefined; var defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */; var extractTimestamp = defaultImport.extractTimestamp; id = a0.id; var value5 = Reflect.apply(extractTimestamp, defaultImport, [id]); var value8 = (importDefault(21) /* metro dependency 21: SnowflakeUtils */).extractTimestamp(ReadStateStore.ackMessageId(env0_8) ?? '0'); var binding = env0_5; var Math = global.Math; var value9 = binding - Math.max(value5, value8); if (a0 == null) { id = value4; } else { author = a0.author; id = author == null ? value4 : author.id; } r7 = id != null && (RelationshipStore.isBlocked(a0.author.id) || RelationshipStore.isIgnored(a0.author.id)); if (value9 < minLatestMessageAgeMs) { return 0; } if (value9 > MAX_LATEST_MESSAGE_AGE_MS) { return 0; } var USER_MESSAGE = MessageTypesSets.USER_MESSAGE; if (USER_MESSAGE.has(a0.type)) { author = a0.author; if (author == null) { return 0; } author = a0.author; id = author.id; if (id === env0_6) { return 0; } if (hasReacted(a0)) { return 0; } author = a0.author; if (author == null) { if (r7) { return 0; } value = UserAffinitiesV2Store.getUserAffinity(a0.author.id); dmProbability = value == null ? value4 : value.dmProbability; value = -1; r5 = dmProbability ?? value; var env0_1 = r5; minUserDMAffinityBinding = minUserDMAffinity; value = 0; if (r5 < minUserDMAffinityBinding) { r0 = value; } else { pendingFetch = env0_1.pendingFetch; if (pendingFetch.has(a0.channel_id)) { r0 = value; } else { pendingFetch = env0_1.pendingFetch; pendingFetch.add(a0.channel_id); binding = env0_7; binding.push(new global.Promise(function(a0, a1) { var env0_0 = a0; var env0_1 = a1; global.requestIdleCallback(_fun125339); })); r0 = value4; } } return r0; } if (author.bot) { return 0; } if (r7) { return 0; } getUserAffinity = UserAffinitiesV2Store.getUserAffinity; author = a0.author; id = author.id; value = Reflect.apply(getUserAffinity, UserAffinitiesV2Store, [id]); dmProbability = value == null ? value4 : value.dmProbability; value = -1; r5 = dmProbability ?? value; var env0_1 = r5; minUserDMAffinityBinding = minUserDMAffinity; value = 0; if (r5 < minUserDMAffinityBinding) { r0 = value; } else { pendingFetch = env0_1.pendingFetch; if (pendingFetch.has(a0.channel_id)) { r0 = value; } else { pendingFetch = env0_1.pendingFetch; pendingFetch.add(a0.channel_id); binding = env0_7; binding.push(new global.Promise(_fun125338)); r0 = value4; } } return r0; } } return 0; } function _fun125340(a0) { // fn#125340, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:5416, offset: 0x025d557a, size: 183 bytes, params: 2, frame: 24 var r5; var r10; var value4; var status; var value5; var value6; var isChannelNudged2; var value7; const items2 = []; const value = environment.__proto__.__proto__; const value2 = _createForOfIteratorHelperLoose_125310(a0); const value3 = value2(); let done = value3.done; if (!done) { r5 = value3; while (true) { value4 = r5.value; status = value4.status; if (status === 'fulfilled') { value5 = value4.value; value6 = value5 != null; if (!value6) { r10 = value6; continue; } isChannelNudged2 = ReplyNudgeStore.isChannelNudged(value5, {includeInvisible: true}); r10 = isChannelNudged2; if (r10) { items2.push(value5); break; } break; } value7 = value2(); done = value7.done; if (done) { break; } r5 = value7; continue; } } (require(12151) /* metro dependency 12151: ReplyNudgeActionCreators */).setNudgesInitialized(); env0_0.trackNudgesCreated(items2); } function _fun125342(a0) { // fn#125342, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:5882, offset: 0x025d5749, size: 23 bytes, params: 2, frame: 11 return env0_0.indexOf(a0); } function _fun125345(a0) { // fn#125345, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:6036, offset: 0x025d5781, size: 53 bytes, params: 2, frame: 12 var r0; value = a0?.authorId != null; if (value) { value = environment.__proto__.__proto__; value = RelationshipStore.isFriend(a0.authorId); r0 = value; } else { r0 = value; } return r0; } function _fun125338(a0, a1) { // fn#125338, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:5207, offset: 0x025d5513, size: 40 bytes, params: 3, frame: 11 const env0_0 = a0; const env0_1 = a1; global.requestIdleCallback(_fun125339); } function _fun125339() { // fn#125339, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16424:5236, offset: 0x025d553b, size: 63 bytes, params: 1, frame: 15 let value = environment.__proto__.__proto__; const binding = env2_1; value = binding.fetchLookbehindMessages(env1_0, minSinceReceiverMessageMs, env1_1); value.then(env0_0, require); }