/* Metro module 4778; source: unknown; dependencies: [77, 4734, 4750, 4762, 4731, 4738, 4764] */ function _fun41296(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#41296, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:6, offset: 0x0111ac43, size: 244 bytes, params: 8, frame: 18 const env0_0 = require; const isExifGroupTag = function(a0, a1) { var r0; var value = a0.toLowerCase(); value = value === 'raw profile type exif'; if (value) { value = a1.substring(1, 5); value = value === 'exif'; r0 = value; } else { r0 = value; } return r0; }; const isIptcGroupTag = function(a0, a1) { var r0; var value = a0.toLowerCase(); value = value === 'raw profile type iptc'; if (value) { value = a1.substring(1, 5); value = value === 'iptc'; r0 = value; } else { r0 = value; } return r0; }; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_3 = importDefault(77) /* metro dependency 77 */; exports.default = {read: read_41308}; } function getNameAndValue(a0, a1, a2, a3, a4) { // fn#41297, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:892, offset: 0x0111ad37, size: 682 bytes, params: 6, frame: 37 var r16; var r17; var r20; var r12; var r22; var r23; var r9; var r10; var r4; var r0; var value4; var byteLength; var compressionMethod; var TYPE_ITXT; var value6; var value7; var getUint8; var value8; var push; var value9; var value10; var value11; var DataView; var buffer; var slice; var value12; var value13; var prototype; var value14; var dataView; var value15; var TYPE_ZTXT; var value16; var value17; const env0_0 = a3; const items4 = []; const items2 = []; const items3 = []; var value; const binding = env0_4; const value2 = undefined; const COMPRESSION_METHOD_NONE = (require(4731) /* metro dependency 4731 */).COMPRESSION_METHOD_NONE; const value3 = 0; reducibleJoin18: while (true) { if (!(value3 < a2)) { r9 = COMPRESSION_METHOD_NONE; r10 = value2; break reducibleJoin18; } value4 = a1 + value3; byteLength = a0.byteLength; if (!(value4 < byteLength)) { r9 = COMPRESSION_METHOD_NONE; r10 = value2; break reducibleJoin18; } r16 = value3; r17 = COMPRESSION_METHOD_NONE; r20 = binding; reducibleLoop2: while (true) { if (r20 !== env0_5) { if (r20 === env0_8) { DataView = global.DataView; buffer = a0.buffer; slice = buffer.slice; value12 = a1 + r16; value13 = Reflect.apply(slice, buffer, [value12, a1 + a2]); prototype = DataView.prototype; value14 = Object.create(prototype, {constructor: {value: DataView}}); dataView = new DataView(); value15 = dataView instanceof Object ? dataView : value14; r9 = r17; r10 = value15; break reducibleJoin18; } getUint8 = a0.getUint8; value8 = Reflect.apply(getUint8, a0, [a1 + r16]); if (value3 === value8) { value9 = moveToNextState(a3, r20); r12 = r16; r22 = r17; r23 = value9; } else if (r20 === env0_4) { push = items4.push; Reflect.apply(push, items4, [value8]); r12 = r16; r22 = r17; r23 = r20; } else if (r20 === env0_6) { push = items2.push; Reflect.apply(push, items2, [value8]); r12 = r16; r22 = r17; r23 = r20; } else { reducibleJoin15: while (true) { if (r20 !== env0_7) { r12 = r16; r22 = r17; r23 = r20; break reducibleJoin15; } push = items3.push; Reflect.apply(push, items3, [value8]); r12 = r16; r22 = r17; r23 = r20; break reducibleJoin15; } } } else { compressionMethod = getCompressionMethod({type: a3, dataView: a0, offset: a1 + r16}); TYPE_ITXT = (require(4738) /* metro dependency 4738 */).TYPE_ITXT; reducibleJoin5: while (true) { if (a3 !== TYPE_ITXT) { r12 = r16; break reducibleJoin5; } value6 = r16 + env0_9; r12 = value6; break reducibleJoin5; } value7 = moveToNextState(a3, r20); r22 = compressionMethod; r23 = value7; } value10 = typeof r12 === 'bigint' ? r12 + 1n : +r12 + 1; if (value10 < a2) { value11 = a1 + value10; byteLength = a0.byteLength; if (value11 < byteLength) { r16 = value10; r17 = r22; r20 = r23; continue reducibleLoop2; } r9 = r22; r10 = value2; break reducibleJoin18; } r9 = r22; r10 = value2; break reducibleJoin18; } } if (r9 !== COMPRESSION_METHOD_NONE) { reducibleJoin21: while (true) { if (!a4) { return {}; } break reducibleJoin21; } } const moduleValue = require(4731) /* metro dependency 4731 */; const decompress = moduleValue.decompress; const TYPE_TEXT = (require(4738) /* metro dependency 4738 */).TYPE_TEXT; reducibleJoin24: while (true) { reducibleJoin23: while (true) { if (a3 === TYPE_TEXT) { break reducibleJoin23; } TYPE_ZTXT = (require(4738) /* metro dependency 4738 */).TYPE_ZTXT; value16 = 'utf-8'; if (a3 !== TYPE_ZTXT) { r4 = value16; break reducibleJoin24; } break reducibleJoin23; } value17 = 'latin1'; r4 = value17; break reducibleJoin24; } const value18 = Reflect.apply(decompress, moduleValue, [r10, r9, r4]); const Promise = global.Promise; if (value18 instanceof Promise) { value = value18.then(_fun41298); value = value.catch(_fun41299); r0 = value; } else { r0 = constructTag(value18, a3, items2, items4); } return r0; } function getCompressionMethod({type, dataView, offset}) { // fn#41300, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:1690, offset: 0x0111b034, size: 162 bytes, params: 2, frame: 16 const TYPE_ITXT = (require(4738) /* metro dependency 4738 */).TYPE_ITXT; if (type === TYPE_ITXT) { if (dataView.getUint8(offset) === env0_10) { return dataView.getUint8(offset + 1); } return (require(4731) /* metro dependency 4731 */).COMPRESSION_METHOD_NONE; } const TYPE_ZTXT = (require(4738) /* metro dependency 4738 */).TYPE_ZTXT; if (type !== TYPE_ZTXT) { return (require(4731) /* metro dependency 4731 */).COMPRESSION_METHOD_NONE; } return dataView.getUint8(offset); } function moveToNextState(a0, a1) { // fn#41301, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:1920, offset: 0x0111b0d6, size: 166 bytes, params: 3, frame: 17 var r0; const TYPE_ITXT = (require(4738) /* metro dependency 4738 */).TYPE_ITXT; var items2; if (a1 !== env0_4) { r0 = a1 === env0_5 ? a0 === TYPE_ITXT ? env0_6 : env0_8 : a1 === env0_6 ? env0_7 : env0_8; } else { items2 = [TYPE_ITXT]; items2[1] = (require(4738) /* metro dependency 4738 */).TYPE_ZTXT; r0 = items2.includes(a0) ? env0_5 : a1 === env0_5 ? a0 === TYPE_ITXT ? env0_6 : env0_8 : a1 === env0_6 ? env0_7 : env0_8; } return r0; } function constructTag(a0, a1, a2, a3) { // fn#41302, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:2058, offset: 0x0111b17c, size: 147 bytes, params: 5, frame: 19 var r1; var moduleValue; let value = a0; const DataView = global.DataView; if (value instanceof DataView) { moduleValue = require(4731) /* metro dependency 4731 */; r1 = moduleValue.getStringFromDataView(value, 0, value.byteLength); } else { r1 = value; } const object2 = {}; object2.name = getName_41303(a1, a2, a3); object2.value = r1; const TYPE_ITXT = (require(4738) /* metro dependency 4738 */).TYPE_ITXT; if (a1 === TYPE_ITXT) { value = getDescription_41304(value); r1 = value; } object2.description = r1; return object2; } function getName_41303(a0, a1, a2) { // fn#41303, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:2299, offset: 0x0111b20f, size: 150 bytes, params: 4, frame: 20 var r0; var value; const stringValueFromArray = (require(4731) /* metro dependency 4731 */).getStringValueFromArray(a2); const TYPE_TEXT = (require(4738) /* metro dependency 4738 */).TYPE_TEXT; if (a0 === TYPE_TEXT) { r0 = stringValueFromArray; } else if (a1.length === 0) { r0 = stringValueFromArray; } else { value = require(4731) /* metro dependency 4731 */; value = value.getStringValueFromArray(a1); value = '' + stringValueFromArray + ' (' + value + ')'; r0 = value; } return r0; } function getDescription_41304(a0) { // fn#41304, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:2456, offset: 0x0111b2a5, size: 48 bytes, params: 2, frame: 13 return (importDefault(4764) /* metro dependency 4764 */).decode('UTF-8', a0); } function decodeRawData(a0) { // fn#41307, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:2725, offset: 0x0111b347, size: 206 bytes, params: 2, frame: 20 var r4; var setUint8; var parseInt; var substring; var value8; var int; value = a0.match(RegExp('\\n(exif|iptc)\\n\\s*\\d+\\n([\\s\\S]*)$', ''))[2].replace(RegExp('\\n', 'g'), ''); const DataView = global.DataView; const ArrayBuffer = global.ArrayBuffer; let length = value.length; const dataView = new DataView(new ArrayBuffer(length / 2)); length = value.length; const value7 = 0; if (value7 < length) { for (r4 = value7; true; r4 = value8) { setUint8 = dataView.setUint8; parseInt = global.parseInt; substring = value.substring; value8 = r4 + 2; int = parseInt(Reflect.apply(substring, value, [r4, value8]), 16); Reflect.apply(setUint8, dataView, [r4 / 2, int]); length = value.length; if (!(value8 < length)) { break; } } } return dataView; } function read_41308(a0, a1, a2, a3) { // fn#41308, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:116, offset: 0x0111b415, size: 258 bytes, params: 5, frame: 35 var r9; var property; var getNameAndValueBinding; var offset; var type; var nameAndValueBinding; var Promise; var name; var value5; var description; var push; var then; var value6; const env0_0 = a3; const object2 = {}; const items2 = []; let length = a1.length; const value = 0; const value3 = undefined; if (value < length) { r9 = value; while (true) { property = a1[r9]; getNameAndValueBinding = getNameAndValue; offset = property.offset; length = property.length; type = property.type; nameAndValueBinding = getNameAndValueBinding(a0, offset, length, type, a2); Promise = global.Promise; if (!(nameAndValueBinding instanceof Promise)) { name = nameAndValueBinding.name; value5 = nameAndValueBinding.value; description = nameAndValueBinding.description; if (name) { object2[name] = {value: value5, description: description}; break; } break; } push = items2.push; then = nameAndValueBinding.then; Reflect.apply(push, items2, [Reflect.apply(then, nameAndValueBinding, [_fun41309])]); value6 = typeof r9 === 'bigint' ? r9 + 1n : +r9 + 1; length = a1.length; if (value6 < length) { r9 = value6; continue; } break; } } const object4 = {readTags: object2}; object4.readTagsPromise = items2.length > value ? global.Promise.all(items2) : value3; return object4; } function _fun41298(a0) { // fn#41298, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:1531, offset: 0x0111afe1, size: 33 bytes, params: 2, frame: 17 return constructTag(a0, importAll, env0_2, env0_1); } function _fun41299() { // fn#41299, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:1582, offset: 0x0111b002, size: 50 bytes, params: 1, frame: 17 const value = environment.__proto__; return constructTag(''.split(''), importAll, env0_2, env0_1); } function _fun41309({name, value, description}) { // fn#41309, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:275, offset: 0x0111b517, size: 342 bytes, params: 2, frame: 19 var property; var defaultImport; var USE_EXIF; var isExifGroupTagBinding; var isExifGroupTag2; var defaultImport2; var USE_IPTC; var isIptcGroupTagBinding; var isIptcGroupTag2; var isExifGroupTag3; var isIptcGroupTag3; var binding; var object3; var object4; var defaultImport3; var read; var decodeRawDataBinding; var value3; var defaultImport4; var value4; var tags; var error; reducibleJoin3: while (true) { reduciblePort74: while (true) { exceptionLanding73: while (true) { try { } catch (error) { break exceptionLanding73; } break reducibleJoin3; } break reduciblePort74; } return {}; } try { } catch (error) { break exceptionLanding73; } try { property = dependencyMap[1]; } catch (error) { break exceptionLanding73; } try { defaultImport = importDefault(property); } catch (error) { break exceptionLanding73; } try { USE_EXIF = defaultImport.USE_EXIF; } catch (error) { break exceptionLanding73; } if (USE_EXIF) { try { isExifGroupTagBinding = isExifGroupTag; } catch (error) { break exceptionLanding73; } try { isExifGroupTag2 = isExifGroupTagBinding(name, value); } catch (error) { break exceptionLanding73; } reducibleJoin13: while (true) { if (isExifGroupTag2) { try { object3 = {}; } catch (error) { break exceptionLanding73; } try { } catch (error) { break exceptionLanding73; } try { } catch (error) { break exceptionLanding73; } try { property = dependencyMap[2]; } catch (error) { break exceptionLanding73; } try { defaultImport4 = importDefault(property); } catch (error) { break exceptionLanding73; } try { read = defaultImport4.read; } catch (error) { break exceptionLanding73; } try { decodeRawDataBinding = decodeRawData; } catch (error) { break exceptionLanding73; } try { value = decodeRawDataBinding(value); } catch (error) { break exceptionLanding73; } try { binding = env1_11; } catch (error) { break exceptionLanding73; } value4 = environment; try { } catch (error) { break exceptionLanding73; } try { value = Reflect.apply(read, defaultImport4, [value, binding, importAll]); } catch (error) { break exceptionLanding73; } try { tags = value.tags; } catch (error) { break exceptionLanding73; } try { object3.__exif = tags; } catch (error) { break exceptionLanding73; } return object3; } break reducibleJoin13; } } try { } catch (error) { break exceptionLanding73; } try { } catch (error) { break exceptionLanding73; } try { property = dependencyMap[1]; } catch (error) { break exceptionLanding73; } try { defaultImport2 = importDefault(property); } catch (error) { break exceptionLanding73; } try { USE_IPTC = defaultImport2.USE_IPTC; } catch (error) { break exceptionLanding73; } if (USE_IPTC) { try { isIptcGroupTagBinding = isIptcGroupTag; } catch (error) { break exceptionLanding73; } try { isIptcGroupTag2 = isIptcGroupTagBinding(name, value); } catch (error) { break exceptionLanding73; } reducibleJoin23: while (true) { if (isIptcGroupTag2) { try { object3 = {}; } catch (error) { break exceptionLanding73; } try { } catch (error) { break exceptionLanding73; } try { } catch (error) { break exceptionLanding73; } try { property = dependencyMap[3]; } catch (error) { break exceptionLanding73; } try { defaultImport3 = importDefault(property); } catch (error) { break exceptionLanding73; } try { read = defaultImport3.read; } catch (error) { break exceptionLanding73; } try { decodeRawDataBinding = decodeRawData; } catch (error) { break exceptionLanding73; } try { value = decodeRawDataBinding(value); } catch (error) { break exceptionLanding73; } value3 = environment; try { } catch (error) { break exceptionLanding73; } try { value = Reflect.apply(read, defaultImport3, [value, 0, importAll]); } catch (error) { break exceptionLanding73; } try { object3.__iptc = value; } catch (error) { break exceptionLanding73; } return object3; } break reducibleJoin23; } } if (name) { try { isExifGroupTagBinding = isExifGroupTag; } catch (error) { break exceptionLanding73; } try { isExifGroupTag3 = isExifGroupTagBinding(name, value); } catch (error) { break exceptionLanding73; } reducibleJoin74: while (true) { if (isExifGroupTag3) { break reducibleJoin74; } try { isIptcGroupTagBinding = isIptcGroupTag; } catch (error) { break exceptionLanding73; } try { isIptcGroupTag3 = isIptcGroupTagBinding(name, value); } catch (error) { break exceptionLanding73; } if (!isIptcGroupTag3) { try { binding = env1_3; } catch (error) { break exceptionLanding73; } try { object3 = {}; } catch (error) { break exceptionLanding73; } try { object3.value = value; } catch (error) { break exceptionLanding73; } try { object3.description = description; } catch (error) { break exceptionLanding73; } try { object4 = {}; } catch (error) { break exceptionLanding73; } try { value = binding(object4, name, object3); } catch (error) { break exceptionLanding73; } return value; } break reducibleJoin74; } } return {}; }