/* Metro module 14153; source: modules/search/StringMatchUtils.tsx; dependencies: [2] */ function _fun107106(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#107106, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14350:6, offset: 0x022f356f, size: 131 bytes, params: 8, frame: 16 const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const _prefix = function(a0, a1) { var property; var value = 0; var r3 = value; loopExit1: while (true) { property = a0[r3]; if (property !== a1[r3]) { return r3; } value = typeof r3 === 'bigint' ? r3 + 1n : +r3 + 1; if (value < 4) { r3 = value; continue; } break loopExit1; } return typeof value === 'bigint' ? value + 1n : +value + 1; }; (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/search/StringMatchUtils.tsx'); exports.calculateJaroWinklerSimilarity = calculateJaroWinklerSimilarity; } function calculateJaroWinklerDistance(a0, a1) { // fn#107107, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14350:129, offset: 0x022f35f2, size: 138 bytes, params: 3, frame: 17 var r0; var value3; var length; var value4; var value6; var value; const value2 = _matching(a0, a1); if (value2 > 0) { value3 = _transpositions(a0, a1); length = a0.length; value4 = value2 / length; length = a1.length; value6 = (value4 + value2 / length + (value2 - value3) / value2) / 3; if (value6 < 0.7) { r0 = value6; } else { value = _prefix(a0, a1); value = 0.1 * value; value = value6 + value * (1 - value6); r0 = value; } return r0; } return 0; } function _matching(a0, a1) { // fn#107108, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14350:291, offset: 0x022f367c, size: 236 bytes, params: 3, frame: 25 var r2; var r3; var r12; var r11; var r0; var value3; var min; var property; var value4; var value5; var value6; let Math = global.Math; const floor = Math.floor; const Math2 = global.Math; let max = Math2.max; let length = a0.length; let value = Reflect.apply(max, Math2, [length, a1.length]); value = Reflect.apply(floor, Math, [value / 2]); value -= 1; const items2 = []; length = a0.length; const value2 = 0; if (value2 < length) { r2 = value2; r3 = value2; reducibleLoop1: while (true) { Math = global.Math; max = Math.max; value3 = Reflect.apply(max, Math, [value2, r2 - value]); Math = global.Math; min = Math.min; length = a1.length; if (value3 <= Reflect.apply(min, Math, [length, r2 + value])) { r12 = value3; reducibleLoop2: while (true) { property = a0[r2]; if (property === a1[r12]) { reducibleJoin5: while (true) { if (items2[r12]) { break reducibleJoin5; } items2[r12] = true; value4 = typeof r3 === 'bigint' ? r3 + 1n : +r3 + 1; r11 = value4; break reducibleLoop2; } } value5 = typeof r12 === 'bigint' ? r12 + 1n : +r12 + 1; Math = global.Math; min = Math.min; length = a1.length; if (value5 <= Reflect.apply(min, Math, [length, r2 + value])) { r12 = value5; continue reducibleLoop2; } r11 = r3; break reducibleLoop2; } } else { r11 = r3; } value6 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; length = a0.length; if (value6 < length) { r2 = value6; r3 = r11; continue reducibleLoop1; } r0 = r11; break reducibleLoop1; } } else { r0 = value2; } return r0; } function _transpositions(a0, a1) { // fn#107109, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14350:504, offset: 0x022f3768, size: 507 bytes, params: 3, frame: 24 var r4; var r11; var r5; var r7; var r0; var value3; var min; var property; var a; var value4; var value5; var value6; var b; var value7; var value8; let Math = global.Math; const floor = Math.floor; const Math2 = global.Math; let max = Math2.max; let length = a0.length; let value = Reflect.apply(max, Math2, [length, a1.length]); value = Reflect.apply(floor, Math, [value / 2]); value -= 1; const object2 = {'a': '', 'b': ''}; const items3 = []; length = a0.length; const value2 = 0; if (value2 < length) { r4 = value2; reducibleLoop1: while (true) { Math = global.Math; max = Math.max; value3 = Reflect.apply(max, Math, [value2, r4 - value]); Math = global.Math; min = Math.min; length = a1.length; if (value3 <= Reflect.apply(min, Math, [length, r4 + value])) { r11 = value3; reducibleLoop2: while (true) { property = a0[r4]; if (property === a1[r11]) { reducibleJoin5: while (true) { if (items3[r11]) { break reducibleJoin5; } a = object2.a; object2.a = a + a0[r4]; items3[r11] = true; break reducibleLoop2; } } value4 = typeof r11 === 'bigint' ? r11 + 1n : +r11 + 1; Math = global.Math; min = Math.min; length = a1.length; if (value4 <= Reflect.apply(min, Math, [length, r4 + value])) { r11 = value4; continue reducibleLoop2; } break reducibleLoop2; } } value5 = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1; length = a0.length; if (value5 < length) { r4 = value5; continue reducibleLoop1; } break reducibleLoop1; } } const items2 = []; length = a1.length; if (value2 < length) { r4 = value2; reducibleLoop8: while (true) { Math = global.Math; max = Math.max; value6 = Reflect.apply(max, Math, [value2, r4 - value]); Math = global.Math; min = Math.min; length = a0.length; if (value6 <= Reflect.apply(min, Math, [length, r4 + value])) { r11 = value6; reducibleLoop9: while (true) { property = a1[r4]; if (property === a0[r11]) { reducibleJoin12: while (true) { if (items2[r11]) { break reducibleJoin12; } b = object2.b; object2.b = b + a1[r4]; items2[r11] = true; break reducibleLoop9; } } value7 = typeof r11 === 'bigint' ? r11 + 1n : +r11 + 1; Math = global.Math; min = Math.min; length = a0.length; if (value7 <= Reflect.apply(min, Math, [length, r4 + value])) { r11 = value7; continue reducibleLoop9; } break reducibleLoop9; } } value8 = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1; length = a1.length; if (value8 < length) { r4 = value8; continue reducibleLoop8; } break reducibleLoop8; } } length = object2.a.length; if (value2 < length) { r4 = value2; r5 = value2; reducibleLoop15: while (true) { a = object2.a; property = a[r4]; b = object2.b; reducibleJoin17: while (true) { if (property === b[r4]) { r7 = r5; break reducibleJoin17; } value = typeof r5 === 'bigint' ? r5 + 1n : +r5 + 1; r7 = value; break reducibleJoin17; } value = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1; a = object2.a; length = a.length; if (value < length) { r4 = value; r5 = r7; continue reducibleLoop15; } r0 = r7; break reducibleLoop15; } } else { r0 = value2; } Math = global.Math; return Math.floor(r0 / 2); } function calculateJaroWinklerSimilarity(a0, a1, a2) { // fn#107111, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14350:1093, offset: 0x022f398e, size: 84 bytes, params: 4, frame: 15 var calculateJaroWinklerDistanceBinding; let value = a2; let r0 = value ?? ({}); const caseSensitive = r0.caseSensitive; if (caseSensitive === undefined) { calculateJaroWinklerDistanceBinding = calculateJaroWinklerDistance; value = a0.toLowerCase(); value = calculateJaroWinklerDistanceBinding(value, a1.toLowerCase()); r0 = value; } else if (caseSensitive) { r0 = calculateJaroWinklerDistance(a0, a1); } else { calculateJaroWinklerDistanceBinding = calculateJaroWinklerDistance; value = a0.toLowerCase(); value = calculateJaroWinklerDistanceBinding(value, a1.toLowerCase()); r0 = value; } return r0; }