{"ScriptPreparationCode":"var __getOwnPropSymbols = Object.getOwnPropertySymbols;\r\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\r\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\r\nvar getObjectKeys = Object.keys;\r\n\r\nvar __objRest = (source, exclude) =\u003E {\r\n var target = {};\r\n for (var prop in source)\r\n if (__hasOwnProp.call(source, prop) \u0026\u0026 exclude.indexOf(prop) \u003C 0)\r\n target[prop] = source[prop];\r\n if (source != null \u0026\u0026 __getOwnPropSymbols)\r\n for (var prop of __getOwnPropSymbols(source)) {\r\n if (exclude.indexOf(prop) \u003C 0 \u0026\u0026 __propIsEnum.call(source, prop))\r\n target[prop] = source[prop];\r\n }\r\n return target;\r\n};\r\n\r\nvar GlobalContextName = /* @__PURE__ */ ((GlobalContextName2) =\u003E {\r\n GlobalContextName2[\u0022ApplicationContext\u0022] = \u0022ApplicationContext\u0022;\r\n GlobalContextName2[\u0022CookieIdContext\u0022] = \u0022CookieIdContext\u0022;\r\n GlobalContextName2[\u0022HttpContext\u0022] = \u0022HttpContext\u0022;\r\n GlobalContextName2[\u0022IdentityContext\u0022] = \u0022IdentityContext\u0022;\r\n GlobalContextName2[\u0022InputValueContext\u0022] = \u0022InputValueContext\u0022;\r\n GlobalContextName2[\u0022LocaleContext\u0022] = \u0022LocaleContext\u0022;\r\n GlobalContextName2[\u0022MarketingContext\u0022] = \u0022MarketingContext\u0022;\r\n GlobalContextName2[\u0022PathContext\u0022] = \u0022PathContext\u0022;\r\n GlobalContextName2[\u0022SessionContext\u0022] = \u0022SessionContext\u0022;\r\n return GlobalContextName2;\r\n})(GlobalContextName || {});\r\nvar LocationContextName = /* @__PURE__ */ ((LocationContextName2) =\u003E {\r\n LocationContextName2[\u0022ContentContext\u0022] = \u0022ContentContext\u0022;\r\n LocationContextName2[\u0022ExpandableContext\u0022] = \u0022ExpandableContext\u0022;\r\n LocationContextName2[\u0022InputContext\u0022] = \u0022InputContext\u0022;\r\n LocationContextName2[\u0022LinkContext\u0022] = \u0022LinkContext\u0022;\r\n LocationContextName2[\u0022MediaPlayerContext\u0022] = \u0022MediaPlayerContext\u0022;\r\n LocationContextName2[\u0022NavigationContext\u0022] = \u0022NavigationContext\u0022;\r\n LocationContextName2[\u0022OverlayContext\u0022] = \u0022OverlayContext\u0022;\r\n LocationContextName2[\u0022PressableContext\u0022] = \u0022PressableContext\u0022;\r\n LocationContextName2[\u0022RootLocationContext\u0022] = \u0022RootLocationContext\u0022;\r\n return LocationContextName2;\r\n})(LocationContextName || {});\r\nvar ContextNames = new Set([...Object.keys(LocationContextName), ...Object.keys(GlobalContextName)]);\r\n\r\nvar isAbstractContext = (context) =\u003E {\r\n if (typeof context !== \u0022object\u0022 || context === null || context === void 0) {\r\n return false;\r\n }\r\n if (!context.__instance_id || !context._type || !context.id) {\r\n return false;\r\n }\r\n return ContextNames.has(context._type);\r\n};\r\n\r\nwindow.isContextEqual = (contextA, contextB) =\u003E {\r\n if (!isAbstractContext(contextA) || !isAbstractContext(contextB)) {\r\n return false;\r\n }\r\n const _a3 = contextA, { __instance_id: _a2 } = _a3, a = __objRest(_a3, [\u0022__instance_id\u0022]);\r\n const _b2 = contextB, { __instance_id: _b } = _b2, b = __objRest(_b2, [\u0022__instance_id\u0022]);\r\n const aKeys = getObjectKeys(a);\r\n const aLength = aKeys.length;\r\n if (aLength !== getObjectKeys(b).length) {\r\n return false;\r\n }\r\n for (let i = 0; i \u003C aLength; i\u002B\u002B) {\r\n if (!b.hasOwnProperty(aKeys[i])) {\r\n return false;\r\n }\r\n }\r\n for (let i = 0; i \u003C aLength; i\u002B\u002B) {\r\n const aKey = aKeys[i];\r\n if (a[aKey] !== b[aKey]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n\r\n\r\nwindow.fdeq = function equal(a, b) {\r\n if (a === b) return true;\r\n\r\n if (a \u0026\u0026 b \u0026\u0026 typeof a == \u0027object\u0027 \u0026\u0026 typeof b == \u0027object\u0027) {\r\n if (a.constructor !== b.constructor) return false;\r\n\r\n var length, i, keys;\r\n if (Array.isArray(a)) {\r\n length = a.length;\r\n if (length != b.length) return false;\r\n for (i = length; i-- !== 0;)\r\n if (!equal(a[i], b[i])) return false;\r\n return true;\r\n }\r\n\r\n\r\n if ((a instanceof Map) \u0026\u0026 (b instanceof Map)) {\r\n if (a.size !== b.size) return false;\r\n for (i of a.entries())\r\n if (!b.has(i[0])) return false;\r\n for (i of a.entries())\r\n if (!equal(i[1], b.get(i[0]))) return false;\r\n return true;\r\n }\r\n\r\n if ((a instanceof Set) \u0026\u0026 (b instanceof Set)) {\r\n if (a.size !== b.size) return false;\r\n for (i of a.entries())\r\n if (!b.has(i[0])) return false;\r\n return true;\r\n }\r\n\r\n if (ArrayBuffer.isView(a) \u0026\u0026 ArrayBuffer.isView(b)) {\r\n length = a.length;\r\n if (length != b.length) return false;\r\n for (i = length; i-- !== 0;)\r\n if (a[i] !== b[i]) return false;\r\n return true;\r\n }\r\n\r\n\r\n if (a.constructor === RegExp) return a.source === b.source \u0026\u0026 a.flags === b.flags;\r\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\r\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\r\n\r\n keys = Object.keys(a);\r\n length = keys.length;\r\n if (length !== Object.keys(b).length) return false;\r\n\r\n for (i = length; i-- !== 0;)\r\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\r\n\r\n for (i = length; i-- !== 0;) {\r\n var key = keys[i];\r\n\r\n if (!equal(a[key], b[key])) return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // true if both NaN, false otherwise\r\n return a !== a \u0026\u0026 b !== b;\r\n};\r\n\r\nfunction shuffle(array) {\r\n let currentIndex = array.length, randomIndex;\r\n\r\n // While there remain elements to shuffle.\r\n while (currentIndex != 0) {\r\n\r\n // Pick a remaining element.\r\n randomIndex = Math.floor(Math.random() * currentIndex);\r\n currentIndex--;\r\n\r\n // And swap it with the current element.\r\n [array[currentIndex], array[randomIndex]] = [\r\n array[randomIndex], array[currentIndex]];\r\n }\r\n\r\n return array;\r\n}\r\n\r\nwindow.contexts = [];\r\nfor(let i=0; i\u003C10000;i\u002B\u002B){\r\n window.contexts.push({__instance_id: crypto.randomUUID(), _type: \u0027PressableContext\u0027, id: i})\r\n}\r\nfor(let i=0; i\u003C10000;i\u002B\u002B){\r\n window.contexts.push({__instance_id: crypto.randomUUID(), _type: \u0027PressableContext\u0027, id: i})\r\n}\r\nfor(let i=0; i\u003C10000;i\u002B\u002B){\r\n window.contexts.push({__instance_id: crypto.randomUUID(), _type: \u0027PressableContext\u0027, id: i})\r\n}\r\nshuffle(window.contexts);\r\n\r\n","TestCases":[{"Name":"isContextEqual","Code":"const contexts = window.contexts;\r\nwhile(contexts.length){\r\n if(contexts.length \u003E 1) {\r\n \tisContextEqual(contexts.pop(), contexts.pop())\r\n }\r\n}\r\n","IsDeferred":false},{"Name":"fast-deep-equal","Code":"const contexts = window.contexts;\r\nwhile(contexts.length){\r\n if(contexts.length \u003E 1) {\r\n \tfdeq(contexts.pop(), contexts.pop())\r\n }\r\n}","IsDeferred":false}]}