/* Metro module 4776; source: unknown; dependencies: [4736, 4751, 4752, 4748, 4731] */ import Module04736 from './module-04736.js'; /* Metro dependency 4736 */ import * as Module04731Module from './module-04731.js'; /* Metro dependency 4731 */ import * as IFD_TYPE_Module from './module-04752-IFD_TYPE_.js'; /* Metro dependency 4752 */ function _fun41278(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#41278, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4954:6, offset: 0x0111a274, size: 132 bytes, params: 8, frame: 16 const env0_0 = require; const getImageFormat = function(a0) { var value = a0 >> 24 & 7; return {value: value, description: value !== 0 ? 'Unknown' : 'JPEG'}; }; const getImageType = function(a0) { var value = 16777215 & a0; return {value: value, description: ({196608: 'Baseline MP Primary Image', 65537: 'Large Thumbnail (VGA equivalent)', 65538: 'Large Thumbnail (Full HD equivalent)', 131073: 'Multi-Frame Image (Panorama)', 131074: 'Multi-Frame Image (Disparity)', 131075: 'Multi-Frame Image (Multi-Angle)', 0: 'Undefined'})[value] || 'Unknown'}; }; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); exports.default = {read: read_41284}; function getImageNumberValue(a0, a1, a2, a3) { // fn#41279, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4954:1195, offset: 0x0111a2f8, size: 153 bytes, params: 5, frame: 19 var r2; var r3; var r1; var r0; var property; var value2; var value3; var value; const LITTLE_ENDIAN = (Module04736).LITTLE_ENDIAN; if (a3 === LITTLE_ENDIAN) { if (value < a2) { r1 = value; r2 = value; reducibleLoop5: while (true) { property = a0[a1 + r1]; value = r2 + (property << 8 * r1); value3 = typeof r1 === 'bigint' ? r1 + 1n : +r1 + 1; if (value3 < a2) { r1 = value3; r2 = value; continue reducibleLoop5; } r0 = value; break reducibleLoop5; } } else { r0 = value; } return r0; } if (value < a2) { r2 = value; r3 = value; reducibleLoop2: while (true) { property = a0[a1 + r2]; value = r3 + (property << 8 * (a2 - 1 - r2)); value2 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; if (value2 < a2) { r2 = value2; r3 = value; continue reducibleLoop2; } r1 = value; break reducibleLoop2; } } else { r1 = value; } return r1; } function getImageOffset(a0, a1, a2, a3) { // fn#41283, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4954:2025, offset: 0x0111a496, size: 97 bytes, params: 5, frame: 19 var r0; var getImageNumberValueBinding; var value2; var value3; let value = 0; if (value === a0) { r0 = value; } else { getImageNumberValueBinding = getImageNumberValue; value2 = a1.value; value3 = a0 * env0_3; value = importDefault(4748) /* metro dependency 4748 */; value = value.getTypeSize('LONG'); value = getImageNumberValueBinding(value2, value3 + 8, value, a2); value += a3; r0 = value; } return r0; } function read_41284(a0, a1, a2) { // fn#41284, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4954:106, offset: 0x0111a4f7, size: 153 bytes, params: 4, frame: 23 var value; const byteOrder = (Module04736).getByteOrder(a0, a1); const readIfd = (require(4751) /* metro dependency 4751 */).readIfd; const IFD_TYPE_MPF = (IFD_TYPE_Module).IFD_TYPE_MPF; value = Reflect.apply(readIfd, value, [a0, IFD_TYPE_MPF, a1, (require(4751) /* metro dependency 4751 */).get0thIfdOffset(a0, a1, byteOrder), byteOrder, a2]); addMpfImages(a0, a1, value, byteOrder); return value; function addMpfImages(a0, a1, a2, a3) { // fn#41285, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4954:247, owner: read_41284.addMpfImages, offset: 0x0111a590, size: 660 bytes, params: 5, frame: 37 var environment; var r11; var items2; var Math; var ceil; var value; var length; var value2; var value3; var getImageNumberValueBinding; var value4; var value5; var defaultImport; var getTypeSize; var imageNumberValueBinding; var property; var value7; var value8; var defaultImport2; var value9; var imageNumberValueBinding2; var object; var getImageOffsetBinding; var imageOffsetBinding; var object2; var value12; var value13; var defaultImport3; var value14; var imageNumberValueBinding3; var object3; var value16; var value17; var defaultImport4; var value18; var imageNumberValueBinding4; var object4; var buffer; var slice; var moduleValue; var deferInit; var value20; var value21; let MPEntry = a2.MPEntry; if (MPEntry) { items2 = []; Math = global.Math; ceil = Math.ceil; MPEntry = a2.MPEntry; value = MPEntry.value; length = value.length; value = environment.__proto__; value2 = Reflect.apply(ceil, Math, [length / env1_3]); value3 = 0; if (value3 < value2) { r11 = value3; reducibleLoop3: while (true) { items2[r11] = {}; getImageNumberValueBinding = getImageNumberValue; MPEntry = a2.MPEntry; value4 = MPEntry.value; value5 = r11 * env1_3; defaultImport = importDefault(4748) /* metro dependency 4748 */; getTypeSize = defaultImport.getTypeSize; imageNumberValueBinding = getImageNumberValueBinding(value4, value5, Reflect.apply(getTypeSize, defaultImport, ['LONG']), a3); property = items2[r11]; property.ImageFlags = getImageFlags(imageNumberValueBinding); property = items2[r11]; property.ImageFormat = getImageFormat(imageNumberValueBinding); property = items2[r11]; property.ImageType = getImageType(imageNumberValueBinding); MPEntry = a2.MPEntry; value7 = MPEntry.value; value8 = r11 * env1_3; defaultImport2 = importDefault(4748) /* metro dependency 4748 */; getTypeSize = defaultImport2.getTypeSize; value9 = Reflect.apply(getTypeSize, defaultImport2, ['LONG']); imageNumberValueBinding2 = getImageNumberValueBinding(value7, value8 + 4, value9, a3); property = items2[r11]; object = {value: imageNumberValueBinding2, description: String(imageNumberValueBinding2)}; property.ImageSize = object; getImageOffsetBinding = getImageOffset; MPEntry = a2.MPEntry; imageOffsetBinding = getImageOffsetBinding(r11, MPEntry, a3, a1); property = items2[r11]; object2 = {value: imageOffsetBinding, description: String(imageOffsetBinding)}; property.ImageOffset = object2; MPEntry = a2.MPEntry; value12 = MPEntry.value; value13 = r11 * env1_3; defaultImport3 = importDefault(4748) /* metro dependency 4748 */; getTypeSize = defaultImport3.getTypeSize; value14 = Reflect.apply(getTypeSize, defaultImport3, ['SHORT']); imageNumberValueBinding3 = getImageNumberValueBinding(value12, value13 + 12, value14, a3); property = items2[r11]; object3 = {value: imageNumberValueBinding3, description: String(imageNumberValueBinding3)}; property.DependentImage1EntryNumber = object3; MPEntry = a2.MPEntry; value16 = MPEntry.value; value17 = r11 * env1_3; defaultImport4 = importDefault(4748) /* metro dependency 4748 */; getTypeSize = defaultImport4.getTypeSize; value18 = Reflect.apply(getTypeSize, defaultImport4, ['SHORT']); imageNumberValueBinding4 = getImageNumberValueBinding(value16, value17 + 14, value18, a3); property = items2[r11]; object4 = {value: imageNumberValueBinding4, description: String(imageNumberValueBinding4)}; property.DependentImage2EntryNumber = object4; property = items2[r11]; buffer = a0.buffer; slice = buffer.slice; property.image = Reflect.apply(slice, buffer, [imageOffsetBinding, imageOffsetBinding + imageNumberValueBinding2]); moduleValue = require(4731) /* metro dependency 4731 */; deferInit = moduleValue.deferInit; property = items2[r11]; Reflect.apply(deferInit, moduleValue, [property, 'base64', _fun41286]); value20 = typeof r11 === 'bigint' ? r11 + 1n : +r11 + 1; Math = global.Math; ceil = Math.ceil; MPEntry = a2.MPEntry; value21 = MPEntry.value; length = value21.length; if (value20 < Reflect.apply(ceil, Math, [length / env1_3])) { r11 = value20; continue reducibleLoop3; } break reducibleLoop3; } } a2.Images = items2; } return a2; function _fun41286() { // fn#41286, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4954:1102, offset: 0x0111a824, size: 47 bytes, params: 1, frame: 11 const value = environment.__proto__.__proto__; return (Module04731Module).getBase64Image(this.image); } } } } function getImageFlags(a0) { // fn#41280, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4954:1367, offset: 0x0111a391, size: 168 bytes, params: 2, frame: 13 const items3 = [a0 >> 31 & 1, a0 >> 30 & 1, a0 >> 29 & 1]; const items2 = []; if (items3[0]) { items2.push('Dependent Parent Image'); } if (items3[1]) { items2.push('Dependent Child Image'); } if (items3[2]) { items2.push('Representative Image'); } const object = {value: items3}; object.description = items2.join(', ') || 'None'; return object; } global.__d(_fun41278, 4776, [4736, 4751, 4752, 4748, 4731]) /* metro module 4776, dependencies: [4736, 4751, 4752, 4748, 4731] */;