/* Metro module 1893; source: modules/premium/perks_state/PerksStateUtils.tsx; dependencies: [57, 1894, 483, 1895, 2] */ import Module00057 from '../../../by-id/module-00057.js'; /* Metro dependency 57 */ import * as FileImportTrackerModule from '../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as TypesModule from './types.tsx'; /* Metro dependency 1894 */ function _fun20531(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#20531, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2020:6, offset: 0x00ecbde5, size: 171 bytes, params: 8, frame: 20 const env0_0 = require; const hasPerk2 = hasPerk; const getPerkSource2 = getPerkSource; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); (FileImportTrackerModule).fileFinishedImporting('modules/premium/perks_state/PerksStateUtils.tsx'); exports.parseServerPerks = parseServerPerks; exports.hasPerk = hasPerk2; exports.getPerkSource = getPerkSource2; exports.getPerkConfig = getPerkConfig; function parseServerPerkConfigKind(a0) { // fn#20532, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2020:106, offset: 0x00ecbe90, size: 214 bytes, params: 2, frame: 15 var type; const PerkConfigType = (TypesModule).PerkConfigType; if (a0.kind != null) { type = a0.kind.type; if (PerkConfigType.INCREASED_FILE_UPLOAD_SIZE === type) { return {type: PerkConfigType.INCREASED_FILE_UPLOAD_SIZE, maxSize: a0.kind.max_size}; } if (PerkConfigType.INCREASED_GUILD_LIMIT === type) { return {type: PerkConfigType.INCREASED_GUILD_LIMIT, maxGuilds: a0.kind.max_guilds}; } } } function hasPerk(a0, a1) { // fn#20533, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2020:474, offset: 0x00ecbf66, size: 152 bytes, params: 3, frame: 22 var r0; var moduleValue; var has; var moduleValue3; if (a0 == null) { return false; } const activePerksBitmask = a0.activePerksBitmask; const Math = global.Math; let value = Math.floor(a1 / 64); const value2 = value >= activePerksBitmask.length; if (value2) { r0 = !value2; } else { moduleValue = importAll(483) /* metro dependency 483: BigFlagUtils */; has = moduleValue.has; value = (importAll(483) /* metro dependency 483: BigFlagUtils */).deserialize(activePerksBitmask[value]); moduleValue3 = importAll(483) /* metro dependency 483: BigFlagUtils */; value = Reflect.apply(has, moduleValue, [value, moduleValue3.getFlag(a1 % 64)]); r0 = value; } return r0; } function getPerkSource(a0, a1) { // fn#20534, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2020:645, offset: 0x00ecbffe, size: 129 bytes, params: 3, frame: 16 var configByPerk; var String; var value; var property; if (a0 != null) { configByPerk = a0.configByPerk; String = global.String; value = undefined; property = configByPerk[String(a1)]; return (property == null ? value : property.source) != null ? property.source : hasPerk(a0, a1) ? [(require(1895) /* metro dependency 1895: user */).PerkSource.SOURCE_NITRO] : value; } } function parseServerPerks(a0) { // fn#20535, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2020:920, offset: 0x00ecc07f, size: 167 bytes, params: 2, frame: 23 var r4; var property; var value4; var property2; var object; var source; var value5; if (a0 == null) { return null; } const object2 = {}; const Object = global.Object; const value = Object.entries(a0.config_by_perk); let length = value.length; const value2 = 0; if (value2 < length) { r4 = value2; reducibleLoop2: while (true) { property = value[r4]; value4 = Module00057(property, 2); property = value4[value2]; property2 = value4[1]; object = {}; source = property2.source; object.source = source; object.kind = parseServerPerkConfigKind(property2); object2[property] = object; value5 = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1; length = value.length; if (value5 < length) { r4 = value5; continue reducibleLoop2; } break reducibleLoop2; } } return {activePerksBitmask: a0.active_perks_bitmask, configByPerk: object2, rulesVersion: a0.rules_version}; } function getPerkConfig(a0, a1) { // fn#20536, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2020:1290, offset: 0x00ecc126, size: 75 bytes, params: 3, frame: 15 var object; if (a0 != null) { var configByPerk = a0.configByPerk; var String = global.String; var property = configByPerk[String(a1)]; if (property != null) { object = {}; object.source = getPerkSource(a0, a1); object.kind = property.kind; return object; } } } } global.__d(_fun20531, 1893, [57, 1894, 483, 1895, 2]) /* metro module 1893, dependencies: [57, 1894, 483, 1895, 2] */;