diff --git a/contrib/generated/errorCodes.json b/contrib/generated/errorCodes.json index ee2ebf2..5223f7d 100644 --- a/contrib/generated/errorCodes.json +++ b/contrib/generated/errorCodes.json @@ -1 +1 @@ -{"M0003":"# M0003\n\nThis error means that a module tried to import itself.\n\nErroneous code example (file is called `Self.mo`):\n\n```motoko\nimport S \"./Self\"; // import error, file Self.mo must not depend on itself\n\nmodule { ... }\n```\n\nIf you encounter this error you should probably remove the offending import.\n","M0037":"# M0037\n\nIf you get this error then you are trying to message from a\nblock or expression that has no send capability, such as the\ntop level of an `actor`.\n\nYou can also get this error when you are trying to message or\n`throw` an error from the `finally` clause of a `try` block.\n\n`finally` clauses are generally used to clean up local state\nin the event of messaging failures, and are especially invoked when\nthe processing of an `await` result traps. In this last-resort cleanup\nonly local manipulations are allowed to (e.g.) release locks and thus\nprevent the canister from ending up in a stuck state.\n\nShould you encounter this error, so make sure that you move all messaging\ncode out of the `finally` block. In all other cases where send capability\nis available, wrapping the indicated expression in an `async` can help.\n\n","M0137":"# M0137\n\nThis error means that you declared a type or class that explicitly or implicitly references\nan outer type parameter.\n\nErroneous code examples:\n\n```motoko\nclass C(){\n type U = T; // type U mentions parameter T of class C\n};\n```\n\n```motoko\nclass D(){\n class E(x : T) {\n public let y : T = x; // class E mentions parameter T of class D in a field\n };\n}\n```\n\nTo avoid this error, try parameterizing the inner types.\n\n```motoko\nclass C(){\n type U = T1;\n};\n```\n\n```motoko\nclass D(){\n class E(x : T1) {\n public let y : T1 = x;\n };\n}\n```\n\nThis is a temporary restriction of Motoko that we hope to remove in future.\n","M0141":"# M0141\n\nThis error indicates that the main actor or actor class has some leading or trailing declarations that are not just `import` declarations.\n\nThe offending declarations should be moved into the body of the main actor or actor class.\n\nHere's an offending code example:\n\n```motoko\n// illegal leading declarations before main actor\ntype Point = (Int, Int);\nlet origin : Point = (0, 0);\n\nactor {\n\n public func getOrigin() : async Point { origin };\n\n}\n```\n\nThis is a possible correction of the code:\n\n```motoko\nactor {\n\n // legal leading declarations within main actor\n type Point = (Int, Int);\n let origin : Point = (0, 0);\n\n public func getOrigin() : async Point { origin };\n\n}\n```\n\n","M0149":"# M0149\n\nThis error means that you supplied an immutable record field (declared without `var`), where a mutable record field (specified with `var`), was expected.\n\nErroneous code example:\n\n```motoko\n{ count = 0 } : { var count : Nat }\n```\n\nIf you encounter this error, you should probably insert the `var` keyword:\n\n```motoko\n{ var count = 1 } : { var count : Nat }\n```\n","M0150":"# M0150\n\nThis error means you supplied a mutable record field (declared with `var`) where an immutable record field (specified without `var`) was expected.\n\nErroneous code example:\n\n```motoko\n{ var name = \"Fred\" } : { name : Text }\n```\n\nIf you encounter this error, you should probably omit `var`:\n\n```motoko\n{ name = \"Fred\" } : { name : Text }\n```\n","M0151":"# M0151\n\nThis error means that a object literal is missing some fields, maybe because of a typo.\n\nErroneous code examples:\n\n```motoko\n{ first_name = \"Fred\" } : { firstName : Text }\n{ firstName = \"Fred\" } : { firstName : Text; lastName : Text }\n```\n\nIf you encounter this error, you need to add the missing field name to the\nobject literal.\n\n```motoko\n{ firstName = \"Fred\" } : { firstName : Text }\n{ firstName = \"Fred\"; lastName = \"Flintstone\" } : { firstName : Text; lastName : Text }\n```\n","M0153":"# M0153\n\nThis error means that an imported Candid file (`.did`) mentions types that\ncannot be represented in Motoko. These are\n\n* `float32`\n* `service` types with method names that are not identifiers, e.g. because\n they contain special characters.\n\nIf you encounter this error, and you can, you should avoid these types in the\nservice’s interface. If you have no control over the interface, you cannot\ninteract with it from Motoko.\n","M0154":"# M0154\n\nYou are using a field (typically a module field) that has a deprecation annotation\nattached to its definition, e.g.\n\n```motoko\nmodule SomeModule {\n\n /// @deprecated The foo function is deprecated and will be removed next release\n public func foo() {}\n\n}\n```\n\nThe warning should include an explanation provided by the author of that code.\n","M0155":"# M0155\n\nThis warning indicates that the type of a subtraction operation had to be deduced from its operands and was inferred to be `Nat`.\nThat implies that it traps when the result is negative, which may be unintentional.\n\nOffending code examples:\n\n```motoko\nfunc f(n : Nat) {\n if (n < 10) { return };\n let m = 2 * (n - 1);\n};\n\nfunc g(n : Nat) {\n if (n - 1 < 10) { return };\n};\n```\n\nIf the subtraction was indeed intended to have a `Nat` result, you can let the compiler know by annotating the intended type explicitly:\n\n```motoko\nfunc f(n : Nat) {\n let m : Nat = 2 * (n - 1);\n};\n```\n\nIf the intended type was `Int`, however, you can either annotate it as such:\n\n```\nfunc f(n : Nat) {\n let m : Int = 2 * (n - 1);\n};\n```\n\nOr you can insert a sign operator `+`, which also forces the expression to be of type `Int`:\n\n```\nfunc f(n : Nat) {\n let m = 2 * (+n - 1);\n};\n```\n\nThis latter possibility is particularly convenient in the case of comparisons, because it is always okay to perform them at type `Int`:\n\n```\nfunc g(n : Nat) {\n if (+n - 1 < 10) { return };\n};\n```\n","M0156":"# M0156\n\nThis error means that a parameterized type definition, or set of type definitions, is too complicated for Motoko to accept.\n\nMotoko rejects type definitions that are expansive, in the sense that unfolding type definitions may produce an ever-expanding set of types.\n\nFor example, the type definition:\n\n```motoko\ntype List = ?(T, List);\n```\n\nthat recursively instantiates `List` at the same parameter `T`, is non-expansive and accepted, but the similar looking definition:\n\n```motoko\ntype Seq = ?(T, Seq<[T]>);\n```\n\nthat recursively instantiates `Seq` with a larger type, `[T]`, containing `T`, is *expansive* and rejected.\n\nIf you encounter this error, try to restructure your type definitions to be non-expansive.\n","M0157":"# M0157\n\nThis error means that a type definition, or set of type definitions, is ill-defined.\n\nA type is _productive_ if recursively expanding any outermost type constructor in its definition\neventually produces a type other than the application of a type constructor.\n\nMotoko requires all type declarations to be productive.\n\nFor example, the type definitions:\n\n```motoko\ntype Person = { first : Text; last : Text };\n\ntype List = ?(T, List);\n\ntype Fst = T;\n\ntype Ok = Fst>;\n```\n\nare all productive and legal.\n\nBut the type definitions,\n\n```motoko\ntype C = C;\n\ntype D = D;\n\ntype E = F;\ntype F = E;\n\ntype G = Fst, Any>;\n```\n\nare all non-productive, since each definition will enter a loop after one or more\nexpansions of its body.\n\nIf you encounter this error, try to restructure your type definitions to be productive.\n","M0158":"# M0158\n\nThis error means that you declared a public class without providing it with a name.\n\nErroneous code example:\n\n```motoko\npublic class () {};\n```\n\nIf you encounter this error, you should probably name the class or make it private.\n\n```motoko\npublic class C() {};\n```\n\nPublic fields must be named since they determine the interface of the enclosing object.\n","M0194":"# M0194\n\nThis warning means that you defined an identifier without\nreferencing it later, a good indicator of dead code.\n\nDubious code example:\n\n```motoko\nlet nickname = \"klutz\";\n// code that never uses `nickname`\n```\n\nIf you encounter this warning, you can either delete the definition (if the code has no other side-effect),\n\n```motoko\n// code that never uses `nickname`\n```\n\nreplace it by a wildcard pattern:\n\n```motoko\nlet _ = \"klutz\";\n// code that never uses `nickname`\n```\n\nor just prefix the identifier with an underscore:\n\n```motoko\nlet _nickname = \"klutz\";\n// code that never uses `nickname`\n```\n","M0195":"# M0195\n\nThis warning means that you called a function that demands elevated (`system`) capabilities,\nwithout manifestly passing the capability.\n\n","M0197":"# M0197\n\nThis error means that you tried to call a function that requires (`system`) capabilities,\nin a context that does not provide them.\n\nOnly actor bodies, async expressions, non-query async function bodies and\nlocal functions with a leading `system` type parameter have system capabilities.\n\n","M0198":"# M0198\n\nThis warning means that you specified a field identifier in an object pattern without referencing this identifier later, a good indicator of dead code.\n\nDubious code example:\n\n```motoko\nimport Debug \"mo:core/Debug\";\n\nlet person = { firstName = \"Anna\"; secondName = \"Smith\" };\n\nlet { firstName; secondName } = person;\nDebug.print(firstName);\n\n// secondName is not used\n```\n\nIf you encounter this warning and the identifier is indeed not needed, \nyou can either remove the field identifier from the object pattern,\n\n```motoko\nimport Debug \"mo:core/Debug\";\n\nlet person = { firstName = \"Anna\"; secondName = \"Smith\" };\n\nlet { firstName } = person;\nDebug.print(firstName);\n```\n\nbind the field to a wildcard pattern:\n\n```motoko\nimport Debug \"mo:core/Debug\";\n\nlet person = { firstName = \"Anna\"; secondName = \"Smith\" };\n\nlet { firstName; secondName = _ } = person;\nDebug.print(firstName);\n\n// secondName is not needed\n```\n\nor bind the field to an identifier with an underscore prefix:\n\n```motoko\nimport Debug \"mo:core/Debug\";\n\nlet person = { firstName = \"Anna\"; secondName = \"Smith\" };\n\nlet { firstName; secondName = _secondName } = person;\nDebug.print(firstName);\n\n// secondName is not needed\n```\n","M0199":"# M0199\n\nThis error or warning means that your code is either directly or indirectly using the now deprecated library `ExperimentalStableMemory.mo` (or its supporting compiler primitives).\n\nThe library works as advertised but is a potential hazard as the resource it provides access to is shared between all clients of the library.\nThis means that a library may unintentionally or maliciously read or modify data maintained by your application, or by another library imported by your application.\n\nIf possible, please upgrade your code to use library `Region.mo` instead.\nThis improved library offers a similar abstraction, but instead of a single memory that is implicitly accessible to all callers, it provides multiple memories.\nThese memories, called regions, are isolated from each other and inaccessible unless a region is explicitly shared between libraries.\n\nThe `moc` compiler flag `--experimental-stable-memory ` flag controls the production of this error or warning message, allowing your code to compile as before:\n* n < 0: error on use of stable memory primitives.\n* n = 0: warn on use of stable memory primitives (the default).\n* n > 1: warning-less use of stable memory primitives (for legacy applications).\n\nI.e. if your application cannot easily be upgraded to use `Regions.mo` and still requires access to `ExperimentalStableMemory.mo`, you can opt-in to legacy support for `ExperimentalStableMemory.mo` using the `moc` compiler flag `--experimental-stable-memory 1`.\n","M0200":"# M0200\n\nThis error means that the compiler encountered a subtyping, equivalence or constructor equivalence problem that it cannot decide is true or false in a timely manner.\n\nThis is due to a limitation of the type system and may require you to rewrite\nsome of your code to avoid the problem.\n\nThe most like cause is a recursive type or class whose definition involves\ninstantiating the type or class with nested type parameters.\n\nFor example, this definition of `Box`\n\n``` motoko\nclass Box(v : T) {\n public let value = t;\n public func map(f : T -> R) : Box {\n Box(f t)\n };\n}\n```\nis problematic because `Box` is instantiated at `R`, an inner type parameter, while\n\n``` motoko\nclass Box(v : T) {\n public let value = v;\n public func map(f : T -> T) : Box {\n Box(f value)\n };\n}\n```\nis accepted (but also less useful).\n\nAnother workaround is to define the problematic method as a separate\nfunction, outside of the class:\n\n``` motoko\nclass Box(v : T) {\n public let value = v\n};\n\nfunc map(b : Box, f : T -> R) : Box {\n Box(f(b.value))\n};\n```\n","M0212":"# M0212\n\nThis warning means that you are affixing a parenthetical note to a message send (i.e. either\na canister method call of a self-send with `async`, or `actor`) that contains an attribute not recognised\nby this version of the Motoko compiler.\n\nCurrently, only these attributes are recognized in parenthetical notes:\n\nFor _message_ sends and `async` expressions\n- `cycles : Nat`\n- `timeout : Nat32`\n\nFor `actor` and `actor class` declarations:\n- `migration : {} -> {}`\n"} \ No newline at end of file +{"M0003":"# M0003\n\nThis error means that a module tried to import itself.\n\nErroneous code example (file is called `Self.mo`):\n\n```motoko\nimport S \"./Self\"; // import error, file Self.mo must not depend on itself\n\nmodule { ... }\n```\n\nIf you encounter this error you should probably remove the offending import.\n","M0037":"# M0037\n\nIf you get this error then you are trying to message from a\nblock or expression that has no send capability, such as the\ntop level of an `actor`.\n\nYou can also get this error when you are trying to message or\n`throw` an error from the `finally` clause of a `try` block.\n\n`finally` clauses are generally used to clean up local state\nin the event of messaging failures, and are especially invoked when\nthe processing of an `await` result traps. In this last-resort cleanup\nonly local manipulations are allowed to (e.g.) release locks and thus\nprevent the canister from ending up in a stuck state.\n\nShould you encounter this error, so make sure that you move all messaging\ncode out of the `finally` block. In all other cases where send capability\nis available, wrapping the indicated expression in an `async` can help.\n\n","M0137":"# M0137\n\nThis error means that you declared a type or class that explicitly or implicitly references\nan outer type parameter.\n\nErroneous code examples:\n\n```motoko\nclass C(){\n type U = T; // type U mentions parameter T of class C\n};\n```\n\n```motoko\nclass D(){\n class E(x : T) {\n public let y : T = x; // class E mentions parameter T of class D in a field\n };\n}\n```\n\nTo avoid this error, try parameterizing the inner types.\n\n```motoko\nclass C(){\n type U = T1;\n};\n```\n\n```motoko\nclass D(){\n class E(x : T1) {\n public let y : T1 = x;\n };\n}\n```\n\nThis is a temporary restriction of Motoko that we hope to remove in future.\n","M0141":"# M0141\n\nThis error indicates that the main actor or actor class has some leading or trailing declarations that are not just `import` declarations.\n\nThe offending declarations should be moved into the body of the main actor or actor class.\n\nHere's an offending code example:\n\n```motoko\n// illegal leading declarations before main actor\ntype Point = (Int, Int);\nlet origin : Point = (0, 0);\n\nactor {\n\n public func getOrigin() : async Point { origin };\n\n}\n```\n\nThis is a possible correction of the code:\n\n```motoko\nactor {\n\n // legal leading declarations within main actor\n type Point = (Int, Int);\n let origin : Point = (0, 0);\n\n public func getOrigin() : async Point { origin };\n\n}\n```\n\n","M0149":"# M0149\n\nThis error means that you supplied an immutable record field (declared without `var`), where a mutable record field (specified with `var`), was expected.\n\nErroneous code example:\n\n```motoko\n{ count = 0 } : { var count : Nat }\n```\n\nIf you encounter this error, you should probably insert the `var` keyword:\n\n```motoko\n{ var count = 1 } : { var count : Nat }\n```\n","M0150":"# M0150\n\nThis error means you supplied a mutable record field (declared with `var`) where an immutable record field (specified without `var`) was expected.\n\nErroneous code example:\n\n```motoko\n{ var name = \"Fred\" } : { name : Text }\n```\n\nIf you encounter this error, you should probably omit `var`:\n\n```motoko\n{ name = \"Fred\" } : { name : Text }\n```\n","M0151":"# M0151\n\nThis error means that a object literal is missing some fields, maybe because of a typo.\n\nErroneous code examples:\n\n```motoko\n{ first_name = \"Fred\" } : { firstName : Text }\n{ firstName = \"Fred\" } : { firstName : Text; lastName : Text }\n```\n\nIf you encounter this error, you need to add the missing field name to the\nobject literal.\n\n```motoko\n{ firstName = \"Fred\" } : { firstName : Text }\n{ firstName = \"Fred\"; lastName = \"Flintstone\" } : { firstName : Text; lastName : Text }\n```\n","M0153":"# M0153\n\nThis error means that an imported Candid file (`.did`) mentions types that\ncannot be represented in Motoko. These are\n\n* `float32`\n* `service` types with method names that are not identifiers, e.g. because\n they contain special characters.\n\nIf you encounter this error, and you can, you should avoid these types in the\nservice’s interface. If you have no control over the interface, you cannot\ninteract with it from Motoko.\n","M0154":"# M0154\n\nYou are using a field (typically a module field) that has a deprecation annotation\nattached to its definition, e.g.\n\n```motoko\nmodule SomeModule {\n\n /// @deprecated The foo function is deprecated and will be removed next release\n public func foo() {}\n\n}\n```\n\nThe warning should include an explanation provided by the author of that code.\n","M0155":"# M0155\n\nThis warning indicates that the type of a subtraction operation had to be deduced from its operands and was inferred to be `Nat`.\nThat implies that it traps when the result is negative, which may be unintentional.\n\nOffending code examples:\n\n```motoko\nfunc f(n : Nat) {\n if (n < 10) { return };\n let m = 2 * (n - 1);\n};\n\nfunc g(n : Nat) {\n if (n - 1 < 10) { return };\n};\n```\n\nIf the subtraction was indeed intended to have a `Nat` result, you can let the compiler know by annotating the intended type explicitly:\n\n```motoko\nfunc f(n : Nat) {\n let m : Nat = 2 * (n - 1);\n};\n```\n\nIf the intended type was `Int`, however, you can either annotate it as such:\n\n```\nfunc f(n : Nat) {\n let m : Int = 2 * (n - 1);\n};\n```\n\nOr you can insert a sign operator `+`, which also forces the expression to be of type `Int`:\n\n```\nfunc f(n : Nat) {\n let m = 2 * (+n - 1);\n};\n```\n\nThis latter possibility is particularly convenient in the case of comparisons, because it is always okay to perform them at type `Int`:\n\n```\nfunc g(n : Nat) {\n if (+n - 1 < 10) { return };\n};\n```\n","M0156":"# M0156\n\nThis error means that a parameterized type definition, or set of type definitions, is too complicated for Motoko to accept.\n\nMotoko rejects type definitions that are expansive, in the sense that unfolding type definitions may produce an ever-expanding set of types.\n\nFor example, the type definition:\n\n```motoko\ntype List = ?(T, List);\n```\n\nthat recursively instantiates `List` at the same parameter `T`, is non-expansive and accepted, but the similar looking definition:\n\n```motoko\ntype Seq = ?(T, Seq<[T]>);\n```\n\nthat recursively instantiates `Seq` with a larger type, `[T]`, containing `T`, is *expansive* and rejected.\n\nIf you encounter this error, try to restructure your type definitions to be non-expansive.\n","M0157":"# M0157\n\nThis error means that a type definition, or set of type definitions, is ill-defined.\n\nA type is _productive_ if recursively expanding any outermost type constructor in its definition\neventually produces a type other than the application of a type constructor.\n\nMotoko requires all type declarations to be productive.\n\nFor example, the type definitions:\n\n```motoko\ntype Person = { first : Text; last : Text };\n\ntype List = ?(T, List);\n\ntype Fst = T;\n\ntype Ok = Fst>;\n```\n\nare all productive and legal.\n\nBut the type definitions,\n\n```motoko\ntype C = C;\n\ntype D = D;\n\ntype E = F;\ntype F = E;\n\ntype G = Fst, Any>;\n```\n\nare all non-productive, since each definition will enter a loop after one or more\nexpansions of its body.\n\nIf you encounter this error, try to restructure your type definitions to be productive.\n","M0158":"# M0158\n\nThis error means that you declared a public class without providing it with a name.\n\nErroneous code example:\n\n```motoko\npublic class () {};\n```\n\nIf you encounter this error, you should probably name the class or make it private.\n\n```motoko\npublic class C() {};\n```\n\nPublic fields must be named since they determine the interface of the enclosing object.\n","M0194":"# M0194\n\nThis warning means that you defined an identifier without\nreferencing it later, a good indicator of dead code.\n\nDubious code example:\n\n```motoko\nlet nickname = \"klutz\";\n// code that never uses `nickname`\n```\n\nIf you encounter this warning, you can either delete the definition (if the code has no other side-effect),\n\n```motoko\n// code that never uses `nickname`\n```\n\nreplace it by a wildcard pattern:\n\n```motoko\nlet _ = \"klutz\";\n// code that never uses `nickname`\n```\n\nor just prefix the identifier with an underscore:\n\n```motoko\nlet _nickname = \"klutz\";\n// code that never uses `nickname`\n```\n","M0197":"# M0197\n\nThis error means that you tried to call a function that requires (`system`) capabilities,\nin a context that does not provide them.\n\nOnly actor bodies, async expressions, non-query async function bodies and\nlocal functions with a leading `system` type parameter have system capabilities.\n\n","M0195":"# M0195\n\nThis warning means that you called a function that demands elevated (`system`) capabilities,\nwithout manifestly passing the capability.\n\n","M0198":"# M0198\n\nThis warning means that you specified a field identifier in an object pattern without referencing this identifier later, a good indicator of dead code.\n\nDubious code example:\n\n```motoko\nimport Debug \"mo:core/Debug\";\n\nlet person = { firstName = \"Anna\"; secondName = \"Smith\" };\n\nlet { firstName; secondName } = person;\nDebug.print(firstName);\n\n// secondName is not used\n```\n\nIf you encounter this warning and the identifier is indeed not needed, \nyou can either remove the field identifier from the object pattern,\n\n```motoko\nimport Debug \"mo:core/Debug\";\n\nlet person = { firstName = \"Anna\"; secondName = \"Smith\" };\n\nlet { firstName } = person;\nDebug.print(firstName);\n```\n\nbind the field to a wildcard pattern:\n\n```motoko\nimport Debug \"mo:core/Debug\";\n\nlet person = { firstName = \"Anna\"; secondName = \"Smith\" };\n\nlet { firstName; secondName = _ } = person;\nDebug.print(firstName);\n\n// secondName is not needed\n```\n\nor bind the field to an identifier with an underscore prefix:\n\n```motoko\nimport Debug \"mo:core/Debug\";\n\nlet person = { firstName = \"Anna\"; secondName = \"Smith\" };\n\nlet { firstName; secondName = _secondName } = person;\nDebug.print(firstName);\n\n// secondName is not needed\n```\n","M0199":"# M0199\n\nThis error or warning means that your code is either directly or indirectly using the now deprecated library `ExperimentalStableMemory.mo` (or its supporting compiler primitives).\n\nThe library works as advertised but is a potential hazard as the resource it provides access to is shared between all clients of the library.\nThis means that a library may unintentionally or maliciously read or modify data maintained by your application, or by another library imported by your application.\n\nIf possible, please upgrade your code to use library `Region.mo` instead.\nThis improved library offers a similar abstraction, but instead of a single memory that is implicitly accessible to all callers, it provides multiple memories.\nThese memories, called regions, are isolated from each other and inaccessible unless a region is explicitly shared between libraries.\n\nThe `moc` compiler flag `--experimental-stable-memory ` flag controls the production of this error or warning message, allowing your code to compile as before:\n* n < 0: error on use of stable memory primitives.\n* n = 0: warn on use of stable memory primitives (the default).\n* n > 1: warning-less use of stable memory primitives (for legacy applications).\n\nI.e. if your application cannot easily be upgraded to use `Regions.mo` and still requires access to `ExperimentalStableMemory.mo`, you can opt-in to legacy support for `ExperimentalStableMemory.mo` using the `moc` compiler flag `--experimental-stable-memory 1`.\n","M0200":"# M0200\n\nThis error means that the compiler encountered a subtyping, equivalence or constructor equivalence problem that it cannot decide is true or false in a timely manner.\n\nThis is due to a limitation of the type system and may require you to rewrite\nsome of your code to avoid the problem.\n\nThe most like cause is a recursive type or class whose definition involves\ninstantiating the type or class with nested type parameters.\n\nFor example, this definition of `Box`\n\n``` motoko\nclass Box(v : T) {\n public let value = t;\n public func map(f : T -> R) : Box {\n Box(f t)\n };\n}\n```\nis problematic because `Box` is instantiated at `R`, an inner type parameter, while\n\n``` motoko\nclass Box(v : T) {\n public let value = v;\n public func map(f : T -> T) : Box {\n Box(f value)\n };\n}\n```\nis accepted (but also less useful).\n\nAnother workaround is to define the problematic method as a separate\nfunction, outside of the class:\n\n``` motoko\nclass Box(v : T) {\n public let value = v\n};\n\nfunc map(b : Box, f : T -> R) : Box {\n Box(f(b.value))\n};\n```\n","M0212":"# M0212\n\nThis warning means that you are affixing a parenthetical note to a message send (i.e. either\na canister method call of a self-send with `async`, or `actor`) that contains an attribute not recognised\nby this version of the Motoko compiler.\n\nCurrently, only these attributes are recognized in parenthetical notes:\n\nFor _message_ sends and `async` expressions\n- `cycles : Nat`\n- `timeout : Nat32`\n\nFor `actor` and `actor class` declarations:\n- `migration : {} -> {}`\n"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 9c44a55..9db2388 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "motoko", - "version": "4.4.0", + "version": "4.5.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "motoko", - "version": "4.4.0", + "version": "4.5.0", "license": "Apache-2.0", "dependencies": { "cross-fetch": "3.1.5", diff --git a/package.json b/package.json index 4da98d4..6e95f4f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "motoko", - "version": "4.4.0", + "version": "4.5.0", "description": "Compile and run Motoko smart contracts in Node.js or the browser.", "author": "Ryan Vandersmith (https://github.com/rvanasa)", "license": "Apache-2.0", diff --git a/packages/latest/core.json b/packages/latest/core.json index 86ab061..db825b5 100644 --- a/packages/latest/core.json +++ b/packages/latest/core.json @@ -1 +1 @@ -{"name":"core","version":"v2.4.0","files":{"Types.mo":{"content":"/// Common types used throughout the core package.\n///\n/// Example usage:\n///\n/// ```motoko name=import\n/// import { type Result; type Iter } \"mo:core/Types\";\n///\n/// // Result for error handling\n/// let result : Result = #ok(42);\n///\n/// // Iterator for sequences\n/// let iter : Iter = { next = func() { ?1 } };\n/// ```\n\nimport Prim \"mo:⛔\";\n\nmodule {\n public type Blob = Prim.Types.Blob;\n public type Bool = Prim.Types.Bool;\n public type Char = Prim.Types.Char;\n public type Error = Prim.Types.Error;\n public type ErrorCode = Prim.ErrorCode;\n public type Float = Prim.Types.Float;\n public type Int = Prim.Types.Int;\n public type Int8 = Prim.Types.Int8;\n public type Int16 = Prim.Types.Int16;\n public type Int32 = Prim.Types.Int32;\n public type Int64 = Prim.Types.Int64;\n public type Nat = Prim.Types.Nat;\n public type Nat8 = Prim.Types.Nat8;\n public type Nat16 = Prim.Types.Nat16;\n public type Nat32 = Prim.Types.Nat32;\n public type Nat64 = Prim.Types.Nat64;\n public type Principal = Prim.Types.Principal;\n public type Region = Prim.Types.Region;\n public type Text = Prim.Types.Text;\n\n public type Hash = Nat32;\n public type Iter = { next : () -> ?T };\n public type Order = { #less; #equal; #greater };\n public type Result = { #ok : T; #err : E };\n public type Pattern = {\n #char : Char;\n #text : Text;\n #predicate : (Char -> Bool)\n };\n public type Time = Int;\n public type Duration = {\n #days : Nat;\n #hours : Nat;\n #minutes : Nat;\n #seconds : Nat;\n #milliseconds : Nat;\n #nanoseconds : Nat\n };\n public type TimerId = Nat;\n\n public type List = {\n var blocks : [var [var ?T]];\n var blockIndex : Nat;\n var elementIndex : Nat\n };\n\n public module Queue {\n public type Queue = {\n var front : ?Node;\n var back : ?Node;\n var size : Nat\n };\n\n public type Node = {\n value : T;\n var next : ?Node;\n var previous : ?Node\n }\n };\n public type Queue = Queue.Queue;\n\n public module PriorityQueue {\n public type PriorityQueue = {\n heap : List\n }\n };\n public type PriorityQueue = PriorityQueue.PriorityQueue;\n\n public module Set {\n public type Node = {\n #leaf : Leaf;\n #internal : Internal\n };\n\n public type Data = {\n elements : [var ?T];\n var count : Nat\n };\n\n public type Internal = {\n data : Data;\n children : [var ?Node]\n };\n\n public type Leaf = {\n data : Data\n };\n\n public type Set = {\n var root : Node;\n var size : Nat\n }\n };\n public type Set = Set.Set;\n\n public module Map {\n public type Node = {\n #leaf : Leaf;\n #internal : Internal\n };\n\n public type Data = {\n kvs : [var ?(K, V)];\n var count : Nat\n };\n\n public type Internal = {\n data : Data;\n children : [var ?Node]\n };\n\n public type Leaf = {\n data : Data\n };\n\n public type Map = {\n var root : Node;\n var size : Nat\n }\n };\n\n public type Map = Map.Map;\n\n public module Stack {\n public type Stack = {\n var top : Pure.List;\n var size : Nat\n }\n };\n public type Stack = Stack.Stack;\n\n public module Pure {\n public type List = ?(T, List);\n\n public module Map {\n public type Map = {\n size : Nat;\n root : Tree\n };\n public type Tree = {\n #red : (Tree, K, V, Tree);\n #black : (Tree, K, V, Tree);\n #leaf\n };\n\n };\n public type Map = Map.Map;\n\n public type Queue = (List, Nat, List);\n\n public module Set {\n public type Tree = {\n #red : (Tree, T, Tree);\n #black : (Tree, T, Tree);\n #leaf\n };\n\n public type Set = { size : Nat; root : Tree }\n };\n\n public type Set = Set.Set;\n\n }\n}\n"},"Nat32.mo":{"content":"/// Utility functions on 32-bit unsigned integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Nat32 \"mo:core/Nat32\";\n/// ```\nimport Nat \"Nat\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 32-bit natural numbers.\n public type Nat32 = Prim.Types.Nat32;\n\n /// Maximum 32-bit natural number. `2 ** 32 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.maxValue == (4294967295 : Nat32);\n /// ```\n public let maxValue : Nat32 = 4294967295;\n\n /// Converts a 32-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.toNat(123) == (123 : Nat);\n /// ```\n public let toNat : (self : Nat32) -> Nat = Prim.nat32ToNat;\n\n /// Converts an unsigned integer with infinite precision to a 32-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.fromNat(123) == (123 : Nat32);\n /// ```\n public let fromNat : Nat -> Nat32 = Prim.natToNat32;\n\n /// Converts a 32-bit unsigned integer to an 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.toNat8(123) == (123 : Nat8);\n /// ```\n public func toNat8(self : Nat32) : Nat8 {\n Prim.nat16ToNat8(Prim.nat32ToNat16(self))\n };\n\n /// Converts an 8-bit unsigned integer to a 32-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.fromNat8(123) == (123 : Nat32);\n /// ```\n /// @deprecated M0235\n public func fromNat8(x : Nat8) : Nat32 {\n Prim.nat16ToNat32(Prim.nat8ToNat16(x))\n };\n\n /// Converts a 16-bit unsigned integer to a 32-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.fromNat16(123) == (123 : Nat32);\n /// ```\n /// @deprecated M0235\n public let fromNat16 : (x : Nat16) -> Nat32 = Prim.nat16ToNat32;\n\n /// Converts a 32-bit unsigned integer to a 16-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.toNat16(123) == (123 : Nat16);\n /// ```\n public let toNat16 : (self : Nat32) -> Nat16 = Prim.nat32ToNat16;\n\n /// Converts a 64-bit unsigned integer to a 32-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.fromNat64(123) == (123 : Nat32);\n /// ```\n /// @deprecated M0235\n public let fromNat64 : (x : Nat64) -> Nat32 = Prim.nat64ToNat32;\n\n /// Converts a 32-bit unsigned integer to a 64-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.toNat64(123) == (123 : Nat64);\n /// ```\n public let toNat64 : (self : Nat32) -> Nat64 = Prim.nat32ToNat64;\n\n /// Converts a signed integer with infinite precision to a 32-bit unsigned integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.fromIntWrap(123) == (123 : Nat32);\n /// ```\n public let fromIntWrap : Int -> Nat32 = Prim.intToNat32Wrap;\n\n /// Convert a Nat32 `char` to a Char in its Unicode representation.\n ///\n /// Example:\n /// ```motoko include=import\n /// let unicode = Nat32.toChar(65);\n /// assert unicode == 'A';\n /// ```\n public let toChar : (self : Nat32) -> Char = Prim.nat32ToChar;\n\n /// Converts `x` to its textual representation. Textual representation _do not_\n /// contain underscores to represent commas.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.toText(1234) == (\"1234\" : Text);\n /// ```\n public func toText(self : Nat32) : Text {\n Nat.toText(toNat(self))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.min(123, 456) == (123 : Nat32);\n /// ```\n public func min(x : Nat32, y : Nat32) : Nat32 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.max(123, 456) == (456 : Nat32);\n /// ```\n public func max(x : Nat32, y : Nat32) : Nat32 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Nat32 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.equal(1, 1);\n /// assert (1 : Nat32) == (1 : Nat32);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Nat32 = 111;\n /// let b : Nat32 = 222;\n /// assert not Nat32.equal(a, b);\n /// ```\n public func equal(x : Nat32, y : Nat32) : Bool { x == y };\n\n /// Inequality function for Nat32 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.notEqual(1, 2);\n /// assert (1 : Nat32) != (2 : Nat32);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Nat32, y : Nat32) : Bool { x != y };\n\n /// \"Less than\" function for Nat32 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.less(1, 2);\n /// assert (1 : Nat32) < (2 : Nat32);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Nat32, y : Nat32) : Bool { x < y };\n\n /// \"Less than or equal\" function for Nat32 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.lessOrEqual(1, 2);\n /// assert (1 : Nat32) <= (2 : Nat32);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Nat32, y : Nat32) : Bool { x <= y };\n\n /// \"Greater than\" function for Nat32 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.greater(2, 1);\n /// assert (2 : Nat32) > (1 : Nat32);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Nat32, y : Nat32) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Nat32 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.greaterOrEqual(2, 1);\n /// assert (2 : Nat32) >= (1 : Nat32);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Nat32, y : Nat32) : Bool {\n x >= y\n };\n\n /// General purpose comparison function for `Nat32`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.compare(2, 3) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([2, 3, 1] : [Nat32], Nat32.compare) == [1, 2, 3];\n /// ```\n public func compare(x : Nat32, y : Nat32) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.add(1, 2) == 3;\n /// assert (1 : Nat32) + (2 : Nat32) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 0, Nat32.add) == 6;\n /// ```\n public func add(x : Nat32, y : Nat32) : Nat32 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n /// Traps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.sub(2, 1) == 1;\n /// assert (2 : Nat32) - (1 : Nat32) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 20, Nat32.sub) == 14;\n /// ```\n public func sub(x : Nat32, y : Nat32) : Nat32 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.mul(2, 3) == 6;\n /// assert (2 : Nat32) * (3 : Nat32) == 6;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 1, Nat32.mul) == 6;\n /// ```\n public func mul(x : Nat32, y : Nat32) : Nat32 { x * y };\n\n /// Returns the division of `x by y`, `x / y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.div(6, 2) == 3;\n /// assert (6 : Nat32) / (2 : Nat32) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Nat32, y : Nat32) : Nat32 { x / y };\n\n /// Returns the remainder of `x` divided by `y`, `x % y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.rem(6, 4) == 2;\n /// assert (6 : Nat32) % (4 : Nat32) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Nat32, y : Nat32) : Nat32 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`. Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.pow(2, 3) == 8;\n /// assert (2 : Nat32) ** (3 : Nat32) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Nat32, y : Nat32) : Nat32 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitnot(0) == 4294967295;\n /// assert ^(0 : Nat32) == 4294967295;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Nat32) : Nat32 { ^x };\n\n /// Returns the bitwise and of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitand(1, 3) == 1;\n /// assert (1 : Nat32) & (3 : Nat32) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Nat32, y : Nat32) : Nat32 { x & y };\n\n /// Returns the bitwise or of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitor(1, 3) == 3;\n /// assert (1 : Nat32) | (3 : Nat32) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `|` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `|`\n /// as a function value at the moment.\n public func bitor(x : Nat32, y : Nat32) : Nat32 { x | y };\n\n /// Returns the bitwise exclusive or of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitxor(1, 3) == 2;\n /// assert (1 : Nat32) ^ (3 : Nat32) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitxor(x : Nat32, y : Nat32) : Nat32 { x ^ y };\n\n /// Returns the bitwise shift left of `x` by `y`, `x << y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitshiftLeft(1, 3) == 8;\n /// assert (1 : Nat32) << (3 : Nat32) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Nat32, y : Nat32) : Nat32 {\n x << y\n };\n\n /// Returns the bitwise shift right of `x` by `y`, `x >> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitshiftRight(8, 3) == 1;\n /// assert (8 : Nat32) >> (3 : Nat32) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Nat32, y : Nat32) : Nat32 {\n x >> y\n };\n\n /// Returns the bitwise rotate left of `x` by `y`, `x <<> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitrotLeft(1, 3) == 8;\n /// assert (1 : Nat32) <<> (3 : Nat32) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Nat32, y : Nat32) : Nat32 { x <<> y };\n\n /// Returns the bitwise rotate right of `x` by `y`, `x <>> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitrotRight(1, 1) == 2147483648;\n /// assert (1 : Nat32) <>> (1 : Nat32) == 2147483648;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Nat32, y : Nat32) : Nat32 {\n x <>> y\n };\n\n /// Returns the value of bit `p mod 32` in `x`, `(x & 2^(p mod 32)) == 2^(p mod 32)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bittest(5, 2);\n /// ```\n public func bittest(x : Nat32, p : Nat) : Bool {\n Prim.btstNat32(x, Prim.natToNat32(p))\n };\n\n /// Returns the value of setting bit `p mod 32` in `x` to `1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitset(5, 1) == 7;\n /// ```\n public func bitset(x : Nat32, p : Nat) : Nat32 {\n x | (1 << Prim.natToNat32(p))\n };\n\n /// Returns the value of clearing bit `p mod 32` in `x` to `0`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitclear(5, 2) == 1;\n /// ```\n public func bitclear(x : Nat32, p : Nat) : Nat32 {\n x & ^(1 << Prim.natToNat32(p))\n };\n\n /// Returns the value of flipping bit `p mod 32` in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitflip(5, 2) == 1;\n /// ```\n public func bitflip(x : Nat32, p : Nat) : Nat32 {\n x ^ (1 << Prim.natToNat32(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitcountNonZero(5) == 2;\n /// ```\n public let bitcountNonZero : (x : Nat32) -> Nat32 = Prim.popcntNat32;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitcountLeadingZero(5) == 29;\n /// ```\n public let bitcountLeadingZero : (x : Nat32) -> Nat32 = Prim.clzNat32;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitcountTrailingZero(16) == 4;\n /// ```\n public let bitcountTrailingZero : (x : Nat32) -> Nat32 = Prim.ctzNat32;\n\n /// Returns the upper (i.e. most significant), lower (least significant)\n /// and in-between bytes of `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.explode 0xaa885511 == (170, 136, 85, 17);\n /// ```\n public let explode : (x : Nat32) -> (msb : Nat8, Nat8, Nat8, lsb : Nat8) = Prim.explodeNat32;\n\n /// Returns the sum of `x` and `y`, `x +% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.addWrap(4294967295, 1) == 0;\n /// assert (4294967295 : Nat32) +% (1 : Nat32) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Nat32, y : Nat32) : Nat32 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`. Wraps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.subWrap(0, 1) == 4294967295;\n /// assert (0 : Nat32) -% (1 : Nat32) == 4294967295;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Nat32, y : Nat32) : Nat32 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.mulWrap(2147483648, 2) == 0;\n /// assert (2147483648 : Nat32) *% (2 : Nat32) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Nat32, y : Nat32) : Nat32 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.powWrap(2, 32) == 0;\n /// assert (2 : Nat32) **% (32 : Nat32) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Nat32, y : Nat32) : Nat32 { x **% y };\n\n /// Returns an iterator over `Nat32` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat32.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat32.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Nat32, toExclusive : Nat32) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Nat32 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Nat32` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat32.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat32.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Nat32, to : Nat32) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Nat32 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Nat32 values, from 0 to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat32.allValues();\n /// assert iter.next() == ?0;\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(0, maxValue)\n };\n\n}\n"},"CertifiedData.mo":{"content":"/// Certified data.\n///\n/// The Internet Computer allows canister smart contracts to store a small amount of data during\n/// update method processing so that during query call processing, the canister can obtain\n/// a certificate about that data.\n///\n/// This module provides a _low-level_ interface to this API, aimed at advanced\n/// users and library implementors. See the Internet Computer Functional\n/// Specification and corresponding documentation for how to use this to make query\n/// calls to your canister tamperproof.\n\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// Set the certified data.\n ///\n /// Must be called from an update method, else traps.\n /// Must be passed a blob of at most 32 bytes, else traps.\n ///\n /// Example:\n /// ```motoko no-repl\n /// import CertifiedData \"mo:core/CertifiedData\";\n /// import Blob \"mo:core/Blob\";\n ///\n /// // Must be in an update call\n ///\n /// let array : [Nat8] = [1, 2, 3];\n /// let blob = Blob.fromArray(array);\n /// CertifiedData.set(blob);\n /// ```\n ///\n /// See a full example on how to use certified variables here: https://github.com/dfinity/examples/tree/master/motoko/cert-var\n ///\n public let set : (data : Blob) -> () = Prim.setCertifiedData;\n\n /// Gets a certificate\n ///\n /// Returns `null` if no certificate is available, e.g. when processing an\n /// update call or inter-canister call. This returns a non-`null` value only\n /// when processing a query call.\n ///\n /// Example:\n /// ```motoko no-repl\n /// import CertifiedData \"mo:core/CertifiedData\";\n /// // Must be in a query call\n ///\n /// CertifiedData.getCertificate();\n /// ```\n /// See a full example on how to use certified variables here: https://github.com/dfinity/examples/tree/master/motoko/cert-var\n ///\n public let getCertificate : () -> ?Blob = Prim.getCertificate;\n\n}\n"},"Float32.mo":{"content":"/// Single precision (32-bit) floating-point numbers in IEEE 754 representation.\n///\n/// This module contains common floating-point constants and utility functions.\n///\n/// ```motoko name=import\n/// import Float32 \"mo:core/Float32\";\n/// ```\n///\n/// Notation for special values in the documentation below:\n/// `+inf`: Positive infinity\n/// `-inf`: Negative infinity\n/// `NaN`: \"not a number\" (can have different sign bit values, but `NaN != NaN` regardless of the sign).\n///\n/// Note:\n/// Floating point numbers have limited precision and operations may inherently result in numerical errors.\n/// `Float32` has less precision than `Float` (64-bit); only about 7 significant decimal digits.\n///\n/// Examples of numerical errors:\n/// ```motoko\n/// assert 0.1 + 0.1 + 0.1 != 0.3;\n/// ```\n///\n/// Advice:\n/// * Floating point number comparisons by `==` or `!=` are discouraged. Instead, it is better to compare\n/// floating-point numbers with a numerical tolerance, called epsilon.\n///\n/// Example:\n/// ```motoko\n/// import Float32 \"mo:core/Float32\";\n/// let x = 0.1 + 0.1 + 0.1 : Float32;\n/// let y = 0.3 : Float32;\n///\n/// let epsilon = 1e-5 : Float32; // This depends on the application case (needs a numerical error analysis).\n/// assert Float32.equal(x, y, epsilon);\n/// ```\n///\n/// * For absolute precision, it is recommended to encode the fraction number as a pair of a Nat for the base\n/// and a Nat for the exponent (decimal point).\n///\n/// Note: As of `moc` 1.4, `Float32` support is experimental.\n///\n/// NaN sign:\n/// * The NaN sign is only applied by `abs`, `neg`, and `copySign`. Other operations can have an arbitrary\n/// sign bit for NaN results.\n\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 32-bit floating point number type.\n public type Float32 = Prim.Types.Float32;\n\n /// Conversion to Float (64-bit double precision).\n ///\n /// This is a lossless widening conversion.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.toFloat(1.5) == 1.5;\n /// ```\n public let toFloat : (self : Float32) -> Float = Prim.float32ToFloat;\n\n /// Conversion from Float (64-bit double precision) to Float32.\n ///\n /// Note: This may lose precision for values that are not exactly representable in 32-bit.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.fromFloat(1.5) == 1.5;\n /// ```\n public let fromFloat : (x : Float) -> Float32 = Prim.floatToFloat32;\n\n /// Ratio of the circumference of a circle to its diameter.\n /// Note: Limited precision (approximately 7 significant decimal digits).\n public let pi : Float32 = 3.14159265358979323846;\n\n /// Base of the natural logarithm.\n /// Note: Limited precision (approximately 7 significant decimal digits).\n public let e : Float32 = 2.7182818284590452354;\n\n /// Determines whether the `number` is a `NaN` (\"not a number\" in the floating point representation).\n /// Notes:\n /// * Equality test of `NaN` with itself or another number is always `false`.\n /// * There exist many internal `NaN` value representations, such as positive and negative NaN,\n /// signalling and quiet NaNs, each with many different bit representations.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.isNaN(0.0/0.0);\n /// ```\n public func isNaN(self : Float32) : Bool {\n self != self\n };\n\n /// Returns the absolute value of `x`.\n ///\n /// Special cases:\n /// ```\n /// abs(+inf) => +inf\n /// abs(-inf) => +inf\n /// abs(-NaN) => +NaN\n /// abs(-0.0) => 0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.abs(-1.2), 1.2, epsilon);\n /// ```\n public func abs(x : Float32) : Float32 {\n fromFloat(Prim.floatAbs(toFloat(x)))\n };\n\n /// Returns the square root of `x`.\n ///\n /// Special cases:\n /// ```\n /// sqrt(+inf) => +inf\n /// sqrt(-0.0) => -0.0\n /// sqrt(x) => NaN if x < 0.0\n /// sqrt(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.sqrt(6.25), 2.5, epsilon);\n /// ```\n public func sqrt(x : Float32) : Float32 {\n fromFloat(Prim.floatSqrt(toFloat(x)))\n };\n\n /// Returns the smallest integral float greater than or equal to `x`.\n ///\n /// Special cases:\n /// ```\n /// ceil(+inf) => +inf\n /// ceil(-inf) => -inf\n /// ceil(NaN) => NaN\n /// ceil(0.0) => 0.0\n /// ceil(-0.0) => -0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.ceil(1.2), 2.0, epsilon);\n /// ```\n public func ceil(x : Float32) : Float32 {\n fromFloat(Prim.floatCeil(toFloat(x)))\n };\n\n /// Returns the largest integral float less than or equal to `x`.\n ///\n /// Special cases:\n /// ```\n /// floor(+inf) => +inf\n /// floor(-inf) => -inf\n /// floor(NaN) => NaN\n /// floor(0.0) => 0.0\n /// floor(-0.0) => -0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.floor(1.2), 1.0, epsilon);\n /// ```\n public func floor(x : Float32) : Float32 {\n fromFloat(Prim.floatFloor(toFloat(x)))\n };\n\n /// Returns the nearest integral float not greater in magnitude than `x`.\n /// This is equivalent to returning `x` with truncating its decimal places.\n ///\n /// Special cases:\n /// ```\n /// trunc(+inf) => +inf\n /// trunc(-inf) => -inf\n /// trunc(NaN) => NaN\n /// trunc(0.0) => 0.0\n /// trunc(-0.0) => -0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.trunc(2.75), 2.0, epsilon);\n /// ```\n public func trunc(x : Float32) : Float32 {\n fromFloat(Prim.floatTrunc(toFloat(x)))\n };\n\n /// Returns the nearest integral float to `x`.\n /// A decimal place of exactly .5 is rounded to the nearest even integral float.\n ///\n /// Special cases:\n /// ```\n /// nearest(+inf) => +inf\n /// nearest(-inf) => -inf\n /// nearest(NaN) => NaN\n /// nearest(0.0) => 0.0\n /// nearest(-0.0) => -0.0\n /// nearest(14.5) => 14.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.nearest(2.75) == 3.0\n /// ```\n public func nearest(x : Float32) : Float32 {\n fromFloat(Prim.floatNearest(toFloat(x)))\n };\n\n /// Returns `x` if `x` and `y` have same sign, otherwise `x` with negated sign.\n ///\n /// The sign bit of zero, infinity, and `NaN` is considered.\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.copySign(1.2, -2.3), -1.2, epsilon);\n /// ```\n public func copySign(x : Float32, y : Float32) : Float32 {\n fromFloat(Prim.floatCopySign(toFloat(x), toFloat(y)))\n };\n\n /// Returns the smaller value of `x` and `y`.\n ///\n /// Special cases:\n /// ```\n /// min(NaN, y) => NaN for any Float32 y\n /// min(x, NaN) => NaN for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.min(1.2, -2.3) == -2.3; // with numerical imprecision\n /// ```\n public func min(x : Float32, y : Float32) : Float32 {\n fromFloat(Prim.floatMin(toFloat(x), toFloat(y)))\n };\n\n /// Returns the larger value of `x` and `y`.\n ///\n /// Special cases:\n /// ```\n /// max(NaN, y) => NaN for any Float32 y\n /// max(x, NaN) => NaN for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.max(1.2, -2.3) == 1.2;\n /// ```\n public func max(x : Float32, y : Float32) : Float32 {\n fromFloat(Prim.floatMax(toFloat(x), toFloat(y)))\n };\n\n /// Returns the sine of the radian angle `x`.\n ///\n /// Special cases:\n /// ```\n /// sin(+inf) => NaN\n /// sin(-inf) => NaN\n /// sin(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.sin(Float32.pi / 2.0), 1.0, epsilon);\n /// ```\n public func sin(x : Float32) : Float32 {\n fromFloat(Prim.sin(toFloat(x)))\n };\n\n /// Returns the cosine of the radian angle `x`.\n ///\n /// Special cases:\n /// ```\n /// cos(+inf) => NaN\n /// cos(-inf) => NaN\n /// cos(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.cos(Float32.pi / 2.0), 0.0, epsilon);\n /// ```\n public func cos(x : Float32) : Float32 {\n fromFloat(Prim.cos(toFloat(x)))\n };\n\n /// Returns the tangent of the radian angle `x`.\n ///\n /// Special cases:\n /// ```\n /// tan(+inf) => NaN\n /// tan(-inf) => NaN\n /// tan(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.tan(Float32.pi / 4.0), 1.0, epsilon);\n /// ```\n public func tan(x : Float32) : Float32 {\n fromFloat(Prim.tan(toFloat(x)))\n };\n\n /// Returns the arc sine of `x` in radians.\n ///\n /// Special cases:\n /// ```\n /// arcsin(x) => NaN if x > 1.0\n /// arcsin(x) => NaN if x < -1.0\n /// arcsin(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.arcsin(1.0), Float32.pi / 2.0, epsilon);\n /// ```\n public func arcsin(x : Float32) : Float32 {\n fromFloat(Prim.arcsin(toFloat(x)))\n };\n\n /// Returns the arc cosine of `x` in radians.\n ///\n /// Special cases:\n /// ```\n /// arccos(x) => NaN if x > 1.0\n /// arccos(x) => NaN if x < -1.0\n /// arccos(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.arccos(1.0), 0.0, epsilon);\n /// ```\n public func arccos(x : Float32) : Float32 {\n fromFloat(Prim.arccos(toFloat(x)))\n };\n\n /// Returns the arc tangent of `x` in radians.\n ///\n /// Special cases:\n /// ```\n /// arctan(+inf) => pi / 2\n /// arctan(-inf) => -pi / 2\n /// arctan(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.arctan(1.0), Float32.pi / 4.0, epsilon);\n /// ```\n public func arctan(x : Float32) : Float32 {\n fromFloat(Prim.arctan(toFloat(x)))\n };\n\n /// Given `(y, x)`, returns the arc tangent in radians of `y/x` based on the signs of both values to determine the correct quadrant.\n ///\n /// Special cases:\n /// ```\n /// arctan2(0.0, 0.0) => 0.0\n /// arctan2(-0.0, 0.0) => -0.0\n /// arctan2(0.0, -0.0) => pi\n /// arctan2(-0.0, -0.0) => -pi\n /// arctan2(+inf, +inf) => pi / 4\n /// arctan2(+inf, -inf) => 3 * pi / 4\n /// arctan2(-inf, +inf) => -pi / 4\n /// arctan2(-inf, -inf) => -3 * pi / 4\n /// arctan2(NaN, x) => NaN for any Float32 x\n /// arctan2(y, NaN) => NaN for any Float32 y\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let sqrt2over2 = Float32.sqrt(2.0) / 2.0;\n /// assert Float32.arctan2(sqrt2over2, sqrt2over2) == Float32.pi / 4.0;\n /// ```\n public func arctan2(y : Float32, x : Float32) : Float32 {\n fromFloat(Prim.arctan2(toFloat(y), toFloat(x)))\n };\n\n /// Returns the value of `e` raised to the `x`-th power.\n ///\n /// Special cases:\n /// ```\n /// exp(+inf) => +inf\n /// exp(-inf) => 0.0\n /// exp(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.exp(1.0), Float32.e, epsilon);\n /// ```\n public func exp(x : Float32) : Float32 {\n fromFloat(Prim.exp(toFloat(x)))\n };\n\n /// Returns the natural logarithm (base-`e`) of `x`.\n ///\n /// Special cases:\n /// ```\n /// log(0.0) => -inf\n /// log(-0.0) => -inf\n /// log(x) => NaN if x < 0.0\n /// log(+inf) => +inf\n /// log(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.log(Float32.e), 1.0, epsilon);\n /// ```\n public func log(x : Float32) : Float32 {\n fromFloat(Prim.log(toFloat(x)))\n };\n\n /// Formatting. `format(fmt, x)` formats `x` to `Text` according to the\n /// formatting directive `fmt`, which can take one of the following forms:\n ///\n /// * `#fix prec` as fixed-point format with `prec` digits\n /// * `#exp prec` as exponential format with `prec` digits\n /// * `#gen prec` as generic format with `prec` digits\n /// * `#exact` as exact format that can be decoded without loss.\n ///\n /// `-0.0` is formatted with negative sign bit.\n /// Positive infinity is formatted as \"inf\".\n /// Negative infinity is formatted as \"-inf\".\n ///\n /// The numerical precision and the text format can vary between\n /// Motoko versions and runtime configuration. Moreover, `NaN` can be printed\n /// differently, i.e. \"NaN\" or \"nan\", potentially omitting the `NaN` sign.\n ///\n /// Example:\n /// ```motoko include=import no-validate\n /// assert Float32.format(123.0 : Float32, #exp (3 : Nat8)) == \"1.230e+02\";\n /// ```\n public func format(self : Float32, fmt : { #fix : Nat8; #exp : Nat8; #gen : Nat8; #exact }) : Text {\n let f = toFloat(self);\n switch fmt {\n case (#fix(prec)) { Prim.floatToFormattedText(f, prec, 0) };\n case (#exp(prec)) { Prim.floatToFormattedText(f, prec, 1) };\n case (#gen(prec)) { Prim.floatToFormattedText(f, prec, 2) };\n case (#exact) { Prim.floatToFormattedText(f, 17, 2) }\n }\n };\n\n /// Conversion to Text. Use `format(fmt, x)` for more detailed control.\n ///\n /// `-0.0` is formatted with negative sign bit.\n /// Positive infinity is formatted as `inf`.\n /// Negative infinity is formatted as `-inf`.\n /// `NaN` is formatted as `NaN` or `-NaN` depending on its sign bit.\n ///\n /// The numerical precision and the text format can vary between\n /// Motoko versions and runtime configuration. Moreover, `NaN` can be printed\n /// differently, i.e. \"NaN\" or \"nan\", potentially omitting the `NaN` sign.\n ///\n /// Example:\n /// ```motoko include=import no-validate\n /// assert Float32.toText(1.5) == \"1.5\";\n /// ```\n public func toText(self : Float32) : Text {\n Prim.floatToText(toFloat(self))\n };\n\n /// Conversion to Int64 by truncating Float32, equivalent to `toInt64(trunc(f))`\n ///\n /// Traps if the floating point number is larger or smaller than the representable Int64.\n /// Also traps for `inf`, `-inf`, and `NaN`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.toInt64(-12.0) == -12;\n /// ```\n public func toInt64(self : Float32) : Int64 {\n Prim.floatToInt64(toFloat(self))\n };\n\n /// Conversion from Int64.\n ///\n /// Note: The floating point number may be imprecise for large or small Int64.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.fromInt64(-42) == -42.0;\n /// ```\n public func fromInt64(x : Int64) : Float32 {\n fromFloat(Prim.int64ToFloat(x))\n };\n\n /// Conversion to Int.\n ///\n /// Traps for `inf`, `-inf`, and `NaN`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.toInt(1.0e6) == +1_000_000;\n /// ```\n public func toInt(self : Float32) : Int {\n Prim.floatToInt(toFloat(self))\n };\n\n /// Determines whether `x` is equal to `y` within the defined tolerance of `epsilon`.\n /// The `epsilon` considers numerical errors, see comment above.\n /// Equivalent to `Float32.abs(x - y) <= epsilon` for a non-negative epsilon.\n ///\n /// Traps if `epsilon` is negative or `NaN`.\n ///\n /// Special cases:\n /// ```\n /// equal(+0.0, -0.0, epsilon) => true for any `epsilon >= 0.0`\n /// equal(-0.0, +0.0, epsilon) => true for any `epsilon >= 0.0`\n /// equal(+inf, +inf, epsilon) => true for any `epsilon >= 0.0`\n /// equal(-inf, -inf, epsilon) => true for any `epsilon >= 0.0`\n /// equal(x, NaN, epsilon) => false for any x and `epsilon >= 0.0`\n /// equal(NaN, y, epsilon) => false for any y and `epsilon >= 0.0`\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(-12.3, -1.23e1, epsilon);\n /// ```\n public func equal(x : Float32, y : Float32, epsilon : Float32) : Bool {\n if (not (epsilon >= (0.0 : Float32))) {\n // also considers NaN, not identical to `epsilon < 0.0`\n Prim.trap(\"Float32.equal(): epsilon must be greater or equal 0.0\")\n };\n x == y or abs(x - y) <= epsilon // `x == y` to also consider infinity equal\n };\n\n /// Determines whether `x` is not equal to `y` within the defined tolerance of `epsilon`.\n /// The `epsilon` considers numerical errors, see comment above.\n /// Equivalent to `not equal(x, y, epsilon)`.\n ///\n /// Traps if `epsilon` is negative or `NaN`.\n ///\n /// Special cases:\n /// ```\n /// notEqual(+0.0, -0.0, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(-0.0, +0.0, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(+inf, +inf, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(-inf, -inf, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(x, NaN, epsilon) => true for any x and `epsilon >= 0.0`\n /// notEqual(NaN, y, epsilon) => true for any y and `epsilon >= 0.0`\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert not Float32.notEqual(-12.3, -1.23e1, epsilon);\n /// ```\n public func notEqual(x : Float32, y : Float32, epsilon : Float32) : Bool {\n if (not (epsilon >= (0.0 : Float32))) {\n // also considers NaN, not identical to `epsilon < 0.0`\n Prim.trap(\"Float32.notEqual(): epsilon must be greater or equal 0.0\")\n };\n not (x == y or abs(x - y) <= epsilon)\n };\n\n /// Returns `x < y`.\n ///\n /// Special cases:\n /// ```\n /// less(+0.0, -0.0) => false\n /// less(-0.0, +0.0) => false\n /// less(NaN, y) => false for any Float32 y\n /// less(x, NaN) => false for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.less(Float32.e, Float32.pi);\n /// ```\n public func less(x : Float32, y : Float32) : Bool { x < y };\n\n /// Returns `x <= y`.\n ///\n /// Special cases:\n /// ```\n /// lessOrEqual(+0.0, -0.0) => true\n /// lessOrEqual(-0.0, +0.0) => true\n /// lessOrEqual(NaN, y) => false for any Float32 y\n /// lessOrEqual(x, NaN) => false for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.lessOrEqual(0.123, 0.1234);\n /// ```\n public func lessOrEqual(x : Float32, y : Float32) : Bool { x <= y };\n\n /// Returns `x > y`.\n ///\n /// Special cases:\n /// ```\n /// greater(+0.0, -0.0) => false\n /// greater(-0.0, +0.0) => false\n /// greater(NaN, y) => false for any Float32 y\n /// greater(x, NaN) => false for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.greater(Float32.pi, Float32.e);\n /// ```\n public func greater(x : Float32, y : Float32) : Bool { x > y };\n\n /// Returns `x >= y`.\n ///\n /// Special cases:\n /// ```\n /// greaterOrEqual(+0.0, -0.0) => true\n /// greaterOrEqual(-0.0, +0.0) => true\n /// greaterOrEqual(NaN, y) => false for any Float32 y\n /// greaterOrEqual(x, NaN) => false for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.greaterOrEqual(0.1234, 0.123);\n /// ```\n public func greaterOrEqual(x : Float32, y : Float32) : Bool {\n x >= y\n };\n\n /// Defines a total order of `x` and `y` for use in sorting.\n ///\n /// Note: Using this operation to determine equality or inequality is discouraged for two reasons:\n /// * It does not consider numerical errors, see comment above. Use `equal(x, y, epsilon)` or\n /// `notEqual(x, y, epsilon)` to test for equality or inequality, respectively.\n /// * `NaN` are here considered equal if their sign matches, which is different to the standard equality\n /// by `==` or when using `equal()` or `notEqual()`.\n ///\n /// Total order:\n /// * negative NaN (no distinction between signalling and quiet negative NaN)\n /// * negative infinity\n /// * negative numbers (including negative subnormal numbers in standard order)\n /// * negative zero (`-0.0`)\n /// * positive zero (`+0.0`)\n /// * positive numbers (including positive subnormal numbers in standard order)\n /// * positive infinity\n /// * positive NaN (no distinction between signalling and quiet positive NaN)\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.compare(0.123, 0.1234) == #less;\n /// ```\n public func compare(x : Float32, y : Float32) : Order.Order {\n if (isNaN(x)) {\n if (isNegative(x)) {\n if (isNaN(y) and isNegative(y)) { #equal } else { #less }\n } else {\n if (isNaN(y) and not isNegative(y)) { #equal } else { #greater }\n }\n } else if (isNaN(y)) {\n if (isNegative(y)) {\n #greater\n } else {\n #less\n }\n } else {\n if (x == y) { #equal } else if (x < y) { #less } else {\n #greater\n }\n }\n };\n\n func isNegative(self : Float32) : Bool {\n copySign(1.0, self) < (0.0 : Float32)\n };\n\n /// Returns the negation of `x`, `-x`.\n ///\n /// Changes the sign bit for infinity.\n ///\n /// Special cases:\n /// ```\n /// neg(+inf) => -inf\n /// neg(-inf) => +inf\n /// neg(+NaN) => -NaN\n /// neg(-NaN) => +NaN\n /// neg(+0.0) => -0.0\n /// neg(-0.0) => +0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.neg(1.23), -1.23, epsilon);\n /// ```\n public func neg(x : Float32) : Float32 { -x };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// add(+inf, y) => +inf if y is any Float32 except -inf and NaN\n /// add(-inf, y) => -inf if y is any Float32 except +inf and NaN\n /// add(+inf, -inf) => NaN\n /// add(NaN, y) => NaN for any Float32 y\n /// ```\n /// The same cases apply commutatively, i.e. for `add(y, x)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.add(1.23, 0.123), 1.353, epsilon);\n /// ```\n public func add(x : Float32, y : Float32) : Float32 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// sub(+inf, y) => +inf if y is any Float32 except +inf or NaN\n /// sub(-inf, y) => -inf if y is any Float32 except -inf and NaN\n /// sub(x, +inf) => -inf if x is any Float32 except +inf and NaN\n /// sub(x, -inf) => +inf if x is any Float32 except -inf and NaN\n /// sub(+inf, +inf) => NaN\n /// sub(-inf, -inf) => NaN\n /// sub(NaN, y) => NaN for any Float32 y\n /// sub(x, NaN) => NaN for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.sub(1.23, 0.123), 1.107, epsilon);\n /// ```\n public func sub(x : Float32, y : Float32) : Float32 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// mul(+inf, y) => +inf if y > 0.0\n /// mul(-inf, y) => -inf if y > 0.0\n /// mul(+inf, y) => -inf if y < 0.0\n /// mul(-inf, y) => +inf if y < 0.0\n /// mul(+inf, 0.0) => NaN\n /// mul(-inf, 0.0) => NaN\n /// mul(NaN, y) => NaN for any Float32 y\n /// ```\n /// The same cases apply commutatively, i.e. for `mul(y, x)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.mul(1.23, 1e2), 123.0, epsilon);\n /// ```\n public func mul(x : Float32, y : Float32) : Float32 { x * y };\n\n /// Returns the division of `x` by `y`, `x / y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// div(0.0, 0.0) => NaN\n /// div(x, 0.0) => +inf for x > 0.0\n /// div(x, 0.0) => -inf for x < 0.0\n /// div(x, +inf) => 0.0 for any x except +inf, -inf, and NaN\n /// div(x, -inf) => 0.0 for any x except +inf, -inf, and NaN\n /// div(+inf, y) => +inf if y >= 0.0\n /// div(+inf, y) => -inf if y < 0.0\n /// div(-inf, y) => -inf if y >= 0.0\n /// div(-inf, y) => +inf if y < 0.0\n /// div(NaN, y) => NaN for any Float32 y\n /// div(x, NaN) => NaN for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.div(1.23, 1e2), 0.0123, epsilon);\n /// ```\n public func div(x : Float32, y : Float32) : Float32 { x / y };\n\n /// Returns the floating point division remainder `x % y`,\n /// which is defined as `x - trunc(x / y) * y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// rem(0.0, 0.0) => NaN\n /// rem(x, +inf) => x for any x except +inf, -inf, and NaN\n /// rem(x, -inf) => x for any x except +inf, -inf, and NaN\n /// rem(+inf, y) => NaN for any Float32 y\n /// rem(-inf, y) => NaN for any Float32 y\n /// rem(NaN, y) => NaN for any Float32 y\n /// rem(x, NaN) => NaN for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.rem(7.2, 2.3), 0.3, epsilon);\n /// ```\n public func rem(x : Float32, y : Float32) : Float32 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// pow(+inf, y) => +inf for any y > 0.0 including +inf\n /// pow(+inf, 0.0) => 1.0\n /// pow(+inf, y) => 0.0 for any y < 0.0 including -inf\n /// pow(x, +inf) => +inf if x > 0.0 or x < 0.0\n /// pow(0.0, +inf) => 0.0\n /// pow(x, -inf) => 0.0 if x > 0.0 or x < 0.0\n /// pow(0.0, -inf) => +inf\n /// pow(x, y) => NaN if x < 0.0 and y is a non-integral Float32\n /// pow(NaN, y) => NaN if y != 0.0\n /// pow(NaN, 0.0) => 1.0\n /// pow(x, NaN) => NaN for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.pow(2.5, 2.0), 6.25, epsilon);\n /// ```\n public func pow(x : Float32, y : Float32) : Float32 { x ** y };\n\n}\n"},"WeakReference.mo":{"content":"/// Module that implements a weak reference to an object.\n///\n/// ATTENTION: This functionality does not work with classical persistence (`--legacy-persistence` moc flag).\n///\n/// Usage example:\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import WeakReference \"mo:core/WeakReference\";\n/// ```\n\nimport Prim \"mo:⛔\"\n\nmodule {\n public type WeakReference = {\n ref : weak T\n };\n\n /// Allocate a new weak reference to the given object.\n ///\n /// The `obj` parameter is the object to allocate a weak reference for.\n /// Returns a new weak reference pointingto the given object.\n /// ```motoko include=import\n /// let obj = { x = 1 };\n /// let weakRef = WeakReference.allocate(obj);\n /// ```\n public func allocate(obj : T) : WeakReference {\n return { ref = Prim.allocWeakRef(obj) }\n };\n\n /// Get the value that the weak reference is pointing to.\n ///\n /// The `self` parameter is the weak reference pointing to the value the function returns.\n /// The function returns the value that the weak reference is pointing to,\n /// or `null` if the value has been collected by the garbage collector.\n /// ```motoko include=import\n /// let obj = { x = 1 };\n /// let weakRef = WeakReference.allocate(obj);\n /// let value = weakRef.get();\n /// ```\n public func get(self : WeakReference) : ?T {\n return Prim.weakGet(self.ref)\n };\n\n /// Check if the weak reference is still alive.\n ///\n /// The `self` parameter is the weak reference to check whether it is still alive.\n /// Returns `true` if the weak reference is still alive, `false` otherwise.\n /// False means that the value has been collected by the garbage collector.\n /// ```motoko include=import\n /// let obj = { x = 1 };\n /// let weakRef = WeakReference.allocate(obj);\n /// let isLive = weakRef.isLive();\n /// assert isLive == true;\n /// ```\n public func isLive(self : WeakReference) : Bool {\n return Prim.isLive(self.ref)\n };\n\n}\n"},"Result.mo":{"content":"/// Module for error handling with the Result type.\n///\n/// The Result type is used for returning and propagating errors. It has two variants:\n/// `#ok(Ok)`, representing success and containing a value, and `#err(Err)`, representing\n/// error and containing an error value.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Result \"mo:core/Result\";\n/// ```\n\nimport Order \"Order\";\nimport Types \"Types\";\n\nmodule {\n\n /// The Result type used for returning and propagating errors.\n ///\n /// The simplest way of working with Results is to pattern match on them.\n /// For example:\n /// ```motoko include=import\n /// import Text \"mo:core/Text\";\n ///\n /// type Email = Text;\n /// type ErrorMessage = Text;\n ///\n /// func validateEmail(email : Text) : Result.Result {\n /// let parts = Text.split(email, #char '@');\n /// let beforeAt = parts.next();\n /// let afterAt = parts.next();\n /// switch (beforeAt, afterAt) {\n /// case (?local, ?domain) {\n /// if (local == \"\") return #err(\"Username cannot be empty\");\n /// if (not Text.contains(domain, #char '.')) return #err(\"Invalid domain format\");\n /// #ok(email)\n /// };\n /// case _ #err(\"Email must contain exactly one @ symbol\")\n /// }\n /// };\n ///\n /// assert validateEmail(\"user@example.com\") == #ok(\"user@example.com\");\n /// assert validateEmail(\"invalid.email\") == #err(\"Email must contain exactly one @ symbol\");\n /// assert validateEmail(\"@domain.com\") == #err(\"Username cannot be empty\");\n /// assert validateEmail(\"user@invalid\") == #err(\"Invalid domain format\");\n /// ```\n /// @deprecated M0235\n public type Result = Types.Result;\n\n /// Compares two Results for equality.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// let result1 = #ok 10;\n /// let result2 = #ok 10;\n /// let result3 = #err \"error\";\n ///\n /// assert Result.equal(result1, result2, Nat.equal, Text.equal);\n /// assert not Result.equal(result1, result3, Nat.equal, Text.equal);\n /// ```\n public func equal(\n self : Result,\n other : Result,\n equalOk : (implicit : (equal : Ok, Ok) -> Bool),\n equalErr : (implicit : (equal : (Err, Err) -> Bool))\n ) : Bool {\n switch (self, other) {\n case (#ok(ok1), #ok(ok2)) {\n equalOk(ok1, ok2)\n };\n case (#err(err1), #err(err2)) {\n equalErr(err1, err2)\n };\n case _ { false }\n }\n };\n\n /// Compares two Result values. `#ok` is larger than `#err`. This ordering is\n /// arbitrary, but it lets you for example use Results as keys in ordered maps.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// let result1 = #ok 5;\n /// let result2 = #ok 10;\n /// let result3 = #err \"error\";\n ///\n /// assert Result.compare(result1, result2, Nat.compare, Text.compare) == #less;\n /// assert Result.compare(result2, result1, Nat.compare, Text.compare) == #greater;\n /// assert Result.compare(result1, result3, Nat.compare, Text.compare) == #greater;\n /// ```\n public func compare(\n self : Result,\n other : Result,\n compareOk : (implicit : (compare : (Ok, Ok) -> Order.Order)),\n compareErr : (implicit : (compare : (Err, Err) -> Order.Order))\n ) : Order.Order {\n switch (self, other) {\n case (#ok(ok1), #ok(ok2)) {\n compareOk(ok1, ok2)\n };\n case (#err(err1), #err(err2)) {\n compareErr(err1, err2)\n };\n case (#ok(_), _) { #greater };\n case (#err(_), _) { #less }\n }\n };\n\n /// Allows sequencing of Result values and functions that return\n /// Results themselves.\n /// ```motoko include=import\n /// type Result = Result.Result;\n /// func largerThan10(x : Nat) : Result =\n /// if (x > 10) { #ok(x) } else { #err(\"Not larger than 10.\") };\n ///\n /// func smallerThan20(x : Nat) : Result =\n /// if (x < 20) { #ok(x) } else { #err(\"Not smaller than 20.\") };\n ///\n /// func between10And20(x : Nat) : Result =\n /// Result.chain(largerThan10(x), smallerThan20);\n ///\n /// assert between10And20(15) == #ok(15);\n /// assert between10And20(9) == #err(\"Not larger than 10.\");\n /// assert between10And20(21) == #err(\"Not smaller than 20.\");\n /// ```\n public func chain(\n self : Result,\n f : Ok1 -> Result\n ) : Result {\n switch self {\n case (#err(e)) { #err(e) };\n case (#ok(r)) { f(r) }\n }\n };\n\n /// Flattens a nested Result.\n ///\n /// ```motoko include=import\n /// assert Result.flatten(#ok(#ok(10))) == #ok(10);\n /// assert Result.flatten(#err(\"Wrong\")) == #err(\"Wrong\");\n /// assert Result.flatten(#ok(#err(\"Wrong\"))) == #err(\"Wrong\");\n /// ```\n public func flatten(\n self : Result, Err>\n ) : Result {\n switch self {\n case (#ok(ok)) { ok };\n case (#err(err)) { #err(err) }\n }\n };\n\n /// Maps the `Ok` type/value, leaving any `Err` type/value unchanged.\n ///\n /// Example:\n /// ```motoko include=import\n /// let result1 = #ok(42);\n /// let result2 = #err(\"error\");\n ///\n /// let doubled1 = Result.mapOk(result1, func x = x * 2);\n /// assert doubled1 == #ok(84);\n ///\n /// let doubled2 = Result.mapOk(result2, func x = x * 2);\n /// assert doubled2 == #err(\"error\");\n /// ```\n public func mapOk(\n self : Result,\n f : Ok1 -> Ok2\n ) : Result {\n switch self {\n case (#err(e)) { #err(e) };\n case (#ok(r)) { #ok(f(r)) }\n }\n };\n\n /// Maps the `Err` type/value, leaving any `Ok` type/value unchanged.\n ///\n /// Example:\n /// ```motoko include=import\n /// let result1 = #ok(42);\n /// let result2 = #err(\"error\");\n ///\n /// let mapped1 = Result.mapErr(result1, func x = x # \"!\");\n /// assert mapped1 == #ok(42);\n ///\n /// let mapped2 = Result.mapErr(result2, func x = x # \"!\");\n /// assert mapped2 == #err(\"error!\");\n /// ```\n public func mapErr(\n self : Result,\n f : Err1 -> Err2\n ) : Result {\n switch self {\n case (#err(e)) { #err(f(e)) };\n case (#ok(r)) { #ok(r) }\n }\n };\n\n /// Create a result from an option, including an error value to handle the `null` case.\n /// ```motoko include=import\n /// assert Result.fromOption(?42, \"err\") == #ok(42);\n /// assert Result.fromOption(null, \"err\") == #err(\"err\");\n /// ```\n public func fromOption(x : ?Ok, err : Err) : Result {\n switch x {\n case (?x) { #ok(x) };\n case null { #err(err) }\n }\n };\n\n /// Create an option from a result, turning all #err into `null`.\n /// ```motoko include=import\n /// assert Result.toOption(#ok(42)) == ?42;\n /// assert Result.toOption(#err(\"err\")) == null;\n /// ```\n public func toOption(self : Result) : ?Ok {\n switch self {\n case (#ok(x)) { ?x };\n case (#err(_)) { null }\n }\n };\n\n /// Applies a function to a successful value and discards the result. Use\n /// `forOk` if you're only interested in the side effect `f` produces.\n ///\n /// ```motoko include=import\n /// var counter : Nat = 0;\n /// Result.forOk(#ok(5), func (x : Nat) { counter += x });\n /// assert counter == 5;\n /// Result.forOk(#err(\"Error\"), func (x : Nat) { counter += x });\n /// assert counter == 5;\n /// ```\n public func forOk(self : Result, f : Ok -> ()) {\n switch self {\n case (#ok(ok)) { f(ok) };\n case _ {}\n }\n };\n\n /// Applies a function to an error value and discards the result. Use\n /// `forErr` if you're only interested in the side effect `f` produces.\n ///\n /// ```motoko include=import\n /// var counter : Nat = 0;\n /// Result.forErr(#err(\"Error\"), func (x : Text) { counter += 1 });\n /// assert counter == 1;\n /// Result.forErr(#ok(5), func (x : Text) { counter += 1 });\n /// assert counter == 1;\n /// ```\n public func forErr(self : Result, f : Err -> ()) {\n switch self {\n case (#err(err)) { f(err) };\n case _ {}\n }\n };\n\n /// Whether this Result is an `#ok`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Result.isOk(#ok(42));\n /// assert not Result.isOk(#err(\"error\"));\n /// ```\n public func isOk(self : Result) : Bool {\n switch self {\n case (#ok(_)) { true };\n case (#err(_)) { false }\n }\n };\n\n /// Whether this Result is an `#err`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Result.isErr(#err(\"error\"));\n /// assert not Result.isErr(#ok(42));\n /// ```\n public func isErr(self : Result) : Bool {\n switch self {\n case (#ok(_)) { false };\n case (#err(_)) { true }\n }\n };\n\n /// Asserts that its argument is an `#ok` result, traps otherwise.\n ///\n /// Example:\n /// ```motoko include=import\n /// Result.assertOk(#ok(42)); // succeeds\n /// // Result.assertOk(#err(\"error\")); // would trap\n /// ```\n public func assertOk(self : Result) {\n switch self {\n case (#err(_)) { assert false };\n case (#ok(_)) {}\n }\n };\n\n /// Asserts that its argument is an `#err` result, traps otherwise.\n ///\n /// Example:\n /// ```motoko include=import\n /// Result.assertErr(#err(\"error\")); // succeeds\n /// // Result.assertErr(#ok(42)); // would trap\n /// ```\n public func assertErr(self : Result) {\n switch self {\n case (#err(_)) {};\n case (#ok(_)) assert false\n }\n };\n\n /// Converts an upper cased `#Ok`, `#Err` result type into a lowercased `#ok`, `#err` result type.\n /// On the IC, a common convention is to use `#Ok` and `#Err` as the variants of a result type,\n /// but in Motoko, we use `#ok` and `#err` instead.\n ///\n /// Example:\n /// ```motoko include=import\n /// let upper = #Ok(42);\n /// let lower = Result.fromUpper(upper);\n /// assert lower == #ok(42);\n /// ```\n public func fromUpper(\n result : { #Ok : Ok; #Err : Err }\n ) : Result {\n switch result {\n case (#Ok(ok)) { #ok(ok) };\n case (#Err(err)) { #err(err) }\n }\n };\n\n /// Converts a lower cased `#ok`, `#err` result type into an upper cased `#Ok`, `#Err` result type.\n /// On the IC, a common convention is to use `#Ok` and `#Err` as the variants of a result type,\n /// but in Motoko, we use `#ok` and `#err` instead.\n ///\n /// Example:\n /// ```motoko include=import\n /// let lower = #ok(42);\n /// let upper = Result.toUpper(lower);\n /// assert upper == #Ok(42);\n /// ```\n public func toUpper(\n self : Result\n ) : { #Ok : Ok; #Err : Err } {\n switch self {\n case (#ok(ok)) { #Ok(ok) };\n case (#err(err)) { #Err(err) }\n }\n };\n\n}\n"},"Runtime.mo":{"content":"/// Runtime utilities.\n/// These functions were originally part of the `Debug` module.\n///\n/// ```motoko name=import\n/// import Runtime \"mo:core/Runtime\";\n/// ```\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// `trap(t)` traps execution with a user-provided diagnostic message.\n ///\n /// The caller of a future whose execution called `trap(t)` will\n /// observe the trap as an `Error` value, thrown at `await`, with code\n /// `#canister_error` and message `m`. Here `m` is a more descriptive `Text`\n /// message derived from the provided `t`. See example for more details.\n ///\n /// NOTE: Other execution environments that cannot handle traps may only\n /// propagate the trap and terminate execution, with or without some\n /// descriptive message.\n ///\n /// ```motoko include=import no-validate\n /// Runtime.trap(\"An error occurred!\");\n /// ```\n public func trap(errorMessage : Text) : None {\n Prim.trap errorMessage\n };\n\n /// `unreachable()` traps execution when code that should be unreachable is reached.\n ///\n /// This function is useful for marking code paths that should never be executed,\n /// such as after exhaustive pattern matches or unreachable control flow branches.\n /// If execution reaches this function, it indicates a programming error.\n ///\n /// ```motoko include=import no-validate\n /// let number = switch (?5) {\n /// case (?n) n;\n /// case null Runtime.unreachable();\n /// };\n /// assert number == 5;\n /// ```\n public func unreachable() : None {\n trap(\"Runtime.unreachable()\")\n };\n\n /// Returns the names of all canister environment variables.\n ///\n /// Example:\n /// ```motoko include=import no-validate\n /// let names = Runtime.envVarNames();\n /// ```\n public func envVarNames() : [Text] {\n return Prim.envVarNames()\n };\n\n /// Returns an optional value of the canister environment variable with the given name.\n ///\n /// Example:\n /// ```motoko include=import no-validate\n /// let value = Runtime.envVar(\"MY_ENV_VAR\");\n /// let result = switch (value) {\n /// case (?v) v;\n /// case null Runtime.trap(\"Unknown environment variable\");\n /// };\n /// ```\n public func envVar(name : Text) : ?Text {\n return Prim.envVar(name)\n }\n\n}\n"},"Func.mo":{"content":"/// Functions on functions, creating functions from simpler inputs.\n///\n/// (Most commonly used when programming in functional style using higher-order\n/// functions.)\n///\n/// Import from the core package to use this module.\n///\n/// ```motoko name=import\n/// import Func = \"mo:core/Func\";\n/// ```\n\nmodule {\n\n /// The composition of two functions `f` and `g` is a function that applies `g` and then `f`.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Text \"mo:core/Text\";\n /// import Char \"mo:core/Char\";\n ///\n /// let textFromNat32 = Func.compose(Text.fromChar, Char.fromNat32);\n /// assert textFromNat32(65) == \"A\";\n /// ```\n public func compose(f : B -> C, g : A -> B) : A -> C {\n func(x : A) : C {\n f(g(x))\n }\n };\n\n /// The `identity` function returns its argument.\n /// Example:\n /// ```motoko include=import\n /// assert Func.identity(10) == 10;\n /// assert Func.identity(true) == true;\n /// ```\n public func identity(x : A) : A = x;\n\n /// The const function is a _curried_ function that accepts an argument `x`,\n /// and then returns a function that discards its argument and always returns\n /// the `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Func.const(10)(\"hello\") == 10;\n /// assert Func.const(true)(20) == true;\n /// ```\n public func const(x : A) : B -> A = func _ = x\n}\n"},"internal/BTreeHelper.mo":{"content":"// Implementation is courtesy of Byron Becker.\n// Source: https://github.com/canscale/StableHeapBTreeMap\n// Copyright (c) 2022 Byron Becker.\n// Distributed under Apache 2.0 license.\n// With adjustments by the Motoko team.\n\nimport VarArray \"../VarArray\";\nimport Runtime \"../Runtime\";\n\nmodule {\n /// Inserts an element into a mutable array at a specific index, shifting all other elements over\n ///\n /// Parameters:\n ///\n /// array - the array being inserted into\n /// insertElement - the element being inserted\n /// insertIndex - the index at which the element will be inserted\n /// currentLastElementIndex - the index of last **non-null** element in the array (used to start shifting elements over)\n ///\n /// Note: This assumes that there are nulls at the end of the array and that the array is not full.\n /// If the array is already full, this function will overflow the array size when attempting to\n /// insert and will cause the cansiter to trap\n public func insertAtPosition(array : [var ?T], insertElement : ?T, insertIndex : Nat, currentLastElementIndex : Nat) {\n // if inserting at the end of the array, don't need to do any shifting and can just insert and return\n if (insertIndex == currentLastElementIndex + 1) {\n array[insertIndex] := insertElement;\n return\n };\n\n // otherwise, need to shift all of the elements at the end of the array over one by one until\n // the insert index is hit.\n var j = currentLastElementIndex;\n label l loop {\n array[j + 1] := array[j];\n if (j == insertIndex) {\n array[j] := insertElement;\n break l\n };\n\n j -= 1\n }\n };\n\n /// Splits the array into two halves as if the insert has occured, omitting the middle element and returning it so that it can\n /// be promoted to the parent internal node. This is used when inserting an element into an array of elements that\n /// is already full.\n ///\n /// Note: Use only when inserting an element into a FULL array & promoting the resulting midpoint element.\n /// This is NOT the same as just splitting this array!\n ///\n /// Parameters:\n ///\n /// array - the array being split\n /// insertElement - the element being inserted\n /// insertIndex - the position/index that the insertElement should be inserted\n public func insertOneAtIndexAndSplitArray(array : [var ?T], insertElement : T, insertIndex : Nat) : ([var ?T], T, [var ?T]) {\n // split at the BTree order / 2\n let splitIndex = (array.size() + 1) / 2;\n // this function assumes the the splitIndex is in the middle of the kvs array - trap otherwise\n if (splitIndex > array.size()) { assert false };\n\n let leftSplit = if (insertIndex < splitIndex) {\n VarArray.tabulate(\n array.size(),\n func(i) {\n // if below the split index\n if (i < splitIndex) {\n // if below the insert index, copy over\n if (i < insertIndex) { array[i] }\n // if less than the insert index, copy over the previous element (since the inserted element has taken up 1 extra slot)\n else if (i > insertIndex) { array[i - 1] }\n // if equal to the insert index add the element to be inserted to the left split\n else { ?insertElement }\n } else { null }\n }\n )\n }\n // index >= splitIndex\n else {\n VarArray.tabulate(\n array.size(),\n func(i) {\n // right biased splitting\n if (i < splitIndex) { array[i] } else { null }\n }\n )\n };\n\n let (rightSplit, middleElement) : ([var ?T], ?T) =\n // if insert > split index, inserted element will be inserted into the right split\n if (insertIndex > splitIndex) {\n let right = VarArray.tabulate(\n array.size(),\n func(i) {\n let adjIndex = i + splitIndex + 1; // + 1 accounts for the fact that the split element was part of the original array\n if (adjIndex <= array.size()) {\n if (adjIndex < insertIndex) { array[adjIndex] } else if (adjIndex > insertIndex) {\n array[adjIndex - 1]\n } else { ?insertElement }\n } else { null }\n }\n );\n (right, array[splitIndex])\n }\n // if inserted element was placed in the left split\n else if (insertIndex < splitIndex) {\n let right = VarArray.tabulate(\n array.size(),\n func(i) {\n let adjIndex = i + splitIndex;\n if (adjIndex < array.size()) { array[adjIndex] } else { null }\n }\n );\n (right, array[splitIndex - 1])\n }\n // insertIndex == splitIndex\n else {\n let right = VarArray.tabulate(\n array.size(),\n func(i) {\n let adjIndex = i + splitIndex;\n if (adjIndex < array.size()) { array[adjIndex] } else { null }\n }\n );\n (right, ?insertElement)\n };\n\n switch (middleElement) {\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In internal/BTreeHelper: insertOneAtIndexAndSplitArray, middle element of a BTree node should never be null\")\n };\n case (?el) { (leftSplit, el, rightSplit) }\n }\n };\n\n /// Context of use: This function is used after inserting a child node into the full child of an internal node that is also full.\n /// From the insertion, the full child is rebalanced and split, and then since the internal node is full, when replacing the two\n /// halves of that rebalanced child into the internal node's children this causes a second split. This function takes in the\n /// internal node's children, and the \"rebalanced\" split child nodes, as well as the index at which the \"rebalanced\" left and right\n /// child will be inserted and replaces the original child with those two halves\n ///\n /// Note: Use when inserting two successive elements into a FULL array and splitting that array.\n /// This is NOT the same as just splitting this array!\n ///\n /// Assumptions: this function also assumes that the children array is full (no nulls)\n ///\n /// Parameters:\n ///\n /// children - the internal node's children array being split\n /// rebalancedChildIndex - the index used to mark where the rebalanced left and right children will be inserted\n /// leftChildInsert - the rebalanced left child being inserted\n /// rightChildInsert - the rebalanced right child being inserted\n public func splitArrayAndInsertTwo(children : [var ?T], rebalancedChildIndex : Nat, leftChildInsert : T, rightChildInsert : T) : ([var ?T], [var ?T]) {\n let splitIndex = children.size() / 2;\n\n let leftRebalancedChildren = VarArray.tabulate(\n children.size(),\n func(i) {\n // only insert elements up to the split index and fill the rest of the children with nulls\n if (i <= splitIndex) {\n if (i < rebalancedChildIndex) { children[i] }\n // insert the left and right rebalanced child halves if the rebalancedChildIndex comes before the splitIndex\n else if (i == rebalancedChildIndex) {\n ?leftChildInsert\n } else if (i == rebalancedChildIndex + 1) { ?rightChildInsert } else {\n children[i - 1]\n } // i > rebalancedChildIndex\n } else { null }\n }\n );\n\n let rightRebalanceChildren : [var ?T] =\n // Case 1: if both left and right rebalanced halves were inserted into the left child can just go from the split index onwards\n if (rebalancedChildIndex + 1 <= splitIndex) {\n VarArray.tabulate(\n children.size(),\n func(i) {\n let adjIndex = i + splitIndex;\n if (adjIndex < children.size()) { children[adjIndex] } else { null }\n }\n )\n }\n // Case 2: if both left and right rebalanced halves will be inserted into the right child\n else if (rebalancedChildIndex > splitIndex) {\n var rebalanceOffset = 0;\n VarArray.tabulate(\n children.size(),\n func(i) {\n let adjIndex = i + splitIndex + 1;\n if (adjIndex == rebalancedChildIndex) { ?leftChildInsert } else if (adjIndex == rebalancedChildIndex + 1) {\n rebalanceOffset := 1; // after inserting both rebalanced children, any elements coming after are from the previous index\n ?rightChildInsert\n } else if (adjIndex <= children.size()) {\n children[adjIndex - rebalanceOffset]\n } else { null }\n }\n )\n }\n // Case 3: if left rebalanced half was in left child, and right rebalanced half will be in right child\n // rebalancedChildIndex == splitIndex\n else {\n VarArray.tabulate(\n children.size(),\n func(i) {\n // first element is the right rebalanced half\n if (i == 0) { ?rightChildInsert } else {\n let adjIndex = i + splitIndex;\n if (adjIndex < children.size()) { children[adjIndex] } else {\n null\n }\n }\n }\n )\n };\n\n (leftRebalancedChildren, rightRebalanceChildren)\n };\n\n /// Specific to the BTree delete implementation (assumes node ordering such that nulls come at the end of the array)\n ///\n /// Assumptions:\n /// * All nulls come at the end of the array\n /// * Assumes the delete index provided is correct and non null - will trap otherwise\n /// * deleteIndex < array.size()\n ///\n /// Deletes an element from the the array, and then shifts all non-null elements coming after that deleted element by 1\n /// to the left. Returns the element that was deleted.\n public func deleteAndShift(array : [var ?T], deleteIndex : Nat) : T {\n var deleted : T = switch (array[deleteIndex]) {\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In internal/BTreeHelper: deleteAndShift, an invalid/incorrect delete index was passed\")\n };\n case (?el) { el }\n };\n\n array[deleteIndex] := null;\n\n var i = deleteIndex + 1;\n label l loop {\n if (i >= array.size()) { break l };\n\n switch (array[i]) {\n case null { break l };\n case (?_) {\n array[i - 1] := array[i]\n }\n };\n\n i += 1\n };\n\n array[i - 1] := null;\n\n deleted\n };\n\n // replaces two successive elements in the array with a single element and shifts all other elements to the left by 1\n public func replaceTwoWithElementAndShift(array : [var ?T], element : T, replaceIndex : Nat) {\n array[replaceIndex] := ?element;\n\n var i = replaceIndex + 1;\n let endShiftIndex : Nat = array.size() - 1;\n while (i < endShiftIndex) {\n switch (array[i]) {\n case (?_) { array[i] := array[i + 1] };\n case null { return }\n };\n\n i += 1\n };\n\n array[endShiftIndex] := null\n };\n\n /// BTree specific implementation\n ///\n /// In a single iteration insert at one position of the array while deleting at another position of the array, shifting all\n /// elements as appropriate\n ///\n /// This is used when borrowing an element from an inorder predecessor/successor through the parent node\n public func insertAtPostionAndDeleteAtPosition(array : [var ?T], insertElement : ?T, insertIndex : Nat, deleteIndex : Nat) : T {\n var deleted : T = switch (array[deleteIndex]) {\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In internal/BTreeHelper: insertAtPositionAndDeleteAtPosition, and incorrect delete index was passed\")\n }; // indicated an incorrect delete index was passed - trap\n case (?el) { el }\n };\n\n // Example of this case:\n //\n // Insert Delete\n // V V\n //[var ?10, ?20, ?30, ?40, ?50]\n if (insertIndex < deleteIndex) {\n var i = deleteIndex;\n while (i > insertIndex) {\n array[i] := array[i - 1];\n i -= 1\n };\n\n array[insertIndex] := insertElement\n }\n // Example of this case:\n //\n // Delete Insert\n // V V\n //[var ?10, ?20, ?30, ?40, ?50]\n else if (insertIndex > deleteIndex) {\n array[deleteIndex] := null;\n var i = deleteIndex + 1;\n label l loop {\n if (i >= array.size()) { assert false; break l }; // TODO: remove? this should not happen since the insertIndex should get hit first?\n\n if (i == insertIndex) {\n array[i - 1] := array[i];\n array[i] := insertElement;\n break l\n } else {\n array[i - 1] := array[i]\n };\n\n i += 1\n };\n\n }\n // insertIndex == deleteIndex, can just do a swap\n else { array[deleteIndex] := insertElement };\n\n deleted\n };\n\n // which child the deletionIndex is referring to\n public type DeletionSide = { #left; #right };\n\n // merges a middle (parent) element with the left and right child arrays while deleting the element from the correct child by the deleteIndex passed\n public func mergeParentWithChildrenAndDelete(\n parentElement : ?T,\n childCount : Nat,\n leftChild : [var ?T],\n rightChild : [var ?T],\n deleteIndex : Nat,\n deletionSide : DeletionSide\n ) : ([var ?T], T) {\n let mergedArray = VarArray.repeat(null, leftChild.size());\n var i = 0;\n switch (deletionSide) {\n case (#left) {\n // BTree implementation expects the deleted element to exist - if null, traps\n let deletedElement = switch (leftChild[deleteIndex]) {\n case (?el) { el };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In internal/BTreeHelper: mergeParentWithChildrenAndDelete, an invalid delete index was passed\")\n }\n };\n\n // copy over left child until deleted element is hit, then copy all elements after the deleted element\n while (i < childCount) {\n if (i < deleteIndex) {\n mergedArray[i] := leftChild[i]\n } else {\n mergedArray[i] := leftChild[i + 1]\n };\n i += 1\n };\n\n // insert parent kv in the middle\n mergedArray[childCount - 1] := parentElement;\n\n // copy over the rest of the right child elements\n while (i < childCount * 2) {\n mergedArray[i] := rightChild[i - childCount];\n i += 1\n };\n\n (mergedArray, deletedElement)\n };\n case (#right) {\n // BTree implementation expects the deleted element to exist - if null, traps\n let deletedElement = switch (rightChild[deleteIndex]) {\n case (?el) { el };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In internal/BTreeHelper: mergeParentWithChildrenAndDelete: element at deleted index must exist\")\n }\n };\n // since deletion side is #right, can safely copy over all elements from the left child\n while (i < childCount) {\n mergedArray[i] := leftChild[i];\n i += 1\n };\n\n // insert parent kv in the middle\n mergedArray[childCount] := parentElement;\n i += 1;\n\n var j = 0;\n // copy over right child until deleted element is hit, then copy elements after the deleted element\n while (i < childCount * 2) {\n if (j < deleteIndex) {\n mergedArray[i] := rightChild[j]\n } else {\n mergedArray[i] := rightChild[j + 1]\n };\n i += 1;\n j += 1\n };\n\n (mergedArray, deletedElement)\n }\n }\n };\n\n}\n"},"Error.mo":{"content":"/// Error values and inspection.\n///\n/// The `Error` type is the argument to `throw`, parameter of `catch`.\n/// The `Error` type is opaque.\n\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// Error value resulting from `async` computations\n public type Error = Prim.Types.Error;\n\n /// Error code to classify different kinds of user and system errors:\n /// ```motoko\n /// type ErrorCode = {\n /// // Fatal error.\n /// #system_fatal;\n /// // Transient error.\n /// #system_transient;\n /// // Destination invalid.\n /// #destination_invalid;\n /// // Canister error (e.g., trap, no response).\n /// #canister_error;\n /// // Explicit reject by canister code.\n /// #canister_reject;\n /// // Response unknown; system stopped waiting for it (e.g., timed out, or system under high load).\n /// #system_unknown;\n /// // Future error code (with unrecognized numeric code).\n /// #future : Nat32;\n /// // Error issuing inter-canister call\n /// // (indicating destination queue full or freezing threshold crossed).\n /// #call_error : { err_code : Nat32 }\n /// };\n /// ```\n public type ErrorCode = Prim.ErrorCode;\n\n /// Create an error from the message with the code `#canister_reject`.\n ///\n /// Example:\n /// ```motoko\n /// import Error \"mo:core/Error\";\n ///\n /// Error.reject(\"Example error\") // can be used as throw argument\n /// ```\n public let reject : (message : Text) -> Error = Prim.error;\n\n /// Returns the code of an error.\n ///\n /// Example:\n /// ```motoko\n /// import Error \"mo:core/Error\";\n ///\n /// let error = Error.reject(\"Example error\");\n /// Error.code(error) // #canister_reject\n /// ```\n public let code : (self : Error) -> ErrorCode = Prim.errorCode;\n\n /// Returns the message of an error.\n ///\n /// Example:\n /// ```motoko\n /// import Error \"mo:core/Error\";\n ///\n /// let error = Error.reject(\"Example error\");\n /// Error.message(error) // \"Example error\"\n /// ```\n public let message : (self : Error) -> Text = Prim.errorMessage;\n\n /// Checks if the error is a clean reject.\n /// A clean reject means that there must be no state changes on the callee side.\n public func isCleanReject(self : Error) : Bool = switch (code(self)) {\n case (#system_fatal or #system_transient or #destination_invalid or #call_error _) true;\n case _ false\n };\n\n /// Returns whether retrying to send a message may result in success.\n ///\n /// Example:\n /// ```motoko\n /// import Error \"mo:core/Error\";\n /// import Debug \"mo:core/Debug\";\n ///\n /// persistent actor {\n /// type CallableActor = actor {\n /// call : () -> async ()\n /// };\n ///\n /// public func example(callableActor : CallableActor) {\n /// try {\n /// await (with timeout = 3) callableActor.call();\n /// }\n /// catch e {\n /// if (Error.isRetryPossible e) {\n /// Debug.print(Error.message e);\n /// }\n /// }\n /// }\n /// }\n ///\n /// ```\n public func isRetryPossible(self : Error) : Bool = switch (code(self)) {\n case (#system_transient or #system_unknown) true;\n case _ false\n };\n\n}\n"},"VarArray.mo":{"content":"/// Provides extended utility functions on mutable Arrays (`[var]`).\n///\n/// Note the difference between mutable (`[var]`) and immutable (`[]`) arrays.\n/// Mutable arrays allow their elements to be modified after creation, while\n/// immutable arrays are fixed once created.\n///\n/// WARNING: If you are looking for a list that can grow and shrink in size,\n/// it is recommended you use `List` for those purposes.\n/// Arrays must be created with a fixed size.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import VarArray \"mo:core/VarArray\";\n/// ```\n\nimport Types \"Types\";\nimport Order \"Order\";\nimport Result \"Result\";\nimport Option \"Option\";\nimport Prim \"mo:⛔\";\nimport InsertionSort \"internal/SortHelper\";\n\nmodule {\n let nat = Prim.nat32ToNat;\n\n /// Creates an empty mutable array (equivalent to `[var]`).\n ///\n /// ```motoko include=import\n /// let array = VarArray.empty();\n /// assert array.size() == 0;\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func empty() : [var T] = [var];\n\n /// Creates a mutable array containing `item` repeated `size` times.\n ///\n /// ```motoko include=import\n /// import Text \"mo:core/Text\";\n ///\n /// let array = VarArray.repeat(\"Echo\", 3);\n /// assert VarArray.equal(array, [var \"Echo\", \"Echo\", \"Echo\"], Text.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func repeat(item : T, size : Nat) : [var T] = Prim.Array_init(size, item);\n\n /// Duplicates `array`, returning a shallow copy of the original.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array1 = [var 1, 2, 3];\n /// let array2 = VarArray.clone(array1);\n /// array2[0] := 0;\n /// assert VarArray.equal(array1, [var 1, 2, 3], Nat.equal);\n /// assert VarArray.equal(array2, [var 0, 2, 3], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func clone(self : [var T]) : [var T] = Prim.Array_tabulateVar(self.size(), func i = self[i]);\n\n /// Creates a mutable array of size `size`. Each element at index i\n /// is created by applying `generator` to i.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array : [var Nat] = VarArray.tabulate(4, func i = i * 2);\n /// assert VarArray.equal(array, [var 0, 2, 4, 6], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `generator` runs in O(1) time and space.\n public let tabulate : (size : Nat, generator : Nat -> T) -> [var T] = Prim.Array_tabulateVar;\n\n /// Tests if two arrays contain equal values (i.e. they represent the same\n /// list of elements). Uses `equal` to compare elements in the arrays.\n ///\n /// ```motoko include=import\n /// // Use the equal function from the Nat module to compare Nats\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array1 = [var 0, 1, 2, 3];\n /// let array2 = [var 0, 1, 2, 3];\n /// assert VarArray.equal(array1, array2, Nat.equal);\n /// ```\n ///\n /// Runtime: O(size1 + size2)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `equal` runs in O(1) time and space.\n public func equal(self : [var T], other : [var T], equal : (implicit : (T, T) -> Bool)) : Bool {\n let size1 = self.size();\n let size2 = other.size();\n if (size1 != size2) {\n return false\n };\n var i = 0;\n while (i < size1) {\n if (not equal(self[i], other[i])) {\n return false\n };\n i += 1\n };\n true\n };\n\n /// Returns the first value in `array` for which `predicate` returns true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// ```motoko include=import\n /// let array = [var 1, 9, 4, 8];\n /// let found = VarArray.find(array, func x = x > 8);\n /// assert found == ?9;\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func find(self : [var T], predicate : T -> Bool) : ?T {\n for (element in self.vals()) {\n if (predicate element) {\n return ?element\n }\n };\n null\n };\n\n /// Returns the first index in `array` for which `predicate` returns true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// ```motoko include=import\n /// let array = [var 'A', 'B', 'C', 'D'];\n /// let found = VarArray.findIndex(array, func(x) { x == 'C' });\n /// assert found == ?2;\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func findIndex(self : [var T], predicate : T -> Bool) : ?Nat {\n for ((index, element) in enumerate(self)) {\n if (predicate element) {\n return ?index\n }\n };\n null\n };\n\n /// Create a new mutable array by concatenating the values of `array1` and `array2`.\n /// Note that `VarArray.concat` copies its arguments and has linear complexity.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array1 = [var 1, 2, 3];\n /// let array2 = [var 4, 5, 6];\n /// let result = VarArray.concat(array1, array2);\n /// assert VarArray.equal(result, [var 1, 2, 3, 4, 5, 6], Nat.equal);\n /// ```\n /// Runtime: O(size1 + size2)\n ///\n /// Space: O(size1 + size2)\n public func concat(self : [var T], other : [var T]) : [var T] {\n let size1 = self.size();\n let size2 = other.size();\n tabulate(\n size1 + size2,\n func i {\n if (i < size1) {\n self[i]\n } else {\n other[i - size1]\n }\n }\n )\n };\n\n /// Creates a new sorted copy of the mutable array according to `compare`.\n /// Sort is deterministic and stable.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 4, 2, 6];\n /// let sorted = VarArray.sort(array, Nat.compare);\n /// assert VarArray.equal(sorted, [var 2, 4, 6], Nat.equal);\n /// ```\n /// Runtime: O(size * log(size))\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func sort(self : [var T], compare : (implicit : (T, T) -> Order.Order)) : [var T] {\n let newArray = clone(self);\n sortInPlace(newArray, compare);\n newArray\n };\n\n /// Sorts the elements in a mutable array in place according to `compare`.\n /// Sort is deterministic and stable. This modifies the original array.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 4, 2, 6];\n /// VarArray.sortInPlace(array, Nat.compare);\n /// assert VarArray.equal(array, [var 2, 4, 6], Nat.equal);\n /// ```\n /// Runtime: O(size * log(size))\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func sortInPlace(self : [var T], compare : (implicit : (T, T) -> Order.Order)) : () {\n let size = Prim.natToNat32(self.size());\n if (size <= 1) return;\n if (size <= 8) {\n InsertionSort.insertionSortSmall(self, self, compare, 0 : Nat32, size);\n return\n };\n let buffer = repeat(self[0], nat(size / 2));\n mergeSortRec(self, buffer, compare, 0 : Nat32, size, true, 0 : Nat32)\n };\n\n // input data is alwways in array\n // even: write output data to array in place\n // odd: write output data to buffer at offset\n // offset is only used when odd\n func mergeSortRec(\n array : [var T],\n buffer : [var T],\n compare : (T, T) -> Order.Order,\n from : Nat32,\n to : Nat32,\n even : Bool,\n offset : Nat32\n ) {\n debug assert from < to;\n let size = to -% from;\n debug assert size >= 4;\n\n if (size <= 8) {\n if (even) {\n InsertionSort.insertionSortSmall(array, array, compare, from, size); // sorts array in place\n } else {\n InsertionSort.insertionSortSmallMove(array, buffer, compare, from, size, offset); // sorts to buffer at offset\n };\n return\n };\n\n let len1 = size / 2;\n let mid = from +% len1;\n if (even) {\n // merge to array in place\n mergeSortRec(array, buffer, compare, mid, to, true, 0 : Nat32); // sort upper half to array in place\n mergeSortRec(array, buffer, compare, from, mid, false, 0 : Nat32); // sort lower half to beginning of buffer\n merge1(array, buffer, compare, from, mid, to); // merge to array in place\n } else {\n // merge to buffer at offset\n mergeSortRec(array, buffer, compare, from, mid, true, 0 : Nat32); // lower half to array in place\n mergeSortRec(array, buffer, compare, mid, to, false, offset +% len1); // sort upper half to buffer starting shifted offset\n merge2(array, buffer, compare, from, mid, size, offset); // merge to buffer at offset\n }\n };\n\n func merge1(array : [var T], buffer : [var T], compare : (T, T) -> Order.Order, from : Nat32, mid : Nat32, to : Nat32) {\n debug assert from < mid;\n debug assert mid < to;\n let len = mid -% from;\n var pos = from;\n var i = 0 : Nat32;\n var j = mid;\n\n var iElem = buffer[nat(i)];\n var jElem = array[nat(j)];\n label L loop {\n switch (compare(jElem, iElem)) {\n case (#less) {\n array[nat(pos)] := jElem;\n j +%= 1;\n pos +%= 1;\n if (j == to) {\n while (i < len) {\n array[nat(pos)] := buffer[nat(i)];\n i +%= 1;\n pos +%= 1\n };\n break L\n };\n jElem := array[nat(j)]\n };\n case (_) {\n array[nat(pos)] := iElem;\n i +%= 1;\n pos +%= 1;\n if (i == len) break L;\n iElem := buffer[nat(i)]\n }\n }\n }\n };\n\n func merge2(array : [var T], buffer : [var T], compare : (T, T) -> Order.Order, from : Nat32, mid : Nat32, size : Nat32, offset : Nat32) {\n debug assert from < mid;\n debug assert mid < from +% size;\n let len = mid -% from;\n var pos = offset;\n var i = from;\n var j = offset +% len;\n let j_max = offset +% size;\n\n var iElem = array[nat(i)];\n var jElem = buffer[nat(j)];\n label L loop {\n switch (compare(jElem, iElem)) {\n case (#less) {\n buffer[nat(pos)] := jElem;\n j +%= 1;\n pos +%= 1;\n if (j == j_max) {\n while (i < mid) {\n buffer[nat(pos)] := array[nat(i)];\n i +%= 1;\n pos +%= 1\n };\n break L\n };\n jElem := buffer[nat(j)]\n };\n case (_) {\n buffer[nat(pos)] := iElem;\n i +%= 1;\n pos +%= 1;\n if (i == mid) break L;\n iElem := array[nat(i)]\n }\n }\n }\n };\n\n /// Creates a new mutable array by reversing the order of elements in `array`.\n /// The original array is not modified.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 10, 11, 12];\n /// let reversed = VarArray.reverse(array);\n /// assert VarArray.equal(reversed, [var 12, 11, 10], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func reverse(self : [var T]) : [var T] {\n let size = self.size();\n tabulate(size, func i = self[size - i - 1])\n };\n\n /// Reverses the order of elements in a mutable array in place.\n /// This modifies the original array.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 10, 11, 12];\n /// VarArray.reverseInPlace(array);\n /// assert VarArray.equal(array, [var 12, 11, 10], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func reverseInPlace(self : [var T]) : () {\n let size = self.size();\n if (size == 0) {\n return\n };\n var i = 0;\n var j = (size - 1) : Nat;\n while (i < j) {\n let temp = self[i];\n self[i] := self[j];\n self[j] := temp;\n i += 1;\n j -= 1\n }\n };\n\n /// Calls `f` with each element in `array`.\n /// Retains original ordering of elements.\n ///\n /// ```motoko include=import\n /// var sum = 0;\n /// let array = [var 0, 1, 2, 3];\n /// VarArray.forEach(array, func(x) {\n /// sum += x;\n /// });\n /// assert sum == 6;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func forEach(self : [var T], f : T -> ()) {\n for (item in self.vals()) {\n f(item)\n }\n };\n\n /// Creates a new mutable array by applying `f` to each element in `array`. `f` \"maps\"\n /// each element it is applied to of type `T` to an element of type `R`.\n /// Retains original ordering of elements.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 0, 1, 2, 3];\n /// let array2 = VarArray.map(array, func x = x * 2);\n /// assert VarArray.equal(array2, [var 0, 2, 4, 6], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func map(self : [var T], f : T -> R) : [var R] {\n tabulate(\n self.size(),\n func(index) {\n f(self[index])\n }\n )\n };\n\n /// Applies `f` to each element of `array` in place,\n /// retaining the original ordering of elements.\n /// This modifies the original array.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 0, 1, 2, 3];\n /// VarArray.mapInPlace(array, func x = x * 3);\n /// assert VarArray.equal(array, [var 0, 3, 6, 9], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func mapInPlace(self : [var T], f : T -> T) {\n var index = 0;\n let size = self.size();\n while (index < size) {\n self[index] := f(self[index]);\n index += 1\n }\n };\n\n /// Creates a new mutable array by applying `predicate` to every element\n /// in `array`, retaining the elements for which `predicate` returns true.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 4, 2, 6, 1, 5];\n /// let evenElements = VarArray.filter(array, func x = x % 2 == 0);\n /// assert VarArray.equal(evenElements, [var 4, 2, 6], Nat.equal);\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func filter(self : [var T], f : T -> Bool) : [var T] {\n var count = 0;\n let keep = Prim.Array_tabulate(\n self.size(),\n func i {\n if (f(self[i])) {\n count += 1;\n true\n } else {\n false\n }\n }\n );\n var nextKeep = 0;\n tabulate(\n count,\n func _ {\n while (not keep[nextKeep]) {\n nextKeep += 1\n };\n nextKeep += 1;\n self[nextKeep - 1]\n }\n )\n };\n\n /// Creates a new mutable array by applying `f` to each element in `array`,\n /// and keeping all non-null elements. The ordering is retained.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// let array = [var 4, 2, 0, 1];\n /// let newArray =\n /// VarArray.filterMap( // mapping from Nat to Text values\n /// array,\n /// func x = if (x == 0) { null } else { ?Nat.toText(100 / x) } // can't divide by 0, so return null\n /// );\n /// assert VarArray.equal(newArray, [var \"25\", \"50\", \"100\"], Text.equal);\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func filterMap(self : [var T], f : T -> ?R) : [var R] {\n var count = 0;\n let options = Prim.Array_tabulate(\n self.size(),\n func i {\n let result = f(self[i]);\n switch (result) {\n case (?element) {\n count += 1;\n result\n };\n case null {\n null\n }\n }\n }\n );\n\n var nextSome = 0;\n tabulate(\n count,\n func _ {\n while (Option.isNull(options[nextSome])) {\n nextSome += 1\n };\n nextSome += 1;\n switch (options[nextSome - 1]) {\n case (?element) element;\n case null {\n Prim.trap \"VarArray.filterMap(): malformed array\"\n }\n }\n }\n )\n };\n\n /// Creates a new mutable array by applying `f` to each element in `array`.\n /// If any invocation of `f` produces an `#err`, returns an `#err`. Otherwise\n /// returns an `#ok` containing the new array.\n ///\n /// ```motoko include=import\n /// import Result \"mo:core/Result\";\n ///\n /// let array = [var 4, 3, 2, 1, 0];\n /// // divide 100 by every element in the array\n /// let result = VarArray.mapResult(array, func x {\n /// if (x > 0) {\n /// #ok(100 / x)\n /// } else {\n /// #err \"Cannot divide by zero\"\n /// }\n /// });\n /// assert Result.isErr(result);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n /// @deprecated M0235\n public func mapResult(self : [var T], f : T -> Result.Result) : Result.Result<[var R], E> {\n let size = self.size();\n\n var error : ?Result.Result<[var R], E> = null;\n let results = tabulate(\n size,\n func i {\n switch (f(self[i])) {\n case (#ok element) {\n ?element\n };\n case (#err e) {\n switch (error) {\n case null {\n // only take the first error\n error := ?(#err e)\n };\n case _ {}\n };\n null\n }\n }\n }\n );\n\n switch error {\n case null {\n // unpack the option\n #ok(\n map(\n results,\n func element {\n switch element {\n case (?element) {\n element\n };\n case null {\n Prim.trap \"VarArray.mapResults(): malformed array\"\n }\n }\n }\n )\n )\n };\n case (?error) {\n error\n }\n }\n };\n\n /// Creates a new array by applying `f` to each element in `array` and its index.\n /// Retains original ordering of elements.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 10, 10, 10, 10];\n /// let newArray = VarArray.mapEntries(array, func (x, i) = i * x);\n /// assert VarArray.equal(newArray, [var 0, 10, 20, 30], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func mapEntries(self : [var T], f : (T, Nat) -> R) : [var R] {\n tabulate(self.size(), func i = f(self[i], i))\n };\n\n /// Creates a new mutable array by applying `k` to each element in `array`,\n /// and concatenating the resulting arrays in order.\n ///\n /// ```motoko include=import\n /// import Int \"mo:core/Int\"\n ///\n /// let array = [var 1, 2, 3, 4];\n /// let newArray = VarArray.flatMap(array, func x = [x, -x].vals());\n /// assert VarArray.equal(newArray, [var 1, -1, 2, -2, 3, -3, 4, -4], Int.equal);\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `k` runs in O(1) time and space.\n public func flatMap(self : [var T], k : T -> Types.Iter) : [var R] {\n var flatSize = 0;\n let arrays = Prim.Array_tabulate<[var R]>(\n self.size(),\n func i {\n let subArray = fromIter(k(self[i])); // TODO: optimize\n flatSize += subArray.size();\n subArray\n }\n );\n\n // could replace with a call to flatten,\n // but it would require an extra pass (to compute `flatSize`)\n var outer = 0;\n var inner = 0;\n tabulate(\n flatSize,\n func _ {\n while (inner == arrays[outer].size()) {\n inner := 0;\n outer += 1\n };\n let element = arrays[outer][inner];\n inner += 1;\n element\n }\n )\n };\n\n /// Collapses the elements in `array` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// left to right.\n ///\n /// ```motoko include=import\n /// import {add} \"mo:core/Nat\";\n ///\n /// let array = [var 4, 2, 0, 1];\n /// let sum =\n /// VarArray.foldLeft(\n /// array,\n /// 0, // start the sum at 0\n /// func(sumSoFar, x) = sumSoFar + x // this entire function can be replaced with `add`!\n /// );\n /// assert sum == 7;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `combine` runs in O(1) time and space.\n public func foldLeft(self : [var T], base : A, combine : (A, T) -> A) : A {\n var acc = base;\n for (element in self.vals()) {\n acc := combine(acc, element)\n };\n acc\n };\n\n /// Collapses the elements in `array` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// right to left.\n ///\n /// ```motoko include=import\n /// import {toText} \"mo:core/Nat\";\n ///\n /// let array = [var 1, 9, 4, 8];\n /// let bookTitle = VarArray.foldRight(array, \"\", func(x, acc) = toText(x) # acc);\n /// assert bookTitle == \"1948\";\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `combine` runs in O(1) time and space.\n public func foldRight(self : [var T], base : A, combine : (T, A) -> A) : A {\n var acc = base;\n let size = self.size();\n var i = size;\n while (i > 0) {\n i -= 1;\n acc := combine(self[i], acc)\n };\n acc\n };\n\n /// Combines an iterator of mutable arrays into a single mutable array.\n /// Retains the original ordering of the elements.\n ///\n /// Consider using `VarArray.flatten()` for better performance.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let arrays : [[var Nat]] = [[var 0, 1, 2], [var 2, 3], [var], [var 4]];\n /// let joinedArray = VarArray.join(arrays.vals());\n /// assert VarArray.equal(joinedArray, [var 0, 1, 2, 2, 3, 4], Nat.equal);\n /// ```\n ///\n /// Runtime: O(number of elements in array)\n ///\n /// Space: O(number of elements in array)\n public func join(self : Types.Iter<[var T]>) : [var T] {\n flatten(fromIter(self))\n };\n\n /// Combines a mutable array of mutable arrays into a single mutable array. Retains the original\n /// ordering of the elements.\n ///\n /// This has better performance compared to `VarArray.join()`.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let arrays : [var [var Nat]] = [var [var 0, 1, 2], [var 2, 3], [var], [var 4]];\n /// let flatArray = VarArray.flatten(arrays);\n /// assert VarArray.equal(flatArray, [var 0, 1, 2, 2, 3, 4], Nat.equal);\n /// ```\n ///\n /// Runtime: O(number of elements in array)\n ///\n /// Space: O(number of elements in array)\n public func flatten(self : [var [var T]]) : [var T] {\n var flatSize = 0;\n for (subArray in self.vals()) {\n flatSize += subArray.size()\n };\n\n var outer = 0;\n var inner = 0;\n tabulate(\n flatSize,\n func _ {\n while (inner == self[outer].size()) {\n inner := 0;\n outer += 1\n };\n let element = self[outer][inner];\n inner += 1;\n element\n }\n )\n };\n\n /// Create an array containing a single value.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = VarArray.singleton(2);\n /// assert VarArray.equal(array, [var 2], Nat.equal);\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func singleton(element : T) : [var T] = [var element];\n\n /// Returns the size of a mutable array. Equivalent to `array.size()`.\n public func size(self : [var T]) : Nat = self.size();\n\n /// Returns whether a mutable array is empty, i.e. contains zero elements.\n public func isEmpty(self : [var T]) : Bool = self.size() == 0;\n\n /// Transforms an immutable array into a mutable array.\n ///\n /// ```motoko include=import\n /// let array = [0, 1, 2];\n /// let varArray = VarArray.fromArray(array);\n /// assert varArray.size() == 3;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n /// @deprecated M0235\n public func fromArray(array : [T]) : [var T] = Prim.Array_tabulateVar(array.size(), func i = array[i]);\n\n /// Converts an iterator to a mutable array.\n public func fromIter(iter : Types.Iter) : [var T] {\n var list : Types.Pure.List = null;\n var size = 0;\n label l loop {\n switch (iter.next()) {\n case (?element) {\n list := ?(element, list);\n size += 1\n };\n case null { break l }\n }\n };\n if (size == 0) { return [var] };\n let array = Prim.Array_init(\n size,\n switch list {\n case (?(h, _)) h;\n case null {\n Prim.trap(\"VarArray.fromIter(): unreachable\")\n }\n }\n );\n var i = size;\n while (i > 0) {\n i -= 1;\n switch list {\n case (?(h, t)) {\n array[i] := h;\n list := t\n };\n case null {\n Prim.trap(\"VarArray.fromIter(): unreachable\")\n }\n }\n };\n array\n };\n\n /// Returns an iterator (`Iter`) over the indices of `array`.\n /// An iterator provides a single method `next()`, which returns\n /// indices in order, or `null` when out of index to iterate over.\n ///\n /// NOTE: You can also use `array.keys()` instead of this function. See example\n /// below.\n ///\n /// ```motoko include=import\n /// let array = [var 10, 11, 12];\n ///\n /// var sum = 0;\n /// for (element in array.keys()) {\n /// sum += element;\n /// };\n /// assert sum == 3; // 0 + 1 + 2\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func keys(self : [var T]) : Types.Iter = self.keys();\n\n /// Iterator provides a single method `next()`, which returns\n /// elements in order, or `null` when out of elements to iterate over.\n ///\n /// Note: You can also use `array.values()` instead of this function. See example\n /// below.\n ///\n /// ```motoko include=import\n /// let array = [var 10, 11, 12];\n ///\n /// var sum = 0;\n /// for (element in array.values()) {\n /// sum += element;\n /// };\n /// assert sum == 33; // 10 + 11 + 12\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func values(self : [var T]) : Types.Iter = self.vals();\n\n /// Returns an iterator that provides pairs of (index, element) in order, or `null`\n /// when out of elements to iterate over.\n ///\n /// ```motoko include=import\n /// let array = [var 10, 11, 12];\n ///\n /// var sum = 0;\n /// for ((index, element) in VarArray.enumerate(array)) {\n /// sum += element;\n /// };\n /// assert sum == 33;\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func enumerate(self : [var T]) : Types.Iter<(Nat, T)> = object {\n let size = self.size();\n var index = 0;\n public func next() : ?(Nat, T) {\n if (index >= size) {\n return null\n };\n let i = index;\n index += 1;\n ?(i, self[i])\n }\n };\n\n /// Returns true if all elements in `array` satisfy the predicate function.\n ///\n /// ```motoko include=import\n /// let array = [var 1, 2, 3, 4];\n /// assert VarArray.all(array, func x = x > 0);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func all(self : [var T], predicate : T -> Bool) : Bool {\n for (element in self.values()) {\n if (not predicate(element)) {\n return false\n }\n };\n true\n };\n\n /// Returns true if any element in `array` satisfies the predicate function.\n ///\n /// ```motoko include=import\n /// let array = [var 1, 2, 3, 4];\n /// assert VarArray.any(array, func x = x > 3);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func any(self : [var T], predicate : T -> Bool) : Bool {\n for (element in self.values()) {\n if (predicate(element)) {\n return true\n }\n };\n false\n };\n\n /// Returns the index of the first `element` in the `array`.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n ///\n /// let array = [var 'c', 'o', 'f', 'f', 'e', 'e'];\n /// assert VarArray.indexOf(array, Char.equal, 'c') == ?0;\n /// assert VarArray.indexOf(array, Char.equal, 'f') == ?2;\n /// assert VarArray.indexOf(array, Char.equal, 'g') == null;\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func indexOf(self : [var T], equal : (implicit : (T, T) -> Bool), element : T) : ?Nat = nextIndexOf(self, equal, element, 0);\n\n /// Returns the index of the next occurence of `element` in the `array` starting from the `from` index (inclusive).\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n ///\n /// let array = [var 'c', 'o', 'f', 'f', 'e', 'e'];\n /// assert VarArray.nextIndexOf(array, Char.equal, 'c', 0) == ?0;\n /// assert VarArray.nextIndexOf(array, Char.equal, 'f', 0) == ?2;\n /// assert VarArray.nextIndexOf(array, Char.equal, 'f', 2) == ?2;\n /// assert VarArray.nextIndexOf(array, Char.equal, 'f', 3) == ?3;\n /// assert VarArray.nextIndexOf(array, Char.equal, 'f', 4) == null;\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func nextIndexOf(self : [var T], equal : (implicit : (T, T) -> Bool), element : T, fromInclusive : Nat) : ?Nat {\n var index = fromInclusive;\n let size = self.size();\n while (index < size) {\n if (equal(self[index], element)) {\n return ?index\n } else {\n index += 1\n }\n };\n null\n };\n\n /// Returns the index of the last `element` in the `array`.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n ///\n /// let array = [var 'c', 'o', 'f', 'f', 'e', 'e'];\n /// assert VarArray.lastIndexOf(array, Char.equal, 'c') == ?0;\n /// assert VarArray.lastIndexOf(array, Char.equal, 'f') == ?3;\n /// assert VarArray.lastIndexOf(array, Char.equal, 'e') == ?5;\n /// assert VarArray.lastIndexOf(array, Char.equal, 'g') == null;\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func lastIndexOf(self : [var T], equal : (implicit : (T, T) -> Bool), element : T) : ?Nat = prevIndexOf(self, equal, element, self.size());\n\n /// Returns the index of the previous occurence of `element` in the `array` starting from the `from` index (exclusive).\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let array = [var 'c', 'o', 'f', 'f', 'e', 'e'];\n /// assert VarArray.prevIndexOf(array, Char.equal, 'c', array.size()) == ?0;\n /// assert VarArray.prevIndexOf(array, Char.equal, 'e', array.size()) == ?5;\n /// assert VarArray.prevIndexOf(array, Char.equal, 'e', 5) == ?4;\n /// assert VarArray.prevIndexOf(array, Char.equal, 'e', 4) == null;\n /// ```\n ///\n /// Runtime: O(array.size());\n /// Space: O(1);\n public func prevIndexOf(self : [var T], equal : (implicit : (T, T) -> Bool), element : T, fromExclusive : Nat) : ?Nat {\n var i = fromExclusive;\n while (i > 0) {\n i -= 1;\n if (equal(self[i], element)) {\n return ?i\n }\n };\n null\n };\n\n /// Returns true if the `array` contains `element` using the provided `equal` function.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n ///\n /// let array = [var 'c', 'o', 'f', 'f', 'e', 'e'];\n /// assert VarArray.contains(array, Char.equal, 'f');\n /// assert not VarArray.contains(array, Char.equal, 'g');\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func contains(self : [var T], equal : (implicit : (T, T) -> Bool), element : T) : Bool {\n for (item in self.vals()) {\n if (equal(item, element)) {\n return true\n }\n };\n false\n };\n\n /// Returns an iterator over a slice of `array` starting at `fromInclusive` up to (but not including) `toExclusive`.\n ///\n /// Negative indices are relative to the end of the array. For example, `-1` corresponds to the last element in the array.\n ///\n /// If the indices are out of bounds, they are clamped to the array bounds.\n /// If the first index is greater than the second, the function returns an empty iterator.\n ///\n /// ```motoko include=import\n /// let array = [var 1, 2, 3, 4, 5];\n /// let iter1 = VarArray.range(array, 3, array.size());\n /// assert iter1.next() == ?4;\n /// assert iter1.next() == ?5;\n /// assert iter1.next() == null;\n ///\n /// let iter2 = VarArray.range(array, 3, -1);\n /// assert iter2.next() == ?4;\n /// assert iter2.next() == null;\n ///\n /// let iter3 = VarArray.range(array, 0, 0);\n /// assert iter3.next() == null;\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func range(self : [var T], fromInclusive : Int, toExclusive : Int) : Types.Iter {\n let size = self.size();\n // Convert negative indices to positive and handle bounds\n let startInt = if (fromInclusive < 0) {\n let s = size + fromInclusive;\n if (s < 0) { 0 } else { s }\n } else {\n if (fromInclusive > size) { size } else { fromInclusive }\n };\n let endInt = if (toExclusive < 0) {\n let e = size + toExclusive;\n if (e < 0) { 0 } else { e }\n } else {\n if (toExclusive > size) { size } else { toExclusive }\n };\n // Convert to Nat (values are non-negative due to bounds checking above)\n let start = Prim.abs(startInt);\n let end = Prim.abs(endInt);\n object {\n var pos = start;\n public func next() : ?T {\n if (pos >= end) {\n null\n } else {\n let elem = self[pos];\n pos += 1;\n ?elem\n }\n }\n }\n };\n\n /// Returns a new array containing elements from `array` starting at index `fromInclusive` up to (but not including) index `toExclusive`.\n /// If the indices are out of bounds, they are clamped to the array bounds.\n ///\n /// ```motoko include=import\n /// let array = [var 1, 2, 3, 4, 5];\n ///\n /// let slice1 = VarArray.sliceToArray(array, 1, 4);\n /// assert slice1 == [2, 3, 4];\n ///\n /// let slice2 = VarArray.sliceToArray(array, 1, -1);\n /// assert slice2 == [2, 3, 4];\n /// ```\n ///\n /// Runtime: O(toExclusive - fromInclusive)\n ///\n /// Space: O(toExclusive - fromInclusive)\n public func sliceToArray(self : [var T], fromInclusive : Int, toExclusive : Int) : [T] {\n let size = self.size();\n // Convert negative indices to positive and handle bounds\n let startInt = if (fromInclusive < 0) {\n let s = size + fromInclusive;\n if (s < 0) { 0 } else { s }\n } else {\n if (fromInclusive > size) { size } else { fromInclusive }\n };\n let endInt = if (toExclusive < 0) {\n let e = size + toExclusive;\n if (e < 0) { 0 } else { e }\n } else {\n if (toExclusive > size) { size } else { toExclusive }\n };\n // Convert to Nat (always non-negative due to bounds checking above)\n let start = Prim.abs(startInt);\n let end = Prim.abs(endInt);\n if (start >= end) {\n return []\n };\n Prim.Array_tabulate(end - start, func i = self[start + i])\n };\n\n /// Returns a new mutable array containing elements from `array` starting at index `fromInclusive` up to (but not including) index `toExclusive`.\n /// If the indices are out of bounds, they are clamped to the array bounds.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 1, 2, 3, 4, 5];\n ///\n /// let slice1 = VarArray.sliceToVarArray(array, 1, 4);\n /// assert VarArray.equal(slice1, [var 2, 3, 4], Nat.equal);\n ///\n /// let slice2 = VarArray.sliceToVarArray(array, 1, -1);\n /// assert VarArray.equal(slice2, [var 2, 3, 4], Nat.equal);\n /// ```\n ///\n /// Runtime: O(toExclusive - fromInclusive)\n ///\n /// Space: O(toExclusive - fromInclusive)\n public func sliceToVarArray(self : [var T], fromInclusive : Int, toExclusive : Int) : [var T] {\n let size = self.size();\n // Convert negative indices to positive and handle bounds\n let startInt = if (fromInclusive < 0) {\n let s = size + fromInclusive;\n if (s < 0) { 0 } else { s }\n } else {\n if (fromInclusive > size) { size } else { fromInclusive }\n };\n let endInt = if (toExclusive < 0) {\n let e = size + toExclusive;\n if (e < 0) { 0 } else { e }\n } else {\n if (toExclusive > size) { size } else { toExclusive }\n };\n // Convert to Nat (always non-negative due to bounds checking above)\n let start = Prim.abs(startInt);\n let end = Prim.abs(endInt);\n if (start >= end) {\n return [var]\n };\n Prim.Array_tabulateVar(end - start, func i = self[start + i])\n };\n\n /// Transforms a mutable array into an immutable array.\n ///\n /// ```motoko include=import\n /// let varArray = [var 0, 1, 2];\n /// varArray[2] := 3;\n /// let array = VarArray.toArray(varArray);\n /// assert array == [0, 1, 3];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func toArray(self : [var T]) : [T] = Prim.Array_tabulate(self.size(), func i = self[i]);\n\n /// Converts the mutable array to its textual representation using `f` to convert each element to `Text`.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 1, 2, 3];\n /// assert VarArray.toText(array, Nat.toText) == \"[var 1, 2, 3]\";\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func toText(self : [var T], f : (implicit : (toText : T -> Text))) : Text {\n let size = self.size();\n if (size == 0) { return \"[var]\" };\n var text = \"[var \";\n var i = 0;\n while (i < size) {\n if (i != 0) {\n text #= \", \"\n };\n text #= f(self[i]);\n i += 1\n };\n text #= \"]\";\n text\n };\n\n /// Compares two mutable arrays using the provided comparison function for elements.\n /// Returns #less, #equal, or #greater if `array1` is less than, equal to,\n /// or greater than `array2` respectively.\n ///\n /// If arrays have different sizes but all elements up to the shorter length are equal,\n /// the shorter array is considered #less than the longer array.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// let array1 = [var 1, 2, 3];\n /// let array2 = [var 1, 2, 4];\n /// assert VarArray.compare(array1, array2, Nat.compare) == #less;\n ///\n /// let array3 = [var 1, 2];\n /// let array4 = [var 1, 2, 3];\n /// assert VarArray.compare(array3, array4, Nat.compare) == #less;\n /// ```\n ///\n /// Runtime: O(min(size1, size2))\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func compare(self : [var T], other : [var T], compare : (implicit : (T, T) -> Order.Order)) : Order.Order {\n let size1 = self.size();\n let size2 = other.size();\n var i = 0;\n let minSize = if (size1 < size2) { size1 } else { size2 };\n while (i < minSize) {\n switch (compare(self[i], other[i])) {\n case (#less) { return #less };\n case (#greater) { return #greater };\n case (#equal) { i += 1 }\n }\n };\n if (size1 < size2) { #less } else if (size1 > size2) { #greater } else {\n #equal\n }\n };\n\n /// Performs binary search on a sorted mutable array to find the index of the `element`.\n /// Returns `#found(index)` if the element is found, or `#insertionIndex(index)` with the index\n ///\n /// If there are multiple equal elements, no guarantee is made about which index is returned.\n /// The array must be sorted in ascending order according to the `compare` function.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let sorted = [var 1, 3, 5, 7, 9, 11];\n /// assert VarArray.binarySearch(sorted, Nat.compare, 5) == #found(2);\n /// assert VarArray.binarySearch(sorted, Nat.compare, 6) == #insertionIndex(3);\n /// ```\n ///\n /// Runtime: O(log(size))\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func binarySearch(self : [var T], compare : (implicit : (T, T) -> Order.Order), element : T) : {\n #found : Nat;\n #insertionIndex : Nat\n } {\n var left = 0;\n var right = self.size();\n while (left < right) {\n let mid = (left + right) / 2;\n switch (compare(self[mid], element)) {\n case (#less) left := mid + 1;\n case (#greater) right := mid;\n case (#equal) return #found mid\n }\n };\n #insertionIndex left\n };\n\n /// Checks whether the mutable `array` is sorted according to the `compare` function.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 1, 2, 3];\n /// assert VarArray.isSorted(array, Nat.compare);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func isSorted(self : [var T], compare : (implicit : (T, T) -> Order.Order)) : Bool {\n let size = self.size();\n if (size <= 1) return true;\n var i = 1;\n while (i < size) {\n switch (compare(self[i - 1], self[i])) {\n case (#greater) return false;\n case _ { i += 1 }\n }\n };\n true\n }\n\n}\n"},"Debug.mo":{"content":"/// Utility functions for debugging.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Debug \"mo:core/Debug\";\n/// ```\n\nimport Prim \"mo:⛔\";\nimport Runtime \"Runtime\";\n\nmodule {\n\n /// Prints `text` to output stream.\n ///\n /// NOTE: When running on an ICP network, all output is written to the [canister log](https://internetcomputer.org/docs/building-apps/canister-management/logs) with the exclusion of any output\n /// produced during the execution of non-replicated queries and composite queries.\n /// In other environments, like the interpreter and stand-alone wasm engines, the output is written to standard out.\n ///\n /// ```motoko include=import\n /// Debug.print \"Hello New World!\";\n /// Debug.print(debug_show(4)) // Often used with `debug_show` to convert values to Text\n /// ```\n public let print : (text : Text) -> () = Prim.debugPrint;\n\n /// Mark incomplete code with the `todo()` function.\n ///\n /// Each have calls are well-typed in all typing contexts, which\n /// trap in all execution contexts.\n ///\n /// ```motoko include=import\n /// func doSomethingComplex() {\n /// Debug.todo()\n /// };\n /// ```\n public func todo() : None {\n Runtime.trap(\"Debug.todo()\")\n };\n\n}\n"},"internal/SortHelper.mo":{"content":"import Runtime \"../Runtime\";\nimport Order \"../Order\";\nimport Prim \"mo:⛔\";\n\nmodule {\n let nat = Prim.nat32ToNat;\n\n // Must have: len <= 8\n // Use dest = buffer when sorting in place\n public func insertionSortSmall(buffer : [var T], dest : [var T], compare : (T, T) -> Order.Order, newFrom : Nat32, len : Nat32) {\n debug assert len > 0;\n switch (len) {\n case (1) {\n let index0 = nat(newFrom);\n dest[index0] := buffer[index0]\n };\n case (2) {\n let index0 = nat(newFrom);\n let index1 = nat(newFrom +% 1);\n let t0 = buffer[index0];\n let t1 = buffer[index1];\n switch (compare(t1, t0)) {\n case (#less) {\n dest[index0] := t1;\n dest[index1] := t0\n };\n case (_) {\n dest[index0] := t0;\n dest[index1] := t1\n }\n }\n };\n case (3) {\n let index0 = nat(newFrom);\n let index1 = nat(newFrom +% 1);\n let index2 = nat(newFrom +% 2);\n var t0 = buffer[index0];\n var t1 = buffer[index1];\n let t2 = buffer[index2];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n\n switch (compare(t2, t1)) {\n case (#less) {\n switch (compare(t2, t0)) {\n case (#less) {\n dest[index0] := t2;\n dest[index1] := t0;\n dest[index2] := t1\n };\n case (_) {\n dest[index0] := t0;\n dest[index1] := t2;\n dest[index2] := t1\n }\n }\n };\n case (_) {\n dest[index0] := t0;\n dest[index1] := t1;\n dest[index2] := t2\n }\n }\n };\n case (4) {\n let index0 = nat(newFrom);\n let index1 = nat(newFrom +% 1);\n let index2 = nat(newFrom +% 2);\n let index3 = nat(newFrom +% 3);\n var t0 = buffer[index0];\n var t1 = buffer[index1];\n var t2 = buffer[index2];\n var t3 = buffer[index3];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n\n switch (compare(t3, t2)) {\n case (#less) {\n tv := t3;\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n\n dest[index0] := t0;\n dest[index1] := t1;\n dest[index2] := t2;\n dest[index3] := t3\n };\n case (5) {\n let index0 = nat(newFrom);\n let index1 = nat(newFrom +% 1);\n let index2 = nat(newFrom +% 2);\n let index3 = nat(newFrom +% 3);\n let index4 = nat(newFrom +% 4);\n var t0 = buffer[index0];\n var t1 = buffer[index1];\n var t2 = buffer[index2];\n var t3 = buffer[index3];\n var t4 = buffer[index4];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n\n dest[index0] := t0;\n dest[index1] := t1;\n dest[index2] := t2;\n dest[index3] := t3;\n dest[index4] := t4\n };\n case (6) {\n let index0 = nat(newFrom);\n let index1 = nat(newFrom +% 1);\n let index2 = nat(newFrom +% 2);\n let index3 = nat(newFrom +% 3);\n let index4 = nat(newFrom +% 4);\n let index5 = nat(newFrom +% 5);\n var t0 = buffer[index0];\n var t1 = buffer[index1];\n var t2 = buffer[index2];\n var t3 = buffer[index3];\n var t4 = buffer[index4];\n var t5 = buffer[index5];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n tv := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) {}\n };\n\n dest[index0] := t0;\n dest[index1] := t1;\n dest[index2] := t2;\n dest[index3] := t3;\n dest[index4] := t4;\n dest[index5] := t5\n };\n case (7) {\n let index0 = nat(newFrom);\n let index1 = nat(newFrom +% 1);\n let index2 = nat(newFrom +% 2);\n let index3 = nat(newFrom +% 3);\n let index4 = nat(newFrom +% 4);\n let index5 = nat(newFrom +% 5);\n let index6 = nat(newFrom +% 6);\n var t0 = buffer[index0];\n var t1 = buffer[index1];\n var t2 = buffer[index2];\n var t3 = buffer[index3];\n var t4 = buffer[index4];\n var t5 = buffer[index5];\n var t6 = buffer[index6];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n tv := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) {}\n };\n tv := t6;\n switch (compare(tv, t5)) {\n case (#less) {\n t6 := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) { t5 := tv }\n }\n };\n case (_) {}\n };\n\n dest[index0] := t0;\n dest[index1] := t1;\n dest[index2] := t2;\n dest[index3] := t3;\n dest[index4] := t4;\n dest[index5] := t5;\n dest[index6] := t6\n };\n case (8) {\n let index0 = nat(newFrom);\n let index1 = nat(newFrom +% 1);\n let index2 = nat(newFrom +% 2);\n let index3 = nat(newFrom +% 3);\n let index4 = nat(newFrom +% 4);\n let index5 = nat(newFrom +% 5);\n let index6 = nat(newFrom +% 6);\n let index7 = nat(newFrom +% 7);\n var t0 = buffer[index0];\n var t1 = buffer[index1];\n var t2 = buffer[index2];\n var t3 = buffer[index3];\n var t4 = buffer[index4];\n var t5 = buffer[index5];\n var t6 = buffer[index6];\n var t7 = buffer[index7];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n tv := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) {}\n };\n tv := t6;\n switch (compare(tv, t5)) {\n case (#less) {\n t6 := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) { t5 := tv }\n }\n };\n case (_) {}\n };\n tv := t7;\n switch (compare(tv, t6)) {\n case (#less) {\n t7 := t6;\n switch (compare(tv, t5)) {\n case (#less) {\n t6 := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) { t5 := tv }\n }\n };\n case (_) { t6 := tv }\n }\n };\n case (_) {}\n };\n\n dest[index0] := t0;\n dest[index1] := t1;\n dest[index2] := t2;\n dest[index3] := t3;\n dest[index4] := t4;\n dest[index5] := t5;\n dest[index6] := t6;\n dest[index7] := t7\n };\n case (_) Runtime.trap(\"insertionSortSmall for len > 8 is not implemented.\")\n }\n };\n\n // sort from buffer to dest array at the given offset\n public func insertionSortSmallMove(buffer : [var T], dest : [var T], compare : (T, T) -> Order.Order, newFrom : Nat32, len : Nat32, offset : Nat32) {\n debug assert len > 0;\n switch (len) {\n case (1) {\n dest[nat(offset)] := buffer[nat(newFrom)]\n };\n case (2) {\n let t0 = buffer[nat(newFrom)];\n let t1 = buffer[nat(newFrom +% 1)];\n switch (compare(t1, t0)) {\n case (#less) {\n dest[nat(offset)] := t1;\n dest[nat(offset +% 1)] := t0\n };\n case (_) {\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t1\n }\n }\n };\n case (3) {\n var t0 = buffer[nat(newFrom)];\n var t1 = buffer[nat(newFrom +% 1)];\n let t2 = buffer[nat(newFrom +% 2)];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n\n switch (compare(t2, t1)) {\n case (#less) {\n switch (compare(t2, t0)) {\n case (#less) {\n dest[nat(offset)] := t2;\n dest[nat(offset +% 1)] := t0;\n dest[nat(offset +% 2)] := t1\n };\n case (_) {\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t2;\n dest[nat(offset +% 2)] := t1\n }\n }\n };\n case (_) {\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t1;\n dest[nat(offset +% 2)] := t2\n }\n }\n };\n case (4) {\n var t0 = buffer[nat(newFrom)];\n var t1 = buffer[nat(newFrom +% 1)];\n var t2 = buffer[nat(newFrom +% 2)];\n var t3 = buffer[nat(newFrom +% 3)];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n\n switch (compare(t3, t2)) {\n case (#less) {\n tv := t3;\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t1;\n dest[nat(offset +% 2)] := t2;\n dest[nat(offset +% 3)] := t3\n };\n case (5) {\n var t0 = buffer[nat(newFrom)];\n var t1 = buffer[nat(newFrom +% 1)];\n var t2 = buffer[nat(newFrom +% 2)];\n var t3 = buffer[nat(newFrom +% 3)];\n var t4 = buffer[nat(newFrom +% 4)];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t1;\n dest[nat(offset +% 2)] := t2;\n dest[nat(offset +% 3)] := t3;\n dest[nat(offset +% 4)] := t4\n };\n case (6) {\n var t0 = buffer[nat(newFrom)];\n var t1 = buffer[nat(newFrom +% 1)];\n var t2 = buffer[nat(newFrom +% 2)];\n var t3 = buffer[nat(newFrom +% 3)];\n var t4 = buffer[nat(newFrom +% 4)];\n var t5 = buffer[nat(newFrom +% 5)];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n tv := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) {}\n };\n\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t1;\n dest[nat(offset +% 2)] := t2;\n dest[nat(offset +% 3)] := t3;\n dest[nat(offset +% 4)] := t4;\n dest[nat(offset +% 5)] := t5\n };\n case (7) {\n var t0 = buffer[nat(newFrom)];\n var t1 = buffer[nat(newFrom +% 1)];\n var t2 = buffer[nat(newFrom +% 2)];\n var t3 = buffer[nat(newFrom +% 3)];\n var t4 = buffer[nat(newFrom +% 4)];\n var t5 = buffer[nat(newFrom +% 5)];\n var t6 = buffer[nat(newFrom +% 6)];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n tv := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) {}\n };\n tv := t6;\n switch (compare(tv, t5)) {\n case (#less) {\n t6 := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) { t5 := tv }\n }\n };\n case (_) {}\n };\n\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t1;\n dest[nat(offset +% 2)] := t2;\n dest[nat(offset +% 3)] := t3;\n dest[nat(offset +% 4)] := t4;\n dest[nat(offset +% 5)] := t5;\n dest[nat(offset +% 6)] := t6\n };\n case (8) {\n var t0 = buffer[nat(newFrom)];\n var t1 = buffer[nat(newFrom +% 1)];\n var t2 = buffer[nat(newFrom +% 2)];\n var t3 = buffer[nat(newFrom +% 3)];\n var t4 = buffer[nat(newFrom +% 4)];\n var t5 = buffer[nat(newFrom +% 5)];\n var t6 = buffer[nat(newFrom +% 6)];\n var t7 = buffer[nat(newFrom +% 7)];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n tv := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) {}\n };\n tv := t6;\n switch (compare(tv, t5)) {\n case (#less) {\n t6 := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) { t5 := tv }\n }\n };\n case (_) {}\n };\n tv := t7;\n switch (compare(tv, t6)) {\n case (#less) {\n t7 := t6;\n switch (compare(tv, t5)) {\n case (#less) {\n t6 := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) { t5 := tv }\n }\n };\n case (_) { t6 := tv }\n }\n };\n case (_) {}\n };\n\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t1;\n dest[nat(offset +% 2)] := t2;\n dest[nat(offset +% 3)] := t3;\n dest[nat(offset +% 4)] := t4;\n dest[nat(offset +% 5)] := t5;\n dest[nat(offset +% 6)] := t6;\n dest[nat(offset +% 7)] := t7\n };\n case (_) Runtime.trap(\"insertionSortSmall for len > 8 is not implemented.\")\n }\n }\n}\n"},"Char.mo":{"content":"/// Module for working with Characters (Unicode code points).\n///\n/// Characters in Motoko represent Unicode code points\n/// in the range 0 to 0x10FFFF, excluding the surrogate code points\n/// (0xD800 through 0xDFFF).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Char \"mo:core/Char\";\n/// ```\n///\n/// Some built in features not listed in this module:\n///\n/// * You can create a `Char` literal using single quotes, e.g. 'A', '1', '漢'\n/// * You can compare characters using `<`, `<=`, `==`, `!=`, `>=`, `>` operators\n/// * You can convert a single-character `Text` to a `Char` using `:Char` type annotation\n///\n/// For example:\n/// ```motoko include=import\n/// let char : Char = 'A';\n/// let unicodeChar = '漢';\n/// let digit = '7';\n/// assert Char.isDigit(digit);\n/// assert Char.toText(char) == \"A\";\n/// ```\n\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// Characters represented as Unicode code points.\n public type Char = Prim.Types.Char;\n\n /// Convert character `char` to a word containing its Unicode scalar value.\n ///\n /// Example:\n /// ```motoko include=import\n /// let char = 'A';\n /// let unicode = Char.toNat32(char);\n /// assert unicode == 65;\n /// ```\n public let toNat32 : (self : Char) -> Nat32 = Prim.charToNat32;\n\n /// Convert `w` to a character.\n /// Traps if `w` is not a valid Unicode scalar value.\n /// Value `w` is valid if, and only if, `w < 0xD800 or (0xE000 <= w and w <= 0x10FFFF)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let unicode : Nat32 = 65;\n /// let char = Char.fromNat32(unicode);\n /// assert char == 'A';\n /// ```\n public let fromNat32 : (nat32 : Nat32) -> Char = Prim.nat32ToChar;\n\n /// Convert character `char` to single character text.\n ///\n /// Example:\n /// ```motoko include=import\n /// let char = '漢';\n /// let text = Char.toText(char);\n /// assert text == \"漢\";\n /// ```\n public let toText : (self : Char) -> Text = Prim.charToText;\n\n // Not exposed pending multi-char implementation.\n private let _toUpper : (char : Char) -> Char = Prim.charToUpper;\n\n // Not exposed pending multi-char implementation.\n private let _toLower : (char : Char) -> Char = Prim.charToLower;\n\n /// Returns `true` when `char` is a decimal digit between `0` and `9`, otherwise `false`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.isDigit('5');\n /// assert not Char.isDigit('A');\n /// ```\n public func isDigit(self : Char) : Bool {\n Prim.charToNat32(self) -% Prim.charToNat32('0') <= (9 : Nat32)\n };\n\n /// Returns whether `char` is a whitespace character.\n /// Whitespace characters include space, tab, newline, etc.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.isWhitespace(' ');\n /// assert Char.isWhitespace('\\n');\n /// assert not Char.isWhitespace('A');\n /// ```\n public let isWhitespace : (self : Char) -> Bool = Prim.charIsWhitespace;\n\n /// Returns whether `char` is a lowercase character.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.isLower('a');\n /// assert not Char.isLower('A');\n /// ```\n public let isLower : (self : Char) -> Bool = Prim.charIsLowercase;\n\n /// Returns whether `char` is an uppercase character.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.isUpper('A');\n /// assert not Char.isUpper('a');\n /// ```\n public let isUpper : (self : Char) -> Bool = Prim.charIsUppercase;\n\n /// Returns whether `char` is an alphabetic character.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.isAlphabetic('A');\n /// assert Char.isAlphabetic('漢');\n /// assert not Char.isAlphabetic('1');\n /// ```\n public func isAlphabetic(self : Char) : Bool = Prim.charIsAlphabetic(self);\n\n /// Returns `a == b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.equal('A', 'A');\n /// assert not Char.equal('A', 'B');\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func equal(self : Char, other : Char) : Bool { self == other };\n\n /// Returns `a != b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.notEqual('A', 'B');\n /// assert not Char.notEqual('A', 'A');\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func notEqual(self : Char, other : Char) : Bool { self != other };\n\n /// Returns `a < b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.less('A', 'B');\n /// assert not Char.less('B', 'A');\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func less(self : Char, other : Char) : Bool { self < other };\n\n /// Returns `a <= b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.lessOrEqual('A', 'A');\n /// assert Char.lessOrEqual('A', 'B');\n /// assert not Char.lessOrEqual('B', 'A');\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func lessOrEqual(self : Char, other : Char) : Bool { self <= other };\n\n /// Returns `a > b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.greater('B', 'A');\n /// assert not Char.greater('A', 'B');\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func greater(self : Char, other : Char) : Bool { self > other };\n\n /// Returns `a >= b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.greaterOrEqual('B', 'A');\n /// assert Char.greaterOrEqual('A', 'A');\n /// assert not Char.greaterOrEqual('A', 'B');\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func greaterOrEqual(self : Char, other : Char) : Bool { self >= other };\n\n /// Returns the order of `a` and `b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.compare('A', 'B') == #less;\n /// assert Char.compare('B', 'A') == #greater;\n /// assert Char.compare('A', 'A') == #equal;\n /// ```\n public func compare(self : Char, other : Char) : { #less; #equal; #greater } {\n if (self < other) { #less } else if (self == other) { #equal } else {\n #greater\n }\n };\n\n}\n"},"pure/List.mo":{"content":"/// Purely-functional, singly-linked list data structure.\n/// This module provides immutable lists with efficient prepend and traversal operations.\n///\n/// A list of type `List` is either `null` or an optional pair of a value of type `T` and a tail, itself of type `List`.\n///\n/// To use this library, import it using:\n///\n/// ```motoko name=import\n/// import List \"mo:core/pure/List\";\n/// ```\n\nimport { Array_tabulate } \"mo:⛔\";\nimport Array \"../Array\";\nimport Iter \"../Iter\";\nimport Order \"../Order\";\nimport Result \"../Result\";\nimport { trap } \"../Runtime\";\nimport Types \"../Types\";\nimport Runtime \"../Runtime\";\n\nmodule {\n\n /// @deprecated M0235\n public type List = Types.Pure.List;\n\n /// Create an empty list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// assert List.empty() == null;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func empty() : List = null;\n\n /// Check whether a list is empty and return true if the list is empty.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// assert List.isEmpty(null);\n /// assert not List.isEmpty(?(1, null));\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func isEmpty(self : List) : Bool = switch self {\n case null true;\n case _ false\n };\n\n /// Return the length of the list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, null));\n /// assert List.size(list) == 2;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func size(self : List) : Nat = (\n func go(n : Nat, list : List) : Nat = switch list {\n case (?(_, t)) go(n + 1, t);\n case null n\n }\n )(0, self);\n\n /// Check whether the list contains a given value. Uses the provided equality function to compare values.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.contains(list, Nat.equal, 2);\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `equal` runs in O(1) time and space.\n public func contains(self : List, equal : (implicit : (T, T) -> Bool), item : T) : Bool = switch self {\n case (?(h, t)) equal(h, item) or contains(t, equal, item);\n case _ false\n };\n\n /// Access any item in a list, zero-based.\n ///\n /// NOTE: Indexing into a list is a linear operation, and usually an\n /// indication that a list might not be the best data structure\n /// to use.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, null));\n /// assert List.get(list, 1) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func get(self : List, n : Nat) : ?T = switch self {\n case (?(h, t)) if (n == 0) ?h else get(t, n - 1 : Nat);\n case null null\n };\n\n /// Add `item` to the head of `list`, and return the new list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// assert List.pushFront(null, 0) == ?(0, null);\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func pushFront(self : List, item : T) : List = ?(item, self);\n\n /// Return the last element of the list, if present.\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, null));\n /// assert List.last(list) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func last(self : List) : ?T = switch self {\n case (?(h, null)) ?h;\n case null null;\n case (?(_, t)) last t\n };\n\n /// Remove the head of the list, returning the optioned head and the tail of the list in a pair.\n /// Returns `(null, null)` if the list is empty.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, null));\n /// assert List.popFront(list) == (?0, ?(1, null));\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func popFront(self : List) : (?T, List) = switch self {\n case null (null, null);\n case (?(h, t)) (?h, t)\n };\n\n /// Reverses the list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// assert List.reverse(list) == ?(2, ?(1, ?(0, null)));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func reverse(self : List) : List = (\n func go(acc : List, list : List) : List = switch list {\n case (?(h, t)) go(?(h, acc), t);\n case null acc\n }\n )(null, self);\n\n /// Call the given function for its side effect, with each list element in turn.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// var sum = 0;\n /// List.forEach(list, func n = sum += n);\n /// assert sum == 3;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func forEach(self : List, f : T -> ()) = switch self {\n case (?(h, t)) { f h; forEach(t, f) };\n case null ()\n };\n\n /// Call the given function `f` on each list element and collect the results\n /// in a new list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// assert List.map(list, Nat.toText) == ?(\"0\", ?(\"1\", ?(\"2\", null)));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func map(self : List, f : T1 -> T2) : List = (\n func go(list : List, f : T1 -> T2, acc : List) : List = switch list {\n case (?(h, t)) go(t, f, ?(f h, acc));\n case null reverse acc\n }\n )(self, f, null);\n\n /// Create a new list with only those elements of the original list for which\n /// the given function (often called the _predicate_) returns true.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// assert List.filter(list, func n = n != 1) == ?(0, ?(2, null));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func filter(self : List, f : T -> Bool) : List = (\n func go(list : List, f : T -> Bool, acc : List) : List = switch list {\n case (?(h, t)) if (f h) go(t, f, ?(h, acc)) else go(t, f, acc);\n case null reverse acc\n }\n )(self, f, null);\n\n /// Call the given function on each list element, and collect the non-null results\n /// in a new list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.filterMap(\n /// list,\n /// func n = if (n > 1) ?(n * 2) else null\n /// ) == ?(4, ?(6, null));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func filterMap(self : List, f : T -> ?R) : List = (\n func go(list : List, f : T -> ?R, acc : List) : List = switch list {\n case (?(h, t)) switch (f h) {\n case null go(t, f, acc);\n case (?r) go(t, f, ?(r, acc))\n };\n case null reverse acc\n }\n )(self, f, null);\n\n /// Maps a `Result`-returning function `f` over a `List` and returns either\n /// the first error or a list of successful values.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.mapResult(\n /// list,\n /// func n = if (n > 0) #ok(n * 2) else #err \"Some element is zero\"\n /// ) == #ok(?(2, ?(4, ?(6, null))));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func mapResult(self : List, f : T -> Result.Result) : Result.Result, E> = (\n func rev(acc : List, list : List, f : T -> Result.Result) : Result.Result, E> = switch list {\n case (?(h, t)) switch (f h) {\n case (#ok fh) rev(?(fh, acc), t, f);\n case (#err e) #err e\n };\n case null #ok(reverse acc)\n }\n )(null, self, f);\n\n /// Create two new lists from the results of a given function (`f`).\n /// The first list only includes the elements for which the given\n /// function `f` returns true and the second list only includes\n /// the elements for which the function returns false.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// assert List.partition(list, func n = n != 1) == (?(0, ?(2, null)), ?(1, null));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func partition(self : List, f : T -> Bool) : (List, List) = (\n func go(list : List, f : T -> Bool, acc1 : List, acc2 : List) : (List, List) = switch list {\n case (?(h, t)) if (f h) go(t, f, ?(h, acc1), acc2) else go(t, f, acc1, ?(h, acc2));\n case null (reverse acc1, reverse acc2)\n }\n )(self, f, null, null);\n\n /// Append the elements from one list to another list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list1 = ?(0, ?(1, ?(2, null)));\n /// let list2 = ?(3, ?(4, ?(5, null)));\n /// assert List.concat(list1, list2) == ?(0, ?(1, ?(2, ?(3, ?(4, ?(5, null))))));\n /// }\n /// ```\n ///\n /// Runtime: O(size(l))\n ///\n /// Space: O(size(l))\n public func concat(self : List, other : List) : List = revAppend(reverse self, other);\n\n /// Flatten, or repatedly concatenate, an iterator of lists as a list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let lists = [ ?(0, ?(1, ?(2, null))),\n /// ?(3, ?(4, ?(5, null))) ];\n /// assert List.join(lists |> Iter.fromArray(_)) == ?(0, ?(1, ?(2, ?(3, ?(4, ?(5, null))))));\n /// }\n /// ```\n ///\n /// Runtime: O(size*size)\n ///\n /// Space: O(size*size)\n public func join(iter : Iter.Iter>) : List {\n var acc : List = null;\n for (list in iter) {\n acc := revAppend(list, acc)\n };\n reverse acc\n };\n\n /// Flatten, or repatedly concatenate, a list of lists as a list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let lists = ?(?(0, ?(1, ?(2, null))),\n /// ?(?(3, ?(4, ?(5, null))),\n /// null));\n /// assert List.flatten(lists) == ?(0, ?(1, ?(2, ?(3, ?(4, ?(5, null))))));\n /// }\n /// ```\n ///\n /// Runtime: O(size*size)\n ///\n /// Space: O(size*size)\n public func flatten(self : List>) : List = (\n func go(lists : List>, acc : List) : List = switch lists {\n case (?(list, t)) go(t, revAppend(list, acc));\n case null reverse acc\n }\n )(self, null);\n\n /// Returns the first `n` elements of the given list.\n /// If the given list has fewer than `n` elements, this function returns\n /// a copy of the full input list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// assert List.take(list, 2) == ?(0, ?(1, null));\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n ///\n /// Space: O(n)\n public func take(self : List, n : Nat) : List = (\n func go(n : Nat, list : List, acc : List) : List = if (n == 0) reverse acc else switch list {\n case (?(h, t)) go(n - 1 : Nat, t, ?(h, acc));\n case null reverse acc\n }\n )(n, self, null);\n\n /// Drop the first `n` elements from the given list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// assert List.drop(list, 2) == ?(2, null);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n ///\n /// Space: O(1)\n public func drop(self : List, n : Nat) : List = if (n == 0) self else switch self {\n case (?(_, t)) drop(t, n - 1 : Nat);\n case null null\n };\n\n /// Collapses the elements in `list` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// left to right.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.foldLeft(\n /// list,\n /// \"\",\n /// func (acc, x) = acc # Nat.toText(x)\n /// ) == \"123\";\n /// }\n /// ```\n ///\n /// Runtime: O(size(list))\n ///\n /// Space: O(1) heap, O(1) stack\n ///\n /// *Runtime and space assumes that `combine` runs in O(1) time and space.\n public func foldLeft(self : List, base : A, combine : (A, T) -> A) : A = switch self {\n case null base;\n case (?(h, t)) foldLeft(t, combine(base, h), combine)\n };\n\n /// Collapses the elements in `buffer` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// right to left.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.foldRight(\n /// list,\n /// \"\",\n /// func (x, acc) = Nat.toText(x) # acc\n /// ) == \"123\";\n /// }\n /// ```\n ///\n /// Runtime: O(size(list))\n ///\n /// Space: O(1) heap, O(size(list)) stack\n ///\n /// *Runtime and space assumes that `combine` runs in O(1) time and space.\n public func foldRight(self : List, base : A, combine : (T, A) -> A) : A = (\n func go(list : List, base : A, combine : (T, A) -> A) : A = switch list {\n case null base;\n case (?(h, t)) go(t, combine(h, base), combine)\n }\n )(reverse self, base, combine);\n\n /// Return the first element for which the given predicate `f` is true,\n /// if such an element exists.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.find(list, func n = n > 1) == ?2;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func find(self : List, f : T -> Bool) : ?T = switch self {\n case null null;\n case (?(h, t)) if (f h) ?h else find(t, f)\n };\n\n /// Return the first index for which the given predicate `f` is true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = List.fromArray(['A', 'B', 'C', 'D']);\n /// let found = List.findIndex(list, func(x) { x == 'C' });\n /// assert found == ?2;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func findIndex(self : List, f : T -> Bool) : ?Nat {\n findIndex_(self, 0, f)\n };\n\n private func findIndex_(self : List, index : Nat, f : T -> Bool) : ?Nat = switch self {\n case null null;\n case (?(h, t)) if (f h) ?index else findIndex_(t, index + 1, f)\n };\n\n /// Return true if the given predicate `f` is true for all list\n /// elements.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert not List.all(list, func n = n > 1);\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func all(self : List, f : T -> Bool) : Bool = switch self {\n case null true;\n case (?(h, t)) f h and all(t, f)\n };\n\n /// Return true if there exists a list element for which\n /// the given predicate `f` is true.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.any(list, func n = n > 1);\n /// }\n /// ```\n ///\n /// Runtime: O(size(list))\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func any(self : List, f : T -> Bool) : Bool = switch self {\n case null false;\n case (?(h, t)) f h or any(t, f)\n };\n\n /// Merge two ordered lists into a single ordered list.\n /// This function requires both list to be ordered as specified\n /// by the given relation `compare`.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list1 = ?(1, ?(2, ?(4, null)));\n /// let list2 = ?(2, ?(4, ?(6, null)));\n /// assert List.merge(list1, list2, Nat.compare) == ?(1, ?(2, ?(2, ?(4, ?(4, ?(6, null))))));\n /// }\n /// ```\n ///\n /// Runtime: O(size(l1) + size(l2))\n ///\n /// Space: O(size(l1) + size(l2))\n ///\n /// *Runtime and space assumes that `lessThanOrEqual` runs in O(1) time and space.\n public func merge(self : List, other : List, compare : (implicit : (T, T) -> Order.Order)) : List = (\n func go(list1 : List, list2 : List, compare : (T, T) -> Order.Order, acc : List) : List = switch (list1, list2) {\n case ((null, l) or (l, null)) reverse(revAppend(l, acc));\n case (?(h1, t1), ?(h2, t2)) switch (compare(h1, h2)) {\n case (#less or #equal) go(t1, list2, compare, ?(h1, acc));\n case (#greater) go(list1, t2, compare, ?(h2, acc))\n }\n }\n )(self, other, compare, null);\n\n /// Check if two lists are equal using the given equality function to compare elements.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list1 = ?(1, ?(2, null));\n /// let list2 = ?(1, ?(2, null));\n /// assert List.equal(list1, list2, Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `equalItem` runs in O(1) time and space.\n public func equal(self : List, other : List, equalItem : (implicit : (equal : (T, T) -> Bool))) : Bool = switch (self, other) {\n case (null, null) true;\n case (?(h1, t1), ?(h2, t2)) equalItem(h1, h2) and equal(t1, t2, equalItem);\n case _ false\n };\n\n /// Compare two lists using lexicographic ordering specified by argument function `compareItem`.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list1 = ?(1, ?(2, null));\n /// let list2 = ?(3, ?(4, null));\n /// assert List.compare(list1, list2, Nat.compare) == #less;\n /// }\n /// ```\n ///\n /// Runtime: O(size(l1))\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that argument `compare` runs in O(1) time and space.\n public func compare(self : List, other : List, compareItem : (implicit : (compare : (T, T) -> Order.Order))) : Order.Order = switch (self, other) {\n case (?(h1, t1), ?(h2, t2)) switch (compareItem(h1, h2)) {\n case (#equal) compare(t1, t2, compareItem);\n case o o\n };\n case (null, null) #equal;\n case (null, _) #less;\n case _ #greater\n };\n\n /// Generate a list based on a length and a function that maps from\n /// a list index to a list element.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = List.tabulate(3, func n = n * 2);\n /// assert list == ?(0, ?(2, ?(4, null)));\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n ///\n /// Space: O(n)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func tabulate(n : Nat, f : Nat -> T) : List {\n var i = 0;\n var l : List = null;\n while (i < n) {\n l := ?(f i, l);\n i += 1\n };\n reverse l\n };\n\n /// Create a list with exactly one element.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// assert List.singleton(0) == ?(0, null);\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func singleton(item : T) : List = ?(item, null);\n\n /// Create a list of the given length with the same value in each position.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = List.repeat('a', 3);\n /// assert list == ?('a', ?('a', ?('a', null)));\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n ///\n /// Space: O(n)\n public func repeat(item : T, n : Nat) : List {\n var res : List = null;\n var i : Int = n;\n while (i != 0) {\n i -= 1;\n res := ?(item, res)\n };\n res\n };\n\n /// Create a list of pairs from a pair of lists.\n ///\n /// If the given lists have different lengths, then the created list will have a\n /// length equal to the length of the smaller list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list1 = ?(0, ?(1, ?(2, null)));\n /// let list2 = ?(\"0\", ?(\"1\", null));\n /// assert List.zip(list1, list2) == ?((0, \"0\"), ?((1, \"1\"), null));\n /// }\n /// ```\n ///\n /// Runtime: O(min(size(xs), size(ys)))\n ///\n /// Space: O(min(size(xs), size(ys)))\n public func zip(self : List, other : List) : List<(T, U)> = zipWith(self, other, func(x, y) = (x, y));\n\n /// Create a list in which elements are created by applying function `f` to each pair `(x, y)` of elements\n /// occuring at the same position in list `xs` and list `ys`.\n ///\n /// If the given lists have different lengths, then the created list will have a\n /// length equal to the length of the smaller list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n /// import Char \"mo:core/Char\";\n ///\n /// persistent actor {\n /// let list1 = ?(0, ?(1, ?(2, null)));\n /// let list2 = ?('a', ?('b', null));\n /// assert List.zipWith(\n /// list1,\n /// list2,\n /// func (n, c) = Nat.toText(n) # Char.toText(c)\n /// ) == ?(\"0a\", ?(\"1b\", null));\n /// }\n /// ```\n ///\n /// Runtime: O(min(size(xs), size(ys)))\n ///\n /// Space: O(min(size(xs), size(ys)))\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func zipWith(self : List, other : List, f : (T, U) -> V) : List = (\n func go(list1 : List, list2 : List, f : (T, U) -> V, acc : List) : List = switch (list1, list2) {\n case ((null, _) or (_, null)) reverse acc;\n case (?(h1, t1), ?(h2, t2)) go(t1, t2, f, ?(f(h1, h2), acc))\n }\n )(self, other, f, null);\n\n /// Split the given list at the given zero-based index.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// assert List.split(list, 2) == (?(0, ?(1, null)), ?(2, null));\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n ///\n /// Space: O(n)\n public func split(self : List, n : Nat) : (List, List) {\n func go(n : Nat, list : List, acc : List) : (List, List) = if (n == 0) (reverse acc, list) else switch list {\n case (?(h, t)) go(n - 1 : Nat, t, ?(h, acc));\n case null (reverse acc, null)\n };\n go(n, self, null)\n };\n\n /// Split the given list into chunks of length `n`.\n /// The last chunk will be shorter if the length of the given list\n /// does not divide by `n` evenly. Traps if `n` = 0.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, ?(3, ?(4, null)))));\n /// assert List.chunks(list, 2) == ?(?(0, ?(1, null)), ?(?(2, ?(3, null)), ?(?(4, null), null)));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func chunks(self : List, n : Nat) : List> {\n if (n == 0) trap \"pure/List.chunks()\";\n func go(list : List, n : Nat, acc : List>) : List> = switch (split(list, n)) {\n case (null, _) reverse acc;\n case (pre, null) reverse(?(pre, acc));\n case (pre, post) go(post, n, ?(pre, acc))\n };\n go(self, n, null)\n };\n\n /// Returns an iterator to the elements in the list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list = List.fromArray([3, 1, 4]);\n /// var text = \"\";\n /// for (item in List.values(list)) {\n /// text #= Nat.toText(item);\n /// };\n /// assert text == \"314\";\n /// }\n /// ```\n public func values(self : List) : Iter.Iter = object {\n var l = self;\n public func next() : ?T = switch l {\n case null null;\n case (?(h, t)) {\n l := t;\n ?h\n }\n }\n };\n\n /// Returns an iterator to the `(index, element)` pairs in the list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list = List.fromArray([3, 1, 4]);\n /// var text = \"\";\n /// for ((index, element) in List.enumerate(list)) {\n /// text #= Nat.toText(index);\n /// };\n /// assert text == \"012\";\n /// }\n /// ```\n public func enumerate(self : List) : Iter.Iter<(Nat, T)> = object {\n var i = 0;\n var l = self;\n public func next() : ?(Nat, T) = switch l {\n case null null;\n case (?(h, t)) {\n l := t;\n let index = i;\n i += 1;\n ?(index, h)\n }\n }\n };\n\n /// Convert an array into a list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = List.fromArray([0, 1, 2, 3, 4]);\n /// assert list == ?(0, ?(1, ?(2, ?(3, ?(4, null)))));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func fromArray(array : [T]) : List {\n func go(from : Nat) : List = if (from < array.size()) ?(array.get from, go(from + 1)) else null;\n go 0\n };\n\n /// Convert a mutable array into a list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = List.fromVarArray([var 0, 1, 2, 3, 4]);\n /// assert list == ?(0, ?(1, ?(2, ?(3, ?(4, null)))));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func fromVarArray(array : [var T]) : List = fromArray(Array.fromVarArray(array));\n\n /// Create an array from a list.\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Array \"mo:core/Array\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let array = List.toArray(?(0, ?(1, ?(2, ?(3, ?(4, null))))));\n /// assert Array.equal(array, [0, 1, 2, 3, 4], Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func toArray(self : List) : [T] {\n var l = self;\n Array_tabulate(size self, func _ { let ?(h, t) = l else Runtime.trap(\"List.toArray(): unreachable\"); l := t; h })\n };\n\n /// Create a mutable array from a list.\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Array \"mo:core/Array\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let array = List.toVarArray(?(0, ?(1, ?(2, ?(3, ?(4, null))))));\n /// assert Array.equal(Array.fromVarArray(array), [0, 1, 2, 3, 4], Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func toVarArray(self : List) : [var T] = Array.toVarArray(toArray(self));\n\n /// Create a list from an iterator, consuming the iterator.\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = List.fromIter([0, 1, 2, 3, 4].vals());\n /// assert list == ?(0, ?(1, ?(2, ?(3, ?(4, null)))));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func fromIter(iter : Iter.Iter) : List {\n var result : List = null;\n for (x in iter) {\n result := ?(x, result)\n };\n reverse result\n };\n\n /// Convert an iterator to a list, consuming the iterator.\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// transient let iter = [0, 1, 2, 3, 4].vals();\n ///\n /// let list = iter.toList();\n ///\n /// assert list == ?(0, ?(1, ?(2, ?(3, ?(4, null)))));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func toList(self : Iter.Iter) : List {\n fromIter(self)\n };\n\n /// Convert a list to a text representation using the provided function to convert each element to text.\n /// The resulting text will be in the format \"[element1, element2, ...]\".\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.toText(list, Nat.toText) == \"PureList[1, 2, 3]\";\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func toText(self : List, f : (implicit : T -> Text)) : Text {\n var text = \"PureList[\";\n var first = true;\n forEach(\n self,\n func(item : T) {\n if first {\n first := false\n } else {\n text #= \", \"\n };\n text #= f item\n }\n );\n text # \"]\"\n };\n\n // revAppend([x1 .. xn], [y1 .. ym]) = [xn .. x1, y1 .. ym]\n func revAppend(l : List, m : List) : List = switch l {\n case (?(h, t)) revAppend(t, ?(h, m));\n case null m\n }\n}\n"},"Principal.mo":{"content":"/// Module for interacting with Principals (users and canisters).\n///\n/// Principals are used to identify entities that can interact with the Internet\n/// Computer. These entities are either users or canisters.\n///\n/// Example textual representation of Principals:\n///\n/// `un4fu-tqaaa-aaaab-qadjq-cai`\n///\n/// In Motoko, there is a primitive Principal type called `Principal`. As an example\n/// of where you might see Principals, you can access the Principal of the\n/// caller of your shared function.\n///\n/// ```motoko no-repl\n/// persistent actor {\n/// public shared(msg) func foo() {\n/// let caller : Principal = msg.caller;\n/// };\n/// }\n/// ```\n///\n/// Then, you can use this module to work with the `Principal`.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Principal \"mo:core/Principal\";\n/// ```\n\nimport Prim \"mo:⛔\";\nimport Blob \"Blob\";\nimport Array \"Array\";\nimport VarArray \"VarArray\";\nimport Nat8 \"Nat8\";\nimport Nat32 \"Nat32\";\nimport Nat64 \"Nat64\";\nimport Text \"Text\";\nimport Types \"Types\";\n\nmodule {\n\n public type Principal = Prim.Types.Principal;\n\n /// Get the `Principal` identifier of an actor.\n ///\n /// Example:\n /// ```motoko include=import no-repl\n /// persistent actor MyCanister {\n /// func getPrincipal() : Principal {\n /// let principal = Principal.fromActor(MyCanister);\n /// }\n /// }\n /// ```\n public let fromActor : (a : actor {}) -> Principal = Prim.principalOfActor;\n\n /// Compute the Ledger account identifier of a principal. Optionally specify a sub-account.\n ///\n /// Example:\n /// ```motoko include=import no-validate\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let subAccount : Blob = \"\\4A\\8D\\3F\\2B\\6E\\01\\C8\\7D\\9E\\03\\B4\\56\\7C\\F8\\9A\\01\\D2\\34\\56\\78\\9A\\BC\\DE\\F0\\12\\34\\56\\78\\9A\\BC\\DE\\F0\";\n /// let account = Principal.toLedgerAccount(principal, ?subAccount);\n /// assert account == \"\\8C\\5C\\20\\C6\\15\\3F\\7F\\51\\E2\\0D\\0F\\0F\\B5\\08\\51\\5B\\47\\65\\63\\A9\\62\\B4\\A9\\91\\5F\\4F\\02\\70\\8A\\ED\\4F\\82\";\n /// ```\n public func toLedgerAccount(self : Principal, subAccount : ?Blob) : Blob {\n let sha224 = SHA224();\n let accountSeparator : Blob = \"\\0Aaccount-id\";\n sha224.writeBlob(accountSeparator);\n sha224.writeBlob(toBlob(self));\n switch subAccount {\n case (?subAccount) {\n sha224.writeBlob(subAccount)\n };\n case (null) {\n let defaultSubAccount = Array.tabulate(32, func _ = 0);\n sha224.writeArray(defaultSubAccount)\n }\n };\n\n let hashSum = sha224.sum();\n\n // hashBlob is a CRC32 implementation\n let crc32Bytes = nat32ToByteArray(Prim.hashBlob hashSum);\n\n Blob.fromArray(Array.concat(crc32Bytes, Blob.toArray(hashSum)))\n };\n\n /// Convert a `Principal` to its `Blob` (bytes) representation.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let blob = Principal.toBlob(principal);\n /// assert blob == \"\\00\\00\\00\\00\\00\\30\\00\\D3\\01\\01\";\n /// ```\n public let toBlob : (self : Principal) -> Blob = Prim.blobOfPrincipal;\n\n /// Converts a `Blob` (bytes) representation of a `Principal` to a `Principal` value.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob = \"\\00\\00\\00\\00\\00\\30\\00\\D3\\01\\01\" : Blob;\n /// let principal = Principal.fromBlob(blob);\n /// assert Principal.toText(principal) == \"un4fu-tqaaa-aaaab-qadjq-cai\";\n /// ```\n public let fromBlob : (self : Blob) -> Principal = Prim.principalOfBlob;\n\n /// Converts a `Principal` to its `Text` representation.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert Principal.toText(principal) == \"un4fu-tqaaa-aaaab-qadjq-cai\";\n /// ```\n public func toText(self : Principal) : Text = debug_show (self);\n\n /// Converts a `Text` representation of a `Principal` to a `Principal` value.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert Principal.toText(principal) == \"un4fu-tqaaa-aaaab-qadjq-cai\";\n /// ```\n public func fromText(t : Text) : Principal = fromActor(actor (t));\n\n private let anonymousBlob : Blob = \"\\04\";\n\n /// Constructs and returns the anonymous principal.\n public func anonymous() : Principal = Prim.principalOfBlob(anonymousBlob);\n\n /// Checks if the given principal represents an anonymous user.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert not Principal.isAnonymous(principal);\n /// ```\n public func isAnonymous(self : Principal) : Bool = Prim.blobOfPrincipal self == anonymousBlob;\n\n /// Checks if the given principal is a canister.\n ///\n /// The last byte for opaque principal ids must be 0x01\n /// https://internetcomputer.org/docs/current/references/ic-interface-spec#principal\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert Principal.isCanister(principal);\n /// ```\n public func isCanister(self : Principal) : Bool {\n let byteArray = toByteArray(self);\n\n byteArray.size() >= 0 and byteArray.size() <= 29 and isLastByte(byteArray, 1)\n };\n\n /// Checks if the given principal is a self authenticating principal.\n /// Most of the time, this is a user principal.\n ///\n /// The last byte for user principal ids must be 0x02\n /// https://internetcomputer.org/docs/current/references/ic-interface-spec#principal\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"6rgy7-3uukz-jrj2k-crt3v-u2wjm-dmn3t-p26d6-ndilt-3gusv-75ybk-jae\");\n /// assert Principal.isSelfAuthenticating(principal);\n /// ```\n public func isSelfAuthenticating(self : Principal) : Bool {\n let byteArray = toByteArray(self);\n\n byteArray.size() == 29 and isLastByte(byteArray, 2)\n };\n\n /// Checks if the given principal is a reserved principal.\n ///\n /// The last byte for reserved principal ids must be 0x7f\n /// https://internetcomputer.org/docs/current/references/ic-interface-spec#principal\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert not Principal.isReserved(principal);\n /// ```\n public func isReserved(self : Principal) : Bool {\n let byteArray = toByteArray(self);\n\n byteArray.size() >= 0 and byteArray.size() <= 29 and isLastByte(byteArray, 127)\n };\n\n /// Checks if the given principal can control this canister.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert not Principal.isController(principal);\n /// ```\n public func isController(self : Principal) : Bool = Prim.isController self;\n\n /// Hashes the given principal by hashing its `Blob` representation.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert Principal.hash(principal) == 2_742_573_646;\n /// ```\n public func hash(self : Principal) : Types.Hash = Blob.hash(Prim.blobOfPrincipal(self));\n\n /// General purpose comparison function for `Principal`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `principal1` with\n /// `principal2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let principal2 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert Principal.compare(principal1, principal2) == #equal;\n /// ```\n public func compare(self : Principal, other : Principal) : {\n #less;\n #equal;\n #greater\n } {\n if (self < other) {\n #less\n } else if (self == other) {\n #equal\n } else {\n #greater\n }\n };\n\n /// Equality function for Principal types.\n /// This is equivalent to `principal1 == principal2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let principal2 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// ignore Principal.equal(principal1, principal2);\n /// assert principal1 == principal2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.anonymous();\n /// let principal2 = Principal.fromBlob(\"\\04\");\n /// assert Principal.equal(principal1, principal2);\n /// ```\n public func equal(self : Principal, other : Principal) : Bool {\n self == other\n };\n\n /// Inequality function for Principal types.\n /// This is equivalent to `principal1 != principal2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let principal2 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// ignore Principal.notEqual(principal1, principal2);\n /// assert not (principal1 != principal2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(self : Principal, other : Principal) : Bool {\n self != other\n };\n\n /// \"Less than\" function for Principal types.\n /// This is equivalent to `principal1 < principal2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let principal2 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// ignore Principal.less(principal1, principal2);\n /// assert not (principal1 < principal2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(self : Principal, other : Principal) : Bool {\n self < other\n };\n\n /// \"Less than or equal to\" function for Principal types.\n /// This is equivalent to `principal1 <= principal2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let principal2 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// ignore Principal.lessOrEqual(principal1, principal2);\n /// assert principal1 <= principal2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(self : Principal, other : Principal) : Bool {\n self <= other\n };\n\n /// \"Greater than\" function for Principal types.\n /// This is equivalent to `principal1 > principal2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let principal2 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// ignore Principal.greater(principal1, principal2);\n /// assert not (principal1 > principal2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(self : Principal, other : Principal) : Bool {\n self > other\n };\n\n /// \"Greater than or equal to\" function for Principal types.\n /// This is equivalent to `principal1 >= principal2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let principal2 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// ignore Principal.greaterOrEqual(principal1, principal2);\n /// assert principal1 >= principal2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(self : Principal, other : Principal) : Bool {\n self >= other\n };\n\n /**\n * SHA224 Utilities used in toAccount().\n * Utilities are not exposed as public functions.\n * Taken with permission from https://github.com/research-ag/sha2\n **/\n let K00 : Nat32 = 0x428a2f98;\n let K01 : Nat32 = 0x71374491;\n let K02 : Nat32 = 0xb5c0fbcf;\n let K03 : Nat32 = 0xe9b5dba5;\n let K04 : Nat32 = 0x3956c25b;\n let K05 : Nat32 = 0x59f111f1;\n let K06 : Nat32 = 0x923f82a4;\n let K07 : Nat32 = 0xab1c5ed5;\n let K08 : Nat32 = 0xd807aa98;\n let K09 : Nat32 = 0x12835b01;\n let K10 : Nat32 = 0x243185be;\n let K11 : Nat32 = 0x550c7dc3;\n let K12 : Nat32 = 0x72be5d74;\n let K13 : Nat32 = 0x80deb1fe;\n let K14 : Nat32 = 0x9bdc06a7;\n let K15 : Nat32 = 0xc19bf174;\n let K16 : Nat32 = 0xe49b69c1;\n let K17 : Nat32 = 0xefbe4786;\n let K18 : Nat32 = 0x0fc19dc6;\n let K19 : Nat32 = 0x240ca1cc;\n let K20 : Nat32 = 0x2de92c6f;\n let K21 : Nat32 = 0x4a7484aa;\n let K22 : Nat32 = 0x5cb0a9dc;\n let K23 : Nat32 = 0x76f988da;\n let K24 : Nat32 = 0x983e5152;\n let K25 : Nat32 = 0xa831c66d;\n let K26 : Nat32 = 0xb00327c8;\n let K27 : Nat32 = 0xbf597fc7;\n let K28 : Nat32 = 0xc6e00bf3;\n let K29 : Nat32 = 0xd5a79147;\n let K30 : Nat32 = 0x06ca6351;\n let K31 : Nat32 = 0x14292967;\n let K32 : Nat32 = 0x27b70a85;\n let K33 : Nat32 = 0x2e1b2138;\n let K34 : Nat32 = 0x4d2c6dfc;\n let K35 : Nat32 = 0x53380d13;\n let K36 : Nat32 = 0x650a7354;\n let K37 : Nat32 = 0x766a0abb;\n let K38 : Nat32 = 0x81c2c92e;\n let K39 : Nat32 = 0x92722c85;\n let K40 : Nat32 = 0xa2bfe8a1;\n let K41 : Nat32 = 0xa81a664b;\n let K42 : Nat32 = 0xc24b8b70;\n let K43 : Nat32 = 0xc76c51a3;\n let K44 : Nat32 = 0xd192e819;\n let K45 : Nat32 = 0xd6990624;\n let K46 : Nat32 = 0xf40e3585;\n let K47 : Nat32 = 0x106aa070;\n let K48 : Nat32 = 0x19a4c116;\n let K49 : Nat32 = 0x1e376c08;\n let K50 : Nat32 = 0x2748774c;\n let K51 : Nat32 = 0x34b0bcb5;\n let K52 : Nat32 = 0x391c0cb3;\n let K53 : Nat32 = 0x4ed8aa4a;\n let K54 : Nat32 = 0x5b9cca4f;\n let K55 : Nat32 = 0x682e6ff3;\n let K56 : Nat32 = 0x748f82ee;\n let K57 : Nat32 = 0x78a5636f;\n let K58 : Nat32 = 0x84c87814;\n let K59 : Nat32 = 0x8cc70208;\n let K60 : Nat32 = 0x90befffa;\n let K61 : Nat32 = 0xa4506ceb;\n let K62 : Nat32 = 0xbef9a3f7;\n let K63 : Nat32 = 0xc67178f2;\n\n let ivs : [[Nat32]] = [\n [\n // 224\n 0xc1059ed8,\n 0x367cd507,\n 0x3070dd17,\n 0xf70e5939,\n 0xffc00b31,\n 0x68581511,\n 0x64f98fa7,\n 0xbefa4fa4\n ],\n [\n // 256\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n ]\n ];\n\n let rot = Nat32.bitrotRight;\n\n class SHA224() {\n let (sum_bytes, iv) = (28, 0);\n\n var s0 : Nat32 = 0;\n var s1 : Nat32 = 0;\n var s2 : Nat32 = 0;\n var s3 : Nat32 = 0;\n var s4 : Nat32 = 0;\n var s5 : Nat32 = 0;\n var s6 : Nat32 = 0;\n var s7 : Nat32 = 0;\n\n let msg : [var Nat32] = VarArray.repeat(0, 16);\n let digest = VarArray.repeat(0, sum_bytes);\n var word : Nat32 = 0;\n\n var i_msg : Nat8 = 0;\n var i_byte : Nat8 = 4;\n var i_block : Nat64 = 0;\n\n public func reset() {\n i_msg := 0;\n i_byte := 4;\n i_block := 0;\n s0 := ivs[iv][0];\n s1 := ivs[iv][1];\n s2 := ivs[iv][2];\n s3 := ivs[iv][3];\n s4 := ivs[iv][4];\n s5 := ivs[iv][5];\n s6 := ivs[iv][6];\n s7 := ivs[iv][7]\n };\n\n reset();\n\n private func writeByte(val : Nat8) : () {\n word := (word << 8) ^ Nat32.fromIntWrap(Nat8.toNat(val));\n i_byte -%= 1;\n if (i_byte == 0) {\n msg[Nat8.toNat(i_msg)] := word;\n word := 0;\n i_byte := 4;\n i_msg +%= 1;\n if (i_msg == 16) {\n process_block();\n i_msg := 0;\n i_block +%= 1\n }\n }\n };\n\n private func process_block() : () {\n let w00 = msg[0];\n let w01 = msg[1];\n let w02 = msg[2];\n let w03 = msg[3];\n let w04 = msg[4];\n let w05 = msg[5];\n let w06 = msg[6];\n let w07 = msg[7];\n let w08 = msg[8];\n let w09 = msg[9];\n let w10 = msg[10];\n let w11 = msg[11];\n let w12 = msg[12];\n let w13 = msg[13];\n let w14 = msg[14];\n let w15 = msg[15];\n let w16 = w00 +% rot(w01, 07) ^ rot(w01, 18) ^ (w01 >> 03) +% w09 +% rot(w14, 17) ^ rot(w14, 19) ^ (w14 >> 10);\n let w17 = w01 +% rot(w02, 07) ^ rot(w02, 18) ^ (w02 >> 03) +% w10 +% rot(w15, 17) ^ rot(w15, 19) ^ (w15 >> 10);\n let w18 = w02 +% rot(w03, 07) ^ rot(w03, 18) ^ (w03 >> 03) +% w11 +% rot(w16, 17) ^ rot(w16, 19) ^ (w16 >> 10);\n let w19 = w03 +% rot(w04, 07) ^ rot(w04, 18) ^ (w04 >> 03) +% w12 +% rot(w17, 17) ^ rot(w17, 19) ^ (w17 >> 10);\n let w20 = w04 +% rot(w05, 07) ^ rot(w05, 18) ^ (w05 >> 03) +% w13 +% rot(w18, 17) ^ rot(w18, 19) ^ (w18 >> 10);\n let w21 = w05 +% rot(w06, 07) ^ rot(w06, 18) ^ (w06 >> 03) +% w14 +% rot(w19, 17) ^ rot(w19, 19) ^ (w19 >> 10);\n let w22 = w06 +% rot(w07, 07) ^ rot(w07, 18) ^ (w07 >> 03) +% w15 +% rot(w20, 17) ^ rot(w20, 19) ^ (w20 >> 10);\n let w23 = w07 +% rot(w08, 07) ^ rot(w08, 18) ^ (w08 >> 03) +% w16 +% rot(w21, 17) ^ rot(w21, 19) ^ (w21 >> 10);\n let w24 = w08 +% rot(w09, 07) ^ rot(w09, 18) ^ (w09 >> 03) +% w17 +% rot(w22, 17) ^ rot(w22, 19) ^ (w22 >> 10);\n let w25 = w09 +% rot(w10, 07) ^ rot(w10, 18) ^ (w10 >> 03) +% w18 +% rot(w23, 17) ^ rot(w23, 19) ^ (w23 >> 10);\n let w26 = w10 +% rot(w11, 07) ^ rot(w11, 18) ^ (w11 >> 03) +% w19 +% rot(w24, 17) ^ rot(w24, 19) ^ (w24 >> 10);\n let w27 = w11 +% rot(w12, 07) ^ rot(w12, 18) ^ (w12 >> 03) +% w20 +% rot(w25, 17) ^ rot(w25, 19) ^ (w25 >> 10);\n let w28 = w12 +% rot(w13, 07) ^ rot(w13, 18) ^ (w13 >> 03) +% w21 +% rot(w26, 17) ^ rot(w26, 19) ^ (w26 >> 10);\n let w29 = w13 +% rot(w14, 07) ^ rot(w14, 18) ^ (w14 >> 03) +% w22 +% rot(w27, 17) ^ rot(w27, 19) ^ (w27 >> 10);\n let w30 = w14 +% rot(w15, 07) ^ rot(w15, 18) ^ (w15 >> 03) +% w23 +% rot(w28, 17) ^ rot(w28, 19) ^ (w28 >> 10);\n let w31 = w15 +% rot(w16, 07) ^ rot(w16, 18) ^ (w16 >> 03) +% w24 +% rot(w29, 17) ^ rot(w29, 19) ^ (w29 >> 10);\n let w32 = w16 +% rot(w17, 07) ^ rot(w17, 18) ^ (w17 >> 03) +% w25 +% rot(w30, 17) ^ rot(w30, 19) ^ (w30 >> 10);\n let w33 = w17 +% rot(w18, 07) ^ rot(w18, 18) ^ (w18 >> 03) +% w26 +% rot(w31, 17) ^ rot(w31, 19) ^ (w31 >> 10);\n let w34 = w18 +% rot(w19, 07) ^ rot(w19, 18) ^ (w19 >> 03) +% w27 +% rot(w32, 17) ^ rot(w32, 19) ^ (w32 >> 10);\n let w35 = w19 +% rot(w20, 07) ^ rot(w20, 18) ^ (w20 >> 03) +% w28 +% rot(w33, 17) ^ rot(w33, 19) ^ (w33 >> 10);\n let w36 = w20 +% rot(w21, 07) ^ rot(w21, 18) ^ (w21 >> 03) +% w29 +% rot(w34, 17) ^ rot(w34, 19) ^ (w34 >> 10);\n let w37 = w21 +% rot(w22, 07) ^ rot(w22, 18) ^ (w22 >> 03) +% w30 +% rot(w35, 17) ^ rot(w35, 19) ^ (w35 >> 10);\n let w38 = w22 +% rot(w23, 07) ^ rot(w23, 18) ^ (w23 >> 03) +% w31 +% rot(w36, 17) ^ rot(w36, 19) ^ (w36 >> 10);\n let w39 = w23 +% rot(w24, 07) ^ rot(w24, 18) ^ (w24 >> 03) +% w32 +% rot(w37, 17) ^ rot(w37, 19) ^ (w37 >> 10);\n let w40 = w24 +% rot(w25, 07) ^ rot(w25, 18) ^ (w25 >> 03) +% w33 +% rot(w38, 17) ^ rot(w38, 19) ^ (w38 >> 10);\n let w41 = w25 +% rot(w26, 07) ^ rot(w26, 18) ^ (w26 >> 03) +% w34 +% rot(w39, 17) ^ rot(w39, 19) ^ (w39 >> 10);\n let w42 = w26 +% rot(w27, 07) ^ rot(w27, 18) ^ (w27 >> 03) +% w35 +% rot(w40, 17) ^ rot(w40, 19) ^ (w40 >> 10);\n let w43 = w27 +% rot(w28, 07) ^ rot(w28, 18) ^ (w28 >> 03) +% w36 +% rot(w41, 17) ^ rot(w41, 19) ^ (w41 >> 10);\n let w44 = w28 +% rot(w29, 07) ^ rot(w29, 18) ^ (w29 >> 03) +% w37 +% rot(w42, 17) ^ rot(w42, 19) ^ (w42 >> 10);\n let w45 = w29 +% rot(w30, 07) ^ rot(w30, 18) ^ (w30 >> 03) +% w38 +% rot(w43, 17) ^ rot(w43, 19) ^ (w43 >> 10);\n let w46 = w30 +% rot(w31, 07) ^ rot(w31, 18) ^ (w31 >> 03) +% w39 +% rot(w44, 17) ^ rot(w44, 19) ^ (w44 >> 10);\n let w47 = w31 +% rot(w32, 07) ^ rot(w32, 18) ^ (w32 >> 03) +% w40 +% rot(w45, 17) ^ rot(w45, 19) ^ (w45 >> 10);\n let w48 = w32 +% rot(w33, 07) ^ rot(w33, 18) ^ (w33 >> 03) +% w41 +% rot(w46, 17) ^ rot(w46, 19) ^ (w46 >> 10);\n let w49 = w33 +% rot(w34, 07) ^ rot(w34, 18) ^ (w34 >> 03) +% w42 +% rot(w47, 17) ^ rot(w47, 19) ^ (w47 >> 10);\n let w50 = w34 +% rot(w35, 07) ^ rot(w35, 18) ^ (w35 >> 03) +% w43 +% rot(w48, 17) ^ rot(w48, 19) ^ (w48 >> 10);\n let w51 = w35 +% rot(w36, 07) ^ rot(w36, 18) ^ (w36 >> 03) +% w44 +% rot(w49, 17) ^ rot(w49, 19) ^ (w49 >> 10);\n let w52 = w36 +% rot(w37, 07) ^ rot(w37, 18) ^ (w37 >> 03) +% w45 +% rot(w50, 17) ^ rot(w50, 19) ^ (w50 >> 10);\n let w53 = w37 +% rot(w38, 07) ^ rot(w38, 18) ^ (w38 >> 03) +% w46 +% rot(w51, 17) ^ rot(w51, 19) ^ (w51 >> 10);\n let w54 = w38 +% rot(w39, 07) ^ rot(w39, 18) ^ (w39 >> 03) +% w47 +% rot(w52, 17) ^ rot(w52, 19) ^ (w52 >> 10);\n let w55 = w39 +% rot(w40, 07) ^ rot(w40, 18) ^ (w40 >> 03) +% w48 +% rot(w53, 17) ^ rot(w53, 19) ^ (w53 >> 10);\n let w56 = w40 +% rot(w41, 07) ^ rot(w41, 18) ^ (w41 >> 03) +% w49 +% rot(w54, 17) ^ rot(w54, 19) ^ (w54 >> 10);\n let w57 = w41 +% rot(w42, 07) ^ rot(w42, 18) ^ (w42 >> 03) +% w50 +% rot(w55, 17) ^ rot(w55, 19) ^ (w55 >> 10);\n let w58 = w42 +% rot(w43, 07) ^ rot(w43, 18) ^ (w43 >> 03) +% w51 +% rot(w56, 17) ^ rot(w56, 19) ^ (w56 >> 10);\n let w59 = w43 +% rot(w44, 07) ^ rot(w44, 18) ^ (w44 >> 03) +% w52 +% rot(w57, 17) ^ rot(w57, 19) ^ (w57 >> 10);\n let w60 = w44 +% rot(w45, 07) ^ rot(w45, 18) ^ (w45 >> 03) +% w53 +% rot(w58, 17) ^ rot(w58, 19) ^ (w58 >> 10);\n let w61 = w45 +% rot(w46, 07) ^ rot(w46, 18) ^ (w46 >> 03) +% w54 +% rot(w59, 17) ^ rot(w59, 19) ^ (w59 >> 10);\n let w62 = w46 +% rot(w47, 07) ^ rot(w47, 18) ^ (w47 >> 03) +% w55 +% rot(w60, 17) ^ rot(w60, 19) ^ (w60 >> 10);\n let w63 = w47 +% rot(w48, 07) ^ rot(w48, 18) ^ (w48 >> 03) +% w56 +% rot(w61, 17) ^ rot(w61, 19) ^ (w61 >> 10);\n\n /*\n for ((i, j, k, l, m) in expansion_rounds.values()) {\n // (j,k,l,m) = (i+1,i+9,i+14,i+16)\n let (v0, v1) = (msg[j], msg[l]);\n let s0 = rot(v0, 07) ^ rot(v0, 18) ^ (v0 >> 03);\n let s1 = rot(v1, 17) ^ rot(v1, 19) ^ (v1 >> 10);\n msg[m] := msg[i] +% s0 +% msg[k] +% s1;\n };\n */\n // compress\n var a = s0;\n var b = s1;\n var c = s2;\n var d = s3;\n var e = s4;\n var f = s5;\n var g = s6;\n var h = s7;\n var t = 0 : Nat32;\n\n t := h +% K00 +% w00 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K01 +% w01 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K02 +% w02 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K03 +% w03 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K04 +% w04 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K05 +% w05 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K06 +% w06 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K07 +% w07 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K08 +% w08 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K09 +% w09 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K10 +% w10 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K11 +% w11 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K12 +% w12 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K13 +% w13 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K14 +% w14 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K15 +% w15 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K16 +% w16 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K17 +% w17 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K18 +% w18 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K19 +% w19 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K20 +% w20 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K21 +% w21 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K22 +% w22 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K23 +% w23 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K24 +% w24 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K25 +% w25 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K26 +% w26 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K27 +% w27 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K28 +% w28 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K29 +% w29 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K30 +% w30 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K31 +% w31 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K32 +% w32 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K33 +% w33 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K34 +% w34 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K35 +% w35 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K36 +% w36 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K37 +% w37 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K38 +% w38 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K39 +% w39 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K40 +% w40 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K41 +% w41 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K42 +% w42 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K43 +% w43 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K44 +% w44 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K45 +% w45 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K46 +% w46 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K47 +% w47 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K48 +% w48 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K49 +% w49 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K50 +% w50 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K51 +% w51 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K52 +% w52 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K53 +% w53 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K54 +% w54 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K55 +% w55 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K56 +% w56 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K57 +% w57 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K58 +% w58 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K59 +% w59 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K60 +% w60 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K61 +% w61 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K62 +% w62 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K63 +% w63 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n\n /*\n for (i in compression_rounds.keys()) {\n let ch = (e & f) ^ (^ e & g);\n let maj = (a & b) ^ (a & c) ^ (b & c);\n let sigma0 = rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n let sigma1 = rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n let t = h +% K[i] +% msg[i] +% ch +% sigma1;\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% maj +% sigma0;\n };\n */\n // final addition\n s0 +%= a;\n s1 +%= b;\n s2 +%= c;\n s3 +%= d;\n s4 +%= e;\n s5 +%= f;\n s6 +%= g;\n s7 +%= h\n };\n\n public func writeIter(iter : { next() : ?Nat8 }) : () {\n label reading loop {\n switch (iter.next()) {\n case (?val) {\n writeByte(val);\n continue reading\n };\n case (null) {\n break reading\n }\n }\n }\n };\n\n public func writeArray(arr : [Nat8]) : () = writeIter(arr.vals());\n public func writeBlob(blob : Blob) : () = writeIter(blob.vals());\n\n public func sum() : Blob {\n // calculate padding\n // t = bytes in the last incomplete block (0-63)\n let t : Nat8 = (i_msg << 2) +% 4 -% i_byte;\n // p = length of padding (1-64)\n var p : Nat8 = if (t < 56) (56 -% t) else (120 -% t);\n // n_bits = length of message in bits\n let n_bits : Nat64 = ((i_block << 6) +% Nat64.fromIntWrap(Nat8.toNat(t))) << 3;\n\n // write padding\n writeByte(0x80);\n p -%= 1;\n while (p != 0) {\n writeByte(0x00);\n p -%= 1\n };\n\n // write length (8 bytes)\n // Note: this exactly fills the block buffer, hence process_block will get\n // triggered by the last writeByte\n writeByte(Nat8.fromIntWrap(Nat64.toNat((n_bits >> 56) & 0xff)));\n writeByte(Nat8.fromIntWrap(Nat64.toNat((n_bits >> 48) & 0xff)));\n writeByte(Nat8.fromIntWrap(Nat64.toNat((n_bits >> 40) & 0xff)));\n writeByte(Nat8.fromIntWrap(Nat64.toNat((n_bits >> 32) & 0xff)));\n writeByte(Nat8.fromIntWrap(Nat64.toNat((n_bits >> 24) & 0xff)));\n writeByte(Nat8.fromIntWrap(Nat64.toNat((n_bits >> 16) & 0xff)));\n writeByte(Nat8.fromIntWrap(Nat64.toNat((n_bits >> 8) & 0xff)));\n writeByte(Nat8.fromIntWrap(Nat64.toNat(n_bits & 0xff)));\n\n // retrieve sum\n digest[0] := Nat8.fromIntWrap(Nat32.toNat((s0 >> 24) & 0xff));\n digest[1] := Nat8.fromIntWrap(Nat32.toNat((s0 >> 16) & 0xff));\n digest[2] := Nat8.fromIntWrap(Nat32.toNat((s0 >> 8) & 0xff));\n digest[3] := Nat8.fromIntWrap(Nat32.toNat(s0 & 0xff));\n digest[4] := Nat8.fromIntWrap(Nat32.toNat((s1 >> 24) & 0xff));\n digest[5] := Nat8.fromIntWrap(Nat32.toNat((s1 >> 16) & 0xff));\n digest[6] := Nat8.fromIntWrap(Nat32.toNat((s1 >> 8) & 0xff));\n digest[7] := Nat8.fromIntWrap(Nat32.toNat(s1 & 0xff));\n digest[8] := Nat8.fromIntWrap(Nat32.toNat((s2 >> 24) & 0xff));\n digest[9] := Nat8.fromIntWrap(Nat32.toNat((s2 >> 16) & 0xff));\n digest[10] := Nat8.fromIntWrap(Nat32.toNat((s2 >> 8) & 0xff));\n digest[11] := Nat8.fromIntWrap(Nat32.toNat(s2 & 0xff));\n digest[12] := Nat8.fromIntWrap(Nat32.toNat((s3 >> 24) & 0xff));\n digest[13] := Nat8.fromIntWrap(Nat32.toNat((s3 >> 16) & 0xff));\n digest[14] := Nat8.fromIntWrap(Nat32.toNat((s3 >> 8) & 0xff));\n digest[15] := Nat8.fromIntWrap(Nat32.toNat(s3 & 0xff));\n digest[16] := Nat8.fromIntWrap(Nat32.toNat((s4 >> 24) & 0xff));\n digest[17] := Nat8.fromIntWrap(Nat32.toNat((s4 >> 16) & 0xff));\n digest[18] := Nat8.fromIntWrap(Nat32.toNat((s4 >> 8) & 0xff));\n digest[19] := Nat8.fromIntWrap(Nat32.toNat(s4 & 0xff));\n digest[20] := Nat8.fromIntWrap(Nat32.toNat((s5 >> 24) & 0xff));\n digest[21] := Nat8.fromIntWrap(Nat32.toNat((s5 >> 16) & 0xff));\n digest[22] := Nat8.fromIntWrap(Nat32.toNat((s5 >> 8) & 0xff));\n digest[23] := Nat8.fromIntWrap(Nat32.toNat(s5 & 0xff));\n digest[24] := Nat8.fromIntWrap(Nat32.toNat((s6 >> 24) & 0xff));\n digest[25] := Nat8.fromIntWrap(Nat32.toNat((s6 >> 16) & 0xff));\n digest[26] := Nat8.fromIntWrap(Nat32.toNat((s6 >> 8) & 0xff));\n digest[27] := Nat8.fromIntWrap(Nat32.toNat(s6 & 0xff));\n\n return Blob.fromVarArray(digest)\n }\n }; // class SHA224\n\n func nat32ToByteArray(n : Nat32) : [Nat8] {\n func byte(n : Nat32) : Nat8 {\n Nat8.fromNat(Nat32.toNat(n & 0xff))\n };\n [byte(n >> 24), byte(n >> 16), byte(n >> 8), byte(n)]\n };\n\n func toByteArray(p : Principal) : [Nat8] = Blob.toArray(toBlob(p));\n\n func isLastByte(byteArray : [Nat8], byte : Nat8) : Bool {\n let size = byteArray.size();\n size > 0 and byteArray[size - 1] == byte\n }\n}\n"},"Set.mo":{"content":"/// Imperative (mutable) sets based on order/comparison of elements.\n/// A set is a collection of elements without duplicates.\n/// The set data structure type is stable and can be used for orthogonal persistence.\n///\n/// Example:\n/// ```motoko\n/// import Set \"mo:core/Set\";\n/// import Nat \"mo:core/Nat\";\n///\n/// persistent actor {\n/// let set = Set.fromIter([3, 1, 2, 3].vals(), Nat.compare);\n/// assert Set.size(set) == 3;\n/// assert not Set.contains(set, Nat.compare, 4);\n/// let diff = Set.difference(set, set, Nat.compare);\n/// assert Set.isEmpty(diff);\n/// }\n/// ```\n///\n/// These sets are implemented as B-trees with order 32, a balanced search tree of ordered elements.\n///\n/// Performance:\n/// * Runtime: `O(log(n))` worst case cost per insertion, removal, and retrieval operation.\n/// * Space: `O(n)` for storing the entire tree,\n/// where `n` denotes the number of elements stored in the set.\n\n// Data structure implementation is courtesy of Byron Becker.\n// Source: https://github.com/canscale/StableHeapBTreeMap\n// Copyright (c) 2022 Byron Becker.\n// Distributed under Apache 2.0 license.\n// With adjustments by the Motoko team.\n\nimport PureSet \"pure/Set\";\nimport Types \"Types\";\nimport Order \"Order\";\nimport Array \"Array\";\nimport VarArray \"VarArray\";\nimport Runtime \"Runtime\";\nimport Stack \"Stack\";\nimport Option \"Option\";\nimport Iter \"Iter\";\nimport BTreeHelper \"internal/BTreeHelper\";\n\nmodule {\n let btreeOrder = 32; // Should be >= 4 and <= 512.\n\n public type Set = Types.Set.Set;\n type Node = Types.Set.Node;\n type Data = Types.Set.Data;\n type Internal = Types.Set.Internal;\n type Leaf = Types.Set.Leaf;\n\n /// Convert the mutable set to an immutable, purely functional set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import PureSet \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 2, 1].values(), Nat.compare);\n /// let pureSet = Set.toPure(set, Nat.compare);\n /// assert Iter.toArray(PureSet.values(pureSet)) == Iter.toArray(Set.values(set));\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n /// @deprecated M0235\n public func toPure(self : Set, compare : (implicit : (T, T) -> Order.Order)) : PureSet.Set {\n PureSet.fromIter(values(self), compare)\n };\n\n /// Convert an immutable, purely functional set to a mutable set.\n ///\n /// Example:\n /// ```motoko\n /// import PureSet \"mo:core/pure/Set\";\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let pureSet = PureSet.fromIter([3, 1, 2].values(), Nat.compare);\n /// let set = Set.fromPure(pureSet, Nat.compare);\n /// assert Iter.toArray(Set.values(set)) == Iter.toArray(PureSet.values(pureSet));\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func fromPure(set : PureSet.Set, compare : (implicit : (T, T) -> Order.Order)) : Set {\n fromIter(PureSet.values(set), compare)\n };\n\n public func fromArray(array : [T], compare : (implicit : (T, T) -> Order.Order)) : Set {\n fromIter(array.values(), compare)\n };\n\n /// Create a copy of the mutable set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let originalSet = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let clonedSet = Set.clone(originalSet);\n /// Set.add(originalSet, Nat.compare, 4);\n /// assert Set.size(clonedSet) == 3;\n /// assert Set.size(originalSet) == 4;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements stored in the set.\n public func clone(self : Set) : Set {\n {\n var root = cloneNode(self.root);\n var size = self.size\n }\n };\n\n /// Create a new empty mutable set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// assert Set.size(set) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func empty() : Set {\n {\n var root = #leaf({\n data = {\n elements = VarArray.repeat(null, btreeOrder - 1);\n var count = 0\n }\n });\n var size = 0\n }\n };\n\n /// Create a new mutable set with a single element.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n ///\n /// persistent actor {\n /// let cities = Set.singleton(\"Zurich\");\n /// assert Set.size(cities) == 1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func singleton(element : T) : Set {\n let elements = VarArray.repeat(null, btreeOrder - 1);\n elements[0] := ?element;\n {\n var root =\n #leaf({ data = { elements; var count = 1 } });\n var size = 1\n }\n };\n\n /// Remove all the elements from the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Text \"mo:core/Text\";\n ///\n /// persistent actor {\n /// let cities = Set.empty();\n /// Set.add(cities, Text.compare, \"Zurich\");\n /// Set.add(cities, Text.compare, \"San Francisco\");\n /// Set.add(cities, Text.compare, \"London\");\n /// assert Set.size(cities) == 3;\n ///\n /// Set.clear(cities);\n /// assert Set.size(cities) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func clear(self : Set) {\n let emptySet = empty();\n self.root := emptySet.root;\n self.size := 0\n };\n\n /// Determines whether a set is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// Set.add(set, Nat.compare, 1);\n /// Set.add(set, Nat.compare, 2);\n /// Set.add(set, Nat.compare, 3);\n ///\n /// assert not Set.isEmpty(set);\n /// Set.clear(set);\n /// assert Set.isEmpty(set);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func isEmpty(self : Set) : Bool {\n self.size == 0\n };\n\n /// Return the number of elements in a set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// Set.add(set, Nat.compare, 1);\n /// Set.add(set, Nat.compare, 2);\n /// Set.add(set, Nat.compare, 3);\n ///\n /// assert Set.size(set) == 3;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func size(self : Set) : Nat {\n self.size\n };\n\n /// Test whether two imperative sets are equal.\n /// Both sets have to be constructed by the same comparison function.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2].values(), Nat.compare);\n /// let set2 = Set.fromIter([2, 1].values(), Nat.compare);\n /// let set3 = Set.fromIter([2, 1, 0].values(), Nat.compare);\n /// assert Set.equal(set1, set2, Nat.compare);\n /// assert not Set.equal(set1, set3, Nat.compare);\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n public func equal(self : Set, other : Set, compare : (implicit : (T, T) -> Types.Order)) : Bool {\n if (self.size != other.size) return false;\n // TODO: optimize\n let iterator1 = values(self);\n let iterator2 = values(other);\n loop {\n let next1 = iterator1.next();\n let next2 = iterator2.next();\n switch (next1, next2) {\n case (null, null) {\n return true\n };\n case (?element1, ?element2) {\n if (not (compare(element1, element2) == #equal)) {\n return false\n }\n };\n case _ { return false }\n }\n }\n };\n\n /// Tests whether the set contains the provided element.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// Set.add(set, Nat.compare, 1);\n /// Set.add(set, Nat.compare, 2);\n /// Set.add(set, Nat.compare, 3);\n ///\n /// assert Set.contains(set, Nat.compare, 1);\n /// assert not Set.contains(set, Nat.compare, 4);\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func contains(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) : Bool {\n switch (self.root) {\n case (#internal(internalNode)) {\n containsInInternal(internalNode, compare, element)\n };\n case (#leaf(leafNode)) { containsInLeaf(leafNode, compare, element) }\n }\n };\n\n /// Add a new element to a set.\n /// No effect if the element already exists in the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// Set.add(set, Nat.compare, 2);\n /// Set.add(set, Nat.compare, 1);\n /// Set.add(set, Nat.compare, 2);\n /// assert Iter.toArray(Set.values(set)) == [1, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func add(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) {\n ignore insert(self, compare, element)\n };\n\n /// Insert a new element in the set.\n /// Returns true if the element is new, false if the element was already contained in the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// assert Set.insert(set, Nat.compare, 2);\n /// assert Set.insert(set, Nat.compare, 1);\n /// assert not Set.insert(set, Nat.compare, 2);\n /// assert Iter.toArray(Set.values(set)) == [1, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func insert(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) : Bool {\n let insertResult = switch (self.root) {\n case (#leaf(leafNode)) {\n leafInsertHelper(leafNode, btreeOrder, compare, element)\n };\n case (#internal(internalNode)) {\n internalInsertHelper(internalNode, btreeOrder, compare, element)\n }\n };\n\n switch (insertResult) {\n case (#inserted) {\n // if inserted an element that was not previously there, increment the tree size counter\n self.size += 1;\n true\n };\n case (#existent) {\n // keep size\n false\n };\n case (#promote({ element = promotedElement; leftChild; rightChild })) {\n let elements = VarArray.repeat(null, btreeOrder - 1);\n elements[0] := ?promotedElement;\n let children = VarArray.repeat>(null, btreeOrder);\n children[0] := ?leftChild;\n children[1] := ?rightChild;\n self.root := #internal({\n data = { elements; var count = 1 };\n children\n });\n // promotion always comes from inserting a new element, so increment the tree size counter\n self.size += 1;\n true\n }\n }\n };\n\n /// Deletes an element from a set.\n /// No effect if the element is not contained in the set.\n ///\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([1, 2, 3].values(), Nat.compare);\n ///\n /// Set.remove(set, Nat.compare, 2);\n /// assert not Set.contains(set, Nat.compare, 2);\n ///\n /// Set.remove(set, Nat.compare, 4);\n /// assert not Set.contains(set, Nat.compare, 4);\n ///\n /// assert Iter.toArray(Set.values(set)) == [1, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` including garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` objects that will be collected as garbage.\n public func remove(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) : () {\n ignore delete(self, compare, element)\n };\n\n /// Deletes an element from a set.\n /// Returns true if the element was contained in the set, false if not.\n ///\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([1, 2, 3].values(), Nat.compare);\n ///\n /// assert Set.delete(set, Nat.compare, 2);\n /// assert not Set.contains(set, Nat.compare, 2);\n ///\n /// assert not Set.delete(set, Nat.compare, 4);\n /// assert not Set.contains(set, Nat.compare, 4);\n /// assert Iter.toArray(Set.values(set)) == [1, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` including garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` objects that will be collected as garbage.\n /// @deprecated M0235\n public func delete(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) : Bool {\n let deleted = switch (self.root) {\n case (#leaf(leafNode)) {\n // TODO: think about how this can be optimized so don't have to do two steps (search and then insert)?\n switch (NodeUtil.getElementIndex(leafNode.data, compare, element)) {\n case (#elementFound(deleteIndex)) {\n leafNode.data.count -= 1;\n ignore BTreeHelper.deleteAndShift(leafNode.data.elements, deleteIndex);\n self.size -= 1;\n true\n };\n case _ { false }\n }\n };\n case (#internal(internalNode)) {\n let deletedElement = switch (internalDeleteHelper(internalNode, btreeOrder, compare, element, false)) {\n case (#deleted) { true };\n case (#inexistent) { false };\n case (#mergeChild({ internalChild })) {\n if (internalChild.data.count > 0) {\n self.root := #internal(internalChild)\n }\n // This case will be hit if the BTree has order == 4\n // In this case, the internalChild has no element (last element was merged with new child), so need to promote that merged child (its only child)\n else {\n self.root := switch (internalChild.children[0]) {\n case (?node) { node };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.delete(), element deletion failed, due to a null replacement node error\")\n }\n }\n };\n true\n }\n };\n if (deletedElement) {\n // if deleted an element from the BTree, decrement the size\n self.size -= 1\n };\n deletedElement\n }\n };\n deleted\n };\n\n /// Retrieves the maximum element from the set.\n /// If the set is empty, returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// assert Set.max(set) == null;\n /// Set.add(set, Nat.compare, 3);\n /// Set.add(set, Nat.compare, 1);\n /// Set.add(set, Nat.compare, 2);\n /// assert Set.max(set) == ?3;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of elements stored in the set.\n public func max(self : Set) : ?T {\n reverseValues(self).next()\n };\n\n /// Retrieves the minimum element from the set.\n /// If the set is empty, returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// assert Set.min(set) == null;\n /// Set.add(set, Nat.compare, 1);\n /// Set.add(set, Nat.compare, 2);\n /// Set.add(set, Nat.compare, 3);\n /// assert Set.min(set) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of elements stored in the set.\n public func min(self : Set) : ?T {\n values(self).next()\n };\n\n public func toArray(self : Set) : [T] {\n Iter.toArray(values(self))\n };\n\n /// Returns an iterator over the elements in the set,\n /// traversing the elements in the ascending order.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 2, 3, 1].values(), Nat.compare);\n ///\n /// var tmp = \"\";\n /// for (number in Set.values(set)) {\n /// tmp #= \" \" # Nat.toText(number);\n /// };\n /// assert tmp == \" 0 1 2 3\";\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func values(self : Set) : Types.Iter {\n switch (self.root) {\n case (#leaf(leafNode)) { return leafElements(leafNode) };\n case (#internal(internalNode)) { internalElements(internalNode) }\n }\n };\n\n /// Returns an iterator over the elements in the set,\n /// starting from a given element in ascending order.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 1].values(), Nat.compare);\n /// assert Iter.toArray(Set.valuesFrom(set, Nat.compare, 1)) == [1, 3];\n /// assert Iter.toArray(Set.valuesFrom(set, Nat.compare, 2)) == [3];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func valuesFrom(\n self : Set,\n compare : (implicit : (T, T) -> Order.Order),\n element : T\n ) : Types.Iter {\n switch (self.root) {\n case (#leaf(leafNode)) leafElementsFrom(leafNode, compare, element);\n case (#internal(internalNode)) internalElementsFrom(internalNode, compare, element)\n }\n };\n\n /// Returns an iterator over the elements in the set,\n /// traversing the elements in the descending order.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 2, 3, 1].values(), Nat.compare);\n ///\n /// var tmp = \"\";\n /// for (number in Set.reverseValues(set)) {\n /// tmp #= \" \" # Nat.toText(number);\n /// };\n /// assert tmp == \" 3 2 1 0\";\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func reverseValues(self : Set) : Types.Iter {\n switch (self.root) {\n case (#leaf(leafNode)) { return reverseLeafElements(leafNode) };\n case (#internal(internalNode)) { reverseInternalElements(internalNode) }\n }\n };\n\n /// Returns an iterator over the elements in the set,\n /// starting from a given element in descending order.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 1, 3].values(), Nat.compare);\n /// assert Iter.toArray(Set.reverseValuesFrom(set, Nat.compare, 0)) == [0];\n /// assert Iter.toArray(Set.reverseValuesFrom(set, Nat.compare, 2)) == [1, 0];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func reverseValuesFrom(\n self : Set,\n compare : (implicit : (T, T) -> Order.Order),\n element : T\n ) : Types.Iter {\n switch (self.root) {\n case (#leaf(leafNode)) reverseLeafElementsFrom(leafNode, compare, element);\n case (#internal(internalNode)) reverseInternalElementsFrom(internalNode, compare, element)\n }\n };\n\n /// Create a mutable set with the elements obtained from an iterator.\n /// Potential duplicate elements in the iterator are ignored, i.e.\n /// multiple occurrence of an equal element only occur once in the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([3, 1, 2, 1].values(), Nat.compare);\n /// assert Iter.toArray(Set.values(set)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements returned by the iterator and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func fromIter(iter : Types.Iter, compare : (implicit : (T, T) -> Order.Order)) : Set {\n let set = empty();\n for (element in iter) {\n add(set, compare, element)\n };\n set\n };\n\n /// Convert an iterator of elements to a mutable set.\n /// Potential duplicate elements in the iterator are ignored, i.e.\n /// multiple occurrence of an equal element only occur once in the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// transient let iter = [3, 1, 2, 1].values();\n ///\n /// let set = iter.toSet(Nat.compare);\n ///\n /// assert Iter.toArray(Set.values(set)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements returned by the iterator and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func toSet(self : Types.Iter, compare : (implicit : (T, T) -> Order.Order)) : Set {\n fromIter(self, compare)\n };\n\n /// Test whether `set1` is a sub-set of `set2`, i.e. each element in `set1` is\n /// also contained in `set2`. Returns `true` if both sets are equal.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2].values(), Nat.compare);\n /// let set2 = Set.fromIter([2, 1, 0].values(), Nat.compare);\n /// let set3 = Set.fromIter([3, 4].values(), Nat.compare);\n /// assert Set.isSubset(set1, set2, Nat.compare);\n /// assert not Set.isSubset(set1, set3, Nat.compare);\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets `set1` and `set2`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func isSubset(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Bool {\n if (self.size > other.size) { return false };\n // TODO: optimize\n for (element in values(self)) {\n if (not contains(other, compare, element)) {\n return false\n }\n };\n true\n };\n\n /// Returns a new set that is the union of `set1` and `set2`,\n /// i.e. a new set that all the elements that exist in at least on of the two sets.\n /// Potential duplicates are ignored, i.e. if the same element occurs in both `set1`\n /// and `set2`, it only occurs once in the returned set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let union = Set.union(set1, set2, Nat.compare);\n /// assert Iter.toArray(Set.values(union)) == [1, 2, 3, 4, 5];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets `set1` and `set2`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func union(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Set {\n let result = clone(self);\n for (element in values(other)) {\n if (not contains(result, compare, element)) {\n add(result, compare, element)\n }\n };\n result\n };\n\n /// Returns a new set that is the intersection of `set1` and `set2`,\n /// i.e. a new set that contains all the elements that exist in both sets.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([0, 1, 2].values(), Nat.compare);\n /// let set2 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let intersection = Set.intersection(set1, set2, Nat.compare);\n /// assert Iter.toArray(Set.values(intersection)) == [1, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets `set1` and `set2`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func intersection(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Set {\n let result = empty();\n for (element in values(self)) {\n if (contains(other, compare, element)) {\n add(result, compare, element)\n }\n };\n result\n };\n\n /// Returns a new set that is the difference between `set1` and `set2` (`set1` minus `set2`),\n /// i.e. a new set that contains all the elements of `set1` that do not exist in `set2`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let difference = Set.difference(set1, set2, Nat.compare);\n /// assert Iter.toArray(Set.values(difference)) == [1, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets `set1` and `set2`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func difference(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Set {\n let result = empty();\n for (element in values(self)) {\n if (not contains(other, compare, element)) {\n add(result, compare, element)\n }\n };\n result\n };\n\n /// Adds all elements from `iter` to the specified `set`.\n /// This is equivalent to `Set.union()` but modifies the set in place.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// Set.addAll(set, Nat.compare, [3, 4, 5].values());\n /// assert Iter.toArray(Set.values(set)) == [1, 2, 3, 4, 5];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements in `set` and `iter`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func addAll(self : Set, compare : (implicit : (T, T) -> Order.Order), iter : Types.Iter) {\n for (element in iter) {\n add(self, compare, element)\n }\n };\n\n /// Deletes all values in `iter` from the specified `set`.\n /// Returns `true` if any value was present in the set, otherwise false.\n /// The return value indicates whether the size of the set has changed.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 1, 2].values(), Nat.compare);\n /// assert Set.deleteAll(set, Nat.compare, [0, 2].values());\n /// assert Iter.toArray(Set.values(set)) == [1];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements in `set` and `iter`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func deleteAll(self : Set, compare : (implicit : (T, T) -> Order.Order), iter : Types.Iter) : Bool {\n var deleted = false;\n for (element in iter) {\n deleted := delete(self, compare, element) or deleted // order matters!\n };\n deleted\n };\n\n /// Inserts all values in `iter` into `set`.\n /// Returns true if any value was not contained in the original set, otherwise false.\n /// The return value indicates whether the size of the set has changed.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 1, 2].values(), Nat.compare);\n /// assert Set.insertAll(set, Nat.compare, [0, 2, 3].values());\n /// assert Iter.toArray(Set.values(set)) == [0, 1, 2, 3];\n /// assert not Set.insertAll(set, Nat.compare, [0, 1, 2].values()); // no change\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements in `set` and `iter`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func insertAll(self : Set, compare : (implicit : (T, T) -> Order.Order), iter : Types.Iter) : Bool {\n var inserted = false;\n for (element in iter) {\n inserted := insert(self, compare, element) or inserted // order matters!\n };\n inserted\n };\n\n /// Removes all values in `set` that do not satisfy the given predicate.\n /// Returns `true` if and only if the size of the set has changed.\n /// Modifies the set in place.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([3, 1, 2].values(), Nat.compare);\n ///\n /// let sizeChanged = Set.retainAll(set, Nat.compare, func n { n % 2 == 0 });\n /// assert Iter.toArray(Set.values(set)) == [2];\n /// assert sizeChanged;\n /// }\n /// ```\n public func retainAll(self : Set, compare : (implicit : (T, T) -> Order.Order), predicate : T -> Bool) : Bool {\n let array = Array.fromIter(values(self));\n deleteAll(\n self,\n compare,\n Iter.filter(array.vals(), func(element : T) : Bool = not predicate(element))\n )\n };\n\n /// Apply an operation on each element contained in the set.\n /// The operation is applied in ascending order of the elements.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// var tmp = \"\";\n /// Set.forEach(numbers, func (element) {\n /// tmp #= \" \" # Nat.toText(element)\n /// });\n /// assert tmp == \" 0 1 2 3\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func forEach(self : Set, operation : T -> ()) {\n for (element in values(self)) {\n operation(element)\n }\n };\n\n /// Filter elements in a new set.\n /// Create a copy of the mutable set that only contains the elements\n /// that fulfil the criterion function.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// let evenNumbers = Set.filter(numbers, Nat.compare, func (number) {\n /// number % 2 == 0\n /// });\n /// assert Iter.toArray(Set.values(evenNumbers)) == [0, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func filter(self : Set, compare : (implicit : (T, T) -> Order.Order), criterion : T -> Bool) : Set {\n let result = empty();\n for (element in values(self)) {\n if (criterion(element)) {\n add(result, compare, element)\n }\n };\n result\n };\n\n /// Project all elements of the set in a new set.\n /// Apply a mapping function to each element in the set and\n /// collect the mapped elements in a new mutable set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([3, 1, 2].values(), Nat.compare);\n ///\n /// let textNumbers =\n /// Set.map(numbers, Text.compare, Nat.toText);\n /// assert Iter.toArray(Set.values(textNumbers)) == [\"1\", \"2\", \"3\"];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func map(self : Set, compare : (implicit : (T2, T2) -> Order.Order), project : T1 -> T2) : Set {\n let result = empty();\n for (element1 in values(self)) {\n let element2 = project(element1);\n add(result, compare, element2)\n };\n result\n };\n\n /// Filter all elements in the set by also applying a projection to the elements.\n /// Apply a mapping function `project` to all elements in the set and collect all\n /// elements, for which the function returns a non-null new element. Collect all\n /// non-discarded new elements in a new mutable set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([3, 0, 2, 1].values(), Nat.compare);\n ///\n /// let evenTextNumbers = Set.filterMap(numbers, Text.compare, func (number) {\n /// if (number % 2 == 0) {\n /// ?Nat.toText(number)\n /// } else {\n /// null // discard odd numbers\n /// }\n /// });\n /// assert Iter.toArray(Set.values(evenTextNumbers)) == [\"0\", \"2\"];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func filterMap(self : Set, compare : (implicit : (T2, T2) -> Order.Order), project : T1 -> ?T2) : Set {\n let result = empty();\n for (element1 in values(self)) {\n switch (project(element1)) {\n case null {};\n case (?element2) add(result, compare, element2)\n }\n };\n result\n };\n\n /// Iterate all elements in ascending order,\n /// and accumulate the elements by applying the combine function, starting from a base value.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 2, 1].values(), Nat.compare);\n ///\n /// let text = Set.foldLeft(\n /// set,\n /// \"\",\n /// func (accumulator, element) {\n /// accumulator # \" \" # Nat.toText(element)\n /// }\n /// );\n /// assert text == \" 0 1 2 3\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func foldLeft(\n self : Set,\n base : A,\n combine : (A, T) -> A\n ) : A {\n var accumulator = base;\n for (element in values(self)) {\n accumulator := combine(accumulator, element)\n };\n accumulator\n };\n\n /// Iterate all elements in descending order,\n /// and accumulate the elements by applying the combine function, starting from a base value.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 2, 1].values(), Nat.compare);\n ///\n /// let text = Set.foldRight(\n /// set,\n /// \"\",\n /// func (element, accumulator) {\n /// accumulator # \" \" # Nat.toText(element)\n /// }\n /// );\n /// assert text == \" 3 2 1 0\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func foldRight(\n self : Set,\n base : A,\n combine : (T, A) -> A\n ) : A {\n var accumulator = base;\n for (element in reverseValues(self)) {\n accumulator := combine(element, accumulator)\n };\n accumulator\n };\n\n /// Construct the union of a series of sets, i.e. all elements of\n /// each set are included in the result set.\n /// Any duplicates are ignored, i.e. if an element occurs\n /// in several of the iterated sets, it only occurs once in the result set.\n ///\n /// Assumes all sets are ordered by `compare`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let set3 = Set.fromIter([5, 6, 7].values(), Nat.compare);\n /// let combined = Set.join([set1, set2, set3].values(), Nat.compare);\n /// assert Iter.toArray(Set.values(combined)) == [1, 2, 3, 4, 5, 6, 7];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of elements stored in the iterated sets,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func join(setIterator : Types.Iter>, compare : (implicit : (T, T) -> Order.Order)) : Set {\n let result = empty();\n for (set in setIterator) {\n for (element in values(set)) {\n add(result, compare, element)\n }\n };\n result\n };\n\n /// Construct the union of a set of element sets, i.e. all elements of\n /// each element set are included in the result set.\n /// Any duplicates are ignored, i.e. if the same element occurs in multiple element sets,\n /// it only occurs once in the result set.\n ///\n /// Assumes all sets are ordered by `compare`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Order \"mo:core/Order\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// func setCompare(first: Set.Set, second: Set.Set) : Order.Order {\n /// Set.compare(first, second, Nat.compare)\n /// };\n ///\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let set3 = Set.fromIter([5, 6, 7].values(), Nat.compare);\n /// let setOfSets = Set.fromIter([set1, set2, set3].values(), setCompare);\n /// let flatSet = Set.flatten(setOfSets, Nat.compare);\n /// assert Iter.toArray(Set.values(flatSet)) == [1, 2, 3, 4, 5, 6, 7];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of elements stored in all the sub-sets,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func flatten(self : Set>, compare : (implicit : (T, T) -> Order.Order)) : Set {\n let result = empty();\n for (subSet in values(self)) {\n for (element in values(subSet)) {\n add(result, compare, element)\n }\n };\n result\n };\n\n /// Check whether all elements in the set satisfy a predicate, i.e.\n /// the `predicate` function returns `true` for all elements in the set.\n /// Returns `true` for an empty set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// let belowTen = Set.all(set, func (number) {\n /// number < 10\n /// });\n /// assert belowTen;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func all(self : Set, predicate : T -> Bool) : Bool {\n // TODO optimize, avoiding iterator\n for (element in values(self)) {\n if (not predicate(element)) {\n return false\n }\n };\n true\n };\n\n /// Check whether at least one element in the set satisfies a predicate, i.e.\n /// the `predicate` function returns `true` for at least one element in the set.\n /// Returns `false` for an empty set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// let aboveTen = Set.any(set, func (number) {\n /// number > 10\n /// });\n /// assert not aboveTen;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func any(self : Set, predicate : T -> Bool) : Bool {\n // TODO optimize, avoiding iterator\n for (element in values(self)) {\n if (predicate(element)) {\n return true\n }\n };\n false\n };\n\n /// Internal sanity check function.\n /// Can be used to check that elements have been inserted with a consistent comparison function.\n /// Traps if the internal set structure is invalid.\n /// @deprecated M0235\n public func assertValid(self : Set, compare : (implicit : (T, T) -> Order.Order)) {\n func checkIteration(iterator : Types.Iter, order : Order.Order) {\n switch (iterator.next()) {\n case null {};\n case (?first) {\n var previous = first;\n loop {\n switch (iterator.next()) {\n case null return;\n case (?next) {\n if (compare(previous, next) != order) {\n Runtime.trap(\"Invalid order\")\n };\n previous := next\n }\n }\n }\n }\n }\n };\n checkIteration(values(self), #less);\n checkIteration(reverseValues(self), #greater)\n };\n\n /// Generate a textual representation of all the elements in the set.\n /// Primarily to be used for testing and debugging.\n /// The elements are formatted according to `elementFormat`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// assert Set.toText(set, Nat.toText) == \"Set{0, 1, 2, 3}\"\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that `elementFormat` has runtime and space costs of `O(1)`.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func toText(self : Set, toText : (implicit : T -> Text)) : Text {\n var text = \"Set{\";\n var sep = \"\";\n for (element in values(self)) {\n text #= sep # toText(element);\n sep := \", \"\n };\n text # \"}\"\n };\n\n /// Compare two sets by comparing the elements.\n /// Both sets must have been created by the same comparison function.\n /// The two sets are iterated by the ascending order of their creation and\n /// order is determined by the following rules:\n /// Less:\n /// `set1` is less than `set2` if:\n /// * the pairwise iteration hits an element pair `element1` and `element2` where\n /// `element1` is less than `element2` and all preceding elements are equal, or,\n /// * `set1` is a strict prefix of `set2`, i.e. `set2` has more elements than `set1`\n /// and all elements of `set1` occur at the beginning of iteration `set2`.\n /// Equal:\n /// `set1` and `set2` have same series of equal elements by pairwise iteration.\n /// Greater:\n /// `set1` is neither less nor equal `set2`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([0, 1].values(), Nat.compare);\n /// let set2 = Set.fromIter([0, 2].values(), Nat.compare);\n ///\n /// assert Set.compare(set1, set2, Nat.compare) == #less;\n /// assert Set.compare(set1, set1, Nat.compare) == #equal;\n /// assert Set.compare(set2, set1, Nat.compare) == #greater;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that `compare` has runtime and space costs of `O(1)`.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func compare(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Order.Order {\n let iterator1 = values(self);\n let iterator2 = values(other);\n loop {\n switch (iterator1.next(), iterator2.next()) {\n case (null, null) return #equal;\n case (null, _) return #less;\n case (_, null) return #greater;\n case (?element1, ?element2) {\n let comparison = compare(element1, element2);\n if (comparison != #equal) {\n return comparison\n }\n }\n }\n }\n };\n\n func leafElements({ data } : Leaf) : Types.Iter {\n var i : Nat = 0;\n object {\n public func next() : ?T {\n if (i >= data.count) {\n null\n } else {\n let res = data.elements[i];\n i += 1;\n res\n }\n }\n }\n };\n\n func leafElementsFrom({ data } : Leaf, compare : (T, T) -> Order.Order, element : T) : Types.Iter {\n var i = switch (BinarySearch.binarySearchNode(data.elements, compare, element, data.count)) {\n case (#elementFound(i)) i;\n case (#notFound(i)) i\n };\n object {\n public func next() : ?T {\n if (i >= data.count) {\n null\n } else {\n let res = data.elements[i];\n i += 1;\n res\n }\n }\n }\n };\n\n func reverseLeafElements({ data } : Leaf) : Types.Iter {\n var i : Nat = data.count;\n object {\n public func next() : ?T {\n if (i == 0) {\n null\n } else {\n let res = data.elements[i - 1];\n i -= 1;\n res\n }\n }\n }\n };\n\n func reverseLeafElementsFrom({ data } : Leaf, compare : (T, T) -> Order.Order, element : T) : Types.Iter {\n var i = switch (BinarySearch.binarySearchNode(data.elements, compare, element, data.count)) {\n case (#elementFound(i)) i + 1; // +1 to include this element\n case (#notFound(i)) i // i is the index of the first element greater than the search element, or count if all elements are less than the search element\n };\n object {\n public func next() : ?T {\n if (i == 0) {\n null\n } else {\n let res = data.elements[i - 1];\n i -= 1;\n res\n }\n }\n }\n };\n\n // Cursor type that keeps track of the current node and the current element index in the node\n type NodeCursor = { node : Node; elementIndex : Nat };\n\n func internalElements(internal : Internal) : Types.Iter {\n // The nodeCursorStack keeps track of the current node and the current element index in the node\n // We use a stack here to push to/pop off the next node cursor to visit\n let nodeCursorStack = initializeForwardNodeCursorStack(internal);\n internalElementsFromStack(nodeCursorStack)\n };\n\n func internalElementsFrom(internal : Internal, compare : (T, T) -> Order.Order, element : T) : Types.Iter {\n let nodeCursorStack = initializeForwardNodeCursorStackFrom(internal, compare, element);\n internalElementsFromStack(nodeCursorStack)\n };\n\n func internalElementsFromStack(nodeCursorStack : Stack.Stack>) : Types.Iter {\n object {\n public func next() : ?T {\n // pop the next node cursor off the stack\n var nodeCursor = Stack.pop(nodeCursorStack);\n switch (nodeCursor) {\n case null { return null };\n case (?{ node; elementIndex }) {\n switch (node) {\n // if a leaf node, iterate through the leaf node's next element\n case (#leaf(leafNode)) {\n let lastIndex = leafNode.data.count - 1 : Nat;\n if (elementIndex > lastIndex) {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.internalElements(), leaf elementIndex out of bounds\")\n };\n\n let currentElement = switch (leafNode.data.elements[elementIndex]) {\n case (?element) { element };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Set.internalElements(), null element found in leaf node.\"\n # \"leafNode.data.count=\" # debug_show (leafNode.data.count) # \", elementIndex=\" # debug_show (elementIndex)\n )\n }\n };\n // if not at the last element, push the next element index of the leaf onto the stack and return the current element\n if (elementIndex < lastIndex) {\n Stack.push(\n nodeCursorStack,\n {\n node = #leaf(leafNode);\n elementIndex = elementIndex + 1 : Nat\n }\n )\n };\n\n ?currentElement\n };\n // if an internal node\n case (#internal(internalNode)) {\n let lastIndex = internalNode.data.count - 1 : Nat;\n // Developer facing message in case of a bug\n if (elementIndex > lastIndex) {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.internalElements(), internal elementIndex out of bounds\")\n };\n\n let currentElement = switch (internalNode.data.elements[elementIndex]) {\n case (?element) { element };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Set.internalElements(), null element found in internal node. \" #\n \"internal.data.count=\" # debug_show (internalNode.data.count) # \", elementIndex=\" # debug_show (elementIndex)\n )\n }\n };\n\n let nextCursor = {\n node = #internal(internalNode);\n elementIndex = elementIndex + 1 : Nat\n };\n // if not the last element, push the next element of the internal node onto the stack\n if (elementIndex < lastIndex) {\n Stack.push(nodeCursorStack, nextCursor)\n };\n // traverse the next child's min subtree and push the resulting node cursors onto the stack\n // then return the current element of the internal node\n traverseMinSubtreeIter(nodeCursorStack, nextCursor);\n ?currentElement\n }\n }\n }\n }\n }\n }\n };\n\n func reverseInternalElements(internal : Internal) : Types.Iter {\n // The nodeCursorStack keeps track of the current node and the current element index in the node\n // We use a stack here to push to/pop off the next node cursor to visit\n let nodeCursorStack = initializeReverseNodeCursorStack(internal);\n reverseInternalElementsFromStack(nodeCursorStack)\n };\n\n func reverseInternalElementsFrom(internal : Internal, compare : (T, T) -> Order.Order, element : T) : Types.Iter {\n let nodeCursorStack = initializeReverseNodeCursorStackFrom(internal, compare, element);\n reverseInternalElementsFromStack(nodeCursorStack)\n };\n\n func reverseInternalElementsFromStack(nodeCursorStack : Stack.Stack>) : Types.Iter {\n object {\n public func next() : ?T {\n // pop the next node cursor off the stack\n var nodeCursor = Stack.pop(nodeCursorStack);\n switch (nodeCursor) {\n case null { return null };\n case (?{ node; elementIndex }) {\n let firstIndex = 0 : Nat;\n assert (elementIndex > firstIndex);\n switch (node) {\n // if a leaf node, reverse iterate through the leaf node's next element\n case (#leaf(leafNode)) {\n let currentElement = switch (leafNode.data.elements[elementIndex - 1]) {\n case (?element) { element };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Set.reverseInternalElements(), null element found in leaf node.\"\n # \"leafNode.data.count=\" # debug_show (leafNode.data.count) # \", elementIndex=\" # debug_show (elementIndex)\n )\n }\n };\n // if not at the last element, push the previous element index of the leaf onto the stack and return the current element\n if (elementIndex - 1 : Nat > firstIndex) {\n Stack.push(\n nodeCursorStack,\n {\n node = #leaf(leafNode);\n elementIndex = elementIndex - 1 : Nat\n }\n )\n };\n\n // return the current element\n ?currentElement\n };\n // if an internal node\n case (#internal(internalNode)) {\n let currentElement = switch (internalNode.data.elements[elementIndex - 1]) {\n case (?element) { element };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Set.reverseInternalElements(), null element found in internal node. \" #\n \"internal.data.count=\" # debug_show (internalNode.data.count) # \", elementIndex=\" # debug_show (elementIndex)\n )\n }\n };\n\n let previousCursor = {\n node = #internal(internalNode);\n elementIndex = elementIndex - 1 : Nat\n };\n // if not the first element, push the previous element index of the internal node onto the stack\n if (elementIndex - 1 : Nat > firstIndex) {\n Stack.push(nodeCursorStack, previousCursor)\n };\n // traverse the previous child's max subtree and push the resulting node cursors onto the stack\n // then return the current element of the internal node\n traverseMaxSubtreeIter(nodeCursorStack, previousCursor);\n ?currentElement\n }\n }\n }\n }\n }\n }\n };\n\n func initializeForwardNodeCursorStack(internal : Internal) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n elementIndex = 0\n };\n\n // push the initial cursor to the stack\n Stack.push(nodeCursorStack, nodeCursor);\n // then traverse left\n traverseMinSubtreeIter(nodeCursorStack, nodeCursor);\n nodeCursorStack\n };\n\n func initializeForwardNodeCursorStackFrom(internal : Internal, compare : (T, T) -> Order.Order, element : T) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n elementIndex = 0\n };\n\n traverseMinSubtreeIterFrom(nodeCursorStack, nodeCursor, compare, element);\n nodeCursorStack\n };\n\n func initializeReverseNodeCursorStack(internal : Internal) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n elementIndex = internal.data.count\n };\n\n // push the initial cursor to the stack\n Stack.push(nodeCursorStack, nodeCursor);\n // then traverse left\n traverseMaxSubtreeIter(nodeCursorStack, nodeCursor);\n nodeCursorStack\n };\n\n func initializeReverseNodeCursorStackFrom(internal : Internal, compare : (T, T) -> Order.Order, element : T) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n elementIndex = internal.data.count\n };\n\n traverseMaxSubtreeIterFrom(nodeCursorStack, nodeCursor, compare, element);\n nodeCursorStack\n };\n\n // traverse the min subtree of the current node cursor, passing each new element to the node cursor stack\n func traverseMinSubtreeIter(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor) {\n var currentNode = nodeCursor.node;\n var childIndex = nodeCursor.elementIndex;\n\n label l loop {\n switch (currentNode) {\n // If currentNode is leaf, have hit the minimum element of the subtree and already pushed it's cursor to the stack\n // so can return\n case (#leaf(_)) {\n return\n };\n // If currentNode is internal, add it's left most child to the stack and continue traversing\n case (#internal(internalNode)) {\n switch (internalNode.children[childIndex]) {\n // Push the next min (left most) child node to the stack\n case (?childNode) {\n childIndex := 0;\n currentNode := childNode;\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n elementIndex = childIndex\n }\n )\n };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.traverseMinSubtreeIter(), null child node error\")\n }\n }\n }\n }\n }\n };\n\n func traverseMinSubtreeIterFrom(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor, compare : (T, T) -> Order.Order, element : T) {\n var currentNode = nodeCursor.node;\n\n label l loop {\n let (node, childrenOption) = switch (currentNode) {\n case (#leaf(leafNode)) (leafNode, null);\n case (#internal(internalNode)) (internalNode, ?internalNode.children)\n };\n let (i, isFound) = switch (NodeUtil.getElementIndex(node.data, compare, element)) {\n case (#elementFound(i)) (i, true);\n case (#notFound(i)) (i, false)\n };\n if (i < node.data.count) {\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n elementIndex = i // greater elements to traverse\n }\n )\n };\n if isFound return;\n let ?children = childrenOption else return;\n let ?childNode = children[i] else Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.traverseMinSubtreeIterFrom(), null child node error\");\n currentNode := childNode\n }\n };\n\n // traverse the max subtree of the current node cursor, passing each new element to the node cursor stack\n func traverseMaxSubtreeIter(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor) {\n var currentNode = nodeCursor.node;\n var childIndex = nodeCursor.elementIndex;\n\n label l loop {\n switch (currentNode) {\n // If currentNode is leaf, have hit the maximum element of the subtree and already pushed it's cursor to the stack\n // so can return\n case (#leaf(_)) {\n return\n };\n // If currentNode is internal, add it's right most child to the stack and continue traversing\n case (#internal(internalNode)) {\n assert (childIndex <= internalNode.data.count); // children are one more than data elements\n switch (internalNode.children[childIndex]) {\n // Push the next max (right most) child node to the stack\n case (?childNode) {\n childIndex := switch (childNode) {\n case (#internal(internalNode)) internalNode.data.count;\n case (#leaf(leafNode)) leafNode.data.count\n };\n currentNode := childNode;\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n elementIndex = childIndex\n }\n )\n };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.traverseMaxSubtreeIter(), null child node error\")\n }\n }\n }\n }\n }\n };\n\n func traverseMaxSubtreeIterFrom(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor, compare : (T, T) -> Order.Order, element : T) {\n var currentNode = nodeCursor.node;\n\n label l loop {\n let (node, childrenOption) = switch (currentNode) {\n case (#leaf(leafNode)) (leafNode, null);\n case (#internal(internalNode)) (internalNode, ?internalNode.children)\n };\n let (i, isFound) = switch (NodeUtil.getElementIndex(node.data, compare, element)) {\n case (#elementFound(i)) (i + 1, true); // +1 to include this element\n case (#notFound(i)) (i, false) // i is the index of the first element less than the search element, or 0 if all elements are greater than the search element\n };\n if (i > 0) {\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n elementIndex = i\n }\n )\n };\n if isFound return;\n let ?children = childrenOption else return;\n let ?childNode = children[i] else Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.traverseMaxSubtreeIterFrom(), null child node error\");\n currentNode := childNode\n }\n };\n\n // This type is used to signal to the parent calling context what happened in the level below\n type IntermediateInternalDeleteResult = {\n // element was deleted\n #deleted;\n // element was absent\n #inexistent;\n // deleted an element, but was unable to successfully borrow and rebalance at the previous level without merging children\n // the internalChild is the merged child that needs to be rebalanced at the next level up in the BTree\n #mergeChild : {\n internalChild : Internal\n }\n };\n\n func internalDeleteHelper(internalNode : Internal, order : Nat, compare : (T, T) -> Order.Order, deleteElement : T, skipNode : Bool) : IntermediateInternalDeleteResult {\n let minElements = NodeUtil.minElementsFromOrder(order);\n let elementIndex = NodeUtil.getElementIndex(internalNode.data, compare, deleteElement);\n\n // match on both the result of the node binary search, and if this node level should be skipped even if the element is found (internal element replacement case)\n switch (elementIndex, skipNode) {\n // if element is found in the internal node\n case (#elementFound(deleteIndex), false) {\n if (Option.isNull(internalNode.data.elements[deleteIndex])) {\n Runtime.trap(\"Bug in Set.internalDeleteHelper\")\n };\n // TODO: (optimization) replace with deletion in one step without having to retrieve the max element first\n let replaceElement = NodeUtil.getMaxElement(internalNode.children[deleteIndex]);\n internalNode.data.elements[deleteIndex] := ?replaceElement;\n switch (internalDeleteHelper(internalNode, order, compare, replaceElement, true)) {\n case (#deleted) { #deleted };\n case (#inexistent) { #inexistent };\n case (#mergeChild({ internalChild })) {\n #mergeChild({ internalChild })\n }\n }\n };\n // if element is not found in the internal node OR the element is found, but skipping this node (because deleting the in order precessor i.e. replacement element)\n // in both cases need to descend and traverse to find the element to delete\n case ((#elementFound(_), true) or (#notFound(_), _)) {\n let childIndex = switch (elementIndex) {\n case (#elementFound(replacedSkipElementIndex)) {\n replacedSkipElementIndex\n };\n case (#notFound(childIndex)) { childIndex }\n };\n let child = switch (internalNode.children[childIndex]) {\n case (?c) { c };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.internalDeleteHelper, child index of #elementFound or #notfound is null\")\n }\n };\n switch (child) {\n // if child is internal\n case (#internal(internalChild)) {\n switch (internalDeleteHelper(internalChild, order, compare, deleteElement, false), childIndex == 0) {\n // if element was successfully deleted and no additional tree re-balancing is needed, return #deleted\n case (#deleted, _) { #deleted };\n case (#inexistent, _) { #inexistent };\n // if internalChild needs rebalancing and pulling child is left most\n case (#mergeChild({ internalChild }), true) {\n // try to pull left-most element and child from right sibling\n switch (NodeUtil.borrowFromInternalSibling(internalNode.children, childIndex + 1, #successor)) {\n // if can pull up sibling element and child\n case (#borrowed({ deletedSiblingElement; child })) {\n NodeUtil.rotateBorrowedElementsAndChildFromSibling(\n internalNode,\n childIndex,\n deletedSiblingElement,\n child,\n internalChild,\n #right\n );\n #deleted\n };\n // unable to pull from sibling, need to merge with right sibling and push down parent\n case (#notEnoughElements(sibling)) {\n // get the parent element that will be pushed down the the child\n let elementsToBePushedToChild = ?BTreeHelper.deleteAndShift(internalNode.data.elements, 0);\n internalNode.data.count -= 1;\n // merge the children and push down the parent\n let newChild = NodeUtil.mergeChildrenAndPushDownParent(internalChild, elementsToBePushedToChild, sibling);\n // update children of the parent\n internalNode.children[0] := ?#internal(newChild);\n ignore ?BTreeHelper.deleteAndShift(internalNode.children, 1);\n\n if (internalNode.data.count < minElements) {\n #mergeChild({ internalChild = internalNode })\n } else {\n #deleted\n }\n }\n }\n };\n // if internalChild needs rebalancing and pulling child is > 0, so a left sibling exists\n case (#mergeChild({ internalChild }), false) {\n // try to pull right-most element and its child directly from left sibling\n switch (NodeUtil.borrowFromInternalSibling(internalNode.children, childIndex - 1 : Nat, #predecessor)) {\n case (#borrowed({ deletedSiblingElement; child })) {\n NodeUtil.rotateBorrowedElementsAndChildFromSibling(\n internalNode,\n childIndex - 1 : Nat,\n deletedSiblingElement,\n child,\n internalChild,\n #left\n );\n #deleted\n };\n // unable to pull from left sibling\n case (#notEnoughElements(leftSibling)) {\n // if child is not last index, try to pull from the right child\n if (childIndex < internalNode.data.count) {\n switch (NodeUtil.borrowFromInternalSibling(internalNode.children, childIndex, #successor)) {\n // if can pull up sibling element and child\n case (#borrowed({ deletedSiblingElement; child })) {\n NodeUtil.rotateBorrowedElementsAndChildFromSibling(\n internalNode,\n childIndex,\n deletedSiblingElement,\n child,\n internalChild,\n #right\n );\n return #deleted\n };\n // if cannot borrow, from left or right, merge (see below)\n case _ {}\n }\n };\n\n // get the parent element that will be pushed down the the child\n let elementToBePushedToChild = ?BTreeHelper.deleteAndShift(internalNode.data.elements, childIndex - 1 : Nat);\n internalNode.data.count -= 1;\n // merge it the children and push down the parent\n let newChild = NodeUtil.mergeChildrenAndPushDownParent(leftSibling, elementToBePushedToChild, internalChild);\n\n // update children of the parent\n internalNode.children[childIndex - 1] := ?#internal(newChild);\n ignore ?BTreeHelper.deleteAndShift(internalNode.children, childIndex);\n\n if (internalNode.data.count < minElements) {\n #mergeChild({ internalChild = internalNode })\n } else {\n #deleted\n }\n }\n }\n }\n }\n };\n // if child is leaf\n case (#leaf(leafChild)) {\n switch (leafDeleteHelper(leafChild, order, compare, deleteElement), childIndex == 0) {\n case (#deleted, _) { #deleted };\n case (#inexistent, _) { #inexistent };\n // if delete child is left most, try to borrow from right child\n case (#mergeLeafData({ leafDeleteIndex }), true) {\n switch (NodeUtil.borrowFromRightLeafChild(internalNode.children, childIndex)) {\n case (?borrowedElement) {\n let elementToBePushedToChild = internalNode.data.elements[childIndex];\n internalNode.data.elements[childIndex] := ?borrowedElement;\n\n ignore BTreeHelper.insertAtPostionAndDeleteAtPosition(leafChild.data.elements, elementToBePushedToChild, leafChild.data.count - 1, leafDeleteIndex);\n #deleted\n };\n\n case null {\n // can't borrow from right child, delete from leaf and merge with right child and parent element, then push down into new leaf\n let rightChild = switch (internalNode.children[childIndex + 1]) {\n case (?#leaf(rc)) { rc };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.internalDeleteHelper, if trying to borrow from right leaf child is null, rightChild index cannot be null or internal\")\n }\n };\n let mergedLeaf = mergeParentWithLeftRightChildLeafNodesAndDelete(\n internalNode.data.elements[childIndex],\n leafChild,\n rightChild,\n leafDeleteIndex,\n #left\n );\n // delete the left most internal node element, since was merging from a deletion in left most child (0) and the parent element was pushed into the mergedLeaf\n ignore BTreeHelper.deleteAndShift(internalNode.data.elements, 0);\n // update internal node children\n BTreeHelper.replaceTwoWithElementAndShift>(internalNode.children, #leaf(mergedLeaf), 0);\n internalNode.data.count -= 1;\n\n if (internalNode.data.count < minElements) {\n #mergeChild({\n internalChild = internalNode\n })\n } else {\n #deleted\n }\n\n }\n }\n };\n // if delete child is middle or right most, try to borrow from left child\n case (#mergeLeafData({ leafDeleteIndex }), false) {\n // if delete child is right most, try to borrow from left child\n switch (NodeUtil.borrowFromLeftLeafChild(internalNode.children, childIndex)) {\n case (?borrowedElement) {\n let elementToBePushedToChild = internalNode.data.elements[childIndex - 1];\n internalNode.data.elements[childIndex - 1] := ?borrowedElement;\n ignore BTreeHelper.insertAtPostionAndDeleteAtPosition(leafChild.data.elements, elementToBePushedToChild, 0, leafDeleteIndex);\n #deleted\n };\n case null {\n // if delete child is in the middle, try to borrow from right child\n if (childIndex < internalNode.data.count) {\n // try to borrow from right\n switch (NodeUtil.borrowFromRightLeafChild(internalNode.children, childIndex)) {\n case (?borrowedElement) {\n let elementToBePushedToChild = internalNode.data.elements[childIndex];\n internalNode.data.elements[childIndex] := ?borrowedElement;\n // insert the successor at the very last element\n ignore BTreeHelper.insertAtPostionAndDeleteAtPosition(leafChild.data.elements, elementToBePushedToChild, leafChild.data.count - 1, leafDeleteIndex);\n return #deleted\n };\n // if cannot borrow, from left or right, merge (see below)\n case _ {}\n }\n };\n\n // can't borrow from left child, delete from leaf and merge with left child and parent element, then push down into new leaf\n let leftChild = switch (internalNode.children[childIndex - 1]) {\n case (?#leaf(lc)) { lc };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.internalDeleteHelper, if trying to borrow from left leaf child is null, then left child index must not be null or internal\")\n }\n };\n let mergedLeaf = mergeParentWithLeftRightChildLeafNodesAndDelete(\n internalNode.data.elements[childIndex - 1],\n leftChild,\n leafChild,\n leafDeleteIndex,\n #right\n );\n // delete the right most internal node element, since was merging from a deletion in the right most child and the parent element was pushed into the mergedLeaf\n ignore BTreeHelper.deleteAndShift(internalNode.data.elements, childIndex - 1);\n // update internal node children\n BTreeHelper.replaceTwoWithElementAndShift>(internalNode.children, #leaf(mergedLeaf), childIndex - 1);\n internalNode.data.count -= 1;\n\n if (internalNode.data.count < minElements) {\n #mergeChild({\n internalChild = internalNode\n })\n } else {\n #deleted\n }\n }\n }\n }\n }\n }\n }\n }\n }\n };\n\n // This type is used to signal to the parent calling context what happened in the level below\n type IntermediateLeafDeleteResult = {\n // element was deleted\n #deleted;\n // element was absent\n #inexistent;\n // leaf had the minimum number of elements when deleting, so returns the leaf node's data and the index of the element that will be deleted\n #mergeLeafData : {\n data : Data;\n leafDeleteIndex : Nat\n }\n };\n\n func leafDeleteHelper(leafNode : Leaf, order : Nat, compare : (T, T) -> Order.Order, deleteElement : T) : IntermediateLeafDeleteResult {\n let minElements = NodeUtil.minElementsFromOrder(order);\n\n switch (NodeUtil.getElementIndex(leafNode.data, compare, deleteElement)) {\n case (#elementFound(deleteIndex)) {\n if (leafNode.data.count > minElements) {\n leafNode.data.count -= 1;\n ignore BTreeHelper.deleteAndShift(leafNode.data.elements, deleteIndex);\n #deleted\n } else {\n #mergeLeafData({\n data = leafNode.data;\n leafDeleteIndex = deleteIndex\n })\n }\n };\n case (#notFound(_)) {\n #inexistent\n }\n }\n };\n\n func containsInInternal(internalNode : Internal, compare : (T, T) -> Order.Order, element : T) : Bool {\n switch (NodeUtil.getElementIndex(internalNode.data, compare, element)) {\n case (#elementFound _index) {\n true\n };\n case (#notFound(index)) {\n switch (internalNode.children[index]) {\n // expects the child to be there, otherwise there's a bug in binary search or the tree is invalid\n case null { Runtime.trap(\"Internal bug: Set.containsInInternal\") };\n case (?#leaf(leafNode)) { containsInLeaf(leafNode, compare, element) };\n case (?#internal(internalNode)) {\n containsInInternal(internalNode, compare, element)\n }\n }\n }\n }\n };\n\n func containsInLeaf(leafNode : Leaf, compare : (T, T) -> Order.Order, element : T) : Bool {\n switch (NodeUtil.getElementIndex(leafNode.data, compare, element)) {\n case (#elementFound(_index)) {\n true\n };\n case _ false\n }\n };\n\n type DeletionSide = { #left; #right };\n\n func mergeParentWithLeftRightChildLeafNodesAndDelete(\n parentElement : ?T,\n leftChild : Leaf,\n rightChild : Leaf,\n deleteIndex : Nat,\n deletionSide : DeletionSide\n ) : Leaf {\n let count = leftChild.data.count * 2;\n let (elements, _) = BTreeHelper.mergeParentWithChildrenAndDelete(\n parentElement,\n leftChild.data.count,\n leftChild.data.elements,\n rightChild.data.elements,\n deleteIndex,\n deletionSide\n );\n ({\n data = {\n elements;\n var count = count\n }\n })\n };\n\n // This type is used to signal to the parent calling context what happened in the level below\n type IntermediateInsertResult = {\n // element was inserted\n #inserted;\n // element was alreay present\n #existent;\n // child was full when inserting, so returns the promoted element and the split left and right child\n #promote : {\n element : T;\n leftChild : Node;\n rightChild : Node\n }\n };\n\n // Helper for inserting into a leaf node\n func leafInsertHelper(leafNode : Leaf, order : Nat, compare : (T, T) -> Order.Order, insertedElement : T) : (IntermediateInsertResult) {\n // Perform binary search to see if the element exists in the node\n switch (NodeUtil.getElementIndex(leafNode.data, compare, insertedElement)) {\n case (#elementFound(insertIndex)) {\n let previous = leafNode.data.elements[insertIndex];\n leafNode.data.elements[insertIndex] := ?insertedElement;\n switch (previous) {\n case (?_) { #existent };\n case null { Runtime.trap(\"Bug in Set.leafInsertHelper\") }; // the binary search already found an element, so this case should never happen\n }\n };\n case (#notFound(insertIndex)) {\n // Note: BTree will always have an order >= 4, so this will never have negative Nat overflow\n let maxElements : Nat = order - 1;\n // If the leaf is full, insert, split the node, and promote the middle element\n if (leafNode.data.count >= maxElements) {\n let (leftElements, promotedParentElement, rightElements) = BTreeHelper.insertOneAtIndexAndSplitArray(\n leafNode.data.elements,\n insertedElement,\n insertIndex\n );\n\n let leftCount = order / 2;\n let rightCount : Nat = if (order % 2 == 0) { leftCount - 1 } else {\n leftCount\n };\n\n (\n #promote({\n element = promotedParentElement;\n leftChild = createLeaf(leftElements, leftCount);\n rightChild = createLeaf(rightElements, rightCount)\n })\n )\n }\n // Otherwise, insert at the specified index (shifting elements over if necessary)\n else {\n NodeUtil.insertAtIndexOfNonFullNodeData(leafNode.data, ?insertedElement, insertIndex);\n #inserted\n }\n }\n }\n };\n\n // Helper for inserting into an internal node\n func internalInsertHelper(internalNode : Internal, order : Nat, compare : (T, T) -> Order.Order, insertElement : T) : IntermediateInsertResult {\n switch (NodeUtil.getElementIndex(internalNode.data, compare, insertElement)) {\n case (#elementFound(insertIndex)) {\n let previous = internalNode.data.elements[insertIndex];\n internalNode.data.elements[insertIndex] := ?insertElement;\n switch (previous) {\n case (?_) { #existent };\n case null {\n Runtime.trap(\"Bug in Set.internalInsertHelper, element found\")\n }; // the binary search already found an element, so this case should never happen\n }\n };\n case (#notFound(insertIndex)) {\n let insertResult = switch (internalNode.children[insertIndex]) {\n case null {\n Runtime.trap(\"Bug in Set.internalInsertHelper, not found\")\n };\n case (?#leaf(leafNode)) {\n leafInsertHelper(leafNode, order, compare, insertElement)\n };\n case (?#internal(internalChildNode)) {\n internalInsertHelper(internalChildNode, order, compare, insertElement)\n }\n };\n\n switch (insertResult) {\n case (#inserted) #inserted;\n case (#existent) #existent;\n case (#promote({ element = promotedElement; leftChild; rightChild })) {\n // Note: BTree will always have an order >= 4, so this will never have negative Nat overflow\n let maxElements : Nat = order - 1;\n // if current internal node is full, need to split the internal node\n if (internalNode.data.count >= maxElements) {\n // insert and split internal elements, determine new promotion target element\n let (leftElements, promotedParentElement, rightElements) = BTreeHelper.insertOneAtIndexAndSplitArray(\n internalNode.data.elements,\n promotedElement,\n insertIndex\n );\n\n // calculate the element count in the left elements and the element count in the right elements\n let leftCount = order / 2;\n let rightCount : Nat = if (order % 2 == 0) { leftCount - 1 } else {\n leftCount\n };\n\n // split internal children\n let (leftChildren, rightChildren) = NodeUtil.splitChildrenInTwoWithRebalances(\n internalNode.children,\n insertIndex,\n leftChild,\n rightChild\n );\n\n // send the element to be promoted, as well as the internal children left and right split\n #promote({\n element = promotedParentElement;\n leftChild = #internal({\n data = { elements = leftElements; var count = leftCount };\n children = leftChildren\n });\n rightChild = #internal({\n data = { elements = rightElements; var count = rightCount };\n children = rightChildren\n })\n })\n } else {\n // insert the new elements into the internal node\n NodeUtil.insertAtIndexOfNonFullNodeData(internalNode.data, ?promotedElement, insertIndex);\n // split and re-insert the single child that needs rebalancing\n NodeUtil.insertRebalancedChild(internalNode.children, insertIndex, leftChild, rightChild);\n #inserted\n }\n }\n }\n }\n }\n };\n\n func createLeaf(elements : [var ?T], count : Nat) : Node {\n #leaf({\n data = {\n elements;\n var count\n }\n })\n };\n\n // FIXME\n // Additional functionality compared to original source.\n\n func cloneData(data : Data) : Data {\n {\n elements = VarArray.clone(data.elements);\n var count = data.count\n }\n };\n\n func cloneNode(node : Node) : Node {\n switch node {\n case (#leaf { data }) {\n #leaf { data = cloneData(data) }\n };\n case (#internal { data; children }) {\n let clonedData = cloneData(data);\n let clonedChildren = VarArray.map, ?Node>(\n children,\n func child {\n switch child {\n case null null;\n case (?childNode) ?cloneNode(childNode)\n }\n }\n );\n #internal({\n data = clonedData;\n children = clonedChildren\n })\n }\n }\n };\n\n module BinarySearch {\n public type SearchResult = {\n #elementFound : Nat;\n #notFound : Nat\n };\n\n /// Searches an array for a specific element, returning the index it occurs at if #elementFound, or the child/insert index it may occur at\n /// if #notFound. This is used when determining if a element exists in an internal or leaf node, where an element should be inserted in a\n /// leaf node, or which child of an internal node a element could be in.\n ///\n /// Note: This function expects a mutable, nullable, array of elements in sorted order, where all nulls appear at the end of the array.\n /// This function may trap if a null element appears before any elements. It also expects a maxIndex, which is the right-most index (bound)\n /// from which to begin the binary search (the left most bound is expected to be 0)\n ///\n /// Parameters:\n ///\n /// * array - the sorted array that the binary search is performed upon\n /// * compare - the comparator used to perform the search\n /// * searchElement - the element being compared against in the search\n /// * maxIndex - the right-most index (bound) from which to begin the search\n public func binarySearchNode(array : [var ?T], compare : (T, T) -> Order.Order, searchElement : T, maxIndex : Nat) : SearchResult {\n // TODO: get rid of this check?\n // Trap if array is size 0 (should not happen)\n if (array.size() == 0) {\n assert false\n };\n\n // if all elements in the array are null (i.e. first element is null), return #notFound(0)\n if (maxIndex == 0) {\n return #notFound(0)\n };\n\n // Initialize search from first to last index\n var left : Nat = 0;\n var right = maxIndex; // maxIndex does not necessarily mean array.size() - 1\n // Search the array\n while (left < right) {\n let middle = (left + right) / 2;\n switch (array[middle]) {\n case null { assert false };\n case (?element) {\n switch (compare(searchElement, element)) {\n // If the element is present at the middle itself\n case (#equal) { return #elementFound(middle) };\n // If element is greater than mid, it can only be present in left subarray\n case (#greater) { left := middle + 1 };\n // If element is smaller than mid, it can only be present in right subarray\n case (#less) {\n right := if (middle == 0) { 0 } else { middle - 1 }\n }\n }\n }\n }\n };\n\n if (left == array.size()) {\n return #notFound(left)\n };\n\n // left == right\n switch (array[left]) {\n // inserting at end of array\n case null { #notFound(left) };\n case (?element) {\n switch (compare(searchElement, element)) {\n // if left is the searched element\n case (#equal) { #elementFound(left) };\n // if the element is not found, return notFound and the insert location\n case (#greater) { #notFound(left + 1) };\n case (#less) { #notFound(left) }\n }\n }\n }\n }\n };\n\n module NodeUtil {\n /// Inserts element at the given index into a non-full leaf node\n public func insertAtIndexOfNonFullNodeData(data : Data, element : ?T, insertIndex : Nat) {\n let currentLastElementIndex : Nat = if (data.count == 0) { 0 } else {\n data.count - 1\n };\n BTreeHelper.insertAtPosition(data.elements, element, insertIndex, currentLastElementIndex);\n\n // increment the count of data in this node since just inserted an element\n data.count += 1\n };\n\n /// Inserts two rebalanced (split) child halves into a non-full array of children.\n public func insertRebalancedChild(children : [var ?Node], rebalancedChildIndex : Nat, leftChildInsert : Node, rightChildInsert : Node) {\n // Note: BTree will always have an order >= 4, so this will never have negative Nat overflow\n var j : Nat = children.size() - 2;\n\n // This is just a sanity check to ensure the children aren't already full (should split promote otherwise)\n // TODO: Remove this check once confident\n if (Option.isSome(children[j + 1])) { assert false };\n\n // Iterate backwards over the array and shift each element over to the right by one until the rebalancedChildIndex is hit\n while (j > rebalancedChildIndex) {\n children[j + 1] := children[j];\n j -= 1\n };\n\n // Insert both the left and right rebalanced children (replacing the pre-split child)\n children[j] := ?leftChildInsert;\n children[j + 1] := ?rightChildInsert\n };\n\n /// Used when splitting the children of an internal node\n ///\n /// Takes in the rebalanced child index, as well as both halves of the rebalanced child and splits the children, inserting the left and right child halves appropriately\n ///\n /// For more context, see the documentation for the splitArrayAndInsertTwo method in ArrayUtils.mo\n public func splitChildrenInTwoWithRebalances(\n children : [var ?Node],\n rebalancedChildIndex : Nat,\n leftChildInsert : Node,\n rightChildInsert : Node\n ) : ([var ?Node], [var ?Node]) {\n BTreeHelper.splitArrayAndInsertTwo>(children, rebalancedChildIndex, leftChildInsert, rightChildInsert)\n };\n\n /// Helper used to get the element index of of a element within a node\n ///\n /// for more, see the BinarySearch.binarySearchNode() documentation\n public func getElementIndex(data : Data, compare : (T, T) -> Order.Order, element : T) : BinarySearch.SearchResult {\n BinarySearch.binarySearchNode(data.elements, compare, element, data.count)\n };\n\n // calculates a BTree Node's minimum allowed elements given the order of the BTree\n public func minElementsFromOrder(order : Nat) : Nat {\n if (order % 2 == 0) { order / 2 - 1 } else { order / 2 }\n };\n\n // Given a node, get the maximum element (right most leaf element)\n public func getMaxElement(node : ?Node) : T {\n switch (node) {\n case (?#leaf({ data })) {\n switch (data.elements[data.count - 1]) {\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.NodeUtil.getMaxElement, data cannot have more elements than it's count\")\n };\n case (?element) { element }\n }\n };\n case (?#internal({ data; children })) {\n getMaxElement(children[data.count])\n };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.NodeUtil.getMaxElement, the node provided cannot be null\")\n }\n }\n };\n\n type InorderBorrowType = {\n #predecessor;\n #successor\n };\n\n // attempts to retrieve the in max element of the child leaf node directly to the left if the node will allow it\n // returns the deleted max element if able to retrieve, null if not able\n //\n // mutates the predecessing node's elements\n public func borrowFromLeftLeafChild(children : [var ?Node], ofChildIndex : Nat) : ?T {\n let predecessorIndex : Nat = ofChildIndex - 1;\n borrowFromLeafChild(children, predecessorIndex, #predecessor)\n };\n\n // attempts to retrieve the in max element of the child leaf node directly to the right if the node will allow it\n // returns the deleted max element if able to retrieve, null if not able\n //\n // mutates the predecessing node's elements\n public func borrowFromRightLeafChild(children : [var ?Node], ofChildIndex : Nat) : ?T {\n borrowFromLeafChild(children, ofChildIndex + 1, #successor)\n };\n\n func borrowFromLeafChild(children : [var ?Node], borrowChildIndex : Nat, childSide : InorderBorrowType) : ?T {\n let minElements = minElementsFromOrder(children.size());\n\n switch (children[borrowChildIndex]) {\n case (?#leaf({ data })) {\n if (data.count > minElements) {\n // able to borrow an element from this child, so decrement the count of elements\n data.count -= 1; // Since enforce order >= 4, there will always be at least 1 element per node\n switch (childSide) {\n case (#predecessor) {\n let deletedElement = data.elements[data.count];\n data.elements[data.count] := null;\n deletedElement\n };\n case (#successor) {\n ?BTreeHelper.deleteAndShift(data.elements, 0)\n }\n }\n } else { null }\n };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.NodeUtil.borrowFromLeafChild, the node at the borrow child index cannot be null or internal\")\n }\n }\n };\n\n type InternalBorrowResult = {\n #borrowed : InternalBorrow;\n #notEnoughElements : Internal\n };\n\n type InternalBorrow = {\n deletedSiblingElement : ?T;\n child : ?Node\n };\n\n // Attempts to borrow an element and child from an internal sibling node\n public func borrowFromInternalSibling(children : [var ?Node], borrowChildIndex : Nat, borrowType : InorderBorrowType) : InternalBorrowResult {\n let minElements = minElementsFromOrder(children.size());\n\n switch (children[borrowChildIndex]) {\n case (?#internal({ data; children })) {\n if (data.count > minElements) {\n data.count -= 1;\n switch (borrowType) {\n case (#predecessor) {\n let deletedSiblingElement = data.elements[data.count];\n data.elements[data.count] := null;\n let child = children[data.count + 1];\n children[data.count + 1] := null;\n #borrowed({\n deletedSiblingElement;\n child\n })\n };\n case (#successor) {\n #borrowed({\n deletedSiblingElement = ?BTreeHelper.deleteAndShift(data.elements, 0);\n child = ?BTreeHelper.deleteAndShift(children, 0)\n })\n }\n }\n } else { #notEnoughElements({ data; children }) }\n };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.NodeUtil.borrowFromInternalSibling from internal sibling, the child at the borrow index cannot be null or a leaf\")\n }\n }\n };\n\n type SiblingSide = { #left; #right };\n\n // Rotates the borrowed elements and child from sibling side of the internal node to the internal child recipient\n public func rotateBorrowedElementsAndChildFromSibling(\n internalNode : Internal,\n parentRotateIndex : Nat,\n borrowedSiblingElement : ?T,\n borrowedSiblingChild : ?Node,\n internalChildRecipient : Internal,\n siblingSide : SiblingSide\n ) {\n // if borrowing from the left, the rotated element and child will always be inserted first\n // if borrowing from the right, the rotated element and child will always be inserted last\n let (elementIndex, childIndex) = switch (siblingSide) {\n case (#left) { (0, 0) };\n case (#right) {\n (internalChildRecipient.data.count, internalChildRecipient.data.count + 1)\n }\n };\n\n // get the parent element that will be pushed down the the child\n let elementToBePushedToChild = internalNode.data.elements[parentRotateIndex];\n // replace the parent with the sibling element\n internalNode.data.elements[parentRotateIndex] := borrowedSiblingElement;\n // push the element and child down into the internalChild\n insertAtIndexOfNonFullNodeData(internalChildRecipient.data, elementToBePushedToChild, elementIndex);\n\n BTreeHelper.insertAtPosition>(internalChildRecipient.children, borrowedSiblingChild, childIndex, internalChildRecipient.data.count)\n };\n\n // Merges the elements and children of two internal nodes, pushing the parent element in between the right and left halves\n public func mergeChildrenAndPushDownParent(leftChild : Internal, parentElement : ?T, rightChild : Internal) : Internal {\n {\n data = mergeData(leftChild.data, parentElement, rightChild.data);\n children = mergeChildren(leftChild.children, rightChild.children)\n }\n };\n\n func mergeData(leftData : Data, parentElement : ?T, rightData : Data) : Data {\n assert leftData.count <= minElementsFromOrder(leftData.elements.size() + 1);\n assert rightData.count <= minElementsFromOrder(rightData.elements.size() + 1);\n\n let mergedElements = VarArray.repeat(null, leftData.elements.size());\n var i = 0;\n while (i < leftData.count) {\n mergedElements[i] := leftData.elements[i];\n i += 1\n };\n\n mergedElements[i] := parentElement;\n i += 1;\n\n var j = 0;\n while (j < rightData.count) {\n mergedElements[i] := rightData.elements[j];\n i += 1;\n j += 1\n };\n\n {\n elements = mergedElements;\n var count = leftData.count + 1 + rightData.count\n }\n };\n\n func mergeChildren(leftChildren : [var ?Node], rightChildren : [var ?Node]) : [var ?Node] {\n let mergedChildren = VarArray.repeat>(null, leftChildren.size());\n var i = 0;\n\n while (Option.isSome(leftChildren[i])) {\n mergedChildren[i] := leftChildren[i];\n i += 1\n };\n\n var j = 0;\n while (Option.isSome(rightChildren[j])) {\n mergedChildren[i] := rightChildren[j];\n i += 1;\n j += 1\n };\n\n mergedChildren\n }\n }\n}\n"},"internal/PRNG.mo":{"content":"/// Collection of pseudo-random number generators\n///\n/// The algorithms deliver deterministic statistical randomness,\n/// not cryptographic randomness.\n///\n/// Algorithm 1: 128-bit Seiran PRNG\n/// See: https://github.com/andanteyk/prng-seiran\n///\n/// Algorithm 2: SFC64 and SFC32 (Chris Doty-Humphrey’s Small Fast Chaotic PRNG)\n/// See: https://numpy.org/doc/stable/reference/random/bit_generators/sfc64.html\n///\n/// Copyright: 2023 MR Research AG\n/// Main author: react0r-com\n/// Contributors: Timo Hanke (timohanke)\nimport Nat \"../Nat\";\n\nmodule {\n /// Constructs an SFC 64-bit generator.\n /// The recommended constructor arguments are: 24, 11, 3.\n ///\n /// Example:\n /// ```motoko\n /// import PRNG \"mo:core/internal/PRNG\";\n ///\n /// let rng = PRNG.SFC64(24, 11, 3);\n /// ```\n /// For convenience, the function `SFC64a()` returns a generator constructed\n /// with the recommended parameter set (24, 11, 3).\n public class SFC64(p : Nat64, q : Nat64, r : Nat64) {\n // state\n var a : Nat64 = 0;\n var b : Nat64 = 0;\n var c : Nat64 = 0;\n var d : Nat64 = 0;\n\n /// Initializes the PRNG state with a particular seed\n ///\n /// Example:\n /// ```motoko\n public func init(seed : Nat64) = init3(seed, seed, seed);\n\n /// Initializes the PRNG state with a hardcoded seed.\n /// No argument is required.\n ///\n /// Example:\n public func initPre() = init(0xcafef00dbeef5eed);\n\n /// Initializes the PRNG state with three state variables\n ///\n /// Example:\n public func init3(seed1 : Nat64, seed2 : Nat64, seed3 : Nat64) {\n a := seed1;\n b := seed2;\n c := seed3;\n d := 1;\n\n for (_ in Nat.range(0, 11)) ignore next()\n };\n\n /// Returns one output and advances the PRNG's state\n ///\n /// Example:\n public func next() : Nat64 {\n let tmp = a +% b +% d;\n a := b ^ (b >> q);\n b := c +% (c << r);\n c := (c <<> p) +% tmp;\n d +%= 1;\n tmp\n }\n };\n\n /// SFC64a is the same as numpy.\n /// See: [sfc64_next()](https:///github.com/numpy/numpy/blob/b6d372c25fab5033b828dd9de551eb0b7fa55800/numpy/random/src/sfc64/sfc64.h#L28)\n public func sfc64a() : SFC64 { SFC64(24, 11, 3) }\n}\n"},"Nat8.mo":{"content":"/// Utility functions on 8-bit unsigned integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Nat8 \"mo:core/Nat8\";\n/// ```\nimport Nat \"Nat\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 8-bit natural numbers.\n public type Nat8 = Prim.Types.Nat8;\n\n /// Maximum 8-bit natural number. `2 ** 8 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.maxValue == (255 : Nat8);\n /// ```\n public let maxValue : Nat8 = 255;\n\n /// Converts an 8-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.toNat(123) == (123 : Nat);\n /// ```\n public let toNat : (self : Nat8) -> Nat = Prim.nat8ToNat;\n\n /// Converts an unsigned integer with infinite precision to an 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.fromNat(123) == (123 : Nat8);\n /// ```\n public let fromNat : Nat -> Nat8 = Prim.natToNat8;\n\n /// Converts a 16-bit unsigned integer to a 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.fromNat16(123) == (123 : Nat8);\n /// ```\n public let fromNat16 : Nat16 -> Nat8 = Prim.nat16ToNat8;\n\n /// Converts an 8-bit unsigned integer to a 16-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.toNat16(123) == (123 : Nat16);\n /// ```\n public let toNat16 : (self : Nat8) -> Nat16 = Prim.nat8ToNat16;\n\n /// Converts a 32-bit unsigned integer to a 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.fromNat32(123) == (123 : Nat8);\n /// ```\n public func fromNat32(x : Nat32) : Nat8 {\n Prim.nat16ToNat8(Prim.nat32ToNat16(x))\n };\n\n /// Converts an 8-bit unsigned integer to a 32-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.toNat32(123) == (123 : Nat32);\n /// ```\n public func toNat32(self : Nat8) : Nat32 {\n Prim.nat16ToNat32(Prim.nat8ToNat16(self))\n };\n\n /// Converts a 64-bit unsigned integer to a 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.fromNat64(123) == (123 : Nat8);\n /// ```\n public func fromNat64(x : Nat64) : Nat8 {\n Prim.nat16ToNat8(Prim.nat32ToNat16(Prim.nat64ToNat32(x)))\n };\n\n /// Converts an 8-bit unsigned integer to a 64-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.toNat64(123) == (123 : Nat64);\n /// ```\n public func toNat64(self : Nat8) : Nat64 {\n Prim.nat32ToNat64(Prim.nat16ToNat32(Prim.nat8ToNat16(self)))\n };\n\n /// Converts a signed integer with infinite precision to an 8-bit unsigned integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.fromIntWrap(123) == (123 : Nat8);\n /// ```\n public let fromIntWrap : Int -> Nat8 = Prim.intToNat8Wrap;\n\n /// Converts `x` to its textual representation.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.toText(123) == (\"123\" : Text);\n /// ```\n public func toText(self : Nat8) : Text {\n Nat.toText(toNat(self))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.min(123, 200) == (123 : Nat8);\n /// ```\n public func min(x : Nat8, y : Nat8) : Nat8 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.max(123, 200) == (200 : Nat8);\n /// ```\n public func max(x : Nat8, y : Nat8) : Nat8 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Nat8 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.equal(1, 1);\n /// assert (1 : Nat8) == (1 : Nat8);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Nat8 = 111;\n /// let b : Nat8 = 222;\n /// assert not Nat8.equal(a, b);\n /// ```\n public func equal(x : Nat8, y : Nat8) : Bool { x == y };\n\n /// Inequality function for Nat8 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.notEqual(1, 2);\n /// assert (1 : Nat8) != (2 : Nat8);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Nat8, y : Nat8) : Bool { x != y };\n\n /// \"Less than\" function for Nat8 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.less(1, 2);\n /// assert (1 : Nat8) < (2 : Nat8);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Nat8, y : Nat8) : Bool { x < y };\n\n /// \"Less than or equal\" function for Nat8 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.lessOrEqual(1, 2);\n /// assert 1 <= 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Nat8, y : Nat8) : Bool { x <= y };\n\n /// \"Greater than\" function for Nat8 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.greater(2, 1);\n /// assert (2 : Nat8) > (1 : Nat8);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Nat8, y : Nat8) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Nat8 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.greaterOrEqual(2, 1);\n /// assert (2 : Nat8) >= (1 : Nat8);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Nat8, y : Nat8) : Bool { x >= y };\n\n /// General purpose comparison function for `Nat8`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.compare(2, 3) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([2, 3, 1] : [Nat8], Nat8.compare) == [1, 2, 3];\n /// ```\n public func compare(x : Nat8, y : Nat8) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.add(1, 2) == 3;\n /// assert (1 : Nat8) + (2 : Nat8) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 0, Nat8.add) == 6;\n /// ```\n public func add(x : Nat8, y : Nat8) : Nat8 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n /// Traps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.sub(2, 1) == 1;\n /// assert (2 : Nat8) - (1 : Nat8) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 20, Nat8.sub) == 14;\n /// ```\n public func sub(x : Nat8, y : Nat8) : Nat8 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.mul(2, 3) == 6;\n /// assert (2 : Nat8) * (3 : Nat8) == 6;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 1, Nat8.mul) == 6;\n /// ```\n public func mul(x : Nat8, y : Nat8) : Nat8 { x * y };\n\n /// Returns the quotient of `x` divided by `y`, `x / y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.div(6, 2) == 3;\n /// assert (6 : Nat8) / (2 : Nat8) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Nat8, y : Nat8) : Nat8 { x / y };\n\n /// Returns the remainder of `x` divided by `y`, `x % y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.rem(6, 4) == 2;\n /// assert (6 : Nat8) % (4 : Nat8) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Nat8, y : Nat8) : Nat8 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.pow(2, 3) == 8;\n /// assert (2 : Nat8) ** (3 : Nat8) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Nat8, y : Nat8) : Nat8 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitnot(0) == 255;\n /// assert ^(0 : Nat8) == 255;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Nat8) : Nat8 { ^x };\n\n /// Returns the bitwise and of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitand(3, 2) == 2;\n /// assert (3 : Nat8) & (2 : Nat8) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Nat8, y : Nat8) : Nat8 { x & y };\n\n /// Returns the bitwise or of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitor(3, 2) == 3;\n /// assert (3 : Nat8) | (2 : Nat8) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `|` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `|`\n /// as a function value at the moment.\n public func bitor(x : Nat8, y : Nat8) : Nat8 { x | y };\n\n /// Returns the bitwise exclusive or of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitxor(3, 2) == 1;\n /// assert (3 : Nat8) ^ (2 : Nat8) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitxor(x : Nat8, y : Nat8) : Nat8 { x ^ y };\n\n /// Returns the bitwise shift left of `x` by `y`, `x << y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitshiftLeft(1, 2) == 4;\n /// assert (1 : Nat8) << (2 : Nat8) == 4;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Nat8, y : Nat8) : Nat8 { x << y };\n\n /// Returns the bitwise shift right of `x` by `y`, `x >> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitshiftRight(4, 2) == 1;\n /// assert (4 : Nat8) >> (2 : Nat8) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Nat8, y : Nat8) : Nat8 { x >> y };\n\n /// Returns the bitwise rotate left of `x` by `y`, `x <<> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitrotLeft(128, 1) == 1;\n /// assert (128 : Nat8) <<> (1 : Nat8) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Nat8, y : Nat8) : Nat8 { x <<> y };\n\n /// Returns the bitwise rotate right of `x` by `y`, `x <>> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitrotRight(1, 1) == 128;\n /// assert (1 : Nat8) <>> (1 : Nat8) == 128;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Nat8, y : Nat8) : Nat8 { x <>> y };\n\n /// Returns the value of bit `p mod 8` in `x`, `(x & 2^(p mod 8)) == 2^(p mod 8)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bittest(5, 2);\n /// ```\n public func bittest(x : Nat8, p : Nat) : Bool {\n Prim.btstNat8(x, Prim.natToNat8(p))\n };\n\n /// Returns the value of setting bit `p mod 8` in `x` to `1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitset(5, 1) == 7;\n /// ```\n public func bitset(x : Nat8, p : Nat) : Nat8 {\n x | (1 << Prim.natToNat8(p))\n };\n\n /// Returns the value of clearing bit `p mod 8` in `x` to `0`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitclear(5, 2) == 1;\n /// ```\n public func bitclear(x : Nat8, p : Nat) : Nat8 {\n x & ^(1 << Prim.natToNat8(p))\n };\n\n /// Returns the value of flipping bit `p mod 8` in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitflip(5, 2) == 1;\n /// ```\n public func bitflip(x : Nat8, p : Nat) : Nat8 {\n x ^ (1 << Prim.natToNat8(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitcountNonZero(5) == 2;\n /// ```\n public let bitcountNonZero : (x : Nat8) -> Nat8 = Prim.popcntNat8;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitcountLeadingZero(5) == 5;\n /// ```\n public let bitcountLeadingZero : (x : Nat8) -> Nat8 = Prim.clzNat8;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitcountTrailingZero(6) == 1;\n /// ```\n public let bitcountTrailingZero : (x : Nat8) -> Nat8 = Prim.ctzNat8;\n\n /// Returns the sum of `x` and `y`, `x +% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.addWrap(230, 26) == 0;\n /// assert (230 : Nat8) +% (26 : Nat8) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Nat8, y : Nat8) : Nat8 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`. Wraps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.subWrap(0, 1) == 255;\n /// assert (0 : Nat8) -% (1 : Nat8) == 255;\n /// ```\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Nat8, y : Nat8) : Nat8 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.mulWrap(230, 26) == 92;\n /// assert (230 : Nat8) *% (26 : Nat8) == 92;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Nat8, y : Nat8) : Nat8 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.powWrap(2, 8) == 0;\n /// assert (2 : Nat8) **% (8 : Nat8) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Nat8, y : Nat8) : Nat8 { x **% y };\n\n /// Returns an iterator over `Nat8` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat8.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat8.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Nat8, toExclusive : Nat8) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Nat8 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Nat8` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat8.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat8.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Nat8, to : Nat8) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Nat8 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Nat8 values, from 0 to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat8.allValues();\n /// assert iter.next() == ?0;\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(0, maxValue)\n };\n\n}\n"},"pure/Map.mo":{"content":"/// Immutable, ordered key-value maps.\n///\n/// The map type is stable whenever the key and value types are stable, allowing\n/// map values to be stored in stable variables.\n///\n/// Keys are ordered by an explicit `compare` function, which *must* be the same\n/// across all operations on a given map.\n///\n///\n/// Example:\n/// ```motoko\n/// import Map \"mo:core/pure/Map\";\n/// import Nat \"mo:core/Nat\";\n///\n/// persistent actor {\n/// // creation\n/// let empty = Map.empty();\n/// // insertion\n/// let map1 = Map.add(empty, Nat.compare, 0, \"Zero\");\n/// // retrieval\n/// assert Map.get(empty, Nat.compare, 0) == null;\n/// assert Map.get(map1, Nat.compare, 0) == ?\"Zero\";\n/// // removal\n/// let map2 = Map.remove(map1, Nat.compare, 0);\n/// assert not Map.isEmpty(map1);\n/// assert Map.isEmpty(map2);\n/// }\n/// ```\n///\n/// The internal representation is a red-black tree.\n///\n/// A red-black tree is a balanced binary search tree ordered by the keys.\n///\n/// The tree data structure internally colors each of its nodes either red or black,\n/// and uses this information to balance the tree during the modifying operations.\n///\n/// Performance:\n/// * Runtime: `O(log(n))` worst case cost per insertion, removal, and retrieval operation.\n/// * Space: `O(n)` for storing the entire tree.\n/// `n` denotes the number of key-value entries (i.e. nodes) stored in the tree.\n///\n/// Note:\n/// * Map operations, such as retrieval, insertion, and removal create `O(log(n))` temporary objects that become garbage.\n///\n/// Credits:\n///\n/// The core of this implementation is derived from:\n///\n/// * Ken Friis Larsen's [RedBlackMap.sml](https://github.com/kfl/mosml/blob/master/src/mosmllib/Redblackmap.sml), which itself is based on:\n/// * Stefan Kahrs, \"Red-black trees with types\", Journal of Functional Programming, 11(4): 425-432 (2001), [version 1 in web appendix](http://www.cs.ukc.ac.uk/people/staff/smk/redblack/rb.html).\n\nimport Order \"../Order\";\nimport Iter \"../Iter\";\nimport Types \"../Types\";\nimport Runtime \"../Runtime\";\n\n// TODO: inline Internal?\n// TODO: Do we want clone or clear, just to match imperative API?\n// inline Tree type, remove Types.Pure.Tree?\n\nmodule {\n\n /// @deprecated M0235\n public type Map = Types.Pure.Map;\n\n type Tree = Types.Pure.Map.Tree;\n\n /// Create a new empty immutable key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.empty();\n /// assert Map.size(map) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func empty() : Map {\n Internal.empty()\n };\n\n /// Determines whether a key-value map is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map0 = Map.empty();\n /// let map1 = Map.add(map0, Nat.compare, 0, \"Zero\");\n ///\n /// assert Map.isEmpty(map0);\n /// assert not Map.isEmpty(map1);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func isEmpty(self : Map) : Bool {\n self.size == 0\n };\n\n /// Determine the size of the map as the number of key-value entries.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Map.size(map) == 3;\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n public func size(self : Map) : Nat = self.size;\n\n /// Test whether the map `map`, ordered by `compare`, contains a binding for the given `key`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Map.containsKey(map, Nat.compare, 1);\n /// assert not Map.containsKey(map, Nat.compare, 42);\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func containsKey(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : Bool = Internal.contains(self.root, compare, key);\n\n /// Given, `map` ordered by `compare`, return the value associated with key `key` if present and `null` otherwise.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Map.get(map, Nat.compare, 1) == ?\"One\";\n /// assert Map.get(map, Nat.compare, 42) == null;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func get(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : ?V = Internal.get(self.root, compare, key);\n\n /// Given `map` ordered by `compare`, insert a mapping from `key` to `value`.\n /// Returns the modified map and `true` if the key is new to map, otherwise `false`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map0 = Map.empty();\n ///\n /// do {\n /// let (map1, new1) = Map.insert(map0, Nat.compare, 0, \"Zero\");\n /// assert Iter.toArray(Map.entries(map1)) == [(0, \"Zero\")];\n /// assert new1;\n /// let (map2, new2) = Map.insert(map1, Nat.compare, 0, \"Nil\");\n /// assert Iter.toArray(Map.entries(map2)) == [(0, \"Nil\")];\n /// assert not new2\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned map shares with the `m` most of the tree nodes.\n /// Garbage collecting one of maps (e.g. after an assignment `m := Map.add(m, cmp, k, v)`)\n /// causes collecting `O(log(n))` nodes.\n public func insert(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) : (Map, Bool) {\n switch (swap(self, compare, key, value)) {\n case (map1, null) (map1, true);\n case (map1, _) (map1, false)\n }\n };\n\n /// Given `map` ordered by `compare`, add a new mapping from `key` to `value`.\n /// Replaces any existing entry with key `key`.\n /// Returns the modified map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// var map = Map.empty();\n ///\n /// map := Map.add(map, Nat.compare, 0, \"Zero\");\n /// map := Map.add(map, Nat.compare, 1, \"One\");\n /// map := Map.add(map, Nat.compare, 0, \"Nil\");\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Nil\"), (1, \"One\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned map shares with the `m` most of the tree nodes.\n /// Garbage collecting one of maps (e.g. after an assignment `m := Map.add(m, cmp, k, v)`)\n /// causes collecting `O(log(n))` nodes.\n public func add(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) : Map {\n swap(self, compare, key, value).0\n };\n\n /// Given `map` ordered by `compare`, add a mapping from `key` to `value`. Overwrites any existing entry with key `key`.\n /// Returns the modified map and the previous value associated with key `key`\n /// or `null` if no such value exists.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map0 = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// do {\n /// let (map1, old1) = Map.swap(map0, Nat.compare, 0, \"Nil\");\n /// assert Iter.toArray(Map.entries(map1)) == [(0, \"Nil\"), (1, \"One\"), (2, \"Two\")];\n /// assert old1 == ?\"Zero\";\n ///\n /// let (map2, old2) = Map.swap(map0, Nat.compare, 3, \"Three\");\n /// assert Iter.toArray(Map.entries(map2)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\"), (3, \"Three\")];\n /// assert old2 == null;\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned map shares with the `m` most of the tree nodes.\n /// Garbage collecting one of maps (e.g. after an assignment `m := Map.swap(m, Nat.compare, k, v).0`)\n /// causes collecting `O(log(n))` nodes.\n public func swap(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) : (Map, ?V) {\n switch (Internal.swap(self.root, compare, key, value)) {\n case (t, null) { ({ root = t; size = self.size + 1 }, null) };\n case (t, v) { ({ root = t; size = self.size }, v) }\n }\n };\n\n /// Overwrites the value of an existing key and returns the updated map and previous value.\n /// If the key does not exist, returns the original map and `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let singleton = Map.singleton(0, \"Zero\");\n ///\n /// do {\n /// let (map1, prev1) = Map.replace(singleton, Nat.compare, 0, \"Nil\"); // overwrites the value for existing key.\n /// assert prev1 == ?\"Zero\";\n /// assert Map.get(map1, Nat.compare, 0) == ?\"Nil\";\n ///\n /// let (map2, prev2) = Map.replace(map1, Nat.compare, 1, \"One\"); // no effect, key is absent\n /// assert prev2 == null;\n /// assert Map.get(map2, Nat.compare, 1) == null;\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func replace(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) : (Map, ?V) {\n // TODO: Could be optimized in future\n if (containsKey(self, compare, key)) {\n swap(self, compare, key, value)\n } else { (self, null) }\n };\n\n /// Given a `map`, ordered by `compare`, deletes any entry for `key` from `map`.\n /// Has no effect if `key` is not present in the map.\n /// Returns the updated map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map0 =\n /// Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// let map1 = Map.remove(map0, Nat.compare, 1);\n /// assert Iter.toArray(Map.entries(map1)) == [(0, \"Zero\"), (2, \"Two\")];\n /// let map2 = Map.remove(map0, Nat.compare, 42);\n /// assert Iter.toArray(Map.entries(map2)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned map shares with the `m` most of the tree nodes.\n /// Garbage collecting one of maps (e.g. after an assignment `map := Map.delete(map, compare, k).0`)\n /// causes collecting `O(log(n))` nodes.\n public func remove(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : Map {\n switch (Internal.remove(self.root, compare, key)) {\n case (_, null) self;\n case (t, ?_) { { root = t; size = self.size - 1 } }\n }\n };\n\n /// Given a `map`, ordered by `compare`, deletes any entry for `key` from `map`.\n /// Has no effect if `key` is not present in the map.\n /// Returns the updated map and `true` if the `key` was present in `map`, otherwise `false`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map0 =\n /// Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// do {\n /// let (map1, pres1) = Map.delete(map0, Nat.compare, 1);\n /// assert Iter.toArray(Map.entries(map1)) == [(0, \"Zero\"), (2, \"Two\")];\n /// assert pres1;\n /// let (map2, pres2) = Map.delete(map0, Nat.compare, 42);\n /// assert not pres2;\n /// assert Iter.toArray(Map.entries(map2)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned map shares with the `m` most of the tree nodes.\n /// Garbage collecting one of maps (e.g. after an assignment `map := Map.delete(map, compare, k).0`)\n /// causes collecting `O(log(n))` nodes.\n public func delete(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : (Map, Bool) {\n switch (Internal.remove(self.root, compare, key)) {\n case (_, null) { (self, false) };\n case (t, ?_) { ({ root = t; size = self.size - 1 }, true) }\n }\n };\n\n /// Given a `map`, ordered by `compare`, deletes the entry for `key`. Returns a modified map, leaving `map` unchanged, and the\n /// previous value associated with `key` or `null` if no such value exists.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map0 = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// do {\n /// let (map1, prev1) = Map.take(map0, Nat.compare, 0);\n /// assert Iter.toArray(Map.entries(map1)) == [(1, \"One\"), (2, \"Two\")];\n /// assert prev1 == ?\"Zero\";\n ///\n /// let (map2, prev2) = Map.take(map0, Nat.compare, 42);\n /// assert Iter.toArray(Map.entries(map2)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// assert prev2 == null;\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned map shares with the `m` most of the tree nodes.\n /// Garbage collecting one of maps (e.g. after an assignment `map := Map.remove(map, compare, key)`)\n /// causes collecting `O(log(n))` nodes.\n public func take(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : (Map, ?V) {\n switch (Internal.remove(self.root, compare, key)) {\n case (t, null) { ({ root = t; size = self.size }, null) };\n case (t, v) { ({ root = t; size = self.size - 1 }, v) }\n }\n };\n\n /// Given a `map` retrieves the key-value pair in `map` with a maximal key. If `map` is empty returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Map.maxEntry(map) == ?(2, \"Two\");\n /// assert Map.maxEntry(Map.empty()) == null;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func maxEntry(self : Map) : ?(K, V) = Internal.maxEntry(self.root);\n\n /// Retrieves a key-value pair from `map` with the minimal key. If the map is empty returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Map.minEntry(map) == ?(0, \"Zero\");\n /// assert Map.minEntry(Map.empty()) == null;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func minEntry(self : Map) : ?(K, V) = Internal.minEntry(self.root);\n\n /// Returns an Iterator (`Iter`) over the key-value pairs in the map.\n /// Iterator provides a single method `next()`, which returns\n /// pairs in ascending order by keys, or `null` when out of pairs to iterate over.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// var sum = 0;\n /// var text = \"\";\n /// for ((k, v) in Map.entries(map)) { sum += k; text #= v };\n /// assert sum == 3;\n /// assert text == \"ZeroOneTwo\"\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(log(n))` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Full map iteration creates `O(n)` temporary objects that will be collected as garbage.\n public func entries(self : Map) : Iter.Iter<(K, V)> = Internal.iter(self.root, #fwd);\n\n /// Returns an Iterator (`Iter`) over the key-value pairs in the map.\n /// Iterator provides a single method `next()`, which returns\n /// pairs in descending order by keys, or `null` when out of pairs to iterate over.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.reverseEntries(map)) == [(2, \"Two\"), (1, \"One\"), (0, \"Zero\")];\n /// var sum = 0;\n /// var text = \"\";\n /// for ((k, v) in Map.reverseEntries(map)) { sum += k; text #= v };\n /// assert sum == 3;\n /// assert text == \"TwoOneZero\"\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(log(n))` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Full map iteration creates `O(n)` temporary objects that will be collected as garbage.\n public func reverseEntries(self : Map) : Iter.Iter<(K, V)> = Internal.iter(self.root, #bwd);\n\n /// Given a `map`, returns an Iterator (`Iter`) over the keys of the `map`.\n /// Iterator provides a single method `next()`, which returns\n /// keys in ascending order, or `null` when out of keys to iterate over.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.keys(map)) == [0, 1, 2];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(log(n))` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Full map iteration creates `O(n)` temporary objects that will be collected as garbage.\n public func keys(self : Map) : Iter.Iter = Iter.map(entries(self), func(kv : (K, V)) : K { kv.0 });\n\n /// Given a `map`, returns an Iterator (`Iter`) over the values of the map.\n /// Iterator provides a single method `next()`, which returns\n /// values in ascending order of associated keys, or `null` when out of values to iterate over.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.values(map)) == [\"Zero\", \"One\", \"Two\"];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(log(n))` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Full map iteration creates `O(n)` temporary objects that will be collected as garbage.\n public func values(self : Map) : Iter.Iter = Iter.map(entries(self), func(kv : (K, V)) : V { kv.1 });\n\n /// Returns a new map, containing all entries given by the iterator `i`.\n /// If there are multiple entries with the same key the last one is taken.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// transient let iter =\n /// Iter.fromArray([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")]);\n ///\n /// let map = Map.fromIter(iter, Nat.compare);\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n public func fromIter(iter : Iter.Iter<(K, V)>, compare : (implicit : (K, K) -> Order.Order)) : Map = Internal.fromIter(iter, compare);\n\n /// Convert an iterator of entries into a map.\n /// If there are multiple entries with the same key the last one is taken.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// transient let iter =\n /// Iter.fromArray([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")]);\n ///\n /// let map = iter.toMap(Nat.compare);\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n public func toMap(self : Iter.Iter<(K, V)>, compare : (implicit : (K, K) -> Order.Order)) : Map = Internal.fromIter(self, compare);\n\n /// Given a `map` and function `f`, creates a new map by applying `f` to each entry in the map `m`. Each entry\n /// `(k, v)` in the old map is transformed into a new entry `(k, v2)`, where\n /// the new value `v2` is created by applying `f` to `(k, v)`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func f(key : Nat, _val : Text) : Nat = key * 2;\n ///\n /// let resMap = Map.map(map, f);\n ///\n /// assert Iter.toArray(Map.entries(resMap)) == [(0, 0), (1, 2), (2, 4)];\n /// }\n /// ```\n ///\n /// Cost of mapping all the elements:\n /// Runtime: `O(n)`.\n /// Space: `O(n)` retained memory\n /// where `n` denotes the number of key-value entries stored in the map.\n public func map(self : Map, f : (K, V1) -> V2) : Map = Internal.map(self, f);\n\n /// Collapses the elements in the `map` into a single value by starting with `base`\n /// and progressively combining keys and values into `base` with `combine`. Iteration runs\n /// left to right.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func folder(accum : (Nat, Text), key : Nat, val : Text) : ((Nat, Text))\n /// = (key + accum.0, accum.1 # val);\n ///\n /// assert Map.foldLeft(map, (0, \"\"), folder) == (3, \"ZeroOneTwo\");\n /// }\n /// ```\n ///\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: depends on `combine` function plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Full map iteration creates `O(n)` temporary objects that will be collected as garbage.\n public func foldLeft(\n self : Map,\n base : A,\n combine : (A, K, V) -> A\n ) : A = Internal.foldLeft(self.root, base, combine);\n\n /// Collapses the elements in the `map` into a single value by starting with `base`\n /// and progressively combining keys and values into `base` with `combine`. Iteration runs\n /// right to left.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func folder(key : Nat, val : Text, accum : (Nat, Text)) : ((Nat, Text))\n /// = (key + accum.0, accum.1 # val);\n ///\n /// assert Map.foldRight(map, (0, \"\"), folder) == (3, \"TwoOneZero\");\n /// }\n /// ```\n ///\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: depends on `combine` function plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Full map iteration creates `O(n)` temporary objects that will be collected as garbage.\n public func foldRight(\n self : Map,\n base : A,\n combine : (K, V, A) -> A\n ) : A = Internal.foldRight(self.root, base, combine);\n\n /// Test whether all key-value pairs in `map` satisfy the given predicate `pred`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"0\"), (2, \"2\"), (1, \"1\")].values(), Nat.compare);\n ///\n /// assert Map.all(map, func (k, v) = v == Nat.toText(k));\n /// assert not Map.all(map, func (k, v) = k < 2);\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func all(self : Map, pred : (K, V) -> Bool) : Bool = Internal.all(self.root, pred);\n\n /// Test if any key-value pair in `map` satisfies the given predicate `pred`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"0\"), (2, \"2\"), (1, \"1\")].values(), Nat.compare);\n ///\n /// assert Map.any(map, func (k, v) = (k >= 0));\n /// assert not Map.any(map, func (k, v) = (k >= 3));\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func any(self : Map, pred : (K, V) -> Bool) : Bool = Internal.any(self.root, pred);\n\n /// Create a new immutable key-value `map` with a single entry.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.singleton(0, \"Zero\");\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func singleton(key : K, value : V) : Map {\n {\n size = 1;\n root = #red(#leaf, key, value, #leaf)\n }\n };\n\n /// Apply an operation for each key-value pair contained in the map.\n /// The operation is applied in ascending order of the keys.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n /// var sum = 0;\n /// var text = \"\";\n /// Map.forEach(map, func (key, value) {\n /// sum += key;\n /// text #= value;\n /// });\n /// assert sum == 3;\n /// assert text == \"ZeroOneTwo\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func forEach(self : Map, operation : (K, V) -> ()) = Internal.forEach(self, operation);\n\n /// Filter entries in a new map.\n /// Returns a new map that only contains the key-value pairs\n /// that fulfil the criterion function.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numberNames = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// let evenNames = Map.filter(numberNames, Nat.compare, func (key, value) {\n /// key % 2 == 0\n /// });\n ///\n /// assert Iter.toArray(Map.entries(evenNames)) == [(0, \"Zero\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func filter(self : Map, compare : (implicit : (K, K) -> Order.Order), criterion : (K, V) -> Bool) : Map = Internal.filter(self, compare, criterion);\n\n /// Given a `map`, comparison `compare` and function `f`,\n /// constructs a new map ordered by `compare`, by applying `f` to each entry in `map`.\n /// For each entry `(k, v)` in the old map, if `f` evaluates to `null`, the entry is discarded.\n /// Otherwise, the entry is transformed into a new entry `(k, v2)`, where\n /// the new value `v2` is the result of applying `f` to `(k, v)`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func f(key : Nat, val : Text) : ?Text {\n /// if(key == 0) {null}\n /// else { ?(\"Twenty \" # val)}\n /// };\n ///\n /// let newMap = Map.filterMap(map, Nat.compare, f);\n ///\n /// assert Iter.toArray(Map.entries(newMap)) == [(1, \"Twenty One\"), (2, \"Twenty Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n public func filterMap(self : Map, compare : (implicit : (K, K) -> Order.Order), f : (K, V1) -> ?V2) : Map = Internal.mapFilter(self, compare : (K, K) -> Order.Order, f);\n\n /// Validate the representation invariants of the given `map`.\n /// Assert if any invariants are violated.\n public func assertValid(self : Map, compare : (implicit : (K, K) -> Order.Order)) : () = Internal.validate(self, compare);\n\n /// Converts the `map` to its textual representation using `keyFormat` and `valueFormat` to convert each key and value to `Text`.\n ///\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n /// assert Map.toText(map, Nat.toText, func t { t }) == \"PureMap{(0, Zero), (1, One), (2, Two)}\";\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `keyFormat` and `valueFormat` run in O(1) time and space.\n public func toText(self : Map, keyFormat : (implicit : (toText : K -> Text)), valueFormat : (implicit : (toText : V -> Text))) : Text {\n var text = \"PureMap{\";\n var sep = \"\";\n for ((k, v) in entries(self)) {\n text #= sep # \"(\" # keyFormat(k) # \", \" # valueFormat(v) # \")\";\n sep := \", \"\n };\n text # \"}\"\n };\n\n /// Test whether two immutable maps have equal entries.\n /// Assumes both maps are ordered equivalently.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// persistent actor {\n /// let map1 = Map.fromIter([(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(), Nat.compare);\n /// let map2 = Map.fromIter([(2, \"Two\"), (1, \"One\"), (0, \"Zero\")].values(), Nat.compare);\n /// assert(Map.equal(map1, map2, Nat.compare, Text.equal));\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n public func equal(self : Map, other : Map, compare : (implicit : (K, K) -> Order.Order), equal : (implicit : (V, V) -> Bool)) : Bool {\n if (self.size != other.size) {\n return false\n };\n let iterator1 = entries(self);\n let iterator2 = entries(other);\n loop {\n let next1 = iterator1.next();\n let next2 = iterator2.next();\n switch (next1, next2) {\n case (null, null) {\n return true\n };\n case (?(key1, value1), ?(key2, value2)) {\n if (not (compare(key1, key2) == #equal) or not equal(value1, value2)) {\n return false\n }\n };\n case _ { return false }\n }\n }\n };\n\n /// Compare two maps by primarily comparing keys and secondarily values.\n /// Both maps are iterated by the ascending order of their creation and\n /// order is determined by the following rules:\n /// Less:\n /// `map1` is less than `map2` if:\n /// * the pairwise iteration hits a entry pair `entry1` and `entry2` where\n /// `entry1` is less than `entry2` and all preceding entry pairs are equal, or,\n /// * `map1` is a strict prefix of `map2`, i.e. `map2` has more entries than `map1`\n /// and all entries of `map1` occur at the beginning of iteration `map2`.\n /// `entry1` is less than `entry2` if:\n /// * the key of `entry1` is less than the key of `entry2`, or\n /// * `entry1` and `entry2` have equal keys and the value of `entry1` is less than\n /// the value of `entry2`.\n /// Equal:\n /// `map1` and `map2` have same series of equal entries by pairwise iteration.\n /// Greater:\n /// `map1` is neither less nor equal `map2`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// persistent actor {\n /// let map1 = Map.fromIter([(0, \"Zero\"), (1, \"One\")].values(), Nat.compare);\n /// let map2 = Map.fromIter([(0, \"Zero\"), (2, \"Two\")].values(), Nat.compare);\n ///\n /// assert Map.compare(map1, map2, Nat.compare, Text.compare) == #less;\n /// assert Map.compare(map1, map1, Nat.compare, Text.compare) == #equal;\n /// assert Map.compare(map2, map1, Nat.compare, Text.compare) == #greater\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that `compareKey` and `compareValue` have runtime and space costs of `O(1)`.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func compare(self : Map, other : Map, compareKey : (implicit : (compare : (K, K) -> Order.Order)), compareValue : (implicit : (compare : (V, V) -> Order.Order))) : Order.Order {\n let iterator1 = entries(self);\n let iterator2 = entries(other);\n loop {\n switch (iterator1.next(), iterator2.next()) {\n case (null, null) return #equal;\n case (null, _) return #less;\n case (_, null) return #greater;\n case (?(key1, value1), ?(key2, value2)) {\n let keyComparison = compareKey(key1, key2);\n if (keyComparison != #equal) {\n return keyComparison\n };\n let valueComparison = compareValue(value1, value2);\n if (valueComparison != #equal) {\n return valueComparison\n }\n }\n }\n }\n };\n\n module Internal {\n\n public func empty() : Map { { size = 0; root = #leaf } };\n\n public func fromIter(i : Iter.Iter<(K, V)>, compare : (K, K) -> Order.Order) : Map {\n var map = #leaf : Tree;\n var size = 0;\n for (val in i) {\n map := add(map, compare, val.0, val.1);\n size += 1\n };\n { root = map; size }\n };\n\n type List = Types.Pure.List;\n\n type IterRep = List<{ #tr : Tree; #xy : (K, V) }>;\n\n public func iter(map : Tree, direction : { #fwd; #bwd }) : Iter.Iter<(K, V)> {\n let turnLeftFirst : MapTraverser = func(l, x, y, r, ts) {\n ?(#tr(l), ?(#xy(x, y), ?(#tr(r), ts)))\n };\n\n let turnRightFirst : MapTraverser = func(l, x, y, r, ts) {\n ?(#tr(r), ?(#xy(x, y), ?(#tr(l), ts)))\n };\n\n switch direction {\n case (#fwd) IterMap(map, turnLeftFirst);\n case (#bwd) IterMap(map, turnRightFirst)\n }\n };\n\n type MapTraverser = (Tree, K, V, Tree, IterRep) -> IterRep;\n\n class IterMap(tree : Tree, mapTraverser : MapTraverser) {\n var trees : IterRep = ?(#tr(tree), null);\n public func next() : ?(K, V) {\n switch (trees) {\n case (null) { null };\n case (?(#tr(#leaf), ts)) {\n trees := ts;\n next()\n };\n case (?(#xy(xy), ts)) {\n trees := ts;\n ?xy\n };\n case (?(#tr(#red(l, x, y, r)), ts)) {\n trees := mapTraverser(l, x, y, r, ts);\n next()\n };\n case (?(#tr(#black(l, x, y, r)), ts)) {\n trees := mapTraverser(l, x, y, r, ts);\n next()\n }\n }\n }\n };\n\n public func map(map : Map, f : (K, V1) -> V2) : Map {\n func mapRec(m : Tree) : Tree {\n switch m {\n case (#leaf) { #leaf };\n case (#red(l, x, y, r)) {\n #red(mapRec l, x, f(x, y), mapRec r)\n };\n case (#black(l, x, y, r)) {\n #black(mapRec l, x, f(x, y), mapRec r)\n }\n }\n };\n { size = map.size; root = mapRec(map.root) }\n };\n\n public func foldLeft(\n map : Tree,\n base : Accum,\n combine : (Accum, Key, Value) -> Accum\n ) : Accum {\n switch (map) {\n case (#leaf) { base };\n case (#red(l, k, v, r)) {\n let left = foldLeft(l, base, combine);\n let middle = combine(left, k, v);\n foldLeft(r, middle, combine)\n };\n case (#black(l, k, v, r)) {\n let left = foldLeft(l, base, combine);\n let middle = combine(left, k, v);\n foldLeft(r, middle, combine)\n }\n }\n };\n\n public func foldRight(\n map : Tree,\n base : Accum,\n combine : (Key, Value, Accum) -> Accum\n ) : Accum {\n switch (map) {\n case (#leaf) { base };\n case (#red(l, k, v, r)) {\n let right = foldRight(r, base, combine);\n let middle = combine(k, v, right);\n foldRight(l, middle, combine)\n };\n case (#black(l, k, v, r)) {\n let right = foldRight(r, base, combine);\n let middle = combine(k, v, right);\n foldRight(l, middle, combine)\n }\n }\n };\n\n public func forEach(map : Map, operation : (K, V) -> ()) {\n func combine(_acc : Null, key : K, value : V) : Null {\n operation(key, value);\n null\n };\n ignore foldLeft(map.root, null, combine)\n };\n\n public func filter(map : Map, compare : (K, K) -> Order.Order, criterion : (K, V) -> Bool) : Map {\n var size = 0;\n func combine(acc : Tree, key : K, value : V) : Tree {\n if (criterion(key, value)) {\n size += 1;\n add(acc, compare, key, value)\n } else acc\n };\n { root = foldLeft(map.root, #leaf, combine); size }\n };\n\n public func mapFilter(map : Map, compare : (K, K) -> Order.Order, f : (K, V1) -> ?V2) : Map {\n var size = 0;\n func combine(acc : Tree, key : K, value1 : V1) : Tree {\n switch (f(key, value1)) {\n case null { acc };\n case (?value2) {\n size += 1;\n add(acc, compare, key, value2)\n }\n }\n };\n { root = foldLeft(map.root, #leaf, combine); size }\n };\n\n public func get(t : Tree, compare : (K, K) -> Order.Order, x : K) : ?V {\n switch t {\n case (#red(l, x1, y1, r)) {\n switch (compare(x, x1)) {\n case (#less) { get(l, compare, x) };\n case (#equal) { ?y1 };\n case (#greater) { get(r, compare, x) }\n }\n };\n case (#black(l, x1, y1, r)) {\n switch (compare(x, x1)) {\n case (#less) { get(l, compare, x) };\n case (#equal) { ?y1 };\n case (#greater) { get(r, compare, x) }\n }\n };\n case (#leaf) { null }\n }\n };\n\n public func contains(m : Tree, compare : (K, K) -> Order.Order, key : K) : Bool {\n switch (get(m, compare, key)) {\n case (null) { false };\n case (_) { true }\n }\n };\n\n public func maxEntry(m : Tree) : ?(K, V) {\n func rightmost(m : Tree) : (K, V) {\n switch m {\n case (#red(_, k, v, #leaf)) { (k, v) };\n case (#red(_, _, _, r)) { rightmost(r) };\n case (#black(_, k, v, #leaf)) { (k, v) };\n case (#black(_, _, _, r)) { rightmost(r) };\n case (#leaf) { Runtime.trap \"pure/Map.maxEntry() impossible\" }\n }\n };\n switch m {\n case (#leaf) { null };\n case (_) { ?rightmost(m) }\n }\n };\n\n public func minEntry(m : Tree) : ?(K, V) {\n func leftmost(m : Tree) : (K, V) {\n switch m {\n case (#red(#leaf, k, v, _)) { (k, v) };\n case (#red(l, _, _, _)) { leftmost(l) };\n case (#black(#leaf, k, v, _)) { (k, v) };\n case (#black(l, _, _, _)) { leftmost(l) };\n case (#leaf) { Runtime.trap \"pure/Map.minEntry() impossible\" }\n }\n };\n switch m {\n case (#leaf) { null };\n case (_) { ?leftmost(m) }\n }\n };\n\n public func all(m : Tree, pred : (K, V) -> Bool) : Bool {\n switch m {\n case (#red(l, k, v, r)) {\n pred(k, v) and all(l, pred) and all(r, pred)\n };\n case (#black(l, k, v, r)) {\n pred(k, v) and all(l, pred) and all(r, pred)\n };\n case (#leaf) { true }\n }\n };\n\n public func any(m : Tree, pred : (K, V) -> Bool) : Bool {\n switch m {\n case (#red(l, k, v, r)) {\n pred(k, v) or any(l, pred) or any(r, pred)\n };\n case (#black(l, k, v, r)) {\n pred(k, v) or any(l, pred) or any(r, pred)\n };\n case (#leaf) { false }\n }\n };\n\n func redden(t : Tree) : Tree {\n switch t {\n case (#black(l, x, y, r)) { (#red(l, x, y, r)) };\n case _ {\n Runtime.trap \"pure/Map.redden() impossible\"\n }\n }\n };\n\n func lbalance(left : Tree, x : K, y : V, right : Tree) : Tree {\n switch (left, right) {\n case (#red(#red(l1, x1, y1, r1), x2, y2, r2), r) {\n #red(\n #black(l1, x1, y1, r1),\n x2,\n y2,\n #black(r2, x, y, r)\n )\n };\n case (#red(l1, x1, y1, #red(l2, x2, y2, r2)), r) {\n #red(\n #black(l1, x1, y1, l2),\n x2,\n y2,\n #black(r2, x, y, r)\n )\n };\n case _ {\n #black(left, x, y, right)\n }\n }\n };\n\n func rbalance(left : Tree, x : K, y : V, right : Tree) : Tree {\n switch (left, right) {\n case (l, #red(l1, x1, y1, #red(l2, x2, y2, r2))) {\n #red(\n #black(l, x, y, l1),\n x1,\n y1,\n #black(l2, x2, y2, r2)\n )\n };\n case (l, #red(#red(l1, x1, y1, r1), x2, y2, r2)) {\n #red(\n #black(l, x, y, l1),\n x1,\n y1,\n #black(r1, x2, y2, r2)\n )\n };\n case _ {\n #black(left, x, y, right)\n }\n }\n };\n\n type ClashResolver = { old : A; new : A } -> A;\n\n func insertWith(\n m : Tree,\n compare : (K, K) -> Order.Order,\n key : K,\n val : V,\n onClash : ClashResolver\n ) : Tree {\n func ins(tree : Tree) : Tree {\n switch tree {\n case (#black(left, x, y, right)) {\n switch (compare(key, x)) {\n case (#less) {\n lbalance(ins left, x, y, right)\n };\n case (#greater) {\n rbalance(left, x, y, ins right)\n };\n case (#equal) {\n let newVal = onClash({ new = val; old = y });\n #black(left, key, newVal, right)\n }\n }\n };\n case (#red(left, x, y, right)) {\n switch (compare(key, x)) {\n case (#less) {\n #red(ins left, x, y, right)\n };\n case (#greater) {\n #red(left, x, y, ins right)\n };\n case (#equal) {\n let newVal = onClash { new = val; old = y };\n #red(left, key, newVal, right)\n }\n }\n };\n case (#leaf) {\n #red(#leaf, key, val, #leaf)\n }\n }\n };\n switch (ins m) {\n case (#red(left, x, y, right)) {\n #black(left, x, y, right)\n };\n case other { other }\n }\n };\n\n public func swap(\n m : Tree,\n compare : (K, K) -> Order.Order,\n key : K,\n val : V\n ) : (Tree, ?V) {\n var oldVal : ?V = null;\n func onClash(clash : { old : V; new : V }) : V {\n oldVal := ?clash.old;\n clash.new\n };\n let res = insertWith(m, compare, key, val, onClash);\n (res, oldVal)\n };\n\n public func add(\n m : Tree,\n compare : (K, K) -> Order.Order,\n key : K,\n val : V\n ) : Tree = swap(m, compare, key, val).0;\n\n func balLeft(left : Tree, x : K, y : V, right : Tree) : Tree {\n switch (left, right) {\n case (#red(l1, x1, y1, r1), r) {\n #red(\n #black(l1, x1, y1, r1),\n x,\n y,\n r\n )\n };\n case (_, #black(l2, x2, y2, r2)) {\n rbalance(left, x, y, #red(l2, x2, y2, r2))\n };\n case (_, #red(#black(l2, x2, y2, r2), x3, y3, r3)) {\n #red(\n #black(left, x, y, l2),\n x2,\n y2,\n rbalance(r2, x3, y3, redden r3)\n )\n };\n case _ { Runtime.trap \"pure/Map.balLeft() impossible\" }\n }\n };\n\n func balRight(left : Tree, x : K, y : V, right : Tree) : Tree {\n switch (left, right) {\n case (l, #red(l1, x1, y1, r1)) {\n #red(\n l,\n x,\n y,\n #black(l1, x1, y1, r1)\n )\n };\n case (#black(l1, x1, y1, r1), r) {\n lbalance(#red(l1, x1, y1, r1), x, y, r)\n };\n case (#red(l1, x1, y1, #black(l2, x2, y2, r2)), r3) {\n #red(\n lbalance(redden l1, x1, y1, l2),\n x2,\n y2,\n #black(r2, x, y, r3)\n )\n };\n case _ { Runtime.trap \"pure/Map.balRight() impossible\" }\n }\n };\n\n func append(left : Tree, right : Tree) : Tree {\n switch (left, right) {\n case (#leaf, _) { right };\n case (_, #leaf) { left };\n case (\n #red(l1, x1, y1, r1),\n #red(l2, x2, y2, r2)\n ) {\n switch (append(r1, l2)) {\n case (#red(l3, x3, y3, r3)) {\n #red(\n #red(l1, x1, y1, l3),\n x3,\n y3,\n #red(r3, x2, y2, r2)\n )\n };\n case r1l2 {\n #red(l1, x1, y1, #red(r1l2, x2, y2, r2))\n }\n }\n };\n case (t1, #red(l2, x2, y2, r2)) {\n #red(append(t1, l2), x2, y2, r2)\n };\n case (#red(l1, x1, y1, r1), t2) {\n #red(l1, x1, y1, append(r1, t2))\n };\n case (#black(l1, x1, y1, r1), #black(l2, x2, y2, r2)) {\n switch (append(r1, l2)) {\n case (#red(l3, x3, y3, r3)) {\n #red(\n #black(l1, x1, y1, l3),\n x3,\n y3,\n #black(r3, x2, y2, r2)\n )\n };\n case r1l2 {\n balLeft(\n l1,\n x1,\n y1,\n #black(r1l2, x2, y2, r2)\n )\n }\n }\n }\n }\n };\n\n public func delete(m : Tree, compare : (K, K) -> Order.Order, key : K) : Tree = remove(m, compare, key).0;\n\n public func remove(tree : Tree, compare : (K, K) -> Order.Order, x : K) : (Tree, ?V) {\n var y0 : ?V = null;\n func delNode(left : Tree, x1 : K, y1 : V, right : Tree) : Tree {\n switch (compare(x, x1)) {\n case (#less) {\n let newLeft = del left;\n switch left {\n case (#black(_, _, _, _)) {\n balLeft(newLeft, x1, y1, right)\n };\n case _ {\n #red(newLeft, x1, y1, right)\n }\n }\n };\n case (#greater) {\n let newRight = del right;\n switch right {\n case (#black(_, _, _, _)) {\n balRight(left, x1, y1, newRight)\n };\n case _ {\n #red(left, x1, y1, newRight)\n }\n }\n };\n case (#equal) {\n y0 := ?y1;\n append(left, right)\n }\n }\n };\n func del(tree : Tree) : Tree {\n switch tree {\n case (#red(left, x, y, right)) {\n delNode(left, x, y, right)\n };\n case (#black(left, x, y, right)) {\n delNode(left, x, y, right)\n };\n case (#leaf) {\n tree\n }\n }\n };\n switch (del(tree)) {\n case (#red(left, x, y, right)) { (#black(left, x, y, right), y0) };\n case other { (other, y0) }\n }\n };\n\n // Test helper\n public func validate(rbMap : Map, comp : (K, K) -> Order.Order) {\n ignore blackDepth(rbMap.root, comp)\n };\n\n func blackDepth(node : Tree, comp : (K, K) -> Order.Order) : Nat {\n func checkNode(left : Tree, key : K, right : Tree) : Nat {\n checkKey(left, func(x : K) : Bool { comp(x, key) == #less });\n checkKey(right, func(x : K) : Bool { comp(x, key) == #greater });\n let leftBlacks = blackDepth(left, comp);\n let rightBlacks = blackDepth(right, comp);\n assert (leftBlacks == rightBlacks);\n leftBlacks\n };\n switch node {\n case (#leaf) 0;\n case (#red(left, key, _, right)) {\n let leftBlacks = checkNode(left, key, right);\n assert (not isRed(left));\n assert (not isRed(right));\n leftBlacks\n };\n case (#black(left, key, _, right)) {\n checkNode(left, key, right) + 1\n }\n }\n };\n\n func isRed(node : Tree) : Bool {\n switch node {\n case (#red(_, _, _, _)) true;\n case _ false\n }\n };\n\n func checkKey(node : Tree, isValid : K -> Bool) {\n switch node {\n case (#leaf) {};\n case (#red(_, key, _, _)) {\n assert (isValid(key))\n };\n case (#black(_, key, _, _)) {\n assert (isValid(key))\n }\n }\n }\n };\n\n}\n"},"Queue.mo":{"content":"/// A mutable double-ended queue of elements.\n/// The queue has two ends, front and back.\n/// Elements can be added and removed at the two ends.\n///\n/// This can be used for different use cases, such as:\n/// * Queue (FIFO) by using `pushBack()` and `popFront()`\n/// * Stack (LIFO) by using `pushFront()` and `popFront()`.\n///\n/// Example:\n/// ```motoko\n/// import Queue \"mo:core/Queue\";\n///\n/// persistent actor {\n/// let orders = Queue.empty();\n/// Queue.pushBack(orders, \"Motoko\");\n/// Queue.pushBack(orders, \"Mops\");\n/// Queue.pushBack(orders, \"IC\");\n/// assert Queue.popFront(orders) == ?\"Motoko\";\n/// assert Queue.popFront(orders) == ?\"Mops\";\n/// assert Queue.popFront(orders) == ?\"IC\";\n/// assert Queue.popFront(orders) == null;\n/// }\n/// ```\n///\n/// The internal implementation is a doubly-linked list.\n///\n/// Performance:\n/// * Runtime: `O(1)` for push, pop, and peek operations.\n/// * Space: `O(n)`.\n/// `n` denotes the number of elements stored in the queue.\n\nimport PureQueue \"pure/Queue\";\nimport Iter \"Iter\";\nimport Order \"Order\";\nimport Types \"Types\";\nimport Array \"Array\";\nimport Prim \"mo:⛔\";\n\nmodule {\n public type Queue = Types.Queue.Queue;\n\n type Node = Types.Queue.Node;\n\n /// Converts a mutable queue to an immutable, purely functional queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let pureQueue = Queue.toPure(queue);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n /// @deprecated M0235\n public func toPure(self : Queue) : PureQueue.Queue {\n let pureQueue = PureQueue.empty();\n let iter = values(self);\n var current = pureQueue;\n loop {\n switch (iter.next()) {\n case null { return current };\n case (?val) { current := PureQueue.pushBack(current, val) }\n }\n }\n };\n\n /// Converts an immutable, purely functional queue to a mutable queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n /// import PureQueue \"mo:core/pure/Queue\";\n ///\n /// persistent actor {\n /// let pureQueue = PureQueue.fromIter([1, 2, 3].values());\n /// let queue = Queue.fromPure(pureQueue);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n /// @deprecated M0235\n public func fromPure(pureQueue : PureQueue.Queue) : Queue {\n let queue = empty();\n let iter = PureQueue.values(pureQueue);\n loop {\n switch (iter.next()) {\n case null { return queue };\n case (?val) { pushBack(queue, val) }\n }\n }\n };\n\n /// Create a new empty mutable double-ended queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.empty();\n /// assert Queue.size(queue) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func empty() : Queue {\n { var front = null; var back = null; var size = 0 }\n };\n\n /// Creates a new queue with a single element.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.singleton(123);\n /// assert Queue.size(queue) == 1;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func singleton(element : T) : Queue {\n let queue = empty();\n pushBack(queue, element);\n queue\n };\n\n /// Removes all elements from the queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// Queue.clear(queue);\n /// assert Queue.isEmpty(queue);\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func clear(self : Queue) {\n self.front := null;\n self.back := null;\n self.size := 0\n };\n\n /// Creates a deep copy of the queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let original = Queue.fromIter([1, 2, 3].values());\n /// let copy = Queue.clone(original);\n /// Queue.clear(original);\n /// assert Queue.size(original) == 0;\n /// assert Queue.size(copy) == 3;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func clone(self : Queue) : Queue {\n let copy = empty();\n for (element in values(self)) {\n pushBack(copy, element)\n };\n copy\n };\n\n /// Returns the number of elements in the queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([\"A\", \"B\", \"C\"].values());\n /// assert Queue.size(queue) == 3;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func size(self : Queue) : Nat {\n self.size\n };\n\n /// Returns `true` if the queue contains no elements.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.empty();\n /// assert Queue.isEmpty(queue);\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func isEmpty(self : Queue) : Bool {\n self.size == 0\n };\n\n /// Checks if an element exists in the queue using the provided equality function.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.contains(queue, Nat.equal, 2);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// `n` denotes the number of elements stored in the queue.\n public func contains(self : Queue, equal : (implicit : (T, T) -> Bool), element : T) : Bool {\n for (existing in values(self)) {\n if (equal(existing, element)) {\n return true\n }\n };\n false\n };\n\n /// Returns the first element in the queue without removing it.\n /// Returns null if the queue is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.peekFront(queue) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func peekFront(self : Queue) : ?T {\n switch (self.front) {\n case null null;\n case (?node) ?node.value\n }\n };\n\n /// Returns the last element in the queue without removing it.\n /// Returns null if the queue is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.peekBack(queue) == ?3;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func peekBack(self : Queue) : ?T {\n switch (self.back) {\n case null null;\n case (?node) ?node.value\n }\n };\n\n /// Adds an element to the front of the queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.empty();\n /// Queue.pushFront(queue, 1);\n /// assert Queue.peekFront(queue) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func pushFront(self : Queue, element : T) {\n let node : Node = {\n value = element;\n var next = self.front;\n var previous = null\n };\n switch (self.front) {\n case null {};\n case (?first) first.previous := ?node\n };\n self.front := ?node;\n switch (self.back) {\n case null self.back := ?node;\n case (?_) {}\n };\n self.size += 1\n };\n\n /// Adds an element to the back of the queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.empty();\n /// Queue.pushBack(queue, 1);\n /// assert Queue.peekBack(queue) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func pushBack(self : Queue, element : T) {\n let node : Node = {\n value = element;\n var next = null;\n var previous = self.back\n };\n switch (self.back) {\n case null {};\n case (?last) last.next := ?node\n };\n self.back := ?node;\n switch (self.front) {\n case null self.front := ?node;\n case (?_) {}\n };\n self.size += 1\n };\n\n /// Removes and returns the first element in the queue.\n /// Returns null if the queue is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.popFront(queue) == ?1;\n /// assert Queue.size(queue) == 2;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func popFront(self : Queue) : ?T {\n switch (self.front) {\n case null null;\n case (?first) {\n self.front := first.next;\n switch (self.front) {\n case null { self.back := null };\n case (?newFirst) { newFirst.previous := null }\n };\n self.size -= 1;\n ?first.value\n }\n }\n };\n\n /// Removes and returns the last element in the queue.\n /// Returns null if the queue is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.popBack(queue) == ?3;\n /// assert Queue.size(queue) == 2;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func popBack(self : Queue) : ?T {\n switch (self.back) {\n case null null;\n case (?last) {\n self.back := last.previous;\n switch (self.back) {\n case null { self.front := null };\n case (?newLast) { newLast.next := null }\n };\n self.size -= 1;\n ?last.value\n }\n }\n };\n\n /// Creates a new queue from an iterator.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([\"A\", \"B\", \"C\"].values());\n /// assert Queue.size(queue) == 3;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func fromIter(iter : Iter.Iter) : Queue {\n let queue = empty();\n for (element in iter) {\n pushBack(queue, element)\n };\n queue\n };\n\n /// Converts an iterator to a queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// transient let iter = [\"A\", \"B\", \"C\"].values();\n ///\n /// let queue = iter.toQueue();\n ///\n /// assert Queue.size(queue) == 3;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func toQueue(self : Iter.Iter) : Queue {\n fromIter(self)\n };\n\n /// Creates a new queue from an array.\n /// Elements appear in the same order as in the array.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromArray([\"A\", \"B\", \"C\"]);\n /// assert Queue.size(queue) == 3;\n /// assert Queue.peekFront(queue) == ?\"A\";\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the array.\n public func fromArray(array : [T]) : Queue {\n let queue = empty();\n for (element in array.vals()) {\n pushBack(queue, element)\n };\n queue\n };\n\n public func fromVarArray(array : [var T]) : Queue {\n fromIter(array.values())\n };\n\n /// Creates a new immutable array containing all elements from the queue.\n /// Elements appear in the same order as in the queue (front to back).\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n /// import Array \"mo:core/Array\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromArray([\"A\", \"B\", \"C\"]);\n /// let array = Queue.toArray(queue);\n /// assert array == [\"A\", \"B\", \"C\"];\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func toArray(self : Queue) : [T] {\n let iter = values(self);\n Array.tabulate(\n self.size,\n func(i) {\n switch (iter.next()) {\n case null { Prim.trap(\"Queue.toArray(): unexpected end of iterator\") };\n case (?value) { value }\n }\n }\n )\n };\n\n public func toVarArray(self : Queue) : [var T] {\n Array.toVarArray(toArray(self))\n };\n\n /// Returns an iterator over the elements in the queue.\n /// Iterates from front to back.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n /// persistent actor {\n /// let queue = Queue.fromIter([\"A\", \"B\", \"C\"].values());\n /// transient let iter = Queue.values(queue);\n /// assert iter.next() == ?\"A\";\n /// assert iter.next() == ?\"B\";\n /// assert iter.next() == ?\"C\";\n /// assert iter.next() == null;\n /// }\n /// ```\n ///\n /// Runtime: O(1) for iterator creation, O(n) for full iteration\n /// Space: O(1)\n public func values(self : Queue) : Iter.Iter {\n object {\n var current = self.front;\n\n public func next() : ?T {\n switch (current) {\n case null null;\n case (?node) {\n current := node.next;\n ?node.value\n }\n }\n }\n }\n };\n\n public func reverseValues(self : Queue) : Iter.Iter {\n Iter.reverse(values(self))\n };\n\n /// Tests whether all elements in the queue satisfy the given predicate.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([2, 4, 6].values());\n /// assert Queue.all(queue, func(x) { x % 2 == 0 });\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n public func all(self : Queue, predicate : T -> Bool) : Bool {\n for (element in values(self)) {\n if (not predicate(element)) {\n return false\n }\n };\n true\n };\n\n /// Tests whether any element in the queue satisfies the given predicate.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.any(queue, func (x) { x > 2 });\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// `n` denotes the number of elements stored in the queue.\n public func any(self : Queue, predicate : T -> Bool) : Bool {\n for (element in values(self)) {\n if (predicate(element)) {\n return true\n }\n };\n false\n };\n\n /// Applies the given operation to all elements in the queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// var sum = 0;\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// Queue.forEach(queue, func(x) { sum += x });\n /// assert sum == 6;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// `n` denotes the number of elements stored in the queue.\n public func forEach(self : Queue, operation : T -> ()) {\n for (element in values(self)) {\n operation(element)\n }\n };\n\n /// Creates a new queue by applying the given function to all elements.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let doubled = Queue.map(queue, func(x) { x * 2 });\n /// assert Queue.peekFront(doubled) == ?2;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func map(self : Queue, project : T -> U) : Queue {\n let result = empty();\n for (element in values(self)) {\n pushBack(result, project(element))\n };\n result\n };\n\n /// Creates a new queue containing only elements that satisfy the given predicate.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3, 4].values());\n /// let evens = Queue.filter(queue, func(x) { x % 2 == 0 });\n /// assert Queue.size(evens) == 2;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func filter(self : Queue, criterion : T -> Bool) : Queue {\n let result = empty();\n for (element in values(self)) {\n if (criterion(element)) {\n pushBack(result, element)\n }\n };\n result\n };\n\n /// Creates a new queue by applying the given function to all elements\n /// and keeping only the non-null results.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3, 4].values());\n /// let evenDoubled = Queue.filterMap(\n /// queue,\n /// func(x) {\n /// if (x % 2 == 0) { ?(x * 2) } else { null }\n /// }\n /// );\n /// assert Queue.size(evenDoubled) == 2;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func filterMap(self : Queue, project : T -> ?U) : Queue {\n let result = empty();\n for (element in values(self)) {\n switch (project(element)) {\n case null {};\n case (?newElement) pushBack(result, newElement)\n }\n };\n result\n };\n\n /// Compares two queues for equality using the provided equality function.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue1 = Queue.fromIter([1, 2, 3].values());\n /// let queue2 = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.equal(queue1, queue2, Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// `n` denotes the number of elements stored in the queue.\n public func equal(self : Queue, other : Queue, equal : (implicit : (T, T) -> Bool)) : Bool {\n if (size(self) != size(other)) {\n return false\n };\n let iterator1 = values(self);\n let iterator2 = values(other);\n loop {\n let element1 = iterator1.next();\n let element2 = iterator2.next();\n switch (element1, element2) {\n case (null, null) {\n return true\n };\n case (?element1, ?element2) {\n if (not equal(element1, element2)) {\n return false\n }\n };\n case _ { return false }\n }\n }\n };\n\n /// Converts a queue to its string representation using the provided element formatter.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.toText(queue, Nat.toText) == \"Queue[1, 2, 3]\";\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func toText(self : Queue, format : (implicit : (toText : T -> Text))) : Text {\n var text = \"Queue[\";\n var sep = \"\";\n for (element in values(self)) {\n text #= sep # format(element);\n sep := \", \"\n };\n text #= \"]\";\n text\n };\n\n /// Compares two queues using the provided comparison function.\n /// Returns #less, #equal, or #greater.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue1 = Queue.fromIter([1, 2].values());\n /// let queue2 = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.compare(queue1, queue2, Nat.compare) == #less;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// `n` denotes the number of elements stored in the queue.\n public func compare(self : Queue, other : Queue, compare : (implicit : (T, T) -> Order.Order)) : Order.Order {\n let iterator1 = values(self);\n let iterator2 = values(other);\n loop {\n switch (iterator1.next(), iterator2.next()) {\n case (null, null) return #equal;\n case (null, _) return #less;\n case (_, null) return #greater;\n case (?element1, ?element2) {\n let comparison = compare(element1, element2);\n if (comparison != #equal) {\n return comparison\n }\n }\n }\n }\n }\n}\n"},"Int8.mo":{"content":"/// Utility functions on 8-bit signed integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Int8 \"mo:core/Int8\";\n/// ```\nimport Int \"Int\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 8-bit signed integers.\n public type Int8 = Prim.Types.Int8;\n\n /// Minimum 8-bit integer value, `-2 ** 7`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.minValue == -128;\n /// ```\n public let minValue : Int8 = -128;\n\n /// Maximum 8-bit integer value, `+2 ** 7 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.maxValue == +127;\n /// ```\n public let maxValue : Int8 = 127;\n\n /// Converts an 8-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.toInt(123) == (123 : Int);\n /// ```\n public let toInt : (self : Int8) -> Int = Prim.int8ToInt;\n\n /// Converts a signed integer with infinite precision to an 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.fromInt(123) == (+123 : Int8);\n /// ```\n public let fromInt : Int -> Int8 = Prim.intToInt8;\n\n /// Converts a signed integer with infinite precision to an 8-bit signed integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.fromIntWrap(-123) == (-123 : Int8);\n /// ```\n public let fromIntWrap : Int -> Int8 = Prim.intToInt8Wrap;\n\n /// Converts a 16-bit signed integer to an 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.fromInt16(123) == (+123 : Int8);\n /// ```\n public let fromInt16 : Int16 -> Int8 = Prim.int16ToInt8;\n\n /// Converts an 8-bit signed integer to a 16-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.toInt16(123) == (+123 : Int16);\n /// ```\n public let toInt16 : (self : Int8) -> Int16 = Prim.int8ToInt16;\n\n /// Converts a 32-bit signed integer to an 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.fromInt32(123) == (+123 : Int8);\n /// ```\n public func fromInt32(x : Int32) : Int8 {\n Prim.int16ToInt8(Prim.int32ToInt16(x))\n };\n\n /// Converts an 8-bit signed integer to a 32-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.toInt32(123) == (+123 : Int32);\n /// ```\n public func toInt32(self : Int8) : Int32 {\n Prim.int16ToInt32(Prim.int8ToInt16(self))\n };\n\n /// Converts a 64-bit signed integer to an 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.fromInt64(123) == (+123 : Int8);\n /// ```\n public func fromInt64(x : Int64) : Int8 {\n Prim.int16ToInt8(Prim.int32ToInt16(Prim.int64ToInt32(x)))\n };\n\n /// Converts an 8-bit signed integer to a 64-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.toInt64(123) == (+123 : Int64);\n /// ```\n public func toInt64(self : Int8) : Int64 {\n Prim.int32ToInt64(Prim.int16ToInt32(Prim.int8ToInt16(self)))\n };\n\n /// Converts an unsigned 8-bit integer to a signed 8-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.fromNat8(123) == (+123 : Int8);\n /// ```\n public let fromNat8 : Nat8 -> Int8 = Prim.nat8ToInt8;\n\n /// Converts a signed 8-bit integer to an unsigned 8-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.toNat8(-1) == (255 : Nat8); // underflow\n /// ```\n public let toNat8 : (self : Int8) -> Nat8 = Prim.int8ToNat8;\n\n /// Converts an integer number to its textual representation.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.toText(-123) == \"-123\";\n /// ```\n public func toText(self : Int8) : Text {\n Int.toText(toInt(self))\n };\n\n /// Returns the absolute value of `x`.\n ///\n /// Traps when `x == -2 ** 7` (the minimum `Int8` value).\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.abs(-123) == +123;\n /// ```\n public func abs(x : Int8) : Int8 {\n fromInt(Int.abs(toInt(x)))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.min(+2, -3) == -3;\n /// ```\n public func min(x : Int8, y : Int8) : Int8 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.max(+2, -3) == +2;\n /// ```\n public func max(x : Int8, y : Int8) : Int8 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Int8 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.equal(-1, -1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Int8 = -123;\n /// let b : Int8 = 123;\n /// assert not Int8.equal(a, b);\n /// ```\n public func equal(x : Int8, y : Int8) : Bool { x == y };\n\n /// Inequality function for Int8 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.notEqual(-1, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Int8, y : Int8) : Bool { x != y };\n\n /// \"Less than\" function for Int8 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.less(-2, 1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Int8, y : Int8) : Bool { x < y };\n\n /// \"Less than or equal\" function for Int8 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.lessOrEqual(-2, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Int8, y : Int8) : Bool { x <= y };\n\n /// \"Greater than\" function for Int8 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.greater(-2, -3);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Int8, y : Int8) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Int8 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.greaterOrEqual(-2, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Int8, y : Int8) : Bool { x >= y };\n\n /// General-purpose comparison function for `Int8`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.compare(-3, 2) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([1, -2, -3] : [Int8], Int8.compare) == [-3, -2, 1];\n /// ```\n public func compare(x : Int8, y : Int8) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the negation of `x`, `-x`.\n ///\n /// Traps on overflow, i.e. for `neg(-2 ** 7)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.neg(123) == -123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n public func neg(x : Int8) : Int8 { -x };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.add(100, 23) == +123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int8.add) == -4;\n /// ```\n public func add(x : Int8, y : Int8) : Int8 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.sub(123, 23) == +100;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int8.sub) == 4;\n /// ```\n public func sub(x : Int8, y : Int8) : Int8 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.mul(12, 10) == +120;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 1, Int8.mul) == 6;\n /// ```\n public func mul(x : Int8, y : Int8) : Int8 { x * y };\n\n /// Returns the signed integer division of `x` by `y`, `x / y`.\n /// Rounds the quotient towards zero, which is the same as truncating the decimal places of the quotient.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.div(123, 10) == +12;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Int8, y : Int8) : Int8 { x / y };\n\n /// Returns the remainder of the signed integer division of `x` by `y`, `x % y`,\n /// which is defined as `x - x / y * y`.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.rem(123, 10) == +3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Int8, y : Int8) : Int8 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n ///\n /// Traps on overflow/underflow and when `y < 0 or y >= 8`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.pow(2, 6) == +64;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Int8, y : Int8) : Int8 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitnot(-16 /* 0xf0 */) == +15 // 0x0f;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Int8) : Int8 { ^x };\n\n /// Returns the bitwise \"and\" of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitand(0x1f, 0x70) == +16 // 0x10;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Int8, y : Int8) : Int8 { x & y };\n\n /// Returns the bitwise \"or\" of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitor(0x0f, 0x70) == +127 // 0x7f;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `|` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `|`\n /// as a function value at the moment.\n public func bitor(x : Int8, y : Int8) : Int8 { x | y };\n\n /// Returns the bitwise \"exclusive or\" of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitxor(0x70, 0x7f) == +15 // 0x0f;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitxor(x : Int8, y : Int8) : Int8 { x ^ y };\n\n /// Returns the bitwise left shift of `x` by `y`, `x << y`.\n /// The right bits of the shift filled with zeros.\n /// Left-overflowing bits, including the sign bit, are discarded.\n ///\n /// For `y >= 8`, the semantics is the same as for `bitshiftLeft(x, y % 8)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftLeft(x, y + y % 8)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitshiftLeft(1, 4) == +16 // 0x10 equivalent to `2 ** 4`.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Int8, y : Int8) : Int8 { x << y };\n\n /// Returns the signed bitwise right shift of `x` by `y`, `x >> y`.\n /// The sign bit is retained and the left side is filled with the sign bit.\n /// Right-underflowing bits are discarded, i.e. not rotated to the left side.\n ///\n /// For `y >= 8`, the semantics is the same as for `bitshiftRight(x, y % 8)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftRight (x, y + y % 8)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitshiftRight(64, 4) == +4 // equivalent to `64 / (2 ** 4)`;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Int8, y : Int8) : Int8 { x >> y };\n\n /// Returns the bitwise left rotatation of `x` by `y`, `x <<> y`.\n /// Each left-overflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 8`, the semantics is the same as for `bitrotLeft(x, y % 8)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitrotLeft(0x11 /* 0b0001_0001 */, 2) == +68 // 0b0100_0100 == 0x44.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Int8, y : Int8) : Int8 { x <<> y };\n\n /// Returns the bitwise right rotation of `x` by `y`, `x <>> y`.\n /// Each right-underflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 8`, the semantics is the same as for `bitrotRight(x, y % 8)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitrotRight(0x11 /* 0b0001_0001 */, 1) == -120 // 0b1000_1000 == 0x88.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Int8, y : Int8) : Int8 { x <>> y };\n\n /// Returns the value of bit `p` in `x`, `x & 2**p == 2**p`.\n /// If `p >= 8`, the semantics is the same as for `bittest(x, p % 8)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bittest(64, 6);\n /// ```\n public func bittest(x : Int8, p : Nat) : Bool {\n Prim.btstInt8(x, Prim.intToInt8(p))\n };\n\n /// Returns the value of setting bit `p` in `x` to `1`.\n /// If `p >= 8`, the semantics is the same as for `bitset(x, p % 8)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitset(0, 6) == +64;\n /// ```\n public func bitset(x : Int8, p : Nat) : Int8 {\n x | (1 << Prim.intToInt8(p))\n };\n\n /// Returns the value of clearing bit `p` in `x` to `0`.\n /// If `p >= 8`, the semantics is the same as for `bitclear(x, p % 8)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitclear(-1, 6) == -65;\n /// ```\n public func bitclear(x : Int8, p : Nat) : Int8 {\n x & ^(1 << Prim.intToInt8(p))\n };\n\n /// Returns the value of flipping bit `p` in `x`.\n /// If `p >= 8`, the semantics is the same as for `bitclear(x, p % 8)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitflip(127, 6) == +63;\n /// ```\n public func bitflip(x : Int8, p : Nat) : Int8 {\n x ^ (1 << Prim.intToInt8(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitcountNonZero(0x0f) == +4;\n /// ```\n public let bitcountNonZero : (x : Int8) -> Int8 = Prim.popcntInt8;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitcountLeadingZero(0x08) == +4;\n /// ```\n public let bitcountLeadingZero : (x : Int8) -> Int8 = Prim.clzInt8;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitcountTrailingZero(0x10) == +4;\n /// ```\n public let bitcountTrailingZero : (x : Int8) -> Int8 = Prim.ctzInt8;\n\n /// Returns the sum of `x` and `y`, `x +% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.addWrap(2 ** 6, 2 ** 6) == -128; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Int8, y : Int8) : Int8 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.subWrap(-2 ** 7, 1) == +127; // underflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Int8, y : Int8) : Int8 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.mulWrap(2 ** 4, 2 ** 4) == 0; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Int8, y : Int8) : Int8 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`.\n ///\n /// Wraps on overflow/underflow.\n /// Traps if `y < 0 or y >= 8`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.powWrap(2, 7) == -128; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Int8, y : Int8) : Int8 { x **% y };\n\n /// Returns an iterator over `Int8` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int8.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int8.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Int8, toExclusive : Int8) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Int8 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Int8` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int8.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int8.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Int8, to : Int8) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Int8 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Int8 values, from minValue to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int8.allValues();\n /// assert iter.next() == ?-128;\n /// assert iter.next() == ?-127;\n /// assert iter.next() == ?-126;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(minValue, maxValue)\n };\n\n}\n"},"Timer.mo":{"content":"/// Timers for one-off or periodic tasks. Applicable as part of the default mechanism.\n/// If `moc` is invoked with `-no-timer`, the importing will fail. Furthermore, if passed `--trap-on-call-error`, a congested canister send queue may prevent timer expirations to execute at runtime. It may also deactivate the global timer.\n///\n/// ```motoko name=import\n/// import Timer \"mo:core/Timer\";\n/// ```\n///\n/// The resolution of the timers is similar to the block rate,\n/// so durations should be chosen well above that. For frequent\n/// canister wake-ups, consider using the [heartbeat](https://internetcomputer.org/docs/motoko/icp-features/system-functions#heartbeat) mechanism; however, when possible, canisters should prefer timers.\n///\n/// The functionality described below is enabled only when the actor does not override it by declaring an explicit `system func timer`.\n///\n/// Timers are _not_ persisted across upgrades. One possible strategy\n/// to re-establish timers after an upgrade is to use stable variables\n/// in the `post_upgrade` hook and distill necessary timer information\n/// from there.\n///\n/// Using timers for security (e.g., access control) is strongly discouraged.\n/// Make sure to inform yourself about state-of-the-art dapp security.\n/// If you must use timers for security controls, be sure\n/// to consider reentrancy issues as well as the vanishing of timers on upgrades\n/// and reinstalls.\n///\n/// For further usage information for timers on the IC, please consult\n/// [the documentation](https://internetcomputer.org/docs/building-apps/network-features/periodic-tasks-timers#timers-library-limitations).\nimport { setTimer = setTimerNano; cancelTimer = cancel } = \"mo:⛔\";\nimport Nat64 = \"Nat64\";\nimport Time \"Time\";\n\nmodule {\n\n public type TimerId = Nat;\n\n /// Installs a one-off timer that upon expiration after given duration `d`\n /// executes the future `job()`.\n ///\n /// ```motoko include=import no-repl\n /// import Int \"mo:core/Int\";\n ///\n /// func runIn30Minutes() : async () {\n /// // ...\n /// };\n /// let timerId = Timer.setTimer(#minutes 30, runIn30Minutes);\n /// ```\n public func setTimer(duration : Time.Duration, job : () -> async ()) : TimerId {\n setTimerNano(Nat64.fromNat(Time.toNanoseconds duration), false, job)\n };\n\n /// Installs a recurring timer that upon expiration after given duration `d`\n /// executes the future `job()` and reinserts itself for another expiration.\n ///\n /// Note: A duration of 0 will only expire once.\n ///\n /// ```motoko include=import no-repl\n /// func runEvery30Minutes() : async () {\n /// // ...\n /// };\n /// let timerId = Timer.recurringTimer(#minutes 30, runEvery30Minutes);\n /// ```\n public func recurringTimer(duration : Time.Duration, job : () -> async ()) : TimerId {\n setTimerNano(Nat64.fromNat(Time.toNanoseconds duration), true, job)\n };\n\n /// Cancels a still active timer with `(id : TimerId)`. For expired timers\n /// and not recognised `id`s nothing happens.\n ///\n /// ```motoko include=import no-repl\n /// var counter = 0;\n /// var timerId : ?Timer.TimerId = null;\n /// func runFiveTimes() : async () {\n /// counter += 1;\n /// if (counter == 5) {\n /// switch (timerId) {\n /// case (?id) { Timer.cancelTimer(id) };\n /// case null { assert false /* timer already cancelled */ };\n /// };\n /// }\n /// };\n /// timerId := ?Timer.recurringTimer(#minutes 30, runFiveTimes);\n /// ```\n public let cancelTimer : TimerId -> () = cancel;\n\n}\n"},"List.mo":{"content":"/// A mutable growable array data structure with efficient random access and dynamic resizing.\n/// `List` provides O(1) access time and O(sqrt(n)) memory overhead. In contrast, `pure/List` is a purely functional linked list.\n/// Can be declared `stable` for orthogonal persistence.\n///\n/// This implementation is adapted with permission from the `vector` Mops package created by Research AG.\n///\n/// Copyright: 2023 MR Research AG\n/// Main author: Andrii Stepanov (AStepanov25)\n/// Contributors: Timo Hanke (timohanke), Andy Gura (andygura), react0r-com\n///\n/// ```motoko name=import\n/// import List \"mo:core/List\";\n/// ```\n\nimport PureList \"pure/List\";\nimport Prim \"mo:⛔\";\nimport Nat32 \"Nat32\";\nimport Array \"Array\";\nimport Nat \"Nat\";\nimport Option \"Option\";\nimport VarArray \"VarArray\";\nimport Types \"Types\";\n\nmodule {\n /// `List` provides a mutable list of elements of type `T`.\n /// Based on the paper \"Resizable Arrays in Optimal Time and Space\" by Brodnik, Carlsson, Demaine, Munro and Sedgewick (1999).\n /// Since this is internally a two-dimensional array the access times for put and get operations\n /// will naturally be 2x slower than Buffer and Array. However, Array is not resizable and Buffer\n /// has `O(size)` memory waste.\n ///\n /// The maximum number of elements in a `List` is 2^32.\n public type List = Types.List;\n\n let INTERNAL_ERROR = \"List: internal error\";\n\n /// Creates a new empty List for elements of type T.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty(); // Creates a new List\n /// ```\n public func empty() : List = {\n // the first block is always empty and is present in each List\n // this is done to optimize locate, at, get, etc\n var blocks = [var [var]];\n // can't be 0 in any List\n var blockIndex = 1;\n var elementIndex = 0\n };\n\n /// Returns a new list with capacity and size 1, containing `element`.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.singleton(1);\n /// assert List.toText(list, Nat.toText) == \"List[1]\";\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n public func singleton(element : T) : List = {\n var blockIndex = 2;\n var blocks = [var [var], [var ?element]];\n var elementIndex = 0\n };\n\n func repeatInternal(initValue : ?T, size : Nat) : List {\n let (blockIndex, elementIndex) = locate(size);\n\n let blocks = newIndexBlockLength(Nat32.fromNat(if (elementIndex == 0) { blockIndex - 1 } else blockIndex));\n let dataBlocks = VarArray.repeat<[var ?T]>([var], blocks);\n var i = 1;\n while (i < blockIndex) {\n dataBlocks[i] := VarArray.repeat(initValue, dataBlockSize(i));\n i += 1\n };\n if (elementIndex != 0) {\n dataBlocks[blockIndex] := if (Option.isNull(initValue)) VarArray.repeat(\n null,\n dataBlockSize(blockIndex)\n ) else VarArray.tabulate(\n dataBlockSize(blockIndex),\n func i = if (i < elementIndex) initValue else null\n )\n };\n\n {\n var blocks = dataBlocks;\n var blockIndex = blockIndex;\n var elementIndex = elementIndex\n }\n };\n\n /// Creates a new List with `size` copies of the initial value.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.repeat(2, 4);\n /// assert List.toArray(list) == [2, 2, 2, 2];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n public func repeat(initValue : T, size : Nat) : List = repeatInternal(?initValue, size);\n\n /// Fills all elements in the list with the given value.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3]);\n /// List.fill(list, 0); // fills the list with 0\n /// assert List.toArray(list) == [0, 0, 0];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n public func fill(self : List, value : T) {\n let blocks = self.blocks;\n let blockCount = blocks.size();\n let blockIndex = self.blockIndex;\n let elementIndex = self.elementIndex;\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = if (i == blockIndex) elementIndex else db.size();\n if (sz == 0) return;\n\n var j = 0;\n while (j < sz) {\n db[j] := ?value;\n j += 1\n };\n i += 1\n }\n };\n\n /// Converts a mutable `List` to a purely functional `PureList`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3]);\n /// let pureList = List.toPure(list); // converts to immutable PureList\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n /// @deprecated M0235\n public func toPure(self : List) : PureList.List {\n var result : PureList.List = null;\n\n let blocks = self.blocks;\n let blockIndex = self.blockIndex;\n let elementIndex = self.elementIndex;\n\n var i = blockIndex;\n if (elementIndex == 0) i -= 1;\n\n while (i > 0) {\n let db = blocks[i];\n let sz = db.size();\n var j = if (i == blockIndex) elementIndex else sz;\n while (j > 0) {\n j -= 1;\n switch (db[j]) {\n case (?x) result := ?(x, result);\n case null Prim.trap INTERNAL_ERROR\n }\n };\n i -= 1\n };\n\n result\n };\n\n /// Converts a purely functional `PureList` to a `List`.\n ///\n /// Example:\n /// ```motoko include=import\n /// import PureList \"mo:core/pure/List\";\n ///\n /// let pureList = PureList.fromArray([1, 2, 3]);\n /// let list = List.fromPure(pureList); // converts to List\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n /// @deprecated M0235\n public func fromPure(pure : PureList.List) : List {\n var p = pure;\n var list = empty();\n loop {\n switch (p) {\n case (?(x, xs)) {\n add(list, x);\n p := xs\n };\n case null return list\n }\n }\n };\n\n func addRepeatInternal(list : List, initValue : ?T, count : Nat) {\n let (b, e) = locate(size(list) + count);\n let blocksCount = newIndexBlockLength(Nat32.fromNat(if (e == 0) b - 1 else b));\n\n let oldBlocksCount = list.blocks.size();\n if (oldBlocksCount < blocksCount) {\n let oldBlocks = list.blocks;\n let blocks = VarArray.repeat<[var ?T]>([var], blocksCount);\n var i = 0;\n while (i < oldBlocksCount) {\n blocks[i] := oldBlocks[i];\n i += 1\n };\n list.blocks := blocks\n };\n\n let blocks = list.blocks;\n var blockIndex = list.blockIndex;\n var elementIndex = list.elementIndex;\n\n var cnt = count;\n label L while (cnt > 0) {\n if (blocks[blockIndex].size() == 0) {\n let dbSize = dataBlockSize(blockIndex);\n if (cnt >= dbSize) {\n blocks[blockIndex] := VarArray.repeat(initValue, dbSize);\n blockIndex += 1;\n cnt -= dbSize;\n continue L\n };\n blocks[blockIndex] := VarArray.repeat(null, dbSize)\n };\n\n let block = blocks[blockIndex];\n let dbSize = block.size();\n let to = Nat.min(elementIndex + cnt, dbSize);\n cnt -= to - elementIndex;\n\n while (elementIndex < to) {\n block[elementIndex] := initValue;\n elementIndex += 1\n };\n\n if (elementIndex == dbSize) {\n elementIndex := 0;\n blockIndex += 1\n }\n };\n\n list.blockIndex := blockIndex;\n list.elementIndex := elementIndex\n };\n\n private func reserve(list : List, size : Nat) {\n let blockIndex = list.blockIndex;\n let elementIndex = list.elementIndex;\n\n addRepeatInternal(list, null, size);\n\n list.blockIndex := blockIndex;\n list.elementIndex := elementIndex\n };\n\n /// Add to list `count` copies of the initial value.\n ///\n /// ```motoko include=import\n /// let list = List.repeat(2, 4); // [2, 2, 2, 2]\n /// List.addRepeat(list, 2, 1); // [2, 2, 2, 2, 1, 1]\n /// ```\n ///\n /// The maximum number of elements in a `List` is 2^32.\n ///\n /// Runtime: `O(count)`\n public func addRepeat(self : List, initValue : T, count : Nat) = addRepeatInternal(self, ?initValue, count);\n\n /// Truncates the list to the specified size.\n /// If the new size is larger than the current size, it will do nothing.\n /// If the new size is equal to the current list size, after the operation list will be equal to cloned version of itself.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3, 4, 5]);\n /// List.truncate(list, 3); // list is now [1, 2, 3]\n /// assert List.toArray(list) == [1, 2, 3];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n public func truncate(self : List, newSize : Nat) {\n if (newSize > size(self)) return;\n\n // if newSize == size(self) then after the operation self will be equal to List.clone(self)\n let (blockIndex, elementIndex) = locate(newSize);\n self.blockIndex := blockIndex;\n self.elementIndex := elementIndex;\n let newBlocksCount = newIndexBlockLength(Nat32.fromNat(if (elementIndex == 0) blockIndex - 1 else blockIndex));\n\n let newBlocks = if (newBlocksCount < self.blocks.size()) {\n let oldDataBlocks = self.blocks;\n self.blocks := VarArray.tabulate<[var ?T]>(newBlocksCount, func(i) = oldDataBlocks[i]);\n self.blocks\n } else self.blocks;\n\n var i = if (elementIndex == 0) blockIndex else blockIndex + 1;\n while (i < newBlocksCount) {\n newBlocks[i] := [var];\n i += 1\n };\n if (elementIndex != 0) {\n let block = newBlocks[blockIndex];\n var i = elementIndex;\n var to = block.size();\n while (i < to) {\n block[i] := null;\n i += 1\n }\n }\n };\n\n /// Resets the list to size 0, de-referencing all elements.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// List.add(list, 12);\n /// List.clear(list); // list is now empty\n /// assert List.toArray(list) == [];\n /// ```\n ///\n /// Runtime: `O(1)`\n public func clear(self : List) {\n self.blocks := [var [var]];\n self.blockIndex := 1;\n self.elementIndex := 0\n };\n\n /// Creates a list of size `size`. Each element at index i\n /// is created by applying `generator` to i.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.tabulate(4, func i = i * 2);\n /// assert List.toArray(list) == [0, 2, 4, 6];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `generator` runs in O(1) time and space.\n public func tabulate(size : Nat, generator : Nat -> T) : List {\n let (blockIndex, elementIndex) = locate(size);\n\n let blocks = newIndexBlockLength(Nat32.fromNat(if (elementIndex == 0) { blockIndex - 1 } else blockIndex));\n let dataBlocks = VarArray.repeat<[var ?T]>([var], blocks);\n\n var i = 1;\n var pos = 0;\n\n while (i < blockIndex) {\n let len = dataBlockSize(i);\n dataBlocks[i] := VarArray.tabulate(len, func i = ?generator(pos + i));\n pos += len;\n i += 1\n };\n if (elementIndex != 0 and blockIndex < blocks) {\n dataBlocks[i] := VarArray.tabulate(\n dataBlockSize(blockIndex),\n func i = if (i < elementIndex) ?generator(pos + i) else null\n )\n };\n\n {\n var blocks = dataBlocks;\n var blockIndex = blockIndex;\n var elementIndex = elementIndex\n }\n };\n\n /// Combines a list of lists into a single list. Retains the original\n /// ordering of the elements.\n ///\n /// This has better performance compared to `List.join()`.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let lists = List.fromArray>([\n /// List.fromArray([0, 1, 2]), List.fromArray([2, 3]), List.fromArray([]), List.fromArray([4])\n /// ]);\n /// let flatList = List.flatten(lists);\n /// assert List.equal(flatList, List.fromArray([0, 1, 2, 2, 3, 4]), Nat.equal);\n /// ```\n ///\n /// Runtime: O(number of elements in list)\n ///\n /// Space: O(number of elements in list)\n public func flatten(self : List>) : List {\n var sz = 0;\n forEach>(self, func(sublist) = sz += size(sublist));\n\n let result = repeatInternal(null, sz);\n result.blockIndex := 1;\n result.elementIndex := 0;\n\n forEach>(\n self,\n func(sublist) {\n forEach(\n sublist,\n func(item) {\n add(result, item)\n }\n )\n }\n );\n result\n };\n\n /// Combines an iterator of lists into a single list.\n /// Retains the original ordering of the elements.\n ///\n /// Consider using `List.flatten()` for better performance.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let lists = [List.fromArray([0, 1, 2]), List.fromArray([2, 3]), List.fromArray([]), List.fromArray([4])];\n /// let joinedList = List.join(lists.vals());\n /// assert List.equal(joinedList, List.fromArray([0, 1, 2, 2, 3, 4]), Nat.equal);\n /// ```\n ///\n /// Runtime: O(number of elements in list)\n ///\n /// Space: O(number of elements in list)\n public func join(self : Types.Iter>) : List {\n var result = empty();\n for (list in self) {\n reserve(result, size(list));\n forEach(list, func item = addUnsafe(result, item))\n };\n result\n };\n\n /// Returns a copy of a List, with the same size.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 1);\n ///\n /// let clone = List.clone(list);\n /// assert List.toArray(clone) == [1];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func clone(self : List) : List = {\n var blocks = VarArray.tabulate<[var ?T]>(\n Nat.min(\n newIndexBlockLength(Nat32.fromNat(if (self.elementIndex == 0) self.blockIndex - 1 else self.blockIndex)),\n self.blocks.size()\n ),\n func(i) = VarArray.clone(self.blocks[i])\n );\n var blockIndex = self.blockIndex;\n var elementIndex = self.elementIndex\n };\n\n /// Creates a new list by applying the provided function to each element in the input list.\n /// The resulting list has the same size as the input list.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.singleton(123);\n /// let textList = List.map(list, Nat.toText);\n /// assert List.toArray(textList) == [\"123\"];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func map(self : List, f : T -> R) : List {\n let blocksCount = Nat.min(\n newIndexBlockLength(Nat32.fromNat(if (self.elementIndex == 0) self.blockIndex - 1 else self.blockIndex)),\n self.blocks.size()\n );\n let blocks = VarArray.repeat<[var ?R]>([var], blocksCount);\n\n var i = 1;\n label l while (i < blocksCount) {\n let oldBlock = self.blocks[i];\n let blockSize = oldBlock.size();\n let newBlock = VarArray.repeat(null, blockSize);\n blocks[i] := newBlock;\n var j = 0;\n\n while (j < blockSize) {\n switch (oldBlock[j]) {\n case (?item) newBlock[j] := ?f(item);\n case null break l\n };\n j += 1\n };\n i += 1\n };\n\n {\n var blocks = blocks;\n var blockIndex = self.blockIndex;\n var elementIndex = self.elementIndex\n }\n };\n\n /// Applies `f` to each element of `list` in place,\n /// retaining the original ordering of elements.\n /// This modifies the original list.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([0, 1, 2, 3]);\n /// List.mapInPlace(list, func x = x * 3);\n /// assert List.equal(list, List.fromArray([0, 3, 6, 9]), Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func mapInPlace(self : List, f : T -> T) {\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) db[j] := ?f(x);\n case null return\n };\n j += 1\n };\n i += 1\n }\n };\n\n /// Creates a new list by applying `f` to each element in `list` and its index.\n /// Retains original ordering of elements.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([10, 10, 10, 10]);\n /// let newList = List.mapEntries(list, func (x, i) = i * x);\n /// assert List.equal(newList, List.fromArray([0, 10, 20, 30]), Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func mapEntries(self : List, f : (T, Nat) -> R) : List {\n let blocks = VarArray.repeat<[var ?R]>([var], self.blocks.size());\n let blocksCount = self.blocks.size();\n\n var index = 0;\n\n var i = 1;\n label l while (i < blocksCount) {\n let oldBlock = self.blocks[i];\n let blockSize = oldBlock.size();\n let newBlock = VarArray.repeat(null, blockSize);\n blocks[i] := newBlock;\n var j = 0;\n\n while (j < blockSize) {\n switch (oldBlock[j]) {\n case (?item) newBlock[j] := ?f(item, index);\n case null break l\n };\n j += 1;\n index += 1\n };\n i += 1\n };\n\n {\n var blocks = blocks;\n var blockIndex = self.blockIndex;\n var elementIndex = self.elementIndex\n }\n };\n\n /// Creates a new list by applying `f` to each element in `list`.\n /// If any invocation of `f` produces an `#err`, returns an `#err`. Otherwise\n /// returns an `#ok` containing the new list.\n ///\n /// ```motoko include=import\n /// import Result \"mo:core/Result\";\n ///\n /// let list = List.fromArray([4, 3, 2, 1, 0]);\n /// // divide 100 by every element in the list\n /// let result = List.mapResult(list, func x {\n /// if (x > 0) {\n /// #ok(100 / x)\n /// } else {\n /// #err \"Cannot divide by zero\"\n /// }\n /// });\n /// assert Result.isErr(result);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func mapResult(self : List, f : T -> Types.Result) : Types.Result, E> {\n var error : ?E = null;\n\n let blocks = VarArray.repeat<[var ?R]>([var], self.blocks.size());\n let blocksCount = self.blocks.size();\n\n var i = 1;\n while (i < blocksCount) {\n let oldBlock = self.blocks[i];\n let blockSize = oldBlock.size();\n let newBlock = VarArray.repeat(null, blockSize);\n blocks[i] := newBlock;\n var j = 0;\n\n while (j < blockSize) {\n switch (oldBlock[j]) {\n case (?item) newBlock[j] := switch (f(item)) {\n case (#ok x) ?x;\n case (#err e) switch (error) {\n case (null) {\n error := ?e;\n null\n };\n case (?_) null\n }\n };\n case null return switch (error) {\n case (null) return #ok {\n var blocks = blocks;\n var blockIndex = self.blockIndex;\n var elementIndex = self.elementIndex\n };\n case (?e) return #err e\n }\n };\n j += 1\n };\n i += 1\n };\n\n switch (error) {\n case (null) return #ok {\n var blocks = blocks;\n var blockIndex = self.blockIndex;\n var elementIndex = self.elementIndex\n };\n case (?e) return #err e\n }\n };\n\n /// Returns a new list containing only the elements from `list` for which the predicate returns true.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3, 4]);\n /// let evenNumbers = List.filter(list, func x = x % 2 == 0);\n /// assert List.toArray(evenNumbers) == [2, 4];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `predicate` runs in `O(1)` time and space.\n public func filter(self : List, predicate : T -> Bool) : List {\n let filtered = empty();\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return filtered;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) if (predicate(x)) add(filtered, x);\n case null return filtered\n };\n j += 1\n };\n i += 1\n };\n\n filtered\n };\n\n /// Retains only the elements in `list` for which the predicate returns true.\n /// Modifies the original list in place.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3, 4]);\n /// List.retain(list, func x = x % 2 == 0);\n /// assert List.toArray(list) == [2, 4];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(sqrt(size))` if `list` was truncated otherwise `O(1)`\n public func retain(self : List, predicate : T -> Bool) {\n self.blockIndex := 1;\n self.elementIndex := 0;\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n label l while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) break l;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) if (predicate(x)) addUnsafe(self, x);\n case null break l\n };\n j += 1\n };\n i += 1\n };\n\n truncate(self, size(self))\n };\n\n /// Returns a new list containing all elements from `list` for which the function returns ?element.\n /// Discards all elements for which the function returns null.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3, 4]);\n /// let doubled = List.filterMap(list, func x = if (x % 2 == 0) ?(x * 2) else null);\n /// assert List.toArray(doubled) == [4, 8];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in `O(1)` time and space.\n public func filterMap(self : List, f : T -> ?R) : List {\n let filtered = empty();\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return filtered;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) switch (f(x)) {\n case (?y) add(filtered, y);\n case null {}\n };\n case null return filtered\n };\n j += 1\n };\n i += 1\n };\n\n filtered\n };\n\n /// Creates a new list by applying `k` to each element in `list`,\n /// and concatenating the resulting iterators in order.\n ///\n /// ```motoko include=import\n /// import Int \"mo:core/Int\"\n ///\n /// let list = List.fromArray([1, 2, 3, 4]);\n /// let newList = List.flatMap(list, func x = [x, -x].vals());\n /// assert List.equal(newList, List.fromArray([1, -1, 2, -2, 3, -3, 4, -4]), Int.equal);\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `k` runs in O(1) time and space.\n public func flatMap(self : List, k : T -> Types.Iter) : List {\n let result = empty();\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return result;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) for (y in k(x)) add(result, y);\n case _ return result\n };\n j += 1\n };\n i += 1\n };\n\n result\n };\n\n func indexByBlockElement(blockIndex : Nat, elementIndex : Nat) : Nat {\n let d = Nat32.fromNat(blockIndex);\n\n // We call all data blocks of the same capacity an \"epoch\". We number the epochs 0,1,2,...\n // A data block is in epoch e iff the data block has capacity 2 ** e.\n // Each epoch starting with epoch 1 spans exactly two super blocks.\n // Super block s falls in epoch ceil(s/2).\n\n // epoch of last data block\n // e = 32 - lz\n let lz = Nat32.bitcountLeadingZero(d / 3);\n\n // capacity of all prior epochs combined\n // capacity_before_e = 2 * 4 ** (e - 1) - 1\n\n // data blocks in all prior epochs combined\n // blocks_before_e = 3 * 2 ** (e - 1) - 2\n\n // then size = d * 2 ** e + i - c\n // where c = blocks_before_e * 2 ** e - capacity_before_e\n\n // there can be overflows, but the result is without overflows, so use addWrap and subWrap\n // we don't erase bits by >>, so to use <>> is ok\n Nat32.toNat((d -% (1 <>> lz)) <>> lz +% Nat32.fromNat(elementIndex))\n };\n\n /// Returns the current number of elements in the list.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// assert List.size(list) == 0\n /// ```\n ///\n /// Runtime: `O(1)` (with some internal calculations)\n public func size(self : List) : Nat {\n // due to the design of List (blockIndex, elementIndex) pair points\n // exactly to the place where size-th element should be added\n // so, it's the inlined version of indexByBlockElement\n let d = Nat32.fromNat(self.blockIndex);\n let lz = Nat32.bitcountLeadingZero(d / 3);\n Nat32.toNat((d -% (1 <>> lz)) <>> lz +% Nat32.fromNat(self.elementIndex))\n };\n\n func dataBlockSize(blockIndex : Nat) : Nat {\n // formula for the size of given blockIndex\n // don't call it for blockIndex == 0\n Nat32.toNat(1 <>> Nat32.bitcountLeadingZero(Nat32.fromNat(blockIndex) / 3))\n };\n\n func newIndexBlockLength(blockIndex : Nat32) : Nat {\n if (blockIndex <= 1) 2 else {\n let s = 30 - Nat32.bitcountLeadingZero(blockIndex);\n Nat32.toNat(((blockIndex >> s) +% 1) << s)\n }\n };\n\n func growIndexBlockIfNeeded(list : List) {\n if (list.blocks.size() == list.blockIndex) {\n let newBlocks = VarArray.repeat<[var ?T]>([var], newIndexBlockLength(Nat32.fromNat(list.blockIndex)));\n var i = 0;\n while (i < list.blockIndex) {\n newBlocks[i] := list.blocks[i];\n i += 1\n };\n list.blocks := newBlocks\n }\n };\n\n func shrinkIndexBlockIfNeeded(list : List) {\n let blockIndex = Nat32.fromNat(list.blockIndex);\n // kind of index of the first block in the super block\n if ((blockIndex << Nat32.bitcountLeadingZero(blockIndex)) << 2 == 0) {\n let newLength = newIndexBlockLength(blockIndex);\n if (newLength < list.blocks.size()) {\n let newBlocks = VarArray.repeat<[var ?T]>([var], newLength);\n var i = 0;\n while (i < newLength) {\n newBlocks[i] := list.blocks[i];\n i += 1\n };\n list.blocks := newBlocks\n }\n }\n };\n\n /// Adds a single element to the end of a List,\n /// allocating a new internal data block if needed,\n /// and resizing the internal index block if needed.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 0); // add 0 to list\n /// List.add(list, 1);\n /// List.add(list, 2);\n /// List.add(list, 3);\n /// assert List.toArray(list) == [0, 1, 2, 3];\n /// ```\n ///\n /// The maximum number of elements in a `List` is 2^32.\n ///\n /// Amortized Runtime: `O(1)`, Worst Case Runtime: `O(sqrt(n))`\n public func add(self : List, element : T) {\n var elementIndex = self.elementIndex;\n if (elementIndex == 0) {\n growIndexBlockIfNeeded(self);\n let blockIndex = self.blockIndex;\n\n // When removing last we keep one more data block, so can be not empty\n if (self.blocks[blockIndex].size() == 0) {\n self.blocks[blockIndex] := VarArray.repeat(\n null,\n dataBlockSize(blockIndex)\n )\n }\n };\n\n let lastDataBlock = self.blocks[self.blockIndex];\n\n lastDataBlock[elementIndex] := ?element;\n\n elementIndex += 1;\n if (elementIndex == lastDataBlock.size()) {\n elementIndex := 0;\n self.blockIndex += 1\n };\n self.elementIndex := elementIndex\n };\n\n // Add an element without checking and resizing the List\n private func addUnsafe(list : List, element : T) {\n var elementIndex = list.elementIndex;\n let lastDataBlock = list.blocks[list.blockIndex];\n lastDataBlock[elementIndex] := ?element;\n\n elementIndex += 1;\n if (elementIndex == lastDataBlock.size()) {\n elementIndex := 0;\n list.blockIndex += 1\n };\n list.elementIndex := elementIndex\n };\n\n /// Removes and returns the last item in the list or `null` if\n /// the list is empty.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// assert List.removeLast(list) == ?11;\n /// assert List.removeLast(list) == ?10;\n /// assert List.removeLast(list) == null;\n /// ```\n ///\n /// Amortized Runtime: `O(1)`, Worst Case Runtime: `O(sqrt(n))`\n ///\n /// Amortized Space: `O(1)`, Worst Case Space: `O(sqrt(n))`\n public func removeLast(self : List) : ?T {\n var elementIndex = self.elementIndex;\n if (elementIndex == 0) {\n var blockIndex = self.blockIndex;\n if (blockIndex == 1) {\n return null\n };\n\n shrinkIndexBlockIfNeeded(self);\n\n blockIndex -= 1;\n elementIndex := self.blocks[blockIndex].size();\n\n // Keep one totally empty block when removing\n if (blockIndex + 2 < self.blocks.size()) self.blocks[blockIndex + 2] := [var];\n\n self.blockIndex := blockIndex\n };\n elementIndex -= 1;\n\n let lastDataBlock = self.blocks[self.blockIndex];\n\n let element = lastDataBlock[elementIndex];\n lastDataBlock[elementIndex] := null;\n\n self.elementIndex := elementIndex;\n return element\n };\n\n func locate(index : Nat) : (Nat, Nat) {\n // see comments in tests\n let i = Nat32.fromNat(index);\n let lz = Nat32.bitcountLeadingZero(i);\n let lz2 = lz >> 1;\n if (lz & 1 == 0) {\n (Nat32.toNat(((i << lz2) >> 16) ^ (0x10000 >> lz2)), Nat32.toNat(i & (0xFFFF >> lz2)))\n } else {\n (Nat32.toNat(((i << lz2) >> 15) ^ (0x18000 >> lz2)), Nat32.toNat(i & (0x7FFF >> lz2)))\n }\n };\n\n /// Returns the element at index `index`. Indexing is zero-based.\n /// Traps if `index >= size`, error message may not be descriptive.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// assert List.at(list, 0) == 10;\n /// ```\n ///\n /// Runtime: `O(1)`\n public func at(self : List, index : Nat) : T {\n // inlined version of:\n // let (a,b) = locate(index);\n // switch(self.blocks[a][b]) {\n // case (?element) element;\n // case (null) Prim.trap \"\";\n // };\n let i = Nat32.fromNat(index);\n let lz = Nat32.bitcountLeadingZero(i);\n let lz2 = lz >> 1;\n switch (\n if (lz & 1 == 0) {\n self.blocks[Nat32.toNat(((i << lz2) >> 16) ^ (0x10000 >> lz2))][Nat32.toNat(i & (0xFFFF >> lz2))]\n } else {\n self.blocks[Nat32.toNat(((i << lz2) >> 15) ^ (0x18000 >> lz2))][Nat32.toNat(i & (0x7FFF >> lz2))]\n }\n ) {\n case (?result) return result;\n case (_) Prim.trap \"List index out of bounds in get\"\n }\n };\n\n /// Returns the element at index `index` as an option.\n /// Returns `null` when `index >= size`. Indexing is zero-based.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// assert List.get(list, 0) == ?10;\n /// assert List.get(list, 2) == null;\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n /// @deprecated M0235\n public func get(self : List, index : Nat) : ?T {\n // inlined version of locate\n let (a, b) = do {\n let i = Nat32.fromNat(index);\n let lz = Nat32.bitcountLeadingZero(i);\n let lz2 = lz >> 1;\n if (lz & 1 == 0) {\n (Nat32.toNat(((i << lz2) >> 16) ^ (0x10000 >> lz2)), Nat32.toNat(i & (0xFFFF >> lz2)))\n } else {\n (Nat32.toNat(((i << lz2) >> 15) ^ (0x18000 >> lz2)), Nat32.toNat(i & (0x7FFF >> lz2)))\n }\n };\n if (a < self.blockIndex or self.elementIndex != 0 and a == self.blockIndex) {\n self.blocks[a][b]\n } else null\n };\n\n /// Overwrites the current element at `index` with `element`.\n /// Traps if `index` >= size, error message may not be descriptive. Indexing is zero-based.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.put(list, 0, 20); // overwrites 10 at index 0 with 20\n /// assert List.toArray(list) == [20];\n /// ```\n ///\n /// Runtime: `O(1)`\n public func put(self : List, index : Nat, value : T) {\n let i = Nat32.fromNat(index);\n let lz = Nat32.bitcountLeadingZero(i);\n let lz2 = lz >> 1;\n let (block, element) = if (lz & 1 == 0) {\n (self.blocks[Nat32.toNat(((i << lz2) >> 16) ^ (0x10000 >> lz2))], Nat32.toNat(i & (0xFFFF >> lz2)))\n } else {\n (self.blocks[Nat32.toNat(((i << lz2) >> 15) ^ (0x18000 >> lz2))], Nat32.toNat(i & (0x7FFF >> lz2)))\n };\n\n switch (block[element]) {\n case (?_) block[element] := ?value;\n case _ Prim.trap \"List index out of bounds in put\"\n }\n };\n\n /// Sorts the elements in the list according to `compare`.\n /// Sort is deterministic, stable, and in-place.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.empty();\n /// List.add(list, 3);\n /// List.add(list, 1);\n /// List.add(list, 2);\n /// List.sortInPlace(list, Nat.compare);\n /// assert List.toArray(list) == [1, 2, 3];\n /// ```\n ///\n /// Runtime: O(size * log(size))\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func sortInPlace(self : List, compare : (implicit : (T, T) -> Types.Order)) {\n if (size(self) < 2) return;\n let array = toVarArray(self);\n\n VarArray.sortInPlace(array, compare);\n\n var index = 0;\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?_) db[j] := ?array[index];\n case _ return\n };\n index += 1;\n j += 1\n };\n i += 1\n }\n };\n\n /// Sorts the elements in the list according to `compare`.\n /// Sort is deterministic, stable, and in-place.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.empty();\n /// List.add(list, 3);\n /// List.add(list, 1);\n /// List.add(list, 2);\n /// let sorted = List.sort(list, Nat.compare);\n /// assert List.toArray(sorted) == [1, 2, 3];\n /// ```\n ///\n /// Runtime: O(size * log(size))\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func sort(self : List, compare : (implicit : (T, T) -> Types.Order)) : List {\n let array = toVarArray(self);\n VarArray.sortInPlace(array, compare);\n fromVarArray(array)\n };\n\n /// Checks whether the `list` is sorted.\n ///\n /// Example:\n /// ```\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1, 2, 3]);\n /// assert List.isSorted(list, Nat.compare);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func isSorted(self : List, compare : (implicit : (T, T) -> Types.Order)) : Bool {\n var prev = switch (first(self)) {\n case (?x) x;\n case _ return true\n };\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 2;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return true;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) switch (compare(x, prev)) {\n case (#greater or #equal) prev := x;\n case (#less) return false\n };\n case null return true\n };\n j += 1\n };\n i += 1\n };\n\n true\n };\n\n /// Remove adjacent duplicates from the `list`, if the `list` is sorted all elements will be unique.\n ///\n /// Example:\n /// ```\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1, 1, 2, 2, 3]);\n /// List.deduplicate(list, Nat.equal);\n /// assert List.equal(list, List.fromArray([1, 2, 3]), Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func deduplicate(self : List, equal : (implicit : (T, T) -> Bool)) {\n var prev = switch (first(self)) {\n case (?x) x;\n case _ return\n };\n\n self.blockIndex := 1;\n self.elementIndex := 0;\n\n addUnsafe(self, prev);\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 2;\n label l while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return break l;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) {\n if (not equal(x, prev)) addUnsafe(self, x);\n prev := x\n };\n case null break l\n };\n j += 1\n };\n i += 1\n };\n\n truncate(self, size(self))\n };\n\n /// Finds the first index of `element` in `list` using equality of elements defined\n /// by `equal`. Returns `null` if `element` is not found.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.empty();\n /// List.add(list, 1);\n /// List.add(list, 2);\n /// List.add(list, 3);\n /// List.add(list, 4);\n ///\n /// assert List.indexOf(list, Nat.equal, 3) == ?2;\n /// assert List.indexOf(list, Nat.equal, 5) == null;\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// *Runtime and space assumes that `equal` runs in `O(1)` time and space.\n public func indexOf(self : List, equal : (implicit : (T, T) -> Bool), element : T) : ?Nat {\n if (isEmpty(self)) return null;\n nextIndexOf(self, equal, element, 0)\n };\n\n /// Returns the index of the next occurence of `element` in the `list` starting from the `from` index (inclusive).\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let list = List.fromArray(['c', 'o', 'f', 'f', 'e', 'e']);\n /// assert List.nextIndexOf(list, Char.equal, 'c', 0) == ?0;\n /// assert List.nextIndexOf(list, Char.equal, 'f', 0) == ?2;\n /// assert List.nextIndexOf(list, Char.equal, 'f', 2) == ?2;\n /// assert List.nextIndexOf(list, Char.equal, 'f', 3) == ?3;\n /// assert List.nextIndexOf(list, Char.equal, 'f', 4) == null;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `equal` runs in O(1) time and space.\n public func nextIndexOf(self : List, equal : (implicit : (T, T) -> Bool), element : T, fromInclusive : Nat) : ?Nat {\n if (fromInclusive >= size(self)) Prim.trap \"List index out of bounds in nextIndexOf\";\n\n let (blockIndex, elementIndex) = locate(fromInclusive);\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = blockIndex;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return null;\n\n var j = if (i == blockIndex) elementIndex else 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) if (equal(x, element)) return ?indexByBlockElement(i, j);\n case null return null\n };\n j += 1\n };\n i += 1\n };\n null\n };\n\n /// Finds the last index of `element` in `list` using equality of elements defined\n /// by `equal`. Returns `null` if `element` is not found.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1, 2, 3, 4, 2, 2]);\n ///\n /// assert List.lastIndexOf(list, Nat.equal, 2) == ?5;\n /// assert List.lastIndexOf(list, Nat.equal, 5) == null;\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// *Runtime and space assumes that `equal` runs in `O(1)` time and space.\n public func lastIndexOf(self : List, equal : (implicit : (T, T) -> Bool), element : T) : ?Nat = prevIndexOf(\n self,\n equal,\n element,\n size(self)\n );\n\n /// Returns the index of the previous occurence of `element` in the `list` starting from the `from` index (exclusive).\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let list = List.fromArray(['c', 'o', 'f', 'f', 'e', 'e']);\n /// assert List.prevIndexOf(list, Char.equal, 'c', List.size(list)) == ?0;\n /// assert List.prevIndexOf(list, Char.equal, 'e', List.size(list)) == ?5;\n /// assert List.prevIndexOf(list, Char.equal, 'e', 5) == ?4;\n /// assert List.prevIndexOf(list, Char.equal, 'e', 4) == null;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func prevIndexOf(self : List, equal : (implicit : (T, T) -> Bool), element : T, fromExclusive : Nat) : ?Nat {\n if (fromExclusive > size(self)) Prim.trap \"List index out of bounds in prevIndexOf\";\n\n let blocks = self.blocks;\n let (blockIndex, elementIndex) = locate(fromExclusive);\n\n var i = blockIndex;\n if (elementIndex == 0) i -= 1;\n\n while (i > 0) {\n let db = blocks[i];\n let sz = db.size();\n var j = if (i == blockIndex) elementIndex else sz;\n while (j > 0) {\n j -= 1;\n switch (db[j]) {\n case (?x) if (equal(x, element)) return ?indexByBlockElement(i, j);\n case null Prim.trap INTERNAL_ERROR\n }\n };\n i -= 1\n };\n\n null\n };\n\n /// Returns the first value in `list` for which `predicate` returns true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// ```motoko include=import\n /// let list = List.fromArray([1, 9, 4, 8]);\n /// let found = List.find(list, func(x) { x > 8 });\n /// assert found == ?9;\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func find(self : List, predicate : T -> Bool) : ?T {\n Option.map(findIndex(self, predicate), func(i) = at(self, i))\n };\n\n /// Finds the index of the first element in `list` for which `predicate` is true.\n /// Returns `null` if no such element is found.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 1);\n /// List.add(list, 2);\n /// List.add(list, 3);\n /// List.add(list, 4);\n ///\n /// assert List.findIndex(list, func(i) { i % 2 == 0 }) == ?1;\n /// assert List.findIndex(list, func(i) { i > 5 }) == null;\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// *Runtime and space assumes that `predicate` runs in `O(1)` time and space.\n public func findIndex(self : List, predicate : T -> Bool) : ?Nat {\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return null;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) if (predicate(x)) return ?indexByBlockElement(i, j);\n case null return null\n };\n j += 1\n };\n i += 1\n };\n null\n };\n\n /// Finds the index of the last element in `list` for which `predicate` is true.\n /// Returns `null` if no such element is found.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 1);\n /// List.add(list, 2);\n /// List.add(list, 3);\n /// List.add(list, 4);\n ///\n /// assert List.findLastIndex(list, func(i) { i % 2 == 0 }) == ?3;\n /// assert List.findLastIndex(list, func(i) { i > 5 }) == null;\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// *Runtime and space assumes that `predicate` runs in `O(1)` time and space.\n public func findLastIndex(self : List, predicate : T -> Bool) : ?Nat {\n let blocks = self.blocks;\n let blockIndex = self.blockIndex;\n let elementIndex = self.elementIndex;\n\n var i = blockIndex;\n if (elementIndex == 0) i -= 1;\n\n while (i > 0) {\n let db = blocks[i];\n let sz = db.size();\n var j = if (i == blockIndex) elementIndex else sz;\n while (j > 0) {\n j -= 1;\n switch (db[j]) {\n case (?x) if (predicate(x)) return ?indexByBlockElement(i, j);\n case null Prim.trap INTERNAL_ERROR\n }\n };\n i -= 1\n };\n\n null\n };\n\n /// Performs binary search on a sorted list to find the index of the `element`.\n /// Returns `#found(index)` if the element is found, or `#insertionIndex(index)` with the index\n /// where the element would be inserted according to the ordering if not found.\n ///\n /// If there are multiple equal elements, no guarantee is made about which index is returned.\n /// The list must be sorted in ascending order according to the `compare` function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1, 3, 5, 7, 9, 11]);\n /// assert List.binarySearch(list, Nat.compare, 5) == #found(2);\n /// assert List.binarySearch(list, Nat.compare, 6) == #insertionIndex(3);\n /// ```\n ///\n /// Runtime: `O(log(size))`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `compare` runs in `O(1)` time and space.\n public func binarySearch(self : List, compare : (implicit : (T, T) -> Types.Order), element : T) : {\n #found : Nat;\n #insertionIndex : Nat\n } {\n // We call all data blocks of the same capacity an \"epoch\". We number the epochs 0,1,2,...\n // A data block is in epoch e iff the data block has capacity 2 ** e.\n // Each epoch starting with epoch 1 spans exactly two super blocks.\n // Super block s falls in epoch ceil(s/2).\n // Each epoch except e=0 contains 3 * 2 ** (e - 1) data blocks\n\n let blocks = self.blocks;\n let b = self.blockIndex - (if (self.elementIndex == 0) 1 else 0) : Nat;\n\n // block index x such that blocks[x][0] <= element\n let lessOrEqual = do {\n // epoch of the last data block\n let epoch = 32 - Nat32.bitcountLeadingZero(Nat32.fromNat(b) / 3);\n // initially block index is the first in the epoch\n var lessOrEqual = Nat32.toNat((1 << epoch) / 2);\n\n // lessOrEqual * 3 is always the first data block in an epoch\n // while the first element of the first data block in an epoch is actually grater then element go to the previous epoch\n // as the last epoch is half of the array we each iteration of the search divides the interval in four\n while (lessOrEqual != 0 and compare(Option.unwrap(blocks[lessOrEqual * 3][0]), element) == #greater) {\n lessOrEqual /= 2\n };\n\n lessOrEqual * 3\n };\n\n // Linear search in e=0, there are just two elements\n if (lessOrEqual == 0) {\n let to = Nat.min(size(self), 2);\n for (i in Nat.range(0, to)) {\n let x = at(self, i);\n switch (compare(x, element)) {\n case (#less) {};\n case (#equal) return #found(i);\n case (#greater) return #insertionIndex(i)\n }\n };\n return #insertionIndex(to)\n };\n\n // binary search the blockIndex in [left, right)\n let blockIndex = do {\n // guarateed less or equal to element\n var left = lessOrEqual;\n // right is either outside of the array or greater than element\n var right = Nat.min(b + 1, lessOrEqual * 2);\n while (right - left : Nat > 1) {\n let mid = (left + right) / 2;\n switch (compare(Option.unwrap(blocks[mid][0]), element)) {\n case (#less) left := mid;\n case (#greater) right := mid;\n case (#equal) return #found(indexByBlockElement(mid, 0))\n }\n };\n left\n };\n\n // binary search the elementIndex\n let elementIndex = do {\n let block = blocks[blockIndex];\n var left = 0;\n var right = if (blockIndex == self.blockIndex) self.elementIndex else block.size();\n while (left != right) {\n let mid = (left + right) / 2;\n switch (compare(Option.unwrap(block[mid]), element)) {\n case (#less) left := mid + 1;\n case (#greater) right := mid;\n case (#equal) return #found(indexByBlockElement(blockIndex, mid))\n }\n };\n left\n };\n\n #insertionIndex(indexByBlockElement(blockIndex, elementIndex))\n };\n\n /// Returns true iff every element in `list` satisfies `predicate`.\n /// In particular, if `list` is empty the function returns `true`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 2);\n /// List.add(list, 3);\n /// List.add(list, 4);\n ///\n /// assert List.all(list, func x { x > 1 });\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func all(self : List, predicate : T -> Bool) : Bool {\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return true;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) if (not predicate(x)) return false;\n case null return true\n };\n j += 1\n };\n i += 1\n };\n true\n };\n\n /// Returns true iff some element in `list` satisfies `predicate`.\n /// In particular, if `list` is empty the function returns `false`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 2);\n /// List.add(list, 3);\n /// List.add(list, 4);\n ///\n /// assert List.any(list, func x { x > 3 });\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func any(self : List, predicate : T -> Bool) : Bool = findIndex(self, predicate) != null;\n\n /// Returns an Iterator (`Iter`) over the elements of a List.\n /// Iterator provides a single method `next()`, which returns\n /// elements in order, or `null` when out of elements to iterate over.\n ///\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// List.add(list, 12);\n ///\n /// var sum = 0;\n /// for (element in List.values(list)) {\n /// sum += element;\n /// };\n /// assert sum == 33;\n /// ```\n ///\n /// Note: This does not create a snapshot. If the returned iterator is not consumed at once,\n /// and instead the consumption of the iterator is interleaved with other operations on the\n /// List, then this may lead to unexpected results.\n ///\n /// Runtime: `O(1)`\n public func values(self : List) : Types.Iter = object {\n let blocks = self.blocks.size();\n var blockIndex = 0;\n var elementIndex = 0;\n var db : [var ?T] = self.blocks[blockIndex];\n var dbSize = db.size();\n\n public func next() : ?T {\n if (elementIndex == dbSize) {\n blockIndex += 1;\n if (blockIndex >= blocks) return null;\n db := self.blocks[blockIndex];\n dbSize := db.size();\n if (dbSize == 0) return null;\n elementIndex := 0\n };\n switch (db[elementIndex]) {\n case (?x) {\n elementIndex += 1;\n return ?x\n };\n case (_) return null\n }\n }\n };\n\n /// Returns an Iterator (`Iter`) over the items (index-value pairs) in the list.\n /// Each item is a tuple of `(index, value)`. The iterator provides a single method\n /// `next()` which returns elements in order, or `null` when out of elements.\n ///\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// List.add(list, 12);\n /// assert Iter.toArray(List.enumerate(list)) == [(0, 10), (1, 11), (2, 12)];\n /// ```\n ///\n /// Note: This does not create a snapshot. If the returned iterator is not consumed at once,\n /// and instead the consumption of the iterator is interleaved with other operations on the\n /// List, then this may lead to unexpected results.\n ///\n /// Runtime: `O(1)`\n ///\n /// Warning: Allocates memory on the heap to store ?(Nat, T).\n public func enumerate(self : List) : Types.Iter<(Nat, T)> = object {\n let blocks = self.blocks.size();\n var blockIndex = 0;\n var elementIndex = 0;\n var size = 0;\n var db : [var ?T] = [var];\n var i = 0;\n\n public func next() : ?(Nat, T) {\n if (elementIndex == size) {\n blockIndex += 1;\n if (blockIndex >= blocks) return null;\n db := self.blocks[blockIndex];\n size := db.size();\n if (size == 0) return null;\n elementIndex := 0\n };\n switch (db[elementIndex]) {\n case (?x) {\n let ret = ?(i, x);\n elementIndex += 1;\n i += 1;\n return ret\n };\n case (_) return null\n }\n }\n };\n\n /// Returns an Iterator (`Iter`) over the elements of the list in reverse order.\n /// The iterator provides a single method `next()` which returns elements from\n /// last to first, or `null` when out of elements.\n ///\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// List.add(list, 12);\n ///\n /// var sum = 0;\n /// for (element in List.reverseValues(list)) {\n /// sum += element;\n /// };\n /// assert sum == 33;\n /// ```\n ///\n /// Note: This does not create a snapshot. If the returned iterator is not consumed at once,\n /// and instead the consumption of the iterator is interleaved with other operations on the\n /// List, then this may lead to unexpected results.\n ///\n /// Runtime: `O(1)`\n public func reverseValues(self : List) : Types.Iter = object {\n var blockIndex = self.blockIndex;\n var elementIndex = self.elementIndex;\n var db : [var ?T] = if (blockIndex < self.blocks.size()) {\n self.blocks[blockIndex]\n } else { [var] };\n\n public func next() : ?T {\n if (elementIndex != 0) {\n elementIndex -= 1\n } else {\n blockIndex -= 1;\n if (blockIndex == 0) return null;\n db := self.blocks[blockIndex];\n elementIndex := db.size() - 1\n };\n\n db[elementIndex]\n }\n };\n\n /// Returns an Iterator (`Iter`) over the items in reverse order, i.e. pairs of index and value.\n /// Iterator provides a single method `next()`, which returns\n /// elements in reverse order, or `null` when out of elements to iterate over.\n ///\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// List.add(list, 12);\n /// assert Iter.toArray(List.reverseEnumerate(list)) == [(2, 12), (1, 11), (0, 10)];\n /// ```\n ///\n /// Note: This does not create a snapshot. If the returned iterator is not consumed at once,\n /// and instead the consumption of the iterator is interleaved with other operations on the\n /// List, then this may lead to unexpected results.\n ///\n /// Runtime: `O(1)`\n ///\n /// Warning: Allocates memory on the heap to store ?(T, Nat).\n public func reverseEnumerate(self : List) : Types.Iter<(Nat, T)> = object {\n var i = size(self);\n var blockIndex = self.blockIndex;\n var elementIndex = self.elementIndex;\n var db : [var ?T] = if (blockIndex < self.blocks.size()) {\n self.blocks[blockIndex]\n } else { [var] };\n\n public func next() : ?(Nat, T) {\n if (elementIndex != 0) {\n elementIndex -= 1\n } else {\n blockIndex -= 1;\n if (blockIndex == 0) return null;\n db := self.blocks[blockIndex];\n elementIndex := db.size() - 1\n };\n switch (db[elementIndex]) {\n case (?x) {\n i -= 1;\n return ?(i, x)\n };\n case (_) Prim.trap INTERNAL_ERROR\n }\n }\n };\n\n /// Returns an Iterator (`Iter`) over the indices (keys) of the list.\n /// The iterator provides a single method `next()` which returns indices\n /// from 0 to size-1, or `null` when out of elements.\n ///\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let list = List.empty();\n /// List.add(list, \"A\");\n /// List.add(list, \"B\");\n /// List.add(list, \"C\");\n /// Iter.toArray(List.keys(list)) // [0, 1, 2]\n /// ```\n ///\n /// Note: This does not create a snapshot. If the returned iterator is not consumed at once,\n /// and instead the consumption of the iterator is interleaved with other operations on the\n /// List, then this may lead to unexpected results.\n ///\n /// Runtime: `O(1)`\n public func keys(self : List) : Types.Iter = Nat.range(0, size(self));\n\n /// Creates a new List containing all elements from the provided iterator.\n /// Elements are added in the order they are returned by the iterator.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let array = [1, 1, 1];\n /// let iter = array.vals();\n ///\n /// let list = List.fromIter(iter);\n /// assert Iter.toArray(List.values(list)) == [1, 1, 1];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func fromIter(iter : Types.Iter) : List {\n let list = empty();\n for (element in iter) add(list, element);\n list\n };\n\n /// Convert an iterator to a new mutable List.\n /// Elements are added in the order they are returned by the iterator.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let array = [1, 1, 1];\n /// let iter = array.vals();\n ///\n /// let list = iter.toList();\n /// assert Iter.toArray(List.values(list)) == [1, 1, 1];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func toList(self : Types.Iter) : List {\n fromIter(self)\n };\n\n /// Appends all elements from `added` to the end of `list`.\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2]);\n /// let added = List.fromArray([3, 4]);\n /// List.append(list, added);\n /// assert List.toArray(list) == [1, 2, 3, 4];\n /// ```\n ///\n /// Runtime: `O(size(added))`\n ///\n /// Space: `O(size(added))`\n public func append(self : List, added : List) {\n reserve(self, size(added));\n\n let blocks = added.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) addUnsafe(self, x);\n case null return\n };\n j += 1\n };\n i += 1\n }\n };\n\n /// Adds all elements from the provided iterator to the end of the list.\n /// Elements are added in the order they are returned by the iterator.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let array = [1, 1, 1];\n /// let iter = array.vals();\n /// let list = List.repeat(2, 1);\n ///\n /// List.addAll(list, iter);\n /// assert Iter.toArray(List.values(list)) == [2, 1, 1, 1];\n /// ```\n ///\n /// The maximum number of elements in a `List` is 2^32.\n ///\n /// Runtime: `O(size)`, where n is the size of iter.\n public func addAll(self : List, iter : Types.Iter) {\n for (element in iter) add(self, element)\n };\n\n /// Creates a new immutable array containing all elements from the list.\n /// Elements appear in the same order as in the list.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3]);\n ///\n /// assert List.toArray(list) == [1, 2, 3];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func toArray(self : List) : [T] {\n var blockIndex = 0;\n var elementIndex = 0;\n var sz = 0;\n var db : [var ?T] = [var];\n\n func generator(_ : Nat) : T {\n if (elementIndex == sz) {\n blockIndex += 1;\n db := self.blocks[blockIndex];\n sz := db.size();\n elementIndex := 0\n };\n switch (db[elementIndex]) {\n case (?x) {\n elementIndex += 1;\n return x\n };\n case (_) Prim.trap INTERNAL_ERROR\n }\n };\n\n Array.tabulate(size(self), generator)\n };\n\n /// Creates a List containing elements from an Array.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let array = [2, 3];\n /// let list = List.fromArray(array);\n /// assert Iter.toArray(List.values(list)) == [2, 3];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func fromArray(array : [T]) : List {\n let (blockIndex, elementIndex) = locate(array.size());\n\n let blocks = newIndexBlockLength(Nat32.fromNat(if (elementIndex == 0) { blockIndex - 1 } else blockIndex));\n let dataBlocks = VarArray.repeat<[var ?T]>([var], blocks);\n\n var i = 1;\n var pos = 0;\n\n while (i < blockIndex) {\n let len = dataBlockSize(i);\n dataBlocks[i] := VarArray.tabulate(len, func i = ?array[pos + i]);\n pos += len;\n i += 1\n };\n if (elementIndex != 0 and blockIndex < blocks) {\n dataBlocks[i] := VarArray.tabulate(\n dataBlockSize(i),\n func i = if (i < elementIndex) ?array[pos + i] else null\n )\n };\n\n {\n var blocks = dataBlocks;\n var blockIndex = blockIndex;\n var elementIndex = elementIndex\n }\n };\n\n /// Creates a new mutable array containing all elements from the list.\n /// Elements appear in the same order as in the list.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n ///\n /// let list = List.fromArray([1, 2, 3]);\n ///\n /// let varArray = List.toVarArray(list);\n /// assert Array.fromVarArray(varArray) == [1, 2, 3];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func toVarArray(self : List) : [var T] {\n let ?fs = first(self) else return [var];\n\n let array = VarArray.repeat(fs, size(self));\n\n var index = 0;\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return array;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) array[index] := x;\n case null return array\n };\n j += 1;\n index += 1\n };\n i += 1\n };\n array\n };\n\n /// Creates a new List containing all elements from the mutable array.\n /// Elements appear in the same order as in the array.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let array = [var 2, 3];\n /// let list = List.fromVarArray(array);\n /// assert Iter.toArray(List.values(list)) == [2, 3];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func fromVarArray(array : [var T]) : List {\n let (blockIndex, elementIndex) = locate(array.size());\n\n let blocks = newIndexBlockLength(Nat32.fromNat(if (elementIndex == 0) { blockIndex - 1 } else blockIndex));\n let dataBlocks = VarArray.repeat<[var ?T]>([var], blocks);\n\n func makeBlock(array : [var T], p : Nat, len : Nat, fill : Nat) : [var ?T] {\n let block = VarArray.repeat(null, len);\n var j = 0;\n var pos = p;\n while (j < fill) {\n block[j] := ?array[pos];\n j += 1;\n pos += 1\n };\n block\n };\n\n var i = 1;\n var pos = 0;\n\n while (i < blockIndex) {\n let len = dataBlockSize(i);\n dataBlocks[i] := makeBlock(array, pos, len, len);\n pos += len;\n i += 1\n };\n if (elementIndex != 0) {\n dataBlocks[i] := makeBlock(array, pos, dataBlockSize(i), elementIndex)\n };\n\n {\n var blocks = dataBlocks;\n var blockIndex = blockIndex;\n var elementIndex = elementIndex\n }\n };\n\n /// Returns the first element of `list`, or `null` if the list is empty.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert List.first(List.fromArray([1, 2, 3])) == ?1;\n /// assert List.first(List.empty()) == null;\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n public func first(self : List) : ?T {\n if (self.blockIndex == 1) null else self.blocks[1][0]\n };\n\n /// Returns the last element of `list`, or `null` if the list is empty.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert List.last(List.fromArray([1, 2, 3])) == ?3;\n /// assert List.last(List.empty()) == null;\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n public func last(self : List) : ?T {\n let e = self.elementIndex;\n if (e > 0) return self.blocks[self.blockIndex][e - 1];\n\n let b = self.blockIndex - 1 : Nat;\n if (b == 0) null else {\n let block = self.blocks[b];\n block[block.size() - 1]\n }\n };\n\n /// Applies `f` to each element in `list`.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Debug \"mo:core/Debug\";\n ///\n /// let list = List.fromArray([1, 2, 3]);\n ///\n /// List.forEach(list, func(x) {\n /// Debug.print(Nat.toText(x)); // prints each element in list\n /// });\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func forEach(self : List, f : T -> ()) {\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) f(x);\n case null return\n };\n j += 1\n };\n i += 1\n }\n };\n\n /// Applies `f` to each item `(i, x)` in `list` where `i` is the key\n /// and `x` is the value.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Debug \"mo:core/Debug\";\n ///\n /// let list = List.fromArray([1, 2, 3]);\n ///\n /// List.forEachEntry(list, func (i,x) {\n /// // prints each item (i,x) in list\n /// Debug.print(Nat.toText(i) # Nat.toText(x));\n /// });\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func forEachEntry(self : List, f : (Nat, T) -> ()) {\n var index = 0;\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) f(index, x);\n case null return\n };\n j += 1;\n index += 1\n };\n i += 1\n }\n };\n\n func actualInterval(fromInclusive : Int, toExclusive : Int, size : Nat) : (Nat, Nat) {\n let startInt = if (fromInclusive < 0) {\n let s = size + fromInclusive;\n if (s < 0) { 0 } else { s }\n } else {\n if (fromInclusive > size) { size } else { fromInclusive }\n };\n let endInt = if (toExclusive < 0) {\n let e = size + toExclusive;\n if (e < 0) { 0 } else { e }\n } else {\n if (toExclusive > size) { size } else { toExclusive }\n };\n (Prim.abs(startInt), Prim.abs(endInt))\n };\n\n /// Returns an iterator over a slice of `list` starting at `fromInclusive` up to (but not including) `toExclusive`.\n ///\n /// Negative indices are relative to the end of the list. For example, `-1` corresponds to the last element in the list.\n ///\n /// If the indices are out of bounds, they are clamped to the list bounds.\n /// If the first index is greater than the second, the function returns an empty iterator.\n ///\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3, 4, 5]);\n /// let iter1 = List.range(list, 3, List.size(list));\n /// assert iter1.next() == ?4;\n /// assert iter1.next() == ?5;\n /// assert iter1.next() == null;\n ///\n /// let iter2 = List.range(list, 3, -1);\n /// assert iter2.next() == ?4;\n /// assert iter2.next() == null;\n ///\n /// let iter3 = List.range(list, 0, 0);\n /// assert iter3.next() == null;\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func range(self : List, fromInclusive : Int, toExclusive : Int) : Types.Iter = object {\n let (start, end) = actualInterval(fromInclusive, toExclusive, size(self));\n let blocks = self.blocks.size();\n var blockIndex = 0;\n var elementIndex = 0;\n if (start != 0) {\n let (block, element) = locate(start - 1);\n blockIndex := block;\n elementIndex := element + 1\n };\n var db : [var ?T] = self.blocks[blockIndex];\n var dbSize = db.size();\n var index = fromInclusive;\n\n public func next() : ?T {\n if (index >= end) return null;\n index += 1;\n\n if (elementIndex == dbSize) {\n blockIndex += 1;\n if (blockIndex >= blocks) return null;\n db := self.blocks[blockIndex];\n dbSize := db.size();\n if (dbSize == 0) return null;\n elementIndex := 0\n };\n let ret = db[elementIndex];\n elementIndex += 1;\n ret\n }\n };\n\n func sliceToArrayBase(self : List, start : Nat) : {\n next(i : Nat) : T\n } = object {\n var blockIndex = 0;\n var elementIndex = 0;\n if (start != 0) {\n let (block, element) = locate(start - 1);\n blockIndex := block;\n elementIndex := element + 1\n };\n var db : [var ?T] = self.blocks[blockIndex];\n var dbSize = db.size();\n\n public func next(i : Nat) : T {\n if (elementIndex == dbSize) {\n blockIndex += 1;\n db := self.blocks[blockIndex];\n dbSize := db.size();\n elementIndex := 0\n };\n switch (db[elementIndex]) {\n case (?x) {\n elementIndex += 1;\n return x\n };\n case null Prim.trap INTERNAL_ERROR\n }\n }\n };\n\n /// Returns a new array containing elements from `list` starting at index `fromInclusive` up to (but not including) index `toExclusive`.\n /// If the indices are out of bounds, they are clamped to the array bounds.\n ///\n /// ```motoko include=import\n /// let array = List.fromArray([1, 2, 3, 4, 5]);\n ///\n /// let slice1 = List.sliceToArray(array, 1, 4);\n /// assert slice1 == [2, 3, 4];\n ///\n /// let slice2 = List.sliceToArray(array, 1, -1);\n /// assert slice2 == [2, 3, 4];\n /// ```\n ///\n /// Runtime: O(toExclusive - fromInclusive)\n ///\n /// Space: O(toExclusive - fromInclusive)\n public func sliceToArray(self : List, fromInclusive : Int, toExclusive : Int) : [T] {\n let (start, end) = actualInterval(fromInclusive, toExclusive, size(self));\n Array.tabulate(end - start, sliceToArrayBase(self, start).next)\n };\n\n /// Returns a new var array containing elements from `list` starting at index `fromInclusive` up to (but not including) index `toExclusive`.\n /// If the indices are out of bounds, they are clamped to the array bounds.\n ///\n /// ```motoko include=import\n /// import VarArray \"mo:core/VarArray\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = List.fromArray([1, 2, 3, 4, 5]);\n ///\n /// let slice1 = List.sliceToVarArray(array, 1, 4);\n /// assert VarArray.equal(slice1, [var 2, 3, 4], Nat.equal);\n ///\n /// let slice2 = List.sliceToVarArray(array, 1, -1);\n /// assert VarArray.equal(slice2, [var 2, 3, 4], Nat.equal);\n /// ```\n ///\n /// Runtime: O(toExclusive - fromInclusive)\n ///\n /// Space: O(toExclusive - fromInclusive)\n public func sliceToVarArray(self : List, fromInclusive : Int, toExclusive : Int) : [var T] {\n let (start, end) = actualInterval(fromInclusive, toExclusive, size(self));\n VarArray.tabulate(end - start, sliceToArrayBase(self, start).next)\n };\n\n /// Like `forEachEntryRev` but iterates through the list in reverse order,\n /// from end to beginning.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Debug \"mo:core/Debug\";\n ///\n /// let list = List.fromArray([1, 2, 3]);\n ///\n /// List.reverseForEachEntry(list, func (i,x) {\n /// // prints each item (i,x) in list\n /// Debug.print(Nat.toText(i) # Nat.toText(x));\n /// });\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func reverseForEachEntry(self : List, f : (Nat, T) -> ()) {\n var index = 0;\n\n let blocks = self.blocks;\n let blockIndex = self.blockIndex;\n let elementIndex = self.elementIndex;\n\n var i = blockIndex;\n if (elementIndex == 0) i -= 1;\n\n while (i > 0) {\n let db = blocks[i];\n let sz = db.size();\n var j = if (i == blockIndex) elementIndex else sz;\n while (j > 0) {\n j -= 1;\n switch (db[j]) {\n case (?x) f(index, x);\n case null Prim.trap INTERNAL_ERROR\n };\n index += 1\n };\n i -= 1\n }\n };\n\n /// Applies `f` to each element in `list` in reverse order.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Debug \"mo:core/Debug\";\n ///\n /// let list = List.fromArray([1, 2, 3]);\n ///\n /// List.reverseForEach(list, func (x) {\n /// Debug.print(Nat.toText(x)); // prints each element in list in reverse order\n /// });\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func reverseForEach(self : List, f : T -> ()) {\n let blocks = self.blocks;\n let blockIndex = self.blockIndex;\n let elementIndex = self.elementIndex;\n\n var i = blockIndex;\n if (elementIndex == 0) i -= 1;\n\n while (i > 0) {\n let db = blocks[i];\n let sz = db.size();\n var j = if (i == blockIndex) elementIndex else sz;\n while (j > 0) {\n j -= 1;\n switch (db[j]) {\n case (?x) f(x);\n case null Prim.trap INTERNAL_ERROR\n }\n };\n i -= 1\n }\n };\n\n /// Executes the closure over a slice of `list` starting at `fromInclusive` up to (but not including) `toExclusive`.\n ///\n /// ```motoko include=import\n /// import Debug \"mo:core/Debug\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1, 2, 3, 4, 5]);\n /// List.forEachInRange(list, func x = Debug.print(Nat.toText(x)), 1, 2); // prints 2 and 3\n /// ```\n ///\n /// Runtime: `O(toExclusive - fromExclusive)`\n ///\n /// Space: `O(1)`\n public func forEachInRange(self : List, f : T -> (), fromInclusive : Nat, toExclusive : Nat) {\n if (not (fromInclusive <= toExclusive and toExclusive <= size(self))) Prim.trap(\"Invalid range\");\n\n func traverseBlock(block : [var ?T], f : T -> (), from : Nat, to : Nat) {\n var i = from;\n while (i < to) {\n switch (block[i]) {\n case (?value) f(value);\n case null Prim.trap(INTERNAL_ERROR)\n };\n i += 1\n }\n };\n\n let (fromBlock, fromElement) = locate(fromInclusive);\n let (toBlock, toElement) = locate(toExclusive);\n\n let blocks = self.blocks;\n let sz = blocks.size();\n\n if (fromBlock == toBlock) {\n if (fromBlock < sz) traverseBlock(blocks[fromBlock], f, fromElement, toElement);\n return\n };\n\n traverseBlock(blocks[fromBlock], f, fromElement, blocks[fromBlock].size());\n\n var i = fromBlock + 1;\n let to = Nat.min(toBlock, sz);\n while (i < to) {\n traverseBlock(blocks[i], f, 0, blocks[i].size());\n i += 1\n };\n\n if (toBlock < sz) traverseBlock(blocks[toBlock], f, 0, toElement)\n };\n\n /// Returns true if the list contains the specified element according to the provided\n /// equality function. Uses the provided `equal` function to compare elements.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.empty();\n /// List.add(list, 2);\n /// List.add(list, 0);\n /// List.add(list, 3);\n ///\n /// assert List.contains(list, Nat.equal, 2);\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `equal` runs in O(1) time and space.\n public func contains(self : List, equal : (implicit : (T, T) -> Bool), element : T) : Bool {\n Option.isSome(indexOf(self, equal, element))\n };\n\n /// Returns the greatest element in the list according to the ordering defined by `compare`.\n /// Returns `null` if the list is empty.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.empty();\n /// List.add(list, 1);\n /// List.add(list, 2);\n ///\n /// assert List.max(list, Nat.compare) == ?2;\n /// assert List.max(List.empty(), Nat.compare) == null;\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func max(self : List, compare : (implicit : (T, T) -> Types.Order)) : ?T {\n var maxSoFar : T = switch (first(self)) {\n case (?x) x;\n case null return null\n };\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 2;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return ?maxSoFar;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) switch (compare(x, maxSoFar)) {\n case (#greater) maxSoFar := x;\n case _ {}\n };\n case null return ?maxSoFar\n };\n j += 1\n };\n i += 1\n };\n\n ?maxSoFar\n };\n\n /// Returns the least element in the list according to the ordering defined by `compare`.\n /// Returns `null` if the list is empty.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.empty();\n /// List.add(list, 1);\n /// List.add(list, 2);\n ///\n /// assert List.min(list, Nat.compare) == ?1;\n /// assert List.min(List.empty(), Nat.compare) == null;\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func min(self : List, compare : (implicit : (T, T) -> Types.Order)) : ?T {\n var minSoFar : T = switch (first(self)) {\n case (?x) x;\n case null return null\n };\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 2;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return ?minSoFar;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) switch (compare(x, minSoFar)) {\n case (#less) minSoFar := x;\n case _ {}\n };\n case null return ?minSoFar\n };\n j += 1\n };\n i += 1\n };\n\n ?minSoFar\n };\n\n /// Tests if two lists are equal by comparing their elements using the provided `equal` function.\n /// Returns true if and only if both lists have the same size and all corresponding elements\n /// are equal according to the provided function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list1 = List.fromArray([1,2]);\n /// let list2 = List.empty();\n /// List.add(list2, 1);\n /// List.add(list2, 2);\n ///\n /// assert List.equal(list1, list2, Nat.equal);\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `equal` runs in O(1) time and space.\n public func equal(self : List, other : List, equal : (implicit : (T, T) -> Bool)) : Bool {\n if (size(self) != size(other)) return false;\n\n let blocks1 = self.blocks;\n let blocks2 = other.blocks;\n let blockCount = Nat.min(blocks1.size(), blocks2.size());\n\n var i = 1;\n while (i < blockCount) {\n let db1 = blocks1[i];\n let db2 = blocks2[i];\n let sz = Nat.min(db1.size(), db2.size());\n if (sz == 0) return true;\n\n var j = 0;\n while (j < sz) {\n switch (db1[j], db2[j]) {\n case (?x, ?y) if (not equal(x, y)) return false;\n case (_, _) return true\n };\n j += 1\n };\n i += 1\n };\n return true\n };\n\n /// Compares two lists lexicographically using the provided `compare` function.\n /// Elements are compared pairwise until a difference is found or one list ends.\n /// If all elements compare equal, the shorter list is considered less than the longer list.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list1 = List.fromArray([0, 1]);\n /// let list2 = List.fromArray([2]);\n /// let list3 = List.fromArray([0, 1, 2]);\n ///\n /// assert List.compare(list1, list2, Nat.compare) == #less;\n /// assert List.compare(list1, list3, Nat.compare) == #less;\n /// assert List.compare(list2, list3, Nat.compare) == #greater;\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func compare(self : List, other : List, compare : (implicit : (T, T) -> Types.Order)) : Types.Order {\n let blocks1 = self.blocks;\n let blocks2 = other.blocks;\n let blockCount = Nat.min(blocks1.size(), blocks2.size());\n\n var i = 1;\n label l while (i < blockCount) {\n let db1 = blocks1[i];\n let db2 = blocks2[i];\n let sz = Nat.min(db1.size(), db2.size());\n if (sz == 0) break l;\n\n var j = 0;\n while (j < sz) {\n switch (db1[j], db2[j]) {\n case (?x, ?y) switch (compare(x, y)) {\n case (#less) return #less;\n case (#greater) return #greater;\n case _ {}\n };\n case (_, _) break l\n };\n j += 1\n };\n i += 1\n };\n return Nat.compare(size(self), size(other))\n };\n\n /// Creates a textual representation of `list`, using `toText` to recursively\n /// convert the elements into Text.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1,2,3,4]);\n ///\n /// assert List.toText(list, Nat.toText) == \"List[1, 2, 3, 4]\";\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `toText` runs in O(1) time and space.\n public func toText(self : List, toText : (implicit : T -> Text)) : Text {\n var text = switch (first(self)) {\n case (?x) toText(x);\n case null \"\"\n };\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 2;\n label l while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) break l;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) text #= \", \" # toText(x);\n case null break l\n };\n j += 1\n };\n i += 1\n };\n\n \"List[\" # text # \"]\"\n };\n\n /// Collapses the elements in `list` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// left to right.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1,2,3]);\n ///\n /// assert List.foldLeft(list, \"\", func (acc, x) { acc # Nat.toText(x)}) == \"123\";\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `combine` runs in O(1)` time and space.\n public func foldLeft(self : List, base : A, combine : (A, T) -> A) : A {\n var accumulation = base;\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return accumulation;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) accumulation := combine(accumulation, x);\n case null return accumulation\n };\n j += 1\n };\n i += 1\n };\n accumulation\n };\n\n /// Collapses the elements in `list` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// right to left.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1,2,3]);\n ///\n /// assert List.foldRight(list, \"\", func (x, acc) { Nat.toText(x) # acc }) == \"123\";\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `combine` runs in O(1)` time and space.\n public func foldRight(self : List, base : A, combine : (T, A) -> A) : A {\n var accumulation = base;\n\n let blocks = self.blocks;\n let blockIndex = self.blockIndex;\n let elementIndex = self.elementIndex;\n\n var i = blockIndex;\n if (elementIndex == 0) i -= 1;\n\n while (i > 0) {\n let db = blocks[i];\n let sz = db.size();\n var j = if (i == blockIndex) elementIndex else sz;\n while (j > 0) {\n j -= 1;\n switch (db[j]) {\n case (?x) accumulation := combine(x, accumulation);\n case null Prim.trap INTERNAL_ERROR\n }\n };\n i -= 1\n };\n\n accumulation\n };\n\n /// Reverses the order of elements in `list` by overwriting in place.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let list = List.fromArray([1,2,3]);\n ///\n /// List.reverseInPlace(list);\n /// assert Iter.toArray(List.values(list)) == [3, 2, 1];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n public func reverseInPlace(self : List) {\n let vsize = size(self);\n if (vsize <= 1) return;\n\n let (finalBlock, finalElement) = locate(vsize / 2);\n\n let blocks = self.blocks;\n\n var blockIndexBack = self.blockIndex;\n var elementIndexBack = self.elementIndex;\n var dbBack : [var ?T] = if (blockIndexBack < self.blocks.size()) {\n self.blocks[blockIndexBack]\n } else { [var] };\n\n var i = 1;\n var index = 0;\n while (i <= finalBlock) {\n let db = blocks[i];\n let sz = if (i == finalBlock) finalElement else db.size();\n\n var j = 0;\n while (j < sz) {\n if (elementIndexBack == 0) {\n blockIndexBack -= 1;\n dbBack := self.blocks[blockIndexBack];\n elementIndexBack := dbBack.size() - 1\n } else {\n elementIndexBack -= 1\n };\n\n let temp = db[j];\n db[j] := dbBack[elementIndexBack];\n dbBack[elementIndexBack] := temp;\n\n j += 1;\n index += 1\n };\n i += 1\n }\n };\n\n /// Returns a new List with the elements from `list` in reverse order.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let list = List.fromArray([1,2,3]);\n ///\n /// let rlist = List.reverse(list);\n /// assert Iter.toArray(List.values(rlist)) == [3, 2, 1];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n public func reverse(self : List) : List {\n let rlist = repeatInternal(null, size(self));\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var blockIndexBack = rlist.blockIndex;\n var elementIndexBack = rlist.elementIndex;\n var dbBack : [var ?T] = if (blockIndexBack < rlist.blocks.size()) {\n rlist.blocks[blockIndexBack]\n } else { [var] };\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return rlist;\n\n var j = 0;\n while (j < sz) {\n if (elementIndexBack == 0) {\n blockIndexBack -= 1;\n if (blockIndexBack == 0) return rlist;\n dbBack := rlist.blocks[blockIndexBack];\n elementIndexBack := dbBack.size() - 1\n } else {\n elementIndexBack -= 1\n };\n\n dbBack[elementIndexBack] := db[j];\n j += 1\n };\n i += 1\n };\n rlist\n };\n\n /// Returns true if and only if the list is empty.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([2,0,3]);\n /// assert not List.isEmpty(list);\n /// assert List.isEmpty(List.empty());\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n public func isEmpty(self : List) : Bool {\n self.blockIndex == 1\n };\n\n /// Unsafe iterator starting from `start`.\n ///\n /// Example:\n /// ```\n /// let list = List.fromArray([1, 2, 3, 4, 5]);\n /// let reader = List.reader(list, 2);\n /// assert reader() == 3;\n /// assert reader() == 4;\n /// assert reader() == 5;\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n public func reader(self : List, start : Nat) : () -> T {\n var blockIndex = 0;\n var elementIndex = 0;\n if (start != 0) {\n let (block, element) = locate(start - 1);\n blockIndex := block;\n elementIndex := element + 1\n };\n var db : [var ?T] = self.blocks[blockIndex];\n var dbSize = db.size();\n func next() : T {\n // Note: next() traps when reading beyond end of list\n if (elementIndex == dbSize) {\n blockIndex += 1;\n db := self.blocks[blockIndex];\n dbSize := db.size();\n elementIndex := 0\n };\n switch (db[elementIndex]) {\n case (?ret) {\n elementIndex += 1;\n return ret\n };\n case (_) Prim.trap(\"List.reader(): out of bounds\")\n }\n };\n next\n };\n\n}\n"},"Map.mo":{"content":"/// An imperative key-value map based on order/comparison of the keys.\n/// The map data structure type is stable and can be used for orthogonal persistence.\n///\n/// Example:\n/// ```motoko\n/// import Map \"mo:core/Map\";\n/// import Nat \"mo:core/Nat\";\n///\n/// persistent actor {\n/// // creation\n/// let map = Map.empty();\n/// // insertion\n/// Map.add(map, Nat.compare, 0, \"Zero\");\n/// // retrieval\n/// assert Map.get(map, Nat.compare, 0) == ?\"Zero\";\n/// assert Map.get(map, Nat.compare, 1) == null;\n/// // removal\n/// Map.remove(map, Nat.compare, 0);\n/// assert Map.isEmpty(map);\n/// }\n/// ```\n///\n/// The internal implementation is a B-tree with order 32.\n///\n/// Performance:\n/// * Runtime: `O(log(n))` worst case cost per insertion, removal, and retrieval operation.\n/// * Space: `O(n)` for storing the entire map.\n/// `n` denotes the number of key-value entries stored in the map.\n\n// Data structure implementation is courtesy of Byron Becker.\n// Source: https://github.com/canscale/StableHeapBTreeMap\n// Copyright (c) 2022 Byron Becker.\n// Distributed under Apache 2.0 license.\n// With adjustments by the Motoko team.\n\nimport PureMap \"pure/Map\";\nimport Types \"Types\";\nimport Iter \"Iter\";\nimport Order \"Order\";\nimport VarArray \"VarArray\";\nimport Runtime \"Runtime\";\nimport Stack \"Stack\";\nimport Option \"Option\";\nimport BTreeHelper \"internal/BTreeHelper\";\n\nmodule {\n let btreeOrder = 32; // Should be >= 4 and <= 512.\n\n public type Map = Types.Map;\n\n type Node = Types.Map.Node;\n type Data = Types.Map.Data;\n type Internal = Types.Map.Internal;\n type Leaf = Types.Map.Leaf;\n\n /// Convert the mutable key-value map to an immutable key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import PureMap \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(), Nat.compare);\n /// let pureMap = Map.toPure(map, Nat.compare);\n /// assert Iter.toArray(PureMap.entries(pureMap)) == Iter.toArray(Map.entries(map))\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n /// @deprecated M0235\n public func toPure(self : Map, compare : (implicit : (K, K) -> Order.Order)) : PureMap.Map {\n PureMap.fromIter(entries(self), compare)\n };\n\n /// Convert an immutable key-value map to a mutable key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import PureMap \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let pureMap = PureMap.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(), Nat.compare);\n /// let map = Map.fromPure(pureMap, Nat.compare);\n /// assert Iter.toArray(Map.entries(map)) == Iter.toArray(PureMap.entries(pureMap))\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func fromPure(map : PureMap.Map, compare : (implicit : (K, K) -> Order.Order)) : Map {\n fromIter(PureMap.entries(map), compare)\n };\n\n /// Create a copy of the mutable key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let originalMap = Map.fromIter(\n /// [(1, \"One\"), (2, \"Two\"), (3, \"Three\")].values(), Nat.compare);\n /// let clonedMap = Map.clone(originalMap);\n /// Map.add(originalMap, Nat.compare, 4, \"Four\");\n /// assert Map.size(clonedMap) == 3;\n /// assert Map.size(originalMap) == 4;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func clone(self : Map) : Map {\n {\n var root = cloneNode(self.root);\n var size = self.size\n }\n };\n\n /// Create a new empty mutable key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n ///\n /// persistent actor {\n /// let map = Map.empty();\n /// assert Map.size(map) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func empty() : Map {\n {\n var root = #leaf({\n data = {\n kvs = VarArray.repeat(null, btreeOrder - 1);\n var count = 0\n }\n });\n var size = 0\n }\n };\n\n /// Create a new mutable key-value map with a single entry.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.singleton(0, \"Zero\");\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func singleton(key : K, value : V) : Map {\n let kvs = VarArray.repeat(null, btreeOrder - 1);\n kvs[0] := ?(key, value);\n {\n var root = #leaf { data = { kvs; var count = 1 } };\n var size = 1\n }\n };\n\n /// Delete all the entries in the key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(),\n /// Nat.compare);\n ///\n /// assert Map.size(map) == 3;\n ///\n /// Map.clear(map);\n /// assert Map.size(map) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func clear(self : Map) {\n let emptyMap = empty();\n self.root := emptyMap.root;\n self.size := 0\n };\n\n /// Determines whether a key-value map is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(),\n /// Nat.compare);\n ///\n /// assert not Map.isEmpty(map);\n /// Map.clear(map);\n /// assert Map.isEmpty(map);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func isEmpty(self : Map) : Bool {\n self.size == 0\n };\n\n /// Return the number of entries in a key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(),\n /// Nat.compare);\n ///\n /// assert Map.size(map) == 3;\n /// Map.clear(map);\n /// assert Map.size(map) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func size(self : Map) : Nat {\n self.size\n };\n\n /// Test whether two imperative maps have equal entries.\n /// Both maps have to be constructed by the same comparison function.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// persistent actor {\n /// let map1 = Map.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(),\n /// Nat.compare);\n /// let map2 = Map.clone(map1);\n ///\n /// assert Map.equal(map1, map2, Nat.compare, Text.equal);\n /// Map.clear(map2);\n /// assert not Map.equal(map1, map2, Nat.compare, Text.equal);\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n public func equal(self : Map, other : Map, compare : (implicit : (K, K) -> Types.Order), equal : (implicit : (V, V) -> Bool)) : Bool {\n if (size(self) != size(other)) {\n return false\n };\n let iterator1 = entries(self);\n let iterator2 = entries(other);\n loop {\n let next1 = iterator1.next();\n let next2 = iterator2.next();\n switch (next1, next2) {\n case (null, null) {\n return true\n };\n case (?(key1, value1), ?(key2, value2)) {\n if (\n not (compare(key1, key2) == #equal) or\n not equal(value1, value2)\n ) {\n return false\n }\n };\n case _ { return false }\n }\n }\n };\n\n /// Tests whether the map contains the provided key.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(),\n /// Nat.compare);\n ///\n /// assert Map.containsKey(map, Nat.compare, 1);\n /// assert not Map.containsKey(map, Nat.compare, 3);\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func containsKey(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : Bool {\n Option.isSome(get(self, compare, key))\n };\n\n /// Get the value associated with key in the given map if present and `null` otherwise.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(),\n /// Nat.compare);\n ///\n /// assert Map.get(map, Nat.compare, 1) == ?\"One\";\n /// assert Map.get(map, Nat.compare, 3) == null;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func get(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : ?V {\n switch (self.root) {\n case (#internal(internalNode)) {\n getFromInternal(internalNode, compare, key)\n };\n case (#leaf(leafNode)) { getFromLeaf(leafNode, compare, key) }\n }\n };\n\n /// Given `map` ordered by `compare`, insert a new mapping from `key` to `value`.\n /// Replaces any existing entry under `key`.\n /// Returns true if the key is new to the map, otherwise false.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.empty();\n /// assert Map.insert(map, Nat.compare, 0, \"Zero\");\n /// assert Map.insert(map, Nat.compare, 1, \"One\");\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\")];\n /// assert not Map.insert(map, Nat.compare, 0, \"Nil\");\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Nil\"), (1, \"One\")]\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func insert(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) : Bool {\n switch (swap(self, compare, key, value)) {\n case null true;\n case _ false\n }\n };\n\n /// Given `map` ordered by `compare`, add a mapping from `key` to `value` to `map`.\n /// Replaces any existing entry for `key`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.empty();\n ///\n /// Map.add(map, Nat.compare, 0, \"Zero\");\n /// Map.add(map, Nat.compare, 1, \"One\");\n /// Map.add(map, Nat.compare, 0, \"Nil\");\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Nil\"), (1, \"One\")]\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func add(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) {\n ignore swap(self, compare, key, value)\n };\n\n /// Associates the value with the key in the map.\n /// If the key is not yet present in the map, a new key-value pair is added and `null` is returned.\n /// Otherwise, if the key is already present, the value is overwritten and the previous value is returned.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.singleton(1, \"One\");\n ///\n /// assert Map.swap(map, Nat.compare, 0, \"Zero\") == null;\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\")];\n ///\n /// assert Map.swap(map, Nat.compare, 0, \"Nil\") == ?\"Zero\";\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Nil\"), (1, \"One\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func swap(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) : ?V {\n let insertResult = switch (self.root) {\n case (#leaf(leafNode)) {\n leafInsertHelper(leafNode, btreeOrder, compare, key, value)\n };\n case (#internal(internalNode)) {\n internalInsertHelper(internalNode, btreeOrder, compare, key, value)\n }\n };\n\n switch (insertResult) {\n case (#insert(ov)) {\n switch (ov) {\n // if inserted a value that was not previously there, increment the tree size counter\n case null { self.size += 1 };\n case _ {}\n };\n ov\n };\n case (#promote({ kv; leftChild; rightChild })) {\n let kvs = VarArray.repeat(null, btreeOrder - 1);\n kvs[0] := ?kv;\n let children = VarArray.repeat>(null, btreeOrder);\n children[0] := ?leftChild;\n children[1] := ?rightChild;\n self.root := #internal({\n data = {\n kvs;\n var count = 1\n };\n children\n });\n // promotion always comes from inserting a new element, so increment the tree size counter\n self.size += 1;\n\n null\n }\n }\n };\n\n /// Overwrites the value of an existing key and returns the previous value.\n /// If the key does not exist, it has no effect and returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.singleton(0, \"Zero\");\n ///\n /// let prev1 = Map.replace(map, Nat.compare, 0, \"Nil\"); // overwrites the value for existing key.\n /// assert prev1 == ?\"Zero\";\n /// assert Map.get(map, Nat.compare, 0) == ?\"Nil\";\n ///\n /// let prev2 = Map.replace(map, Nat.compare, 1, \"One\"); // no effect, key is absent\n /// assert prev2 == null;\n /// assert Map.get(map, Nat.compare, 1) == null;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func replace(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) : ?V {\n // TODO: Could be optimized in future\n if (containsKey(self, compare, key)) {\n swap(self, compare, key, value)\n } else {\n null\n }\n };\n\n /// Delete an entry by its key in the map.\n /// No effect if the key is not present.\n ///\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(),\n /// Nat.compare);\n ///\n /// Map.remove(map, Nat.compare, 1);\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (2, \"Two\")];\n /// Map.remove(map, Nat.compare, 42);\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` including garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` objects that will be collected as garbage.\n public func remove(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) {\n ignore delete(self, compare, key)\n };\n\n /// Delete an existing entry by its key in the map.\n /// Returns `true` if the key was present in the map, otherwise `false`.\n ///\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(),\n /// Nat.compare);\n ///\n /// assert Map.delete(map, Nat.compare, 1); // present, returns true\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (2, \"Two\")];\n ///\n /// assert not Map.delete(map, Nat.compare, 42); // absent, returns false\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` including garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` objects that will be collected as garbage.\n /// @deprecated M0235\n public func delete(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : Bool {\n switch (take(self, compare, key)) {\n case null false;\n case _ true\n }\n };\n\n /// Removes any existing entry by its key in the map.\n /// Returns the previous value of the key or `null` if the key was absent.\n ///\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(),\n /// Nat.compare);\n ///\n /// assert Map.take(map, Nat.compare, 0) == ?\"Zero\";\n /// assert Iter.toArray(Map.entries(map)) == [(1, \"One\"), (2, \"Two\")];\n ///\n /// assert Map.take(map, Nat.compare, 3) == null;\n /// assert Iter.toArray(Map.entries(map)) == [(1, \"One\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` including garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` objects that will be collected as garbage.\n /// @deprecated M0235\n public func take(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : ?V {\n let deletedValue = switch (self.root) {\n case (#leaf(leafNode)) {\n // TODO: think about how this can be optimized so don't have to do two steps (search and then insert)?\n switch (NodeUtil.getKeyIndex(leafNode.data, compare, key)) {\n case (#keyFound(deleteIndex)) {\n leafNode.data.count -= 1;\n let (_, deletedValue) = BTreeHelper.deleteAndShift<(K, V)>(leafNode.data.kvs, deleteIndex);\n self.size -= 1;\n ?deletedValue\n };\n case _ { null }\n }\n };\n case (#internal(internalNode)) {\n let deletedValueResult = switch (internalDeleteHelper(internalNode, btreeOrder, compare, key, false)) {\n case (#delete(value)) { value };\n case (#mergeChild({ internalChild; deletedValue })) {\n if (internalChild.data.count > 0) {\n self.root := #internal(internalChild)\n }\n // This case will be hit if the BTree has order == 4\n // In this case, the internalChild has no keys (last key was merged with new child), so need to promote that merged child (its only child)\n else {\n self.root := switch (internalChild.children[0]) {\n case (?node) { node };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.delete(), element deletion failed, due to a null replacement node error\")\n }\n }\n };\n deletedValue\n }\n };\n switch (deletedValueResult) {\n // if deleted a value from the BTree, decrement the size\n case (?deletedValue) { self.size -= 1 };\n case null {}\n };\n deletedValueResult\n }\n };\n deletedValue\n };\n\n public func toArray(self : Map) : [(K, V)] {\n Iter.toArray(entries(self))\n };\n\n public func toVarArray(self : Map) : [var (K, V)] {\n Iter.toVarArray(entries(self))\n };\n\n /// Retrieves the key-value pair from the map with the maximum key.\n /// If the map is empty, returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.empty();\n ///\n /// assert Map.maxEntry(map) == null;\n ///\n /// Map.add(map, Nat.compare, 0, \"Zero\");\n /// Map.add(map, Nat.compare, 2, \"Two\");\n /// Map.add(map, Nat.compare, 1, \"One\");\n ///\n /// assert Map.maxEntry(map) == ?(2, \"Two\")\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func maxEntry(self : Map) : ?(K, V) {\n reverseEntries(self).next()\n };\n\n /// Retrieves the key-value pair from the map with the minimum key.\n /// If the map is empty, returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.empty();\n ///\n /// assert Map.minEntry(map) == null;\n ///\n /// Map.add(map, Nat.compare, 2, \"Two\");\n /// Map.add(map, Nat.compare, 0, \"Zero\");\n /// Map.add(map, Nat.compare, 1, \"One\");\n ///\n /// assert Map.minEntry(map) == ?(0, \"Zero\")\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func minEntry(self : Map) : ?(K, V) {\n entries(self).next()\n };\n\n /// Returns an iterator over the key-value pairs in the map,\n /// traversing the entries in the ascending order of the keys.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// var sum = 0;\n /// var text = \"\";\n /// for ((k, v) in Map.entries(map)) { sum += k; text #= v };\n /// assert sum == 3;\n /// assert text == \"ZeroOneTwo\"\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func entries(self : Map) : Types.Iter<(K, V)> {\n switch (self.root) {\n case (#leaf(leafNode)) { return leafEntries(leafNode) };\n case (#internal(internalNode)) { internalEntries(internalNode) }\n }\n };\n\n /// Returns an iterator over the key-value pairs in the map,\n /// starting from a given key in ascending order.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (3, \"Three\"), (1, \"One\")].values(), Nat.compare);\n /// assert Iter.toArray(Map.entriesFrom(map, Nat.compare, 1)) == [(1, \"One\"), (3, \"Three\")];\n /// assert Iter.toArray(Map.entriesFrom(map, Nat.compare, 2)) == [(3, \"Three\")];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func entriesFrom(\n self : Map,\n compare : (implicit : (K, K) -> Order.Order),\n key : K\n ) : Types.Iter<(K, V)> {\n switch (self.root) {\n case (#leaf(leafNode)) leafEntriesFrom(leafNode, compare, key);\n case (#internal(internalNode)) internalEntriesFrom(internalNode, compare, key)\n }\n };\n\n /// Returns an iterator over the key-value pairs in the map,\n /// traversing the entries in the descending order of the keys.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.reverseEntries(map)) == [(2, \"Two\"), (1, \"One\"), (0, \"Zero\")];\n /// var sum = 0;\n /// var text = \"\";\n /// for ((k, v) in Map.reverseEntries(map)) { sum += k; text #= v };\n /// assert sum == 3;\n /// assert text == \"TwoOneZero\"\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func reverseEntries(self : Map) : Types.Iter<(K, V)> {\n switch (self.root) {\n case (#leaf(leafNode)) reverseLeafEntries(leafNode);\n case (#internal(internalNode)) reverseInternalEntries(internalNode)\n }\n };\n\n /// Returns an iterator over the key-value pairs in the map,\n /// starting from a given key in descending order.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (1, \"One\"), (3, \"Three\")].values(), Nat.compare);\n /// assert Iter.toArray(Map.reverseEntriesFrom(map, Nat.compare, 0)) == [(0, \"Zero\")];\n /// assert Iter.toArray(Map.reverseEntriesFrom(map, Nat.compare, 2)) == [(1, \"One\"), (0, \"Zero\")];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func reverseEntriesFrom(\n self : Map,\n compare : (implicit : (K, K) -> Order.Order),\n key : K\n ) : Types.Iter<(K, V)> {\n switch (self.root) {\n case (#leaf(leafNode)) reverseLeafEntriesFrom(leafNode, compare, key);\n case (#internal(internalNode)) reverseInternalEntriesFrom(internalNode, compare, key)\n }\n };\n\n /// Returns an iterator over the keys in the map,\n /// traversing all keys in ascending order.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.keys(map)) == [0, 1, 2];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n public func keys(self : Map) : Types.Iter {\n object {\n let iterator = entries(self);\n\n public func next() : ?K {\n switch (iterator.next()) {\n case null null;\n case (?(key, _)) ?key\n }\n }\n }\n };\n\n /// Returns an iterator over the values in the map,\n /// traversing the values in the ascending order of the keys to which they are associated.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.values(map)) == [\"Zero\", \"One\", \"Two\"];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n public func values(self : Map) : Types.Iter {\n object {\n let iterator = entries(self);\n\n public func next() : ?V {\n switch (iterator.next()) {\n case null null;\n case (?(_, value)) ?value\n }\n }\n }\n };\n\n /// Create a mutable key-value map with the entries obtained from an iterator.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// transient let iter =\n /// Iter.fromArray([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")]);\n ///\n /// let map = Map.fromIter(iter, Nat.compare);\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of key-value entries returned by the iterator and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func fromIter(iter : Types.Iter<(K, V)>, compare : (implicit : (K, K) -> Order.Order)) : Map {\n let map = empty();\n for ((key, value) in iter) {\n add(map, compare, key, value)\n };\n map\n };\n\n /// Converts an iterator of entries into a Map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// transient let iter =\n /// Iter.fromArray([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")]);\n ///\n /// let map = iter.toMap(Nat.compare);\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of key-value entries returned by the iterator and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func toMap(self : Types.Iter<(K, V)>, compare : (implicit : (K, K) -> Order.Order)) : Map {\n fromIter(self, compare)\n };\n\n public func fromArray(array : [(K, V)], compare : (implicit : (K, K) -> Order.Order)) : Map {\n fromIter(array.values(), compare)\n };\n\n public func fromVarArray(array : [var (K, V)], compare : (implicit : (K, K) -> Order.Order)) : Map {\n fromIter(array.values(), compare)\n };\n\n /// Apply an operation on each key-value pair contained in the map.\n /// The operation is applied in ascending order of the keys.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n /// var sum = 0;\n /// var text = \"\";\n /// Map.forEach(map, func (key, value) {\n /// sum += key;\n /// text #= value;\n /// });\n /// assert sum == 3;\n /// assert text == \"ZeroOneTwo\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func forEach(self : Map, operation : (K, V) -> ()) {\n for (entry in entries(self)) {\n operation(entry)\n }\n };\n\n /// Filter entries in a new map.\n /// Create a copy of the mutable map that only contains the key-value pairs\n /// that fulfil the criterion function.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numberNames = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// let evenNames = Map.filter(numberNames, Nat.compare, func (key, value) {\n /// key % 2 == 0\n /// });\n ///\n /// assert Iter.toArray(Map.entries(evenNames)) == [(0, \"Zero\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func filter(self : Map, compare : (implicit : (K, K) -> Order.Order), criterion : (K, V) -> Bool) : Map {\n let result = empty();\n for ((key, value) in entries(self)) {\n if (criterion(key, value)) {\n add(result, compare, key, value)\n }\n };\n result\n };\n\n /// Project all values of the map in a new map.\n /// Apply a mapping function to the values of each entry in the map and\n /// collect the mapped entries in a new mutable key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func f(key : Nat, _val : Text) : Nat = key * 2;\n ///\n /// let resMap = Map.map(map, f);\n ///\n /// assert Iter.toArray(Map.entries(resMap)) == [(0, 0), (1, 2), (2, 4)];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func map(self : Map, project : (K, V1) -> V2) : Map {\n {\n var root = mapNode(self.root, project);\n var size = self.size\n }\n };\n\n /// Iterate all entries in ascending order of the keys,\n /// and accumulate the entries by applying the combine function, starting from a base value.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func folder(accum : (Nat, Text), key : Nat, val : Text) : ((Nat, Text))\n /// = (key + accum.0, accum.1 # val);\n ///\n /// assert Map.foldLeft(map, (0, \"\"), folder) == (3, \"ZeroOneTwo\");\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func foldLeft(\n self : Map,\n base : A,\n combine : (A, K, V) -> A\n ) : A {\n var accumulator = base;\n for ((key, value) in entries(self)) {\n accumulator := combine(accumulator, key, value)\n };\n accumulator\n };\n\n /// Iterate all entries in descending order of the keys,\n /// and accumulate the entries by applying the combine function, starting from a base value.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func folder(key : Nat, val : Text, accum : (Nat, Text)) : ((Nat, Text))\n /// = (key + accum.0, accum.1 # val);\n ///\n /// assert Map.foldRight(map, (0, \"\"), folder) == (3, \"TwoOneZero\");\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func foldRight(\n self : Map,\n base : A,\n combine : (K, V, A) -> A\n ) : A {\n var accumulator = base;\n for ((key, value) in reverseEntries(self)) {\n accumulator := combine(key, value, accumulator)\n };\n accumulator\n };\n\n /// Check whether all entries in the map fulfil a predicate function, i.e.\n /// the predicate function returns `true` for all entries in the map.\n /// Returns `true` for an empty map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"0\"), (2, \"2\"), (1, \"1\")].values(), Nat.compare);\n ///\n /// assert Map.all(map, func (k, v) = v == Nat.toText(k));\n /// assert not Map.all(map, func (k, v) = k < 2);\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func all(self : Map, predicate : (K, V) -> Bool) : Bool {\n //TODO: optimize\n for (entry in entries(self)) {\n if (not predicate(entry)) {\n return false\n }\n };\n true\n };\n\n /// Test if any key-value pair in `map` satisfies the given predicate `pred`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"0\"), (2, \"2\"), (1, \"1\")].values(), Nat.compare);\n ///\n /// assert Map.any(map, func (k, v) = (k >= 0));\n /// assert not Map.any(map, func (k, v) = (k >= 3));\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func any(self : Map, predicate : (K, V) -> Bool) : Bool {\n //TODO: optimize\n for (entry in entries(self)) {\n if (predicate(entry)) {\n return true\n }\n };\n false\n };\n\n /// Filter all entries in the map by also applying a projection to the value.\n /// Apply a mapping function `project` to all entries in the map and collect all\n /// entries, for which the function returns a non-null new value. Collect all\n /// non-discarded entries with the key and new value in a new mutable map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func f(key : Nat, val : Text) : ?Text {\n /// if(key == 0) {null}\n /// else { ?(\"Twenty \" # val)}\n /// };\n ///\n /// let newMap = Map.filterMap(map, Nat.compare, f);\n ///\n /// assert Iter.toArray(Map.entries(newMap)) == [(1, \"Twenty One\"), (2, \"Twenty Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func filterMap(self : Map, compare : (implicit : (K, K) -> Order.Order), project : (K, V1) -> ?V2) : Map {\n let result = empty();\n for ((key, value1) in entries(self)) {\n switch (project(key, value1)) {\n case null {};\n case (?value2) add(result, compare, key, value2)\n }\n };\n result\n };\n\n /// Internal sanity check function.\n /// Can be used to check that key/value pairs have been inserted with a consistent key comparison function.\n /// Traps if the internal map structure is invalid.\n /// @deprecated M0235\n public func assertValid(self : Map, compare : (implicit : (K, K) -> Order.Order)) {\n func checkIteration(iterator : Types.Iter<(K, V)>, order : Order.Order) {\n switch (iterator.next()) {\n case null {};\n case (?first) {\n var previous = first;\n loop {\n switch (iterator.next()) {\n case null return;\n case (?next) {\n if (compare(previous.0, next.0) != order) {\n Runtime.trap(\"Invalid order\")\n };\n previous := next\n }\n }\n }\n }\n }\n };\n checkIteration(entries(self), #less);\n checkIteration(reverseEntries(self), #greater)\n };\n\n /// Generate a textual representation of all the entries in the map.\n /// Primarily to be used for testing and debugging.\n /// The keys and values are formatted according to `keyFormat` and `valueFormat`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n /// assert Map.toText(map, Nat.toText, func t { t }) == \"Map{(0, Zero), (1, One), (2, Two)}\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that `keyFormat` and `valueFormat` have runtime and space costs of `O(1)`.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func toText(self : Map, keyFormat : (implicit : (toText : K -> Text)), valueFormat : (implicit : (toText : V -> Text))) : Text {\n var text = \"Map{\";\n var sep = \"\";\n for ((key, value) in entries(self)) {\n text #= sep # \"(\" # keyFormat(key) # \", \" # valueFormat(value) # \")\";\n sep := \", \"\n };\n text # \"}\"\n };\n\n /// Compare two maps by primarily comparing keys and secondarily values.\n /// Both maps must have been created by the same key comparison function.\n /// The two maps are iterated by the ascending order of their creation and\n /// order is determined by the following rules:\n /// Less:\n /// `map1` is less than `map2` if:\n /// * the pairwise iteration hits a entry pair `entry1` and `entry2` where\n /// `entry1` is less than `entry2` and all preceding entry pairs are equal, or,\n /// * `map1` is a strict prefix of `map2`, i.e. `map2` has more entries than `map1`\n /// and all entries of `map1` occur at the beginning of iteration `map2`.\n /// `entry1` is less than `entry2` if:\n /// * the key of `entry1` is less than the key of `entry2`, or\n /// * `entry1` and `entry2` have equal keys and the value of `entry1` is less than\n /// the value of `entry2`.\n /// Equal:\n /// `map1` and `map2` have same series of equal entries by pairwise iteration.\n /// Greater:\n /// `map1` is neither less nor equal `map2`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// persistent actor {\n /// let map1 = Map.fromIter([(0, \"Zero\"), (1, \"One\")].values(), Nat.compare);\n /// let map2 = Map.fromIter([(0, \"Zero\"), (2, \"Two\")].values(), Nat.compare);\n ///\n /// assert Map.compare(map1, map2, Nat.compare, Text.compare) == #less;\n /// assert Map.compare(map1, map1, Nat.compare, Text.compare) == #equal;\n /// assert Map.compare(map2, map1, Nat.compare, Text.compare) == #greater\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that `compareKey` and `compareValue` have runtime and space costs of `O(1)`.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func compare(self : Map, other : Map, compareKey : (implicit : (compare : (K, K) -> Order.Order)), compareValue : (implicit : (compare : (V, V) -> Order.Order))) : Order.Order {\n let iterator1 = entries(self);\n let iterator2 = entries(other);\n loop {\n switch (iterator1.next(), iterator2.next()) {\n case (null, null) return #equal;\n case (null, _) return #less;\n case (_, null) return #greater;\n case (?(key1, value1), ?(key2, value2)) {\n let keyComparison = compareKey(key1, key2);\n if (keyComparison != #equal) {\n return keyComparison\n };\n let valueComparison = compareValue(value1, value2);\n if (valueComparison != #equal) {\n return valueComparison\n }\n }\n }\n }\n };\n\n func leafEntries({ data } : Leaf) : Types.Iter<(K, V)> {\n var i : Nat = 0;\n object {\n public func next() : ?(K, V) {\n if (i >= data.count) {\n null\n } else {\n let res = data.kvs[i];\n i += 1;\n res\n }\n }\n }\n };\n\n func leafEntriesFrom({ data } : Leaf, compare : (K, K) -> Order.Order, key : K) : Types.Iter<(K, V)> {\n var i = switch (BinarySearch.binarySearchNode(data.kvs, compare, key, data.count)) {\n case (#keyFound(i)) i;\n case (#notFound(i)) i\n };\n object {\n public func next() : ?(K, V) {\n if (i >= data.count) {\n null\n } else {\n let res = data.kvs[i];\n i += 1;\n res\n }\n }\n }\n };\n\n func reverseLeafEntries({ data } : Leaf) : Types.Iter<(K, V)> {\n var i : Nat = data.count;\n object {\n public func next() : ?(K, V) {\n if (i == 0) {\n null\n } else {\n let res = data.kvs[i - 1];\n i -= 1;\n res\n }\n }\n }\n };\n\n func reverseLeafEntriesFrom({ data } : Leaf, compare : (K, K) -> Order.Order, key : K) : Types.Iter<(K, V)> {\n var i = switch (BinarySearch.binarySearchNode(data.kvs, compare, key, data.count)) {\n case (#keyFound(i)) i + 1; // +1 to include this key\n case (#notFound(i)) i // i is the index of the first key greater than the search key, or count if all keys are less than the search key\n };\n object {\n public func next() : ?(K, V) {\n if (i == 0) {\n null\n } else {\n let res = data.kvs[i - 1];\n i -= 1;\n res\n }\n }\n }\n };\n\n // Cursor type that keeps track of the current node and the current key-value index in the node\n type NodeCursor = { node : Node; kvIndex : Nat };\n\n func internalEntries(internal : Internal) : Types.Iter<(K, V)> {\n // The nodeCursorStack keeps track of the current node and the current key-value index in the node\n // We use a stack here to push to/pop off the next node cursor to visit\n let nodeCursorStack = initializeForwardNodeCursorStack(internal);\n internalEntriesFromStack(nodeCursorStack)\n };\n\n func internalEntriesFrom(internal : Internal, compare : (K, K) -> Order.Order, key : K) : Types.Iter<(K, V)> {\n let nodeCursorStack = initializeForwardNodeCursorStackFrom(internal, compare, key);\n internalEntriesFromStack(nodeCursorStack)\n };\n\n func internalEntriesFromStack(nodeCursorStack : Stack.Stack>) : Types.Iter<(K, V)> {\n object {\n public func next() : ?(K, V) {\n // pop the next node cursor off the stack\n var nodeCursor = Stack.pop(nodeCursorStack);\n switch (nodeCursor) {\n case null { return null };\n case (?{ node; kvIndex }) {\n switch (node) {\n // if a leaf node, iterate through the leaf node's next key-value pair\n case (#leaf(leafNode)) {\n let lastKV = leafNode.data.count - 1 : Nat;\n if (kvIndex > lastKV) {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.internalEntries(), leaf kvIndex out of bounds\")\n };\n\n let currentKV = switch (leafNode.data.kvs[kvIndex]) {\n case (?kv) { kv };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Map.internalEntries(), null key-value pair found in leaf node.\"\n # \"leafNode.data.count=\" # debug_show (leafNode.data.count) # \", kvIndex=\" # debug_show (kvIndex)\n )\n }\n };\n // if not at the last key-value pair, push the next key-value index of the leaf onto the stack and return the current key-value pair\n if (kvIndex < lastKV) {\n Stack.push(\n nodeCursorStack,\n {\n node = #leaf(leafNode);\n kvIndex = kvIndex + 1 : Nat\n }\n )\n };\n\n // return the current key-value pair\n ?currentKV\n };\n // if an internal node\n case (#internal(internalNode)) {\n let lastKV = internalNode.data.count - 1 : Nat;\n // Developer facing message in case of a bug\n if (kvIndex > lastKV) {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.internalEntries(), internal kvIndex out of bounds\")\n };\n\n let currentKV = switch (internalNode.data.kvs[kvIndex]) {\n case (?kv) { kv };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Map.internalEntries(), null key-value pair found in internal node. \" #\n \"internal.data.count=\" # debug_show (internalNode.data.count) # \", kvIndex=\" # debug_show (kvIndex)\n )\n }\n };\n\n let nextCursor = {\n node = #internal(internalNode);\n kvIndex = kvIndex + 1 : Nat\n };\n // if not the last key-value pair, push the next key-value index of the internal node onto the stack\n if (kvIndex < lastKV) {\n Stack.push(nodeCursorStack, nextCursor)\n };\n // traverse the next child's min subtree and push the resulting node cursors onto the stack\n // then return the current key-value pair of the internal node\n traverseMinSubtreeIter(nodeCursorStack, nextCursor);\n ?currentKV\n }\n }\n }\n }\n }\n }\n };\n\n func reverseInternalEntries(internal : Internal) : Types.Iter<(K, V)> {\n // The nodeCursorStack keeps track of the current node and the current key-value index in the node\n // We use a stack here to push to/pop off the next node cursor to visit\n let nodeCursorStack = initializeReverseNodeCursorStack(internal);\n reverseInternalEntriesFromStack(nodeCursorStack)\n };\n\n func reverseInternalEntriesFrom(internal : Internal, compare : (K, K) -> Order.Order, key : K) : Types.Iter<(K, V)> {\n let nodeCursorStack = initializeReverseNodeCursorStackFrom(internal, compare, key);\n reverseInternalEntriesFromStack(nodeCursorStack)\n };\n\n func reverseInternalEntriesFromStack(nodeCursorStack : Stack.Stack>) : Types.Iter<(K, V)> {\n object {\n public func next() : ?(K, V) {\n // pop the next node cursor off the stack\n var nodeCursor = Stack.pop(nodeCursorStack);\n switch (nodeCursor) {\n case null { return null };\n case (?{ node; kvIndex }) {\n let firstKV = 0 : Nat;\n assert (kvIndex > firstKV);\n switch (node) {\n // if a leaf node, reverse iterate through the leaf node's next key-value pair\n case (#leaf(leafNode)) {\n let currentKV = switch (leafNode.data.kvs[kvIndex - 1]) {\n case (?kv) { kv };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Map.reverseInternalEntries(), null key-value pair found in leaf node.\"\n # \"leafNode.data.count=\" # debug_show (leafNode.data.count) # \", kvIndex=\" # debug_show (kvIndex)\n )\n }\n };\n // if not at the last key-value pair, push the previous key-value index of the leaf onto the stack and return the current key-value pair\n if (kvIndex - 1 : Nat > firstKV) {\n Stack.push(\n nodeCursorStack,\n {\n node = #leaf(leafNode);\n kvIndex = kvIndex - 1 : Nat\n }\n )\n };\n\n // return the current key-value pair\n ?currentKV\n };\n // if an internal node\n case (#internal(internalNode)) {\n let currentKV = switch (internalNode.data.kvs[kvIndex - 1]) {\n case (?kv) { kv };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Map.reverseInternalEntries(), null key-value pair found in internal node. \" #\n \"internal.data.count=\" # debug_show (internalNode.data.count) # \", kvIndex=\" # debug_show (kvIndex)\n )\n }\n };\n\n let previousCursor = {\n node = #internal(internalNode);\n kvIndex = kvIndex - 1 : Nat\n };\n // if not the first key-value pair, push the previous key-value index of the internal node onto the stack\n if (kvIndex - 1 : Nat > firstKV) {\n Stack.push(nodeCursorStack, previousCursor)\n };\n // traverse the previous child's max subtree and push the resulting node cursors onto the stack\n // then return the current key-value pair of the internal node\n traverseMaxSubtreeIter(nodeCursorStack, previousCursor);\n ?currentKV\n }\n }\n }\n }\n }\n }\n };\n\n func initializeForwardNodeCursorStack(internal : Internal) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n kvIndex = 0\n };\n\n // push the initial cursor to the stack\n Stack.push(nodeCursorStack, nodeCursor);\n // then traverse left\n traverseMinSubtreeIter(nodeCursorStack, nodeCursor);\n nodeCursorStack\n };\n\n func initializeForwardNodeCursorStackFrom(internal : Internal, compare : (K, K) -> Order.Order, key : K) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n kvIndex = 0\n };\n\n traverseMinSubtreeIterFrom(nodeCursorStack, nodeCursor, compare, key);\n nodeCursorStack\n };\n\n func initializeReverseNodeCursorStack(internal : Internal) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n kvIndex = internal.data.count\n };\n\n // push the initial cursor to the stack\n Stack.push(nodeCursorStack, nodeCursor);\n // then traverse left\n traverseMaxSubtreeIter(nodeCursorStack, nodeCursor);\n nodeCursorStack\n };\n\n func initializeReverseNodeCursorStackFrom(internal : Internal, compare : (K, K) -> Order.Order, key : K) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n kvIndex = internal.data.count\n };\n\n traverseMaxSubtreeIterFrom(nodeCursorStack, nodeCursor, compare, key);\n nodeCursorStack\n };\n\n // traverse the min subtree of the current node cursor, passing each new element to the node cursor stack\n func traverseMinSubtreeIter(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor) {\n var currentNode = nodeCursor.node;\n var childIndex = nodeCursor.kvIndex;\n\n label l loop {\n switch (currentNode) {\n // If currentNode is leaf, have hit the minimum element of the subtree and already pushed it's cursor to the stack\n // so can return\n case (#leaf(_)) {\n return\n };\n // If currentNode is internal, add it's left most child to the stack and continue traversing\n case (#internal(internalNode)) {\n switch (internalNode.children[childIndex]) {\n // Push the next min (left most) child node to the stack\n case (?childNode) {\n childIndex := 0;\n currentNode := childNode;\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n kvIndex = childIndex\n }\n )\n };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.traverseMinSubtreeIter(), null child node error\")\n }\n }\n }\n }\n }\n };\n\n func traverseMinSubtreeIterFrom(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor, compare : (K, K) -> Order.Order, key : K) {\n var currentNode = nodeCursor.node;\n\n label l loop {\n let (node, childrenOption) = switch (currentNode) {\n case (#leaf(leafNode)) (leafNode, null);\n case (#internal(internalNode)) (internalNode, ?internalNode.children)\n };\n let (i, isFound) = switch (NodeUtil.getKeyIndex(node.data, compare, key)) {\n case (#keyFound(i)) (i, true);\n case (#notFound(i)) (i, false)\n };\n if (i < node.data.count) {\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n kvIndex = i // greater entries to traverse\n }\n )\n };\n if isFound return;\n let ?children = childrenOption else return;\n let ?childNode = children[i] else Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.traverseMinSubtreeIterFrom(), null child node error\");\n currentNode := childNode\n }\n };\n\n // traverse the max subtree of the current node cursor, passing each new element to the node cursor stack\n func traverseMaxSubtreeIter(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor) {\n var currentNode = nodeCursor.node;\n var childIndex = nodeCursor.kvIndex;\n\n label l loop {\n switch (currentNode) {\n // If currentNode is leaf, have hit the maximum element of the subtree and already pushed it's cursor to the stack\n // so can return\n case (#leaf(_)) {\n return\n };\n // If currentNode is internal, add it's right most child to the stack and continue traversing\n case (#internal(internalNode)) {\n assert (childIndex <= internalNode.data.count); // children are one more than data entries\n switch (internalNode.children[childIndex]) {\n // Push the next max (right most) child node to the stack\n case (?childNode) {\n childIndex := switch (childNode) {\n case (#internal(internalNode)) internalNode.data.count;\n case (#leaf(leafNode)) leafNode.data.count\n };\n currentNode := childNode;\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n kvIndex = childIndex\n }\n )\n };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.traverseMaxSubtreeIter(), null child node error\")\n }\n }\n }\n }\n }\n };\n\n func traverseMaxSubtreeIterFrom(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor, compare : (K, K) -> Order.Order, key : K) {\n var currentNode = nodeCursor.node;\n\n label l loop {\n let (node, childrenOption) = switch (currentNode) {\n case (#leaf(leafNode)) (leafNode, null);\n case (#internal(internalNode)) (internalNode, ?internalNode.children)\n };\n let (i, isFound) = switch (NodeUtil.getKeyIndex(node.data, compare, key)) {\n case (#keyFound(i)) (i + 1, true); // +1 to include this key\n case (#notFound(i)) (i, false) // i is the index of the first key less than the search key, or 0 if all keys are greater than the search key\n };\n if (i > 0) {\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n kvIndex = i\n }\n )\n };\n if isFound return;\n let ?children = childrenOption else return;\n let ?childNode = children[i] else Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.traverseMaxSubtreeIterFrom(), null child node error\");\n currentNode := childNode\n }\n };\n\n // This type is used to signal to the parent calling context what happened in the level below\n type IntermediateInternalDeleteResult = {\n // element was deleted or not found, returning the old value (?value or null)\n #delete : ?V;\n // deleted an element, but was unable to successfully borrow and rebalance at the previous level without merging children\n // the internalChild is the merged child that needs to be rebalanced at the next level up in the BTree\n #mergeChild : {\n internalChild : Internal;\n deletedValue : ?V\n }\n };\n\n func internalDeleteHelper(internalNode : Internal, order : Nat, compare : (K, K) -> Order.Order, deleteKey : K, skipNode : Bool) : IntermediateInternalDeleteResult {\n let minKeys = NodeUtil.minKeysFromOrder(order);\n let keyIndex = NodeUtil.getKeyIndex(internalNode.data, compare, deleteKey);\n\n // match on both the result of the node binary search, and if this node level should be skipped even if the key is found (internal kv replacement case)\n switch (keyIndex, skipNode) {\n // if key is found in the internal node\n case (#keyFound(deleteIndex), false) {\n let deletedValue = switch (internalNode.data.kvs[deleteIndex]) {\n case (?kv) { ?kv.1 };\n case null { assert false; null }\n };\n // TODO: (optimization) replace with deletion in one step without having to retrieve the maxKey first\n let replaceKV = NodeUtil.getMaxKeyValue(internalNode.children[deleteIndex]);\n internalNode.data.kvs[deleteIndex] := ?replaceKV;\n switch (internalDeleteHelper(internalNode, order, compare, replaceKV.0, true)) {\n case (#delete(_)) { #delete(deletedValue) };\n case (#mergeChild({ internalChild })) {\n #mergeChild({ internalChild; deletedValue })\n }\n }\n };\n // if key is not found in the internal node OR the key is found, but skipping this node (because deleting the in order precessor i.e. replacement kv)\n // in both cases need to descend and traverse to find the kv to delete\n case ((#keyFound(_), true) or (#notFound(_), _)) {\n let childIndex = switch (keyIndex) {\n case (#keyFound(replacedSkipKeyIndex)) { replacedSkipKeyIndex };\n case (#notFound(childIndex)) { childIndex }\n };\n let child = switch (internalNode.children[childIndex]) {\n case (?c) { c };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.internalDeleteHelper, child index of #keyFound or #notfound is null\")\n }\n };\n switch (child) {\n // if child is internal\n case (#internal(internalChild)) {\n switch (internalDeleteHelper(internalChild, order, compare, deleteKey, false), childIndex == 0) {\n // if value was successfully deleted and no additional tree re-balancing is needed, return the deleted value\n case (#delete(v), _) { #delete(v) };\n // if internalChild needs rebalancing and pulling child is left most\n case (#mergeChild({ internalChild; deletedValue }), true) {\n // try to pull left-most key and child from right sibling\n switch (NodeUtil.borrowFromInternalSibling(internalNode.children, childIndex + 1, #successor)) {\n // if can pull up sibling kv and child\n case (#borrowed({ deletedSiblingKVPair; child })) {\n NodeUtil.rotateBorrowedKVsAndChildFromSibling(\n internalNode,\n childIndex,\n deletedSiblingKVPair,\n child,\n internalChild,\n #right\n );\n #delete(deletedValue)\n };\n // unable to pull from sibling, need to merge with right sibling and push down parent\n case (#notEnoughKeys(sibling)) {\n // get the parent kv that will be pushed down the the child\n let kvPairToBePushedToChild = ?BTreeHelper.deleteAndShift(internalNode.data.kvs, 0);\n internalNode.data.count -= 1;\n // merge the children and push down the parent\n let newChild = NodeUtil.mergeChildrenAndPushDownParent(internalChild, kvPairToBePushedToChild, sibling);\n // update children of the parent\n internalNode.children[0] := ?#internal(newChild);\n ignore ?BTreeHelper.deleteAndShift(internalNode.children, 1);\n\n if (internalNode.data.count < minKeys) {\n #mergeChild({ internalChild = internalNode; deletedValue })\n } else {\n #delete(deletedValue)\n }\n }\n }\n };\n // if internalChild needs rebalancing and pulling child is > 0, so a left sibling exists\n case (#mergeChild({ internalChild; deletedValue }), false) {\n // try to pull right-most key and its child directly from left sibling\n switch (NodeUtil.borrowFromInternalSibling(internalNode.children, childIndex - 1 : Nat, #predecessor)) {\n case (#borrowed({ deletedSiblingKVPair; child })) {\n NodeUtil.rotateBorrowedKVsAndChildFromSibling(\n internalNode,\n childIndex - 1 : Nat,\n deletedSiblingKVPair,\n child,\n internalChild,\n #left\n );\n #delete(deletedValue)\n };\n // unable to pull from left sibling\n case (#notEnoughKeys(leftSibling)) {\n // if child is not last index, try to pull from the right child\n if (childIndex < internalNode.data.count) {\n switch (NodeUtil.borrowFromInternalSibling(internalNode.children, childIndex, #successor)) {\n // if can pull up sibling kv and child\n case (#borrowed({ deletedSiblingKVPair; child })) {\n NodeUtil.rotateBorrowedKVsAndChildFromSibling(\n internalNode,\n childIndex,\n deletedSiblingKVPair,\n child,\n internalChild,\n #right\n );\n return #delete(deletedValue)\n };\n // if cannot borrow, from left or right, merge (see below)\n case _ {}\n }\n };\n\n // get the parent kv that will be pushed down the the child\n let kvPairToBePushedToChild = ?BTreeHelper.deleteAndShift(internalNode.data.kvs, childIndex - 1 : Nat);\n internalNode.data.count -= 1;\n // merge it the children and push down the parent\n let newChild = NodeUtil.mergeChildrenAndPushDownParent(leftSibling, kvPairToBePushedToChild, internalChild);\n\n // update children of the parent\n internalNode.children[childIndex - 1] := ?#internal(newChild);\n ignore ?BTreeHelper.deleteAndShift(internalNode.children, childIndex);\n\n if (internalNode.data.count < minKeys) {\n #mergeChild({ internalChild = internalNode; deletedValue })\n } else {\n #delete(deletedValue)\n }\n }\n }\n }\n }\n };\n // if child is leaf\n case (#leaf(leafChild)) {\n switch (leafDeleteHelper(leafChild, order, compare, deleteKey), childIndex == 0) {\n case (#delete(value), _) { #delete(value) };\n // if delete child is left most, try to borrow from right child\n case (#mergeLeafData({ leafDeleteIndex }), true) {\n switch (NodeUtil.borrowFromRightLeafChild(internalNode.children, childIndex)) {\n case (?borrowedKVPair) {\n let kvPairToBePushedToChild = internalNode.data.kvs[childIndex];\n internalNode.data.kvs[childIndex] := ?borrowedKVPair;\n\n let deletedKV = BTreeHelper.insertAtPostionAndDeleteAtPosition<(K, V)>(leafChild.data.kvs, kvPairToBePushedToChild, leafChild.data.count - 1, leafDeleteIndex);\n #delete(?deletedKV.1)\n };\n\n case null {\n // can't borrow from right child, delete from leaf and merge with right child and parent kv, then push down into new leaf\n let rightChild = switch (internalNode.children[childIndex + 1]) {\n case (?#leaf(rc)) { rc };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.internalDeleteHelper, if trying to borrow from right leaf child is null, rightChild index cannot be null or internal\")\n }\n };\n let (mergedLeaf, deletedKV) = mergeParentWithLeftRightChildLeafNodesAndDelete(\n internalNode.data.kvs[childIndex],\n leafChild,\n rightChild,\n leafDeleteIndex,\n #left\n );\n // delete the left most internal node kv, since was merging from a deletion in left most child (0) and the parent kv was pushed into the mergedLeaf\n ignore BTreeHelper.deleteAndShift<(K, V)>(internalNode.data.kvs, 0);\n // update internal node children\n BTreeHelper.replaceTwoWithElementAndShift>(internalNode.children, #leaf(mergedLeaf), 0);\n internalNode.data.count -= 1;\n\n if (internalNode.data.count < minKeys) {\n #mergeChild({\n internalChild = internalNode;\n deletedValue = ?deletedKV.1\n })\n } else {\n #delete(?deletedKV.1)\n }\n\n }\n }\n };\n // if delete child is middle or right most, try to borrow from left child\n case (#mergeLeafData({ leafDeleteIndex }), false) {\n // if delete child is right most, try to borrow from left child\n switch (NodeUtil.borrowFromLeftLeafChild(internalNode.children, childIndex)) {\n case (?borrowedKVPair) {\n let kvPairToBePushedToChild = internalNode.data.kvs[childIndex - 1];\n internalNode.data.kvs[childIndex - 1] := ?borrowedKVPair;\n let kvDelete = BTreeHelper.insertAtPostionAndDeleteAtPosition<(K, V)>(leafChild.data.kvs, kvPairToBePushedToChild, 0, leafDeleteIndex);\n #delete(?kvDelete.1)\n };\n case null {\n // if delete child is in the middle, try to borrow from right child\n if (childIndex < internalNode.data.count) {\n // try to borrow from right\n switch (NodeUtil.borrowFromRightLeafChild(internalNode.children, childIndex)) {\n case (?borrowedKVPair) {\n let kvPairToBePushedToChild = internalNode.data.kvs[childIndex];\n internalNode.data.kvs[childIndex] := ?borrowedKVPair;\n // insert the successor at the very last element\n let kvDelete = BTreeHelper.insertAtPostionAndDeleteAtPosition<(K, V)>(leafChild.data.kvs, kvPairToBePushedToChild, leafChild.data.count - 1, leafDeleteIndex);\n return #delete(?kvDelete.1)\n };\n // if cannot borrow, from left or right, merge (see below)\n case _ {}\n }\n };\n\n // can't borrow from left child, delete from leaf and merge with left child and parent kv, then push down into new leaf\n let leftChild = switch (internalNode.children[childIndex - 1]) {\n case (?#leaf(lc)) { lc };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.internalDeleteHelper, if trying to borrow from left leaf child is null, then left child index must not be null or internal\")\n }\n };\n let (mergedLeaf, deletedKV) = mergeParentWithLeftRightChildLeafNodesAndDelete(\n internalNode.data.kvs[childIndex - 1],\n leftChild,\n leafChild,\n leafDeleteIndex,\n #right\n );\n // delete the right most internal node kv, since was merging from a deletion in the right most child and the parent kv was pushed into the mergedLeaf\n ignore BTreeHelper.deleteAndShift<(K, V)>(internalNode.data.kvs, childIndex - 1);\n // update internal node children\n BTreeHelper.replaceTwoWithElementAndShift>(internalNode.children, #leaf(mergedLeaf), childIndex - 1);\n internalNode.data.count -= 1;\n\n if (internalNode.data.count < minKeys) {\n #mergeChild({\n internalChild = internalNode;\n deletedValue = ?deletedKV.1\n })\n } else {\n #delete(?deletedKV.1)\n }\n }\n }\n }\n }\n }\n }\n }\n }\n };\n\n // This type is used to signal to the parent calling context what happened in the level below\n type IntermediateLeafDeleteResult = {\n // element was deleted or not found, returning the old value (?value or null)\n #delete : ?V;\n // leaf had the minimum number of keys when deleting, so returns the leaf node's data and the index of the key that will be deleted\n #mergeLeafData : {\n data : Data;\n leafDeleteIndex : Nat\n }\n };\n\n func leafDeleteHelper(leafNode : Leaf, order : Nat, compare : (K, K) -> Order.Order, deleteKey : K) : IntermediateLeafDeleteResult {\n let minKeys = NodeUtil.minKeysFromOrder(order);\n\n switch (NodeUtil.getKeyIndex(leafNode.data, compare, deleteKey)) {\n case (#keyFound(deleteIndex)) {\n if (leafNode.data.count > minKeys) {\n leafNode.data.count -= 1;\n #delete(?BTreeHelper.deleteAndShift<(K, V)>(leafNode.data.kvs, deleteIndex).1)\n } else {\n #mergeLeafData({\n data = leafNode.data;\n leafDeleteIndex = deleteIndex\n })\n }\n };\n case (#notFound(_)) {\n #delete(null)\n }\n }\n };\n\n // get helper if internal node\n func getFromInternal(internalNode : Internal, compare : (K, K) -> Order.Order, key : K) : ?V {\n switch (NodeUtil.getKeyIndex(internalNode.data, compare, key)) {\n case (#keyFound(index)) {\n getExistingValueFromIndex(internalNode.data, index)\n };\n case (#notFound(index)) {\n switch (internalNode.children[index]) {\n // expects the child to be there, otherwise there's a bug in binary search or the tree is invalid\n case null { Runtime.trap(\"Internal bug: Map.getFromInternal\") };\n case (?#leaf(leafNode)) { getFromLeaf(leafNode, compare, key) };\n case (?#internal(internalNode)) {\n getFromInternal(internalNode, compare, key)\n }\n }\n }\n }\n };\n\n // get function helper if leaf node\n func getFromLeaf(leafNode : Leaf, compare : (K, K) -> Order.Order, key : K) : ?V {\n switch (NodeUtil.getKeyIndex(leafNode.data, compare, key)) {\n case (#keyFound(index)) {\n getExistingValueFromIndex(leafNode.data, index)\n };\n case _ null\n }\n };\n\n // get function helper that retrieves an existing value in the case that the key is found\n func getExistingValueFromIndex(data : Data, index : Nat) : ?V {\n switch (data.kvs[index]) {\n case null { null };\n case (?ov) { ?ov.1 }\n }\n };\n\n // which child the deletionIndex is referring to\n type DeletionSide = { #left; #right };\n\n func mergeParentWithLeftRightChildLeafNodesAndDelete(\n parentKV : ?(K, V),\n leftChild : Leaf,\n rightChild : Leaf,\n deleteIndex : Nat,\n deletionSide : DeletionSide\n ) : (Leaf, (K, V)) {\n let count = leftChild.data.count * 2;\n let (kvs, deletedKV) = BTreeHelper.mergeParentWithChildrenAndDelete<(K, V)>(\n parentKV,\n leftChild.data.count,\n leftChild.data.kvs,\n rightChild.data.kvs,\n deleteIndex,\n deletionSide\n );\n (\n {\n data = {\n kvs;\n var count = count\n }\n },\n deletedKV\n )\n };\n\n // This type is used to signal to the parent calling context what happened in the level below\n type IntermediateInsertResult = {\n // element was inserted or replaced, returning the old value (?value or null)\n #insert : ?V;\n // child was full when inserting, so returns the promoted kv pair and the split left and right child\n #promote : {\n kv : (K, V);\n leftChild : Node;\n rightChild : Node\n }\n };\n\n // Helper for inserting into a leaf node\n func leafInsertHelper(leafNode : Leaf, order : Nat, compare : (K, K) -> Order.Order, key : K, value : V) : (IntermediateInsertResult) {\n // Perform binary search to see if the element exists in the node\n switch (NodeUtil.getKeyIndex(leafNode.data, compare, key)) {\n case (#keyFound(insertIndex)) {\n let previous = leafNode.data.kvs[insertIndex];\n leafNode.data.kvs[insertIndex] := ?(key, value);\n switch (previous) {\n case (?ov) { #insert(?ov.1) };\n case null { assert false; #insert(null) }; // the binary search already found an element, so this case should never happen\n }\n };\n case (#notFound(insertIndex)) {\n // Note: BTree will always have an order >= 4, so this will never have negative Nat overflow\n let maxKeys : Nat = order - 1;\n // If the leaf is full, insert, split the node, and promote the middle element\n if (leafNode.data.count >= maxKeys) {\n let (leftKVs, promotedParentElement, rightKVs) = BTreeHelper.insertOneAtIndexAndSplitArray(\n leafNode.data.kvs,\n (key, value),\n insertIndex\n );\n\n let leftCount = order / 2;\n let rightCount : Nat = if (order % 2 == 0) { leftCount - 1 } else {\n leftCount\n };\n\n (\n #promote({\n kv = promotedParentElement;\n leftChild = createLeaf(leftKVs, leftCount);\n rightChild = createLeaf(rightKVs, rightCount)\n })\n )\n }\n // Otherwise, insert at the specified index (shifting elements over if necessary)\n else {\n NodeUtil.insertAtIndexOfNonFullNodeData(leafNode.data, ?(key, value), insertIndex);\n #insert(null)\n }\n }\n }\n };\n\n // Helper for inserting into an internal node\n func internalInsertHelper(internalNode : Internal, order : Nat, compare : (K, K) -> Order.Order, key : K, value : V) : IntermediateInsertResult {\n switch (NodeUtil.getKeyIndex(internalNode.data, compare, key)) {\n case (#keyFound(insertIndex)) {\n let previous = internalNode.data.kvs[insertIndex];\n internalNode.data.kvs[insertIndex] := ?(key, value);\n switch (previous) {\n case (?ov) { #insert(?ov.1) };\n case null { assert false; #insert(null) }; // the binary search already found an element, so this case should never happen\n }\n };\n case (#notFound(insertIndex)) {\n let insertResult = switch (internalNode.children[insertIndex]) {\n case null { assert false; #insert(null) };\n case (?#leaf(leafNode)) {\n leafInsertHelper(leafNode, order, compare, key, value)\n };\n case (?#internal(internalChildNode)) {\n internalInsertHelper(internalChildNode, order, compare, key, value)\n }\n };\n\n switch (insertResult) {\n case (#insert(ov)) { #insert(ov) };\n case (#promote({ kv; leftChild; rightChild })) {\n // Note: BTree will always have an order >= 4, so this will never have negative Nat overflow\n let maxKeys : Nat = order - 1;\n // if current internal node is full, need to split the internal node\n if (internalNode.data.count >= maxKeys) {\n // insert and split internal kvs, determine new promotion target kv\n let (leftKVs, promotedParentElement, rightKVs) = BTreeHelper.insertOneAtIndexAndSplitArray(\n internalNode.data.kvs,\n (kv),\n insertIndex\n );\n\n // calculate the element count in the left KVs and the element count in the right KVs\n let leftCount = order / 2;\n let rightCount : Nat = if (order % 2 == 0) { leftCount - 1 } else {\n leftCount\n };\n\n // split internal children\n let (leftChildren, rightChildren) = NodeUtil.splitChildrenInTwoWithRebalances(\n internalNode.children,\n insertIndex,\n leftChild,\n rightChild\n );\n\n // send the kv to be promoted, as well as the internal children left and right split\n #promote({\n kv = promotedParentElement;\n leftChild = #internal({\n data = { kvs = leftKVs; var count = leftCount };\n children = leftChildren\n });\n rightChild = #internal({\n data = { kvs = rightKVs; var count = rightCount };\n children = rightChildren\n })\n })\n } else {\n // insert the new kvs into the internal node\n NodeUtil.insertAtIndexOfNonFullNodeData(internalNode.data, ?kv, insertIndex);\n // split and re-insert the single child that needs rebalancing\n NodeUtil.insertRebalancedChild(internalNode.children, insertIndex, leftChild, rightChild);\n #insert(null)\n }\n }\n }\n }\n }\n };\n\n func createLeaf(kvs : [var ?(K, V)], count : Nat) : Node {\n #leaf({\n data = {\n kvs;\n var count\n }\n })\n };\n\n // Additional functionality compared to original source.\n\n func mapData(data : Data, project : (K, V1) -> V2) : Data {\n {\n kvs = VarArray.map(\n data.kvs,\n func entry {\n switch entry {\n case (?kv) ?(kv.0, project kv);\n case null null\n }\n }\n );\n var count = data.count\n }\n };\n\n func mapNode(node : Node, project : (K, V1) -> V2) : Node {\n switch node {\n case (#leaf { data }) {\n #leaf { data = mapData(data, project) }\n };\n case (#internal { data; children }) {\n let mappedData = mapData(data, project);\n let mappedChildren = VarArray.map, ?Node>(\n children,\n func child {\n switch child {\n case null null;\n case (?childNode) ?mapNode(childNode, project)\n }\n }\n );\n # internal({\n data = mappedData;\n children = mappedChildren\n })\n }\n }\n };\n\n func cloneNode(node : Node) : Node = mapNode(node, func(k, v) = v);\n\n module BinarySearch {\n public type SearchResult = {\n #keyFound : Nat;\n #notFound : Nat\n };\n\n /// Searches an array for a specific key, returning the index it occurs at if #keyFound, or the child/insert index it may occur at\n /// if #notFound. This is used when determining if a key exists in an internal or leaf node, where a key should be inserted in a\n /// leaf node, or which child of an internal node a key could be in.\n ///\n /// Note: This function expects a mutable, nullable, array of keys in sorted order, where all nulls appear at the end of the array.\n /// This function may trap if a null value appears before any values. It also expects a maxIndex, which is the right-most index (bound)\n /// from which to begin the binary search (the left most bound is expected to be 0)\n ///\n /// Parameters:\n ///\n /// * array - the sorted array that the binary search is performed upon\n /// * compare - the comparator used to perform the search\n /// * searchKey - the key being compared against in the search\n /// * maxIndex - the right-most index (bound) from which to begin the search\n public func binarySearchNode(array : [var ?(K, V)], compare : (implicit : (K, K) -> Order.Order), searchKey : K, maxIndex : Nat) : SearchResult {\n // TODO: get rid of this check?\n // Trap if array is size 0 (should not happen)\n if (array.size() == 0) {\n assert false\n };\n\n // if all elements in the array are null (i.e. first element is null), return #notFound(0)\n if (maxIndex == 0) {\n return #notFound(0)\n };\n\n // Initialize search from first to last index\n var left : Nat = 0;\n var right = maxIndex; // maxIndex does not necessarily mean array.size() - 1\n // Search the array\n while (left < right) {\n let middle = (left + right) / 2;\n switch (array[middle]) {\n case null { assert false };\n case (?(key, _)) {\n switch (compare(searchKey, key)) {\n // If the element is present at the middle itself\n case (#equal) { return #keyFound(middle) };\n // If element is greater than mid, it can only be present in left subarray\n case (#greater) { left := middle + 1 };\n // If element is smaller than mid, it can only be present in right subarray\n case (#less) {\n right := if (middle == 0) { 0 } else { middle - 1 }\n }\n }\n }\n }\n };\n\n if (left == array.size()) {\n return #notFound(left)\n };\n\n // left == right\n switch (array[left]) {\n // inserting at end of array\n case null { #notFound(left) };\n case (?(key, _)) {\n switch (compare(searchKey, key)) {\n // if left is the key\n case (#equal) { #keyFound(left) };\n // if the key is not found, return notFound and the insert location\n case (#greater) { #notFound(left + 1) };\n case (#less) { #notFound(left) }\n }\n }\n }\n }\n };\n\n module NodeUtil {\n /// Inserts element at the given index into a non-full leaf node\n public func insertAtIndexOfNonFullNodeData(data : Data, kvPair : ?(K, V), insertIndex : Nat) {\n let currentLastElementIndex : Nat = if (data.count == 0) { 0 } else {\n data.count - 1\n };\n BTreeHelper.insertAtPosition<(K, V)>(data.kvs, kvPair, insertIndex, currentLastElementIndex);\n\n // increment the count of data in this node since just inserted an element\n data.count += 1\n };\n\n /// Inserts two rebalanced (split) child halves into a non-full array of children.\n public func insertRebalancedChild(children : [var ?Node], rebalancedChildIndex : Nat, leftChildInsert : Node, rightChildInsert : Node) {\n // Note: BTree will always have an order >= 4, so this will never have negative Nat overflow\n var j : Nat = children.size() - 2;\n\n // This is just a sanity check to ensure the children aren't already full (should split promote otherwise)\n // TODO: Remove this check once confident\n if (Option.isSome(children[j + 1])) { assert false };\n\n // Iterate backwards over the array and shift each element over to the right by one until the rebalancedChildIndex is hit\n while (j > rebalancedChildIndex) {\n children[j + 1] := children[j];\n j -= 1\n };\n\n // Insert both the left and right rebalanced children (replacing the pre-split child)\n children[j] := ?leftChildInsert;\n children[j + 1] := ?rightChildInsert\n };\n\n /// Used when splitting the children of an internal node\n ///\n /// Takes in the rebalanced child index, as well as both halves of the rebalanced child and splits the children, inserting the left and right child halves appropriately\n ///\n /// For more context, see the documentation for the splitArrayAndInsertTwo method in BTreeHelper.mo\n public func splitChildrenInTwoWithRebalances(\n children : [var ?Node],\n rebalancedChildIndex : Nat,\n leftChildInsert : Node,\n rightChildInsert : Node\n ) : ([var ?Node], [var ?Node]) {\n BTreeHelper.splitArrayAndInsertTwo>(children, rebalancedChildIndex, leftChildInsert, rightChildInsert)\n };\n\n /// Helper used to get the key index of of a key within a node\n ///\n /// for more, see the BinarySearch.binarySearchNode() documentation\n public func getKeyIndex(data : Data, compare : (K, K) -> Order.Order, key : K) : BinarySearch.SearchResult {\n BinarySearch.binarySearchNode(data.kvs, compare, key, data.count)\n };\n\n // calculates a BTree Node's minimum allowed keys given the order of the BTree\n public func minKeysFromOrder(order : Nat) : Nat {\n if (order % 2 == 0) { order / 2 - 1 } else { order / 2 }\n };\n\n // Given a node, get the maximum key value (right most leaf kv)\n public func getMaxKeyValue(node : ?Node) : (K, V) {\n switch (node) {\n case (?#leaf({ data })) {\n switch (data.kvs[data.count - 1]) {\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.NodeUtil.getMaxKeyValue, data cannot have more elements than it's count\")\n };\n case (?kv) { kv }\n }\n };\n case (?#internal({ data; children })) {\n getMaxKeyValue(children[data.count])\n };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.NodeUtil.getMaxKeyValue, the node provided cannot be null\")\n }\n }\n };\n\n type InorderBorrowType = {\n #predecessor;\n #successor\n };\n\n // attempts to retrieve the in max key of the child leaf node directly to the left if the node will allow it\n // returns the deleted max key if able to retrieve, null if not able\n //\n // mutates the predecessing node's keys\n public func borrowFromLeftLeafChild(children : [var ?Node], ofChildIndex : Nat) : ?(K, V) {\n let predecessorIndex : Nat = ofChildIndex - 1;\n borrowFromLeafChild(children, predecessorIndex, #predecessor)\n };\n\n // attempts to retrieve the in max key of the child leaf node directly to the right if the node will allow it\n // returns the deleted max key if able to retrieve, null if not able\n //\n // mutates the predecessing node's keys\n public func borrowFromRightLeafChild(children : [var ?Node], ofChildIndex : Nat) : ?(K, V) {\n borrowFromLeafChild(children, ofChildIndex + 1, #successor)\n };\n\n func borrowFromLeafChild(children : [var ?Node], borrowChildIndex : Nat, childSide : InorderBorrowType) : ?(K, V) {\n let minKeys = minKeysFromOrder(children.size());\n\n switch (children[borrowChildIndex]) {\n case (?#leaf({ data })) {\n if (data.count > minKeys) {\n // able to borrow a key-value from this child, so decrement the count of kvs\n data.count -= 1; // Since enforce order >= 4, there will always be at least 1 element per node\n switch (childSide) {\n case (#predecessor) {\n let deletedKV = data.kvs[data.count];\n data.kvs[data.count] := null;\n deletedKV\n };\n case (#successor) {\n ?BTreeHelper.deleteAndShift(data.kvs, 0)\n }\n }\n } else { null }\n };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.NodeUtil.borrowFromLeafChild, the node at the borrow child index cannot be null or internal\")\n }\n }\n };\n\n type InternalBorrowResult = {\n #borrowed : InternalBorrow;\n #notEnoughKeys : Internal\n };\n\n type InternalBorrow = {\n deletedSiblingKVPair : ?(K, V);\n child : ?Node\n };\n\n // Attempts to borrow a KV and child from an internal sibling node\n public func borrowFromInternalSibling(children : [var ?Node], borrowChildIndex : Nat, borrowType : InorderBorrowType) : InternalBorrowResult {\n let minKeys = minKeysFromOrder(children.size());\n\n switch (children[borrowChildIndex]) {\n case (?#internal({ data; children })) {\n if (data.count > minKeys) {\n data.count -= 1;\n switch (borrowType) {\n case (#predecessor) {\n let deletedSiblingKVPair = data.kvs[data.count];\n data.kvs[data.count] := null;\n let child = children[data.count + 1];\n children[data.count + 1] := null;\n #borrowed({\n deletedSiblingKVPair;\n child\n })\n };\n case (#successor) {\n #borrowed({\n deletedSiblingKVPair = ?BTreeHelper.deleteAndShift(data.kvs, 0);\n child = ?BTreeHelper.deleteAndShift(children, 0)\n })\n }\n }\n } else { #notEnoughKeys({ data; children }) }\n };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.NodeUtil.borrowFromInternalSibling from internal sibling, the child at the borrow index cannot be null or a leaf\")\n }\n }\n };\n\n type SiblingSide = { #left; #right };\n\n // Rotates the borrowed KV and child from sibling side of the internal node to the internal child recipient\n public func rotateBorrowedKVsAndChildFromSibling(\n internalNode : Internal,\n parentRotateIndex : Nat,\n borrowedSiblingKVPair : ?(K, V),\n borrowedSiblingChild : ?Node,\n internalChildRecipient : Internal,\n siblingSide : SiblingSide\n ) {\n // if borrowing from the left, the rotated key and child will always be inserted first\n // if borrowing from the right, the rotated key and child will always be inserted last\n let (kvIndex, childIndex) = switch (siblingSide) {\n case (#left) { (0, 0) };\n case (#right) {\n (internalChildRecipient.data.count, internalChildRecipient.data.count + 1)\n }\n };\n\n // get the parent kv that will be pushed down the the child\n let kvPairToBePushedToChild = internalNode.data.kvs[parentRotateIndex];\n // replace the parent with the sibling kv\n internalNode.data.kvs[parentRotateIndex] := borrowedSiblingKVPair;\n // push the kv and child down into the internalChild\n insertAtIndexOfNonFullNodeData(internalChildRecipient.data, kvPairToBePushedToChild, kvIndex);\n\n BTreeHelper.insertAtPosition>(internalChildRecipient.children, borrowedSiblingChild, childIndex, internalChildRecipient.data.count)\n };\n\n // Merges the kvs and children of two internal nodes, pushing the parent kv in between the right and left halves\n public func mergeChildrenAndPushDownParent(leftChild : Internal, parentKV : ?(K, V), rightChild : Internal) : Internal {\n {\n data = mergeData(leftChild.data, parentKV, rightChild.data);\n children = mergeChildren(leftChild.children, rightChild.children)\n }\n };\n\n func mergeData(leftData : Data, parentKV : ?(K, V), rightData : Data) : Data {\n assert leftData.count <= minKeysFromOrder(leftData.kvs.size() + 1);\n assert rightData.count <= minKeysFromOrder(rightData.kvs.size() + 1);\n\n let mergedKVs = VarArray.repeat(null, leftData.kvs.size());\n var i = 0;\n while (i < leftData.count) {\n mergedKVs[i] := leftData.kvs[i];\n i += 1\n };\n\n mergedKVs[i] := parentKV;\n i += 1;\n\n var j = 0;\n while (j < rightData.count) {\n mergedKVs[i] := rightData.kvs[j];\n i += 1;\n j += 1\n };\n\n {\n kvs = mergedKVs;\n var count = leftData.count + 1 + rightData.count\n }\n };\n\n func mergeChildren(leftChildren : [var ?Node], rightChildren : [var ?Node]) : [var ?Node] {\n let mergedChildren = VarArray.repeat>(null, leftChildren.size());\n var i = 0;\n\n while (Option.isSome(leftChildren[i])) {\n mergedChildren[i] := leftChildren[i];\n i += 1\n };\n\n var j = 0;\n while (Option.isSome(rightChildren[j])) {\n mergedChildren[i] := rightChildren[j];\n i += 1;\n j += 1\n };\n\n mergedChildren\n }\n }\n}\n"},"Text.mo":{"content":"/// Utility functions for `Text` values.\n///\n/// A `Text` value represents human-readable text as a sequence of characters of type `Char`.\n///\n/// ```motoko\n/// let text = \"Hello!\";\n/// let size = text.size();\n/// assert size == 6;\n/// let iter = text.chars();\n/// assert iter.next() == ?'H';\n/// assert iter.next() == ?'e';\n/// assert iter.next() == ?'l';\n/// assert iter.next() == ?'l';\n/// assert iter.next() == ?'o';\n/// assert iter.next() == ?'!';\n/// assert iter.next() == null;\n/// let concat = text # \" 👋\";\n/// assert concat == \"Hello! 👋\";\n/// ```\n///\n/// The `\"mo:core/Text\"` module defines additional operations on `Text` values.\n///\n/// Import the module from the core package:\n///\n/// ```motoko name=import\n/// import Text \"mo:core/Text\";\n/// ```\n///\n/// Note: `Text` values are represented as ropes of UTF-8 character sequences with O(1) concatenation.\n///\n\nimport Char \"Char\";\nimport Iter \"Iter\";\nimport Stack \"Stack\";\nimport Types \"Types\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// The type corresponding to primitive `Text` values.\n ///\n /// ```motoko\n /// let hello = \"Hello!\";\n /// let emoji = \"👋\";\n /// let concat = hello # \" \" # emoji;\n /// assert concat == \"Hello! 👋\";\n /// ```\n public type Text = Prim.Types.Text;\n\n /// Converts the given `Char` to a `Text` value.\n ///\n /// ```motoko include=import\n /// let text = Text.fromChar('A');\n /// assert text == \"A\";\n /// ```\n public let fromChar : (c : Char) -> Text = Prim.charToText;\n\n /// Converts the given `[Char]` to a `Text` value.\n ///\n /// ```motoko include=import\n /// let text = Text.fromArray(['A', 'v', 'o', 'c', 'a', 'd', 'o']);\n /// assert text == \"Avocado\";\n /// ```\n ///\n /// Runtime: O(a.size())\n /// Space: O(a.size())\n public func fromArray(a : [Char]) : Text = fromIter(a.vals());\n\n /// Converts the given `[var Char]` to a `Text` value.\n ///\n /// ```motoko include=import\n /// let text = Text.fromVarArray([var 'E', 'g', 'g', 'p', 'l', 'a', 'n', 't']);\n /// assert text == \"Eggplant\";\n /// ```\n ///\n /// Runtime: O(a.size())\n /// Space: O(a.size())\n public func fromVarArray(a : [var Char]) : Text = fromIter(a.vals());\n\n /// Iterates over each `Char` value in the given `Text`.\n ///\n /// Equivalent to calling the `t.chars()` method where `t` is a `Text` value.\n ///\n /// ```motoko include=import\n /// let chars = Text.toIter(\"abc\");\n /// assert chars.next() == ?'a';\n /// assert chars.next() == ?'b';\n /// assert chars.next() == ?'c';\n /// assert chars.next() == null;\n /// ```\n public func toIter(self : Text) : Iter.Iter = self.chars();\n\n /// Collapses the characters in `text` into a single value by starting with `base`\n /// and progessively combining characters into `base` with `combine`. Iteration runs\n /// left to right.\n ///\n /// ```motoko include=import\n ///\n /// let text = \"Mississippi\";\n /// let count =\n /// Text.foldLeft(\n /// text,\n /// 0, // start the sum at 0\n /// func(ss, c) = if (c == 's') ss + 1 else ss\n /// );\n /// assert count == 4;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `combine` runs in O(1) time and space.\n public func foldLeft(self : Text, base : A, combine : (A, Char) -> A) : A {\n var acc = base;\n for (c in self.chars()) acc := combine(acc, c);\n acc\n };\n\n /// Creates a new `Array` containing characters of the given `Text`.\n ///\n /// Equivalent to `Iter.toArray(t.chars())`.\n ///\n /// ```motoko include=import\n /// assert Text.toArray(\"Café\") == ['C', 'a', 'f', 'é'];\n /// ```\n ///\n /// Runtime: O(t.size())\n /// Space: O(t.size())\n public func toArray(self : Text) : [Char] {\n let cs = self.chars();\n // We rely on Array_tabulate's implementation details: it fills\n // the array from left to right sequentially.\n Prim.Array_tabulate(\n self.size(),\n func _ {\n switch (cs.next()) {\n case (?c) { c };\n case null { Prim.trap(\"Text.toArray()\") }\n }\n }\n )\n };\n\n /// Creates a new mutable `Array` containing characters of the given `Text`.\n ///\n /// Equivalent to `Iter.toArrayMut(t.chars())`.\n ///\n /// ```motoko include=import\n /// import VarArray \"mo:core/VarArray\";\n /// import Char \"mo:core/Char\";\n ///\n /// assert VarArray.equal(Text.toVarArray(\"Café\"), [var 'C', 'a', 'f', 'é'], Char.equal);\n /// ```\n ///\n /// Runtime: O(t.size())\n /// Space: O(t.size())\n public func toVarArray(self : Text) : [var Char] {\n let n = self.size();\n if (n == 0) {\n return [var]\n };\n let array = Prim.Array_init(n, ' ');\n var i = 0;\n for (c in self.chars()) {\n array[i] := c;\n i += 1\n };\n array\n };\n\n /// Creates a `Text` value from a `Char` iterator.\n ///\n /// ```motoko include=import\n /// let text = Text.fromIter(['a', 'b', 'c'].values());\n /// assert text == \"abc\";\n /// ```\n public func fromIter(cs : Iter.Iter) : Text {\n var r = \"\";\n for (c in cs) {\n r #= Prim.charToText(c)\n };\n return r\n };\n\n /// Returns whether the given `Text` is empty (has a size of zero).\n ///\n /// ```motoko include=import\n /// let text1 = \"\";\n /// let text2 = \"example\";\n /// assert Text.isEmpty(text1);\n /// assert not Text.isEmpty(text2);\n /// ```\n public func isEmpty(self : Text) : Bool = self == \"\";\n\n /// Returns the number of characters in the given `Text`.\n ///\n /// Equivalent to calling `t.size()` where `t` is a `Text` value.\n ///\n /// ```motoko include=import\n /// let size = Text.size(\"abc\");\n /// assert size == 3;\n /// ```\n public func size(self : Text) : Nat = self.size();\n\n /// Returns `t1 # t2`, where `#` is the `Text` concatenation operator.\n ///\n /// ```motoko include=import\n /// let a = \"Hello\";\n /// let b = \"There\";\n /// let together = a # b;\n /// assert together == \"HelloThere\";\n /// let withSpace = a # \" \" # b;\n /// assert withSpace == \"Hello There\";\n /// let togetherAgain = Text.concat(a, b);\n /// assert togetherAgain == \"HelloThere\";\n /// ```\n public func concat(self : Text, other : Text) : Text = self # other;\n\n /// Returns a new `Text` with the characters of the input `Text` in reverse order.\n ///\n /// ```motoko include=import\n /// let text = Text.reverse(\"Hello\");\n /// assert text == \"olleH\";\n /// ```\n ///\n /// Runtime: O(t.size())\n /// Space: O(t.size())\n public func reverse(self : Text) : Text {\n fromIter(Iter.reverse(self.chars()))\n };\n\n /// Returns true if two text values are equal.\n ///\n /// ```motoko\n /// import Text \"mo:core/Text\";\n ///\n /// assert Text.equal(\"hello\", \"hello\");\n /// assert not Text.equal(\"hello\", \"world\");\n /// ```\n public func equal(self : Text, other : Text) : Bool { self == other };\n\n /// Returns true if two text values are not equal.\n ///\n /// ```motoko\n /// import Text \"mo:core/Text\";\n ///\n /// assert Text.notEqual(\"hello\", \"world\");\n /// assert not Text.notEqual(\"hello\", \"hello\");\n /// ```\n public func notEqual(self : Text, other : Text) : Bool { self != other };\n\n /// Returns true if the first text value is lexicographically less than the second.\n ///\n /// ```motoko\n /// import Text \"mo:core/Text\";\n ///\n /// assert Text.less(\"apple\", \"banana\");\n /// assert not Text.less(\"banana\", \"apple\");\n /// ```\n public func less(self : Text, other : Text) : Bool { self < other };\n\n /// Returns true if the first text value is lexicographically less than or equal to the second.\n ///\n /// ```motoko\n /// import Text \"mo:core/Text\";\n ///\n /// assert Text.lessOrEqual(\"apple\", \"banana\");\n /// assert Text.lessOrEqual(\"apple\", \"apple\");\n /// assert not Text.lessOrEqual(\"banana\", \"apple\");\n /// ```\n public func lessOrEqual(self : Text, other : Text) : Bool { self <= other };\n\n /// Returns true if the first text value is lexicographically greater than the second.\n ///\n /// ```motoko\n /// import Text \"mo:core/Text\";\n ///\n /// assert Text.greater(\"banana\", \"apple\");\n /// assert not Text.greater(\"apple\", \"banana\");\n /// ```\n public func greater(self : Text, other : Text) : Bool { self > other };\n\n /// Returns true if the first text value is lexicographically greater than or equal to the second.\n ///\n /// ```motoko\n /// import Text \"mo:core/Text\";\n ///\n /// assert Text.greaterOrEqual(\"banana\", \"apple\");\n /// assert Text.greaterOrEqual(\"apple\", \"apple\");\n /// assert not Text.greaterOrEqual(\"apple\", \"banana\");\n /// ```\n public func greaterOrEqual(self : Text, other : Text) : Bool { self >= other };\n\n /// Compares `t1` and `t2` lexicographically.\n ///\n /// ```motoko include=import\n /// assert Text.compare(\"abc\", \"abc\") == #equal;\n /// assert Text.compare(\"abc\", \"def\") == #less;\n /// assert Text.compare(\"abc\", \"ABC\") == #greater;\n /// ```\n public func compare(self : Text, other : Text) : Order.Order {\n let c = Prim.textCompare(self, other);\n if (c < 0) #less else if (c == 0) #equal else #greater\n };\n\n private func extract(self : Text, i : Nat, j : Nat) : Text {\n let size = self.size();\n if (i == 0 and j == size) return self;\n assert (j <= size);\n let cs = self.chars();\n var r = \"\";\n var n = i;\n while (n > 0) {\n ignore cs.next();\n n -= 1\n };\n n := j;\n while (n > 0) {\n switch (cs.next()) {\n case null { assert false };\n case (?c) { r #= Prim.charToText(c) }\n };\n n -= 1\n };\n return r\n };\n\n /// Join an iterator of `Text` values with a given delimiter.\n ///\n /// ```motoko include=import\n /// let joined = Text.join([\"a\", \"b\", \"c\"].values(), \", \");\n /// assert joined == \"a, b, c\";\n /// ```\n public func join(self : Iter.Iter, sep : Text) : Text {\n var r = \"\";\n if (sep.size() == 0) {\n for (t in self) {\n r #= t\n };\n return r\n };\n let next = self.next;\n switch (next()) {\n case null { return r };\n case (?t) {\n r #= t\n }\n };\n loop {\n switch (next()) {\n case null { return r };\n case (?t) {\n r #= sep;\n r #= t\n }\n }\n }\n };\n\n /// Applies a function to each character in a `Text` value, returning the concatenated `Char` results.\n ///\n /// ```motoko include=import\n /// // Replace all occurrences of '?' with '!'\n /// let result = Text.map(\"Motoko?\", func(c) {\n /// if (c == '?') '!'\n /// else c\n /// });\n /// assert result == \"Motoko!\";\n /// ```\n public func map(self : Text, f : Char -> Char) : Text {\n var r = \"\";\n for (c in self.chars()) {\n r #= Prim.charToText(f(c))\n };\n r\n };\n\n /// Returns the result of applying `f` to each character in `ts`, concatenating the intermediate text values.\n ///\n /// ```motoko include=import\n /// // Replace all occurrences of '?' with \"!!\"\n /// let result = Text.flatMap(\"Motoko?\", func(c) {\n /// if (c == '?') \"!!\"\n /// else Text.fromChar(c)\n /// });\n /// assert result == \"Motoko!!\";\n /// ```\n public func flatMap(self : Text, f : Char -> Text) : Text {\n var r = \"\";\n for (c in self.chars()) {\n r #= f(c)\n };\n r\n };\n\n /// A pattern `p` describes a sequence of characters. A pattern has one of the following forms:\n ///\n /// * `#char c` matches the single character sequence, `c`.\n /// * `#text t` matches multi-character text sequence `t`.\n /// * `#predicate p` matches any single character sequence `c` satisfying predicate `p(c)`.\n ///\n /// A _match_ for `p` is any sequence of characters matching the pattern `p`.\n ///\n /// ```motoko include=import\n /// let charPattern = #char 'A';\n /// let textPattern = #text \"phrase\";\n /// let predicatePattern : Text.Pattern = #predicate (func(c) { c == 'A' or c == 'B' });\n /// assert Text.contains(\"A\", predicatePattern);\n /// assert Text.contains(\"B\", predicatePattern);\n /// ```\n public type Pattern = Types.Pattern;\n\n private func take(n : Nat, cs : Iter.Iter) : Iter.Iter {\n var i = n;\n object {\n public func next() : ?Char {\n if (i == 0) return null;\n i -= 1;\n return cs.next()\n }\n }\n };\n\n private func empty() : Iter.Iter {\n object {\n public func next() : ?Char = null\n }\n };\n\n private type Match = {\n /// #success on complete match\n #success;\n /// #fail(cs,c) on partial match of cs, but failing match on c\n #fail : (cs : Iter.Iter, c : Char);\n /// #empty(cs) on partial match of cs and empty stream\n #empty : (cs : Iter.Iter)\n };\n\n private func sizeOfPattern(pat : Pattern) : Nat {\n switch pat {\n case (#text(t)) { t.size() };\n case (#predicate(_) or #char(_)) { 1 }\n }\n };\n\n private func matchOfPattern(pat : Pattern) : (cs : Iter.Iter) -> Match {\n switch pat {\n case (#char(p)) {\n func(cs : Iter.Iter) : Match {\n switch (cs.next()) {\n case (?c) {\n if (p == c) {\n #success\n } else {\n #fail(empty(), c)\n }\n };\n case null { #empty(empty()) }\n }\n }\n };\n case (#predicate(p)) {\n func(cs : Iter.Iter) : Match {\n switch (cs.next()) {\n case (?c) {\n if (p(c)) {\n #success\n } else {\n #fail(empty(), c)\n }\n };\n case null { #empty(empty()) }\n }\n }\n };\n case (#text(p)) {\n func(cs : Iter.Iter) : Match {\n var i = 0;\n let ds = p.chars();\n loop {\n switch (ds.next()) {\n case (?d) {\n switch (cs.next()) {\n case (?c) {\n if (c != d) {\n return #fail(take(i, p.chars()), c)\n };\n i += 1\n };\n case null {\n return #empty(take(i, p.chars()))\n }\n }\n };\n case null { return #success }\n }\n }\n }\n }\n }\n };\n\n private class CharBuffer(cs : Iter.Iter) : Iter.Iter = {\n\n var stack : Stack.Stack<(Iter.Iter, Char)> = Stack.empty();\n\n public func pushBack(cs0 : Iter.Iter, c : Char) {\n Stack.push(stack, (cs0, c))\n };\n\n public func next() : ?Char {\n switch (Stack.peek(stack)) {\n case (?(buff, c)) {\n switch (buff.next()) {\n case null {\n ignore Stack.pop(stack);\n return ?c\n };\n case oc {\n return oc\n }\n }\n };\n case null {\n return cs.next()\n }\n }\n }\n };\n\n /// Splits the input `Text` with the specified `Pattern`.\n ///\n /// Two fields are separated by exactly one match.\n ///\n /// ```motoko include=import\n /// let words = Text.split(\"This is a sentence.\", #char ' ');\n /// assert Text.join(words, \"|\") == \"This|is|a|sentence.\";\n /// ```\n public func split(self : Text, p : Pattern) : Iter.Iter {\n let match = matchOfPattern(p);\n let cs = CharBuffer(self.chars());\n var state = 0;\n var field = \"\";\n object {\n public func next() : ?Text {\n switch state {\n case (0 or 1) {\n loop {\n switch (match(cs)) {\n case (#success) {\n let r = field;\n field := \"\";\n state := 1;\n return ?r\n };\n case (#empty(cs1)) {\n for (c in cs1) {\n field #= fromChar(c)\n };\n let r = if (state == 0 and field == \"\") {\n null\n } else {\n ?field\n };\n state := 2;\n return r\n };\n case (#fail(cs1, c)) {\n cs.pushBack(cs1, c);\n switch (cs.next()) {\n case (?ci) {\n field #= fromChar(ci)\n };\n case null {\n let r = if (state == 0 and field == \"\") {\n null\n } else {\n ?field\n };\n state := 2;\n return r\n }\n }\n }\n }\n }\n };\n case _ { return null }\n }\n }\n }\n };\n\n /// Returns a sequence of tokens from the input `Text` delimited by the specified `Pattern`, derived from start to end.\n /// A \"token\" is a non-empty maximal subsequence of `t` not containing a match for pattern `p`.\n /// Two tokens may be separated by one or more matches of `p`.\n ///\n /// ```motoko include=import\n /// let tokens = Text.tokens(\"this needs\\n an example\", #predicate (func(c) { c == ' ' or c == '\\n' }));\n /// assert Text.join(tokens, \"|\") == \"this|needs|an|example\";\n /// ```\n public func tokens(self : Text, p : Pattern) : Iter.Iter {\n let fs = split(self, p);\n object {\n public func next() : ?Text {\n switch (fs.next()) {\n case (?\"\") { next() };\n case ot { ot }\n }\n }\n }\n };\n\n /// Returns `true` if the input `Text` contains a match for the specified `Pattern`.\n ///\n /// ```motoko include=import\n /// assert Text.contains(\"Motoko\", #text \"oto\");\n /// assert not Text.contains(\"Motoko\", #text \"xyz\");\n /// ```\n public func contains(self : Text, p : Pattern) : Bool {\n let match = matchOfPattern(p);\n let cs = CharBuffer(self.chars());\n loop {\n switch (match(cs)) {\n case (#success) {\n return true\n };\n case (#empty(_cs1)) {\n return false\n };\n case (#fail(cs1, c)) {\n cs.pushBack(cs1, c);\n switch (cs.next()) {\n case null {\n return false\n };\n case _ {}; // continue\n }\n }\n }\n }\n };\n\n /// Returns `true` if the input `Text` starts with a prefix matching the specified `Pattern`.\n ///\n /// ```motoko include=import\n /// assert Text.startsWith(\"Motoko\", #text \"Mo\");\n /// ```\n public func startsWith(self : Text, p : Pattern) : Bool {\n var cs = self.chars();\n let match = matchOfPattern(p);\n switch (match(cs)) {\n case (#success) { true };\n case _ { false }\n }\n };\n\n /// Returns `true` if the input `Text` ends with a suffix matching the specified `Pattern`.\n ///\n /// ```motoko include=import\n /// assert Text.endsWith(\"Motoko\", #char 'o');\n /// ```\n public func endsWith(self : Text, p : Pattern) : Bool {\n let s2 = sizeOfPattern(p);\n if (s2 == 0) return true;\n let s1 = self.size();\n if (s2 > s1) return false;\n let match = matchOfPattern(p);\n var cs1 = self.chars();\n var diff : Nat = s1 - s2;\n while (diff > 0) {\n ignore cs1.next();\n diff -= 1\n };\n switch (match(cs1)) {\n case (#success) { true };\n case _ { false }\n }\n };\n\n /// Returns the input text `t` with all matches of pattern `p` replaced by text `r`.\n ///\n /// ```motoko include=import\n /// let result = Text.replace(\"abcabc\", #char 'a', \"A\");\n /// assert result == \"AbcAbc\";\n /// ```\n public func replace(self : Text, p : Pattern, r : Text) : Text {\n let match = matchOfPattern(p);\n let size = sizeOfPattern(p);\n let cs = CharBuffer(self.chars());\n var res = \"\";\n label l loop {\n switch (match(cs)) {\n case (#success) {\n res #= r;\n if (size > 0) {\n continue l\n }\n };\n case (#empty(cs1)) {\n for (c1 in cs1) {\n res #= fromChar(c1)\n };\n break l\n };\n case (#fail(cs1, c)) {\n cs.pushBack(cs1, c)\n }\n };\n switch (cs.next()) {\n case null {\n break l\n };\n case (?c1) {\n res #= fromChar(c1)\n }; // continue\n }\n };\n return res\n };\n\n /// Strips one occurrence of the given `Pattern` from the beginning of the input `Text`.\n /// If you want to remove multiple instances of the pattern, use `Text.trimStart()` instead.\n ///\n /// ```motoko include=import\n /// // Try to strip a nonexistent character\n /// let none = Text.stripStart(\"abc\", #char '-');\n /// assert none == null;\n /// // Strip just one '-'\n /// let one = Text.stripStart(\"--abc\", #char '-');\n /// assert one == ?\"-abc\";\n /// ```\n public func stripStart(self : Text, p : Pattern) : ?Text {\n let s = sizeOfPattern(p);\n if (s == 0) return ?self;\n var cs = self.chars();\n let match = matchOfPattern(p);\n switch (match(cs)) {\n case (#success) return ?fromIter(cs);\n case _ return null\n }\n };\n\n /// Strips one occurrence of the given `Pattern` from the end of the input `Text`.\n /// If you want to remove multiple instances of the pattern, use `Text.trimEnd()` instead.\n ///\n /// ```motoko include=import\n /// // Try to strip a nonexistent character\n /// let none = Text.stripEnd(\"xyz\", #char '-');\n /// assert none == null;\n /// // Strip just one '-'\n /// let one = Text.stripEnd(\"xyz--\", #char '-');\n /// assert one == ?\"xyz-\";\n /// ```\n public func stripEnd(self : Text, p : Pattern) : ?Text {\n let s2 = sizeOfPattern(p);\n if (s2 == 0) return ?self;\n let s1 = self.size();\n if (s2 > s1) return null;\n let match = matchOfPattern(p);\n var cs1 = self.chars();\n var diff : Nat = s1 - s2;\n while (diff > 0) {\n ignore cs1.next();\n diff -= 1\n };\n switch (match(cs1)) {\n case (#success) return ?extract(self, 0, s1 - s2);\n case _ return null\n }\n };\n\n /// Trims the given `Pattern` from the start of the input `Text`.\n /// If you only want to remove a single instance of the pattern, use `Text.stripStart()` instead.\n ///\n /// ```motoko include=import\n /// let trimmed = Text.trimStart(\"---abc\", #char '-');\n /// assert trimmed == \"abc\";\n /// ```\n public func trimStart(self : Text, p : Pattern) : Text {\n let cs = self.chars();\n let size = sizeOfPattern(p);\n if (size == 0) return self;\n var matchSize = 0;\n let match = matchOfPattern(p);\n loop {\n switch (match(cs)) {\n case (#success) {\n matchSize += size\n }; // continue\n case (#empty(cs1)) {\n return if (matchSize == 0) {\n self\n } else {\n fromIter(cs1)\n }\n };\n case (#fail(cs1, c)) {\n return if (matchSize == 0) {\n self\n } else {\n fromIter(cs1) # fromChar(c) # fromIter(cs)\n }\n }\n }\n }\n };\n\n /// Trims the given `Pattern` from the end of the input `Text`.\n /// If you only want to remove a single instance of the pattern, use `Text.stripEnd()` instead.\n ///\n /// ```motoko include=import\n /// let trimmed = Text.trimEnd(\"xyz---\", #char '-');\n /// assert trimmed == \"xyz\";\n /// ```\n public func trimEnd(self : Text, p : Pattern) : Text {\n let cs = CharBuffer(self.chars());\n let size = sizeOfPattern(p);\n if (size == 0) return self;\n let match = matchOfPattern(p);\n var matchSize = 0;\n label l loop {\n switch (match(cs)) {\n case (#success) {\n matchSize += size\n }; // continue\n case (#empty(cs1)) {\n switch (cs1.next()) {\n case null break l;\n case (?_) return self\n }\n };\n case (#fail(cs1, c)) {\n matchSize := 0;\n cs.pushBack(cs1, c);\n ignore cs.next()\n }\n }\n };\n extract(self, 0, self.size() - matchSize)\n };\n\n /// Trims the given `Pattern` from both the start and end of the input `Text`.\n ///\n /// ```motoko include=import\n /// let trimmed = Text.trim(\"---abcxyz---\", #char '-');\n /// assert trimmed == \"abcxyz\";\n /// ```\n public func trim(self : Text, p : Pattern) : Text {\n let cs = self.chars();\n let size = sizeOfPattern(p);\n if (size == 0) return self;\n var matchSize = 0;\n let match = matchOfPattern(p);\n loop {\n switch (match(cs)) {\n case (#success) {\n matchSize += size\n }; // continue\n case (#empty(cs1)) {\n return if (matchSize == 0) { self } else { fromIter(cs1) }\n };\n case (#fail(cs1, c)) {\n let start = matchSize;\n let cs2 = CharBuffer(cs);\n cs2.pushBack(cs1, c);\n ignore cs2.next();\n matchSize := 0;\n label l loop {\n switch (match(cs2)) {\n case (#success) {\n matchSize += size\n }; // continue\n case (#empty(_cs3)) {\n switch (cs1.next()) {\n case null break l;\n case (?_) return self\n }\n };\n case (#fail(cs3, c1)) {\n matchSize := 0;\n cs2.pushBack(cs3, c1);\n ignore cs2.next()\n }\n }\n };\n return extract(self, start, self.size() - matchSize - start)\n }\n }\n }\n };\n\n /// Compares `t1` and `t2` using the provided character-wise comparison function.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n ///\n /// assert Text.compareWith(\"abc\", \"ABC\", func(c1, c2) { Char.compare(c1, c2) }) == #greater;\n /// ```\n public func compareWith(\n self : Text,\n other : Text,\n compare : (Char, Char) -> Order.Order\n ) : Order.Order {\n let cs1 = self.chars();\n let cs2 = other.chars();\n loop {\n switch (cs1.next(), cs2.next()) {\n case (null, null) { return #equal };\n case (null, ?_) { return #less };\n case (?_, null) { return #greater };\n case (?c1, ?c2) {\n switch (compare(c1, c2)) {\n case (#equal) {}; // continue\n case other { return other }\n }\n }\n }\n }\n };\n\n /// Returns a UTF-8 encoded `Blob` from the given `Text`.\n ///\n /// ```motoko include=import\n /// let blob = Text.encodeUtf8(\"Hello\");\n /// assert blob == \"\\48\\65\\6C\\6C\\6F\";\n /// ```\n public let encodeUtf8 : (self : Text) -> Blob = Prim.encodeUtf8;\n\n /// Tries to decode the given `Blob` as UTF-8.\n /// Returns `null` if the blob is not valid UTF-8.\n ///\n /// ```motoko include=import\n /// let text = Text.decodeUtf8(\"\\48\\65\\6C\\6C\\6F\");\n /// assert text == ?\"Hello\";\n /// ```\n public let decodeUtf8 : (self : Blob) -> ?Text = Prim.decodeUtf8;\n\n /// Returns the text argument in lowercase.\n /// WARNING: Unicode compliant only when compiled, not interpreted.\n ///\n /// ```motoko include=import\n /// let text = Text.toLower(\"Good Day\");\n /// assert text == \"good day\";\n /// ```\n public let toLower : (self : Text) -> Text = Prim.textLowercase;\n\n /// Returns the text argument in uppercase. Unicode compliant.\n /// WARNING: Unicode compliant only when compiled, not interpreted.\n ///\n /// ```motoko include=import\n /// let text = Text.toUpper(\"Good Day\");\n /// assert text == \"GOOD DAY\";\n /// ```\n public let toUpper : (self : Text) -> Text = Prim.textUppercase;\n\n /// Returns the given text value unchanged.\n /// This function is provided for consistency with other modules.\n ///\n /// ```motoko include=import\n /// assert Text.toText(\"Hello\") == \"Hello\";\n /// ```\n public func toText(self : Text) : Text = self\n\n}\n"},"Nat64.mo":{"content":"/// Utility functions on 64-bit unsigned integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Nat64 \"mo:core/Nat64\";\n/// ```\nimport Nat \"Nat\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 64-bit natural numbers.\n public type Nat64 = Prim.Types.Nat64;\n\n /// Maximum 64-bit natural number. `2 ** 64 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.maxValue == (18446744073709551615 : Nat64);\n /// ```\n public let maxValue : Nat64 = 18446744073709551615;\n\n /// Converts a 64-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.toNat(123) == (123 : Nat);\n /// ```\n public let toNat : (self : Nat64) -> Nat = Prim.nat64ToNat;\n\n /// Converts an unsigned integer with infinite precision to a 64-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.fromNat(123) == (123 : Nat64);\n /// ```\n public let fromNat : Nat -> Nat64 = Prim.natToNat64;\n\n /// Converts a 64-bit unsigned integer to an 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.toNat8(123) == (123 : Nat8);\n /// ```\n public func toNat8(self : Nat64) : Nat8 {\n Prim.nat16ToNat8(Prim.nat32ToNat16(Prim.nat64ToNat32(self)))\n };\n\n /// Converts a 16-bit unsigned integer to a 64-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.fromNat16(123) == (123 : Nat64);\n /// ```\n /// @deprecated M0235\n public func fromNat16(x : Nat16) : Nat64 {\n Prim.nat32ToNat64(Prim.nat16ToNat32(x))\n };\n\n /// Converts a 64-bit unsigned integer to a 16-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.toNat16(123) == (123 : Nat16);\n /// ```\n public func toNat16(self : Nat64) : Nat16 {\n Prim.nat32ToNat16(Prim.nat64ToNat32(self))\n };\n\n /// Converts an 8-bit unsigned integer to a 64-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.fromNat8(123) == (123 : Nat64);\n /// ```\n /// @deprecated M0235\n public func fromNat8(x : Nat8) : Nat64 {\n Prim.nat32ToNat64(Prim.nat16ToNat32(Prim.nat8ToNat16(x)))\n };\n\n /// Converts a 32-bit unsigned integer to a 64-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.fromNat32(123) == (123 : Nat64);\n /// ```\n /// @deprecated M0235\n public let fromNat32 : (x : Nat32) -> Nat64 = Prim.nat32ToNat64;\n\n /// Converts a 64-bit unsigned integer to a 32-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.toNat32(123) == (123 : Nat32);\n /// ```\n public let toNat32 : (self : Nat64) -> Nat32 = Prim.nat64ToNat32;\n\n /// Converts a signed integer with infinite precision to a 64-bit unsigned integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.fromIntWrap(123) == (123 : Nat64);\n /// ```\n public let fromIntWrap : Int -> Nat64 = Prim.intToNat64Wrap;\n\n /// Converts `x` to its textual representation. Textual representation _do not_\n /// contain underscores to represent commas.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.toText(1234) == (\"1234\" : Text);\n /// ```\n public func toText(self : Nat64) : Text {\n Nat.toText(toNat(self))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.min(123, 456) == (123 : Nat64);\n /// ```\n public func min(x : Nat64, y : Nat64) : Nat64 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.max(123, 456) == (456 : Nat64);\n /// ```\n public func max(x : Nat64, y : Nat64) : Nat64 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Nat64 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.equal(1, 1);\n /// assert (1 : Nat64) == (1 : Nat64);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Nat64 = 111;\n /// let b : Nat64 = 222;\n /// assert not Nat64.equal(a, b);\n /// ```\n public func equal(x : Nat64, y : Nat64) : Bool { x == y };\n\n /// Inequality function for Nat64 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.notEqual(1, 2);\n /// assert (1 : Nat64) != (2 : Nat64);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Nat64, y : Nat64) : Bool { x != y };\n\n /// \"Less than\" function for Nat64 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.less(1, 2);\n /// assert (1 : Nat64) < (2 : Nat64);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Nat64, y : Nat64) : Bool { x < y };\n\n /// \"Less than or equal\" function for Nat64 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.lessOrEqual(1, 2);\n /// assert (1 : Nat64) <= (2 : Nat64);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Nat64, y : Nat64) : Bool { x <= y };\n\n /// \"Greater than\" function for Nat64 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.greater(2, 1);\n /// assert (2 : Nat64) > (1 : Nat64);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Nat64, y : Nat64) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Nat64 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.greaterOrEqual(2, 1);\n /// assert (2 : Nat64) >= (1 : Nat64);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Nat64, y : Nat64) : Bool {\n x >= y\n };\n\n /// General purpose comparison function for `Nat64`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.compare(2, 3) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([2, 3, 1] : [Nat64], Nat64.compare) == [1, 2, 3];\n /// ```\n public func compare(x : Nat64, y : Nat64) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.add(1, 2) == 3;\n /// assert (1 : Nat64) + (2 : Nat64) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 0, Nat64.add) == 6;\n /// ```\n public func add(x : Nat64, y : Nat64) : Nat64 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n /// Traps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.sub(3, 1) == 2;\n /// assert (3 : Nat64) - (1 : Nat64) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 10, Nat64.sub) == 4;\n /// ```\n public func sub(x : Nat64, y : Nat64) : Nat64 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.mul(2, 3) == 6;\n /// assert (2 : Nat64) * (3 : Nat64) == 6;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 1, Nat64.mul) == 6;\n /// ```\n public func mul(x : Nat64, y : Nat64) : Nat64 { x * y };\n\n /// Returns the quotient of `x` divided by `y`, `x / y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.div(6, 2) == 3;\n /// assert (6 : Nat64) / (2 : Nat64) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Nat64, y : Nat64) : Nat64 { x / y };\n\n /// Returns the remainder of `x` divided by `y`, `x % y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.rem(6, 4) == 2;\n /// assert (6 : Nat64) % (4 : Nat64) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Nat64, y : Nat64) : Nat64 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`. Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.pow(2, 3) == 8;\n /// assert (2 : Nat64) ** (3 : Nat64) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Nat64, y : Nat64) : Nat64 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitnot(0) == 18446744073709551615;\n /// assert ^(0 : Nat64) == 18446744073709551615;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Nat64) : Nat64 { ^x };\n\n /// Returns the bitwise and of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitand(1, 3) == 1;\n /// assert (1 : Nat64) & (3 : Nat64) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Nat64, y : Nat64) : Nat64 { x & y };\n\n /// Returns the bitwise or of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitor(1, 3) == 3;\n /// assert (1 : Nat64) | (3 : Nat64) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `|` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `|`\n /// as a function value at the moment.\n public func bitor(x : Nat64, y : Nat64) : Nat64 { x | y };\n\n /// Returns the bitwise exclusive or of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitxor(1, 3) == 2;\n /// assert (1 : Nat64) ^ (3 : Nat64) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitxor(x : Nat64, y : Nat64) : Nat64 { x ^ y };\n\n /// Returns the bitwise shift left of `x` by `y`, `x << y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitshiftLeft(1, 3) == 8;\n /// assert (1 : Nat64) << (3 : Nat64) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Nat64, y : Nat64) : Nat64 {\n x << y\n };\n\n /// Returns the bitwise shift right of `x` by `y`, `x >> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitshiftRight(8, 3) == 1;\n /// assert (8 : Nat64) >> (3 : Nat64) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Nat64, y : Nat64) : Nat64 {\n x >> y\n };\n\n /// Returns the bitwise rotate left of `x` by `y`, `x <<> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitrotLeft(1, 3) == 8;\n /// assert (1 : Nat64) <<> (3 : Nat64) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Nat64, y : Nat64) : Nat64 { x <<> y };\n\n /// Returns the bitwise rotate right of `x` by `y`, `x <>> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitrotRight(8, 3) == 1;\n /// assert (8 : Nat64) <>> (3 : Nat64) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Nat64, y : Nat64) : Nat64 {\n x <>> y\n };\n\n /// Returns the value of bit `p mod 64` in `x`, `(x & 2^(p mod 64)) == 2^(p mod 64)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bittest(5, 2);\n /// ```\n public func bittest(x : Nat64, p : Nat) : Bool {\n Prim.btstNat64(x, Prim.natToNat64(p))\n };\n\n /// Returns the value of setting bit `p mod 64` in `x` to `1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitset(5, 1) == 7;\n /// ```\n public func bitset(x : Nat64, p : Nat) : Nat64 {\n x | (1 << Prim.natToNat64(p))\n };\n\n /// Returns the value of clearing bit `p mod 64` in `x` to `0`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitclear(5, 2) == 1;\n /// ```\n public func bitclear(x : Nat64, p : Nat) : Nat64 {\n x & ^(1 << Prim.natToNat64(p))\n };\n\n /// Returns the value of flipping bit `p mod 64` in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitflip(5, 2) == 1;\n /// ```\n public func bitflip(x : Nat64, p : Nat) : Nat64 {\n x ^ (1 << Prim.natToNat64(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitcountNonZero(5) == 2;\n /// ```\n public let bitcountNonZero : (x : Nat64) -> Nat64 = Prim.popcntNat64;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitcountLeadingZero(5) == 61;\n /// ```\n public let bitcountLeadingZero : (x : Nat64) -> Nat64 = Prim.clzNat64;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitcountTrailingZero(16) == 4;\n /// ```\n public let bitcountTrailingZero : (x : Nat64) -> Nat64 = Prim.ctzNat64;\n\n /// Returns the upper (i.e. most significant), lower (least significant)\n /// and in-between bytes of `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.explode 0xbb772266aa885511 == (187, 119, 34, 102, 170, 136, 85, 17);\n /// ```\n public let explode : (x : Nat64) -> (msb : Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, lsb : Nat8) = Prim.explodeNat64;\n\n /// Returns the sum of `x` and `y`, `x +% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.addWrap(Nat64.maxValue, 1) == 0;\n /// assert Nat64.maxValue +% (1 : Nat64) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Nat64, y : Nat64) : Nat64 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`. Wraps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.subWrap(0, 1) == 18446744073709551615;\n /// assert (0 : Nat64) -% (1 : Nat64) == 18446744073709551615;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Nat64, y : Nat64) : Nat64 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.mulWrap(4294967296, 4294967296) == 0;\n /// assert (4294967296 : Nat64) *% (4294967296 : Nat64) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Nat64, y : Nat64) : Nat64 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.powWrap(2, 64) == 0;\n /// assert (2 : Nat64) **% (64 : Nat64) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Nat64, y : Nat64) : Nat64 { x **% y };\n\n /// Returns an iterator over `Nat64` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat64.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat64.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Nat64, toExclusive : Nat64) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Nat64 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Nat64` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat64.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat64.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Nat64, to : Nat64) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Nat64 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Nat64 values, from 0 to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat64.allValues();\n /// assert iter.next() == ?0;\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(0, maxValue)\n };\n\n}\n"},"pure/RealTimeQueue.mo":{"content":"/// Double-ended immutable queue with guaranteed `O(1)` push/pop operations (caveat: high constant factor).\n/// For a default immutable queue implementation, see `pure/Queue`.\n///\n/// This module provides an alternative implementation with better worst-case performance for single operations, e.g. `pushBack` and `popFront`.\n/// These operations are always constant time, `O(1)`, which eliminates spikes in performance of `pure/Queue` operations\n/// that are caused by the amortized nature of the `pure/Queue` implementation, which can lead to `O(n)` worst-case performance for a single operation.\n/// The spikes in performance can cause a single message to take multiple more rounds to complete than most other messages.\n///\n/// However, the `O(1)` operations come at a cost of higher constant factor than the `pure/Queue` implementation:\n/// - 'pop' operations are on average 3x more expensive\n/// - 'push' operations are on average 8x more expensive\n///\n/// For better performance across multiple operations and when the spikes in single operations are not a problem, use `pure/Queue`.\n/// For guaranteed `O(1)` operations, use `pure/RealTimeQueue`.\n///\n/// ---\n///\n/// The interface is purely functional, not imperative, and queues are immutable values.\n/// In particular, Queue operations such as push and pop do not update their input queue but, instead, return the\n/// value of the modified Queue, alongside any other data.\n/// The input queue is left unchanged.\n///\n/// Examples of use-cases:\n/// - Queue (FIFO) by using `pushBack()` and `popFront()`.\n/// - Stack (LIFO) by using `pushFront()` and `popFront()`.\n/// - Deque (double-ended queue) by using any combination of push/pop operations on either end.\n///\n/// A Queue is internally implemented as a real-time double-ended queue based on the paper\n/// \"Real-Time Double-Ended Queue Verified (Proof Pearl)\". The implementation maintains\n/// worst-case constant time `O(1)` for push/pop operations through gradual rebalancing steps.\n///\n/// Construction: Create a new queue with the `empty()` function.\n///\n/// Note that some operations that traverse the elements of the queue (e.g. `forEach`, `values`) preserve the order of the elements,\n/// whereas others (e.g. `map`, `contains`) do NOT guarantee that the elements are visited in any order.\n/// The order is undefined to avoid allocations, making these operations more efficient.\n///\n/// ```motoko name=import\n/// import Queue \"mo:core/pure/RealTimeQueue\";\n/// ```\n\nimport Types \"../Types\";\nimport List \"List\";\nimport Option \"../Option\";\nimport { trap } \"../Runtime\";\nimport Iter \"../Iter\";\n\nmodule {\n /// The real-time queue data structure can be in one of the following states:\n ///\n /// - `#empty`: the queue is empty\n /// - `#one`: the queue contains a single element\n /// - `#two`: the queue contains two elements\n /// - `#three`: the queue contains three elements\n /// - `#idles`: the queue is in the idle state, where `l` and `r` are non-empty stacks of elements fulfilling the size invariant\n /// - `#rebal`: the queue is in the rebalancing state\n public type Queue = {\n #empty;\n #one : T;\n #two : (T, T);\n #three : (T, T, T);\n #idles : (Idle, Idle);\n #rebal : States\n };\n\n /// Create a new empty queue.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.empty();\n /// assert Queue.isEmpty(queue);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func empty() : Queue = #empty;\n\n /// Determine whether a queue is empty.\n /// Returns true if `queue` is empty, otherwise `false`.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.empty();\n /// assert Queue.isEmpty(queue);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func isEmpty(self : Queue) : Bool = switch self {\n case (#empty) true;\n case _ false\n };\n\n /// Create a new queue comprising a single element.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.singleton(25);\n /// assert Queue.size(queue) == 1;\n /// assert Queue.peekFront(queue) == ?25;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func singleton(element : T) : Queue = #one(element);\n\n /// Determine the number of elements contained in a queue.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.singleton(42);\n /// assert Queue.size(queue) == 1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func size(self : Queue) : Nat = switch self {\n case (#empty) 0;\n case (#one _) 1;\n case (#two _) 2;\n case (#three _) 3;\n case (#idles((l, nL), (r, nR))) {\n debug assert Stacks.size(l) == nL and Stacks.size(r) == nR;\n nL + nR\n };\n case (#rebal(_, big, small)) BigState.size(big) + SmallState.size(small)\n };\n\n /// Test if a queue contains a given value.\n /// Returns true if the queue contains the item, otherwise false.\n ///\n /// Note: The order in which elements are visited is undefined, for performance reasons.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// assert Queue.contains(queue, Nat.equal, 1);\n /// assert not Queue.contains(queue, Nat.equal, 3);\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n public func contains(self : Queue, equal : (implicit : (T, T) -> Bool), item : T) : Bool = switch self {\n case (#empty) false;\n case (#one(x)) equal(x, item);\n case (#two(x, y)) equal(x, item) or equal(y, item);\n case (#three(x, y, z)) equal(x, item) or equal(y, item) or equal(z, item);\n case (#idles(((l1, l2), _), ((r1, r2), _))) List.contains(l1, equal, item) or List.contains(l2, equal, item) or List.contains(r2, equal, item) or List.contains(r1, equal, item); // note that the order of the right stack is reversed, but for this operation it does not matter\n case (#rebal(_, big, small)) {\n let (extraB, _, (oldB1, oldB2), _) = BigState.current(big);\n let (extraS, _, (oldS1, oldS2), _) = SmallState.current(small);\n // note that the order of one of the stacks is reversed (depending on the `direction` field), but for this operation it does not matter\n List.contains(extraB, equal, item) or List.contains(oldB1, equal, item) or List.contains(oldB2, equal, item) or List.contains(extraS, equal, item) or List.contains(oldS1, equal, item) or List.contains(oldS2, equal, item)\n }\n };\n\n /// Inspect the optional element on the front end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, the front element of `queue`.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushFront(Queue.pushFront(Queue.empty(), 2), 1);\n /// assert Queue.peekFront(queue) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func peekFront(self : Queue) : ?T = switch self {\n case (#idles((l, _), _)) Stacks.first(l);\n case (#rebal(dir, big, small)) switch dir {\n case (#left) ?SmallState.peek(small);\n case (#right) ?BigState.peek(big)\n };\n case (#empty) null;\n case (#one(x)) ?x;\n case (#two(x, _)) ?x;\n case (#three(x, _, _)) ?x\n };\n\n /// Inspect the optional element on the back end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, the back element of `queue`.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushFront(Queue.pushFront(Queue.empty(), 2), 1);\n /// assert Queue.peekBack(queue) == ?2;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func peekBack(self : Queue) : ?T = switch self {\n case (#idles(_, (r, _))) Stacks.first(r);\n case (#rebal(dir, big, small)) switch dir {\n case (#left) ?BigState.peek(big);\n case (#right) ?SmallState.peek(small)\n };\n case (#empty) null;\n case (#one(x)) ?x;\n case (#two(_, y)) ?y;\n case (#three(_, _, z)) ?z\n };\n\n /// Insert a new element on the front end of a queue.\n /// Returns the new queue with `element` in the front followed by the elements of `queue`.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushFront(Queue.pushFront(Queue.empty(), 2), 1);\n /// assert Queue.peekFront(queue) == ?1;\n /// assert Queue.peekBack(queue) == ?2;\n /// assert Queue.size(queue) == 2;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)` worst-case!\n ///\n /// Space: `O(1)` worst-case!\n public func pushFront(self : Queue, element : T) : Queue = switch self {\n case (#idles(l0, rnR)) {\n let lnL = Idle.push(l0, element); // enque the element to the left end\n // check if the size invariant still holds\n if (3 * rnR.1 >= lnL.1) {\n debug assert 3 * lnL.1 >= rnR.1;\n #idles(lnL, rnR)\n } else {\n // initiate the rebalancing process\n let (l, nL) = lnL;\n let (r, nR) = rnR;\n let targetSizeL = nL - nR - 1 : Nat;\n let targetSizeR = 2 * nR + 1;\n debug assert targetSizeL + targetSizeR == nL + nR;\n let big = #big1(Current.new(l, targetSizeL), l, null, targetSizeL);\n let small = #small1(Current.new(r, targetSizeR), r, null);\n let states = (#right, big, small);\n let states6 = States.step(States.step(States.step(States.step(States.step(States.step(states))))));\n #rebal(states6)\n }\n };\n // if the queue is in the middle of a rebalancing process: push the element and advance the rebalancing process by 4 steps\n // move back into the idle state if the rebalancing is done\n case (#rebal(dir, big0, small0)) switch dir {\n case (#right) {\n let big = BigState.push(big0, element);\n let states4 = States.step(States.step(States.step(States.step((#right, big, small0)))));\n debug assert states4.0 == #right;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(big, small);\n #idles(big, small)\n };\n case _ #rebal(states4)\n }\n };\n case (#left) {\n let small = SmallState.push(small0, element);\n let states4 = States.step(States.step(States.step(States.step((#left, big0, small)))));\n debug assert states4.0 == #left;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(small, big);\n #idles(small, big) // swapped because dir=left\n };\n case _ #rebal(states4)\n }\n }\n };\n case (#empty) #one(element);\n case (#one(y)) #two(element, y);\n case (#two(y, z)) #three(element, y, z);\n case (#three(a, b, c)) {\n let i1 = ((?(element, ?(a, null)), null), 2);\n let i2 = ((?(c, ?(b, null)), null), 2);\n #idles(i1, i2)\n }\n };\n\n /// Insert a new element on the back end of a queue.\n /// Returns the new queue with all the elements of `queue`, followed by `element` on the back.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// assert Queue.peekBack(queue) == ?2;\n /// assert Queue.size(queue) == 2;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)` worst-case!\n ///\n /// Space: `O(1)` worst-case!\n public func pushBack(self : Queue, element : T) : Queue = switch self {\n // Equivalent to: `reverse(pushFront(reverse(queue), element))`. Inlined for performance.\n case (#idles(rnR, l0)) {\n // ^ reversed input\n let lnL = Idle.push(l0, element);\n if (3 * rnR.1 >= lnL.1) {\n debug assert 3 * lnL.1 >= rnR.1;\n #idles(rnR, lnL) // reversed output\n } else {\n let (l, nL) = lnL;\n let (r, nR) = rnR;\n let targetSizeL = nL - nR - 1 : Nat;\n let targetSizeR = 2 * nR + 1;\n debug assert targetSizeL + targetSizeR == nL + nR;\n let big = #big1(Current.new(l, targetSizeL), l, null, targetSizeL);\n let small = #small1(Current.new(r, targetSizeR), r, null);\n let states = (#left, big, small); // reversed output\n let states6 = States.step(States.step(States.step(States.step(States.step(States.step(states))))));\n #rebal(states6)\n }\n };\n case (#rebal(dir, big0, small0)) switch dir {\n case (#left) {\n // ^ reversed input\n let big = BigState.push(big0, element);\n let states4 = States.step(States.step(States.step(States.step((#left, big, small0))))); // reversed output\n debug assert states4.0 == #left;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(big, small);\n #idles(small, big) // reversed output\n };\n case _ #rebal(states4)\n }\n };\n case (#right) {\n // ^ reversed input\n let small = SmallState.push(small0, element);\n let states4 = States.step(States.step(States.step(States.step((#right, big0, small))))); // reversed output\n debug assert states4.0 == #right;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(small, big);\n #idles(big, small) // reversed output\n };\n case _ #rebal(states4)\n }\n }\n };\n case (#empty) #one(element);\n case (#one(y)) #two(y, element);\n case (#two(y, z)) #three(y, z, element);\n case (#three(a, b, c)) {\n let i1 = ((?(a, ?(b, null)), null), 2);\n let i2 = ((?(element, ?(c, null)), null), 2);\n #idles(i1, i2)\n }\n };\n\n /// Remove the element on the front end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, it returns a pair of\n /// the first element and a new queue that contains all the remaining elements of `queue`.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Runtime \"mo:core/Runtime\";\n ///\n /// persistent actor {\n /// do {\n /// let initial = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// let ?(frontElement, remainingQueue) = Queue.popFront(initial) else Runtime.trap \"Empty queue impossible\";\n /// assert frontElement == 1;\n /// assert Queue.size(remainingQueue) == 1;\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(1)` worst-case!\n ///\n /// Space: `O(1)` worst-case!\n public func popFront(self : Queue) : ?(T, Queue) = switch self {\n case (#idles(l0, rnR)) {\n let (x, lnL) = Idle.pop(l0);\n if (3 * lnL.1 >= rnR.1) {\n ?(x, #idles(lnL, rnR))\n } else if (lnL.1 >= 1) {\n let (l, nL) = lnL;\n let (r, nR) = rnR;\n let targetSizeL = 2 * nL + 1;\n let targetSizeR = nR - nL - 1 : Nat;\n debug assert targetSizeL + targetSizeR == nL + nR;\n let small = #small1(Current.new(l, targetSizeL), l, null);\n let big = #big1(Current.new(r, targetSizeR), r, null, targetSizeR);\n let states = (#left, big, small);\n let states6 = States.step(States.step(States.step(States.step(States.step(States.step(states))))));\n ?(x, #rebal(states6))\n } else {\n ?(x, Stacks.smallqueue(rnR.0))\n }\n };\n case (#rebal(dir, big0, small0)) switch dir {\n case (#left) {\n let (x, small) = SmallState.pop(small0);\n let states4 = States.step(States.step(States.step(States.step((#left, big0, small)))));\n debug assert states4.0 == #left;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(small, big);\n ?(x, #idles(small, big))\n };\n case _ ?(x, #rebal(states4))\n }\n };\n case (#right) {\n let (x, big) = BigState.pop(big0);\n let states4 = States.step(States.step(States.step(States.step((#right, big, small0)))));\n debug assert states4.0 == #right;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(big, small);\n ?(x, #idles(big, small))\n };\n case _ ?(x, #rebal(states4))\n }\n }\n };\n case (#empty) null;\n case (#one(x)) ?(x, #empty);\n case (#two(x, y)) ?(x, #one(y));\n case (#three(x, y, z)) ?(x, #two(y, z))\n };\n\n /// Remove the element on the back end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, it returns a pair of\n /// a new queue that contains the remaining elements of `queue`\n /// and, as the second pair item, the removed back element.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Runtime \"mo:core/Runtime\";\n ///\n /// persistent actor {\n /// do {\n /// let initial = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// let ?(reducedQueue, removedElement) = Queue.popBack(initial) else Runtime.trap \"Empty queue impossible\";\n /// assert removedElement == 2;\n /// assert Queue.size(reducedQueue) == 1;\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(1)` worst-case!\n ///\n /// Space: `O(1)` worst-case!\n public func popBack(self : Queue) : ?(Queue, T) = switch self {\n // Equivalent to:\n // = do ? { let (x, queue2) = popFront(reverse(queue))!; (reverse(queue2), x) };\n // Inlined for performance.\n case (#idles(rnR, l0)) {\n // ^ reversed input\n let (x, lnL) = Idle.pop(l0);\n if (3 * lnL.1 >= rnR.1) {\n ?(#idles(rnR, lnL), x) // reversed output\n } else if (lnL.1 >= 1) {\n let (l, nL) = lnL;\n let (r, nR) = rnR;\n let targetSizeL = 2 * nL + 1;\n let targetSizeR = nR - nL - 1 : Nat;\n debug assert targetSizeL + targetSizeR == nL + nR;\n let small = #small1(Current.new(l, targetSizeL), l, null);\n let big = #big1(Current.new(r, targetSizeR), r, null, targetSizeR);\n let states = (#right, big, small); // reversed output\n let states6 = States.step(States.step(States.step(States.step(States.step(States.step(states))))));\n ?(#rebal(states6), x)\n } else {\n ?(Stacks.smallqueueReversed(rnR.0), x) // reversed output\n }\n };\n case (#rebal(dir, big0, small0)) switch dir {\n case (#right) {\n // ^ reversed input\n let (x, small) = SmallState.pop(small0);\n let states4 = States.step(States.step(States.step(States.step((#right, big0, small))))); // reversed output\n debug assert states4.0 == #right;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(big, small);\n ?(#idles(big, small), x) // reversed output\n };\n case _ ?(#rebal(states4), x)\n }\n };\n case (#left) {\n // ^ reversed input\n let (x, big) = BigState.pop(big0);\n let states4 = States.step(States.step(States.step(States.step((#left, big, small0))))); // reversed output\n debug assert states4.0 == #left;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(small, big);\n ?(#idles(small, big), x) // reversed output\n };\n case _ ?(#rebal(states4), x)\n }\n }\n };\n case (#empty) null;\n case (#one(x)) ?(#empty, x);\n case (#two(x, y)) ?(#one(x), y);\n case (#three(x, y, z)) ?(#two(x, y), z)\n };\n\n /// Turn an iterator into a queue, consuming it.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([0, 1, 2, 3, 4].values());\n /// assert Queue.peekFront(queue) == ?0;\n /// assert Queue.peekBack(queue) == ?4;\n /// assert Queue.size(queue) == 5;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n public func fromIter(iter : Iter) : Queue {\n var queue = empty();\n Iter.forEach(iter, func(t : T) = queue := pushBack(queue, t));\n queue\n };\n\n /// Convert an iterator into a queue, consuming the iterator.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// transient let iter = [0, 1, 2, 3, 4].values();\n ///\n /// let queue = iter.toQueue();\n ///\n /// assert Queue.peekFront(queue) == ?0;\n /// assert Queue.peekBack(queue) == ?4;\n /// assert Queue.size(queue) == 5;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n public func toQueue(self : Iter) : Queue {\n fromIter(self)\n };\n\n /// Create an iterator over the elements in the queue. The order of the elements is from front to back.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Iter.toArray(Queue.values(queue)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(1)` to create the iterator and for each `next()` call.\n ///\n /// Space: `O(1)` to create the iterator and for each `next()` call.\n public func values(self : Queue) : Iter.Iter {\n object {\n var current = self;\n public func next() : ?T {\n switch (popFront(current)) {\n case null null;\n case (?result) {\n current := result.1;\n ?result.0\n }\n }\n }\n }\n };\n\n /// Compare two queues for equality using a provided equality function to compare their elements.\n /// Two queues are considered equal if they contain the same elements in the same order.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue1 = Queue.fromIter([1, 2, 3].values());\n /// let queue2 = Queue.fromIter([1, 2, 3].values());\n /// let queue3 = Queue.fromIter([1, 3, 2].values());\n /// assert Queue.equal(queue1, queue2, Nat.equal);\n /// assert not Queue.equal(queue1, queue3, Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n public func equal(self : Queue, other : Queue, equal : (implicit : (T, T) -> Bool)) : Bool {\n if (size(self) != size(other)) {\n return false\n };\n func go(self : Queue, other : Queue, equal : (T, T) -> Bool) : Bool = switch (popFront self, popFront other) {\n case (null, null) true;\n case (?(x1, tail1), ?(x2, tail2)) equal(x1, x2) and go(tail1, tail2, equal); // Note that this is tail recursive (`and` is expanded to `if`).\n case _ false\n };\n go(self, other, equal)\n };\n\n /// Compare two queues lexicographically using a provided comparison function to compare their elements.\n /// Returns `#less` if `queue1` is lexicographically less than `queue2`, `#equal` if they are equal, and `#greater` otherwise.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue1 = Queue.fromIter([1, 2, 3].values());\n /// let queue2 = Queue.fromIter([1, 2, 4].values());\n /// assert Queue.compare(queue1, queue2, Nat.compare) == #less;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n public func compare(self : Queue, other : Queue, compareItem : (implicit : (compare : (T, T) -> Types.Order))) : Types.Order = switch (popFront self, popFront other) {\n case (null, null) #equal;\n case (null, _) #less;\n case (_, null) #greater;\n case (?(x1, selfTail), ?(x2, otherTail)) {\n switch (compareItem(x1, x2)) {\n case (#equal) compare(selfTail, otherTail, compareItem);\n case order order\n }\n }\n };\n\n /// Return true if the given predicate is true for all queue elements.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([2, 4, 6].values());\n /// assert Queue.all(queue, func n = n % 2 == 0);\n /// assert not Queue.all(queue, func n = n > 4);\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)` as the current implementation uses `values` to iterate over the queue.\n ///\n /// *Runtime and space assumes that the `predicate` runs in `O(1)` time and space.\n public func all(self : Queue, predicate : T -> Bool) : Bool = switch self {\n case (#empty) true;\n case (#one(x)) predicate x;\n case (#two(x, y)) predicate x and predicate y;\n case (#three(x, y, z)) predicate x and predicate y and predicate z;\n case _ {\n for (item in values self) if (not (predicate item)) return false;\n return true\n }\n };\n\n /// Return true if the given predicate is true for any queue element.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.any(queue, func n = n > 2);\n /// assert not Queue.any(queue, func n = n > 3);\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)` as the current implementation uses `values` to iterate over the queue.\n ///\n /// *Runtime and space assumes that the `predicate` runs in `O(1)` time and space.\n public func any(self : Queue, predicate : T -> Bool) : Bool = switch self {\n case (#empty) false;\n case (#one(x)) predicate x;\n case (#two(x, y)) predicate x or predicate y;\n case (#three(x, y, z)) predicate x or predicate y or predicate z;\n case _ {\n for (item in values self) if (predicate item) return true;\n return false\n }\n };\n\n /// Call the given function for its side effect on each queue element in order: from front to back.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// persistent actor {\n /// var text = \"\";\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// Queue.forEach(queue, func n = text #= Nat.toText(n));\n /// assert text == \"123\";\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in `O(1)` time and space.\n public func forEach(self : Queue, f : T -> ()) = switch self {\n case (#empty) ();\n case (#one(x)) f x;\n case (#two(x, y)) { f x; f y };\n case (#three(x, y, z)) { f x; f y; f z };\n // Preserve the order when visiting the elements. Note that the #idles case would require reversing the second stack.\n case _ {\n for (t in values self) f t\n }\n };\n\n /// Create a new queue by applying the given function to each element of the original queue.\n ///\n /// Note: The order of visiting elements is undefined with the current implementation.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let mapped = Queue.map(queue, func n = n * 2);\n /// assert Queue.size(mapped) == 3;\n /// assert Queue.peekFront(mapped) == ?2;\n /// assert Queue.peekBack(mapped) == ?6;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in `O(1)` time and space.\n public func map(self : Queue, f : T1 -> T2) : Queue = switch self {\n case (#empty) #empty;\n case (#one(x)) #one(f x);\n case (#two(x, y)) #two(f x, f y);\n case (#three(x, y, z)) #three(f x, f y, f z);\n case (#idles(l, r)) #idles(Idle.map(l, f), Idle.map(r, f));\n case (#rebal(_)) {\n // No reason to rebuild the #rebal state.\n // future work: It could be further optimized by building a balanced #idles state directly since we know the sizes.\n var q = empty();\n for (t in values self) q := pushBack(q, f t);\n q\n }\n };\n\n /// Create a new queue with only those elements of the original queue for which\n /// the given predicate returns true.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3, 4].values());\n /// let filtered = Queue.filter(queue, func n = n % 2 == 0);\n /// assert Queue.size(filtered) == 2;\n /// assert Queue.peekFront(filtered) == ?2;\n /// assert Queue.peekBack(filtered) == ?4;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `predicate` runs in `O(1)` time and space.\n public func filter(self : Queue, predicate : T -> Bool) : Queue {\n var q = empty();\n for (t in values self) if (predicate t) q := pushBack(q, t);\n q\n };\n\n /// Create a new queue by applying the given function to each element of the original queue\n /// and collecting the results for which the function returns a non-null value.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3, 4].values());\n /// let filtered = Queue.filterMap(queue, func n = if (n % 2 == 0) { ?n } else null);\n /// assert Queue.size(filtered) == 2;\n /// assert Queue.peekFront(filtered) == ?2;\n /// assert Queue.peekBack(filtered) == ?4;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that f runs in `O(1)` time and space.\n public func filterMap(self : Queue, f : T -> ?U) : Queue {\n var q = empty();\n for (t in values self) {\n switch (f t) {\n case (?x) q := pushBack(q, x);\n case null ()\n }\n };\n q\n };\n\n /// Create a `Text` representation of a queue for debugging purposes.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.toText(queue, Nat.toText) == \"RealTimeQueue[1, 2, 3]\";\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that f runs in `O(1)` time and space.\n public func toText(self : Queue, f : (implicit : (toText : T -> Text))) : Text {\n var text = \"RealTimeQueue[\";\n var first = true;\n for (t in values self) {\n if (first) first := false else text #= \", \";\n text #= f(t)\n };\n text # \"]\"\n };\n\n /// Reverse the order of elements in a queue.\n /// This operation is cheap, it does NOT require copying the elements.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let reversed = Queue.reverse(queue);\n /// assert Queue.peekFront(reversed) == ?3;\n /// assert Queue.peekBack(reversed) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n public func reverse(self : Queue) : Queue = switch self {\n case (#idles(l, r)) #idles(r, l);\n case (#rebal(#left, big, small)) #rebal(#right, big, small);\n case (#rebal(#right, big, small)) #rebal(#left, big, small);\n case (#empty) self;\n case (#one(_)) self;\n case (#two(x, y)) #two(y, x);\n case (#three(x, y, z)) #three(z, y, x)\n };\n\n type Stacks = (left : List, right : List);\n\n module Stacks {\n public func push((left, right) : Stacks, t : T) : Stacks = (?(t, left), right);\n\n public func pop(stacks : Stacks) : Stacks = switch stacks {\n case (?(_, leftTail), right) (leftTail, right);\n case (null, ?(_, rightTail)) (null, rightTail);\n case (null, null) stacks\n };\n\n public func first((left, right) : Stacks) : ?T = switch (left) {\n case (?(h, _)) ?h;\n case (null) do ? { right!.0 }\n };\n\n public func unsafeFirst((left, right) : Stacks) : T = switch (left) {\n case (?(h, _)) h;\n case (null) Option.unwrap(right).0\n };\n\n public func isEmpty((left, right) : Stacks) : Bool = List.isEmpty(left) and List.isEmpty(right);\n\n public func size((left, right) : Stacks) : Nat = List.size(left) + List.size(right);\n\n public func smallqueue((left, right) : Stacks) : Queue = switch (left, right) {\n case (null, null) #empty;\n case (null, ?(x, null)) #one(x);\n case (?(x, null), null) #one(x);\n case (null, ?(x, ?(y, null))) #two(y, x);\n case (?(x, null), ?(y, null)) #two(y, x);\n case (?(x, ?(y, null)), null) #two(y, x);\n case (null, ?(x, ?(y, ?(z, null)))) #three(z, y, x);\n case (?(x, ?(y, ?(z, null))), null) #three(z, y, x);\n case (?(x, ?(y, null)), ?(z, null)) #three(z, y, x);\n case (?(x, null), ?(y, ?(z, null))) #three(z, y, x);\n case _ (trap \"Queue.Stacks.smallqueue() impossible\")\n };\n\n public func smallqueueReversed((left, right) : Stacks) : Queue = switch (left, right) {\n case (null, null) #empty;\n case (null, ?(x, null)) #one(x);\n case (?(x, null), null) #one(x);\n case (null, ?(x, ?(y, null))) #two(x, y);\n case (?(x, null), ?(y, null)) #two(x, y);\n case (?(x, ?(y, null)), null) #two(x, y);\n case (null, ?(x, ?(y, ?(z, null)))) #three(x, y, z);\n case (?(x, ?(y, ?(z, null))), null) #three(x, y, z);\n case (?(x, ?(y, null)), ?(z, null)) #three(x, y, z);\n case (?(x, null), ?(y, ?(z, null))) #three(x, y, z);\n case _ (trap \"Queue.Stacks.smallqueueReversed() impossible\")\n };\n public func map((left, right) : Stacks, f : T -> U) : Stacks = (List.map(left, f), List.map(right, f))\n };\n\n /// Represents an end of the queue that is not in a rebalancing process. It is a stack and its size.\n type Idle = (stacks : Stacks, size : Nat);\n module Idle {\n public func push((stacks, size) : Idle, t : T) : Idle = (Stacks.push(stacks, t), 1 + size);\n public func pop((stacks, size) : Idle) : (T, Idle) = (Stacks.unsafeFirst(stacks), (Stacks.pop(stacks), size - 1 : Nat));\n public func peek((stacks, _) : Idle) : T = Stacks.unsafeFirst(stacks);\n\n public func map((stacks, size) : Idle, f : T -> U) : Idle = (Stacks.map(stacks, f), size)\n };\n\n /// Stores information about operations that happen during rebalancing but which have not become part of the old state that is being rebalanced.\n ///\n /// - `extra`: newly added elements\n /// - `extraSize`: size of `extra`\n /// - `old`: elements contained before the rebalancing process\n /// - `targetSize`: the number of elements which will be contained after the rebalancing is finished\n type Current = (extra : List, extraSize : Nat, old : Stacks, targetSize : Nat);\n\n module Current {\n public func new(old : Stacks, targetSize : Nat) : Current = (null, 0, old, targetSize);\n\n public func push((extra, extraSize, old, targetSize) : Current, t : T) : Current = (?(t, extra), 1 + extraSize, old, targetSize);\n\n public func pop((extra, extraSize, old, targetSize) : Current) : (T, Current) = switch (extra) {\n case (?(h, t)) (h, (t, extraSize - 1 : Nat, old, targetSize));\n case (null) (Stacks.unsafeFirst(old), (null, extraSize, Stacks.pop(old), targetSize - 1 : Nat))\n };\n\n public func peek((extra, _, old, _) : Current) : T = switch (extra) {\n case (?(h, _)) h;\n case (null) Stacks.unsafeFirst(old)\n };\n\n public func size((_, extraSize, _, targetSize) : Current) : Nat = extraSize + targetSize\n };\n\n /// The bigger end of the queue during rebalancing. It is used to split the bigger end of the queue into the new big end and a portion to be added to the small end. Can be in one of the following states:\n ///\n /// - `#big1(cur, big, aux, n)`: Initial state. Using the step function it takes `n`-elements from the `big` stack and puts them to `aux` in reversed order. `#big1(cur, x1 .. xn : bigTail, [], n) ->* #big1(cur, bigTail, xn .. x1, 0)`. The `bigTail` is later given to the `small` end.\n /// - `#big2(common)`: Is used to reverse the elements from the previous phase to restore the original order. `common = #copy(cur, xn .. x1, [], 0) ->* #copy(cur, [], x1 .. xn, n)`.\n type BigState = {\n #big1 : (Current, Stacks, List, Nat);\n #big2 : CommonState\n };\n\n module BigState {\n public func push(big : BigState, t : T) : BigState = switch big {\n case (#big1(cur, big, aux, n)) #big1(Current.push(cur, t), big, aux, n);\n case (#big2(state)) #big2(CommonState.push(state, t))\n };\n\n public func pop(big : BigState) : (T, BigState) = switch big {\n case (#big1(cur, big, aux, n)) {\n let (x, cur2) = Current.pop(cur);\n (x, #big1(cur2, big, aux, n))\n };\n case (#big2(state)) {\n let (x, state2) = CommonState.pop(state);\n (x, #big2(state2))\n }\n };\n\n public func peek(big : BigState) : T = switch big {\n case (#big1(cur, _, _, _)) Current.peek(cur);\n case (#big2(state)) CommonState.peek(state)\n };\n\n public func step(big : BigState) : BigState = switch big {\n case (#big1(cur, big, aux, n)) {\n if (n == 0)\n #big2(CommonState.norm(#copy(cur, aux, null, 0))) else\n #big1(cur, Stacks.pop(big), ?(Stacks.unsafeFirst(big), aux), n - 1 : Nat)\n };\n case (#big2(state)) #big2(CommonState.step(state))\n };\n\n public func size(big : BigState) : Nat = switch big {\n case (#big1(cur, _, _, _)) Current.size(cur);\n case (#big2(state)) CommonState.size(state)\n };\n\n public func current(big : BigState) : Current = switch big {\n case (#big1(cur, _, _, _)) cur;\n case (#big2(state)) CommonState.current(state)\n }\n };\n\n /// The smaller end of the queue during rebalancing. Can be in one of the following states:\n ///\n /// - `#small1(cur, small, aux)`: Initial state. Using the step function the original elements are reversed. `#small1(cur, s1 .. sn, []) ->* #small1(cur, [], sn .. s1)`, note that `aux` is initially empty, at the end contains the reversed elements from the small stack.\n /// - `#small2(cur, aux, big, new, size)`: Using the step function the newly transfered tail from the bigger end is reversed on top of the `new` list. `#small2(cur, sn .. s1, b1 .. bm, [], 0) ->* #small2(cur, sn .. s1, [], bm .. b1, m)`, note that `aux` is the reversed small stack from the previous phase, `new` is initially empty, `size` corresponds to the size of `new`.\n /// - `#small3(common)`: Is used to reverse the elements from the two previous phases again to get them again in the original order. `#copy(cur, sn .. s1, bm .. b1, m) ->* #copy(cur, [], s1 .. sn : bm .. b1, n + m)`, note that the correct order of the elements from the big stack is reversed.\n type SmallState = {\n #small1 : (Current, Stacks, List);\n #small2 : (Current, List, Stacks, List, Nat);\n #small3 : CommonState\n };\n\n module SmallState {\n public func push(state : SmallState, t : T) : SmallState = switch state {\n case (#small1(cur, small, aux)) #small1(Current.push(cur, t), small, aux);\n case (#small2(cur, aux, big, new, newN)) #small2(Current.push(cur, t), aux, big, new, newN);\n case (#small3(common)) #small3(CommonState.push(common, t))\n };\n\n public func pop(state : SmallState) : (T, SmallState) = switch state {\n case (#small1(cur0, small, aux)) {\n let (t, cur) = Current.pop(cur0);\n (t, #small1(cur, small, aux))\n };\n case (#small2(cur0, aux, big, new, newN)) {\n let (t, cur) = Current.pop(cur0);\n (t, #small2(cur, aux, big, new, newN))\n };\n case (#small3(common0)) {\n let (t, common) = CommonState.pop(common0);\n (t, #small3(common))\n }\n };\n\n public func peek(state : SmallState) : T = switch state {\n case (#small1(cur, _, _)) Current.peek(cur);\n case (#small2(cur, _, _, _, _)) Current.peek(cur);\n case (#small3(common)) CommonState.peek(common)\n };\n\n public func step(state : SmallState) : SmallState = switch state {\n case (#small1(cur, small, aux)) {\n if (Stacks.isEmpty(small)) state else #small1(cur, Stacks.pop(small), ?(Stacks.unsafeFirst(small), aux))\n };\n case (#small2(cur, aux, big, new, newN)) {\n if (Stacks.isEmpty(big)) #small3(CommonState.norm(#copy(cur, aux, new, newN))) else #small2(cur, aux, Stacks.pop(big), ?(Stacks.unsafeFirst(big), new), 1 + newN)\n };\n case (#small3(common)) #small3(CommonState.step(common))\n };\n\n public func size(state : SmallState) : Nat = switch state {\n case (#small1(cur, _, _)) Current.size(cur);\n case (#small2(cur, _, _, _, _)) Current.size(cur);\n case (#small3(common)) CommonState.size(common)\n };\n\n public func current(state : SmallState) : Current = switch state {\n case (#small1(cur, _, _)) cur;\n case (#small2(cur, _, _, _, _)) cur;\n case (#small3(common)) CommonState.current(common)\n }\n };\n\n type CopyState = { #copy : (Current, List, List, Nat) };\n\n /// Represents the last rebalancing phase of both small and big ends of the queue. It is used to reverse the elements from the previous phases to restore the original order. It can be in one of the following states:\n ///\n /// - `#copy(cur, aux, new, sizeOfNew)`: Puts the elements from `aux` in reversed order on top of `new`. `#copy(cur, xn .. x1, new, sizeOfNew) ->* #copy(cur, [], x1 .. xn : new, n + sizeOfNew)`.\n /// - `#idle(cur, idle)`: The rebalancing process is done and the queue is in the idle state.\n type CommonState = CopyState or { #idle : (Current, Idle) };\n\n module CommonState {\n public func step(common : CommonState) : CommonState = switch common {\n case (#copy copy) {\n let (cur, aux, new, sizeOfNew) = copy;\n let (_, _, _, targetSize) = cur;\n norm(if (sizeOfNew < targetSize) #copy(cur, unsafeTail(aux), ?(unsafeHead(aux), new), 1 + sizeOfNew) else #copy copy)\n };\n case (#idle _) common\n };\n\n public func norm(copy : CopyState) : CommonState {\n let #copy(cur, _, new, sizeOfNew) = copy;\n let (extra, extraSize, _, targetSize) = cur;\n debug assert sizeOfNew <= targetSize;\n if (sizeOfNew >= targetSize) {\n #idle(cur, ((extra, new), extraSize + sizeOfNew)) // note: aux can be non-empty, thus ignored here, when the target size decreases after pop operations\n } else copy\n };\n\n public func push(common : CommonState, t : T) : CommonState = switch common {\n case (#copy(cur, aux, new, sizeOfNew)) #copy(Current.push(cur, t), aux, new, sizeOfNew);\n case (#idle(cur, idle)) #idle(Current.push(cur, t), Idle.push(idle, t)) // yes, push to both\n };\n\n public func pop(common : CommonState) : (T, CommonState) = switch common {\n case (#copy(cur, aux, new, sizeOfNew)) {\n let (t, cur2) = Current.pop(cur);\n (t, norm(#copy(cur2, aux, new, sizeOfNew)))\n };\n case (#idle(cur, idle)) {\n let (t, idle2) = Idle.pop(idle);\n (t, #idle(Current.pop(cur).1, idle2))\n }\n };\n\n public func peek(common : CommonState) : T = switch common {\n case (#copy(cur, _, _, _)) Current.peek(cur);\n case (#idle(_, idle)) Idle.peek(idle)\n };\n\n public func size(common : CommonState) : Nat = switch common {\n case (#copy(cur, _, _, _)) Current.size(cur);\n case (#idle(_, (_, size))) size\n };\n\n public func current(common : CommonState) : Current = switch common {\n case (#copy(cur, _, _, _)) cur;\n case (#idle(cur, _)) cur\n }\n };\n\n type States = (\n direction : Direction,\n bigState : BigState,\n smallState : SmallState\n );\n\n module States {\n public func step(states : States) : States = switch states {\n case (dir, #big1(_, bigTail, _, 0), #small1(currentS, _, auxS)) {\n (dir, BigState.step(states.1), #small2(currentS, auxS, bigTail, null, 0))\n };\n case (dir, big, small) (dir, BigState.step(big), SmallState.step(small))\n }\n };\n\n type Direction = { #left; #right };\n\n func idlesInvariant(((l, nL), (r, nR)) : (Idle, Idle)) : Bool = Stacks.size(l) == nL and Stacks.size(r) == nR and 3 * nL >= nR and 3 * nR >= nL;\n\n type List = Types.Pure.List;\n type Iter = Types.Iter;\n func unsafeHead(l : List) : T = Option.unwrap(l).0;\n func unsafeTail(l : List) : List = Option.unwrap(l).1\n}\n"},"Int32.mo":{"content":"/// Utility functions on 32-bit signed integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Int32 \"mo:core/Int32\";\n/// ```\nimport Int \"Int\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 32-bit signed integers.\n public type Int32 = Prim.Types.Int32;\n\n /// Minimum 32-bit integer value, `-2 ** 31`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.minValue == -2_147_483_648;\n /// ```\n public let minValue : Int32 = -2_147_483_648;\n\n /// Maximum 32-bit integer value, `+2 ** 31 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.maxValue == +2_147_483_647;\n /// ```\n public let maxValue : Int32 = 2_147_483_647;\n\n /// Converts a 32-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.toInt(123_456) == (123_456 : Int);\n /// ```\n public let toInt : (self : Int32) -> Int = Prim.int32ToInt;\n\n /// Converts a signed integer with infinite precision to a 32-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.fromInt(123_456) == (+123_456 : Int32);\n /// ```\n public let fromInt : Int -> Int32 = Prim.intToInt32;\n\n /// Converts a signed integer with infinite precision to a 32-bit signed integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.fromIntWrap(-123_456) == (-123_456 : Int);\n /// ```\n public let fromIntWrap : Int -> Int32 = Prim.intToInt32Wrap;\n\n /// Converts a 16-bit signed integer to a 32-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.fromInt16(-123) == (-123 : Int32);\n /// ```\n public let fromInt16 : Int16 -> Int32 = Prim.int16ToInt32;\n\n /// Converts an 8-bit signed integer to a 32-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.fromInt8(-123) == (-123 : Int32);\n /// ```\n public func fromInt8(x : Int8) : Int32 {\n Prim.int16ToInt32(Prim.int8ToInt16(x))\n };\n\n /// Converts a 32-bit signed integer to an 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.toInt8(-123) == (-123 : Int8);\n /// ```\n public func toInt8(self : Int32) : Int8 {\n Prim.int16ToInt8(Prim.int32ToInt16(self))\n };\n\n /// Converts a 32-bit signed integer to a 16-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.toInt16(-123) == (-123 : Int16);\n /// ```\n public func toInt16(self : Int32) : Int16 {\n Prim.int32ToInt16(self)\n };\n\n /// Converts a 64-bit signed integer to a 32-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.fromInt64(-123_456) == (-123_456 : Int32);\n /// ```\n public let fromInt64 : Int64 -> Int32 = Prim.int64ToInt32;\n\n /// Converts a 32-bit signed integer to a 64-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.toInt64(-123_456) == (-123_456 : Int64);\n /// ```\n public let toInt64 : (self : Int32) -> Int64 = Prim.int32ToInt64;\n\n /// Converts an unsigned 32-bit integer to a signed 32-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.fromNat32(123_456) == (+123_456 : Int32);\n /// ```\n public let fromNat32 : Nat32 -> Int32 = Prim.nat32ToInt32;\n\n /// Converts a signed 32-bit integer to an unsigned 32-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.toNat32(-1) == (4_294_967_295 : Nat32); // underflow\n /// ```\n public let toNat32 : (self : Int32) -> Nat32 = Prim.int32ToNat32;\n\n /// Returns the Text representation of `x`. Textual representation _do not_\n /// contain underscores to represent commas.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.toText(-123456) == \"-123456\";\n /// ```\n public func toText(self : Int32) : Text {\n Int.toText(toInt(self))\n };\n\n /// Returns the absolute value of `x`.\n ///\n /// Traps when `x == -2 ** 31` (the minimum `Int32` value).\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.abs(-123456) == +123_456;\n /// ```\n public func abs(x : Int32) : Int32 {\n fromInt(Int.abs(toInt(x)))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.min(+2, -3) == -3;\n /// ```\n public func min(x : Int32, y : Int32) : Int32 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.max(+2, -3) == +2;\n /// ```\n public func max(x : Int32, y : Int32) : Int32 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Int32 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.equal(-1, -1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Int32 = -123;\n /// let b : Int32 = 123;\n /// assert not Int32.equal(a, b);\n /// ```\n public func equal(x : Int32, y : Int32) : Bool { x == y };\n\n /// Inequality function for Int32 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.notEqual(-1, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Int32, y : Int32) : Bool { x != y };\n\n /// \"Less than\" function for Int32 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.less(-2, 1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Int32, y : Int32) : Bool { x < y };\n\n /// \"Less than or equal\" function for Int32 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.lessOrEqual(-2, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Int32, y : Int32) : Bool { x <= y };\n\n /// \"Greater than\" function for Int32 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.greater(-2, -3);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Int32, y : Int32) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Int32 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.greaterOrEqual(-2, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Int32, y : Int32) : Bool {\n x >= y\n };\n\n /// General-purpose comparison function for `Int32`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.compare(-3, 2) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([1, -2, -3] : [Int32], Int32.compare) == [-3, -2, 1];\n /// ```\n public func compare(x : Int32, y : Int32) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the negation of `x`, `-x`.\n ///\n /// Traps on overflow, i.e. for `neg(-2 ** 31)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.neg(123) == -123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n public func neg(x : Int32) : Int32 { -x };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.add(100, 23) == +123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int32.add) == -4;\n /// ```\n public func add(x : Int32, y : Int32) : Int32 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.sub(1234, 123) == +1_111;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int32.sub) == 4;\n /// ```\n public func sub(x : Int32, y : Int32) : Int32 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.mul(123, 100) == +12_300;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 1, Int32.mul) == 6;\n /// ```\n public func mul(x : Int32, y : Int32) : Int32 { x * y };\n\n /// Returns the signed integer division of `x` by `y`, `x / y`.\n /// Rounds the quotient towards zero, which is the same as truncating the decimal places of the quotient.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.div(123, 10) == +12;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Int32, y : Int32) : Int32 { x / y };\n\n /// Returns the remainder of the signed integer division of `x` by `y`, `x % y`,\n /// which is defined as `x - x / y * y`.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.rem(123, 10) == +3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Int32, y : Int32) : Int32 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n ///\n /// Traps on overflow/underflow and when `y < 0 or y >= 32`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.pow(2, 10) == +1_024;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Int32, y : Int32) : Int32 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitnot(-256 /* 0xffff_ff00 */) == +255 // 0xff;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Int32) : Int32 { ^x };\n\n /// Returns the bitwise \"and\" of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitand(0xffff, 0x00f0) == +240 // 0xf0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Int32, y : Int32) : Int32 { x & y };\n\n /// Returns the bitwise \"or\" of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitor(0xffff, 0x00f0) == +65_535 // 0xffff;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `|` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `|`\n /// as a function value at the moment.\n public func bitor(x : Int32, y : Int32) : Int32 { x | y };\n\n /// Returns the bitwise \"exclusive or\" of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitxor(0xffff, 0x00f0) == +65_295 // 0xff0f;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitxor(x : Int32, y : Int32) : Int32 { x ^ y };\n\n /// Returns the bitwise left shift of `x` by `y`, `x << y`.\n /// The right bits of the shift filled with zeros.\n /// Left-overflowing bits, including the sign bit, are discarded.\n ///\n /// For `y >= 32`, the semantics is the same as for `bitshiftLeft(x, y % 32)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftLeft(x, y + y % 32)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitshiftLeft(1, 8) == +256 // 0x100 equivalent to `2 ** 8`.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Int32, y : Int32) : Int32 {\n x << y\n };\n\n /// Returns the signed bitwise right shift of `x` by `y`, `x >> y`.\n /// The sign bit is retained and the left side is filled with the sign bit.\n /// Right-underflowing bits are discarded, i.e. not rotated to the left side.\n ///\n /// For `y >= 32`, the semantics is the same as for `bitshiftRight(x, y % 32)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftRight (x, y + y % 32)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitshiftRight(1024, 8) == +4 // equivalent to `1024 / (2 ** 8)`;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Int32, y : Int32) : Int32 {\n x >> y\n };\n\n /// Returns the bitwise left rotatation of `x` by `y`, `x <<> y`.\n /// Each left-overflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 32`, the semantics is the same as for `bitrotLeft(x, y % 32)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitrotLeft(0x2000_0001, 4) == +18 // 0x12.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Int32, y : Int32) : Int32 { x <<> y };\n\n /// Returns the bitwise right rotation of `x` by `y`, `x <>> y`.\n /// Each right-underflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 32`, the semantics is the same as for `bitrotRight(x, y % 32)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitrotRight(0x0002_0001, 8) == +16_777_728 // 0x0100_0200.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Int32, y : Int32) : Int32 {\n x <>> y\n };\n\n /// Returns the value of bit `p` in `x`, `x & 2**p == 2**p`.\n /// If `p >= 32`, the semantics is the same as for `bittest(x, p % 32)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bittest(128, 7);\n /// ```\n public func bittest(x : Int32, p : Nat) : Bool {\n Prim.btstInt32(x, Prim.intToInt32(p))\n };\n\n /// Returns the value of setting bit `p` in `x` to `1`.\n /// If `p >= 32`, the semantics is the same as for `bitset(x, p % 32)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitset(0, 7) == +128;\n /// ```\n public func bitset(x : Int32, p : Nat) : Int32 {\n x | (1 << Prim.intToInt32(p))\n };\n\n /// Returns the value of clearing bit `p` in `x` to `0`.\n /// If `p >= 32`, the semantics is the same as for `bitclear(x, p % 32)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitclear(-1, 7) == -129;\n /// ```\n public func bitclear(x : Int32, p : Nat) : Int32 {\n x & ^(1 << Prim.intToInt32(p))\n };\n\n /// Returns the value of flipping bit `p` in `x`.\n /// If `p >= 32`, the semantics is the same as for `bitclear(x, p % 32)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitflip(255, 7) == +127;\n /// ```\n public func bitflip(x : Int32, p : Nat) : Int32 {\n x ^ (1 << Prim.intToInt32(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitcountNonZero(0xffff) == +16;\n /// ```\n public let bitcountNonZero : (x : Int32) -> Int32 = Prim.popcntInt32;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitcountLeadingZero(0x8000) == +16;\n /// ```\n public let bitcountLeadingZero : (x : Int32) -> Int32 = Prim.clzInt32;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitcountTrailingZero(0x0201_0000) == +16;\n /// ```\n public let bitcountTrailingZero : (x : Int32) -> Int32 = Prim.ctzInt32;\n\n /// Returns the upper (i.e. most significant), lower (least significant)\n /// and in-between bytes of `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.explode 0x66885511 == (102, 136, 85, 17);\n /// ```\n public let explode : (x : Int32) -> (msb : Nat8, Nat8, Nat8, lsb : Nat8) = Prim.explodeInt32;\n\n /// Returns the sum of `x` and `y`, `x +% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.addWrap(2 ** 30, 2 ** 30) == -2_147_483_648; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Int32, y : Int32) : Int32 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.subWrap(-2 ** 31, 1) == +2_147_483_647; // underflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Int32, y : Int32) : Int32 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.mulWrap(2 ** 16, 2 ** 16) == 0; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Int32, y : Int32) : Int32 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`.\n ///\n /// Wraps on overflow/underflow.\n /// Traps if `y < 0 or y >= 32`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.powWrap(2, 31) == -2_147_483_648; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Int32, y : Int32) : Int32 { x **% y };\n\n /// Returns an iterator over `Int32` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int32.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int32.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Int32, toExclusive : Int32) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Int32 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Int32` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int32.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int32.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Int32, to : Int32) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Int32 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Int32 values, from minValue to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int32.allValues();\n /// assert iter.next() == ?-2_147_483_648;\n /// assert iter.next() == ?-2_147_483_647;\n /// assert iter.next() == ?-2_147_483_646;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(minValue, maxValue)\n };\n\n}\n"},"Base64.mo":{"content":"/// Module for Base64 encoding of byte sequences.\n///\n/// Base64 encoding converts binary data to an ASCII string using 64 printable\n/// characters, as specified in [RFC 4648](https://www.rfc-editor.org/rfc/rfc4648).\n/// It is widely used for HTTP Basic Authentication, encoding binary data in\n/// JSON payloads, and data URIs.\n///\n/// This module uses the standard Base64 alphabet (`A–Z`, `a–z`, `0–9`, `+`, `/`)\n/// and pads output to a multiple of 4 characters using `=`.\n///\n/// Original version authored by Claude Sonnet (claude-sonnet-4-6) for use in generated\n/// Motoko API clients. The module received subsequent manual performance improvements.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Base64 \"mo:core/Base64\";\n/// ```\n\nimport Blob \"Blob\";\nimport Nat8 \"Nat8\";\nimport Nat16 \"Nat16\";\nimport Nat32 \"Nat32\";\nimport Nat64 \"Nat64\";\nimport Text \"Text\";\nimport Prim \"mo:prim\";\n\nmodule {\n\n // Standard Base64 alphabet (RFC 4648 §4) in UTF8 values.\n // Equivalent to Text form:\n /*\n private let alphabet : [Text] = [\n \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\",\n \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\",\n \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\",\n \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\",\n \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"+\", \"/\"\n ];\n */\n // prettier-ignore\n private let alphabet : [Nat8] = [\n 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,\n 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,\n 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,\n 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,\n 43, 47\n ];\n\n /// Encodes a `Blob` as a Base64 `Text` string (RFC 4648 §4).\n ///\n /// Output length is always a multiple of 4, padded with `=` as needed.\n /// An empty `Blob` encodes to an empty `Text`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Base64.encode(\"\" : Blob) == \"\";\n /// assert Base64.encode(\"f\" : Blob) == \"Zg==\";\n /// assert Base64.encode(\"fo\" : Blob) == \"Zm8=\";\n /// assert Base64.encode(\"foo\" : Blob) == \"Zm9v\";\n /// assert Base64.encode(\"foobar\" : Blob) == \"Zm9vYmFy\";\n /// ```\n ///\n /// Typical use — embedding text in a data URI:\n /// ```motoko include=import\n /// let payload = \"Hello\" : Blob;\n /// let uri = \"data:text/plain;base64,\" # Base64.encode(payload);\n /// assert uri == \"data:text/plain;base64,SGVsbG8=\";\n /// ```\n public func encode(data : Blob) : Text {\n let sz = Nat64.fromIntWrap(data.size());\n var result = \"\";\n var i = 0 : Nat64;\n var next_i = 6 : Nat64;\n\n // Process chunks of 6 input bytes at a time (8 output characters)\n while (next_i <= sz) {\n let b1 = data[i.toNat()];\n let b2 : Nat8 = data[(i +% 1).toNat()];\n let b3 : Nat8 = data[(i +% 2).toNat()];\n let b4 : Nat8 = data[(i +% 3).toNat()];\n let b5 : Nat8 = data[(i +% 4).toNat()];\n let b6 : Nat8 = data[(i +% 5).toNat()];\n\n let n = (b1.toNat16().toNat32() << 16) | (b2.toNat16().toNat32() << 8) | b3.toNat16().toNat32();\n let m = (b4.toNat16().toNat32() << 16) | (b5.toNat16().toNat32() << 8) | b6.toNat16().toNat32();\n\n let bytes = Blob.fromArray([\n alphabet[((n >> 18) & 0x3F).toNat()],\n alphabet[((n >> 12) & 0x3F).toNat()],\n alphabet[((n >> 6) & 0x3F).toNat()],\n alphabet[(n & 0x3F).toNat()],\n alphabet[((m >> 18) & 0x3F).toNat()],\n alphabet[((m >> 12) & 0x3F).toNat()],\n alphabet[((m >> 6) & 0x3F).toNat()],\n alphabet[(m & 0x3F).toNat()]\n ]);\n\n switch (Text.decodeUtf8(bytes)) {\n case (?t) result := result # t;\n case (_) {\n Prim.trap(\"Cannot happen: Utf8 decode error in Base64.encode().\")\n }\n };\n\n i := next_i;\n next_i +%= 6\n };\n\n // Process remaining 0-5 input bytes in chunks of 3\n while (i < sz) {\n let b1 = data[i.toNat()];\n let b2 : Nat8 = if (i +% 1 < sz) data[(i +% 1).toNat()] else 0;\n let b3 : Nat8 = if (i +% 2 < sz) data[(i +% 2).toNat()] else 0;\n\n let n = (b1.toNat16().toNat32() << 16) | (b2.toNat16().toNat32() << 8) | b3.toNat16().toNat32();\n\n // Note: Value 61 is the UTF8 encoding of the `=` character\n let bytes = Blob.fromArray([\n alphabet[((n >> 18) & 0x3F).toNat()],\n alphabet[((n >> 12) & 0x3F).toNat()],\n if (i +% 1 < sz) alphabet[((n >> 6) & 0x3F).toNat()] else 61,\n if (i +% 2 < sz) alphabet[(n & 0x3F).toNat()] else 61\n ]);\n\n switch (Text.decodeUtf8(bytes)) {\n case (?t) result := result # t;\n case (_) {\n Prim.trap(\"Cannot happen: Utf8 decode error in Base64.encode().\")\n }\n };\n\n i +%= 3\n };\n result\n };\n\n}\n"},"Stack.mo":{"content":"/// A mutable stack data structure.\n/// Elements can be pushed on top of the stack\n/// and removed from top of the stack (LIFO).\n///\n/// Example:\n/// ```motoko\n/// import Stack \"mo:core/Stack\";\n/// import Debug \"mo:core/Debug\";\n///\n/// persistent actor {\n/// let levels = Stack.empty();\n/// Stack.push(levels, \"Inner\");\n/// Stack.push(levels, \"Middle\");\n/// Stack.push(levels, \"Outer\");\n/// assert Stack.pop(levels) == ?\"Outer\";\n/// assert Stack.pop(levels) == ?\"Middle\";\n/// assert Stack.pop(levels) == ?\"Inner\";\n/// assert Stack.pop(levels) == null;\n/// }\n/// ```\n///\n/// The internal implementation is a singly-linked list.\n///\n/// Performance:\n/// * Runtime: `O(1)` for push, pop, and peek operation.\n/// * Space: `O(n)`.\n/// `n` denotes the number of elements stored on the stack.\n\n// TODO: optimize or re-use pure/List operations (e.g. for `any` etc)\n\nimport Order \"Order\";\nimport Iter \"Iter\";\nimport Types \"Types\";\nimport PureList \"pure/List\";\n\nmodule {\n type List = Types.Pure.List;\n public type Stack = Types.Stack;\n\n /// Convert a mutable stack to an immutable, purely functional list.\n /// Please note that functional lists are ordered like stacks (FIFO).\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import PureList \"mo:core/pure/List\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let mutableStack = Stack.empty();\n /// Stack.push(mutableStack, 3);\n /// Stack.push(mutableStack, 2);\n /// Stack.push(mutableStack, 1);\n /// let immutableList = Stack.toPure(mutableStack);\n /// assert Iter.toArray(PureList.values(immutableList)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of elements stored in the stack.\n /// @deprecated M0235\n public func toPure(self : Stack) : PureList.List {\n self.top\n };\n\n public func toArray(self : Stack) : [T] {\n Iter.toArray(values(self))\n };\n\n public func toVarArray(self : Stack) : [var T] {\n Iter.toVarArray(values(self))\n };\n\n /// Convert an immutable, purely functional list to a mutable stack.\n /// Please note that functional lists are ordered like stacks (FIFO).\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import PureList \"mo:core/pure/List\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let immutableList = PureList.fromIter([1, 2, 3].values());\n /// let mutableStack = Stack.fromPure(immutableList);\n /// assert Iter.toArray(Stack.values(mutableStack)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements stored in the queue.\n /// @deprecated M0235\n public func fromPure(list : PureList.List) : Stack {\n var size = 0;\n var cur = list;\n loop {\n switch cur {\n case (?(_, next)) {\n size += 1;\n cur := next\n };\n case null {\n return { var top = list; var size }\n }\n }\n }\n };\n\n public func fromVarArray(array : [var T]) : Stack {\n fromIter(array.values())\n };\n\n public func fromArray(array : [T]) : Stack {\n fromIter(array.values())\n };\n\n /// Create a new empty mutable stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// assert Stack.size(stack) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func empty() : Stack {\n {\n var top = null;\n var size = 0\n }\n };\n\n /// Creates a new stack with `size` elements by applying the `generator` function to indices `[0..size-1]`.\n /// Elements are pushed in ascending index order.\n /// Which means that the generated element with the index `0` will be at the bottom of the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let stack = Stack.tabulate(3, func(i) { 2 * i });\n /// assert Iter.toArray(Stack.values(stack)) == [4, 2, 0];\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `generator` has O(1) costs.\n public func tabulate(size : Nat, generator : Nat -> T) : Stack {\n let stack = empty();\n var index = 0;\n while (index < size) {\n let element = generator(index);\n push(stack, element);\n index += 1\n };\n stack\n };\n\n /// Creates a new stack containing a single element.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.singleton(\"motoko\");\n /// assert Stack.peek(stack) == ?\"motoko\";\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func singleton(element : T) : Stack {\n let stack = empty();\n push(stack, element);\n stack\n };\n\n /// Removes all elements from the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromIter([3, 2, 1].values());\n /// Stack.clear(stack);\n /// assert Stack.isEmpty(stack);\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func clear(self : Stack) {\n self.top := null;\n self.size := 0\n };\n\n /// Creates a deep copy of the stack with the same elements in the same order.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let original = Stack.fromIter([3, 2, 1].values());\n /// let copy = Stack.clone(original);\n /// assert Stack.equal(copy, original, Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of elements stored on the stack.\n public func clone(self : Stack) : Stack {\n let copy = empty();\n for (element in values(self)) {\n push(copy, element)\n };\n reverse(copy);\n copy\n };\n\n /// Returns true if the stack contains no elements.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// assert Stack.isEmpty(stack);\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func isEmpty(self : Stack) : Bool {\n self.size == 0\n };\n\n /// Returns the number of elements on the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromIter([3, 2, 1].values());\n /// assert Stack.size(stack) == 3;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func size(self : Stack) : Nat {\n self.size\n };\n\n /// Returns true if the stack contains the specified element.\n /// Uses the provided equality function to compare elements.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromIter([3, 2, 1].values());\n /// assert Stack.contains(stack, Nat.equal, 2);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack and assuming\n /// that `equal` has O(1) costs.\n public func contains(self : Stack, equal : (implicit : (T, T) -> Bool), element : T) : Bool {\n for (existing in values(self)) {\n if (equal(existing, element)) {\n return true\n }\n };\n false\n };\n\n public func reverseValues(self : Stack) : Iter.Iter {\n Iter.reverse(values(self))\n };\n\n /// Pushes a new element onto the top of the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 42);\n /// assert Stack.peek(stack) == ?42;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func push(self : Stack, value : T) {\n self.top := ?(value, self.top);\n self.size += 1\n };\n\n /// Returns the top element of the stack without removing it.\n /// Returns null if the stack is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// assert Stack.peek(stack) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func peek(self : Stack) : ?T {\n switch (self.top) {\n case null null;\n case (?(value, _)) ?value\n }\n };\n\n /// Removes and returns the top element of the stack.\n /// Returns null if the stack is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// assert Stack.pop(stack) == ?1;\n /// assert Stack.pop(stack) == ?2;\n /// assert Stack.pop(stack) == ?3;\n /// assert Stack.pop(stack) == null;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func pop(self : Stack) : ?T {\n switch (self.top) {\n case null null;\n case (?(value, next)) {\n self.top := next;\n self.size -= 1;\n ?value\n }\n }\n };\n\n /// Returns the element at the specified position from the top of the stack.\n /// Returns null if position is out of bounds.\n /// Position 0 is the top of the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 'c');\n /// Stack.push(stack, 'b');\n /// Stack.push(stack, 'a');\n /// assert Stack.get(stack, 0) == ?'a';\n /// assert Stack.get(stack, 1) == ?'b';\n /// assert Stack.get(stack, 2) == ?'c';\n /// assert Stack.get(stack, 3) == null;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack.\n public func get(self : Stack, position : Nat) : ?T {\n var index = 0;\n var current = self.top;\n while (index < position) {\n switch (current) {\n case null return null;\n case (?(_, next)) {\n current := next\n }\n };\n index += 1\n };\n switch (current) {\n case null null;\n case (?(value, _)) ?value\n }\n };\n\n /// Reverses the order of elements in the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// Stack.reverse(stack);\n /// assert Stack.pop(stack) == ?3;\n /// assert Stack.pop(stack) == ?2;\n /// assert Stack.pop(stack) == ?1;\n /// assert Stack.pop(stack) == null;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of elements stored on the stack.\n public func reverse(self : Stack) {\n var last : List = null;\n for (element in values(self)) {\n last := ?(element, last)\n };\n self.top := last\n };\n\n /// Returns an iterator over the elements in the stack, from top to bottom.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// assert Iter.toArray(Stack.values(stack)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: O(1) for iterator creation, O(n) for full traversal\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack.\n public func values(self : Stack) : Types.Iter {\n object {\n var current = self.top;\n\n public func next() : ?T {\n switch (current) {\n case null null;\n case (?(value, next)) {\n current := next;\n ?value\n }\n }\n }\n }\n };\n\n /// Returns true if all elements in the stack satisfy the predicate.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromIter([2, 4, 6].values());\n /// assert Stack.all(stack, func(n) = n % 2 == 0);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `predicate` has O(1) costs.\n public func all(self : Stack, predicate : T -> Bool) : Bool {\n for (element in values(self)) {\n if (not predicate(element)) {\n return false\n }\n };\n true\n };\n\n /// Returns true if any element in the stack satisfies the predicate.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromIter([3, 2, 1].values());\n /// assert Stack.any(stack, func(n) = n == 2);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming `predicate` has O(1) costs.\n public func any(self : Stack, predicate : T -> Bool) : Bool {\n for (element in values(self)) {\n if (predicate(element)) {\n return true\n }\n };\n false\n };\n\n /// Applies the operation to each element in the stack, from top to bottom.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n /// import Debug \"mo:core/Debug\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// var text = \"\";\n /// Stack.forEach(stack, func(n) = text #= Nat.toText(n));\n /// assert text == \"123\";\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `operation` has O(1) costs.\n public func forEach(self : Stack, operation : T -> ()) {\n for (element in values(self)) {\n operation(element)\n }\n };\n\n /// Creates a new stack by applying the projection function to each element.\n /// Maintains the original order of elements.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// let doubled = Stack.map(stack, func(n) { 2 * n });\n /// assert Stack.get(doubled, 0) == ?2;\n /// assert Stack.get(doubled, 1) == ?4;\n /// assert Stack.get(doubled, 2) == ?6;\n /// assert Stack.get(doubled, 3) == null;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `project` has O(1) costs.\n public func map(self : Stack, project : T -> U) : Stack {\n let result = empty();\n for (element in values(self)) {\n push(result, project(element))\n };\n reverse(result);\n result\n };\n\n /// Creates a new stack containing only elements that satisfy the predicate.\n /// Maintains the relative order of elements.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 4);\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// let evens = Stack.filter(stack, func(n) { n % 2 == 0 });\n /// assert Stack.pop(evens) == ?2;\n /// assert Stack.pop(evens) == ?4;\n /// assert Stack.pop(evens) == null;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming `predicate` has O(1) costs.\n public func filter(self : Stack, predicate : T -> Bool) : Stack {\n let result = empty();\n for (element in values(self)) {\n if (predicate(element)) {\n push(result, element)\n }\n };\n reverse(result);\n result\n };\n\n /// Creates a new stack by applying the projection function to each element\n /// and keeping only the successful results (where project returns ?value).\n /// Maintains the relative order of elements.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 4);\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// let evenDoubled = Stack.filterMap(stack, func(n) {\n /// if (n % 2 == 0) {\n /// ?(n * 2)\n /// } else {\n /// null\n /// }\n /// });\n /// assert Stack.pop(evenDoubled) == ?4;\n /// assert Stack.pop(evenDoubled) == ?8;\n /// assert Stack.pop(evenDoubled) == null;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `project` has O(1) costs.\n public func filterMap(self : Stack, project : T -> ?U) : Stack {\n let result = empty();\n for (element in values(self)) {\n switch (project(element)) {\n case null {};\n case (?newElement) {\n push(result, newElement)\n }\n }\n };\n reverse(result);\n result\n };\n\n /// Return the first element for which the given `predicate` is true,\n /// if such an element exists.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromPure(?(1, ?(2, ?(3, null))));\n /// assert Stack.find(stack, func n = n > 1) == ?2;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n\n public func find(self : Stack, predicate : T -> Bool) : ?T = PureList.find(self.top, predicate);\n\n /// Return the first index for which the given `predicate` is true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromPure(?('A', ?('B', ?('C', ?('D', null)))));\n /// let found = Stack.findIndex(stack, func x = x == 'C');\n /// assert found == ?2;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func findIndex(self : Stack, predicate : T -> Bool) : ?Nat = PureList.findIndex(self.top, predicate);\n\n /// Compares two stacks for equality using the provided equality function.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let stack1 = Stack.fromIter([3, 2, 1].values());\n /// let stack2 = Stack.fromIter([3, 2, 1].values());\n /// assert Stack.equal(stack1, stack2, Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `equal` has O(1) costs.\n public func equal(self : Stack, other : Stack, equal : (implicit : (T, T) -> Bool)) : Bool {\n if (size(self) != size(other)) {\n return false\n };\n let iterator1 = values(self);\n let iterator2 = values(other);\n loop {\n let element1 = iterator1.next();\n let element2 = iterator2.next();\n switch (element1, element2) {\n case (null, null) {\n return true\n };\n case (?element1, ?element2) {\n if (not equal(element1, element2)) {\n return false\n }\n };\n case _ { return false }\n }\n }\n };\n\n /// Creates a new stack from an iterator.\n /// Elements are pushed in iteration order. Which means that the last element\n /// of the iterator will be the first element on top of the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromIter([3, 2, 1].values());\n /// assert Iter.toArray(Stack.values(stack)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of iterated elements.\n public func fromIter(iter : Types.Iter) : Stack {\n let stack = empty();\n for (element in iter) {\n push(stack, element)\n };\n stack\n };\n\n /// Convert an iterator into a stack.\n /// Elements are pushed in iteration order. Which means that the last element\n /// of the iterator will be the first element on top of the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// transient let iter = [3, 2, 1].values();\n ///\n /// let stack = iter.toStack();\n ///\n /// assert Iter.toArray(Stack.values(stack)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of iterated elements.\n public func toStack(self : Types.Iter) : Stack {\n fromIter(self)\n };\n\n /// Converts the stack to its string representation using the provided\n /// element formatting function.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromIter([3, 2, 1].values());\n /// assert Stack.toText(stack, Nat.toText) == \"Stack[1, 2, 3]\";\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `format` has O(1) costs.\n public func toText(self : Stack, format : (implicit : (toText : T -> Text))) : Text {\n var text = \"Stack[\";\n var sep = \"\";\n for (element in values(self)) {\n text #= sep # format(element);\n sep := \", \"\n };\n text #= \"]\";\n text\n };\n\n /// Compares two stacks lexicographically using the provided comparison function.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let stack1 = Stack.fromIter([2, 1].values());\n /// let stack2 = Stack.fromIter([3, 2, 1].values());\n /// assert Stack.compare(stack1, stack2, Nat.compare) == #less;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `compare` has O(1) costs.\n public func compare(self : Stack, other : Stack, compare : (implicit : (T, T) -> Order.Order)) : Order.Order {\n let iterator1 = values(self);\n let iterator2 = values(other);\n loop {\n switch (iterator1.next(), iterator2.next()) {\n case (null, null) return #equal;\n case (null, _) return #less;\n case (_, null) return #greater;\n case (?element1, ?element2) {\n let comparison = compare(element1, element2);\n if (comparison != #equal) {\n return comparison\n }\n }\n }\n }\n }\n}\n"},"Array.mo":{"content":"/// Provides extended utility functions on immutable Arrays (values of type `[T]`).\n///\n/// Note the difference between mutable (`[var T]`) and immutable (`[T]`) arrays.\n/// Mutable arrays allow their elements to be modified after creation, while\n/// immutable arrays are fixed once created.\n///\n/// WARNING: If you are looking for a list that can grow and shrink in size,\n/// it is recommended you use `List` for those purposes.\n/// Arrays must be created with a fixed size.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Array \"mo:core/Array\";\n/// ```\n\nimport Order \"Order\";\nimport VarArray \"VarArray\";\nimport Option \"Option\";\nimport Types \"Types\";\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// Creates an empty array (equivalent to `[]`).\n ///\n /// ```motoko include=import\n /// let array = Array.empty();\n /// assert array == [];\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func empty() : [T] = [];\n\n /// Creates an array containing `item` repeated `size` times.\n ///\n /// ```motoko include=import\n /// let array = Array.repeat(\"Echo\", 3);\n /// assert array == [\"Echo\", \"Echo\", \"Echo\"];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func repeat(item : T, size : Nat) : [T] = Prim.Array_tabulate(size, func _ = item);\n\n /// Creates an immutable array of size `size`. Each element at index i\n /// is created by applying `generator` to i.\n ///\n /// ```motoko include=import\n /// let array : [Nat] = Array.tabulate(4, func i = i * 2);\n /// assert array == [0, 2, 4, 6];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `generator` runs in O(1) time and space.\n public let tabulate : (size : Nat, generator : Nat -> T) -> [T] = Prim.Array_tabulate;\n\n /// Transforms a mutable array into an immutable array.\n ///\n /// ```motoko include=import\n /// let varArray = [var 0, 1, 2];\n /// varArray[2] := 3;\n /// let array = Array.fromVarArray(varArray);\n /// assert array == [0, 1, 3];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n /// @deprecated M0235\n public func fromVarArray(varArray : [var T]) : [T] = Prim.Array_tabulate(varArray.size(), func i = varArray[i]);\n\n /// Transforms an immutable array into a mutable array.\n ///\n /// ```motoko include=import\n /// import VarArray \"mo:core/VarArray\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [0, 1, 2];\n /// let varArray = Array.toVarArray(array);\n /// varArray[2] := 3;\n /// assert VarArray.equal(varArray, [var 0, 1, 3], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func toVarArray(self : [T]) : [var T] {\n let size = self.size();\n if (size == 0) {\n return [var]\n };\n let newArray = Prim.Array_init(size, self[0]);\n var i = 0;\n while (i < size) {\n newArray[i] := self[i];\n i += 1\n };\n newArray\n };\n\n /// Tests if two arrays contain equal values (i.e. they represent the same\n /// list of elements). Uses `equal` to compare elements in the arrays.\n ///\n /// ```motoko include=import\n /// // Use the equal function from the Nat module to compare Nats\n /// import {equal} \"mo:core/Nat\";\n ///\n /// let array1 = [0, 1, 2, 3];\n /// let array2 = [0, 1, 2, 3];\n /// assert Array.equal(array1, array2, equal);\n /// ```\n ///\n /// Runtime: O(size1 + size2)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `equal` runs in O(1) time and space.\n public func equal(self : [T], other : [T], equal : (implicit : (T, T) -> Bool)) : Bool {\n let size1 = self.size();\n let size2 = other.size();\n if (size1 != size2) {\n return false\n };\n var i = 0;\n while (i < size1) {\n if (not equal(self[i], other[i])) {\n return false\n };\n i += 1\n };\n true\n };\n\n /// Returns the first value in `array` for which `predicate` returns true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// ```motoko include=import\n /// let array = [1, 9, 4, 8];\n /// let found = Array.find(array, func x = x > 8);\n /// assert found == ?9;\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func find(self : [T], predicate : T -> Bool) : ?T {\n for (element in self.vals()) {\n if (predicate(element)) {\n return ?element\n }\n };\n null\n };\n\n /// Returns the first index in `array` for which `predicate` returns true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// ```motoko include=import\n /// let array = ['A', 'B', 'C', 'D'];\n /// let found = Array.findIndex(array, func(x) { x == 'C' });\n /// assert found == ?2;\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func findIndex(self : [T], predicate : T -> Bool) : ?Nat {\n for ((index, element) in enumerate(self)) {\n if (predicate(element)) {\n return ?index\n }\n };\n null\n };\n\n /// Create a new array by concatenating the values of `array1` and `array2`.\n /// Note that `Array.concat` copies its arguments and has linear complexity.\n ///\n /// ```motoko include=import\n /// let array1 = [1, 2, 3];\n /// let array2 = [4, 5, 6];\n /// let result = Array.concat(array1, array2);\n /// assert result == [1, 2, 3, 4, 5, 6];\n /// ```\n /// Runtime: O(size1 + size2)\n ///\n /// Space: O(size1 + size2)\n public func concat(self : [T], other : [T]) : [T] {\n let size1 = self.size();\n let size2 = other.size();\n Prim.Array_tabulate(\n size1 + size2,\n func i {\n if (i < size1) {\n self[i]\n } else {\n other[i - size1]\n }\n }\n )\n };\n\n /// Sorts the elements in the array according to `compare`.\n /// Sort is deterministic and stable.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [4, 2, 6];\n /// let sorted = Array.sort(array, Nat.compare);\n /// assert sorted == [2, 4, 6];\n /// ```\n /// Runtime: O(size * log(size))\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func sort(self : [T], compare : (implicit : (T, T) -> Order.Order)) : [T] {\n let varArray : [var T] = toVarArray(self);\n VarArray.sortInPlace(varArray, compare);\n fromVarArray(varArray)\n };\n\n /// Creates a new array by reversing the order of elements in `array`.\n ///\n /// ```motoko include=import\n /// let array = [10, 11, 12];\n /// let reversed = Array.reverse(array);\n /// assert reversed == [12, 11, 10];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func reverse(self : [T]) : [T] {\n let size = self.size();\n Prim.Array_tabulate(size, func i = self[size - i - 1])\n };\n\n /// Calls `f` with each element in `array`.\n /// Retains original ordering of elements.\n ///\n /// ```motoko include=import\n /// var sum = 0;\n /// let array = [0, 1, 2, 3];\n /// Array.forEach(array, func(x) {\n /// sum += x;\n /// });\n /// assert sum == 6;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func forEach(self : [T], f : T -> ()) {\n for (item in self.vals()) {\n f(item)\n }\n };\n\n /// Creates a new array by applying `f` to each element in `array`. `f` \"maps\"\n /// each element it is applied to of type `X` to an element of type `Y`.\n /// Retains original ordering of elements.\n ///\n /// ```motoko include=import\n /// let array1 = [0, 1, 2, 3];\n /// let array2 = Array.map(array1, func x = x * 2);\n /// assert array2 == [0, 2, 4, 6];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func map(self : [T], f : T -> R) : [R] = Prim.Array_tabulate(self.size(), func i = f(self[i]));\n\n /// Creates a new array by applying `predicate` to every element\n /// in `array`, retaining the elements for which `predicate` returns true.\n ///\n /// ```motoko include=import\n /// let array = [4, 2, 6, 1, 5];\n /// let evenElements = Array.filter(array, func x = x % 2 == 0);\n /// assert evenElements == [4, 2, 6];\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func filter(self : [T], f : T -> Bool) : [T] {\n var count = 0;\n let keep = Prim.Array_tabulate(\n self.size(),\n func i {\n if (f(self[i])) {\n count += 1;\n true\n } else {\n false\n }\n }\n );\n var nextKeep = 0;\n Prim.Array_tabulate(\n count,\n func _ {\n while (not keep[nextKeep]) {\n nextKeep += 1\n };\n nextKeep += 1;\n self[nextKeep - 1]\n }\n )\n };\n\n /// Creates a new array by applying `f` to each element in `array`,\n /// and keeping all non-null elements. The ordering is retained.\n ///\n /// ```motoko include=import\n /// import {toText} \"mo:core/Nat\";\n ///\n /// let array = [4, 2, 0, 1];\n /// let newArray =\n /// Array.filterMap( // mapping from Nat to Text values\n /// array,\n /// func x = if (x == 0) { null } else { ?toText(100 / x) } // can't divide by 0, so return null\n /// );\n /// assert newArray == [\"25\", \"50\", \"100\"];\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func filterMap(self : [T], f : T -> ?R) : [R] {\n var count = 0;\n let options = Prim.Array_tabulate(\n self.size(),\n func i {\n let result = f(self[i]);\n switch (result) {\n case (?element) {\n count += 1;\n result\n };\n case null {\n null\n }\n }\n }\n );\n\n var nextSome = 0;\n Prim.Array_tabulate(\n count,\n func _ {\n while (Option.isNull(options[nextSome])) {\n nextSome += 1\n };\n nextSome += 1;\n switch (options[nextSome - 1]) {\n case (?element) element;\n case null {\n Prim.trap \"Array.filterMap(): malformed array\"\n }\n }\n }\n )\n };\n\n /// Creates a new array by applying `f` to each element in `array`.\n /// If any invocation of `f` produces an `#err`, returns an `#err`. Otherwise\n /// returns an `#ok` containing the new array.\n ///\n /// ```motoko include=import\n /// let array = [4, 3, 2, 1, 0];\n /// // divide 100 by every element in the array\n /// let result = Array.mapResult(array, func x {\n /// if (x > 0) {\n /// #ok(100 / x)\n /// } else {\n /// #err \"Cannot divide by zero\"\n /// }\n /// });\n /// assert result == #err \"Cannot divide by zero\";\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n /// @deprecated M0235\n public func mapResult(self : [T], f : T -> Types.Result) : Types.Result<[R], E> {\n let size = self.size();\n\n var error : ?Types.Result<[R], E> = null;\n let results = Prim.Array_tabulate(\n size,\n func i {\n switch (f(self[i])) {\n case (#ok element) {\n ?element\n };\n case (#err e) {\n switch (error) {\n case null {\n // only take the first error\n error := ?(#err e)\n };\n case _ {}\n };\n null\n }\n }\n }\n );\n\n switch error {\n case null {\n // unpack the option\n #ok(\n map(\n results,\n func element {\n switch element {\n case (?element) {\n element\n };\n case null {\n Prim.trap \"Array.mapResult(): malformed array\"\n }\n }\n }\n )\n )\n };\n case (?error) {\n error\n }\n }\n };\n\n /// Creates a new array by applying `f` to each element in `array` and its index.\n /// Retains original ordering of elements.\n ///\n /// ```motoko include=import\n /// let array = [10, 10, 10, 10];\n /// let newArray = Array.mapEntries(array, func (x, i) = i * x);\n /// assert newArray == [0, 10, 20, 30];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func mapEntries(self : [T], f : (T, Nat) -> R) : [R] = Prim.Array_tabulate(self.size(), func i = f(self[i], i));\n\n /// Creates a new array by applying `k` to each element in `array`,\n /// and concatenating the resulting arrays in order.\n ///\n /// ```motoko include=import\n /// let array = [1, 2, 3, 4];\n /// let newArray = Array.flatMap(array, func x = [x, -x].values());\n /// assert newArray == [1, -1, 2, -2, 3, -3, 4, -4];\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `k` runs in O(1) time and space.\n public func flatMap(self : [T], k : T -> Types.Iter) : [R] {\n var flatSize = 0;\n let arrays = Prim.Array_tabulate<[R]>(\n self.size(),\n func i {\n let subArray = fromIter(k(self[i]));\n flatSize += subArray.size();\n subArray\n }\n );\n\n // could replace with a call to flatten,\n // but it would require an extra pass (to compute `flatSize`)\n var outer = 0;\n var inner = 0;\n Prim.Array_tabulate(\n flatSize,\n func _ {\n while (inner == arrays[outer].size()) {\n inner := 0;\n outer += 1\n };\n let element = arrays[outer][inner];\n inner += 1;\n element\n }\n )\n };\n\n /// Collapses the elements in `array` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// left to right.\n ///\n /// ```motoko include=import\n /// import {add} \"mo:core/Nat\";\n ///\n /// let array = [4, 2, 0, 1];\n /// let sum =\n /// Array.foldLeft(\n /// array,\n /// 0, // start the sum at 0\n /// func(sumSoFar, x) = sumSoFar + x // this entire function can be replaced with `add`!\n /// );\n /// assert sum == 7;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `combine` runs in O(1) time and space.\n public func foldLeft(self : [T], base : A, combine : (A, T) -> A) : A {\n var acc = base;\n for (element in self.values()) {\n acc := combine(acc, element)\n };\n acc\n };\n\n /// Collapses the elements in `array` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// right to left.\n ///\n /// ```motoko include=import\n /// import {toText} \"mo:core/Nat\";\n ///\n /// let array = [1, 9, 4, 8];\n /// let bookTitle = Array.foldRight(array, \"\", func(x, acc) = toText(x) # acc);\n /// assert bookTitle == \"1948\";\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `combine` runs in O(1) time and space.\n public func foldRight(self : [T], base : A, combine : (T, A) -> A) : A {\n var acc = base;\n let size = self.size();\n var i = size;\n while (i > 0) {\n i -= 1;\n acc := combine(self[i], acc)\n };\n acc\n };\n\n /// Combines an iterator of arrays into a single array. Retains the original\n /// ordering of the elements.\n ///\n /// Consider using `Array.flatten()` for better performance.\n ///\n /// ```motoko include=import\n /// let arrays = [[0, 1, 2], [2, 3], [], [4]];\n /// let joinedArray = Array.join(arrays.values());\n /// assert joinedArray == [0, 1, 2, 2, 3, 4];\n /// ```\n ///\n /// Runtime: O(number of elements in array)\n ///\n /// Space: O(number of elements in array)\n public func join(self : Types.Iter<[T]>) : [T] {\n flatten(fromIter(self))\n };\n\n /// Combines an array of arrays into a single array. Retains the original\n /// ordering of the elements.\n ///\n /// This has better performance compared to `Array.join()`.\n ///\n /// ```motoko include=import\n /// let arrays = [[0, 1, 2], [2, 3], [], [4]];\n /// let flatArray = Array.flatten(arrays);\n /// assert flatArray == [0, 1, 2, 2, 3, 4];\n /// ```\n ///\n /// Runtime: O(number of elements in array)\n ///\n /// Space: O(number of elements in array)\n public func flatten(self : [[T]]) : [T] {\n var flatSize = 0;\n for (subArray in self.vals()) {\n flatSize += subArray.size()\n };\n\n var outer = 0;\n var inner = 0;\n Prim.Array_tabulate(\n flatSize,\n func _ {\n while (inner == self[outer].size()) {\n inner := 0;\n outer += 1\n };\n let element = self[outer][inner];\n inner += 1;\n element\n }\n )\n };\n\n /// Create an array containing a single value.\n ///\n /// ```motoko include=import\n /// let array = Array.singleton(2);\n /// assert array == [2];\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func singleton(element : T) : [T] = [element];\n\n /// Returns the size of an array. Equivalent to `array.size()`.\n public func size(self : [T]) : Nat = self.size();\n\n /// Returns whether an array is empty, i.e. contains zero elements.\n public func isEmpty(self : [T]) : Bool = self.size() == 0;\n\n /// Converts an iterator to an array.\n /// @deprecated M0235\n public func fromIter(iter : Types.Iter) : [T] {\n var list : Types.Pure.List = null;\n var size = 0;\n label l loop {\n switch (iter.next()) {\n case (?element) {\n list := ?(element, list);\n size += 1\n };\n case null { break l }\n }\n };\n if (size == 0) { return [] };\n let array = Prim.Array_init(\n size,\n switch list {\n case (?(h, _)) h;\n case null {\n Prim.trap(\"Array.fromIter(): unreachable\")\n }\n }\n );\n var i = size : Nat;\n while (i > 0) {\n i -= 1;\n switch list {\n case (?(h, t)) {\n array[i] := h;\n list := t\n };\n case null {\n Prim.trap(\"Array.fromIter(): unreachable\")\n }\n }\n };\n Prim.Array_tabulate(size, func i = array[i])\n };\n\n /// Returns an iterator (`Iter`) over the indices of `array`.\n /// An iterator provides a single method `next()`, which returns\n /// indices in order, or `null` when out of index to iterate over.\n ///\n /// Note: You can also use `array.keys()` instead of this function. See example\n /// below.\n ///\n /// ```motoko include=import\n /// let array = [10, 11, 12];\n ///\n /// var sum = 0;\n /// for (element in array.keys()) {\n /// sum += element;\n /// };\n /// assert sum == 3; // 0 + 1 + 2\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func keys(self : [T]) : Types.Iter = self.keys();\n\n /// Iterator provides a single method `next()`, which returns\n /// elements in order, or `null` when out of elements to iterate over.\n ///\n /// Note: You can also use `array.values()` instead of this function. See example\n /// below.\n ///\n /// ```motoko include=import\n /// let array = [10, 11, 12];\n ///\n /// var sum = 0;\n /// for (element in array.values()) {\n /// sum += element;\n /// };\n /// assert sum == 33;\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func values(self : [T]) : Types.Iter = self.values();\n\n /// Iterator provides a single method `next()`, which returns\n /// pairs of (index, element) in order, or `null` when out of elements to iterate over.\n ///\n /// ```motoko include=import\n /// let array = [10, 11, 12];\n ///\n /// var sum = 0;\n /// for ((index, element) in Array.enumerate(array)) {\n /// sum += element;\n /// };\n /// assert sum == 33;\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func enumerate(self : [T]) : Types.Iter<(Nat, T)> = object {\n let size = self.size();\n var index = 0;\n public func next() : ?(Nat, T) {\n if (index >= size) {\n return null\n };\n let i = index;\n index += 1;\n ?(i, self[i])\n }\n };\n\n /// Returns true if all elements in `array` satisfy the predicate function.\n ///\n /// ```motoko include=import\n /// let array = [1, 2, 3, 4];\n /// assert Array.all(array, func x = x > 0);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func all(self : [T], predicate : T -> Bool) : Bool {\n for (element in self.values()) {\n if (not predicate(element)) {\n return false\n }\n };\n true\n };\n\n /// Returns true if any element in `array` satisfies the predicate function.\n ///\n /// ```motoko include=import\n /// let array = [1, 2, 3, 4];\n /// assert Array.any(array, func x = x > 3);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func any(self : [T], predicate : T -> Bool) : Bool {\n for (element in self.values()) {\n if (predicate(element)) {\n return true\n }\n };\n false\n };\n\n /// Returns the index of the first `element` in the `array`.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let array = ['c', 'o', 'f', 'f', 'e', 'e'];\n /// assert Array.indexOf(array, Char.equal, 'c') == ?0;\n /// assert Array.indexOf(array, Char.equal, 'f') == ?2;\n /// assert Array.indexOf(array, Char.equal, 'g') == null;\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func indexOf(self : [T], equal : (implicit : (T, T) -> Bool), element : T) : ?Nat = nextIndexOf(self, equal, element, 0);\n\n /// Returns the index of the next occurence of `element` in the `array` starting from the `from` index (inclusive).\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let array = ['c', 'o', 'f', 'f', 'e', 'e'];\n /// assert Array.nextIndexOf(array, Char.equal, 'c', 0) == ?0;\n /// assert Array.nextIndexOf(array, Char.equal, 'f', 0) == ?2;\n /// assert Array.nextIndexOf(array, Char.equal, 'f', 2) == ?2;\n /// assert Array.nextIndexOf(array, Char.equal, 'f', 3) == ?3;\n /// assert Array.nextIndexOf(array, Char.equal, 'f', 4) == null;\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func nextIndexOf(self : [T], equal : (implicit : (T, T) -> Bool), element : T, fromInclusive : Nat) : ?Nat {\n var index = fromInclusive;\n let size = self.size();\n while (index < size) {\n if (equal(self[index], element)) {\n return ?index\n } else {\n index += 1\n }\n };\n null\n };\n\n /// Returns the index of the last `element` in the `array`.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let array = ['c', 'o', 'f', 'f', 'e', 'e'];\n /// assert Array.lastIndexOf(array, Char.equal, 'c') == ?0;\n /// assert Array.lastIndexOf(array, Char.equal, 'f') == ?3;\n /// assert Array.lastIndexOf(array, Char.equal, 'e') == ?5;\n /// assert Array.lastIndexOf(array, Char.equal, 'g') == null;\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func lastIndexOf(self : [T], equal : (implicit : (T, T) -> Bool), element : T) : ?Nat = prevIndexOf(self, equal, element, self.size());\n\n /// Returns the index of the previous occurence of `element` in the `array` starting from the `from` index (exclusive).\n ///\n /// Negative indices are relative to the end of the array. For example, `-1` corresponds to the last element in the array.\n ///\n /// If the indices are out of bounds, they are clamped to the array bounds.\n /// If the first index is greater than the second, the function returns an empty iterator.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let array = ['c', 'o', 'f', 'f', 'e', 'e'];\n /// assert Array.prevIndexOf(array, Char.equal, 'c', array.size()) == ?0;\n /// assert Array.prevIndexOf(array, Char.equal, 'e', array.size()) == ?5;\n /// assert Array.prevIndexOf(array, Char.equal, 'e', 5) == ?4;\n /// assert Array.prevIndexOf(array, Char.equal, 'e', 4) == null;\n /// ```\n ///\n /// Runtime: O(array.size());\n /// Space: O(1);\n public func prevIndexOf(self : [T], equal : (implicit : (T, T) -> Bool), element : T, fromExclusive : Nat) : ?Nat {\n var i = fromExclusive;\n while (i > 0) {\n i -= 1;\n if (equal(self[i], element)) {\n return ?i\n }\n };\n null\n };\n\n /// Returns true if the `array` contains `element` using the provided `equal` function.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let array = ['c', 'o', 'f', 'f', 'e', 'e'];\n /// assert Array.contains(array, Char.equal, 'f');\n /// assert not Array.contains(array, Char.equal, 'g');\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func contains(self : [T], equal : (implicit : (T, T) -> Bool), element : T) : Bool {\n for (item in self.vals()) {\n if (equal(item, element)) {\n return true\n }\n };\n false\n };\n\n /// Returns an iterator over a slice of `array` starting at `fromInclusive` up to (but not including) `toExclusive`.\n ///\n /// Negative indices are relative to the end of the array. For example, `-1` corresponds to the last element in the array.\n ///\n /// If the indices are out of bounds, they are clamped to the array bounds.\n /// If the first index is greater than the second, the function returns an empty iterator.\n ///\n /// ```motoko include=import\n /// let array = [1, 2, 3, 4, 5];\n /// let iter1 = Array.range(array, 3, array.size());\n /// assert iter1.next() == ?4;\n /// assert iter1.next() == ?5;\n /// assert iter1.next() == null;\n ///\n /// let iter2 = Array.range(array, 3, -1);\n /// assert iter2.next() == ?4;\n /// assert iter2.next() == null;\n ///\n /// let iter3 = Array.range(array, 0, 0);\n /// assert iter3.next() == null;\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func range(self : [T], fromInclusive : Int, toExclusive : Int) : Types.Iter {\n let size = self.size();\n // Convert negative indices to positive and handle bounds\n let startInt = if (fromInclusive < 0) {\n let s = size + fromInclusive;\n if (s < 0) { 0 } else { s }\n } else {\n if (fromInclusive > size) { size } else { fromInclusive }\n };\n let endInt = if (toExclusive < 0) {\n let e = size + toExclusive;\n if (e < 0) { 0 } else { e }\n } else {\n if (toExclusive > size) { size } else { toExclusive }\n };\n // Convert to Nat (always non-negative due to bounds checking above)\n let start = Prim.abs(startInt);\n let end = Prim.abs(endInt);\n object {\n var pos = start;\n public func next() : ?T {\n if (pos >= end) {\n null\n } else {\n let elem = self[pos];\n pos += 1;\n ?elem\n }\n }\n }\n };\n\n /// Returns a new array containing elements from `array` starting at index `fromInclusive` up to (but not including) index `toExclusive`.\n /// If the indices are out of bounds, they are clamped to the array bounds.\n ///\n /// ```motoko include=import\n /// let array = [1, 2, 3, 4, 5];\n ///\n /// let slice1 = Array.sliceToArray(array, 1, 4);\n /// assert slice1 == [2, 3, 4];\n ///\n /// let slice2 = Array.sliceToArray(array, 1, -1);\n /// assert slice2 == [2, 3, 4];\n /// ```\n ///\n /// Runtime: O(toExclusive - fromInclusive)\n ///\n /// Space: O(toExclusive - fromInclusive)\n public func sliceToArray(self : [T], fromInclusive : Int, toExclusive : Int) : [T] {\n let size = self.size();\n // Convert negative indices to positive and handle bounds\n let startInt = if (fromInclusive < 0) {\n let s = size + fromInclusive;\n if (s < 0) { 0 } else { s }\n } else {\n if (fromInclusive > size) { size } else { fromInclusive }\n };\n let endInt = if (toExclusive < 0) {\n let e = size + toExclusive;\n if (e < 0) { 0 } else { e }\n } else {\n if (toExclusive > size) { size } else { toExclusive }\n };\n // Convert to Nat (always non-negative due to bounds checking above)\n let start = Prim.abs(startInt);\n let end = Prim.abs(endInt);\n if (start >= end) {\n return []\n };\n Prim.Array_tabulate(end - start, func i = self[start + i])\n };\n\n /// Returns a new mutable array containing elements from `array` starting at index `fromInclusive` up to (but not including) index `toExclusive`.\n /// If the indices are out of bounds, they are clamped to the array bounds.\n ///\n /// ```motoko include=import\n /// import VarArray \"mo:core/VarArray\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [1, 2, 3, 4, 5];\n ///\n /// let slice1 = Array.sliceToVarArray(array, 1, 4);\n /// assert VarArray.equal(slice1, [var 2, 3, 4], Nat.equal);\n ///\n /// let slice2 = Array.sliceToVarArray(array, 1, -1);\n /// assert VarArray.equal(slice2, [var 2, 3, 4], Nat.equal);\n /// ```\n ///\n /// Runtime: O(toExclusive - fromInclusive)\n ///\n /// Space: O(toExclusive - fromInclusive)\n public func sliceToVarArray(self : [T], fromInclusive : Int, toExclusive : Int) : [var T] {\n let size = self.size();\n // Convert negative indices to positive and handle bounds\n let startInt = if (fromInclusive < 0) {\n let s = size + fromInclusive;\n if (s < 0) { 0 } else { s }\n } else {\n if (fromInclusive > size) { size } else { fromInclusive }\n };\n let endInt = if (toExclusive < 0) {\n let e = size + toExclusive;\n if (e < 0) { 0 } else { e }\n } else {\n if (toExclusive > size) { size } else { toExclusive }\n };\n // Convert to Nat (always non-negative due to bounds checking above)\n let start = Prim.abs(startInt);\n let end = Prim.abs(endInt);\n if (start >= end) {\n return [var]\n };\n Prim.Array_tabulateVar(end - start, func i = self[start + i])\n };\n\n /// Converts the array to its textual representation using `f` to convert each element to `Text`.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [1, 2, 3];\n /// let text = Array.toText(array, Nat.toText);\n /// assert text == \"[1, 2, 3]\";\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func toText(self : [T], f : (implicit : (toText : T -> Text))) : Text {\n let size = self.size();\n if (size == 0) { return \"[]\" };\n var text = \"[\";\n var i = 0;\n while (i < size) {\n if (i != 0) {\n text #= \", \"\n };\n text #= f(self[i]);\n i += 1\n };\n text #= \"]\";\n text\n };\n\n /// Compares two arrays using the provided comparison function for elements.\n /// Returns #less, #equal, or #greater if `array1` is less than, equal to,\n /// or greater than `array2` respectively.\n ///\n /// If arrays have different sizes but all elements up to the shorter length are equal,\n /// the shorter array is considered #less than the longer array.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array1 = [1, 2, 3];\n /// let array2 = [1, 2, 4];\n /// assert Array.compare(array1, array2, Nat.compare) == #less;\n /// ```\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array3 = [1, 2];\n /// let array4 = [1, 2, 3];\n /// assert Array.compare(array3, array4, Nat.compare) == #less;\n /// ```\n ///\n /// Runtime: O(min(size1, size2))\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func compare(self : [T], other : [T], compare : (implicit : (T, T) -> Order.Order)) : Order.Order {\n let size1 = self.size();\n let size2 = other.size();\n var i = 0;\n let minSize = if (size1 < size2) { size1 } else { size2 };\n while (i < minSize) {\n switch (compare(self[i], other[i])) {\n case (#less) { return #less };\n case (#greater) { return #greater };\n case (#equal) { i += 1 }\n }\n };\n if (size1 < size2) { #less } else if (size1 > size2) { #greater } else {\n #equal\n }\n };\n\n /// Performs binary search on a sorted array to find the index of the `element`.\n ///\n /// Returns `#found(index)` if the element is found, or `#insertionIndex(index)` with the index\n /// where the element would be inserted according to the ordering if not found.\n ///\n /// If there are multiple equal elements, no guarantee is made about which index is returned.\n /// The array must be sorted in ascending order according to the `compare` function.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let sorted = [1, 3, 5, 7, 9, 11];\n /// assert Array.binarySearch(sorted, Nat.compare, 5) == #found(2);\n /// assert Array.binarySearch(sorted, Nat.compare, 6) == #insertionIndex(3);\n /// ```\n ///\n /// Runtime: O(log(size))\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func binarySearch(self : [T], compare : (implicit : (T, T) -> Order.Order), element : T) : {\n #found : Nat;\n #insertionIndex : Nat\n } {\n var left = 0;\n var right = self.size();\n while (left < right) {\n let mid = (left + right) / 2;\n switch (compare(self[mid], element)) {\n case (#less) left := mid + 1;\n case (#greater) right := mid;\n case (#equal) return #found mid\n }\n };\n #insertionIndex left\n };\n\n /// Checks whether the `array` is sorted according to the `compare` function.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [1, 2, 3];\n /// assert Array.isSorted(array, Nat.compare);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func isSorted(self : [T], compare : (implicit : (T, T) -> Order.Order)) : Bool {\n let size = self.size();\n if (size <= 1) return true;\n var i = 1;\n while (i < size) {\n switch (compare(self[i - 1], self[i])) {\n case (#greater) return false;\n case _ { i += 1 }\n }\n };\n true\n }\n}\n"},"Nat16.mo":{"content":"/// Utility functions on 16-bit unsigned integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Nat16 \"mo:core/Nat16\";\n/// ```\nimport Nat \"Nat\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 16-bit natural numbers.\n public type Nat16 = Prim.Types.Nat16;\n\n /// Maximum 16-bit natural number. `2 ** 16 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.maxValue == (65535 : Nat16);\n /// ```\n public let maxValue : Nat16 = 65535;\n\n /// Converts a 16-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.toNat(123) == (123 : Nat);\n /// ```\n public let toNat : (self : Nat16) -> Nat = Prim.nat16ToNat;\n\n /// Converts an unsigned integer with infinite precision to a 16-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.fromNat(123) == (123 : Nat16);\n /// ```\n public let fromNat : Nat -> Nat16 = Prim.natToNat16;\n\n /// Converts an 8-bit unsigned integer to a 16-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.fromNat8(123) == (123 : Nat16);\n /// ```\n /// @deprecated M0235\n public let fromNat8 : (x : Nat8) -> Nat16 = Prim.nat8ToNat16;\n\n /// Converts a 16-bit unsigned integer to an 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.toNat8(123) == (123 : Nat8);\n /// ```\n public let toNat8 : (self : Nat16) -> Nat8 = Prim.nat16ToNat8;\n\n /// Converts a 32-bit unsigned integer to a 16-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.fromNat32(123) == (123 : Nat16);\n /// ```\n /// @deprecated M0235\n public let fromNat32 : (x : Nat32) -> Nat16 = Prim.nat32ToNat16;\n\n /// Converts a 16-bit unsigned integer to a 32-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.toNat32(123) == (123 : Nat32);\n /// ```\n public let toNat32 : (self : Nat16) -> Nat32 = Prim.nat16ToNat32;\n\n /// Converts a 64-bit unsigned integer to a 16-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.fromNat64(123) == (123 : Nat16);\n /// ```\n /// @deprecated M0235\n public func fromNat64(x : Nat64) : Nat16 {\n Prim.nat32ToNat16(Prim.nat64ToNat32(x))\n };\n\n /// Converts a 16-bit unsigned integer to a 64-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.toNat64(123) == (123 : Nat64);\n /// ```\n public func toNat64(self : Nat16) : Nat64 {\n Prim.nat32ToNat64(Prim.nat16ToNat32(self))\n };\n\n /// Converts a signed integer with infinite precision to a 16-bit unsigned integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.fromIntWrap(123 : Int) == (123 : Nat16);\n /// ```\n public let fromIntWrap : Int -> Nat16 = Prim.intToNat16Wrap;\n\n /// Converts `x` to its textual representation. Textual representation _do not_\n /// contain underscores to represent commas.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.toText(1234) == (\"1234\" : Text);\n /// ```\n public func toText(self : Nat16) : Text {\n Nat.toText(toNat(self))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.min(123, 200) == (123 : Nat16);\n /// ```\n public func min(x : Nat16, y : Nat16) : Nat16 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.max(123, 200) == (200 : Nat16);\n /// ```\n public func max(x : Nat16, y : Nat16) : Nat16 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Nat16 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.equal(1, 1);\n /// assert (1 : Nat16) == (1 : Nat16);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Nat16 = 111;\n /// let b : Nat16 = 222;\n /// assert not Nat16.equal(a, b);\n /// ```\n public func equal(x : Nat16, y : Nat16) : Bool { x == y };\n\n /// Inequality function for Nat16 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.notEqual(1, 2);\n /// assert (1 : Nat16) != (2 : Nat16);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Nat16, y : Nat16) : Bool { x != y };\n\n /// \"Less than\" function for Nat16 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.less(1, 2);\n /// assert (1 : Nat16) < (2 : Nat16);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Nat16, y : Nat16) : Bool { x < y };\n\n /// \"Less than or equal\" function for Nat16 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.lessOrEqual(1, 2);\n /// assert (1 : Nat16) <= (2 : Nat16);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Nat16, y : Nat16) : Bool { x <= y };\n\n /// \"Greater than\" function for Nat16 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.greater(2, 1);\n /// assert (2 : Nat16) > (1 : Nat16);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Nat16, y : Nat16) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Nat16 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.greaterOrEqual(2, 1);\n /// assert (2 : Nat16) >= (1 : Nat16);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Nat16, y : Nat16) : Bool {\n x >= y\n };\n\n /// General purpose comparison function for `Nat16`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.compare(2, 3) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([2, 3, 1] : [Nat16], Nat16.compare) == [1, 2, 3];\n /// ```\n public func compare(x : Nat16, y : Nat16) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.add(1, 2) == 3;\n /// assert (1 : Nat16) + (2 : Nat16) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 0, Nat16.add) == 6;\n /// ```\n public func add(x : Nat16, y : Nat16) : Nat16 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n /// Traps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.sub(2, 1) == 1;\n /// assert (2 : Nat16) - (1 : Nat16) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 20, Nat16.sub) == 14;\n /// ```\n public func sub(x : Nat16, y : Nat16) : Nat16 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.mul(2, 3) == 6;\n /// assert (2 : Nat16) * (3 : Nat16) == 6;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 1, Nat16.mul) == 6;\n /// ```\n public func mul(x : Nat16, y : Nat16) : Nat16 { x * y };\n\n /// Returns the quotient of `x` divided by `y`, `x / y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.div(6, 2) == 3;\n /// assert (6 : Nat16) / (2 : Nat16) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Nat16, y : Nat16) : Nat16 { x / y };\n\n /// Returns the remainder of `x` divided by `y`, `x % y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.rem(6, 4) == 2;\n /// assert (6 : Nat16) % (4 : Nat16) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Nat16, y : Nat16) : Nat16 { x % y };\n\n /// Returns the power of `x` to `y`, `x ** y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.pow(2, 3) == 8;\n /// assert (2 : Nat16) ** (3 : Nat16) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Nat16, y : Nat16) : Nat16 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitnot(0) == 65535;\n /// assert ^(0 : Nat16) == 65535;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Nat16) : Nat16 { ^x };\n\n /// Returns the bitwise and of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitand(0, 1) == 0;\n /// assert (0 : Nat16) & (1 : Nat16) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Nat16, y : Nat16) : Nat16 { x & y };\n\n /// Returns the bitwise or of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitor(0, 1) == 1;\n /// assert (0 : Nat16) | (1 : Nat16) == 1;\n /// ```\n public func bitor(x : Nat16, y : Nat16) : Nat16 { x | y };\n\n /// Returns the bitwise exclusive or of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitxor(0, 1) == 1;\n /// assert (0 : Nat16) ^ (1 : Nat16) == 1;\n /// ```\n public func bitxor(x : Nat16, y : Nat16) : Nat16 { x ^ y };\n\n /// Returns the bitwise shift left of `x` by `y`, `x << y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitshiftLeft(1, 3) == 8;\n /// assert (1 : Nat16) << (3 : Nat16) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Nat16, y : Nat16) : Nat16 {\n x << y\n };\n\n /// Returns the bitwise shift right of `x` by `y`, `x >> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitshiftRight(8, 3) == 1;\n /// assert (8 : Nat16) >> (3 : Nat16) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Nat16, y : Nat16) : Nat16 {\n x >> y\n };\n\n /// Returns the bitwise rotate left of `x` by `y`, `x <<> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitrotLeft(2, 1) == 4;\n /// assert (2 : Nat16) <<> (1 : Nat16) == 4;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Nat16, y : Nat16) : Nat16 { x <<> y };\n\n /// Returns the bitwise rotate right of `x` by `y`, `x <>> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitrotRight(1, 1) == 32768;\n /// assert (1 : Nat16) <>> (1 : Nat16) == 32768;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Nat16, y : Nat16) : Nat16 {\n x <>> y\n };\n\n /// Returns the value of bit `p mod 16` in `x`, `(x & 2^(p mod 16)) == 2^(p mod 16)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bittest(5, 2);\n /// ```\n public func bittest(x : Nat16, p : Nat) : Bool {\n Prim.btstNat16(x, Prim.natToNat16(p))\n };\n\n /// Returns the value of setting bit `p mod 16` in `x` to `1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitset(0, 2) == 4;\n /// ```\n public func bitset(x : Nat16, p : Nat) : Nat16 {\n x | (1 << Prim.natToNat16(p))\n };\n\n /// Returns the value of clearing bit `p mod 16` in `x` to `0`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitclear(5, 2) == 1;\n /// ```\n public func bitclear(x : Nat16, p : Nat) : Nat16 {\n x & ^(1 << Prim.natToNat16(p))\n };\n\n /// Returns the value of flipping bit `p mod 16` in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitflip(5, 2) == 1;\n /// ```\n public func bitflip(x : Nat16, p : Nat) : Nat16 {\n x ^ (1 << Prim.natToNat16(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitcountNonZero(5) == 2;\n /// ```\n public let bitcountNonZero : (x : Nat16) -> Nat16 = Prim.popcntNat16;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitcountLeadingZero(5) == 13;\n /// ```\n public let bitcountLeadingZero : (x : Nat16) -> Nat16 = Prim.clzNat16;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitcountTrailingZero(5) == 0;\n /// ```\n public let bitcountTrailingZero : (x : Nat16) -> Nat16 = Prim.ctzNat16;\n\n /// Returns the upper (i.e. most significant) and lower (least significant) byte of `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.explode 0xaa88 == (170, 136);\n /// ```\n public let explode : (x : Nat16) -> (msb : Nat8, lsb : Nat8) = Prim.explodeNat16;\n\n /// Returns the sum of `x` and `y`, `x +% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.addWrap(65532, 5) == 1;\n /// assert (65532 : Nat16) +% (5 : Nat16) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Nat16, y : Nat16) : Nat16 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`. Wraps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.subWrap(1, 2) == 65535;\n /// assert (1 : Nat16) -% (2 : Nat16) == 65535;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Nat16, y : Nat16) : Nat16 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.mulWrap(655, 101) == 619;\n /// assert (655 : Nat16) *% (101 : Nat16) == 619;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Nat16, y : Nat16) : Nat16 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.powWrap(2, 16) == 0;\n /// assert (2 : Nat16) **% (16 : Nat16) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Nat16, y : Nat16) : Nat16 { x **% y };\n\n /// Returns an iterator over `Nat16` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat16.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat16.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Nat16, toExclusive : Nat16) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Nat16 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Nat16` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat16.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat16.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Nat16, to : Nat16) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Nat16 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Nat16 values, from 0 to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat16.allValues();\n /// assert iter.next() == ?0;\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(0, maxValue)\n };\n\n}\n"},"Iter.mo":{"content":"/// Utilities for `Iter` (iterator) values.\n///\n/// Iterators are a way to represent sequences of values that can be lazily produced.\n/// They can be used to:\n/// - Iterate over collections.\n/// - Represent collections that are too large to fit in memory or that are produced incrementally.\n/// - Transform collections without creating intermediate collections.\n///\n/// Iterators are inherently stateful. Calling `next` \"consumes\" a value from\n/// the Iterator that cannot be put back, so keep that in mind when sharing\n/// iterators between consumers.\n///\n/// ```motoko name=import\n/// import Iter \"mo:core/Iter\";\n/// ```\n///\n///\n/// An iterator can be iterated over using a `for` loop:\n/// ```motoko\n/// let iter = [1, 2, 3].values();\n/// for (x in iter) {\n/// // do something with x...\n/// }\n/// ```\n///\n/// Iterators can be:\n/// - created from other collections (e.g. using `values` or `keys` function on a `Map`) or from scratch (e.g. using `empty` or `singleton`).\n/// - transformed using `map`, `filter`, `concat`, etc. Which can be used to compose several transformations together without materializing intermediate collections.\n/// - consumed using `forEach`, `size`, `toArray`, etc.\n/// - combined using `concat`.\n\nimport Prim \"mo:prim\";\n\nimport Array \"Array\";\nimport Order \"Order\";\nimport Runtime \"Runtime\";\nimport Types \"Types\";\nimport VarArray \"VarArray\";\n\nmodule {\n\n /// An iterator that produces values of type `T`. Calling `next` returns\n /// `null` when iteration is finished.\n ///\n /// Iterators are inherently stateful. Calling `next` \"consumes\" a value from\n /// the Iterator that cannot be put back, so keep that in mind when sharing\n /// iterators between consumers.\n ///\n /// An iterator `i` can be iterated over using\n /// ```motoko\n /// let iter = [1, 2, 3].values();\n /// for (x in iter) {\n /// // do something with x...\n /// }\n /// ```\n public type Iter = Types.Iter;\n\n /// Creates an empty iterator.\n ///\n /// ```motoko include=import\n /// for (x in Iter.empty())\n /// assert false; // This loop body will never run\n /// ```\n public func empty() : Iter {\n object {\n public func next() : ?T {\n null\n }\n }\n };\n\n /// Creates an iterator that produces a single value.\n ///\n /// ```motoko include=import\n /// var sum = 0;\n /// for (x in Iter.singleton(3))\n /// sum += x;\n /// assert sum == 3;\n /// ```\n public func singleton(value : T) : Iter {\n object {\n var state = ?value;\n public func next() : ?T {\n switch state {\n case null null;\n case some {\n state := null;\n some\n }\n }\n }\n }\n };\n\n /// Calls a function `f` on every value produced by an iterator and discards\n /// the results. If you're looking to keep these results use `map` instead.\n ///\n /// ```motoko include=import\n /// var sum = 0;\n /// Iter.forEach([1, 2, 3].values(), func(x) {\n /// sum += x;\n /// });\n /// assert sum == 6;\n /// ```\n public func forEach(\n self : Iter,\n f : (T) -> ()\n ) {\n label l loop {\n switch (self.next()) {\n case (?next) {\n f(next)\n };\n case (null) {\n break l\n }\n }\n }\n };\n\n /// Takes an iterator and returns a new iterator that pairs each element with its index.\n /// The index starts at 0 and increments by 1 for each element.\n ///\n /// ```motoko include=import\n /// let iter = Iter.fromArray([\"A\", \"B\", \"C\"]);\n /// let enumerated = Iter.enumerate(iter);\n /// let result = Iter.toArray(enumerated);\n /// assert result == [(0, \"A\"), (1, \"B\"), (2, \"C\")];\n /// ```\n public func enumerate(self : Iter) : Iter<(Nat, T)> {\n object {\n var i = 0;\n public func next() : ?(Nat, T) {\n switch (self.next()) {\n case (?x) {\n let current = (i, x);\n i += 1;\n ?current\n };\n case null { null }\n }\n }\n }\n };\n\n /// Creates a new iterator that yields every nth element from the original iterator.\n /// If `interval` is 0, returns an empty iterator. If `interval` is 1, returns the original iterator.\n /// For any other positive interval, returns an iterator that skips `interval - 1` elements after each yielded element.\n ///\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3, 4, 5, 6]);\n /// let steppedIter = Iter.step(iter, 2); // Take every 2nd element\n /// assert ?1 == steppedIter.next();\n /// assert ?3 == steppedIter.next();\n /// assert ?5 == steppedIter.next();\n /// assert null == steppedIter.next();\n /// ```\n public func step(self : Iter, n : Nat) : Iter {\n if (n == 0) {\n empty()\n } else if (n == 1) {\n self\n } else {\n object {\n public func next() : ?T {\n let item = self.next();\n var i = 1;\n while (i < n) {\n ignore self.next();\n i += 1\n };\n item\n }\n }\n }\n };\n\n /// Consumes an iterator and counts how many elements were produced (discarding them in the process).\n /// ```motoko include=import\n /// let iter = [1, 2, 3].values();\n /// assert 3 == Iter.size(iter);\n /// ```\n public func size(self : Iter) : Nat {\n var len = 0;\n forEach(self, func(x) { len += 1 });\n len\n };\n\n /// Takes a function and an iterator and returns a new iterator that lazily applies\n /// the function to every element produced by the argument iterator.\n /// ```motoko include=import\n /// let iter = [1, 2, 3].values();\n /// let mappedIter = Iter.map(iter, func (x) = x * 2);\n /// let result = Iter.toArray(mappedIter);\n /// assert result == [2, 4, 6];\n /// ```\n public func map(self : Iter, f : T -> R) : Iter = object {\n public func next() : ?R {\n switch (self.next()) {\n case (?next) {\n ?f(next)\n };\n case (null) {\n null\n }\n }\n }\n };\n\n /// Creates a new iterator that only includes elements from the original iterator\n /// for which the predicate function returns true.\n ///\n /// ```motoko include=import\n /// let iter = [1, 2, 3, 4, 5].values();\n /// let evenNumbers = Iter.filter(iter, func (x) = x % 2 == 0);\n /// let result = Iter.toArray(evenNumbers);\n /// assert result == [2, 4];\n /// ```\n public func filter(self : Iter, f : T -> Bool) : Iter = object {\n public func next() : ?T {\n loop {\n let ?x = self.next() else return null;\n if (f x) return ?x\n };\n null\n }\n };\n\n /// Creates a new iterator by applying a transformation function to each element\n /// of the original iterator. Elements for which the function returns null are\n /// excluded from the result.\n ///\n /// ```motoko include=import\n /// let iter = [1, 2, 3].values();\n /// let evenNumbers = Iter.filterMap(iter, func (x) = if (x % 2 == 0) ?x else null);\n /// let result = Iter.toArray(evenNumbers);\n /// assert result == [2];\n /// ```\n public func filterMap(self : Iter, f : T -> ?R) : Iter = object {\n public func next() : ?R {\n loop {\n let ?x = self.next() else return null;\n switch (f x) {\n case (?r) return ?r;\n case null {} // continue\n }\n }\n }\n };\n\n /// Flattens an iterator of iterators into a single iterator by concatenating the inner iterators.\n ///\n /// Possible optimization: Use `flatMap` when you need to transform elements before calling `flatten`. Example: use `flatMap(...)` instead of `flatten(map(...))`.\n /// ```motoko include=import\n /// let iter = Iter.flatten([[1, 2].values(), [3].values(), [4, 5, 6].values()].values());\n /// let result = Iter.toArray(iter);\n /// assert result == [1, 2, 3, 4, 5, 6];\n /// ```\n public func flatten(self : Iter>) : Iter = object {\n var current : Iter = empty();\n public func next() : ?T {\n loop {\n switch (current.next()) {\n case (?x) return ?x;\n case null {\n let ?next = self.next() else return null;\n current := next\n }\n }\n }\n }\n };\n\n /// Transforms every element of an iterator into an iterator and concatenates the results.\n /// ```motoko include=import\n /// let iter = Iter.flatMap([1, 3, 5].values(), func (x) = [x, x + 1].values());\n /// let result = Iter.toArray(iter);\n /// assert result == [1, 2, 3, 4, 5, 6];\n /// ```\n public func flatMap(self : Iter, f : T -> Iter) : Iter = object {\n var current : Iter = empty();\n public func next() : ?R {\n loop {\n switch (current.next()) {\n case (?x) return ?x;\n case null {\n let ?next = self.next() else return null;\n current := f(next)\n }\n }\n }\n }\n };\n\n /// Returns a new iterator that yields at most, first `n` elements from the original iterator.\n /// After `n` elements have been produced or the original iterator is exhausted,\n /// subsequent calls to `next()` will return `null`.\n ///\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3, 4, 5]);\n /// let first3 = Iter.take(iter, 3);\n /// let result = Iter.toArray(first3);\n /// assert result == [1, 2, 3];\n /// ```\n ///\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3]);\n /// let first5 = Iter.take(iter, 5);\n /// let result = Iter.toArray(first5);\n /// assert result == [1, 2, 3]; // only 3 elements in the original iterator\n /// ```\n public func take(self : Iter, n : Nat) : Iter = object {\n var remaining = n;\n public func next() : ?T {\n if (remaining == 0) return null;\n remaining -= 1;\n self.next()\n }\n };\n\n /// Returns a new iterator that yields elements from the original iterator until the predicate function returns false.\n /// The first element for which the predicate returns false is not included in the result.\n ///\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3, 4, 5, 4, 3, 2, 1]);\n /// let result = Iter.takeWhile(iter, func (x) = x < 4);\n /// let array = Iter.toArray(result);\n /// assert array == [1, 2, 3]; // note the difference between `takeWhile` and `filter`\n /// ```\n public func takeWhile(self : Iter, f : T -> Bool) : Iter = object {\n var done = false;\n public func next() : ?T {\n if done return null;\n let ?x = self.next() else return null;\n if (f x) return ?x;\n done := true;\n null\n }\n };\n\n /// Returns a new iterator that skips the first `n` elements from the original iterator.\n /// If the original iterator has fewer than `n` elements, the result will be an empty iterator.\n ///\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3, 4, 5]);\n /// let skipped = Iter.drop(iter, 3);\n /// let result = Iter.toArray(skipped);\n /// assert result == [4, 5];\n /// ```\n public func drop(self : Iter, n : Nat) : Iter = object {\n var remaining = n;\n public func next() : ?T {\n while (remaining > 0) {\n let ?_ = self.next() else return null;\n remaining -= 1\n };\n self.next()\n }\n };\n\n /// Returns a new iterator that skips elements from the original iterator until the predicate function returns false.\n /// The first element for which the predicate returns false is the first element produced by the new iterator.\n ///\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3, 4, 5, 4, 3, 2, 1]);\n /// let result = Iter.dropWhile(iter, func (x) = x < 4);\n /// let array = Iter.toArray(result);\n /// assert array == [4, 5, 4, 3, 2, 1]; // notice that `takeWhile` and `dropWhile` are complementary\n /// ```\n public func dropWhile(self : Iter, f : T -> Bool) : Iter = object {\n var dropping = true;\n public func next() : ?T {\n while dropping {\n let ?x = self.next() else return null;\n if (not f x) {\n dropping := false;\n return ?x\n }\n };\n self.next()\n }\n };\n\n /// Zips two iterators into a single iterator that produces pairs of elements.\n /// The resulting iterator will stop producing elements when either of the input iterators is exhausted.\n ///\n /// ```motoko include=import\n /// let iter1 = [1, 2, 3].values();\n /// let iter2 = [\"A\", \"B\"].values();\n /// let zipped = Iter.zip(iter1, iter2);\n /// let result = Iter.toArray(zipped);\n /// assert result == [(1, \"A\"), (2, \"B\")]; // note that the third element from iter1 is not included, because iter2 is exhausted\n /// ```\n public func zip(self : Iter, other : Iter) : Iter<(A, B)> = object {\n public func next() : ?(A, B) {\n let ?x = self.next() else return null;\n let ?y = other.next() else return null;\n ?(x, y)\n }\n };\n\n /// Zips three iterators into a single iterator that produces triples of elements.\n /// The resulting iterator will stop producing elements when any of the input iterators is exhausted.\n ///\n /// ```motoko include=import\n /// let iter1 = [\"A\", \"B\"].values();\n /// let iter2 = [\"1\", \"2\", \"3\"].values();\n /// let iter3 = [\"x\", \"y\", \"z\", \"xd\"].values();\n /// let zipped = Iter.zip3(iter1, iter2, iter3);\n /// let result = Iter.toArray(zipped);\n /// assert result == [(\"A\", \"1\", \"x\"), (\"B\", \"2\", \"y\")]; // note that the unmatched elements from iter2 and iter3 are not included\n /// ```\n public func zip3(self : Iter, other1 : Iter, other2 : Iter) : Iter<(A, B, C)> = object {\n public func next() : ?(A, B, C) {\n let ?x = self.next() else return null;\n let ?y = other1.next() else return null;\n let ?z = other2.next() else return null;\n ?(x, y, z)\n }\n };\n\n /// Zips two iterators into a single iterator by applying a function to zipped pairs of elements.\n /// The resulting iterator will stop producing elements when either of the input iterators is exhausted.\n ///\n /// ```motoko include=import\n /// let iter1 = [\"A\", \"B\"].values();\n /// let iter2 = [\"1\", \"2\", \"3\"].values();\n /// let zipped = Iter.zipWith(iter1, iter2, func (a, b) = a # b);\n /// let result = Iter.toArray(zipped);\n /// assert result == [\"A1\", \"B2\"]; // note that the third element from iter2 is not included, because iter1 is exhausted\n /// ```\n public func zipWith(self : Iter, other : Iter, f : (A, B) -> R) : Iter = object {\n public func next() : ?R {\n let ?x = self.next() else return null;\n let ?y = other.next() else return null;\n ?f(x, y)\n }\n };\n\n /// Zips three iterators into a single iterator by applying a function to zipped triples of elements.\n /// The resulting iterator will stop producing elements when any of the input iterators is exhausted.\n ///\n /// ```motoko include=import\n /// let iter1 = [\"A\", \"B\"].values();\n /// let iter2 = [\"1\", \"2\", \"3\"].values();\n /// let iter3 = [\"x\", \"y\", \"z\", \"xd\"].values();\n /// let zipped = Iter.zipWith3(iter1, iter2, iter3, func (a, b, c) = a # b # c);\n /// let result = Iter.toArray(zipped);\n /// assert result == [\"A1x\", \"B2y\"]; // note that the unmatched elements from iter2 and iter3 are not included\n /// ```\n public func zipWith3(self : Iter, other1 : Iter, other2 : Iter, f : (A, B, C) -> R) : Iter = object {\n public func next() : ?R {\n let ?x = self.next() else return null;\n let ?y = other1.next() else return null;\n let ?z = other2.next() else return null;\n ?f(x, y, z)\n }\n };\n\n /// Checks if a predicate function is true for all elements produced by an iterator.\n /// It stops consuming elements from the original iterator as soon as the predicate returns false.\n ///\n /// ```motoko include=import\n /// assert Iter.all([1, 2, 3].values(), func (x) = x < 4);\n /// assert not Iter.all([1, 2, 3].values(), func (x) = x < 3);\n /// ```\n public func all(self : Iter, f : T -> Bool) : Bool {\n for (x in self) {\n if (not f x) return false\n };\n true\n };\n\n /// Checks if a predicate function is true for any element produced by an iterator.\n /// It stops consuming elements from the original iterator as soon as the predicate returns true.\n ///\n /// ```motoko include=import\n /// assert Iter.any([1, 2, 3].values(), func (x) = x == 2);\n /// assert not Iter.any([1, 2, 3].values(), func (x) = x == 4);\n /// ```\n public func any(self : Iter, f : T -> Bool) : Bool {\n for (x in self) {\n if (f x) return true\n };\n false\n };\n\n /// Finds the first element produced by an iterator for which a predicate function returns true.\n /// Returns `null` if no such element is found.\n /// It stops consuming elements from the original iterator as soon as the predicate returns true.\n ///\n /// ```motoko include=import\n /// let iter = [1, 2, 3, 4].values();\n /// assert ?2 == Iter.find(iter, func (x) = x % 2 == 0);\n /// ```\n public func find(self : Iter, f : T -> Bool) : ?T {\n for (x in self) {\n if (f x) return ?x\n };\n null\n };\n\n /// Returns the first index in `array` for which `predicate` returns true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// ```motoko include=import\n /// let iter = ['A', 'B', 'C', 'D'].values();\n /// let found = Iter.findIndex(iter, func(x) { x == 'C' });\n /// assert found == ?2;\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func findIndex(self : Iter, predicate : T -> Bool) : ?Nat {\n for ((index, element) in enumerate(self)) {\n if (predicate element) {\n return ?index\n }\n };\n null\n };\n\n /// Checks if an element is produced by an iterator.\n /// It stops consuming elements from the original iterator as soon as the predicate returns true.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let iter = [1, 2, 3, 4].values();\n /// assert Iter.contains(iter, Nat.equal, 2);\n /// ```\n public func contains(self : Iter, equal : (implicit : (T, T) -> Bool), value : T) : Bool {\n for (x in self) {\n if (equal(x, value)) return true\n };\n false\n };\n\n /// Reduces an iterator to a single value by applying a function to each element and an accumulator.\n /// The accumulator is initialized with the `initial` value.\n /// It starts applying the `combine` function starting from the `initial` accumulator value and the first elements produced by the iterator.\n ///\n /// ```motoko include=import\n /// let iter = [\"A\", \"B\", \"C\"].values();\n /// let result = Iter.foldLeft(iter, \"S\", func (acc, x) = \"(\" # acc # x # \")\");\n /// assert result == \"(((SA)B)C)\";\n /// ```\n public func foldLeft(self : Iter, initial : R, combine : (R, T) -> R) : R {\n var acc = initial;\n for (x in self) {\n acc := combine(acc, x)\n };\n acc\n };\n\n /// Reduces an iterator to a single value by applying a function to each element in reverse order and an accumulator.\n /// The accumulator is initialized with the `initial` value and it is first combined with the last element produced by the iterator.\n /// It starts applying the `combine` function starting from the last elements produced by the iterator.\n ///\n /// **Performance note**: Since this function needs to consume the entire iterator to reverse it,\n /// it has to materialize the entire iterator in memory to get to the last element to start applying the `combine` function.\n /// **Use `foldLeft` or `reduce` when possible to avoid the extra memory overhead**.\n ///\n /// ```motoko include=import\n /// let iter = [\"A\", \"B\", \"C\"].values();\n /// let result = Iter.foldRight(iter, \"S\", func (x, acc) = \"(\" # x # acc # \")\");\n /// assert result == \"(A(B(CS)))\";\n /// ```\n public func foldRight(self : Iter, initial : R, combine : (T, R) -> R) : R {\n foldLeft(reverse(self), initial, func(acc, x) = combine(x, acc))\n };\n\n /// Reduces an iterator to a single value by applying a function to each element, starting with the first elements.\n /// The accumulator is initialized with the first element produced by the iterator.\n /// When the iterator is empty, it returns `null`.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let iter = [1, 2, 3].values();\n /// assert ?6 == Iter.reduce(iter, Nat.add);\n /// ```\n public func reduce(self : Iter, combine : (T, T) -> T) : ?T {\n let ?first = self.next() else return null;\n ?foldLeft(self, first, combine)\n };\n\n /// Produces an iterator containing cumulative results of applying the `combine` operator going left to right, including the `initial` value.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let iter = [1, 2, 3].values();\n /// let scanned = Iter.scanLeft(iter, 0, Nat.add);\n /// let result = Iter.toArray(scanned);\n /// assert result == [0, 1, 3, 6];\n /// ```\n public func scanLeft(self : Iter, initial : R, combine : (R, T) -> R) : Iter = object {\n var acc = initial;\n var isInitial = true;\n public func next() : ?R {\n if (isInitial) {\n isInitial := false;\n return ?acc\n };\n switch (self.next()) {\n case (?x) {\n acc := combine(acc, x);\n ?acc\n };\n case null null\n }\n }\n };\n\n /// Produces an iterator containing cumulative results of applying the `combine` operator going right to left, including the `initial` value.\n ///\n /// **Performance note**: Since this function needs to consume the entire iterator to reverse it,\n /// it has to materialize the entire iterator in memory to get to the last element to start applying the `combine` function.\n /// **Use `scanLeft` when possible to avoid the extra memory overhead**.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let iter = [1, 2, 3].values();\n /// let scanned = Iter.scanRight(iter, 0, Nat.add);\n /// let result = Iter.toArray(scanned);\n /// assert result == [0, 3, 5, 6];\n /// ```\n public func scanRight(self : Iter, initial : R, combine : (T, R) -> R) : Iter {\n scanLeft(reverse(self), initial, func(x, acc) = combine(acc, x))\n };\n\n /// Creates an iterator that produces elements using the `step` function starting from the `initial` value.\n /// The `step` function takes the current state and returns the next element and the next state, or `null` if the iteration is finished.\n ///\n /// ```motoko include=import\n /// let iter = Iter.unfold(1, func (x) = if (x <= 3) ?(x, x + 1) else null);\n /// let result = Iter.toArray(iter);\n /// assert result == [1, 2, 3];\n /// ```\n public func unfold(initial : S, step : S -> ?(T, S)) : Iter = object {\n var state = initial;\n public func next() : ?T {\n let ?(t, next) = step(state) else return null;\n state := next;\n ?t\n }\n };\n\n // todo: unfold, iterate, cycle, range, rangeStep, rangeStepTo, rangeStepToExclusive\n\n /// Consumes an iterator and returns the first maximum element produced by the iterator.\n /// If the iterator is empty, it returns `null`.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let iter = [1, 2, 3].values();\n /// assert ?3 == Iter.max(iter, Nat.compare);\n /// ```\n public func max(self : Iter, compare : (implicit : (T, T) -> Order.Order)) : ?T {\n reduce(\n self,\n func(a, b) {\n switch (compare(a, b)) {\n case (#less) b;\n case _ a\n }\n }\n )\n };\n\n /// Consumes an iterator and returns the first minimum element produced by the iterator.\n /// If the iterator is empty, it returns `null`.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let iter = [1, 2, 3].values();\n /// assert ?1 == Iter.min(iter, Nat.compare);\n /// ```\n public func min(self : Iter, compare : (implicit : (T, T) -> Order.Order)) : ?T {\n reduce(\n self,\n func(a, b) {\n switch (compare(a, b)) {\n case (#greater) b;\n case _ a\n }\n }\n )\n };\n\n /// Creates an iterator that produces an infinite sequence of `x`.\n /// ```motoko include=import\n /// let iter = Iter.infinite(10);\n /// assert ?10 == iter.next();\n /// assert ?10 == iter.next();\n /// assert ?10 == iter.next();\n /// // ...\n /// ```\n public func infinite(item : T) : Iter = object {\n public func next() : ?T {\n ?item\n }\n };\n\n /// Takes two iterators and returns a new iterator that produces\n /// elements from the original iterators sequentally.\n /// ```motoko include=import\n /// let iter1 = [1, 2].values();\n /// let iter2 = [5, 6, 7].values();\n /// let concatenatedIter = Iter.concat(iter1, iter2);\n /// let result = Iter.toArray(concatenatedIter);\n /// assert result == [1, 2, 5, 6, 7];\n /// ```\n public func concat(self : Iter, other : Iter) : Iter {\n var aEnded : Bool = false;\n object {\n public func next() : ?T {\n if (aEnded) {\n return other.next()\n };\n switch (self.next()) {\n case (?x) ?x;\n case (null) {\n aEnded := true;\n other.next()\n }\n }\n }\n }\n };\n\n /// Creates an iterator that produces the elements of an Array in ascending index order.\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3]);\n /// assert ?1 == iter.next();\n /// assert ?2 == iter.next();\n /// assert ?3 == iter.next();\n /// assert null == iter.next();\n /// ```\n /// @deprecated M0235\n public func fromArray(array : [T]) : Iter = array.vals();\n\n /// Like `fromArray` but for Arrays with mutable elements. Captures\n /// the elements of the Array at the time the iterator is created, so\n /// further modifications won't be reflected in the iterator.\n /// @deprecated M0235\n public func fromVarArray(array : [var T]) : Iter = array.vals();\n\n /// Consumes an iterator and collects its produced elements in an Array.\n /// ```motoko include=import\n /// let iter = [1, 2, 3].values();\n /// assert [1, 2, 3] == Iter.toArray(iter);\n /// ```\n public func toArray(self : Iter) : [T] {\n // TODO: Replace implementation. This is just temporay.\n type Node = { value : T; var next : ?Node };\n var first : ?Node = null;\n var last : ?Node = null;\n var count = 0;\n\n func add(value : T) {\n let node : Node = { value; var next = null };\n switch (last) {\n case null {\n first := ?node\n };\n case (?previous) {\n previous.next := ?node\n }\n };\n last := ?node;\n count += 1\n };\n\n for (value in self) {\n add(value)\n };\n if (count == 0) {\n return []\n };\n var current = first;\n Prim.Array_tabulate(\n count,\n func(_) {\n switch (current) {\n case null Runtime.trap(\"Iter.toArray(): node must not be null\");\n case (?node) {\n current := node.next;\n node.value\n }\n }\n }\n )\n };\n\n /// Like `toArray` but for Arrays with mutable elements.\n public func toVarArray(self : Iter) : [var T] {\n Array.toVarArray(toArray(self))\n };\n\n /// Sorted iterator. Will iterate over *all* elements to sort them, necessarily.\n public func sort(self : Iter, compare : (implicit : (T, T) -> Order.Order)) : Iter {\n let array = toVarArray(self);\n VarArray.sortInPlace(array, compare);\n fromVarArray(array)\n };\n\n /// Creates an iterator that produces a given item a specified number of times.\n /// ```motoko include=import\n /// let iter = Iter.repeat(3, 2);\n /// assert ?3 == iter.next();\n /// assert ?3 == iter.next();\n /// assert null == iter.next();\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func repeat(item : T, count : Nat) : Iter = object {\n var remaining = count;\n public func next() : ?T {\n if (remaining == 0) {\n null\n } else {\n remaining -= 1;\n ?item\n }\n }\n };\n\n /// Creates a new iterator that produces elements from the original iterator in reverse order.\n /// Note: This function needs to consume the entire iterator to reverse it.\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3]);\n /// let reversed = Iter.reverse(iter);\n /// assert ?3 == reversed.next();\n /// assert ?2 == reversed.next();\n /// assert ?1 == reversed.next();\n /// assert null == reversed.next();\n /// ```\n ///\n /// Runtime: O(n) where n is the number of elements in the iterator\n ///\n /// Space: O(n) where n is the number of elements in the iterator\n public func reverse(self : Iter) : Iter {\n var acc : Types.Pure.List = null;\n for (x in self) {\n acc := ?(x, acc)\n };\n object {\n public func next() : ?T {\n switch acc {\n case null null;\n case (?(h, t)) {\n acc := t;\n ?h\n }\n }\n }\n }\n };\n\n}\n"},"Random.mo":{"content":"/// Random number generation.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Random \"mo:core/Random\";\n/// ```\n\nimport Nat8 \"Nat8\";\nimport Nat64 \"Nat64\";\nimport Int \"Int\";\nimport Nat \"Nat\";\nimport Blob \"Blob\";\nimport Runtime \"Runtime\";\n\nmodule {\n\n public type State = {\n var bytes : [Nat8];\n var index : Nat;\n var bits : Nat8;\n var bitMask : Nat8\n };\n\n public type SeedState = {\n random : State;\n prng : PRNG.State\n };\n\n let rawRand = (actor \"aaaaa-aa\" : actor { raw_rand : () -> async Blob }).raw_rand;\n\n public let blob : shared () -> async Blob = rawRand;\n\n public func bool() : async Bool {\n await* crypto().bool()\n };\n public func nat8() : async Nat8 {\n await* crypto().nat8()\n };\n public func nat64() : async Nat64 {\n await* crypto().nat64()\n };\n public func nat64Range(fromInclusive : Nat64, toExclusive : Nat64) : async Nat64 {\n await* crypto().nat64Range(fromInclusive, toExclusive)\n };\n public func natRange(fromInclusive : Nat, toExclusive : Nat) : async Nat {\n await* crypto().natRange(fromInclusive, toExclusive)\n };\n public func intRange(fromInclusive : Int, toExclusive : Int) : async Int {\n await* crypto().intRange(fromInclusive, toExclusive)\n };\n\n /// Initializes a random number generator state. This is used\n /// to create a `Random` or `AsyncRandom` instance with a specific state.\n /// The state is empty, but it can be reused after upgrading the canister.\n ///\n /// Example:\n /// ```motoko\n /// import Random \"mo:core/Random\";\n ///\n /// persistent actor {\n /// let state = Random.emptyState();\n /// transient let random = Random.cryptoFromState(state);\n ///\n /// public func main() : async () {\n /// let coin = await* random.bool(); // true or false\n /// }\n /// }\n /// ```\n /// @deprecated M0235\n public func emptyState() : State = {\n var bytes = [];\n var index = 0;\n var bits = 0x00;\n var bitMask = 0x00\n };\n\n /// Initializes a pseudo-random number generator state with a 64-bit seed.\n /// This is used to create a `Random` instance with a specific seed.\n /// The seed is used to initialize the PRNG state.\n ///\n /// Example:\n /// ```motoko\n /// import Random \"mo:core/Random\";\n ///\n /// persistent actor {\n /// let state = Random.seedState(123);\n /// transient let random = Random.seedFromState(state);\n ///\n /// public func main() : async () {\n /// let coin = random.bool(); // true or false\n /// }\n /// }\n /// ```\n /// @deprecated M0235\n public func seedState(seed : Nat64) : SeedState = {\n random = emptyState();\n prng = PRNG.init(seed)\n };\n\n /// Creates a pseudo-random number generator from a 64-bit seed.\n /// The seed is used to initialize the PRNG state.\n /// This is suitable for simulations and testing, but not for cryptographic purposes.\n ///\n /// Example:\n /// ```motoko include=import\n /// let random = Random.seed(123);\n /// let coin = random.bool(); // true or false\n /// ```\n /// @deprecated M0235\n public func seed(seed : Nat64) : Random {\n seedFromState(seedState(seed))\n };\n\n /// Creates a pseudo-random number generator with the given state.\n /// This provides statistical randomness suitable for simulations and testing,\n /// but should not be used for cryptographic purposes.\n ///\n /// Example:\n /// ```motoko\n /// import Random \"mo:core/Random\";\n ///\n /// persistent actor {\n /// let state = Random.seedState(123);\n /// transient let random = Random.seedFromState(state);\n ///\n /// public func main() : async () {\n /// let coin = random.bool(); // true or false\n /// }\n /// }\n /// ```\n /// @deprecated M0235\n public func seedFromState(state : SeedState) : Random {\n Random(\n state.random,\n func() : Blob {\n // Generate 8 bytes directly from a single 64-bit number\n let n = PRNG.next(state.prng);\n let (b7, b6, b5, b4, b3, b2, b1, b0) = Nat64.explode(n);\n Blob.fromArray([b0, b1, b2, b3, b4, b5, b6, b7])\n }\n )\n };\n\n /// Initializes a cryptographic random number generator\n /// using entropy from the ICP management canister.\n ///\n /// Example:\n /// ```motoko\n /// import Random \"mo:core/Random\";\n ///\n /// persistent actor {\n /// transient let random = Random.crypto();\n ///\n /// public func main() : async () {\n /// let coin = await* random.bool(); // true or false\n /// }\n /// }\n /// ```\n /// @deprecated M0235\n public func crypto() : AsyncRandom {\n cryptoFromState(emptyState())\n };\n\n /// Creates a random number generator suitable for cryptography\n /// using entropy from the ICP management canister. Initializing\n /// from a state makes it possible to reuse entropy after\n /// upgrading the canister.\n ///\n /// Example:\n /// ```motoko\n /// import Random \"mo:core/Random\";\n ///\n /// persistent actor {\n /// let state = Random.emptyState();\n /// transient let random = Random.cryptoFromState(state);\n ///\n /// func example() : async () {\n /// let coin = await* random.bool(); // true or false\n /// }\n /// }\n /// ```\n /// @deprecated M0235\n public func cryptoFromState(state : State) : AsyncRandom {\n AsyncRandom(state, func() : async* Blob { await rawRand() })\n };\n\n /// @deprecated M0235\n public class Random(state : State, generator : () -> Blob) {\n\n func nextBit() : Bool {\n if (0 : Nat8 == state.bitMask) {\n state.bits := nat8();\n state.bitMask := 0x40;\n 0 : Nat8 != state.bits & (0x80 : Nat8)\n } else {\n let m = state.bitMask;\n state.bitMask >>= (1 : Nat8);\n 0 : Nat8 != state.bits & m\n }\n };\n\n /// Random choice between `true` and `false`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let random = Random.seed(42);\n /// let coin = random.bool(); // true or false\n /// ```\n /// @deprecated M0235\n public func bool() : Bool {\n nextBit()\n };\n\n /// Random `Nat8` value in the range [0, 256).\n ///\n /// Example:\n /// ```motoko include=import\n /// let random = Random.seed(42);\n /// let byte = random.nat8(); // 0 to 255\n /// ```\n /// @deprecated M0235\n public func nat8() : Nat8 {\n if (state.index >= state.bytes.size()) {\n let newBytes = Blob.toArray(generator());\n if (newBytes.size() == 0) {\n Runtime.trap(\"Random: generator produced empty Blob\")\n };\n state.bytes := newBytes;\n state.index := 0\n };\n let byte = state.bytes[state.index];\n state.index += 1;\n byte\n };\n\n // Helper function which returns a uniformly sampled `Nat64` in the range `[0, max]`.\n // Uses rejection sampling to ensure uniform distribution even when the range\n // doesn't divide evenly into 2^64. This avoids modulo bias that would occur\n // from simply taking the modulo of a random 64-bit number.\n func uniform64(max : Nat64) : Nat64 {\n if (max == 0) {\n return 0\n };\n // if (max == 1) {\n // return switch (bool()) {\n // case false 0;\n // case true 1\n // }\n // };\n if (max == Nat64.maxValue) {\n return nat64()\n };\n let toExclusive = max + 1;\n // 2^64 - (2^64 % toExclusive) = (2^64-1) - (2^64-1 % toExclusive):\n let cutoff = Nat64.maxValue - (Nat64.maxValue % toExclusive);\n // 2^64 / toExclusive, with toExclusive > 1:\n let multiple = Nat64.fromNat(/* 2^64 */ 0x10000000000000000 / Nat64.toNat(toExclusive));\n loop {\n // Build up a random Nat64 from bytes\n var number = nat64();\n // If number is below cutoff, we can use it\n if (number < cutoff) {\n // Scale down to desired range\n return number / multiple\n };\n // Otherwise reject and try again\n }\n };\n\n /// Random `Nat64` value in the range [0, 2^64).\n ///\n /// Example:\n /// ```motoko include=import\n /// let random = Random.seed(42);\n /// let number = random.nat64(); // 0 to 18446744073709551615\n /// ```\n /// @deprecated M0235\n public func nat64() : Nat64 {\n (Nat64.fromNat(Nat8.toNat(nat8())) << 56) | (Nat64.fromNat(Nat8.toNat(nat8())) << 48) | (Nat64.fromNat(Nat8.toNat(nat8())) << 40) | (Nat64.fromNat(Nat8.toNat(nat8())) << 32) | (Nat64.fromNat(Nat8.toNat(nat8())) << 24) | (Nat64.fromNat(Nat8.toNat(nat8())) << 16) | (Nat64.fromNat(Nat8.toNat(nat8())) << 8) | Nat64.fromNat(Nat8.toNat(nat8()))\n };\n\n /// Random `Nat64` value in the range [fromInclusive, toExclusive).\n ///\n /// Example:\n /// ```motoko include=import\n /// let random = Random.seed(42);\n /// let dice = random.nat64Range(1, 7); // 1 to 6\n /// ```\n /// @deprecated M0235\n public func nat64Range(fromInclusive : Nat64, toExclusive : Nat64) : Nat64 {\n if (fromInclusive >= toExclusive) {\n Runtime.trap(\"Random.nat64Range(): fromInclusive >= toExclusive\")\n };\n uniform64(toExclusive - fromInclusive - 1) + fromInclusive\n };\n\n /// Random `Nat` value in the range [fromInclusive, toExclusive).\n ///\n /// Example:\n /// ```motoko include=import\n /// let random = Random.seed(42);\n /// let index = random.natRange(0, 10); // 0 to 9\n /// ```\n /// @deprecated M0235\n public func natRange(fromInclusive : Nat, toExclusive : Nat) : Nat {\n if (fromInclusive >= toExclusive) {\n Runtime.trap(\"Random.natRange(): fromInclusive >= toExclusive\")\n };\n Nat64.toNat(uniform64(Nat64.fromNat(toExclusive - fromInclusive - 1))) + fromInclusive\n };\n\n /// @deprecated M0235\n public func intRange(fromInclusive : Int, toExclusive : Int) : Int {\n let range = Nat.fromInt(toExclusive - fromInclusive - 1);\n Nat64.toNat(uniform64(Nat64.fromNat(range))) + fromInclusive\n };\n\n };\n\n /// @deprecated M0235\n public class AsyncRandom(state : State, generator : () -> async* Blob) {\n\n func nextBit() : async* Bool {\n if (0 : Nat8 == state.bitMask) {\n state.bits := await* nat8();\n state.bitMask := 0x40;\n 0 : Nat8 != state.bits & (0x80 : Nat8)\n } else {\n let m = state.bitMask;\n state.bitMask >>= (1 : Nat8);\n 0 : Nat8 != state.bits & m\n }\n };\n\n /// Random choice between `true` and `false`.\n /// @deprecated M0235\n public func bool() : async* Bool {\n await* nextBit()\n };\n\n /// Random `Nat8` value in the range [0, 256).\n /// @deprecated M0235\n public func nat8() : async* Nat8 {\n if (state.index >= state.bytes.size()) {\n let newBytes = Blob.toArray(await* generator());\n if (newBytes.size() == 0) {\n Runtime.trap(\"AsyncRandom: generator produced empty Blob\")\n };\n state.bytes := newBytes;\n state.index := 0\n };\n let byte = state.bytes[state.index];\n state.index += 1;\n byte\n };\n\n // Helper function which returns a uniformly sampled `Nat64` in the range `[0, max]`.\n // Uses rejection sampling to ensure uniform distribution even when the range\n // doesn't divide evenly into 2^64. This avoids modulo bias that would occur\n // from simply taking the modulo of a random 64-bit number.\n func uniform64(max : Nat64) : async* Nat64 {\n if (max == 0) {\n return 0\n };\n if (max == Nat64.maxValue) {\n return await* nat64()\n };\n let toExclusive = max + 1;\n // 2^64 - (2^64 % toExclusive) = (2^64-1) - (2^64-1 % toExclusive):\n let cutoff = Nat64.maxValue - (Nat64.maxValue % toExclusive);\n // 2^64 / toExclusive, with toExclusive > 1:\n let multiple = Nat64.fromNat(/* 2^64 */ 0x10000000000000000 / Nat64.toNat(toExclusive));\n loop {\n // Build up a random Nat64 from bytes\n var number = await* nat64();\n // If number is below cutoff, we can use it\n if (number < cutoff) {\n // Scale down to desired range\n return number / multiple\n };\n // Otherwise reject and try again\n }\n };\n\n /// Random `Nat64` value in the range [0, 2^64).\n /// @deprecated M0235\n public func nat64() : async* Nat64 {\n (Nat64.fromNat(Nat8.toNat(await* nat8())) << 56) | (Nat64.fromNat(Nat8.toNat(await* nat8())) << 48) | (Nat64.fromNat(Nat8.toNat(await* nat8())) << 40) | (Nat64.fromNat(Nat8.toNat(await* nat8())) << 32) | (Nat64.fromNat(Nat8.toNat(await* nat8())) << 24) | (Nat64.fromNat(Nat8.toNat(await* nat8())) << 16) | (Nat64.fromNat(Nat8.toNat(await* nat8())) << 8) | Nat64.fromNat(Nat8.toNat(await* nat8()))\n };\n\n /// Random `Nat64` value in the range [fromInclusive, toExclusive).\n /// @deprecated M0235\n public func nat64Range(fromInclusive : Nat64, toExclusive : Nat64) : async* Nat64 {\n if (fromInclusive >= toExclusive) {\n Runtime.trap(\"AsyncRandom.nat64Range(): fromInclusive >= toExclusive\")\n };\n (await* uniform64(toExclusive - fromInclusive - 1)) + fromInclusive\n };\n\n /// Random `Nat` value in the range [fromInclusive, toExclusive).\n /// @deprecated M0235\n public func natRange(fromInclusive : Nat, toExclusive : Nat) : async* Nat {\n if (fromInclusive >= toExclusive) {\n Runtime.trap(\"AsyncRandom.natRange(): fromInclusive >= toExclusive\")\n };\n Nat64.toNat(await* uniform64(Nat64.fromNat(toExclusive - fromInclusive - 1))) + fromInclusive\n };\n\n /// Random `Int` value in the range [fromInclusive, toExclusive).\n /// @deprecated M0235\n public func intRange(fromInclusive : Int, toExclusive : Int) : async* Int {\n let range = Nat.fromInt(toExclusive - fromInclusive - 1);\n Nat64.toNat(await* uniform64(Nat64.fromNat(range))) + fromInclusive\n };\n\n };\n\n // Derived from https://github.com/research-ag/prng\n module PRNG {\n let p : Nat64 = 24;\n let q : Nat64 = 11;\n let r : Nat64 = 3;\n\n public type State = {\n var a : Nat64;\n var b : Nat64;\n var c : Nat64;\n var d : Nat64\n };\n\n public func init(seed : Nat64) : State {\n init3(seed, seed, seed)\n };\n\n public func init3(seed1 : Nat64, seed2 : Nat64, seed3 : Nat64) : State {\n let state : State = {\n var a = seed1;\n var b = seed2;\n var c = seed3;\n var d = 1\n };\n for (_ in Nat.range(0, 11)) ignore next(state);\n state\n };\n\n public func next(state : State) : Nat64 {\n let tmp = state.a +% state.b +% state.d;\n state.a := state.b ^ (state.b >> q);\n state.b := state.c +% (state.c << r);\n state.c := (state.c <<> p) +% tmp;\n state.d +%= 1;\n tmp\n }\n }\n\n}\n"},"Cycles.mo":{"content":"/// Managing cycles within actors in the Internet Computer Protocol (ICP).\n///\n/// The usage of the Internet Computer is measured, and paid for, in _cycles_.\n/// This library provides imperative operations for observing cycles, transferring cycles, and\n/// observing refunds of cycles.\n///\n/// **NOTE:** Since cycles measure computational resources, the value of `balance()` can change from one call to the next.\n///\n/// Cycles can be transferred from the current actor to another actor with the evaluation of certain forms of expression.\n/// In particular, the expression must be a call to a shared function, a call to a local function with an `async` return type, or a simple `async` expression.\n/// To attach an amount of cycles to an expression ``, simply prefix the expression with `(with cycles = )`, that is, `(with cycles = ) `.\n///\n/// **NOTE:** Attaching cycles will trap if the amount specified exceeds `2 ** 128` cycles.\n///\n/// Upon the call, but not before, the amount of cycles is deducted from `balance()`.\n/// If this total exceeds `balance()`, the caller traps, aborting the call without consuming the cycles.\n/// Note that attaching cycles to a call to a local function call or `async` expression just transfers cycles from the current actor to itself.\n///\n/// Example for use on the ICP:\n/// ```motoko no-repl\n/// import Cycles \"mo:core/Cycles\";\n///\n/// persistent actor {\n/// public func main() : async () {\n/// let initialBalance = Cycles.balance();\n/// await (with cycles = 15_000_000) operation(); // accepts 10_000_000 cycles\n/// assert Cycles.refunded() == 5_000_000;\n/// assert Cycles.balance() < initialBalance; // decreased by around 10_000_000\n/// };\n///\n/// func operation() : async () {\n/// let initialBalance = Cycles.balance();\n/// let initialAvailable = Cycles.available();\n/// let obtained = Cycles.accept(10_000_000);\n/// assert obtained == 10_000_000;\n/// assert Cycles.balance() == initialBalance + 10_000_000;\n/// assert Cycles.available() == initialAvailable - 10_000_000;\n/// }\n/// }\n/// ```\nimport Prim \"mo:⛔\";\nmodule {\n\n /// Returns the actor's current balance of cycles as `amount`.\n ///\n /// Example for use on the ICP:\n /// ```motoko no-repl\n /// import Cycles \"mo:core/Cycles\";\n ///\n /// persistent actor {\n /// public func main() : async() {\n /// let balance = Cycles.balance();\n /// assert balance > 0;\n /// }\n /// }\n /// ```\n public let balance : () -> (amount : Nat) = Prim.cyclesBalance;\n\n /// Returns the currently available `amount` of cycles.\n /// The amount available is the amount received in the current call,\n /// minus the cumulative amount `accept`ed by this call.\n /// On exit from the current shared function or async expression via `return` or `throw`,\n /// any remaining available amount is automatically refunded to the caller/context.\n ///\n /// Example for use on the ICP:\n /// ```motoko no-repl\n /// import Cycles \"mo:core/Cycles\";\n ///\n /// persistent actor {\n /// public func main() : async() {\n /// let available = Cycles.available();\n /// assert available >= 0;\n /// }\n /// }\n /// ```\n public let available : () -> (amount : Nat) = Prim.cyclesAvailable;\n\n /// Transfers up to `amount` from `available()` to `balance()`.\n /// Returns the amount actually transferred, which may be less than\n /// requested, for example, if less is available, or if canister balance limits are reached.\n ///\n /// Example for use on the ICP (for simplicity, only transferring cycles to itself):\n /// ```motoko no-repl\n /// import Cycles \"mo:core/Cycles\";\n ///\n /// persistent actor {\n /// public func main() : async() {\n /// await (with cycles = 15_000_000) operation(); // accepts 10_000_000 cycles\n /// };\n ///\n /// func operation() : async() {\n /// let obtained = Cycles.accept(10_000_000);\n /// assert obtained == 10_000_000;\n /// }\n /// }\n /// ```\n public let accept : (amount : Nat) -> (accepted : Nat) = Prim.cyclesAccept;\n\n /// Reports `amount` of cycles refunded in the last `await` of the current\n /// context, or zero if no await has occurred yet.\n /// Calling `refunded()` is solely informational and does not affect `balance()`.\n /// Instead, refunds are automatically added to the current balance,\n /// whether or not `refunded` is used to observe them.\n ///\n /// Example for use on the ICP (for simplicity, only transferring cycles to itself):\n /// ```motoko no-repl\n /// import Cycles \"mo:core/Cycles\";\n ///\n /// persistent actor {\n /// func operation() : async() {\n /// ignore Cycles.accept(10_000_000);\n /// };\n ///\n /// public func main() : async() {\n /// await (with cycles = 15_000_000) operation(); // accepts 10_000_000 cycles\n /// assert Cycles.refunded() == 5_000_000;\n /// }\n /// }\n /// ```\n public let refunded : () -> (amount : Nat) = Prim.cyclesRefunded;\n\n /// Attempts to burn `amount` of cycles, deducting `burned` from the canister's\n /// cycle balance. The burned cycles are irrevocably lost and not available to any\n /// other principal either.\n ///\n /// Example for use on the IC:\n /// ```motoko no-repl\n /// import Cycles \"mo:core/Cycles\";\n ///\n /// persistent actor {\n /// public func main() : async() {\n /// let burnt = Cycles.burn(10_000_000);\n /// assert burnt == 10_000_000;\n /// }\n /// }\n /// ```\n public let burn : (amount : Nat) -> (burned : Nat) = Prim.cyclesBurn;\n\n}\n"},"Order.mo":{"content":"/// Utilities for `Order` (comparison between two values).\n\nimport Types \"Types\";\n\nmodule {\n\n /// A type to represent an order.\n public type Order = Types.Order;\n\n /// Check if an order is #less.\n public func isLess(self : Order) : Bool {\n switch self {\n case (#less) { true };\n case _ { false }\n }\n };\n\n /// Check if an order is #equal.\n public func isEqual(self : Order) : Bool {\n switch self {\n case (#equal) { true };\n case _ { false }\n }\n };\n\n /// Check if an order is #greater.\n public func isGreater(self : Order) : Bool {\n switch self {\n case (#greater) { true };\n case _ { false }\n }\n };\n\n /// Returns true if only if `order1` and `order2` are the same.\n public func equal(self : Order, other : Order) : Bool {\n switch (self, other) {\n case (#less, #less) { true };\n case (#equal, #equal) { true };\n case (#greater, #greater) { true };\n case _ { false }\n }\n };\n\n /// Returns an iterator that yields all possible `Order` values:\n /// `#less`, `#equal`, `#greater`.\n public func allValues() : Types.Iter {\n var nextState : ?Order = ?#less;\n {\n next = func() : ?Order {\n let state = nextState;\n switch state {\n case (?#less) { nextState := ?#equal };\n case (?#equal) { nextState := ?#greater };\n case (?#greater) { nextState := null };\n case (null) {}\n };\n state\n }\n }\n }\n\n}\n"},"Nat.mo":{"content":"/// Natural numbers with infinite precision.\n///\n/// Most operations on natural numbers (e.g. addition) are available as built-in operators (e.g. `1 + 1`).\n/// This module provides equivalent functions and `Text` conversion.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Nat \"mo:core/Nat\";\n/// ```\n\nimport Int \"Int\";\nimport Prim \"mo:⛔\";\nimport Char \"Char\";\nimport Iter \"Iter\";\nimport Runtime \"Runtime\";\nimport Order \"Order\";\n\nmodule {\n\n /// Infinite precision natural numbers.\n public type Nat = Prim.Types.Nat;\n\n /// Converts a natural number to its textual representation. Textual\n /// representation _do not_ contain underscores to represent commas.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.toText(1234) == \"1234\";\n /// ```\n public let toText : (self : Nat) -> Text = Int.toText;\n\n /// Creates a natural number from its textual representation. Returns `null`\n /// if the input is not a valid natural number.\n ///\n /// The textual representation _must not_ contain underscores.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.fromText(\"1234\") == ?1234;\n /// ```\n public func fromText(text : Text) : ?Nat {\n if (text == \"\") {\n return null\n };\n var n = 0;\n for (c in text.chars()) {\n if (Char.isDigit(c)) {\n let charAsNat = Prim.nat32ToNat(Prim.charToNat32(c) -% Prim.charToNat32('0'));\n n := n * 10 + charAsNat\n } else {\n return null\n }\n };\n ?n\n };\n\n /// Creates a natural number from its textual representation. Returns `null`\n /// if the input is not a valid natural number.\n ///\n /// The textual representation _must not_ contain underscores.\n ///\n /// This functions is meant to be used with contextual-dot notation.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert \"1234\".toNat() == ?1234;\n /// ```\n public let toNat : (self : Text) -> ?Nat = fromText;\n\n /// Converts an integer to a natural number. Traps if the integer is negative.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.fromInt(1234) == (1234 : Nat);\n /// ```\n /// @deprecated M0235\n public func fromInt(int : Int) : Nat {\n if (int < 0) {\n Runtime.trap(\"Nat.fromInt(): negative input value\")\n } else {\n Int.abs(int)\n }\n };\n\n /// Conversion to Float. May result in `Inf`.\n ///\n /// Note: The floating point number may be imprecise for large Nat values.\n /// Returns `inf` if the integer is greater than the maximum floating point number.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.toFloat(123) == 123.0;\n /// ```\n public let toFloat : (self : Nat) -> Float = Int.toFloat;\n\n /// Converts a natural number to an integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.toInt(1234) == 1234;\n /// ```\n public func toInt(self : Nat) : Int {\n self : Int\n };\n\n /// Converts an unsigned integer with infinite precision to an 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.toNat8(123) == (123 : Nat8);\n /// ```\n public let toNat8 : (self : Nat) -> Nat8 = Prim.natToNat8;\n\n /// Converts an unsigned integer with infinite precision to a 16-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.toNat16(123) == (123 : Nat16);\n /// ```\n public let toNat16 : (self : Nat) -> Nat16 = Prim.natToNat16;\n\n /// Converts an unsigned integer with infinite precision to a 32-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.toNat32(123) == (123 : Nat32);\n /// ```\n public let toNat32 : (self : Nat) -> Nat32 = Prim.natToNat32;\n\n /// Converts an unsigned integer with infinite precision to a 64-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.toNat64(123) == (123 : Nat64);\n /// ```\n public let toNat64 : (self : Nat) -> Nat64 = Prim.natToNat64;\n\n /// Converts an 8-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.fromNat8(123) == (123 : Nat);\n /// ```\n public let fromNat8 : Nat8 -> Nat = Prim.nat8ToNat;\n\n /// Converts a 16-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.fromNat16(123) == (123 : Nat);\n /// ```\n public let fromNat16 : Nat16 -> Nat = Prim.nat16ToNat;\n\n /// Converts a 32-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.fromNat32(123) == (123 : Nat);\n /// ```\n public let fromNat32 : Nat32 -> Nat = Prim.nat32ToNat;\n\n /// Converts a 64-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.fromNat64(123) == (123 : Nat);\n /// ```\n public let fromNat64 : Nat64 -> Nat = Prim.nat64ToNat;\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.min(1, 2) == 1;\n /// ```\n public func min(x : Nat, y : Nat) : Nat {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.max(1, 2) == 2;\n /// ```\n public func max(x : Nat, y : Nat) : Nat {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Nat types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.equal(1, 1);\n /// assert 1 == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a = 111;\n /// let b = 222;\n /// assert not Nat.equal(a, b);\n /// ```\n public func equal(x : Nat, y : Nat) : Bool { x == y };\n\n /// Inequality function for Nat types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.notEqual(1, 2);\n /// assert 1 != 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Nat, y : Nat) : Bool { x != y };\n\n /// \"Less than\" function for Nat types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.less(1, 2);\n /// assert 1 < 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Nat, y : Nat) : Bool { x < y };\n\n /// \"Less than or equal\" function for Nat types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.lessOrEqual(1, 2);\n /// assert 1 <= 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Nat, y : Nat) : Bool { x <= y };\n\n /// \"Greater than\" function for Nat types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.greater(2, 1);\n /// assert 2 > 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Nat, y : Nat) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Nat types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.greaterOrEqual(2, 1);\n /// assert 2 >= 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Nat, y : Nat) : Bool { x >= y };\n\n /// General purpose comparison function for `Nat`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.compare(2, 3) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([2, 3, 1], Nat.compare) == [1, 2, 3];\n /// ```\n public func compare(x : Nat, y : Nat) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the sum of `x` and `y`, `x + y`. This operator will never overflow\n /// because `Nat` is infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.add(1, 2) == 3;\n /// assert 1 + 2 == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 0, Nat.add) == 6;\n /// ```\n public func add(x : Nat, y : Nat) : Nat { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n /// Traps on underflow below `0`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.sub(2, 1) == 1;\n /// // Add a type annotation to avoid a warning about the subtraction\n /// assert 2 - 1 : Nat == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 10, Nat.sub) == 4;\n /// ```\n public func sub(x : Nat, y : Nat) : Nat { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`. This operator will never\n /// overflow because `Nat` is infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.mul(2, 3) == 6;\n /// assert 2 * 3 == 6;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 1, Nat.mul) == 6;\n /// ```\n public func mul(x : Nat, y : Nat) : Nat { x * y };\n\n /// Returns the unsigned integer division of `x` by `y`, `x / y`.\n /// Traps when `y` is zero.\n ///\n /// The quotient is rounded down, which is equivalent to truncating the\n /// decimal places of the quotient.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.div(6, 2) == 3;\n /// assert 6 / 2 == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Nat, y : Nat) : Nat { x / y };\n\n /// Returns the remainder of unsigned integer division of `x` by `y`, `x % y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.rem(6, 4) == 2;\n /// assert 6 % 4 == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Nat, y : Nat) : Nat { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`. Traps when `y > 2^32`. This operator\n /// will never overflow because `Nat` is infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.pow(2, 3) == 8;\n /// assert 2 ** 3 == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Nat, y : Nat) : Nat { x ** y };\n\n /// Returns the (conceptual) bitwise shift left of `x` by `y`, `x * (2 ** y)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.bitshiftLeft(1, 3) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in absence\n /// of the `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. While `Nat` is not defined in terms\n /// of bit patterns, conceptually it can be regarded as such, and the operation\n /// is provided as a high-performance version of the corresponding arithmetic\n /// rule.\n public let bitshiftLeft : (x : Nat, y : Nat32) -> Nat = Prim.shiftLeft;\n\n /// Returns the (conceptual) bitwise shift right of `x` by `y`, `x / (2 ** y)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.bitshiftRight(8, 3) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in absence\n /// of the `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. While `Nat` is not defined in terms\n /// of bit patterns, conceptually it can be regarded as such, and the operation\n /// is provided as a high-performance version of the corresponding arithmetic\n /// rule.\n public let bitshiftRight : (x : Nat, y : Nat32) -> Nat = Prim.shiftRight;\n\n /// Returns an iterator over `Nat` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Nat, toExclusive : Nat) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Nat {\n if (n >= toExclusive) {\n return null\n };\n let current = n;\n n += 1;\n ?current\n }\n }\n }\n };\n\n /// Returns an iterator over `Nat` values from the first to second argument with an exclusive upper bound,\n /// incrementing by the specified step size. The step can be positive or negative.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// // Positive step\n /// let iter1 = Nat.rangeBy(1, 7, 2);\n /// assert iter1.next() == ?1;\n /// assert iter1.next() == ?3;\n /// assert iter1.next() == ?5;\n /// assert iter1.next() == null;\n ///\n /// // Negative step\n /// let iter2 = Nat.rangeBy(7, 1, -2);\n /// assert iter2.next() == ?7;\n /// assert iter2.next() == ?5;\n /// assert iter2.next() == ?3;\n /// assert iter2.next() == null;\n /// ```\n ///\n /// If `step` is 0 or if the iteration would not progress towards the bound, returns an empty iterator.\n public func rangeBy(fromInclusive : Nat, toExclusive : Nat, step : Int) : Iter.Iter {\n if (step == 0 or (step > 0 and fromInclusive >= toExclusive) or (step < 0 and fromInclusive <= toExclusive)) {\n Iter.empty()\n } else if (step > 0) {\n object {\n let stepMagnitude = Int.abs(step);\n var n = fromInclusive;\n public func next() : ?Nat {\n if (n >= toExclusive) {\n return null\n };\n let current = n;\n n += stepMagnitude;\n ?current\n }\n }\n } else {\n object {\n let stepMagnitude = Int.abs(step);\n var n = fromInclusive;\n public func next() : ?Nat {\n if (n <= toExclusive) {\n return null\n };\n let current = n;\n if (stepMagnitude > n) {\n n := 0\n } else {\n n -= stepMagnitude\n };\n ?current\n }\n }\n }\n };\n\n /// Returns an iterator over the integers from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat.rangeInclusive(3, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Nat, to : Nat) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n public func next() : ?Nat {\n if (n > to) {\n return null\n };\n let current = n;\n n += 1;\n ?current\n }\n }\n }\n };\n\n /// Returns an iterator over the integers from the first to second argument, inclusive,\n /// incrementing by the specified step size. The step can be positive or negative.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// // Positive step\n /// let iter1 = Nat.rangeByInclusive(1, 7, 2);\n /// assert iter1.next() == ?1;\n /// assert iter1.next() == ?3;\n /// assert iter1.next() == ?5;\n /// assert iter1.next() == ?7;\n /// assert iter1.next() == null;\n ///\n /// // Negative step\n /// let iter2 = Nat.rangeByInclusive(7, 1, -2);\n /// assert iter2.next() == ?7;\n /// assert iter2.next() == ?5;\n /// assert iter2.next() == ?3;\n /// assert iter2.next() == ?1;\n /// assert iter2.next() == null;\n /// ```\n ///\n /// If `from == to`, return an iterator which only returns that value.\n ///\n /// Otherwise, if `step` is 0 or if the iteration would not progress towards the bound, returns an empty iterator.\n public func rangeByInclusive(from : Nat, to : Nat, step : Int) : Iter.Iter {\n if (from == to) {\n Iter.singleton(from)\n } else if (step == 0 or (step > 0 and from > to) or (step < 0 and from < to)) {\n Iter.empty()\n } else if (step > 0) {\n object {\n let stepMagnitude = Int.abs(step);\n var n = from;\n public func next() : ?Nat {\n if (n > to) {\n return null\n };\n let current = n;\n n += stepMagnitude;\n ?current\n }\n }\n } else {\n object {\n let stepMagnitude = Int.abs(step);\n var n = from;\n var done = false;\n public func next() : ?Nat {\n if (done) {\n null\n } else {\n let current = n;\n if (n < to + stepMagnitude) {\n done := true\n } else {\n n -= stepMagnitude\n };\n ?current\n }\n }\n }\n }\n };\n\n /// Returns an infinite iterator over all possible `Nat` values.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat.allValues();\n /// assert iter.next() == ?0;\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter = object {\n var n = 0;\n public func next() : ?Nat {\n let current = n;\n n += 1;\n ?current\n }\n };\n\n}\n"},"Option.mo":{"content":"/// Typesafe nullable values.\n///\n/// Optional values can be seen as a typesafe `null`. A value of type `?Int` can\n/// be constructed with either `null` or `?42`. The simplest way to get at the\n/// contents of an optional is to use pattern matching:\n///\n/// ```motoko\n/// let optionalInt1 : ?Int = ?42;\n/// let optionalInt2 : ?Int = null;\n///\n/// let int1orZero : Int = switch optionalInt1 {\n/// case null 0;\n/// case (?int) int;\n/// };\n/// assert int1orZero == 42;\n///\n/// let int2orZero : Int = switch optionalInt2 {\n/// case null 0;\n/// case (?int) int;\n/// };\n/// assert int2orZero == 0;\n/// ```\n///\n/// The functions in this module capture some common operations when working\n/// with optionals that can be more succinct than using pattern matching.\n\nimport Runtime \"Runtime\";\nimport Types \"Types\";\n\nmodule {\n\n /// Unwraps an optional value, with a default value, i.e. `get(?x, d) = x` and\n /// `get(null, d) = d`.\n public func get(self : ?T, default : T) : T = switch self {\n case null { default };\n case (?x_) { x_ }\n };\n\n /// Unwraps an optional value using a function, or returns the default, i.e.\n /// `option(?x, f, d) = f x` and `option(null, f, d) = d`.\n public func getMapped(self : ?T, f : T -> R, default : R) : R = switch self {\n case null { default };\n case (?x_) { f(x_) }\n };\n\n /// Applies a function to the wrapped value. `null`'s are left untouched.\n /// ```motoko\n /// import Option \"mo:core/Option\";\n /// assert Option.map(?42, func x = x + 1) == ?43;\n /// assert Option.map(null, func x = x + 1) == null;\n /// ```\n public func map(self : ?T, f : T -> R) : ?R = switch self {\n case null { null };\n case (?x_) { ?f(x_) }\n };\n\n /// Applies a function to the wrapped value, but discards the result. Use\n /// `forEach` if you're only interested in the side effect `f` produces.\n ///\n /// ```motoko\n /// import Option \"mo:core/Option\";\n /// var counter : Nat = 0;\n /// Option.forEach(?5, func (x : Nat) { counter += x });\n /// assert counter == 5;\n /// Option.forEach(null, func (x : Nat) { counter += x });\n /// assert counter == 5;\n /// ```\n public func forEach(self : ?T, f : T -> ()) = switch self {\n case null {};\n case (?x_) { f(x_) }\n };\n\n /// Applies an optional function to an optional value. Returns `null` if at\n /// least one of the arguments is `null`.\n public func apply(self : ?T, f : ?(T -> R)) : ?R {\n switch (f, self) {\n case (?f_, ?x_) { ?f_(x_) };\n case (_, _) { null }\n }\n };\n\n /// Applies a function to an optional value. Returns `null` if the argument is\n /// `null`, or the function returns `null`.\n public func chain(self : ?T, f : T -> ?R) : ?R {\n switch (self) {\n case (?x_) { f(x_) };\n case (null) { null }\n }\n };\n\n /// Given an optional optional value, removes one layer of optionality.\n /// ```motoko\n /// import Option \"mo:core/Option\";\n /// assert Option.flatten(?(?(42))) == ?42;\n /// assert Option.flatten(?(null)) == null;\n /// assert Option.flatten(null) == null;\n /// ```\n public func flatten(self : ??T) : ?T {\n chain(self, func(x_ : ?T) : ?T = x_)\n };\n\n /// Creates an optional value from a definite value.\n /// ```motoko\n /// import Option \"mo:core/Option\";\n /// assert Option.some(42) == ?42;\n /// ```\n public func some(self : T) : ?T = ?self;\n\n /// Returns true if the argument is not `null`, otherwise returns false.\n public func isSome(self : ?Any) : Bool {\n self != null\n };\n\n /// Returns true if the argument is `null`, otherwise returns false.\n public func isNull(self : ?Any) : Bool {\n self == null\n };\n\n /// Returns true if the optional arguments are equal according to the equality function provided, otherwise returns false.\n public func equal(self : ?T, other : ?T, eq : (implicit : (equal : (T, T) -> Bool))) : Bool = switch (self, other) {\n case (null, null) { true };\n case (?x_, ?y_) { eq(x_, y_) };\n case (_, _) { false }\n };\n\n /// Compares two optional values using the provided comparison function.\n ///\n /// Returns:\n /// - `#equal` if both values are `null`,\n /// - `#less` if the first value is `null` and the second is not,\n /// - `#greater` if the first value is not `null` and the second is,\n /// - the result of the comparison function when both values are not `null`.\n public func compare(self : ?T, other : ?T, compare : (implicit : (T, T) -> Types.Order)) : Types.Order = switch (self, other) {\n case (null, null) #equal;\n case (null, _) #less;\n case (_, null) #greater;\n case (?x_, ?y_) { compare(x_, y_) }\n };\n\n /// Unwraps an optional value, i.e. `unwrap(?x) = x`.\n ///\n /// `Option.unwrap()` fails if the argument is null. Consider using a `switch` or `do?` expression instead.\n public func unwrap(self : ?T) : T = switch self {\n case null { Runtime.trap(\"Option.unwrap()\") };\n case (?x_) { x_ }\n };\n\n /// Returns the textural representation of an optional value for debugging purposes.\n public func toText(self : ?T, toText : (implicit : T -> Text)) : Text = switch self {\n case null { \"null\" };\n case (?x_) { \"?\" # toText(x_) }\n };\n\n}\n"},"Tuples.mo":{"content":"/// Contains modules for working with tuples of different sizes.\n///\n/// Usage example:\n///\n/// ```motoko\n/// import { Tuple2; Tuple3 } \"mo:core/Tuples\";\n/// import Bool \"mo:core/Bool\";\n/// import Nat \"mo:core/Nat\";\n///\n/// let swapped = Tuple2.swap((1, \"hello\"));\n/// assert swapped == (\"hello\", 1);\n/// let text = Tuple3.toText((1, true, 3), Nat.toText, Bool.toText, Nat.toText);\n/// assert text == \"(1, true, 3)\";\n/// ```\n\nimport Types \"Types\";\n\nmodule {\n\n public module Tuple2 {\n /// Swaps the elements of a tuple.\n ///\n /// ```motoko\n /// import { Tuple2 } \"mo:core/Tuples\";\n ///\n /// assert Tuple2.swap((1, \"hello\")) == (\"hello\", 1);\n /// ```\n public func swap((a, b) : (A, B)) : (B, A) = (b, a);\n\n /// Creates a textual representation of a tuple for debugging purposes.\n ///\n /// ```motoko\n /// import { Tuple2 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// assert Tuple2.toText((1, \"hello\"), Nat.toText, func (x: Text): Text = x) == \"(1, hello)\";\n /// ```\n public func toText(\n self : (A, B),\n toTextA : (implicit : (toText : A -> Text)),\n toTextB : (implicit : (toText : B -> Text))\n ) : Text = \"(\" # toTextA(self.0) # \", \" # toTextB(self.1) # \")\";\n\n /// Compares two tuples for equality.\n ///\n /// ```motoko\n /// import { Tuple2 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// assert Tuple2.equal((1, \"hello\"), (1, \"hello\"), Nat.equal, Text.equal);\n /// ```\n public func equal(\n self : (A, B),\n other : (A, B),\n equalA : (implicit : (equal : (A, A) -> Bool)),\n equalB : (implicit : (equal : (B, B) -> Bool))\n ) : Bool = equalA(self.0, other.0) and equalB(self.1, other.1);\n\n /// Compares two tuples lexicographically.\n ///\n /// ```motoko\n /// import { Tuple2 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// assert Tuple2.compare((1, \"hello\"), (1, \"world\"), Nat.compare, Text.compare) == #less;\n /// assert Tuple2.compare((1, \"hello\"), (2, \"hello\"), Nat.compare, Text.compare) == #less;\n /// assert Tuple2.compare((1, \"hello\"), (1, \"hello\"), Nat.compare, Text.compare) == #equal;\n /// assert Tuple2.compare((2, \"hello\"), (1, \"hello\"), Nat.compare, Text.compare) == #greater;\n /// assert Tuple2.compare((1, \"world\"), (1, \"hello\"), Nat.compare, Text.compare) == #greater;\n /// ```\n public func compare(\n self : (A, B),\n other : (A, B),\n compareA : (implicit : (compare : (A, A) -> Types.Order)),\n compareB : (implicit : (compare : (B, B) -> Types.Order))\n ) : Types.Order = switch (compareA(self.0, other.0)) {\n case (#equal) compareB(self.1, other.1);\n case order order\n };\n\n /// Creates a `toText` function for a tuple given `toText` functions for its elements.\n /// This is useful when you need to reuse the same toText conversion multiple times.\n ///\n /// ```motoko\n /// import { Tuple2 } \"mo:core/Tuples\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let tupleToText = Tuple2.makeToText(Nat.toText, func x = x);\n /// assert tupleToText((1, \"hello\")) == \"(1, hello)\";\n /// ```\n public func makeToText(\n toTextA : (implicit : (toText : A -> Text)),\n toTextB : (implicit : (toText : B -> Text))\n ) : ((A, B)) -> Text = func t = toText(t, toTextA, toTextB);\n\n /// Creates an `equal` function for a tuple given `equal` functions for its elements.\n /// This is useful when you need to reuse the same equality comparison multiple times.\n ///\n /// ```motoko\n /// import { Tuple2 } \"mo:core/Tuples\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// let tupleEqual = Tuple2.makeEqual(Nat.equal, Text.equal);\n /// assert tupleEqual((1, \"hello\"), (1, \"hello\"));\n /// ```\n public func makeEqual(\n equalA : (implicit : (equal : (A, A) -> Bool)),\n equalB : (implicit : (equal : (B, B) -> Bool))\n ) : ((A, B), (A, B)) -> Bool = func(t1, t2) = equal(t1, t2, equalA, equalB);\n\n /// Creates a `compare` function for a tuple given `compare` functions for its elements.\n /// This is useful when you need to reuse the same comparison multiple times.\n ///\n /// ```motoko\n /// import { Tuple2 } \"mo:core/Tuples\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// let tupleCompare = Tuple2.makeCompare(Nat.compare, Text.compare);\n /// assert tupleCompare((1, \"hello\"), (1, \"world\")) == #less;\n /// ```\n public func makeCompare(\n compareA : (implicit : (compare : (A, A) -> Types.Order)),\n compareB : (implicit : (compare : (B, B) -> Types.Order))\n ) : ((A, B), (A, B)) -> Types.Order = func(t1, t2) = compare(t1, t2, compareA, compareB)\n };\n\n public module Tuple3 {\n /// Creates a textual representation of a 3-tuple for debugging purposes.\n ///\n /// ```motoko\n /// import { Tuple3 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// assert Tuple3.toText((1, \"hello\", 2), Nat.toText, func (x: Text): Text = x, Nat.toText) == \"(1, hello, 2)\";\n /// ```\n public func toText(\n self : (A, B, C),\n toTextA : (implicit : (toText : A -> Text)),\n toTextB : (implicit : (toText : B -> Text)),\n toTextC : (implicit : (toText : C -> Text))\n ) : Text = \"(\" # toTextA(self.0) # \", \" # toTextB(self.1) # \", \" # toTextC(self.2) # \")\";\n\n /// Compares two 3-tuples for equality.\n ///\n /// ```motoko\n /// import { Tuple3 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// assert Tuple3.equal((1, \"hello\", 2), (1, \"hello\", 2), Nat.equal, Text.equal, Nat.equal);\n /// ```\n public func equal(\n self : (A, B, C),\n other : (A, B, C),\n equalA : (implicit : (equal : (A, A) -> Bool)),\n equalB : (implicit : (equal : (B, B) -> Bool)),\n equalC : (implicit : (equal : (C, C) -> Bool))\n ) : Bool = equalA(self.0, other.0) and equalB(self.1, other.1) and equalC(self.2, other.2);\n\n /// Compares two 3-tuples lexicographically.\n ///\n /// ```motoko\n /// import { Tuple3 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// assert Tuple3.compare((1, \"hello\", 2), (1, \"world\", 1), Nat.compare, Text.compare, Nat.compare) == #less;\n /// assert Tuple3.compare((1, \"hello\", 2), (2, \"hello\", 2), Nat.compare, Text.compare, Nat.compare) == #less;\n /// assert Tuple3.compare((1, \"hello\", 2), (1, \"hello\", 2), Nat.compare, Text.compare, Nat.compare) == #equal;\n /// assert Tuple3.compare((2, \"hello\", 2), (1, \"hello\", 2), Nat.compare, Text.compare, Nat.compare) == #greater;\n /// ```\n public func compare(\n self : (A, B, C),\n other : (A, B, C),\n compareA : (implicit : (compare : (A, A) -> Types.Order)),\n compareB : (implicit : (compare : (B, B) -> Types.Order)),\n compareC : (implicit : (compare : (C, C) -> Types.Order))\n ) : Types.Order = switch (compareA(self.0, other.0)) {\n case (#equal) {\n switch (compareB(self.1, other.1)) {\n case (#equal) compareC(self.2, other.2);\n case order order\n }\n };\n case order order\n };\n\n /// Creates a `toText` function for a 3-tuple given `toText` functions for its elements.\n /// This is useful when you need to reuse the same toText conversion multiple times.\n ///\n /// ```motoko\n /// import { Tuple3 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// let toText = Tuple3.makeToText(Nat.toText, func x = x, Nat.toText);\n /// assert toText((1, \"hello\", 2)) == \"(1, hello, 2)\";\n /// ```\n public func makeToText(\n toTextA : (implicit : (toText : A -> Text)),\n toTextB : (implicit : (toText : B -> Text)),\n toTextC : (implicit : (toText : C -> Text))\n ) : ((A, B, C)) -> Text = func t = toText(t, toTextA, toTextB, toTextC);\n\n /// Creates an `equal` function for a 3-tuple given `equal` functions for its elements.\n /// This is useful when you need to reuse the same equality comparison multiple times.\n ///\n /// ```motoko\n /// import { Tuple3 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// let equal = Tuple3.makeEqual(Nat.equal, Text.equal, Nat.equal);\n /// assert equal((1, \"hello\", 2), (1, \"hello\", 2));\n /// ```\n public func makeEqual(\n equalA : (implicit : (equal : (A, A) -> Bool)),\n equalB : (implicit : (equal : (B, B) -> Bool)),\n equalC : (implicit : (equal : (C, C) -> Bool))\n ) : ((A, B, C), (A, B, C)) -> Bool = func(t1, t2) = equal(t1, t2, equalA, equalB, equalC);\n\n /// Creates a `compare` function for a 3-tuple given `compare` functions for its elements.\n /// This is useful when you need to reuse the same comparison multiple times.\n ///\n /// ```motoko\n /// import { Tuple3 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// let compare = Tuple3.makeCompare(Nat.compare, Text.compare, Nat.compare);\n /// assert compare((1, \"hello\", 2), (1, \"world\", 1)) == #less;\n /// ```\n public func makeCompare(\n compareA : (implicit : (compare : (A, A) -> Types.Order)),\n compareB : (implicit : (compare : (B, B) -> Types.Order)),\n compareC : (implicit : (compare : (C, C) -> Types.Order))\n ) : ((A, B, C), (A, B, C)) -> Types.Order = func(t1, t2) = compare(t1, t2, compareA, compareB, compareC)\n };\n\n public module Tuple4 {\n /// Creates a textual representation of a 4-tuple for debugging purposes.\n ///\n /// ```motoko\n /// import { Tuple4 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// assert Tuple4.toText((1, \"hello\", 2, 3), Nat.toText, func (x: Text): Text = x, Nat.toText, Nat.toText) == \"(1, hello, 2, 3)\";\n /// ```\n public func toText(\n self : (A, B, C, D),\n toTextA : (implicit : (toText : A -> Text)),\n toTextB : (implicit : (toText : B -> Text)),\n toTextC : (implicit : (toText : C -> Text)),\n toTextD : (implicit : (toText : D -> Text))\n ) : Text = \"(\" # toTextA(self.0) # \", \" # toTextB(self.1) # \", \" # toTextC(self.2) # \", \" # toTextD(self.3) # \")\";\n\n /// Compares two 4-tuples for equality.\n ///\n /// ```motoko\n /// import { Tuple4 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// assert Tuple4.equal((1, \"hello\", 2, 3), (1, \"hello\", 2, 3), Nat.equal, Text.equal, Nat.equal, Nat.equal);\n /// ```\n public func equal(\n self : (A, B, C, D),\n other : (A, B, C, D),\n equalA : (implicit : (equal : (A, A) -> Bool)),\n equalB : (implicit : (equal : (B, B) -> Bool)),\n equalC : (implicit : (equal : (C, C) -> Bool)),\n equalD : (implicit : (equal : (D, D) -> Bool))\n ) : Bool = equalA(self.0, other.0) and equalB(self.1, other.1) and equalC(self.2, other.2) and equalD(self.3, other.3);\n\n /// Compares two 4-tuples lexicographically.\n ///\n /// ```motoko\n /// import { Tuple4 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// assert Tuple4.compare((1, \"hello\", 2, 3), (1, \"world\", 1, 3), Nat.compare, Text.compare, Nat.compare, Nat.compare) == #less;\n /// assert Tuple4.compare((1, \"hello\", 2, 3), (2, \"hello\", 2, 3), Nat.compare, Text.compare, Nat.compare, Nat.compare) == #less;\n /// assert Tuple4.compare((1, \"hello\", 2, 3), (1, \"hello\", 2, 3), Nat.compare, Text.compare, Nat.compare, Nat.compare) == #equal;\n /// assert Tuple4.compare((2, \"hello\", 2, 3), (1, \"hello\", 2, 3), Nat.compare, Text.compare, Nat.compare, Nat.compare) == #greater;\n /// ```\n public func compare(\n self : (A, B, C, D),\n other : (A, B, C, D),\n compareA : (implicit : (compare : (A, A) -> Types.Order)),\n compareB : (implicit : (compare : (B, B) -> Types.Order)),\n compareC : (implicit : (compare : (C, C) -> Types.Order)),\n compareD : (implicit : (compare : (D, D) -> Types.Order))\n ) : Types.Order = switch (compareA(self.0, other.0)) {\n case (#equal) {\n switch (compareB(self.1, other.1)) {\n case (#equal) {\n switch (compareC(self.2, other.2)) {\n case (#equal) compareD(self.3, other.3);\n case order order\n }\n };\n case order order\n }\n };\n case order order\n };\n\n /// Creates a `toText` function for a 4-tuple given `toText` functions for its elements.\n /// This is useful when you need to reuse the same toText conversion multiple times.\n ///\n /// ```motoko\n /// import { Tuple4 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// let toText = Tuple4.makeToText(Nat.toText, func (x: Text): Text = x, Nat.toText, Nat.toText);\n /// assert toText((1, \"hello\", 2, 3)) == \"(1, hello, 2, 3)\";\n /// ```\n public func makeToText(\n toTextA : (implicit : (toText : A -> Text)),\n toTextB : (implicit : (toText : B -> Text)),\n toTextC : (implicit : (toText : C -> Text)),\n toTextD : (implicit : (toText : D -> Text))\n ) : ((A, B, C, D)) -> Text = func t = toText(t, toTextA, toTextB, toTextC, toTextD);\n\n /// Creates an `equal` function for a 4-tuple given `equal` functions for its elements.\n /// This is useful when you need to reuse the same equality comparison multiple times.\n ///\n /// ```motoko\n /// import { Tuple4 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// let equal = Tuple4.makeEqual(Nat.equal, Text.equal, Nat.equal, Nat.equal);\n /// assert equal((1, \"hello\", 2, 3), (1, \"hello\", 2, 3));\n /// ```\n public func makeEqual(\n equalA : (implicit : (equal : (A, A) -> Bool)),\n equalB : (implicit : (equal : (B, B) -> Bool)),\n equalC : (implicit : (equal : (C, C) -> Bool)),\n equalD : (implicit : (equal : (D, D) -> Bool))\n ) : ((A, B, C, D), (A, B, C, D)) -> Bool = func(t1, t2) = equal(t1, t2, equalA, equalB, equalC, equalD);\n\n /// Creates a `compare` function for a 4-tuple given `compare` functions for its elements.\n /// This is useful when you need to reuse the same comparison multiple times.\n ///\n /// ```motoko\n /// import { Tuple4 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// let compare = Tuple4.makeCompare(Nat.compare, Text.compare, Nat.compare, Nat.compare);\n /// assert compare((1, \"hello\", 2, 3), (1, \"world\", 1, 3)) == #less;\n /// ```\n public func makeCompare(\n compareA : (implicit : (compare : (A, A) -> Types.Order)),\n compareB : (implicit : (compare : (B, B) -> Types.Order)),\n compareC : (implicit : (compare : (C, C) -> Types.Order)),\n compareD : (implicit : (compare : (D, D) -> Types.Order))\n ) : ((A, B, C, D), (A, B, C, D)) -> Types.Order = func(t1, t2) = compare(t1, t2, compareA, compareB, compareC, compareD)\n }\n}\n"},"Float.mo":{"content":"/// Double precision (64-bit) floating-point numbers in IEEE 754 representation.\n///\n/// This module contains common floating-point constants and utility functions.\n///\n/// ```motoko name=import\n/// import Float \"mo:core/Float\";\n/// ```\n///\n/// Notation for special values in the documentation below:\n/// `+inf`: Positive infinity\n/// `-inf`: Negative infinity\n/// `NaN`: \"not a number\" (can have different sign bit values, but `NaN != NaN` regardless of the sign).\n///\n/// Note:\n/// Floating point numbers have limited precision and operations may inherently result in numerical errors.\n///\n/// Examples of numerical errors:\n/// ```motoko\n/// assert 0.1 + 0.1 + 0.1 != 0.3;\n/// ```\n///\n/// ```motoko\n/// assert not (1e16 + 1.0 != 1e16);\n/// ```\n///\n/// (and many more cases)\n///\n/// Advice:\n/// * Floating point number comparisons by `==` or `!=` are discouraged. Instead, it is better to compare\n/// floating-point numbers with a numerical tolerance, called epsilon.\n///\n/// Example:\n/// ```motoko\n/// import Float \"mo:core/Float\";\n/// let x = 0.1 + 0.1 + 0.1;\n/// let y = 0.3;\n///\n/// let epsilon = 1e-6; // This depends on the application case (needs a numerical error analysis).\n/// assert Float.equal(x, y, epsilon);\n/// ```\n///\n/// * For absolute precision, it is recommened to encode the fraction number as a pair of a Nat for the base\n/// and a Nat for the exponent (decimal point).\n///\n/// NaN sign:\n/// * The NaN sign is only applied by `abs`, `neg`, and `copySign`. Other operations can have an arbitrary\n/// sign bit for NaN results.\n\nimport Prim \"mo:⛔\";\nimport Int \"Int\";\nimport Order \"Order\";\n\nmodule {\n\n /// 64-bit floating point number type.\n public type Float = Prim.Types.Float;\n\n /// Ratio of the circumference of a circle to its diameter.\n /// Note: Limited precision.\n public let pi : Float = 3.14159265358979323846; // taken from musl math.h\n\n /// Base of the natural logarithm.\n /// Note: Limited precision.\n public let e : Float = 2.7182818284590452354; // taken from musl math.h\n\n /// Determines whether the `number` is a `NaN` (\"not a number\" in the floating point representation).\n /// Notes:\n /// * Equality test of `NaN` with itself or another number is always `false`.\n /// * There exist many internal `NaN` value representations, such as positive and negative NaN,\n /// signalling and quiet NaNs, each with many different bit representations.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.isNaN(0.0/0.0);\n /// ```\n public func isNaN(self : Float) : Bool {\n self != self\n };\n\n /// Returns the absolute value of `x`.\n ///\n /// Special cases:\n /// ```\n /// abs(+inf) => +inf\n /// abs(-inf) => +inf\n /// abs(-NaN) => +NaN\n /// abs(-0.0) => 0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.abs(-1.2), 1.2, epsilon);\n /// ```\n public let abs : (x : Float) -> Float = Prim.floatAbs;\n\n /// Returns the square root of `x`.\n ///\n /// Special cases:\n /// ```\n /// sqrt(+inf) => +inf\n /// sqrt(-0.0) => -0.0\n /// sqrt(x) => NaN if x < 0.0\n /// sqrt(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.sqrt(6.25), 2.5, epsilon);\n /// ```\n public let sqrt : (x : Float) -> Float = Prim.floatSqrt;\n\n /// Returns the smallest integral float greater than or equal to `x`.\n ///\n /// Special cases:\n /// ```\n /// ceil(+inf) => +inf\n /// ceil(-inf) => -inf\n /// ceil(NaN) => NaN\n /// ceil(0.0) => 0.0\n /// ceil(-0.0) => -0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.ceil(1.2), 2.0, epsilon);\n /// ```\n public let ceil : (x : Float) -> Float = Prim.floatCeil;\n\n /// Returns the largest integral float less than or equal to `x`.\n ///\n /// Special cases:\n /// ```\n /// floor(+inf) => +inf\n /// floor(-inf) => -inf\n /// floor(NaN) => NaN\n /// floor(0.0) => 0.0\n /// floor(-0.0) => -0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.floor(1.2), 1.0, epsilon);\n /// ```\n public let floor : (x : Float) -> Float = Prim.floatFloor;\n\n /// Returns the nearest integral float not greater in magnitude than `x`.\n /// This is equivalent to returning `x` with truncating its decimal places.\n ///\n /// Special cases:\n /// ```\n /// trunc(+inf) => +inf\n /// trunc(-inf) => -inf\n /// trunc(NaN) => NaN\n /// trunc(0.0) => 0.0\n /// trunc(-0.0) => -0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.trunc(2.75), 2.0, epsilon);\n /// ```\n public let trunc : (x : Float) -> Float = Prim.floatTrunc;\n\n /// Returns the nearest integral float to `x`.\n /// A decimal place of exactly .5 is rounded to the nearest even integral float.\n /// and rounded down for `x < 0`\n ///\n /// Special cases:\n /// ```\n /// nearest(+inf) => +inf\n /// nearest(-inf) => -inf\n /// nearest(NaN) => NaN\n /// nearest(0.0) => 0.0\n /// nearest(-0.0) => -0.0\n /// nearest(14.5) => 14.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.nearest(2.75) == 3.0\n /// ```\n public let nearest : (x : Float) -> Float = Prim.floatNearest;\n\n /// Returns `x` if `x` and `y` have same sign, otherwise `x` with negated sign.\n ///\n /// The sign bit of zero, infinity, and `NaN` is considered.\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.copySign(1.2, -2.3), -1.2, epsilon);\n /// ```\n public let copySign : (x : Float, y : Float) -> Float = Prim.floatCopySign;\n\n /// Returns the smaller value of `x` and `y`.\n ///\n /// Special cases:\n /// ```\n /// min(NaN, y) => NaN for any Float y\n /// min(x, NaN) => NaN for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.min(1.2, -2.3) == -2.3; // with numerical imprecision\n /// ```\n public let min : (x : Float, y : Float) -> Float = Prim.floatMin;\n\n /// Returns the larger value of `x` and `y`.\n ///\n /// Special cases:\n /// ```\n /// max(NaN, y) => NaN for any Float y\n /// max(x, NaN) => NaN for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.max(1.2, -2.3) == 1.2;\n /// ```\n public let max : (x : Float, y : Float) -> Float = Prim.floatMax;\n\n /// Returns the sine of the radian angle `x`.\n ///\n /// Special cases:\n /// ```\n /// sin(+inf) => NaN\n /// sin(-inf) => NaN\n /// sin(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.sin(Float.pi / 2), 1.0, epsilon);\n /// ```\n public let sin : (x : Float) -> Float = Prim.sin;\n\n /// Returns the cosine of the radian angle `x`.\n ///\n /// Special cases:\n /// ```\n /// cos(+inf) => NaN\n /// cos(-inf) => NaN\n /// cos(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.cos(Float.pi / 2), 0.0, epsilon);\n /// ```\n public let cos : (x : Float) -> Float = Prim.cos;\n\n /// Returns the tangent of the radian angle `x`.\n ///\n /// Special cases:\n /// ```\n /// tan(+inf) => NaN\n /// tan(-inf) => NaN\n /// tan(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.tan(Float.pi / 4), 1.0, epsilon);\n /// ```\n public let tan : (x : Float) -> Float = Prim.tan;\n\n /// Returns the arc sine of `x` in radians.\n ///\n /// Special cases:\n /// ```\n /// arcsin(x) => NaN if x > 1.0\n /// arcsin(x) => NaN if x < -1.0\n /// arcsin(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.arcsin(1.0), Float.pi / 2, epsilon);\n /// ```\n public let arcsin : (x : Float) -> Float = Prim.arcsin;\n\n /// Returns the arc cosine of `x` in radians.\n ///\n /// Special cases:\n /// ```\n /// arccos(x) => NaN if x > 1.0\n /// arccos(x) => NaN if x < -1.0\n /// arcos(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.arccos(1.0), 0.0, epsilon);\n /// ```\n public let arccos : (x : Float) -> Float = Prim.arccos;\n\n /// Returns the arc tangent of `x` in radians.\n ///\n /// Special cases:\n /// ```\n /// arctan(+inf) => pi / 2\n /// arctan(-inf) => -pi / 2\n /// arctan(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.arctan(1.0), Float.pi / 4, epsilon);\n /// ```\n public let arctan : (x : Float) -> Float = Prim.arctan;\n\n /// Given `(y, x)`, returns the arc tangent in radians of `y/x` based on the signs of both values to determine the correct quadrant.\n ///\n /// Special cases:\n /// ```\n /// arctan2(0.0, 0.0) => 0.0\n /// arctan2(-0.0, 0.0) => -0.0\n /// arctan2(0.0, -0.0) => pi\n /// arctan2(-0.0, -0.0) => -pi\n /// arctan2(+inf, +inf) => pi / 4\n /// arctan2(+inf, -inf) => 3 * pi / 4\n /// arctan2(-inf, +inf) => -pi / 4\n /// arctan2(-inf, -inf) => -3 * pi / 4\n /// arctan2(NaN, x) => NaN for any Float x\n /// arctan2(y, NaN) => NaN for any Float y\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let sqrt2over2 = Float.sqrt(2) / 2;\n /// assert Float.arctan2(sqrt2over2, sqrt2over2) == Float.pi / 4;\n /// ```\n public let arctan2 : (y : Float, x : Float) -> Float = Prim.arctan2;\n\n /// Returns the value of `e` raised to the `x`-th power.\n ///\n /// Special cases:\n /// ```\n /// exp(+inf) => +inf\n /// exp(-inf) => 0.0\n /// exp(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.exp(1.0), Float.e, epsilon);\n /// ```\n public let exp : (x : Float) -> Float = Prim.exp;\n\n /// Returns the natural logarithm (base-`e`) of `x`.\n ///\n /// Special cases:\n /// ```\n /// log(0.0) => -inf\n /// log(-0.0) => -inf\n /// log(x) => NaN if x < 0.0\n /// log(+inf) => +inf\n /// log(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.log(Float.e), 1.0, epsilon);\n /// ```\n public let log : (x : Float) -> Float = Prim.log;\n\n /// Formatting. `format(fmt, x)` formats `x` to `Text` according to the\n /// formatting directive `fmt`, which can take one of the following forms:\n ///\n /// * `#fix prec` as fixed-point format with `prec` digits\n /// * `#exp prec` as exponential format with `prec` digits\n /// * `#gen prec` as generic format with `prec` digits\n /// * `#exact` as exact format that can be decoded without loss.\n ///\n /// `-0.0` is formatted with negative sign bit.\n /// Positive infinity is formatted as \"inf\".\n /// Negative infinity is formatted as \"-inf\".\n ///\n /// The numerical precision and the text format can vary between\n /// Motoko versions and runtime configuration. Moreover, `NaN` can be printed\n /// differently, i.e. \"NaN\" or \"nan\", potentially omitting the `NaN` sign.\n ///\n /// Example:\n /// ```motoko include=import no-validate\n /// assert Float.format(#exp 3, 123.0) == \"1.230e+02\";\n /// ```\n public func format(self : Float, fmt : { #fix : Nat8; #exp : Nat8; #gen : Nat8; #exact }) : Text = switch fmt {\n case (#fix(prec)) { Prim.floatToFormattedText(self, prec, 0) };\n case (#exp(prec)) { Prim.floatToFormattedText(self, prec, 1) };\n case (#gen(prec)) { Prim.floatToFormattedText(self, prec, 2) };\n case (#exact) { Prim.floatToFormattedText(self, 17, 2) }\n };\n\n /// Conversion to Text. Use `format(fmt, x)` for more detailed control.\n ///\n /// `-0.0` is formatted with negative sign bit.\n /// Positive infinity is formatted as `inf`.\n /// Negative infinity is formatted as `-inf`.\n /// `NaN` is formatted as `NaN` or `-NaN` depending on its sign bit.\n ///\n /// The numerical precision and the text format can vary between\n /// Motoko versions and runtime configuration. Moreover, `NaN` can be printed\n /// differently, i.e. \"NaN\" or \"nan\", potentially omitting the `NaN` sign.\n ///\n /// Example:\n /// ```motoko include=import no-validate\n /// assert Float.toText(1.2) == \"1.2\";\n /// ```\n public let toText : (self : Float) -> Text = Prim.floatToText;\n\n /// Conversion to Int64 by truncating Float, equivalent to `toInt64(trunc(f))`\n ///\n /// Traps if the floating point number is larger or smaller than the representable Int64.\n /// Also traps for `inf`, `-inf`, and `NaN`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.toInt64(-12.3) == -12;\n /// ```\n public let toInt64 : (self : Float) -> Int64 = Prim.floatToInt64;\n\n /// Conversion from Int64.\n ///\n /// Note: The floating point number may be imprecise for large or small Int64.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.fromInt64(-42) == -42.0;\n /// ```\n public let fromInt64 : (x : Int64) -> Float = Prim.int64ToFloat;\n\n /// Conversion to Int.\n ///\n /// Traps for `inf`, `-inf`, and `NaN`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.toInt(1.2e6) == +1_200_000;\n /// ```\n public let toInt : (self : Float) -> Int = Prim.floatToInt;\n\n /// Conversion from Int. May result in `Inf`.\n ///\n /// Note: The floating point number may be imprecise for large or small Int values.\n /// Returns `inf` if the integer is greater than the maximum floating point number.\n /// Returns `-inf` if the integer is less than the minimum floating point number.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.fromInt(-123) == -123.0;\n /// ```\n /// @deprecated M0235\n public let fromInt : (x : Int) -> Float = Prim.intToFloat;\n\n /// Conversion to Float32 (32-bit single precision).\n ///\n /// Note: This may lose precision for values that are not exactly representable in 32-bit.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.toFloat32(1.5) == 1.5;\n /// ```\n public let toFloat32 : (self : Float) -> Prim.Types.Float32 = Prim.floatToFloat32;\n\n /// Conversion from Float32 (32-bit single precision) to Float (64-bit double precision).\n ///\n /// This is a lossless widening conversion.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.fromFloat32(1.5) == 1.5;\n /// ```\n public let fromFloat32 : (x : Prim.Types.Float32) -> Float = Prim.float32ToFloat;\n\n /// Determines whether `x` is equal to `y` within the defined tolerance of `epsilon`.\n /// The `epsilon` considers numerical erros, see comment above.\n /// Equivalent to `Float.abs(x - y) <= epsilon` for a non-negative epsilon.\n ///\n /// Traps if `epsilon` is negative or `NaN`.\n ///\n /// Special cases:\n /// ```\n /// equal(+0.0, -0.0, epsilon) => true for any `epsilon >= 0.0`\n /// equal(-0.0, +0.0, epsilon) => true for any `epsilon >= 0.0`\n /// equal(+inf, +inf, epsilon) => true for any `epsilon >= 0.0`\n /// equal(-inf, -inf, epsilon) => true for any `epsilon >= 0.0`\n /// equal(x, NaN, epsilon) => false for any x and `epsilon >= 0.0`\n /// equal(NaN, y, epsilon) => false for any y and `epsilon >= 0.0`\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(-12.3, -1.23e1, epsilon);\n /// ```\n public func equal(x : Float, y : Float, epsilon : Float) : Bool {\n if (not (epsilon >= 0.0)) {\n // also considers NaN, not identical to `epsilon < 0.0`\n Prim.trap(\"Float.equal(): epsilon must be greater or equal 0.0\")\n };\n x == y or abs(x - y) <= epsilon // `x == y` to also consider infinity equal\n };\n\n /// Determines whether `x` is not equal to `y` within the defined tolerance of `epsilon`.\n /// The `epsilon` considers numerical erros, see comment above.\n /// Equivalent to `not equal(x, y, epsilon)`.\n ///\n /// Traps if `epsilon` is negative or `NaN`.\n ///\n /// Special cases:\n /// ```\n /// notEqual(+0.0, -0.0, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(-0.0, +0.0, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(+inf, +inf, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(-inf, -inf, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(x, NaN, epsilon) => true for any x and `epsilon >= 0.0`\n /// notEqual(NaN, y, epsilon) => true for any y and `epsilon >= 0.0`\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert not Float.notEqual(-12.3, -1.23e1, epsilon);\n /// ```\n public func notEqual(x : Float, y : Float, epsilon : Float) : Bool {\n if (not (epsilon >= 0.0)) {\n // also considers NaN, not identical to `epsilon < 0.0`\n Prim.trap(\"Float.notEqual(): epsilon must be greater or equal 0.0\")\n };\n not (x == y or abs(x - y) <= epsilon)\n };\n\n /// Returns `x < y`.\n ///\n /// Special cases:\n /// ```\n /// less(+0.0, -0.0) => false\n /// less(-0.0, +0.0) => false\n /// less(NaN, y) => false for any Float y\n /// less(x, NaN) => false for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.less(Float.e, Float.pi);\n /// ```\n public func less(x : Float, y : Float) : Bool { x < y };\n\n /// Returns `x <= y`.\n ///\n /// Special cases:\n /// ```\n /// lessOrEqual(+0.0, -0.0) => true\n /// lessOrEqual(-0.0, +0.0) => true\n /// lessOrEqual(NaN, y) => false for any Float y\n /// lessOrEqual(x, NaN) => false for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.lessOrEqual(0.123, 0.1234);\n /// ```\n public func lessOrEqual(x : Float, y : Float) : Bool { x <= y };\n\n /// Returns `x > y`.\n ///\n /// Special cases:\n /// ```\n /// greater(+0.0, -0.0) => false\n /// greater(-0.0, +0.0) => false\n /// greater(NaN, y) => false for any Float y\n /// greater(x, NaN) => false for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.greater(Float.pi, Float.e);\n /// ```\n public func greater(x : Float, y : Float) : Bool { x > y };\n\n /// Returns `x >= y`.\n ///\n /// Special cases:\n /// ```\n /// greaterOrEqual(+0.0, -0.0) => true\n /// greaterOrEqual(-0.0, +0.0) => true\n /// greaterOrEqual(NaN, y) => false for any Float y\n /// greaterOrEqual(x, NaN) => false for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.greaterOrEqual(0.1234, 0.123);\n /// ```\n public func greaterOrEqual(x : Float, y : Float) : Bool {\n x >= y\n };\n\n /// Defines a total order of `x` and `y` for use in sorting.\n ///\n /// Note: Using this operation to determine equality or inequality is discouraged for two reasons:\n /// * It does not consider numerical errors, see comment above. Use `equal(x, y, espilon)` or\n /// `notEqual(x, y, epsilon)` to test for equality or inequality, respectively.\n /// * `NaN` are here considered equal if their sign matches, which is different to the standard equality\n /// by `==` or when using `equal()` or `notEqual()`.\n ///\n /// Total order:\n /// * negative NaN (no distinction between signalling and quiet negative NaN)\n /// * negative infinity\n /// * negative numbers (including negative subnormal numbers in standard order)\n /// * negative zero (`-0.0`)\n /// * positive zero (`+0.0`)\n /// * positive numbers (including positive subnormal numbers in standard order)\n /// * positive infinity\n /// * positive NaN (no distinction between signalling and quiet positive NaN)\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.compare(0.123, 0.1234) == #less;\n /// ```\n public func compare(x : Float, y : Float) : Order.Order {\n if (isNaN(x)) {\n if (isNegative(x)) {\n if (isNaN(y) and isNegative(y)) { #equal } else { #less }\n } else {\n if (isNaN(y) and not isNegative(y)) { #equal } else { #greater }\n }\n } else if (isNaN(y)) {\n if (isNegative(y)) {\n #greater\n } else {\n #less\n }\n } else {\n if (x == y) { #equal } else if (x < y) { #less } else {\n #greater\n }\n }\n };\n\n func isNegative(self : Float) : Bool {\n copySign(1.0, self) < 0.0\n };\n\n /// Returns the negation of `x`, `-x` .\n ///\n /// Changes the sign bit for infinity.\n ///\n /// Special cases:\n /// ```\n /// neg(+inf) => -inf\n /// neg(-inf) => +inf\n /// neg(+NaN) => -NaN\n /// neg(-NaN) => +NaN\n /// neg(+0.0) => -0.0\n /// neg(-0.0) => +0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.neg(1.23), -1.23, epsilon);\n /// ```\n public func neg(x : Float) : Float { -x };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// add(+inf, y) => +inf if y is any Float except -inf and NaN\n /// add(-inf, y) => -inf if y is any Float except +inf and NaN\n /// add(+inf, -inf) => NaN\n /// add(NaN, y) => NaN for any Float y\n /// ```\n /// The same cases apply commutatively, i.e. for `add(y, x)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.add(1.23, 0.123), 1.353, epsilon);\n /// ```\n public func add(x : Float, y : Float) : Float { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// sub(+inf, y) => +inf if y is any Float except +inf or NaN\n /// sub(-inf, y) => -inf if y is any Float except -inf and NaN\n /// sub(x, +inf) => -inf if x is any Float except +inf and NaN\n /// sub(x, -inf) => +inf if x is any Float except -inf and NaN\n /// sub(+inf, +inf) => NaN\n /// sub(-inf, -inf) => NaN\n /// sub(NaN, y) => NaN for any Float y\n /// sub(x, NaN) => NaN for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.sub(1.23, 0.123), 1.107, epsilon);\n /// ```\n public func sub(x : Float, y : Float) : Float { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// mul(+inf, y) => +inf if y > 0.0\n /// mul(-inf, y) => -inf if y > 0.0\n /// mul(+inf, y) => -inf if y < 0.0\n /// mul(-inf, y) => +inf if y < 0.0\n /// mul(+inf, 0.0) => NaN\n /// mul(-inf, 0.0) => NaN\n /// mul(NaN, y) => NaN for any Float y\n /// ```\n /// The same cases apply commutatively, i.e. for `mul(y, x)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.mul(1.23, 1e2), 123.0, epsilon);\n /// ```\n public func mul(x : Float, y : Float) : Float { x * y };\n\n /// Returns the division of `x` by `y`, `x / y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// div(0.0, 0.0) => NaN\n /// div(x, 0.0) => +inf for x > 0.0\n /// div(x, 0.0) => -inf for x < 0.0\n /// div(x, +inf) => 0.0 for any x except +inf, -inf, and NaN\n /// div(x, -inf) => 0.0 for any x except +inf, -inf, and NaN\n /// div(+inf, y) => +inf if y >= 0.0\n /// div(+inf, y) => -inf if y < 0.0\n /// div(-inf, y) => -inf if y >= 0.0\n /// div(-inf, y) => +inf if y < 0.0\n /// div(NaN, y) => NaN for any Float y\n /// div(x, NaN) => NaN for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.div(1.23, 1e2), 0.0123, epsilon);\n /// ```\n public func div(x : Float, y : Float) : Float { x / y };\n\n /// Returns the floating point division remainder `x % y`,\n /// which is defined as `x - trunc(x / y) * y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// rem(0.0, 0.0) => NaN\n /// rem(x, y) => +inf if sign(x) == sign(y) for any x and y not being +inf, -inf, or NaN\n /// rem(x, y) => -inf if sign(x) != sign(y) for any x and y not being +inf, -inf, or NaN\n /// rem(x, +inf) => x for any x except +inf, -inf, and NaN\n /// rem(x, -inf) => x for any x except +inf, -inf, and NaN\n /// rem(+inf, y) => NaN for any Float y\n /// rem(-inf, y) => NaN for any Float y\n /// rem(NaN, y) => NaN for any Float y\n /// rem(x, NaN) => NaN for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.rem(7.2, 2.3), 0.3, epsilon);\n /// ```\n public func rem(x : Float, y : Float) : Float { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// pow(+inf, y) => +inf for any y > 0.0 including +inf\n /// pow(+inf, 0.0) => 1.0\n /// pow(+inf, y) => 0.0 for any y < 0.0 including -inf\n /// pow(x, +inf) => +inf if x > 0.0 or x < 0.0\n /// pow(0.0, +inf) => 0.0\n /// pow(x, -inf) => 0.0 if x > 0.0 or x < 0.0\n /// pow(0.0, -inf) => +inf\n /// pow(x, y) => NaN if x < 0.0 and y is a non-integral Float\n /// pow(-inf, y) => +inf if y > 0.0 and y is a non-integral or an even integral Float\n /// pow(-inf, y) => -inf if y > 0.0 and y is an odd integral Float\n /// pow(-inf, 0.0) => 1.0\n /// pow(-inf, y) => 0.0 if y < 0.0\n /// pow(-inf, +inf) => +inf\n /// pow(-inf, -inf) => 1.0\n /// pow(NaN, y) => NaN if y != 0.0\n /// pow(NaN, 0.0) => 1.0\n /// pow(x, NaN) => NaN for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.pow(2.5, 2.0), 6.25, epsilon);\n /// ```\n public func pow(x : Float, y : Float) : Float { x ** y };\n\n}\n"},"Bool.mo":{"content":"/// Boolean type and operations.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Bool \"mo:core/Bool\";\n/// ```\n///\n/// While boolean operators `_ and _` and `_ or _` are short-circuiting,\n/// avoiding computation of the right argument when possible, the functions\n/// `logicalAnd(_, _)` and `logicalOr(_, _)` are *strict* and will always evaluate *both*\n/// of their arguments.\n///\n/// Example:\n/// ```motoko include=import\n/// let t = true;\n/// let f = false;\n///\n/// // Short-circuiting AND\n/// assert not (t and f);\n///\n/// // Short-circuiting OR\n/// assert t or f;\n/// ```\n\nimport Prim \"mo:⛔\";\nimport Iter \"Iter\";\nimport Order \"Order\";\n\nmodule {\n\n /// Booleans with constants `true` and `false`.\n public type Bool = Prim.Types.Bool;\n\n /// Returns `a and b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert not Bool.logicalAnd(true, false);\n /// assert Bool.logicalAnd(true, true);\n /// ```\n public func logicalAnd(self : Bool, other : Bool) : Bool = self and other;\n\n /// Returns `a or b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Bool.logicalOr(true, false);\n /// assert Bool.logicalOr(false, true);\n /// ```\n public func logicalOr(self : Bool, other : Bool) : Bool = self or other;\n\n /// Returns exclusive or of `a` and `b`, `a != b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Bool.logicalXor(true, false);\n /// assert not Bool.logicalXor(true, true);\n /// assert not Bool.logicalXor(false, false);\n /// ```\n public func logicalXor(self : Bool, other : Bool) : Bool = self != other;\n\n /// Returns `not bool`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Bool.logicalNot(false);\n /// assert not Bool.logicalNot(true);\n /// ```\n public func logicalNot(self : Bool) : Bool = not self;\n\n /// Returns `a == b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Bool.equal(true, true);\n /// assert not Bool.equal(true, false);\n /// ```\n public func equal(self : Bool, other : Bool) : Bool { self == other };\n\n /// Returns the ordering of `a` compared to `b`.\n /// Returns `#less` if `a` is `false` and `b` is `true`,\n /// `#equal` if `a` equals `b`,\n /// and `#greater` if `a` is `true` and `b` is `false`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Bool.compare(true, false) == #greater;\n /// assert Bool.compare(true, true) == #equal;\n /// assert Bool.compare(false, true) == #less;\n /// ```\n public func compare(self : Bool, other : Bool) : Order.Order {\n if (self == other) #equal else if self #greater else #less\n };\n\n /// Returns a text value which is either `\"true\"` or `\"false\"` depending on the input value.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Bool.toText(true) == \"true\";\n /// assert Bool.toText(false) == \"false\";\n /// ```\n public func toText(self : Bool) : Text {\n if self \"true\" else \"false\"\n };\n\n /// Returns an iterator over all possible boolean values (`true` and `false`).\n ///\n /// Example:\n /// ```motoko include=import\n /// let iter = Bool.allValues();\n /// assert iter.next() == ?true;\n /// assert iter.next() == ?false;\n /// assert iter.next() == null;\n /// ```\n public func allValues() : Iter.Iter = object {\n var state : ?Bool = ?true;\n public func next() : ?Bool {\n switch state {\n case (?true) { state := ?false; ?true };\n case (?false) { state := null; ?false };\n case null { null }\n }\n }\n };\n\n}\n"},"InternetComputer.mo":{"content":"/// Low-level interface to the Internet Computer.\n\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// Calls `canister`'s update or query function, `name`, with the binary contents of `data` as IC argument.\n /// Returns the response to the call, an IC _reply_ or _reject_, as a Motoko future:\n ///\n /// * The message data of an IC reply determines the binary contents of `reply`.\n /// * The error code and textual message data of an IC reject determines the future's `Error` value.\n ///\n /// Note: `call` is an asynchronous function and can only be applied in an asynchronous context.\n ///\n /// Example:\n /// ```motoko no-repl\n /// import IC \"mo:core/InternetComputer\";\n /// import Principal \"mo:core/Principal\";\n ///\n /// persistent actor {\n /// type OutputType = { decimals : Nat32 };\n ///\n /// public func example() : async ?OutputType {\n /// let ledger = Principal.fromText(\"ryjl3-tyaaa-aaaaa-aaaba-cai\");\n /// let method = \"decimals\";\n /// let input = ();\n ///\n /// let rawReply = await IC.call(ledger, method, to_candid (input)); // serialized Candid\n /// let output : ?OutputType = from_candid (rawReply);\n /// assert output == ?{ decimals = 8 };\n /// output\n /// }\n /// }\n /// ```\n ///\n /// [Learn more about Candid serialization](https://internetcomputer.org/docs/motoko/language-manual#candid-serialization)\n public let call : (canister : Principal, name : Text, data : Blob) -> async (reply : Blob) = Prim.call_raw;\n\n /// `isReplicated` is true for update messages and for queries that passed through consensus.\n public let isReplicated : () -> Bool = Prim.isReplicatedExecution;\n\n /// Given computation, `comp`, counts the number of actual and (for IC system calls) notional WebAssembly\n /// instructions performed during the execution of `comp()`.\n ///\n /// More precisely, returns the difference between the state of the IC instruction counter (_performance counter_ `0`) before and after executing `comp()`\n /// (see [Performance Counter](https://internetcomputer.org/docs/current/references/ic-interface-spec#system-api-performance-counter)).\n ///\n /// NB: `countInstructions(comp)` will _not_ account for any deferred garbage collection costs incurred by `comp()`.\n ///\n /// Example:\n /// ```motoko no-repl\n /// import IC \"mo:core/InternetComputer\";\n ///\n /// let count = IC.countInstructions(func() {\n /// // ...\n /// });\n /// ```\n public func countInstructions(comp : () -> ()) : Nat64 {\n let init = Prim.performanceCounter(0);\n let pre = Prim.performanceCounter(0);\n comp();\n let post = Prim.performanceCounter(0);\n // performance_counter costs around 200 extra instructions; we perform an empty measurement to decide the overhead\n let overhead = pre - init;\n post - pre - overhead\n };\n\n /// Returns the current value of IC _performance counter_ `counter`.\n ///\n /// * Counter `0` is the _current execution instruction counter_, counting instructions only since the beginning of the current IC message.\n /// This counter is reset to value `0` on shared function entry and every `await`.\n /// It is therefore only suitable for measuring the cost of synchronous code.\n ///\n /// * Counter `1` is the _call context instruction counter_ for the current shared function call.\n /// For replicated message executing, this excludes the cost of nested IC calls (even to the current canister).\n /// For non-replicated messages, such as composite queries, it includes the cost of nested calls.\n /// The current value of this counter is preserved across `awaits` (unlike counter `0`).\n ///\n /// * The function (currently) traps if `counter` >= 2.\n ///\n /// Consult [Performance Counter](https://internetcomputer.org/docs/current/references/ic-interface-spec#system-api-performance-counter) for details.\n ///\n /// Example:\n /// ```motoko no-repl\n /// import IC \"mo:core/InternetComputer\";\n ///\n /// let c1 = IC.performanceCounter(1);\n /// // ...\n /// let diff : Nat64 = IC.performanceCounter(1) - c1;\n /// ```\n public let performanceCounter : (counter : Nat32) -> (value : Nat64) = Prim.performanceCounter;\n\n /// Returns the time (in nanoseconds from the epoch start) by when the update message should\n /// reply to the best effort message so that it can be received by the requesting canister.\n /// Queries and unbounded-time update messages return null.\n public func replyDeadline() : ?Nat {\n let raw = Prim.replyDeadline();\n if (raw == 0) null else ?Prim.nat64ToNat(raw)\n };\n\n}\n"},"Int.mo":{"content":"/// Signed integer numbers with infinite precision (also called big integers).\n///\n/// Most operations on integer numbers (e.g. addition) are available as built-in operators (e.g. `-1 + 1`).\n/// This module provides equivalent functions and `Text` conversion.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Int \"mo:core/Int\";\n/// ```\n\nimport Prim \"mo:⛔\";\nimport Char \"Char\";\nimport Runtime \"Runtime\";\nimport Iter \"Iter\";\nimport Order \"Order\";\n\nmodule {\n\n /// Infinite precision signed integers.\n public type Int = Prim.Types.Int;\n\n /// Returns the absolute value of `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.abs(-12) == 12;\n /// ```\n public let abs : (x : Int) -> Nat = Prim.abs;\n\n /// Converts an integer number to its textual representation. Textual\n /// representation _do not_ contain underscores to represent commas.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.toText(-1234) == \"-1234\";\n /// ```\n public func toText(self : Int) : Text {\n if (self == 0) {\n return \"0\"\n };\n\n let isNegative = self < 0;\n var int = if isNegative { -self } else { self };\n\n var text = \"\";\n let base = 10;\n\n while (int > 0) {\n let rem = int % base;\n text := (\n switch (rem) {\n case 0 { \"0\" };\n case 1 { \"1\" };\n case 2 { \"2\" };\n case 3 { \"3\" };\n case 4 { \"4\" };\n case 5 { \"5\" };\n case 6 { \"6\" };\n case 7 { \"7\" };\n case 8 { \"8\" };\n case 9 { \"9\" };\n case _ { Runtime.unreachable() }\n }\n ) # text;\n int := int / base\n };\n\n return if isNegative { \"-\" # text } else { text }\n };\n\n /// Creates a integer from its textual representation. Returns `null`\n /// if the input is not a valid integer.\n ///\n /// The textual representation _must not_ contain underscores but may\n /// begin with a '+' or '-' character.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.fromText(\"-1234\") == ?-1234;\n /// ```\n public func fromText(text : Text) : ?Int {\n if (text == \"\") {\n return null\n };\n var n = 0;\n var isFirst = true;\n var isNegative = false;\n var hasDigits = false;\n for (c in text.chars()) {\n if (isFirst and c == '+') {\n // Skip character\n } else if (isFirst and c == '-') {\n isNegative := true\n } else if (Char.isDigit(c)) {\n hasDigits := true;\n let charAsNat = Prim.nat32ToNat(Prim.charToNat32(c) -% Prim.charToNat32('0'));\n n := n * 10 + charAsNat\n } else {\n return null\n };\n isFirst := false\n };\n if (not hasDigits) {\n return null\n };\n ?(if (isNegative) { -n } else { n })\n };\n\n /// Creates a integer from its textual representation. Returns `null`\n /// if the input is not a valid integer.\n ///\n /// This functions is meant to be used with contextual-dot notation.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert \"-1234\".toInt() == ?-1234;\n /// ```\n public func toInt(self : Text) : ?Int {\n fromText(self)\n };\n\n /// Converts an integer to a natural number. Traps if the integer is negative.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Debug \"mo:core/Debug\";\n /// assert Int.toNat(1234 : Int) == (1234 : Nat);\n /// ```\n public func toNat(self : Int) : Nat {\n if (self < 0) {\n Runtime.trap(\"Int.toNat(): negative input value\")\n } else {\n abs(self)\n }\n };\n\n /// Converts a natural number to an integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.fromNat(1234 : Nat) == (1234 : Int);\n /// ```\n public func fromNat(nat : Nat) : Int {\n nat : Int\n };\n\n /// Conversion to Float. May result in `Inf`.\n ///\n /// Note: The floating point number may be imprecise for large or small Int values.\n /// Returns `inf` if the integer is greater than the maximum floating point number.\n /// Returns `-inf` if the integer is less than the minimum floating point number.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.toFloat(-123) == -123.0;\n /// ```\n public let toFloat : (self : Int) -> Float = Prim.intToFloat;\n\n /// Converts a signed integer with infinite precision to an 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.toInt8(123) == (123 : Int8);\n /// ```\n public let toInt8 : (self : Int) -> Int8 = Prim.intToInt8;\n\n /// Converts a signed integer with infinite precision to a 16-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.toInt16(12_345) == (12_345 : Int16);\n /// ```\n public let toInt16 : (self : Int) -> Int16 = Prim.intToInt16;\n\n /// Converts a signed integer with infinite precision to a 32-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.toInt32(123_456) == (123_456 : Int32);\n /// ```\n public let toInt32 : (self : Int) -> Int32 = Prim.intToInt32;\n\n /// Converts a signed integer with infinite precision to a 64-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.toInt64(123_456_789) == (123_456_789 : Int64);\n /// ```\n public let toInt64 : (self : Int) -> Int64 = Prim.intToInt64;\n\n /// Converts an 8-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.fromInt8(123 : Int8) == 123;\n /// ```\n public let fromInt8 : (x : Int8) -> Int = Prim.int8ToInt;\n\n /// Converts a 16-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.fromInt16(12_345 : Int16) == 12_345;\n /// ```\n public let fromInt16 : (x : Int16) -> Int = Prim.int16ToInt;\n\n /// Converts a 32-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.fromInt32(123_456 : Int32) == 123_456;\n /// ```\n public let fromInt32 : (x : Int32) -> Int = Prim.int32ToInt;\n\n /// Converts a 64-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.fromInt64(123_456_789 : Int64) == 123_456_789;\n /// ```\n public let fromInt64 : (x : Int64) -> Int = Prim.int64ToInt;\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.min(2, -3) == -3;\n /// ```\n public func min(x : Int, y : Int) : Int {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.max(2, -3) == 2;\n /// ```\n public func max(x : Int, y : Int) : Int {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Int types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.equal(-1, -1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Int = 1;\n /// let b : Int = -1;\n /// assert not Int.equal(a, b);\n /// ```\n public func equal(x : Int, y : Int) : Bool { x == y };\n\n /// Inequality function for Int types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.notEqual(-1, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Int, y : Int) : Bool { x != y };\n\n /// \"Less than\" function for Int types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.less(-2, 1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Int, y : Int) : Bool { x < y };\n\n /// \"Less than or equal\" function for Int types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.lessOrEqual(-2, 1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Int, y : Int) : Bool { x <= y };\n\n /// \"Greater than\" function for Int types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.greater(1, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Int, y : Int) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Int types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.greaterOrEqual(1, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Int, y : Int) : Bool { x >= y };\n\n /// General-purpose comparison function for `Int`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.compare(-3, 2) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([1, -2, -3], Int.compare) == [-3, -2, 1];\n /// ```\n public func compare(x : Int, y : Int) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the negation of `x`, `-x` .\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.neg(123) == -123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n public func neg(x : Int) : Int { -x };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n ///\n /// No overflow since `Int` has infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.add(1, -2) == -1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int.add) == -4;\n /// ```\n public func add(x : Int, y : Int) : Int { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n ///\n /// No overflow since `Int` has infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.sub(1, 2) == -1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int.sub) == 4;\n /// ```\n public func sub(x : Int, y : Int) : Int { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n ///\n /// No overflow since `Int` has infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.mul(-2, 3) == -6;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 1, Int.mul) == 6;\n /// ```\n public func mul(x : Int, y : Int) : Int { x * y };\n\n /// Returns the signed integer division of `x` by `y`, `x / y`.\n /// Rounds the quotient towards zero, which is the same as truncating the decimal places of the quotient.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.div(6, -2) == -3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Int, y : Int) : Int { x / y };\n\n /// Returns the remainder of the signed integer division of `x` by `y`, `x % y`,\n /// which is defined as `x - x / y * y`.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.rem(6, -4) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Int, y : Int) : Int { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n ///\n /// Traps when `y` is negative or `y > 2 ** 32 - 1`.\n /// No overflow since `Int` has infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.pow(-2, 3) == -8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Int, y : Int) : Int { x ** y };\n\n /// Returns an iterator over the integers from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Int, toExclusive : Int) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Int {\n if (n >= toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Int` values from the first to second argument with an exclusive upper bound,\n /// incrementing by the specified step size.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// // Positive step\n /// let iter1 = Int.rangeBy(1, 7, 2);\n /// assert iter1.next() == ?1;\n /// assert iter1.next() == ?3;\n /// assert iter1.next() == ?5;\n /// assert iter1.next() == null;\n ///\n /// // Negative step\n /// let iter2 = Int.rangeBy(7, 1, -2);\n /// assert iter2.next() == ?7;\n /// assert iter2.next() == ?5;\n /// assert iter2.next() == ?3;\n /// assert iter2.next() == null;\n /// ```\n ///\n /// If `step` is 0 or if the iteration would not progress towards the bound, returns an empty iterator.\n public func rangeBy(fromInclusive : Int, toExclusive : Int, step : Int) : Iter.Iter {\n if (step == 0) {\n Iter.empty()\n } else if (step > 0 and fromInclusive < toExclusive) {\n object {\n var n = fromInclusive;\n public func next() : ?Int {\n if (n >= toExclusive) {\n null\n } else {\n let current = n;\n n += step;\n ?current\n }\n }\n }\n } else if (step < 0 and fromInclusive > toExclusive) {\n object {\n var n = fromInclusive;\n public func next() : ?Int {\n if (n <= toExclusive) {\n null\n } else {\n let current = n;\n n += step;\n ?current\n }\n }\n }\n } else {\n Iter.empty()\n }\n };\n\n /// Returns an iterator over the integers from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int.rangeInclusive(3, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Int, to : Int) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n public func next() : ?Int {\n if (n > to) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over the integers from the first to second argument, inclusive,\n /// incrementing by the specified step size.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// // Positive step\n /// let iter1 = Int.rangeByInclusive(1, 7, 2);\n /// assert iter1.next() == ?1;\n /// assert iter1.next() == ?3;\n /// assert iter1.next() == ?5;\n /// assert iter1.next() == ?7;\n /// assert iter1.next() == null;\n ///\n /// // Negative step\n /// let iter2 = Int.rangeByInclusive(7, 1, -2);\n /// assert iter2.next() == ?7;\n /// assert iter2.next() == ?5;\n /// assert iter2.next() == ?3;\n /// assert iter2.next() == ?1;\n /// assert iter2.next() == null;\n /// ```\n ///\n /// If `from == to`, return an iterator which only returns that value.\n ///\n /// Otherwise, if `step` is 0 or if the iteration would not progress towards the bound, returns an empty iterator.\n public func rangeByInclusive(from : Int, to : Int, step : Int) : Iter.Iter {\n if (from == to) {\n Iter.singleton(from)\n } else if (step == 0) {\n Iter.empty()\n } else if (step > 0 and from < to) {\n object {\n var n = from;\n public func next() : ?Int {\n if (n >= to + 1) {\n null\n } else {\n let current = n;\n n += step;\n ?current\n }\n }\n }\n } else if (step < 0 and from > to) {\n object {\n var n = from;\n public func next() : ?Int {\n if (n + 1 <= to) {\n null\n } else {\n let current = n;\n n += step;\n ?current\n }\n }\n }\n } else {\n Iter.empty()\n }\n };\n\n}\n"},"PriorityQueue.mo":{"content":"/// A mutable priority queue of elements.\n/// Always returns the element with the highest priority first,\n/// as determined by a user-provided comparison function.\n///\n/// Typical use cases include:\n/// * Task scheduling (highest-priority task first)\n/// * Event simulation\n/// * Pathfinding algorithms (e.g. Dijkstra, A*)\n///\n/// Example:\n/// ```motoko\n/// import PriorityQueue \"mo:core/PriorityQueue\";\n/// import Nat \"mo:core/Nat\";\n///\n/// persistent actor {\n/// let pq = PriorityQueue.empty();\n/// PriorityQueue.push(pq, Nat.compare, 5);\n/// PriorityQueue.push(pq, Nat.compare, 10);\n/// PriorityQueue.push(pq, Nat.compare, 3);\n/// assert PriorityQueue.pop(pq, Nat.compare) == ?10;\n/// assert PriorityQueue.pop(pq, Nat.compare) == ?5;\n/// assert PriorityQueue.pop(pq, Nat.compare) == ?3;\n/// assert PriorityQueue.pop(pq, Nat.compare) == null;\n/// }\n/// ```\n///\n/// Internally implemented as a binary heap stored in a core library `List`.\n///\n/// Performance:\n/// * Runtime: `O(log n)` for `push` and `pop` (amortized).\n/// * Runtime: `O(1)` for `peek`, `clear`, `size`, and `isEmpty`.\n/// * Space: `O(n)`, where `n` is the number of stored elements.\n///\n/// Implementation note (due to `List`):\n/// * There is an additive memory overhead of `O(sqrt(n))`.\n/// * For `push` and `pop`, the amortized time is `O(log n)`,\n/// but the worst case can involve an extra `O(sqrt(n))` step.\nimport List \"List\";\nimport Types \"Types\";\nimport Order \"Order\";\n\nmodule {\n public type PriorityQueue = Types.PriorityQueue;\n\n /// Returns an empty priority queue.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n ///\n /// let pq = PriorityQueue.empty();\n /// assert PriorityQueue.isEmpty(pq);\n /// ```\n ///\n /// Runtime: `O(1)`. Space: `O(1)`.\n public func empty() : PriorityQueue = {\n heap = List.empty()\n };\n\n /// Returns a priority queue containing a single element.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n ///\n /// let pq = PriorityQueue.singleton(42);\n /// assert PriorityQueue.peek(pq) == ?42;\n /// ```\n ///\n /// Runtime: `O(1)`. Space: `O(1)`.\n public func singleton(element : T) : PriorityQueue = {\n heap = List.singleton(element)\n };\n\n /// Returns the number of elements in the priority queue.\n ///\n /// Runtime: `O(1)`.\n public func size(self : PriorityQueue) : Nat = List.size(self.heap);\n\n /// Returns `true` iff the priority queue is empty.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let pq = PriorityQueue.empty();\n /// assert PriorityQueue.isEmpty(pq);\n /// PriorityQueue.push(pq, Nat.compare, 5);\n /// assert not PriorityQueue.isEmpty(pq);\n /// ```\n ///\n /// Runtime: `O(1)`. Space: `O(1)`.\n public func isEmpty(self : PriorityQueue) : Bool = List.isEmpty(self.heap);\n\n /// Removes all elements from the priority queue.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n /// import Nat \"mo:core/Nat\";\n ///\n ///\n /// let pq = PriorityQueue.empty();\n /// PriorityQueue.push(pq, Nat.compare, 5);\n /// PriorityQueue.push(pq, Nat.compare, 10);\n /// assert not PriorityQueue.isEmpty(pq);\n /// PriorityQueue.clear(pq);\n /// assert PriorityQueue.isEmpty(pq);\n /// ```\n ///\n /// Runtime: `O(1)`. Space: `O(1)`.\n public func clear(self : PriorityQueue) = List.clear(self.heap);\n\n /// Inserts a new element into the priority queue.\n ///\n /// `compare` – comparison function that defines priority ordering.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let pq = PriorityQueue.empty();\n /// PriorityQueue.push(pq, Nat.compare, 5);\n /// PriorityQueue.push(pq, Nat.compare, 10);\n /// assert PriorityQueue.peek(pq) == ?10;\n /// ```\n ///\n /// Runtime: `O(log n)`. Space: `O(1)`.\n public func push(\n self : PriorityQueue,\n compare : (implicit : (T, T) -> Order.Order),\n element : T\n ) {\n let heap = self.heap;\n List.add(heap, element);\n var index : Nat = List.size(heap) - 1;\n while (index > 0) {\n let parentId = (index - 1) : Nat / 2;\n let parentVal = List.at(heap, parentId);\n if (compare(element, parentVal) == #greater) {\n List.put(heap, index, parentVal);\n index := parentId\n } else {\n List.put(heap, index, element);\n return\n }\n };\n List.put(heap, 0, element)\n };\n\n /// Returns the element with the highest priority, without removing it.\n /// Returns `null` if the queue is empty.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n ///\n /// let pq = PriorityQueue.singleton(42);\n /// assert PriorityQueue.peek(pq) == ?42;\n /// ```\n ///\n /// Runtime: `O(1)`. Space: `O(1)`.\n public func peek(self : PriorityQueue) : ?T = List.get(self.heap, 0);\n\n /// Removes and returns the element with the highest priority.\n /// Returns `null` if the queue is empty.\n ///\n /// `compare` – comparison function that defines priority ordering.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let pq = PriorityQueue.empty();\n /// PriorityQueue.push(pq, Nat.compare, 5);\n /// PriorityQueue.push(pq, Nat.compare, 10);\n /// assert PriorityQueue.pop(pq, Nat.compare) == ?10;\n /// ```\n ///\n /// Runtime: `O(log n)`. Space: `O(1)`.\n public func pop(\n self : PriorityQueue,\n compare : (implicit : (T, T) -> Order.Order)\n ) : ?T {\n let heap = self.heap;\n if (List.isEmpty(heap)) {\n return null\n };\n let top = List.get(heap, 0);\n let lastIndex : Nat = List.size(heap) - 1;\n let lastElem = List.at(heap, lastIndex);\n\n var index = 0;\n loop {\n var best = lastIndex;\n let left = 2 * index + 1;\n var bestElem = lastElem;\n if (left < lastIndex) {\n let leftElem = List.at(heap, left);\n if (compare(leftElem, lastElem) == #greater) {\n best := left;\n bestElem := leftElem\n }\n };\n let right = left + 1;\n if (right < lastIndex) {\n let rightElem = List.at(heap, right);\n if (compare(rightElem, bestElem) == #greater) {\n best := right;\n bestElem := rightElem\n }\n };\n if (best == lastIndex) {\n List.put(heap, index, lastElem);\n ignore List.removeLast(heap);\n return top\n };\n List.put(heap, index, bestElem);\n index := best\n }\n };\n\n /// Creates a new priority queue from an iterator.\n ///\n /// `compare` – comparison function that defines priority ordering.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let pq = PriorityQueue.fromIter([5, 10, 3].values(), Nat.compare);\n /// assert PriorityQueue.size(pq) == 3;\n /// assert PriorityQueue.peek(pq) == ?10;\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// `n` denotes the number of elements in the iterator.\n public func fromIter(iter : Types.Iter, compare : (implicit : (T, T) -> Order.Order)) : PriorityQueue {\n let pq = empty();\n for (element in iter) {\n push(pq, element)\n };\n pq\n };\n\n /// Creates a copy of the priority queue.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let original = PriorityQueue.fromIter([5, 10, 3].values(), Nat.compare);\n /// let copy = PriorityQueue.clone(original);\n /// assert PriorityQueue.pop(copy, Nat.compare) == ?10;\n /// assert PriorityQueue.size(original) == 3;\n /// ```\n ///\n /// Runtime: `O(n)`. Space: `O(n)`.\n /// `n` denotes the number of elements in the priority queue.\n public func clone(self : PriorityQueue) : PriorityQueue = {\n heap = List.clone(self.heap)\n };\n\n /// Returns an iterator that yields elements in descending priority order\n /// (highest priority first, matching `pop` semantics).\n ///\n /// The original queue is not modified. Internally clones the heap\n /// and pops from the clone on each `next()` call.\n ///\n /// `compare` – comparison function that defines priority ordering.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let pq = PriorityQueue.fromIter([5, 10, 3].values(), Nat.compare);\n /// assert Iter.toArray(PriorityQueue.values(pq, Nat.compare)) == [10, 5, 3];\n /// ```\n ///\n /// Runtime: `O(n)` to create the iterator, `O(log n)` per `next()` call.\n /// Space: `O(n)` for the internal clone.\n /// `n` denotes the number of elements in the priority queue.\n public func values(self : PriorityQueue, compare : (implicit : (T, T) -> Order.Order)) : Types.Iter {\n let copy : PriorityQueue = clone(self);\n object {\n public func next() : ?T {\n pop(copy)\n }\n }\n }\n}\n"},"Int16.mo":{"content":"/// Utility functions on 16-bit signed integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Int16 \"mo:core/Int16\";\n/// ```\n\nimport Int \"Int\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 16-bit signed integers.\n public type Int16 = Prim.Types.Int16;\n\n /// Minimum 16-bit integer value, `-2 ** 15`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.minValue == (-32_768 : Int16);\n /// ```\n public let minValue : Int16 = -32_768;\n\n /// Maximum 16-bit integer value, `+2 ** 15 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.maxValue == (+32_767 : Int16);\n /// ```\n public let maxValue : Int16 = 32_767;\n\n /// Converts a 16-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.toInt(12_345) == (12_345 : Int);\n /// ```\n public let toInt : (self : Int16) -> Int = Prim.int16ToInt;\n\n /// Converts a signed integer with infinite precision to a 16-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.fromInt(12_345) == (+12_345 : Int16);\n /// ```\n public let fromInt : Int -> Int16 = Prim.intToInt16;\n\n /// Converts a signed integer with infinite precision to a 16-bit signed integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.fromIntWrap(-12_345) == (-12_345 : Int);\n /// ```\n public let fromIntWrap : Int -> Int16 = Prim.intToInt16Wrap;\n\n /// Converts a 8-bit signed integer to a 16-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.fromInt8(-123) == (-123 : Int16);\n /// ```\n public let fromInt8 : Int8 -> Int16 = Prim.int8ToInt16;\n\n /// Converts a 16-bit signed integer to a 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.toInt8(-123) == (-123 : Int8);\n /// ```\n public let toInt8 : (self : Int16) -> Int8 = Prim.int16ToInt8;\n\n /// Converts a 32-bit signed integer to a 16-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.fromInt32(-12_345) == (-12_345 : Int16);\n /// ```\n public let fromInt32 : Int32 -> Int16 = Prim.int32ToInt16;\n\n /// Converts a 16-bit signed integer to a 32-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.toInt32(-12_345) == (-12_345 : Int32);\n /// ```\n public let toInt32 : (self : Int16) -> Int32 = Prim.int16ToInt32;\n\n /// Converts a 64-bit signed integer to a 16-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.fromInt64(-12_345) == (-12_345 : Int16);\n /// ```\n public func fromInt64(x : Int64) : Int16 {\n Prim.int32ToInt16(Prim.int64ToInt32(x))\n };\n\n /// Converts a 16-bit signed integer to a 64-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.toInt64(-12_345) == (-12_345 : Int64);\n /// ```\n public func toInt64(self : Int16) : Int64 {\n Prim.int32ToInt64(Prim.int16ToInt32(self))\n };\n\n /// Converts an unsigned 16-bit integer to a signed 16-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.fromNat16(12_345) == (+12_345 : Int16);\n /// ```\n public let fromNat16 : Nat16 -> Int16 = Prim.nat16ToInt16;\n\n /// Converts a signed 16-bit integer to an unsigned 16-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.toNat16(-1) == (65_535 : Nat16); // underflow\n /// ```\n public let toNat16 : (self : Int16) -> Nat16 = Prim.int16ToNat16;\n\n /// Returns the Text representation of `x`. Textual representation _do not_\n /// contain underscores to represent commas.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.toText(-12345) == \"-12345\";\n /// ```\n public func toText(self : Int16) : Text {\n Int.toText(toInt(self))\n };\n\n /// Returns the absolute value of `x`.\n ///\n /// Traps when `x == -2 ** 15` (the minimum `Int16` value).\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.abs(-12345) == +12_345;\n /// ```\n public func abs(x : Int16) : Int16 {\n fromInt(Int.abs(toInt(x)))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.min(+2, -3) == -3;\n /// ```\n public func min(x : Int16, y : Int16) : Int16 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.max(+2, -3) == +2;\n /// ```\n public func max(x : Int16, y : Int16) : Int16 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Int16 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.equal(-1, -1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Int16 = -123;\n /// let b : Int16 = 123;\n /// assert not Int16.equal(a, b);\n /// ```\n public func equal(x : Int16, y : Int16) : Bool { x == y };\n\n /// Inequality function for Int16 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.notEqual(-1, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Int16, y : Int16) : Bool { x != y };\n\n /// \"Less than\" function for Int16 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.less(-2, 1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Int16, y : Int16) : Bool { x < y };\n\n /// \"Less than or equal\" function for Int16 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.lessOrEqual(-2, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Int16, y : Int16) : Bool { x <= y };\n\n /// \"Greater than\" function for Int16 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert not Int16.greater(-2, 1);\n /// ```\n public func greater(x : Int16, y : Int16) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Int16 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.greaterOrEqual(-2, -2);\n /// ```\n public func greaterOrEqual(x : Int16, y : Int16) : Bool {\n x >= y\n };\n\n /// General-purpose comparison function for `Int16`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.compare(-3, 2) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([1, -2, -3] : [Int16], Int16.compare) == [-3, -2, 1];\n /// ```\n public func compare(x : Int16, y : Int16) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the negation of `x`, `-x`.\n ///\n /// Traps on overflow, i.e. for `neg(-2 ** 15)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.neg(123) == -123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n public func neg(x : Int16) : Int16 { -x };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.add(100, 23) == +123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int16.add) == -4;\n /// ```\n public func add(x : Int16, y : Int16) : Int16 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.sub(123, 100) == +23;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int16.sub) == 4;\n /// ```\n public func sub(x : Int16, y : Int16) : Int16 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.mul(12, 10) == +120;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 1, Int16.mul) == 6;\n /// ```\n public func mul(x : Int16, y : Int16) : Int16 { x * y };\n\n /// Returns the signed integer division of `x` by `y`, `x / y`.\n /// Rounds the quotient towards zero, which is the same as truncating the decimal places of the quotient.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.div(123, 10) == +12;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Int16, y : Int16) : Int16 { x / y };\n\n /// Returns the remainder of the signed integer division of `x` by `y`, `x % y`,\n /// which is defined as `x - x / y * y`.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.rem(123, 10) == +3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Int16, y : Int16) : Int16 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n ///\n /// Traps on overflow/underflow and when `y < 0 or y >= 16`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.pow(2, 10) == +1_024;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Int16, y : Int16) : Int16 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitnot(-256 /* 0xff00 */) == +255 // 0xff;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Int16) : Int16 { ^x };\n\n /// Returns the bitwise \"and\" of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitand(0x0fff, 0x00f0) == +240 // 0xf0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Int16, y : Int16) : Int16 { x & y };\n\n /// Returns the bitwise \"or\" of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitor(0x0f0f, 0x00f0) == +4_095 // 0x0fff;\n /// ```\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `|` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `|`\n /// as a function value at the moment.\n public func bitor(x : Int16, y : Int16) : Int16 { x | y };\n\n /// Returns the bitwise \"exclusive or\" of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitxor(0x0fff, 0x00f0) == +3_855 // 0x0f0f;\n /// ```\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitxor(x : Int16, y : Int16) : Int16 { x ^ y };\n\n /// Returns the bitwise left shift of `x` by `y`, `x << y`.\n /// The right bits of the shift filled with zeros.\n /// Left-overflowing bits, including the sign bit, are discarded.\n ///\n /// For `y >= 16`, the semantics is the same as for `bitshiftLeft(x, y % 16)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftLeft(x, y + y % 16)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitshiftLeft(1, 8) == +256 // 0x100 equivalent to `2 ** 8`.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Int16, y : Int16) : Int16 {\n x << y\n };\n\n /// Returns the signed bitwise right shift of `x` by `y`, `x >> y`.\n /// The sign bit is retained and the left side is filled with the sign bit.\n /// Right-underflowing bits are discarded, i.e. not rotated to the left side.\n ///\n /// For `y >= 16`, the semantics is the same as for `bitshiftRight(x, y % 16)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftRight (x, y + y % 16)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitshiftRight(1024, 8) == +4 // equivalent to `1024 / (2 ** 8)`;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Int16, y : Int16) : Int16 {\n x >> y\n };\n\n /// Returns the bitwise left rotatation of `x` by `y`, `x <<> y`.\n /// Each left-overflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 16`, the semantics is the same as for `bitrotLeft(x, y % 16)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitrotLeft(0x2001, 4) == +18 // 0x12.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Int16, y : Int16) : Int16 { x <<> y };\n\n /// Returns the bitwise right rotation of `x` by `y`, `x <>> y`.\n /// Each right-underflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 16`, the semantics is the same as for `bitrotRight(x, y % 16)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitrotRight(0x2010, 8) == +4_128 // 0x01020.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Int16, y : Int16) : Int16 {\n x <>> y\n };\n\n /// Returns the value of bit `p` in `x`, `x & 2**p == 2**p`.\n /// If `p >= 16`, the semantics is the same as for `bittest(x, p % 16)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bittest(128, 7);\n /// ```\n public func bittest(x : Int16, p : Nat) : Bool {\n Prim.btstInt16(x, Prim.intToInt16(p))\n };\n\n /// Returns the value of setting bit `p` in `x` to `1`.\n /// If `p >= 16`, the semantics is the same as for `bitset(x, p % 16)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitset(0, 7) == +128;\n /// ```\n public func bitset(x : Int16, p : Nat) : Int16 {\n x | (1 << Prim.intToInt16(p))\n };\n\n /// Returns the value of clearing bit `p` in `x` to `0`.\n /// If `p >= 16`, the semantics is the same as for `bitclear(x, p % 16)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitclear(-1, 7) == -129;\n /// ```\n public func bitclear(x : Int16, p : Nat) : Int16 {\n x & ^(1 << Prim.intToInt16(p))\n };\n\n /// Returns the value of flipping bit `p` in `x`.\n /// If `p >= 16`, the semantics is the same as for `bitclear(x, p % 16)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitflip(255, 7) == +127;\n /// ```\n public func bitflip(x : Int16, p : Nat) : Int16 {\n x ^ (1 << Prim.intToInt16(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitcountNonZero(0xff) == +8;\n /// ```\n public let bitcountNonZero : (x : Int16) -> Int16 = Prim.popcntInt16;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitcountLeadingZero(0x80) == +8;\n /// ```\n public let bitcountLeadingZero : (x : Int16) -> Int16 = Prim.clzInt16;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitcountTrailingZero(0x0100) == +8;\n /// ```\n public let bitcountTrailingZero : (x : Int16) -> Int16 = Prim.ctzInt16;\n\n /// Returns the upper (i.e. most significant) and lower (least significant) byte of `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.explode 0x77ee == (119, 238);\n /// ```\n public let explode : (x : Int16) -> (msb : Nat8, lsb : Nat8) = Prim.explodeInt16;\n\n /// Returns the sum of `x` and `y`, `x +% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.addWrap(2 ** 14, 2 ** 14) == -32_768; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Int16, y : Int16) : Int16 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.subWrap(-2 ** 15, 1) == +32_767; // underflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Int16, y : Int16) : Int16 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.mulWrap(2 ** 8, 2 ** 8) == 0; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Int16, y : Int16) : Int16 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`.\n ///\n /// Wraps on overflow/underflow.\n /// Traps if `y < 0 or y >= 16`.\n ///\n /// Example:\n /// ```motoko include=import\n ///\n /// assert Int16.powWrap(2, 15) == -32_768; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Int16, y : Int16) : Int16 { x **% y };\n\n /// Returns an iterator over `Int16` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int16.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int16.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Int16, toExclusive : Int16) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Int16 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Int16` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int16.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int16.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Int16, to : Int16) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Int16 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Int16 values, from minValue to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int16.allValues();\n /// assert iter.next() == ?-32_768;\n /// assert iter.next() == ?-32_767;\n /// assert iter.next() == ?-32_766;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(minValue, maxValue)\n };\n\n}\n"},"pure/Queue.mo":{"content":"/// Double-ended queue of a generic element type `T`.\n///\n/// The interface is purely functional, not imperative, and queues are immutable values.\n/// In particular, Queue operations such as push and pop do not update their input queue but, instead, return the\n/// value of the modified Queue, alongside any other data.\n/// The input queue is left unchanged.\n///\n/// Examples of use-cases:\n/// Queue (FIFO) by using `pushBack()` and `popFront()`.\n/// Stack (LIFO) by using `pushFront()` and `popFront()`.\n///\n/// A Queue is internally implemented as two lists, a head access list and a (reversed) tail access list,\n/// that are dynamically size-balanced by splitting.\n///\n/// Construction: Create a new queue with the `empty()` function.\n///\n/// Note on the costs of push and pop functions:\n/// * Runtime: `O(1)` amortized costs, `O(size)` worst case cost per single call.\n/// * Space: `O(1)` amortized costs, `O(size)` worst case cost per single call.\n///\n/// `n` denotes the number of elements stored in the queue.\n///\n/// Note that some operations that traverse the elements of the queue (e.g. `forEach`, `values`) preserve the order of the elements,\n/// whereas others (e.g. `map`, `contains`) do NOT guarantee that the elements are visited in any order.\n/// The order is undefined to avoid allocations, making these operations more efficient.\n///\n/// ```motoko name=import\n/// import Queue \"mo:core/pure/Queue\";\n/// ```\n\nimport Iter \"../Iter\";\nimport List \"List\";\nimport Order \"../Order\";\nimport Types \"../Types\";\nimport Array \"../Array\";\nimport Prim \"mo:⛔\";\n\nmodule {\n /// @deprecated M0235\n type List = Types.Pure.List;\n\n /// Double-ended queue data type.\n public type Queue = Types.Pure.Queue;\n\n /// Create a new empty queue.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.empty();\n /// assert Queue.isEmpty(queue);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func empty() : Queue = (null, 0, null);\n\n /// Determine whether a queue is empty.\n /// Returns true if `queue` is empty, otherwise `false`.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.empty();\n /// assert Queue.isEmpty(queue);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func isEmpty(self : Queue) : Bool = self.1 == 0;\n\n /// Create a new queue comprising a single element.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.singleton(25);\n /// assert Queue.size(queue) == 1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func singleton(item : T) : Queue = (null, 1, ?(item, null));\n\n /// Determine the number of elements contained in a queue.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.singleton(42);\n /// assert Queue.size(queue) == 1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)` in Release profile (compiled with `--release` flag), `O(size)` otherwise.\n ///\n /// Space: `O(1)`.\n public func size(self : Queue) : Nat {\n debug assert self.1 == List.size(self.0) + List.size(self.2);\n self.1\n };\n\n /// Check if a queue contains a specific element.\n /// Returns true if the queue contains an element equal to `item` according to the `equal` function.\n ///\n /// Note: The order in which elements are visited is undefined, for performance reasons.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.contains(queue, Nat.equal, 2);\n /// assert not Queue.contains(queue, Nat.equal, 4);\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n public func contains(self : Queue, equal : (implicit : (T, T) -> Bool), item : T) : Bool = List.contains(self.0, equal, item) or List.contains(self.2, equal, item);\n\n /// Inspect the optional element on the front end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, the front element of `queue`.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushFront(Queue.pushFront(Queue.empty(), 2), 1);\n /// assert Queue.peekFront(queue) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func peekFront(self : Queue) : ?T = switch self {\n case ((?(x, _), _, _) or (_, _, ?(x, null))) ?x;\n case _ { debug assert List.isEmpty(self.2); null }\n };\n\n /// Inspect the optional element on the back end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, the back element of `queue`.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// assert Queue.peekBack(queue) == ?2;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func peekBack(self : Queue) : ?T = switch self {\n case ((_, _, ?(x, _)) or (?(x, null), _, _)) ?x;\n case _ { debug assert List.isEmpty(self.0); null }\n };\n\n // helper to rebalance the queue after getting lopsided\n func check(q : Queue) : Queue {\n switch q {\n case (null, n, r) {\n let (a, b) = List.split(r, n / 2);\n (List.reverse b, n, a)\n };\n case (f, n, null) {\n let (a, b) = List.split(f, n / 2);\n (a, n, List.reverse b)\n };\n case q q\n }\n };\n\n /// Insert a new element on the front end of a queue.\n /// Returns the new queue with `element` in the front followed by the elements of `queue`.\n ///\n /// This may involve dynamic rebalancing of the two, internally used lists.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushFront(Queue.pushFront(Queue.empty(), 2), 1);\n /// assert Queue.peekFront(queue) == ?1;\n /// assert Queue.peekBack(queue) == ?2;\n /// assert Queue.size(queue) == 2;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// Space: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// `n` denotes the number of elements stored in the queue.\n public func pushFront(self : Queue, element : T) : Queue = check(?(element, self.0), self.1 + 1, self.2);\n\n /// Insert a new element on the back end of a queue.\n /// Returns the new queue with all the elements of `queue`, followed by `element` on the back.\n ///\n /// This may involve dynamic rebalancing of the two, internally used lists.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// assert Queue.peekBack(queue) == ?2;\n /// assert Queue.size(queue) == 2;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// Space: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// `n` denotes the number of elements stored in the queue.\n public func pushBack(self : Queue, element : T) : Queue = check(self.0, self.1 + 1, ?(element, self.2));\n\n /// Remove the element on the front end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, it returns a pair of\n /// the first element and a new queue that contains all the remaining elements of `queue`.\n ///\n /// This may involve dynamic rebalancing of the two, internally used lists.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Runtime \"mo:core/Runtime\";\n ///\n /// persistent actor {\n /// let initial = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// // initial queue with elements [1, 2]\n /// switch (Queue.popFront(initial)) {\n /// case null Runtime.trap \"Empty queue impossible\";\n /// case (?(frontElement, remainingQueue)) {\n /// assert frontElement == 1;\n /// assert Queue.size(remainingQueue) == 1\n /// }\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// Space: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// `n` denotes the number of elements stored in the queue.\n public func popFront(self : Queue) : ?(T, Queue) = if (self.1 == 0) null else switch self {\n case (?(i, f), n, b) ?(i, (f, n - 1, b));\n case (null, _, ?(i, null)) ?(i, (null, 0, null));\n case _ popFront(check self)\n };\n\n /// Remove the element on the back end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, it returns a pair of\n /// a new queue that contains the remaining elements of `queue`\n /// and, as the second pair item, the removed back element.\n ///\n /// This may involve dynamic rebalancing of the two, internally used lists.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Runtime \"mo:core/Runtime\";\n ///\n /// persistent actor {\n /// let initial = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// // initial queue with elements [1, 2]\n /// let reduced = Queue.popBack(initial);\n /// switch reduced {\n /// case null Runtime.trap(\"Empty queue impossible\");\n /// case (?result) {\n /// let reducedQueue = result.0;\n /// let removedElement = result.1;\n /// assert removedElement == 2;\n /// assert Queue.size(reducedQueue) == 1;\n /// }\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// Space: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// `n` denotes the number of elements stored in the queue.\n public func popBack(self : Queue) : ?(Queue, T) = if (self.1 == 0) null else switch self {\n case (f, n, ?(i, b)) ?((f, n - 1, b), i);\n case (?(i, null), _, null) ?((null, 0, null), i);\n case _ popBack(check self)\n };\n\n /// Turn an iterator into a queue, consuming it.\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([0, 1, 2, 3, 4].values());\n /// assert Queue.size(queue) == 5;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func fromIter(iter : Iter.Iter) : Queue {\n let list = List.fromIter iter;\n check(list, List.size list, null)\n };\n\n /// Convert an iterator to a queue, consuming it.\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// transient let iter = [0, 1, 2, 3, 4].values();\n ///\n /// let queue = iter.toQueue();\n /// assert Queue.size(queue) == 5;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func toQueue(self : Iter.Iter) : Queue {\n fromIter(self)\n };\n\n /// Create a queue from an array.\n /// Elements appear in the same order as in the array.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromArray([\"A\", \"B\", \"C\"]);\n /// assert Queue.size(queue) == 3;\n /// assert Queue.peekFront(queue) == ?\"A\";\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func fromArray(array : [T]) : Queue {\n let list = List.fromArray array;\n check(list, array.size(), null)\n };\n\n /// Create an immutable array from a queue.\n /// Elements appear in the same order as in the queue (front to back).\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromArray([\"A\", \"B\", \"C\"]);\n /// let array = Queue.toArray(queue);\n /// assert array == [\"A\", \"B\", \"C\"];\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func toArray(self : Queue) : [T] {\n let iter = values(self);\n Array.tabulate(\n self.1,\n func(i) {\n switch (iter.next()) {\n case null {\n Prim.trap(\"pure/Queue.toArray: unexpected end of iterator\")\n };\n case (?value) { value }\n }\n }\n )\n };\n\n /// Convert a queue to an iterator of its elements in front-to-back order.\n ///\n /// Performance note: Creating the iterator needs `O(size)` runtime and space!\n ///\n /// Example:\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Iter.toArray(Queue.values(queue)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func values(self : Queue) : Iter.Iter = Iter.concat(List.values(self.0), List.values(List.reverse(self.2)));\n\n /// Compare two queues for equality using the provided equality function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue1 = Queue.fromIter([1, 2].values());\n /// let queue2 = Queue.fromIter([1, 2].values());\n /// let queue3 = Queue.fromIter([1, 3].values());\n /// assert Queue.equal(queue1, queue2, Nat.equal);\n /// assert not Queue.equal(queue1, queue3, Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func equal(self : Queue, other : Queue, equal : (implicit : (T, T) -> Bool)) : Bool {\n if (self.1 != other.1) {\n return false\n };\n let (iter1, iter2) = (values(self), values(other));\n loop {\n switch (iter1.next(), iter2.next()) {\n case (null, null) { return true };\n case (?v1, ?v2) {\n if (not equal(v1, v2)) { return false }\n };\n case (_, _) { return false }\n }\n }\n };\n\n /// Return true if the given predicate `f` is true for all queue\n /// elements.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let allGreaterThanOne = Queue.all(queue, func n = n > 1);\n /// assert not allGreaterThanOne; // false because 1 is not > 1\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)` as the current implementation uses `values` to iterate over the queue.\n ///\n /// *Runtime and space assumes that the `predicate` runs in `O(1)` time and space.\n public func all(self : Queue, predicate : T -> Bool) : Bool {\n for (item in values self) if (not (predicate item)) return false;\n return true\n };\n\n /// Return true if there exists a queue element for which\n /// the given predicate `f` is true.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let hasGreaterThanOne = Queue.any(queue, func n = n > 1);\n /// assert hasGreaterThanOne; // true because 2 and 3 are > 1\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)` as the current implementation uses `values` to iterate over the queue.\n ///\n /// *Runtime and space assumes that the `predicate` runs in `O(1)` time and space.\n public func any(self : Queue, predicate : T -> Bool) : Bool {\n for (item in values self) if (predicate item) return true;\n return false\n };\n\n /// Call the given function for its side effect, with each queue element in turn.\n /// The order of visiting elements is front-to-back.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// var text = \"\";\n /// let queue = Queue.fromIter([\"A\", \"B\", \"C\"].values());\n /// Queue.forEach(queue, func n = text #= n);\n /// assert text == \"ABC\";\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in `O(1)` time and space.\n public func forEach(self : Queue, f : T -> ()) = for (item in values self) f item;\n\n /// Call the given function `f` on each queue element and collect the results\n /// in a new queue.\n ///\n /// Note: The order of visiting elements is undefined with the current implementation.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([0, 1, 2].values());\n /// let textQueue = Queue.map(queue, Nat.toText);\n /// assert Iter.toArray(Queue.values(textQueue)) == [\"0\", \"1\", \"2\"];\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in `O(1)` time and space.\n public func map(self : Queue, f : T1 -> T2) : Queue {\n let (fr, n, b) = self;\n (List.map(fr, f), n, List.map(b, f))\n };\n\n /// Create a new queue with only those elements of the original queue for which\n /// the given function (often called the _predicate_) returns true.\n ///\n /// Note: The order of visiting elements is undefined with the current implementation.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([0, 1, 2, 1].values());\n /// let filtered = Queue.filter(queue, func n = n != 1);\n /// assert Queue.size(filtered) == 2;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `predicate` runs in `O(1)` time and space.\n public func filter(self : Queue, predicate : T -> Bool) : Queue {\n let (fr, _, b) = self;\n let front = List.filter(fr, predicate);\n let back = List.filter(b, predicate);\n check(front, List.size front + List.size back, back)\n };\n\n /// Call the given function on each queue element, and collect the non-null results\n /// in a new queue.\n ///\n /// Note: The order of visiting elements is undefined with the current implementation.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let doubled = Queue.filterMap(\n /// queue,\n /// func n = if (n > 1) ?(n * 2) else null\n /// );\n /// assert Queue.size(doubled) == 2;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in `O(1)` time and space.\n public func filterMap(self : Queue, f : T -> ?U) : Queue {\n let (fr, _n, b) = self;\n let front = List.filterMap(fr, f);\n let back = List.filterMap(b, f);\n check(front, List.size front + List.size back, back)\n };\n\n /// Convert a queue to its text representation using the provided conversion function.\n /// This function is meant to be used for debugging and testing purposes.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.toText(queue, Nat.toText) == \"PureQueue[1, 2, 3]\";\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n public func toText(self : Queue, f : (implicit : (toText : T -> Text))) : Text {\n var text = \"PureQueue[\";\n func add(item : T) {\n if (text.size() > 10) text #= \", \";\n text #= f(item)\n };\n List.forEach(self.0, add);\n List.forEach(List.reverse(self.2), add);\n text # \"]\"\n };\n\n /// Compare two queues using lexicographic ordering specified by argument function `compareItem`.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue1 = Queue.fromIter([1, 2].values());\n /// let queue2 = Queue.fromIter([1, 3].values());\n /// assert Queue.compare(queue1, queue2, Nat.compare) == #less;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that argument `compareItem` runs in `O(1)` time and space.\n public func compare(self : Queue, other : Queue, compareItem : (implicit : (compare : (T, T) -> Order.Order))) : Order.Order {\n let (i1, i2) = (values self, values other);\n loop switch (i1.next(), i2.next()) {\n case (?v1, ?v2) switch (compareItem(v1, v2)) {\n case (#equal) ();\n case c return c\n };\n case (null, null) return #equal;\n case (null, _) return #less;\n case (_, null) return #greater\n }\n };\n\n /// Reverse the order of elements in a queue.\n /// This operation is cheap, it does NOT require copying the elements.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let reversed = Queue.reverse(queue);\n /// assert Queue.peekFront(reversed) == ?3;\n /// assert Queue.peekBack(reversed) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n public func reverse(self : Queue) : Queue = (self.2, self.1, self.0)\n}\n"},"Region.mo":{"content":"/// Byte-level access to isolated, virtual stable memory regions.\n///\n/// This is a moderately lightweight abstraction over IC _stable memory_ and supports persisting\n/// regions of binary data across Motoko upgrades.\n/// Use of this module is fully compatible with Motoko's use of\n/// _stable variables_, whose persistence mechanism also uses (real) IC stable memory internally, but does not interfere with this API.\n/// It is also fully compatible with existing uses of the `ExperimentalStableMemory` library, which has a similar interface, but,\n/// only supported a single memory region, without isolation between different applications.\n///\n/// The `Region` type is stable and can be used in stable data structures.\n///\n/// A new, empty `Region` is allocated using function `new()`.\n///\n/// Regions are stateful objects and can be distinguished by the numeric identifier returned by function `id(region)`.\n/// Every region owns an initially empty, but growable sequence of virtual IC stable memory pages.\n/// The current size, in pages, of a region is returned by function `size(region)`.\n/// The size of a region determines the range, [ 0, ..., size(region)*2^16 ), of valid byte-offsets into the region; these offsets are used as the source and destination of `load`/`store` operations on the region.\n///\n/// Memory is allocated to a region, using function `grow(region, pages)`, sequentially and on demand, in units of 64KiB logical pages, starting with 0 allocated pages.\n/// A call to `grow` may succeed, returning the previous size of the region, or fail, returning a sentinel value. New pages are zero initialized.\n///\n/// A size of a region can only grow and never shrink.\n/// In addition, the stable memory pages allocated to a region will *not* be reclaimed by garbage collection, even\n/// if the region object itself becomes unreachable.\n///\n/// Growth is capped by a soft limit on physical page count controlled by compile-time flag\n/// `--max-stable-pages ` (the default is 65536, or 4GiB).\n///\n/// Each `load` operation loads from region relative byte address `offset` in little-endian\n/// format using the natural bit-width of the type in question.\n/// The operation traps if attempting to read beyond the current region size.\n///\n/// Each `store` operation stores to region relative byte address `offset` in little-endian format using the natural bit-width of the type in question.\n/// The operation traps if attempting to write beyond the current region size.\n///\n/// Text values can be handled by using `Text.decodeUtf8` and `Text.encodeUtf8`, in conjunction with `loadBlob` and `storeBlob`.\n///\n/// The current region allocation and region contents are preserved across upgrades.\n///\n/// NB: The IC's actual stable memory size (`ic0.stable_size`) may exceed the\n/// total page size reported by summing all regions sizes.\n/// This (and the cap on growth) are to accommodate Motoko's stable variables and bookkeeping for regions.\n/// Applications that plan to use Motoko stable variables sparingly or not at all can\n/// increase `--max-stable-pages` as desired, approaching the IC maximum (initially 8GiB, then 32Gib, currently 64Gib).\n/// All applications should reserve at least one page for stable variable data, even when no stable variables are used.\n///\n/// Usage:\n/// ```motoko no-repl name=import\n/// import Region \"mo:core/Region\";\n/// ```\n\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// A stateful handle to an isolated region of IC stable memory.\n /// `Region` is a stable type and regions can be stored in stable variables.\n /// @deprecated M0235\n public type Region = Prim.Types.Region;\n\n /// Allocate a new, isolated Region of size 0.\n ///\n /// Example:\n ///\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// assert Region.size(region) == 0;\n /// }\n /// }\n /// ```\n public let new : () -> Region = Prim.regionNew;\n\n /// Return a Nat identifying the given region.\n /// May be used for equality, comparison and hashing.\n /// NB: Regions returned by `new()` are numbered from 16\n /// (regions 0..15 are currently reserved for internal use).\n /// Allocate a new, isolated Region of size 0.\n ///\n /// Example:\n ///\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// assert Region.id(region) == 16;\n /// }\n /// }\n /// ```\n public let id : (self : Region) -> Nat = Prim.regionId;\n\n /// Current size of `region`, in pages.\n /// Each page is 64KiB (65536 bytes).\n /// Initially `0`.\n /// Preserved across upgrades, together with contents of allocated\n /// stable memory.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let beforeSize = Region.size(region);\n /// ignore Region.grow(region, 10);\n /// let afterSize = Region.size(region);\n /// assert afterSize - beforeSize == 10;\n /// }\n /// }\n /// ```\n public let size : (self : Region) -> (pages : Nat64) = Prim.regionSize;\n\n /// Grow current `size` of `region` by the given number of pages.\n /// Each page is 64KiB (65536 bytes).\n /// Returns the previous `size` when able to grow.\n /// Returns `0xFFFF_FFFF_FFFF_FFFF` if remaining pages insufficient.\n /// Every new page is zero-initialized, containing byte 0x00 at every offset.\n /// Function `grow` is capped by a soft limit on `size` controlled by compile-time flag\n /// `--max-stable-pages ` (the default is 65536, or 4GiB).\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// import Error \"mo:core/Error\";\n ///\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let beforeSize = Region.grow(region, 10);\n /// if (beforeSize == 0xFFFF_FFFF_FFFF_FFFF) {\n /// throw Error.reject(\"Out of memory\");\n /// };\n /// let afterSize = Region.size(region);\n /// assert afterSize - beforeSize == 10;\n /// }\n /// }\n /// ```\n public let grow : (self : Region, newPages : Nat64) -> (oldPages : Nat64) = Prim.regionGrow;\n\n /// Within `region`, load a `Nat8` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat8 = 123;\n /// Region.storeNat8(region, offset, value);\n /// assert Region.loadNat8(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadNat8 : (self : Region, offset : Nat64) -> Nat8 = Prim.regionLoadNat8;\n\n /// Within `region`, store a `Nat8` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat8 = 123;\n /// Region.storeNat8(region, offset, value);\n /// assert Region.loadNat8(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let storeNat8 : (self : Region, offset : Nat64, value : Nat8) -> () = Prim.regionStoreNat8;\n\n /// Within `region`, load a `Nat16` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat16 = 123;\n /// Region.storeNat16(region, offset, value);\n /// assert Region.loadNat16(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadNat16 : (self : Region, offset : Nat64) -> Nat16 = Prim.regionLoadNat16;\n\n /// Within `region`, store a `Nat16` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat16 = 123;\n /// Region.storeNat16(region, offset, value);\n /// assert Region.loadNat16(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let storeNat16 : (self : Region, offset : Nat64, value : Nat16) -> () = Prim.regionStoreNat16;\n\n /// Within `region`, load a `Nat32` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat32 = 123;\n /// Region.storeNat32(region, offset, value);\n /// assert Region.loadNat32(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadNat32 : (self : Region, offset : Nat64) -> Nat32 = Prim.regionLoadNat32;\n\n /// Within `region`, store a `Nat32` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat32 = 123;\n /// Region.storeNat32(region, offset, value);\n /// assert Region.loadNat32(region, offset) == 123;\n /// }\n /// }\n /// ```\n public func storeNat32(self : Region, offset : Nat64, value : Nat32) : () = Prim.regionStoreNat32(self, offset, value);\n\n /// Within `region`, load a `Nat64` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat64 = 123;\n /// Region.storeNat64(region, offset, value);\n /// assert Region.loadNat64(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadNat64 : (self : Region, offset : Nat64) -> Nat64 = Prim.regionLoadNat64;\n\n /// Within `region`, store a `Nat64` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat64 = 123;\n /// Region.storeNat64(region, offset, value);\n /// assert Region.loadNat64(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let storeNat64 : (self : Region, offset : Nat64, value : Nat64) -> () = Prim.regionStoreNat64;\n\n /// Within `region`, load a `Int8` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int8 = 123;\n /// Region.storeInt8(region, offset, value);\n /// assert Region.loadInt8(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadInt8 : (self : Region, offset : Nat64) -> Int8 = Prim.regionLoadInt8;\n\n /// Within `region`, store a `Int8` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int8 = 123;\n /// Region.storeInt8(region, offset, value);\n /// assert Region.loadInt8(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let storeInt8 : (self : Region, offset : Nat64, value : Int8) -> () = Prim.regionStoreInt8;\n\n /// Within `region`, load a `Int16` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int16 = 123;\n /// Region.storeInt16(region, offset, value);\n /// assert Region.loadInt16(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadInt16 : (self : Region, offset : Nat64) -> Int16 = Prim.regionLoadInt16;\n\n /// Within `region`, store a `Int16` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int16 = 123;\n /// Region.storeInt16(region, offset, value);\n /// assert Region.loadInt16(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let storeInt16 : (self : Region, offset : Nat64, value : Int16) -> () = Prim.regionStoreInt16;\n\n /// Within `region`, load a `Int32` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int32 = 123;\n /// Region.storeInt32(region, offset, value);\n /// assert Region.loadInt32(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadInt32 : (self : Region, offset : Nat64) -> Int32 = Prim.regionLoadInt32;\n\n /// Within `region`, store a `Int32` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int32 = 123;\n /// Region.storeInt32(region, offset, value);\n /// assert Region.loadInt32(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let storeInt32 : (self : Region, offset : Nat64, value : Int32) -> () = Prim.regionStoreInt32;\n\n /// Within `region`, load a `Int64` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int64 = 123;\n /// Region.storeInt64(region, offset, value);\n /// assert Region.loadInt64(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadInt64 : (self : Region, offset : Nat64) -> Int64 = Prim.regionLoadInt64;\n\n /// Within `region`, store a `Int64` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int64 = 123;\n /// Region.storeInt64(region, offset, value);\n /// assert Region.loadInt64(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let storeInt64 : (self : Region, offset : Nat64, value : Int64) -> () = Prim.regionStoreInt64;\n\n /// Within `region`, loads a `Float` value from the given `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value = 1.25;\n /// Region.storeFloat(region, offset, value);\n /// assert Region.loadFloat(region, offset) == 1.25;\n /// }\n /// }\n /// ```\n public let loadFloat : (self : Region, offset : Nat64) -> Float = Prim.regionLoadFloat;\n\n /// Within `region`, store float `value` at the given `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value = 1.25;\n /// Region.storeFloat(region, offset, value);\n /// assert Region.loadFloat(region, offset) == 1.25;\n /// }\n /// }\n /// ```\n public let storeFloat : (self : Region, offset : Nat64, value : Float) -> () = Prim.regionStoreFloat;\n\n /// Within `region,` load `size` bytes starting from `offset` as a `Blob`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// import Blob \"mo:core/Blob\";\n ///\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value = Blob.fromArray([1, 2, 3]);\n /// let size = value.size();\n /// Region.storeBlob(region, offset, value);\n /// assert Blob.toArray(Region.loadBlob(region, offset, size)) == [1, 2, 3];\n /// }\n /// }\n /// ```\n public let loadBlob : (self : Region, offset : Nat64, size : Nat) -> Blob = Prim.regionLoadBlob;\n\n /// Within `region, write `blob.size()` bytes of `blob` beginning at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// import Blob \"mo:core/Blob\";\n ///\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value = Blob.fromArray([1, 2, 3]);\n /// let size = value.size();\n /// Region.storeBlob(region, offset, value);\n /// assert Blob.toArray(Region.loadBlob(region, offset, size)) == [1, 2, 3];\n /// }\n /// }\n /// ```\n public let storeBlob : (self : Region, offset : Nat64, value : Blob) -> () = Prim.regionStoreBlob;\n\n}\n"},"Time.mo":{"content":"/// System time utilities and timers.\n///\n/// The following example illustrates using the system time:\n///\n/// ```motoko\n/// import Int = \"mo:core/Int\";\n/// import Time = \"mo:core/Time\";\n///\n/// persistent actor {\n/// var lastTime = Time.now();\n///\n/// public func greet(name : Text) : async Text {\n/// let now = Time.now();\n/// let elapsedSeconds = (now - lastTime) / 1000_000_000;\n/// lastTime := now;\n/// return \"Hello, \" # name # \"!\" #\n/// \" I was last called \" # Int.toText(elapsedSeconds) # \" seconds ago\";\n/// };\n/// };\n/// ```\n///\n/// Note: If `moc` is invoked with `-no-timer`, the importing will fail.\n/// Note: The resolution of the timers is in the order of the block rate,\n/// so durations should be chosen well above that. For frequent\n/// canister wake-ups the heartbeat mechanism should be considered.\n\nimport Types \"Types\";\nimport Nat \"Nat\";\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// System time is represent as nanoseconds since 1970-01-01.\n public type Time = Types.Time;\n\n /// Quantity of time expressed in `#days`, `#hours`, `#minutes`, `#seconds`, `#milliseconds`, or `#nanoseconds`.\n public type Duration = Types.Duration;\n\n /// Current system time given as nanoseconds since 1970-01-01. The system guarantees that:\n ///\n /// * the time, as observed by the canister smart contract, is monotonically increasing, even across canister upgrades.\n /// * within an invocation of one entry point, the time is constant.\n ///\n /// The system times of different canisters are unrelated, and calls from one canister to another may appear to travel \"backwards in time\"\n ///\n /// Note: While an implementation will likely try to keep the system time close to the real time, this is not formally guaranteed.\n public func now() : Time = Prim.nat64ToNat(Prim.time());\n\n public type TimerId = Nat;\n\n public func toNanoseconds(duration : Duration) : Nat {\n switch duration {\n case (#days n) n * 86_400_000_000_000;\n case (#hours n) n * 3_600_000_000_000;\n case (#minutes n) n * 60_000_000_000;\n case (#seconds n) n * 1_000_000_000;\n case (#milliseconds n) n * 1_000_000;\n case (#nanoseconds n) n\n }\n };\n\n}\n"},"Int64.mo":{"content":"/// Utility functions on 64-bit signed integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Int64 \"mo:core/Int64\";\n/// ```\n\nimport Int \"Int\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 64-bit signed integers.\n public type Int64 = Prim.Types.Int64;\n\n /// Minimum 64-bit integer value, `-2 ** 63`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.minValue == -9_223_372_036_854_775_808;\n /// ```\n public let minValue : Int64 = -9_223_372_036_854_775_808;\n\n /// Maximum 64-bit integer value, `+2 ** 63 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.maxValue == +9_223_372_036_854_775_807;\n /// ```\n public let maxValue : Int64 = 9_223_372_036_854_775_807;\n\n /// Converts a 64-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.toInt(123_456) == (123_456 : Int);\n /// ```\n public let toInt : (self : Int64) -> Int = Prim.int64ToInt;\n\n /// Converts a signed integer with infinite precision to a 64-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.fromInt(123_456) == (+123_456 : Int64);\n /// ```\n public let fromInt : (x : Int) -> Int64 = Prim.intToInt64;\n\n /// Converts a 32-bit signed integer to a 64-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.fromInt32(-123_456) == (-123_456 : Int64);\n /// ```\n public let fromInt32 : (x : Int32) -> Int64 = Prim.int32ToInt64;\n\n /// Converts a 16-bit signed integer to a 64-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.fromInt16(-123) == (-123 : Int64);\n /// ```\n public func fromInt16(x : Int16) : Int64 {\n Prim.int32ToInt64(Prim.int16ToInt32(x))\n };\n\n /// Converts an 8-bit signed integer to a 64-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.fromInt8(-123) == (-123 : Int64);\n /// ```\n public func fromInt8(x : Int8) : Int64 {\n Prim.int32ToInt64(Prim.int16ToInt32(Prim.int8ToInt16(x)))\n };\n\n /// Converts a 64-bit signed integer to a 32-bit signed integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.toInt32(-123_456) == (-123_456 : Int32);\n /// ```\n public func toInt32(self : Int64) : Int32 {\n Prim.int64ToInt32(self)\n };\n\n /// Converts a 64-bit signed integer to a 16-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.toInt16(-123) == (-123 : Int16);\n /// ```\n public func toInt16(self : Int64) : Int16 {\n Prim.int32ToInt16(Prim.int64ToInt32(self))\n };\n\n /// Converts a 64-bit signed integer to an 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.toInt8(-123) == (-123 : Int8);\n /// ```\n public func toInt8(self : Int64) : Int8 {\n Prim.int16ToInt8(Prim.int32ToInt16(Prim.int64ToInt32(self)))\n };\n\n /// Converts a signed integer with infinite precision to a 64-bit signed integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.fromIntWrap(-123_456) == (-123_456 : Int64);\n /// ```\n public let fromIntWrap : Int -> Int64 = Prim.intToInt64Wrap;\n\n /// Converts an unsigned 64-bit integer to a signed 64-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.fromNat64(123_456) == (+123_456 : Int64);\n /// ```\n public let fromNat64 : Nat64 -> Int64 = Prim.nat64ToInt64;\n\n /// Converts a signed 64-bit integer to an unsigned 64-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.toNat64(-1) == (18_446_744_073_709_551_615 : Nat64); // underflow\n /// ```\n public let toNat64 : (self : Int64) -> Nat64 = Prim.int64ToNat64;\n\n /// Returns the Text representation of `x`. Textual representation _do not_\n /// contain underscores to represent commas.\n ///\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.toText(-123456) == \"-123456\";\n /// ```\n public func toText(self : Int64) : Text {\n Int.toText(toInt(self))\n };\n\n /// Returns the absolute value of `x`.\n ///\n /// Traps when `x == -2 ** 63` (the minimum `Int64` value).\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.abs(-123456) == +123_456;\n /// ```\n public func abs(x : Int64) : Int64 {\n fromInt(Int.abs(toInt(x)))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.min(+2, -3) == -3;\n /// ```\n public func min(x : Int64, y : Int64) : Int64 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.max(+2, -3) == +2;\n /// ```\n public func max(x : Int64, y : Int64) : Int64 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Int64 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.equal(-1, -1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Int64 = -123;\n /// let b : Int64 = 123;\n /// assert not Int64.equal(a, b);\n /// ```\n public func equal(x : Int64, y : Int64) : Bool { x == y };\n\n /// Inequality function for Int64 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.notEqual(-1, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Int64, y : Int64) : Bool { x != y };\n\n /// \"Less than\" function for Int64 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.less(-2, 1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Int64, y : Int64) : Bool { x < y };\n\n /// \"Less than or equal\" function for Int64 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.lessOrEqual(-2, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Int64, y : Int64) : Bool { x <= y };\n\n /// \"Greater than\" function for Int64 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.greater(-2, -3);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Int64, y : Int64) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Int64 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.greaterOrEqual(-2, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Int64, y : Int64) : Bool {\n x >= y\n };\n\n /// General-purpose comparison function for `Int64`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.compare(-3, 2) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([1, -2, -3] : [Int64], Int64.compare) == [-3, -2, 1];\n /// ```\n public func compare(x : Int64, y : Int64) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the negation of `x`, `-x`.\n ///\n /// Traps on overflow, i.e. for `neg(-2 ** 63)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.neg(123) == -123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n public func neg(x : Int64) : Int64 { -x };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.add(1234, 123) == +1_357;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int64.add) == -4;\n /// ```\n public func add(x : Int64, y : Int64) : Int64 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.sub(123, 100) == +23;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int64.sub) == 4;\n /// ```\n public func sub(x : Int64, y : Int64) : Int64 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.mul(123, 10) == +1_230;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 1, Int64.mul) == 6;\n /// ```\n public func mul(x : Int64, y : Int64) : Int64 { x * y };\n\n /// Returns the signed integer division of `x` by `y`, `x / y`.\n /// Rounds the quotient towards zero, which is the same as truncating the decimal places of the quotient.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.div(123, 10) == +12;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Int64, y : Int64) : Int64 { x / y };\n\n /// Returns the remainder of the signed integer division of `x` by `y`, `x % y`,\n /// which is defined as `x - x / y * y`.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.rem(123, 10) == +3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Int64, y : Int64) : Int64 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n ///\n /// Traps on overflow/underflow and when `y < 0 or y >= 64`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.pow(2, 10) == +1_024;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Int64, y : Int64) : Int64 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitnot(-256 /* 0xffff_ffff_ffff_ff00 */) == +255 // 0xff;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Int64) : Int64 { ^x };\n\n /// Returns the bitwise \"and\" of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitand(0xffff, 0x00f0) == +240 // 0xf0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Int64, y : Int64) : Int64 { x & y };\n\n /// Returns the bitwise \"or\" of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitor(0xffff, 0x00f0) == +65_535 // 0xffff;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `|` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `|`\n /// as a function value at the moment.\n public func bitor(x : Int64, y : Int64) : Int64 { x | y };\n\n /// Returns the bitwise \"exclusive or\" of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitxor(0xffff, 0x00f0) == +65_295 // 0xff0f;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitxor(x : Int64, y : Int64) : Int64 { x ^ y };\n\n /// Returns the bitwise left shift of `x` by `y`, `x << y`.\n /// The right bits of the shift filled with zeros.\n /// Left-overflowing bits, including the sign bit, are discarded.\n ///\n /// For `y >= 64`, the semantics is the same as for `bitshiftLeft(x, y % 64)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftLeft(x, y + y % 64)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitshiftLeft(1, 8) == +256 // 0x100 equivalent to `2 ** 8`.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Int64, y : Int64) : Int64 {\n x << y\n };\n\n /// Returns the signed bitwise right shift of `x` by `y`, `x >> y`.\n /// The sign bit is retained and the left side is filled with the sign bit.\n /// Right-underflowing bits are discarded, i.e. not rotated to the left side.\n ///\n /// For `y >= 64`, the semantics is the same as for `bitshiftRight(x, y % 64)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftRight (x, y + y % 64)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitshiftRight(1024, 8) == +4 // equivalent to `1024 / (2 ** 8)`;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Int64, y : Int64) : Int64 {\n x >> y\n };\n\n /// Returns the bitwise left rotatation of `x` by `y`, `x <<> y`.\n /// Each left-overflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 64`, the semantics is the same as for `bitrotLeft(x, y % 64)`.\n ///\n /// Example:\n /// ```motoko include=import\n ///\n /// assert Int64.bitrotLeft(0x2000_0000_0000_0001, 4) == +18 // 0x12.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Int64, y : Int64) : Int64 { x <<> y };\n\n /// Returns the bitwise right rotation of `x` by `y`, `x <>> y`.\n /// Each right-underflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 64`, the semantics is the same as for `bitrotRight(x, y % 64)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitrotRight(0x0002_0000_0000_0001, 48) == +65538 // 0x1_0002.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Int64, y : Int64) : Int64 {\n x <>> y\n };\n\n /// Returns the value of bit `p` in `x`, `x & 2**p == 2**p`.\n /// If `p >= 64`, the semantics is the same as for `bittest(x, p % 64)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bittest(128, 7);\n /// ```\n public func bittest(x : Int64, p : Nat) : Bool {\n Prim.btstInt64(x, Prim.intToInt64(p))\n };\n\n /// Returns the value of setting bit `p` in `x` to `1`.\n /// If `p >= 64`, the semantics is the same as for `bitset(x, p % 64)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitset(0, 7) == +128;\n /// ```\n public func bitset(x : Int64, p : Nat) : Int64 {\n x | (1 << Prim.intToInt64(p))\n };\n\n /// Returns the value of clearing bit `p` in `x` to `0`.\n /// If `p >= 64`, the semantics is the same as for `bitclear(x, p % 64)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitclear(-1, 7) == -129;\n /// ```\n public func bitclear(x : Int64, p : Nat) : Int64 {\n x & ^(1 << Prim.intToInt64(p))\n };\n\n /// Returns the value of flipping bit `p` in `x`.\n /// If `p >= 64`, the semantics is the same as for `bitclear(x, p % 64)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitflip(255, 7) == +127;\n /// ```\n public func bitflip(x : Int64, p : Nat) : Int64 {\n x ^ (1 << Prim.intToInt64(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitcountNonZero(0xffff) == +16;\n /// ```\n public let bitcountNonZero : (x : Int64) -> Int64 = Prim.popcntInt64;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitcountLeadingZero(0x8000_0000) == +32;\n /// ```\n public let bitcountLeadingZero : (x : Int64) -> Int64 = Prim.clzInt64;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitcountTrailingZero(0x0201_0000) == +16;\n /// ```\n public let bitcountTrailingZero : (x : Int64) -> Int64 = Prim.ctzInt64;\n\n /// Returns the upper (i.e. most significant), lower (least significant)\n /// and in-between bytes of `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.explode 0x33772266aa885511 == (51, 119, 34, 102, 170, 136, 85, 17);\n /// ```\n public let explode : (x : Int64) -> (msb : Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, lsb : Nat8) = Prim.explodeInt64;\n\n /// Returns the sum of `x` and `y`, `x +% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.addWrap(2 ** 62, 2 ** 62) == -9_223_372_036_854_775_808; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Int64, y : Int64) : Int64 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.subWrap(-2 ** 63, 1) == +9_223_372_036_854_775_807; // underflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Int64, y : Int64) : Int64 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.mulWrap(2 ** 32, 2 ** 32) == 0; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Int64, y : Int64) : Int64 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`.\n ///\n /// Wraps on overflow/underflow.\n /// Traps if `y < 0 or y >= 64`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.powWrap(2, 63) == -9_223_372_036_854_775_808; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Int64, y : Int64) : Int64 { x **% y };\n\n /// Returns an iterator over `Int64` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int64.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int64.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Int64, toExclusive : Int64) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Int64 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Int64` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int64.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int64.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Int64, to : Int64) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Int64 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Int64 values, from minValue to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int64.allValues();\n /// assert iter.next() == ?-9_223_372_036_854_775_808;\n /// assert iter.next() == ?-9_223_372_036_854_775_807;\n /// assert iter.next() == ?-9_223_372_036_854_775_806;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(minValue, maxValue)\n };\n\n}\n"},"Blob.mo":{"content":"/// Module for working with Blobs (immutable sequences of bytes).\n///\n/// Blobs represent sequences of bytes. They are immutable, iterable, but not indexable and can be empty.\n///\n/// Byte sequences are also often represented as `[Nat8]`, i.e. an array of bytes, but this representation is currently much less compact than `Blob`, taking 4 physical bytes to represent each logical byte in the sequence.\n/// If you would like to manipulate Blobs, it is recommended that you convert\n/// Blobs to `[var Nat8]` or `Buffer`, do the manipulation, then convert back.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Blob \"mo:core/Blob\";\n/// ```\n///\n/// Some built in features not listed in this module:\n///\n/// * You can create a `Blob` literal from a `Text` literal, provided the context expects an expression of type `Blob`.\n/// * `b.size() : Nat` returns the number of bytes in the blob `b`;\n/// * `b.values() : Iter.Iter` returns an iterator to enumerate the bytes of the blob `b`.\n///\n/// For example:\n/// ```motoko include=import\n/// import Debug \"mo:core/Debug\";\n/// import Nat8 \"mo:core/Nat8\";\n///\n/// let blob = \"\\00\\00\\00\\ff\" : Blob; // blob literals, where each byte is delimited by a back-slash and represented in hex\n/// let blob2 = \"charsもあり\" : Blob; // you can also use characters in the literals\n/// let numBytes = blob.size();\n/// assert numBytes == 4; // returns the number of bytes in the Blob\n/// for (byte in blob.values()) { // iterator over the Blob\n/// Debug.print(Nat8.toText(byte))\n/// }\n/// ```\n\nimport Types \"Types\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n public type Blob = Prim.Types.Blob;\n\n /// Returns an empty `Blob` (equivalent to `\"\"`).\n ///\n /// Example:\n /// ```motoko include=import\n /// let emptyBlob = Blob.empty();\n /// assert emptyBlob.size() == 0;\n /// ```\n public func empty() : Blob = \"\";\n\n /// Returns whether the given `Blob` is empty (has a size of zero).\n ///\n /// ```motoko include=import\n /// let blob1 = \"\" : Blob;\n /// let blob2 = \"\\FF\\00\" : Blob;\n /// assert Blob.isEmpty(blob1);\n /// assert not Blob.isEmpty(blob2);\n /// ```\n public func isEmpty(self : Blob) : Bool = self == \"\";\n\n /// Returns the number of bytes in the given `Blob`.\n /// This is equivalent to `blob.size()`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob = \"\\FF\\00\\AA\" : Blob;\n /// assert Blob.size(blob) == 3;\n /// assert blob.size() == 3;\n /// ```\n public func size(self : Blob) : Nat = self.size();\n\n /// Creates a `Blob` from an array of bytes (`[Nat8]`), by copying each element.\n ///\n /// Example:\n /// ```motoko include=import\n /// let bytes : [Nat8] = [0, 255, 0];\n /// let blob = Blob.fromArray(bytes);\n /// assert blob == \"\\00\\FF\\00\";\n /// ```\n public let fromArray : (bytes : [Nat8]) -> Blob = Prim.arrayToBlob;\n\n /// Creates a `Blob` from a mutable array of bytes (`[var Nat8]`), by copying each element.\n ///\n /// Example:\n /// ```motoko include=import\n /// let bytes : [var Nat8] = [var 0, 255, 0];\n /// let blob = Blob.fromVarArray(bytes);\n /// assert blob == \"\\00\\FF\\00\";\n /// ```\n public let fromVarArray : (bytes : [var Nat8]) -> Blob = Prim.arrayMutToBlob;\n\n /// Converts a `Blob` to an array of bytes (`[Nat8]`), by copying each element.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob = \"\\00\\FF\\00\" : Blob;\n /// let bytes = Blob.toArray(blob);\n /// assert bytes == [0, 255, 0];\n /// ```\n public let toArray : (self : Blob) -> [Nat8] = Prim.blobToArray;\n\n /// Converts a `Blob` to a mutable array of bytes (`[var Nat8]`), by copying each element.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat8 \"mo:core/Nat8\";\n /// import VarArray \"mo:core/VarArray\";\n ///\n /// let blob = \"\\00\\FF\\00\" : Blob;\n /// let bytes = Blob.toVarArray(blob);\n /// assert VarArray.equal(bytes, [var 0, 255, 0], Nat8.equal);\n /// ```\n public let toVarArray : (self : Blob) -> [var Nat8] = Prim.blobToArrayMut;\n\n /// Returns the (non-cryptographic) hash of `blob`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob = \"\\00\\FF\\00\" : Blob;\n /// let h = Blob.hash(blob);\n /// assert h == 1_818_567_776;\n /// ```\n public let hash : (self : Blob) -> Types.Hash = Prim.hashBlob;\n\n /// General purpose comparison function for `Blob` by comparing the value of\n /// the bytes. Returns the `Order` (either `#less`, `#equal`, or `#greater`)\n /// by comparing `blob1` with `blob2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob1 = \"\\00\\00\\00\" : Blob;\n /// let blob2 = \"\\00\\FF\\00\" : Blob;\n /// let result = Blob.compare(blob1, blob2);\n /// assert result == #less;\n /// ```\n public func compare(self : Blob, other : Blob) : Order.Order {\n let c = Prim.blobCompare(self, other);\n if (c < 0) #less else if (c == 0) #equal else #greater\n };\n\n /// Equality function for `Blob` types.\n /// This is equivalent to `blob1 == blob2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob1 = \"\\00\\FF\\00\" : Blob;\n /// let blob2 = \"\\00\\FF\\00\" : Blob;\n /// assert Blob.equal(blob1, blob2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import List \"mo:core/List\";\n ///\n /// let list1 = List.singleton(\"\\00\\FF\\00\");\n /// let list2 = List.singleton(\"\\00\\FF\\00\");\n /// assert List.equal(list1, list2, Blob.equal);\n /// ```\n public func equal(self : Blob, other : Blob) : Bool { self == other };\n\n /// Inequality function for `Blob` types.\n /// This is equivalent to `blob1 != blob2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob1 = \"\\00\\AA\\AA\" : Blob;\n /// let blob2 = \"\\00\\FF\\00\" : Blob;\n /// assert Blob.notEqual(blob1, blob2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func notEqual(self : Blob, other : Blob) : Bool { self != other };\n\n /// \"Less than\" function for `Blob` types.\n /// This is equivalent to `blob1 < blob2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob1 = \"\\00\\AA\\AA\" : Blob;\n /// let blob2 = \"\\00\\FF\\00\" : Blob;\n /// assert Blob.less(blob1, blob2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func less(self : Blob, other : Blob) : Bool { self < other };\n\n /// \"Less than or equal to\" function for `Blob` types.\n /// This is equivalent to `blob1 <= blob2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob1 = \"\\00\\AA\\AA\" : Blob;\n /// let blob2 = \"\\00\\FF\\00\" : Blob;\n /// assert Blob.lessOrEqual(blob1, blob2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func lessOrEqual(self : Blob, other : Blob) : Bool { self <= other };\n\n /// \"Greater than\" function for `Blob` types.\n /// This is equivalent to `blob1 > blob2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob1 = \"\\BB\\AA\\AA\" : Blob;\n /// let blob2 = \"\\00\\00\\00\" : Blob;\n /// assert Blob.greater(blob1, blob2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func greater(self : Blob, other : Blob) : Bool { self > other };\n\n /// \"Greater than or equal to\" function for `Blob` types.\n /// This is equivalent to `blob1 >= blob2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob1 = \"\\BB\\AA\\AA\" : Blob;\n /// let blob2 = \"\\00\\00\\00\" : Blob;\n /// assert Blob.greaterOrEqual(blob1, blob2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func greaterOrEqual(self : Blob, other : Blob) : Bool {\n self >= other\n };\n\n}\n"},"pure/Set.mo":{"content":"/// Pure (immutable) sets based on order/comparison of elements.\n/// A set is a collection of elements without duplicates.\n/// The set data structure type is stable and can be used for orthogonal persistence.\n///\n/// Example:\n/// ```motoko\n/// import Set \"mo:core/pure/Set\";\n/// import Nat \"mo:core/Nat\";\n///\n/// persistent actor {\n/// let set = Set.fromIter([3, 1, 2, 3].values(), Nat.compare);\n/// assert Set.size(set) == 3;\n/// assert not Set.contains(set, Nat.compare, 4);\n/// let diff = Set.difference(set, set, Nat.compare);\n/// assert Set.isEmpty(diff);\n/// }\n/// ```\n///\n/// These sets are implemented as red-black trees, a balanced binary search tree of ordered elements.\n///\n/// The tree data structure internally colors each of its nodes either red or black,\n/// and uses this information to balance the tree during modifying operations.\n///\n/// Performance:\n/// * Runtime: `O(log(n))` worst case cost per insertion, removal, and retrieval operation.\n/// * Space: `O(n)` for storing the entire tree.\n/// `n` denotes the number of elements (i.e. nodes) stored in the tree.\n///\n/// Credits:\n///\n/// The core of this implementation is derived from:\n///\n/// * Ken Friis Larsen's [RedBlackMap.sml](https://github.com/kfl/mosml/blob/master/src/mosmllib/Redblackmap.sml), which itself is based on:\n/// * Stefan Kahrs, \"Red-black trees with types\", Journal of Functional Programming, 11(4): 425-432 (2001), [version 1 in web appendix](http://www.cs.ukc.ac.uk/people/staff/smk/redblack/rb.html).\n\nimport Runtime \"../Runtime\";\nimport List \"../List\"; // NB: imperative!\nimport Iter \"../Iter\";\nimport Types \"../Types\";\nimport Nat \"../Nat\";\nimport Order \"../Order\";\n\nmodule {\n\n /// Ordered collection of unique elements of the generic type `T`.\n /// If type `T` is stable then `Set` is also stable.\n /// To ensure that property the `Set` does not have any methods,\n /// instead they are gathered in the functor-like class `Operations` (see example there).\n\n /// @deprecated M0235\n public type Set = Types.Pure.Set;\n\n /// Red-black tree of nodes with ordered set elements.\n /// Leaves are considered implicitly black.\n type Tree = Types.Pure.Set.Tree;\n\n /// Create a set with the elements obtained from an iterator.\n /// Potential duplicate elements in the iterator are ignored, i.e.\n /// multiple occurrences of an equal element only occur once in the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([3, 1, 2, 1].values(), Nat.compare);\n /// assert Iter.toArray(Set.values(set)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements returned by the iterator and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n public func fromIter(iter : Iter.Iter, compare : (implicit : (T, T) -> Order.Order)) : Set {\n var set = empty() : Set;\n for (val in iter) {\n set := Internal.add(set, compare, val)\n };\n set\n };\n\n /// Convert an iterator into a set.\n /// Potential duplicate elements in the iterator are ignored, i.e.\n /// multiple occurrences of an equal element only occur once in the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// transient let iter = [3, 1, 2, 1].values();\n ///\n /// let set = iter.toSet(Nat.compare);\n ///\n /// assert Iter.toArray(Set.values(set)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements returned by the iterator and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n public func toSet(self : Iter.Iter, compare : (implicit : (T, T) -> Order.Order)) : Set {\n fromIter(self, compare)\n };\n\n /// Given a `set` ordered by `compare`, insert the new `element`,\n /// returning the new set.\n ///\n /// Return the set unchanged if the element already exists in the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set0 = Set.empty();\n /// let set1 = Set.add(set0, Nat.compare, 2);\n /// let set2 = Set.add(set1, Nat.compare, 1);\n /// let set3 = Set.add(set2, Nat.compare, 2);\n /// assert Iter.toArray(Set.values(set0)) == [];\n /// assert Iter.toArray(Set.values(set1)) == [2];\n /// assert Iter.toArray(Set.values(set2)) == [1, 2];\n /// assert Iter.toArray(Set.values(set3)) == [1, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned set shares with the `set` most of the tree nodes.\n /// Garbage collecting one of the sets (e.g. after an assignment `m := Set.add(m, c, e)`)\n /// causes collecting `O(log(n))` nodes.\n public func add(self : Set, compare : (implicit : (T, T) -> Order.Order), elem : T) : Set = Internal.add(self, compare, elem);\n\n /// Given `set` ordered by `compare`, insert the new `element`,\n /// returning the set extended with `element` and a Boolean indicating\n /// if the element was already present in `set`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set0 = Set.empty();\n /// do {\n /// let (set1, new1) = Set.insert(set0, Nat.compare, 2);\n /// assert new1;\n /// let (set2, new2) = Set.insert(set1, Nat.compare, 1);\n /// assert new2;\n /// let (set3, new3) = Set.insert(set2, Nat.compare, 2);\n /// assert not new3;\n /// assert Iter.toArray(Set.values(set3)) == [1, 2]\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned set shares with the `set` most of the tree nodes.\n /// Garbage collecting one of the sets (e.g. after an assignment `m := Set.add(m, c, e)`)\n /// causes collecting `O(log(n))` nodes.\n public func insert(self : Set, compare : (implicit : (T, T) -> Order.Order), elem : T) : (Set, Bool) = Internal.insert(self, compare, elem);\n\n /// Given `set` ordered by `compare` return the set with `element` removed.\n /// Return the set unchanged if the element was absent.\n ///\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([1, 2, 3].values(), Nat.compare);\n ///\n /// let set1 = Set.remove(set, Nat.compare, 2);\n /// let set2 = Set.remove(set1, Nat.compare, 4);\n /// assert Iter.toArray(Set.values(set2)) == [1, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` including garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` objects that will be collected as garbage.\n /// Note: The returned set shares with `set` most of the tree nodes.\n /// Garbage collecting one of the sets (e.g. after an assignment `m := Set.delete(m, c, e)`)\n /// causes collecting `O(log(n))` nodes.\n public func remove(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) : Set = Internal.remove(self, compare, element);\n\n /// Given `set` ordered by `compare`, delete `element` from the set, returning\n /// either the set without the element and a Boolean indicating whether\n /// whether `element` was contained in `set`.\n ///\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// do {\n /// let (set1, contained1) = Set.delete(set, Nat.compare, 2);\n /// assert contained1;\n /// assert Iter.toArray(Set.values(set1)) == [1, 3];\n /// let (set2, contained2) = Set.delete(set1, Nat.compare, 4);\n /// assert not contained2;\n /// assert Iter.toArray(Set.values(set2)) == [1, 3];\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` including garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` objects that will be collected as garbage.\n /// Note: The returned set shares with `set` most of the tree nodes.\n /// Garbage collecting one of the sets (e.g. after an assignment `m := Set.delete(m, c, e)`)\n /// causes collecting `O(log(n))` nodes.\n public func delete(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) : (Set, Bool) = Internal.delete(self, compare, element);\n\n /// Tests whether the set contains the provided element.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Bool \"mo:core/Bool\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([3, 1, 2].values(), Nat.compare);\n ///\n /// assert Set.contains(set, Nat.compare, 1);\n /// assert not Set.contains(set, Nat.compare, 4);\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func contains(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) : Bool = Internal.contains(self.root, compare, element);\n\n /// Get the maximal element of the set `set` if it is not empty, otherwise returns `null`\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([0, 2, 1].values(), Nat.compare);\n /// let set2 = Set.empty();\n /// assert Set.max(set1) == ?2;\n /// assert Set.max(set2) == null;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of elements in the set\n public func max(self : Set) : ?T = Internal.max(self.root);\n\n /// Retrieves the minimum element from the set.\n /// If the set is empty, returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([2, 0, 1].values(), Nat.compare);\n /// let set2 = Set.empty();\n /// assert Set.min(set1) == ?0;\n /// assert Set.min(set2) == null;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of elements stored in the set.\n public func min(self : Set) : ?T = Internal.min(self.root);\n\n /// Returns a new set that is the union of `set1` and `set2`,\n /// i.e. a new set that all the elements that exist in at least on of the two sets.\n /// Potential duplicates are ignored, i.e. if the same element occurs in both `set1`\n /// and `set2`, it only occurs once in the returned set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let union = Set.union(set1, set2, Nat.compare);\n /// assert Iter.toArray(Set.values(union)) == [1, 2, 3, 4, 5];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(m)`, retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements in the sets, and `m <= n`.\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(m * log(n))` temporary objects that will be collected as garbage.\n public func union(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Set {\n if (size(self) < size(other)) {\n foldLeft(self, other, func(acc : Set, elem : T) : Set { Internal.add(acc, compare, elem) })\n } else {\n foldLeft(other, self, func(acc : Set, elem : T) : Set { Internal.add(acc, compare, elem) })\n }\n };\n\n /// Returns a new set that is the intersection of `set1` and `set2`,\n /// i.e. a new set that contains all the elements that exist in both sets.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([0, 1, 2].values(), Nat.compare);\n /// let set2 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let intersection = Set.intersection(set1, set2, Nat.compare);\n /// assert Iter.toArray(Set.values(intersection)) == [1, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets `set1` and `set2`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(m)` temporary objects that will be collected as garbage.\n public func intersection(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Set {\n let elems = List.empty();\n if (self.size < other.size) {\n Internal.iterate(\n self.root,\n func(x : T) {\n if (Internal.contains(other.root, compare, x)) {\n List.add(elems, x)\n }\n }\n )\n } else {\n Internal.iterate(\n other.root,\n func(x : T) {\n if (Internal.contains(self.root, compare, x)) {\n List.add(elems, x)\n }\n }\n )\n };\n { root = Internal.buildFromSorted(elems); size = List.size(elems) }\n };\n\n /// Returns a new set that is the difference between `set1` and `other` (`set1` minus `set2`),\n /// i.e. a new set that contains all the elements of `set1` that do not exist in `set2`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let difference = Set.difference(set1, set2, Nat.compare);\n /// assert Iter.toArray(Set.values(difference)) == [1, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets `set1` and `set2`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(m * log(n))` temporary objects that will be collected as garbage.\n public func difference(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Set {\n if (size(self) < size(other)) {\n let elems = List.empty(); /* imperative! */\n Internal.iterate(\n self.root,\n func(x : T) {\n if (not Internal.contains(other.root, compare, x)) {\n List.add(elems, x)\n }\n }\n );\n { root = Internal.buildFromSorted(elems); size = List.size(elems) }\n } else {\n foldLeft(\n other,\n self,\n func(acc : Set, elem : T) : Set {\n if (Internal.contains(acc.root, compare, elem)) {\n Internal.remove(acc, compare, elem)\n } else { acc }\n }\n )\n }\n };\n\n /// Project all elements of the set in a new set.\n /// Apply a mapping function to each element in the set and\n /// collect the mapped elements in a new mutable set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([3, 1, 2].values(), Nat.compare);\n ///\n /// let textNumbers =\n /// Set.map(numbers, Text.compare, Nat.toText);\n /// assert Iter.toArray(Set.values(textNumbers)) == [\"1\", \"2\", \"3\"];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n public func map(self : Set, compare : (implicit : (T2, T2) -> Order.Order), project : T1 -> T2) : Set = Internal.foldLeft(self.root, empty(), func(acc : Set, elem : T1) : Set { Internal.add(acc, compare, project(elem)) });\n\n /// Apply an operation on each element contained in the set.\n /// The operation is applied in ascending order of the elements.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// var text = \"\";\n /// Set.forEach(numbers, func (element) {\n /// text #= \" \" # Nat.toText(element)\n /// });\n /// assert text == \" 0 1 2 3\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory.\n /// where `n` denotes the number of elements stored in the set.\n ///\n public func forEach(self : Set, operation : T -> ()) {\n ignore foldLeft(self, null, func(acc, e) : Null { operation(e); null })\n };\n\n /// Filter elements in a new set.\n /// Create a copy of the mutable set that only contains the elements\n /// that fulfil the criterion function.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// let evenNumbers = Set.filter(numbers, Nat.compare, func (number) {\n /// number % 2 == 0\n /// });\n /// assert Iter.toArray(Set.values(evenNumbers)) == [0, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func filter(self : Set, compare : (implicit : (T, T) -> Order.Order), criterion : T -> Bool) : Set {\n foldLeft>(\n self,\n empty(),\n func(acc, e) {\n if (criterion(e)) (add(acc, compare, e)) else acc\n }\n )\n };\n\n /// Filter all elements in the set by also applying a projection to the elements.\n /// Apply a mapping function `project` to all elements in the set and collect all\n /// elements, for which the function returns a non-null new element. Collect all\n /// non-discarded new elements in a new mutable set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([3, 0, 2, 1].values(), Nat.compare);\n ///\n /// let evenTextNumbers = Set.filterMap(numbers, Text.compare, func (number) {\n /// if (number % 2 == 0) {\n /// ?Nat.toText(number)\n /// } else {\n /// null // discard odd numbers\n /// }\n /// });\n /// assert Iter.toArray(Set.values(evenTextNumbers)) == [\"0\", \"2\"];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n public func filterMap(self : Set, compare : (implicit : (T2, T2) -> Order.Order), project : T1 -> ?T2) : Set {\n func combine(acc : Set, elem : T1) : Set {\n switch (project(elem)) {\n case null { acc };\n case (?elem2) {\n Internal.add(acc, compare, elem2)\n }\n }\n };\n Internal.foldLeft(self.root, empty(), combine)\n };\n\n /// Test whether `set1` is a sub-set of `set2`, i.e. each element in `set1` is\n /// also contained in `set2`. Returns `true` if both sets are equal.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2].values(), Nat.compare);\n /// let set2 = Set.fromIter([2, 1, 0].values(), Nat.compare);\n /// let set3 = Set.fromIter([3, 4].values(), Nat.compare);\n /// assert Set.isSubset(set1, set2, Nat.compare);\n /// assert not Set.isSubset(set1, set3, Nat.compare);\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets set1 and set2, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func isSubset(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Bool {\n if (self.size > other.size) { return false };\n isSubsetHelper(self.root, other.root, compare)\n };\n\n /// Test whether two sets are equal.\n /// Both sets have to be constructed by the same comparison function.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2].values(), Nat.compare);\n /// let set2 = Set.fromIter([2, 1].values(), Nat.compare);\n /// let set3 = Set.fromIter([2, 1, 0].values(), Nat.compare);\n /// assert Set.equal(set1, set2, Nat.compare);\n /// assert not Set.equal(set1, set3, Nat.compare);\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets set1 and set2, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func equal(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Bool {\n if (self.size != other.size) { return false };\n isSubsetHelper(self.root, other.root, compare)\n };\n\n func isSubsetHelper(t1 : Tree, t2 : Tree, compare : (T, T) -> Order.Order) : Bool {\n switch (t1, t2) {\n case (#leaf, _) { true };\n case (_, #leaf) { false };\n case ((#red(t1l, x1, t1r) or #black(t1l, x1, t1r)), (#red(t2l, x2, t2r)) or #black(t2l, x2, t2r)) {\n switch (compare(x1, x2)) {\n case (#equal) {\n isSubsetHelper(t1l, t2l, compare) and isSubsetHelper(t1r, t2r, compare)\n };\n // x1 < x2 ==> x1 \\in t2l /\\ t1l \\subset t2l\n case (#less) {\n Internal.contains(t2l, compare, x1) and isSubsetHelper(t1l, t2l, compare) and isSubsetHelper(t1r, t2, compare)\n };\n // x2 < x1 ==> x1 \\in t2r /\\ t1r \\subset t2r\n case (#greater) {\n Internal.contains(t2r, compare, x1) and isSubsetHelper(t1l, t2, compare) and isSubsetHelper(t1r, t2r, compare)\n }\n }\n }\n }\n };\n\n /// Compare two sets by comparing the elements.\n /// Both sets must have been created by the same comparison function.\n /// The two sets are iterated by the ascending order of their creation and\n /// order is determined by the following rules:\n /// Less:\n /// `set1` is less than `set2` if:\n /// * the pairwise iteration hits an element pair `element1` and `element2` where\n /// `element1` is less than `element2` and all preceding elements are equal, or,\n /// * `set1` is a strict prefix of `set2`, i.e. `set2` has more elements than `set1`\n /// and all elements of `set1` occur at the beginning of iteration `set2`.\n /// Equal:\n /// `set1` and `set2` have same series of equal elements by pairwise iteration.\n /// Greater:\n /// `set1` is neither less nor equal `set2`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([0, 1].values(), Nat.compare);\n /// let set2 = Set.fromIter([0, 2].values(), Nat.compare);\n ///\n /// assert Set.compare(set1, set2, Nat.compare) == #less;\n /// assert Set.compare(set1, set1, Nat.compare) == #equal;\n /// assert Set.compare(set2, set1, Nat.compare) == #greater;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that `compare` has runtime and space costs of `O(1)`.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func compare(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Order.Order {\n // TODO: optimize using recursion on self?\n let iterator1 = values(self);\n let iterator2 = values(other);\n loop {\n switch (iterator1.next(), iterator2.next()) {\n case (null, null) return #equal;\n case (null, _) return #less;\n case (_, null) return #greater;\n case (?element1, ?element2) {\n let comparison = compare(element1, element2);\n if (comparison != #equal) {\n return comparison\n }\n }\n }\n }\n };\n\n /// Returns an iterator over the elements in the set,\n /// traversing the elements in the ascending order.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 2, 3, 1].values(), Nat.compare);\n ///\n /// var text = \"\";\n /// for (number in Set.values(set)) {\n /// text #= \" \" # Nat.toText(number);\n /// };\n /// assert text == \" 0 1 2 3\";\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func values(self : Set) : Iter.Iter = Internal.iter(self.root, #fwd);\n\n /// Returns an iterator over the elements in the set,\n /// traversing the elements in the descending order.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 2, 3, 1].values(), Nat.compare);\n ///\n /// var tmp = \"\";\n /// for (number in Set.reverseValues(set)) {\n /// tmp #= \" \" # Nat.toText(number);\n /// };\n /// assert tmp == \" 3 2 1 0\";\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func reverseValues(self : Set) : Iter.Iter = Internal.iter(self.root, #bwd);\n\n /// Create a new empty set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// assert Iter.toArray(Set.values(set)) == [];\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func empty() : Set = { root = #leaf; size = 0 };\n\n /// Create a new set with a single element.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.singleton(0);\n /// assert Iter.toArray(Set.values(set)) == [0];\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func singleton(element : T) : Set {\n {\n size = 1;\n root = #red(#leaf, element, #leaf)\n }\n };\n\n /// Return the number of elements in a set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 2, 1, 3].values(), Nat.compare);\n ///\n /// assert Set.size(set) == 4;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func size(self : Set) : Nat = self.size;\n\n /// Iterate all elements in ascending order,\n /// and accumulate the elements by applying the combine function, starting from a base value.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 2, 1].values(), Nat.compare);\n ///\n /// let text = Set.foldLeft(\n /// set,\n /// \"\",\n /// func (accumulator, element) {\n /// accumulator # \" \" # Nat.toText(element)\n /// }\n /// );\n /// assert text == \" 0 1 2 3\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n public func foldLeft(\n self : Set,\n base : A,\n combine : (A, T) -> A\n ) : A = Internal.foldLeft(self.root, base, combine);\n\n /// Iterate all elements in descending order,\n /// and accumulate the elements by applying the combine function, starting from a base value.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 2, 1].values(), Nat.compare);\n ///\n /// let text = Set.foldRight(\n /// set,\n /// \"\",\n /// func (element, accumulator) {\n /// accumulator # \" \" # Nat.toText(element)\n /// }\n /// );\n /// assert text == \" 3 2 1 0\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n public func foldRight(\n self : Set,\n base : A,\n combine : (T, A) -> A\n ) : A = Internal.foldRight(self.root, base, combine);\n\n /// Determines whether a set is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.empty();\n /// let set2 = Set.singleton(1);\n ///\n /// assert Set.isEmpty(set1);\n /// assert not Set.isEmpty(set2);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func isEmpty(self : Set) : Bool {\n switch (self.root) {\n case (#leaf) { true };\n case _ { false }\n }\n };\n\n /// Check whether all element in the set satisfy a predicate, i.e.\n /// the `predicate` function returns `true` for all elements in the set.\n /// Returns `true` for an empty set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// let belowTen = Set.all(set, func (number) {\n /// number < 10\n /// });\n /// assert belowTen;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of elements stored in the set.\n public func all(self : Set, predicate : T -> Bool) : Bool = Internal.all(self.root, predicate);\n\n /// Check whether at least one element in the set satisfies a predicate, i.e.\n /// the `predicate` function returns `true` for at least one element in the set.\n /// Returns `false` for an empty set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// let aboveTen = Set.any(set, func (number) {\n /// number > 10\n /// });\n /// assert not aboveTen;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n public func any(self : Set, pred : T -> Bool) : Bool = Internal.any(self.root, pred);\n\n /// Test helper that check internal invariant for the given set `s`.\n /// Raise an error (for a stack trace) if invariants are violated.\n public func assertValid(self : Set, compare : (implicit : (T, T) -> Order.Order)) : () {\n Internal.assertValid(self, compare)\n };\n\n /// Generate a textual representation of all the elements in the set.\n /// Primarily to be used for testing and debugging.\n /// The elements are formatted according to `elementFormat`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// assert Set.toText(set, Nat.toText) == \"PureSet{0, 1, 2, 3}\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that `elementFormat` has runtime and space costs of `O(1)`.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func toText(self : Set, elementFormat : (implicit : (toText : T -> Text))) : Text {\n var text = \"PureSet{\";\n var sep = \"\";\n for (element in values(self)) {\n text #= sep # elementFormat(element);\n sep := \", \"\n };\n text # \"}\"\n };\n\n /// Construct the union of a set of element sets, i.e. all elements of\n /// each element set are included in the result set.\n /// Any duplicates are ignored, i.e. if the same element occurs in multiple element sets,\n /// it only occurs once in the result set.\n ///\n /// Assumes all sets are ordered by `compare`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Order \"mo:core/Order\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// func setCompare(first: Set.Set, second: Set.Set) : Order.Order {\n /// Set.compare(first, second, Nat.compare)\n /// };\n ///\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let set3 = Set.fromIter([5, 6, 7].values(), Nat.compare);\n /// let setOfSets = Set.fromIter([set1, set2, set3].values(), setCompare);\n /// let flatSet = Set.flatten(setOfSets, Nat.compare);\n /// assert Iter.toArray(Set.values(flatSet)) == [1, 2, 3, 4, 5, 6, 7];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of elements stored in all the sub-sets,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func flatten(self : Set>, compare : (implicit : (T, T) -> Order.Order)) : Set {\n var result = empty();\n for (set in values(self)) {\n result := union(result, set, compare)\n };\n result\n };\n\n /// Construct the union of a series of sets, i.e. all elements of\n /// each set are included in the result set.\n /// Any duplicates are ignored, i.e. if an element occurs\n /// in several of the iterated sets, it only occurs once in the result set.\n ///\n /// Assumes all sets are ordered by `compare`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let set3 = Set.fromIter([5, 6, 7].values(), Nat.compare);\n /// let combined = Set.join([set1, set2, set3].values(), Nat.compare);\n /// assert Iter.toArray(Set.values(combined)) == [1, 2, 3, 4, 5, 6, 7];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of elements stored in the iterated sets,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func join(self : Iter.Iter>, compare : (implicit : (T, T) -> Order.Order)) : Set {\n var result = empty();\n for (set in self) {\n result := union(result, set, compare)\n };\n result\n };\n\n module Internal {\n public func contains(tree : Tree, compare : (T, T) -> Order.Order, elem : T) : Bool {\n func f(t : Tree, x : T) : Bool {\n switch t {\n case (#black(l, x1, r)) {\n switch (compare(x, x1)) {\n case (#less) { f(l, x) };\n case (#equal) { true };\n case (#greater) { f(r, x) }\n }\n };\n case (#red(l, x1, r)) {\n switch (compare(x, x1)) {\n case (#less) { f(l, x) };\n case (#equal) { true };\n case (#greater) { f(r, x) }\n }\n };\n case (#leaf) { false }\n }\n };\n f(tree, elem)\n };\n\n public func max(m : Tree) : ?V {\n func rightmost(m : Tree) : V {\n switch m {\n case (#red(_, v, #leaf)) { v };\n case (#red(_, _, r)) { rightmost(r) };\n case (#black(_, v, #leaf)) { v };\n case (#black(_, _, r)) { rightmost(r) };\n case (#leaf) { Runtime.trap \"pure/Set.max() impossible\" }\n }\n };\n switch m {\n case (#leaf) { null };\n case (_) { ?rightmost(m) }\n }\n };\n\n public func min(m : Tree) : ?V {\n func leftmost(m : Tree) : V {\n switch m {\n case (#red(#leaf, v, _)) { v };\n case (#red(l, _, _)) { leftmost(l) };\n case (#black(#leaf, v, _)) { v };\n case (#black(l, _, _)) { leftmost(l) };\n case (#leaf) { Runtime.trap \"pure/Set.min() impossible\" }\n }\n };\n switch m {\n case (#leaf) { null };\n case (_) { ?leftmost(m) }\n }\n };\n\n public func all(m : Tree, pred : V -> Bool) : Bool {\n switch m {\n case (#red(l, v, r)) {\n pred(v) and all(l, pred) and all(r, pred)\n };\n case (#black(l, v, r)) {\n pred(v) and all(l, pred) and all(r, pred)\n };\n case (#leaf) { true }\n }\n };\n\n public func any(m : Tree, pred : V -> Bool) : Bool {\n switch m {\n case (#red(l, v, r)) {\n pred(v) or any(l, pred) or any(r, pred)\n };\n case (#black(l, v, r)) {\n pred(v) or any(l, pred) or any(r, pred)\n };\n case (#leaf) { false }\n }\n };\n\n public func iterate(m : Tree, f : V -> ()) {\n switch m {\n case (#leaf) {};\n case (#black(l, v, r)) { iterate(l, f); f(v); iterate(r, f) };\n case (#red(l, v, r)) { iterate(l, f); f(v); iterate(r, f) }\n }\n };\n\n // build tree from elements arr[l]..arr[r-1]\n public func buildFromSorted(buf : List.List) : Tree {\n var maxDepth = 0;\n var maxSize = 1;\n while (maxSize < List.size(buf)) {\n maxDepth += 1;\n maxSize += maxSize + 1\n };\n maxDepth := if (maxDepth == 0) { 1 } else { maxDepth }; // keep root black for 1 element tree\n func buildFromSortedHelper(l : Nat, r : Nat, depth : Nat) : Tree {\n if (l + 1 == r) {\n if (depth == maxDepth) {\n return #red(#leaf, List.at(buf, l), #leaf)\n } else {\n return #black(#leaf, List.at(buf, l), #leaf)\n }\n };\n if (l >= r) {\n return #leaf\n };\n let m = (l + r) / 2;\n return #black(\n buildFromSortedHelper(l, m, depth + 1),\n List.at(buf, m),\n buildFromSortedHelper(m + 1, r, depth + 1)\n )\n };\n buildFromSortedHelper(0, List.size(buf), 0)\n };\n\n type IterRep = Types.Pure.List<{ #tr : Tree; #x : T }>;\n\n type SetTraverser = (Tree, T, Tree, IterRep) -> IterRep;\n\n class IterSet(tree : Tree, setTraverser : SetTraverser) {\n var trees : IterRep = ?(#tr(tree), null);\n public func next() : ?T {\n switch (trees) {\n case (null) { null };\n case (?(#tr(#leaf), ts)) {\n trees := ts;\n next()\n };\n case (?(#x(x), ts)) {\n trees := ts;\n ?x\n };\n case (?(#tr(#black(l, x, r)), ts)) {\n trees := setTraverser(l, x, r, ts);\n next()\n };\n case (?(#tr(#red(l, x, r)), ts)) {\n trees := setTraverser(l, x, r, ts);\n next()\n }\n }\n }\n };\n\n public func iter(s : Tree, direction : { #fwd; #bwd }) : Iter.Iter {\n let turnLeftFirst : SetTraverser = func(l, x, r, ts) {\n ?(#tr(l), ?(#x(x), ?(#tr(r), ts)))\n };\n\n let turnRightFirst : SetTraverser = func(l, x, r, ts) {\n ?(#tr(r), ?(#x(x), ?(#tr(l), ts)))\n };\n\n switch direction {\n case (#fwd) IterSet(s, turnLeftFirst);\n case (#bwd) IterSet(s, turnRightFirst)\n }\n };\n\n public func foldLeft(\n tree : Tree,\n base : Accum,\n combine : (Accum, T) -> Accum\n ) : Accum {\n switch (tree) {\n case (#leaf) { base };\n case (#black(l, x, r)) {\n let left = foldLeft(l, base, combine);\n let middle = combine(left, x);\n foldLeft(r, middle, combine)\n };\n case (#red(l, x, r)) {\n let left = foldLeft(l, base, combine);\n let middle = combine(left, x);\n foldLeft(r, middle, combine)\n }\n }\n };\n\n public func foldRight(\n tree : Tree,\n base : Accum,\n combine : (T, Accum) -> Accum\n ) : Accum {\n switch (tree) {\n case (#leaf) { base };\n case (#black(l, x, r)) {\n let right = foldRight(r, base, combine);\n let middle = combine(x, right);\n foldRight(l, middle, combine)\n };\n case (#red(l, x, r)) {\n let right = foldRight(r, base, combine);\n let middle = combine(x, right);\n foldRight(l, middle, combine)\n }\n }\n };\n\n func redden(t : Tree) : Tree {\n switch t {\n case (#black(l, x, r)) { (#red(l, x, r)) };\n case _ {\n Runtime.trap \"pure/Set.redden() impossible\"\n }\n }\n };\n\n func lbalance(left : Tree, x : T, right : Tree) : Tree {\n switch (left, right) {\n case (#red(#red(l1, x1, r1), x2, r2), r) {\n #red(\n #black(l1, x1, r1),\n x2,\n #black(r2, x, r)\n )\n };\n case (#red(l1, x1, #red(l2, x2, r2)), r) {\n #red(\n #black(l1, x1, l2),\n x2,\n #black(r2, x, r)\n )\n };\n case _ {\n #black(left, x, right)\n }\n }\n };\n\n func rbalance(left : Tree, x : T, right : Tree) : Tree {\n switch (left, right) {\n case (l, #red(l1, x1, #red(l2, x2, r2))) {\n #red(\n #black(l, x, l1),\n x1,\n #black(l2, x2, r2)\n )\n };\n case (l, #red(#red(l1, x1, r1), x2, r2)) {\n #red(\n #black(l, x, l1),\n x1,\n #black(r1, x2, r2)\n )\n };\n case _ {\n #black(left, x, right)\n }\n }\n };\n\n public func add(\n set : Set,\n compare : (T, T) -> Order.Order,\n elem : T\n ) : Set {\n insert(set, compare, elem).0\n };\n\n public func insert(\n s : Set,\n compare : (T, T) -> Order.Order,\n elem : T\n ) : (Set, Bool) {\n var newNodeIsCreated : Bool = false;\n func ins(tree : Tree) : Tree {\n switch tree {\n case (#black(left, x, right)) {\n switch (compare(elem, x)) {\n case (#less) {\n lbalance(ins left, x, right)\n };\n case (#greater) {\n rbalance(left, x, ins right)\n };\n case (#equal) {\n #black(left, x, right)\n }\n }\n };\n case (#red(left, x, right)) {\n switch (compare(elem, x)) {\n case (#less) {\n #red(ins left, x, right)\n };\n case (#greater) {\n #red(left, x, ins right)\n };\n case (#equal) {\n #red(left, x, right)\n }\n }\n };\n case (#leaf) {\n newNodeIsCreated := true;\n #red(#leaf, elem, #leaf)\n }\n }\n };\n let newRoot = switch (ins(s.root)) {\n case (#red(left, x, right)) {\n #black(left, x, right)\n };\n case other { other }\n };\n if newNodeIsCreated ({ root = newRoot; size = s.size + 1 }, true) else (s, false)\n };\n\n func balLeft(left : Tree, x : T, right : Tree) : Tree {\n switch (left, right) {\n case (#red(l1, x1, r1), r) {\n #red(#black(l1, x1, r1), x, r)\n };\n case (_, #black(l2, x2, r2)) {\n rbalance(left, x, #red(l2, x2, r2))\n };\n case (_, #red(#black(l2, x2, r2), x3, r3)) {\n #red(\n #black(left, x, l2),\n x2,\n rbalance(r2, x3, redden r3)\n )\n };\n case _ { Runtime.trap \"pure/Set.balLeft() impossible\" }\n }\n };\n\n func balRight(left : Tree, x : T, right : Tree) : Tree {\n switch (left, right) {\n case (l, #red(l1, x1, r1)) {\n #red(l, x, #black(l1, x1, r1))\n };\n case (#black(l1, x1, r1), r) {\n lbalance(#red(l1, x1, r1), x, r)\n };\n case (#red(l1, x1, #black(l2, x2, r2)), r3) {\n #red(\n lbalance(redden l1, x1, l2),\n x2,\n #black(r2, x, r3)\n )\n };\n case _ { Runtime.trap \"pure/Set.balRight() impossible\" }\n }\n };\n\n func append(left : Tree, right : Tree) : Tree {\n switch (left, right) {\n case (#leaf, _) { right };\n case (_, #leaf) { left };\n case (\n #red(l1, x1, r1),\n #red(l2, x2, r2)\n ) {\n switch (append(r1, l2)) {\n case (#red(l3, x3, r3)) {\n #red(\n #red(l1, x1, l3),\n x3,\n #red(r3, x2, r2)\n )\n };\n case r1l2 {\n #red(l1, x1, #red(r1l2, x2, r2))\n }\n }\n };\n case (t1, #red(l2, x2, r2)) {\n #red(append(t1, l2), x2, r2)\n };\n case (#red(l1, x1, r1), t2) {\n #red(l1, x1, append(r1, t2))\n };\n case (#black(l1, x1, r1), #black(l2, x2, r2)) {\n switch (append(r1, l2)) {\n case (#red(l3, x3, r3)) {\n #red(\n #black(l1, x1, l3),\n x3,\n #black(r3, x2, r2)\n )\n };\n case r1l2 {\n balLeft(\n l1,\n x1,\n #black(r1l2, x2, r2)\n )\n }\n }\n }\n }\n };\n\n public func remove(set : Set, compare : (T, T) -> Order.Order, elem : T) : Set {\n delete(set, compare, elem).0\n };\n\n public func delete(s : Set, compare : (T, T) -> Order.Order, x : T) : (Set, Bool) {\n var changed : Bool = false;\n func delNode(left : Tree, x1 : T, right : Tree) : Tree {\n switch (compare(x, x1)) {\n case (#less) {\n let newLeft = del left;\n switch left {\n case (#black(_, _, _)) {\n balLeft(newLeft, x1, right)\n };\n case _ {\n #red(newLeft, x1, right)\n }\n }\n };\n case (#greater) {\n let newRight = del right;\n switch right {\n case (#black(_, _, _)) {\n balRight(left, x1, newRight)\n };\n case _ {\n #red(left, x1, newRight)\n }\n }\n };\n case (#equal) {\n changed := true;\n append(left, right)\n }\n }\n };\n func del(tree : Tree) : Tree {\n switch tree {\n case (#black(left, x1, right)) {\n delNode(left, x1, right)\n };\n case (#red(left, x1, right)) {\n delNode(left, x1, right)\n };\n case (#leaf) {\n tree\n }\n }\n };\n let newRoot = switch (del(s.root)) {\n case (#red(left, x1, right)) {\n #black(left, x1, right)\n };\n case other { other }\n };\n if changed ({ root = newRoot; size = s.size - 1 }, true) else (s, false)\n };\n\n // check binary search tree order of elements and black depth invariant of the RB-tree\n public func assertValid(s : Set, comp : (T, T) -> Order.Order) {\n ignore blackDepth(s.root, comp)\n };\n\n func blackDepth(node : Tree, comp : (T, T) -> Order.Order) : Nat {\n func checkNode(left : Tree, x1 : T, right : Tree) : Nat {\n checkElem(left, func(x : T) : Bool { comp(x, x1) == #less });\n checkElem(right, func(x : T) : Bool { comp(x, x1) == #greater });\n let leftBlacks = blackDepth(left, comp);\n let rightBlacks = blackDepth(right, comp);\n assert (leftBlacks == rightBlacks);\n leftBlacks\n };\n switch node {\n case (#leaf) 0;\n case (#red(left, x1, right)) {\n assert (not isRed(left));\n assert (not isRed(right));\n checkNode(left, x1, right)\n };\n case (#black(left, x1, right)) {\n checkNode(left, x1, right) + 1\n }\n }\n };\n\n func isRed(node : Tree) : Bool {\n switch node {\n case (#red(_, _, _)) true;\n case _ false\n }\n };\n\n func checkElem(node : Tree, isValid : T -> Bool) {\n switch node {\n case (#leaf) {};\n case (#black(_, elem, _)) {\n assert (isValid(elem))\n };\n case (#red(_, elem, _)) {\n assert (isValid(elem))\n }\n }\n }\n };\n\n}\n"}}} \ No newline at end of file +{"name":"core","version":"v2.4.0","files":{"Int32.mo":{"content":"/// Utility functions on 32-bit signed integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Int32 \"mo:core/Int32\";\n/// ```\nimport Int \"Int\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 32-bit signed integers.\n public type Int32 = Prim.Types.Int32;\n\n /// Minimum 32-bit integer value, `-2 ** 31`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.minValue == -2_147_483_648;\n /// ```\n public let minValue : Int32 = -2_147_483_648;\n\n /// Maximum 32-bit integer value, `+2 ** 31 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.maxValue == +2_147_483_647;\n /// ```\n public let maxValue : Int32 = 2_147_483_647;\n\n /// Converts a 32-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.toInt(123_456) == (123_456 : Int);\n /// ```\n public let toInt : (self : Int32) -> Int = Prim.int32ToInt;\n\n /// Converts a signed integer with infinite precision to a 32-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.fromInt(123_456) == (+123_456 : Int32);\n /// ```\n public let fromInt : Int -> Int32 = Prim.intToInt32;\n\n /// Converts a signed integer with infinite precision to a 32-bit signed integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.fromIntWrap(-123_456) == (-123_456 : Int);\n /// ```\n public let fromIntWrap : Int -> Int32 = Prim.intToInt32Wrap;\n\n /// Converts a 16-bit signed integer to a 32-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.fromInt16(-123) == (-123 : Int32);\n /// ```\n public let fromInt16 : Int16 -> Int32 = Prim.int16ToInt32;\n\n /// Converts an 8-bit signed integer to a 32-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.fromInt8(-123) == (-123 : Int32);\n /// ```\n public func fromInt8(x : Int8) : Int32 {\n Prim.int16ToInt32(Prim.int8ToInt16(x))\n };\n\n /// Converts a 32-bit signed integer to an 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.toInt8(-123) == (-123 : Int8);\n /// ```\n public func toInt8(self : Int32) : Int8 {\n Prim.int16ToInt8(Prim.int32ToInt16(self))\n };\n\n /// Converts a 32-bit signed integer to a 16-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.toInt16(-123) == (-123 : Int16);\n /// ```\n public func toInt16(self : Int32) : Int16 {\n Prim.int32ToInt16(self)\n };\n\n /// Converts a 64-bit signed integer to a 32-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.fromInt64(-123_456) == (-123_456 : Int32);\n /// ```\n public let fromInt64 : Int64 -> Int32 = Prim.int64ToInt32;\n\n /// Converts a 32-bit signed integer to a 64-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.toInt64(-123_456) == (-123_456 : Int64);\n /// ```\n public let toInt64 : (self : Int32) -> Int64 = Prim.int32ToInt64;\n\n /// Converts an unsigned 32-bit integer to a signed 32-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.fromNat32(123_456) == (+123_456 : Int32);\n /// ```\n public let fromNat32 : Nat32 -> Int32 = Prim.nat32ToInt32;\n\n /// Converts a signed 32-bit integer to an unsigned 32-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.toNat32(-1) == (4_294_967_295 : Nat32); // underflow\n /// ```\n public let toNat32 : (self : Int32) -> Nat32 = Prim.int32ToNat32;\n\n /// Returns the Text representation of `x`. Textual representation _do not_\n /// contain underscores to represent commas.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.toText(-123456) == \"-123456\";\n /// ```\n public func toText(self : Int32) : Text {\n Int.toText(toInt(self))\n };\n\n /// Returns the absolute value of `x`.\n ///\n /// Traps when `x == -2 ** 31` (the minimum `Int32` value).\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.abs(-123456) == +123_456;\n /// ```\n public func abs(x : Int32) : Int32 {\n fromInt(Int.abs(toInt(x)))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.min(+2, -3) == -3;\n /// ```\n public func min(x : Int32, y : Int32) : Int32 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.max(+2, -3) == +2;\n /// ```\n public func max(x : Int32, y : Int32) : Int32 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Int32 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.equal(-1, -1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Int32 = -123;\n /// let b : Int32 = 123;\n /// assert not Int32.equal(a, b);\n /// ```\n public func equal(x : Int32, y : Int32) : Bool { x == y };\n\n /// Inequality function for Int32 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.notEqual(-1, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Int32, y : Int32) : Bool { x != y };\n\n /// \"Less than\" function for Int32 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.less(-2, 1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Int32, y : Int32) : Bool { x < y };\n\n /// \"Less than or equal\" function for Int32 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.lessOrEqual(-2, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Int32, y : Int32) : Bool { x <= y };\n\n /// \"Greater than\" function for Int32 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.greater(-2, -3);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Int32, y : Int32) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Int32 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.greaterOrEqual(-2, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Int32, y : Int32) : Bool {\n x >= y\n };\n\n /// General-purpose comparison function for `Int32`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.compare(-3, 2) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([1, -2, -3] : [Int32], Int32.compare) == [-3, -2, 1];\n /// ```\n public func compare(x : Int32, y : Int32) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the negation of `x`, `-x`.\n ///\n /// Traps on overflow, i.e. for `neg(-2 ** 31)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.neg(123) == -123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n public func neg(x : Int32) : Int32 { -x };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.add(100, 23) == +123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int32.add) == -4;\n /// ```\n public func add(x : Int32, y : Int32) : Int32 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.sub(1234, 123) == +1_111;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int32.sub) == 4;\n /// ```\n public func sub(x : Int32, y : Int32) : Int32 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.mul(123, 100) == +12_300;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 1, Int32.mul) == 6;\n /// ```\n public func mul(x : Int32, y : Int32) : Int32 { x * y };\n\n /// Returns the signed integer division of `x` by `y`, `x / y`.\n /// Rounds the quotient towards zero, which is the same as truncating the decimal places of the quotient.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.div(123, 10) == +12;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Int32, y : Int32) : Int32 { x / y };\n\n /// Returns the remainder of the signed integer division of `x` by `y`, `x % y`,\n /// which is defined as `x - x / y * y`.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.rem(123, 10) == +3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Int32, y : Int32) : Int32 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n ///\n /// Traps on overflow/underflow and when `y < 0 or y >= 32`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.pow(2, 10) == +1_024;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Int32, y : Int32) : Int32 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitnot(-256 /* 0xffff_ff00 */) == +255 // 0xff;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Int32) : Int32 { ^x };\n\n /// Returns the bitwise \"and\" of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitand(0xffff, 0x00f0) == +240 // 0xf0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Int32, y : Int32) : Int32 { x & y };\n\n /// Returns the bitwise \"or\" of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitor(0xffff, 0x00f0) == +65_535 // 0xffff;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `|` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `|`\n /// as a function value at the moment.\n public func bitor(x : Int32, y : Int32) : Int32 { x | y };\n\n /// Returns the bitwise \"exclusive or\" of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitxor(0xffff, 0x00f0) == +65_295 // 0xff0f;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitxor(x : Int32, y : Int32) : Int32 { x ^ y };\n\n /// Returns the bitwise left shift of `x` by `y`, `x << y`.\n /// The right bits of the shift filled with zeros.\n /// Left-overflowing bits, including the sign bit, are discarded.\n ///\n /// For `y >= 32`, the semantics is the same as for `bitshiftLeft(x, y % 32)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftLeft(x, y + y % 32)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitshiftLeft(1, 8) == +256 // 0x100 equivalent to `2 ** 8`.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Int32, y : Int32) : Int32 {\n x << y\n };\n\n /// Returns the signed bitwise right shift of `x` by `y`, `x >> y`.\n /// The sign bit is retained and the left side is filled with the sign bit.\n /// Right-underflowing bits are discarded, i.e. not rotated to the left side.\n ///\n /// For `y >= 32`, the semantics is the same as for `bitshiftRight(x, y % 32)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftRight (x, y + y % 32)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitshiftRight(1024, 8) == +4 // equivalent to `1024 / (2 ** 8)`;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Int32, y : Int32) : Int32 {\n x >> y\n };\n\n /// Returns the bitwise left rotatation of `x` by `y`, `x <<> y`.\n /// Each left-overflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 32`, the semantics is the same as for `bitrotLeft(x, y % 32)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitrotLeft(0x2000_0001, 4) == +18 // 0x12.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Int32, y : Int32) : Int32 { x <<> y };\n\n /// Returns the bitwise right rotation of `x` by `y`, `x <>> y`.\n /// Each right-underflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 32`, the semantics is the same as for `bitrotRight(x, y % 32)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitrotRight(0x0002_0001, 8) == +16_777_728 // 0x0100_0200.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Int32, y : Int32) : Int32 {\n x <>> y\n };\n\n /// Returns the value of bit `p` in `x`, `x & 2**p == 2**p`.\n /// If `p >= 32`, the semantics is the same as for `bittest(x, p % 32)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bittest(128, 7);\n /// ```\n public func bittest(x : Int32, p : Nat) : Bool {\n Prim.btstInt32(x, Prim.intToInt32(p))\n };\n\n /// Returns the value of setting bit `p` in `x` to `1`.\n /// If `p >= 32`, the semantics is the same as for `bitset(x, p % 32)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitset(0, 7) == +128;\n /// ```\n public func bitset(x : Int32, p : Nat) : Int32 {\n x | (1 << Prim.intToInt32(p))\n };\n\n /// Returns the value of clearing bit `p` in `x` to `0`.\n /// If `p >= 32`, the semantics is the same as for `bitclear(x, p % 32)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitclear(-1, 7) == -129;\n /// ```\n public func bitclear(x : Int32, p : Nat) : Int32 {\n x & ^(1 << Prim.intToInt32(p))\n };\n\n /// Returns the value of flipping bit `p` in `x`.\n /// If `p >= 32`, the semantics is the same as for `bitclear(x, p % 32)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitflip(255, 7) == +127;\n /// ```\n public func bitflip(x : Int32, p : Nat) : Int32 {\n x ^ (1 << Prim.intToInt32(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitcountNonZero(0xffff) == +16;\n /// ```\n public let bitcountNonZero : (x : Int32) -> Int32 = Prim.popcntInt32;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitcountLeadingZero(0x8000) == +16;\n /// ```\n public let bitcountLeadingZero : (x : Int32) -> Int32 = Prim.clzInt32;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.bitcountTrailingZero(0x0201_0000) == +16;\n /// ```\n public let bitcountTrailingZero : (x : Int32) -> Int32 = Prim.ctzInt32;\n\n /// Returns the upper (i.e. most significant), lower (least significant)\n /// and in-between bytes of `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.explode 0x66885511 == (102, 136, 85, 17);\n /// ```\n public let explode : (x : Int32) -> (msb : Nat8, Nat8, Nat8, lsb : Nat8) = Prim.explodeInt32;\n\n /// Returns the sum of `x` and `y`, `x +% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.addWrap(2 ** 30, 2 ** 30) == -2_147_483_648; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Int32, y : Int32) : Int32 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.subWrap(-2 ** 31, 1) == +2_147_483_647; // underflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Int32, y : Int32) : Int32 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.mulWrap(2 ** 16, 2 ** 16) == 0; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Int32, y : Int32) : Int32 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`.\n ///\n /// Wraps on overflow/underflow.\n /// Traps if `y < 0 or y >= 32`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int32.powWrap(2, 31) == -2_147_483_648; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Int32, y : Int32) : Int32 { x **% y };\n\n /// Returns an iterator over `Int32` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int32.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int32.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Int32, toExclusive : Int32) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Int32 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Int32` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int32.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int32.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Int32, to : Int32) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Int32 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Int32 values, from minValue to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int32.allValues();\n /// assert iter.next() == ?-2_147_483_648;\n /// assert iter.next() == ?-2_147_483_647;\n /// assert iter.next() == ?-2_147_483_646;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(minValue, maxValue)\n };\n\n}\n"},"Debug.mo":{"content":"/// Utility functions for debugging.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Debug \"mo:core/Debug\";\n/// ```\n\nimport Prim \"mo:⛔\";\nimport Runtime \"Runtime\";\n\nmodule {\n\n /// Prints `text` to output stream.\n ///\n /// NOTE: When running on an ICP network, all output is written to the [canister log](https://internetcomputer.org/docs/building-apps/canister-management/logs) with the exclusion of any output\n /// produced during the execution of non-replicated queries and composite queries.\n /// In other environments, like the interpreter and stand-alone wasm engines, the output is written to standard out.\n ///\n /// ```motoko include=import\n /// Debug.print \"Hello New World!\";\n /// Debug.print(debug_show(4)) // Often used with `debug_show` to convert values to Text\n /// ```\n public let print : (text : Text) -> () = Prim.debugPrint;\n\n /// Mark incomplete code with the `todo()` function.\n ///\n /// Each have calls are well-typed in all typing contexts, which\n /// trap in all execution contexts.\n ///\n /// ```motoko include=import\n /// func doSomethingComplex() {\n /// Debug.todo()\n /// };\n /// ```\n public func todo() : None {\n Runtime.trap(\"Debug.todo()\")\n };\n\n}\n"},"Runtime.mo":{"content":"/// Runtime utilities.\n/// These functions were originally part of the `Debug` module.\n///\n/// ```motoko name=import\n/// import Runtime \"mo:core/Runtime\";\n/// ```\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// `trap(t)` traps execution with a user-provided diagnostic message.\n ///\n /// The caller of a future whose execution called `trap(t)` will\n /// observe the trap as an `Error` value, thrown at `await`, with code\n /// `#canister_error` and message `m`. Here `m` is a more descriptive `Text`\n /// message derived from the provided `t`. See example for more details.\n ///\n /// NOTE: Other execution environments that cannot handle traps may only\n /// propagate the trap and terminate execution, with or without some\n /// descriptive message.\n ///\n /// ```motoko include=import no-validate\n /// Runtime.trap(\"An error occurred!\");\n /// ```\n public func trap(errorMessage : Text) : None {\n Prim.trap errorMessage\n };\n\n /// `unreachable()` traps execution when code that should be unreachable is reached.\n ///\n /// This function is useful for marking code paths that should never be executed,\n /// such as after exhaustive pattern matches or unreachable control flow branches.\n /// If execution reaches this function, it indicates a programming error.\n ///\n /// ```motoko include=import no-validate\n /// let number = switch (?5) {\n /// case (?n) n;\n /// case null Runtime.unreachable();\n /// };\n /// assert number == 5;\n /// ```\n public func unreachable() : None {\n trap(\"Runtime.unreachable()\")\n };\n\n /// Returns the names of all canister environment variables.\n ///\n /// Example:\n /// ```motoko include=import no-validate\n /// let names = Runtime.envVarNames();\n /// ```\n public func envVarNames() : [Text] {\n return Prim.envVarNames()\n };\n\n /// Returns an optional value of the canister environment variable with the given name.\n ///\n /// Example:\n /// ```motoko include=import no-validate\n /// let value = Runtime.envVar(\"MY_ENV_VAR\");\n /// let result = switch (value) {\n /// case (?v) v;\n /// case null Runtime.trap(\"Unknown environment variable\");\n /// };\n /// ```\n public func envVar(name : Text) : ?Text {\n return Prim.envVar(name)\n }\n\n}\n"},"Nat.mo":{"content":"/// Natural numbers with infinite precision.\n///\n/// Most operations on natural numbers (e.g. addition) are available as built-in operators (e.g. `1 + 1`).\n/// This module provides equivalent functions and `Text` conversion.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Nat \"mo:core/Nat\";\n/// ```\n\nimport Int \"Int\";\nimport Prim \"mo:⛔\";\nimport Char \"Char\";\nimport Iter \"Iter\";\nimport Runtime \"Runtime\";\nimport Order \"Order\";\n\nmodule {\n\n /// Infinite precision natural numbers.\n public type Nat = Prim.Types.Nat;\n\n /// Converts a natural number to its textual representation. Textual\n /// representation _do not_ contain underscores to represent commas.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.toText(1234) == \"1234\";\n /// ```\n public let toText : (self : Nat) -> Text = Int.toText;\n\n /// Creates a natural number from its textual representation. Returns `null`\n /// if the input is not a valid natural number.\n ///\n /// The textual representation _must not_ contain underscores.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.fromText(\"1234\") == ?1234;\n /// ```\n public func fromText(text : Text) : ?Nat {\n if (text == \"\") {\n return null\n };\n var n = 0;\n for (c in text.chars()) {\n if (Char.isDigit(c)) {\n let charAsNat = Prim.nat32ToNat(Prim.charToNat32(c) -% Prim.charToNat32('0'));\n n := n * 10 + charAsNat\n } else {\n return null\n }\n };\n ?n\n };\n\n /// Creates a natural number from its textual representation. Returns `null`\n /// if the input is not a valid natural number.\n ///\n /// The textual representation _must not_ contain underscores.\n ///\n /// This functions is meant to be used with contextual-dot notation.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert \"1234\".toNat() == ?1234;\n /// ```\n public let toNat : (self : Text) -> ?Nat = fromText;\n\n /// Converts an integer to a natural number. Traps if the integer is negative.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.fromInt(1234) == (1234 : Nat);\n /// ```\n /// @deprecated M0235\n public func fromInt(int : Int) : Nat {\n if (int < 0) {\n Runtime.trap(\"Nat.fromInt(): negative input value\")\n } else {\n Int.abs(int)\n }\n };\n\n /// Conversion to Float. May result in `Inf`.\n ///\n /// Note: The floating point number may be imprecise for large Nat values.\n /// Returns `inf` if the integer is greater than the maximum floating point number.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.toFloat(123) == 123.0;\n /// ```\n public let toFloat : (self : Nat) -> Float = Int.toFloat;\n\n /// Converts a natural number to an integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.toInt(1234) == 1234;\n /// ```\n public func toInt(self : Nat) : Int {\n self : Int\n };\n\n /// Converts an unsigned integer with infinite precision to an 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.toNat8(123) == (123 : Nat8);\n /// ```\n public let toNat8 : (self : Nat) -> Nat8 = Prim.natToNat8;\n\n /// Converts an unsigned integer with infinite precision to a 16-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.toNat16(123) == (123 : Nat16);\n /// ```\n public let toNat16 : (self : Nat) -> Nat16 = Prim.natToNat16;\n\n /// Converts an unsigned integer with infinite precision to a 32-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.toNat32(123) == (123 : Nat32);\n /// ```\n public let toNat32 : (self : Nat) -> Nat32 = Prim.natToNat32;\n\n /// Converts an unsigned integer with infinite precision to a 64-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.toNat64(123) == (123 : Nat64);\n /// ```\n public let toNat64 : (self : Nat) -> Nat64 = Prim.natToNat64;\n\n /// Converts an 8-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.fromNat8(123) == (123 : Nat);\n /// ```\n public let fromNat8 : Nat8 -> Nat = Prim.nat8ToNat;\n\n /// Converts a 16-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.fromNat16(123) == (123 : Nat);\n /// ```\n public let fromNat16 : Nat16 -> Nat = Prim.nat16ToNat;\n\n /// Converts a 32-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.fromNat32(123) == (123 : Nat);\n /// ```\n public let fromNat32 : Nat32 -> Nat = Prim.nat32ToNat;\n\n /// Converts a 64-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.fromNat64(123) == (123 : Nat);\n /// ```\n public let fromNat64 : Nat64 -> Nat = Prim.nat64ToNat;\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.min(1, 2) == 1;\n /// ```\n public func min(x : Nat, y : Nat) : Nat {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.max(1, 2) == 2;\n /// ```\n public func max(x : Nat, y : Nat) : Nat {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Nat types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.equal(1, 1);\n /// assert 1 == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a = 111;\n /// let b = 222;\n /// assert not Nat.equal(a, b);\n /// ```\n public func equal(x : Nat, y : Nat) : Bool { x == y };\n\n /// Inequality function for Nat types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.notEqual(1, 2);\n /// assert 1 != 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Nat, y : Nat) : Bool { x != y };\n\n /// \"Less than\" function for Nat types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.less(1, 2);\n /// assert 1 < 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Nat, y : Nat) : Bool { x < y };\n\n /// \"Less than or equal\" function for Nat types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.lessOrEqual(1, 2);\n /// assert 1 <= 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Nat, y : Nat) : Bool { x <= y };\n\n /// \"Greater than\" function for Nat types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.greater(2, 1);\n /// assert 2 > 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Nat, y : Nat) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Nat types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.greaterOrEqual(2, 1);\n /// assert 2 >= 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Nat, y : Nat) : Bool { x >= y };\n\n /// General purpose comparison function for `Nat`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.compare(2, 3) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([2, 3, 1], Nat.compare) == [1, 2, 3];\n /// ```\n public func compare(x : Nat, y : Nat) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the sum of `x` and `y`, `x + y`. This operator will never overflow\n /// because `Nat` is infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.add(1, 2) == 3;\n /// assert 1 + 2 == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 0, Nat.add) == 6;\n /// ```\n public func add(x : Nat, y : Nat) : Nat { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n /// Traps on underflow below `0`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.sub(2, 1) == 1;\n /// // Add a type annotation to avoid a warning about the subtraction\n /// assert 2 - 1 : Nat == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 10, Nat.sub) == 4;\n /// ```\n public func sub(x : Nat, y : Nat) : Nat { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`. This operator will never\n /// overflow because `Nat` is infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.mul(2, 3) == 6;\n /// assert 2 * 3 == 6;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 1, Nat.mul) == 6;\n /// ```\n public func mul(x : Nat, y : Nat) : Nat { x * y };\n\n /// Returns the unsigned integer division of `x` by `y`, `x / y`.\n /// Traps when `y` is zero.\n ///\n /// The quotient is rounded down, which is equivalent to truncating the\n /// decimal places of the quotient.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.div(6, 2) == 3;\n /// assert 6 / 2 == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Nat, y : Nat) : Nat { x / y };\n\n /// Returns the remainder of unsigned integer division of `x` by `y`, `x % y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.rem(6, 4) == 2;\n /// assert 6 % 4 == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Nat, y : Nat) : Nat { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`. Traps when `y > 2^32`. This operator\n /// will never overflow because `Nat` is infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.pow(2, 3) == 8;\n /// assert 2 ** 3 == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Nat, y : Nat) : Nat { x ** y };\n\n /// Returns the (conceptual) bitwise shift left of `x` by `y`, `x * (2 ** y)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.bitshiftLeft(1, 3) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in absence\n /// of the `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. While `Nat` is not defined in terms\n /// of bit patterns, conceptually it can be regarded as such, and the operation\n /// is provided as a high-performance version of the corresponding arithmetic\n /// rule.\n public let bitshiftLeft : (x : Nat, y : Nat32) -> Nat = Prim.shiftLeft;\n\n /// Returns the (conceptual) bitwise shift right of `x` by `y`, `x / (2 ** y)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat.bitshiftRight(8, 3) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in absence\n /// of the `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. While `Nat` is not defined in terms\n /// of bit patterns, conceptually it can be regarded as such, and the operation\n /// is provided as a high-performance version of the corresponding arithmetic\n /// rule.\n public let bitshiftRight : (x : Nat, y : Nat32) -> Nat = Prim.shiftRight;\n\n /// Returns an iterator over `Nat` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Nat, toExclusive : Nat) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Nat {\n if (n >= toExclusive) {\n return null\n };\n let current = n;\n n += 1;\n ?current\n }\n }\n }\n };\n\n /// Returns an iterator over `Nat` values from the first to second argument with an exclusive upper bound,\n /// incrementing by the specified step size. The step can be positive or negative.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// // Positive step\n /// let iter1 = Nat.rangeBy(1, 7, 2);\n /// assert iter1.next() == ?1;\n /// assert iter1.next() == ?3;\n /// assert iter1.next() == ?5;\n /// assert iter1.next() == null;\n ///\n /// // Negative step\n /// let iter2 = Nat.rangeBy(7, 1, -2);\n /// assert iter2.next() == ?7;\n /// assert iter2.next() == ?5;\n /// assert iter2.next() == ?3;\n /// assert iter2.next() == null;\n /// ```\n ///\n /// If `step` is 0 or if the iteration would not progress towards the bound, returns an empty iterator.\n public func rangeBy(fromInclusive : Nat, toExclusive : Nat, step : Int) : Iter.Iter {\n if (step == 0 or (step > 0 and fromInclusive >= toExclusive) or (step < 0 and fromInclusive <= toExclusive)) {\n Iter.empty()\n } else if (step > 0) {\n object {\n let stepMagnitude = Int.abs(step);\n var n = fromInclusive;\n public func next() : ?Nat {\n if (n >= toExclusive) {\n return null\n };\n let current = n;\n n += stepMagnitude;\n ?current\n }\n }\n } else {\n object {\n let stepMagnitude = Int.abs(step);\n var n = fromInclusive;\n public func next() : ?Nat {\n if (n <= toExclusive) {\n return null\n };\n let current = n;\n if (stepMagnitude > n) {\n n := 0\n } else {\n n -= stepMagnitude\n };\n ?current\n }\n }\n }\n };\n\n /// Returns an iterator over the integers from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat.rangeInclusive(3, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Nat, to : Nat) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n public func next() : ?Nat {\n if (n > to) {\n return null\n };\n let current = n;\n n += 1;\n ?current\n }\n }\n }\n };\n\n /// Returns an iterator over the integers from the first to second argument, inclusive,\n /// incrementing by the specified step size. The step can be positive or negative.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// // Positive step\n /// let iter1 = Nat.rangeByInclusive(1, 7, 2);\n /// assert iter1.next() == ?1;\n /// assert iter1.next() == ?3;\n /// assert iter1.next() == ?5;\n /// assert iter1.next() == ?7;\n /// assert iter1.next() == null;\n ///\n /// // Negative step\n /// let iter2 = Nat.rangeByInclusive(7, 1, -2);\n /// assert iter2.next() == ?7;\n /// assert iter2.next() == ?5;\n /// assert iter2.next() == ?3;\n /// assert iter2.next() == ?1;\n /// assert iter2.next() == null;\n /// ```\n ///\n /// If `from == to`, return an iterator which only returns that value.\n ///\n /// Otherwise, if `step` is 0 or if the iteration would not progress towards the bound, returns an empty iterator.\n public func rangeByInclusive(from : Nat, to : Nat, step : Int) : Iter.Iter {\n if (from == to) {\n Iter.singleton(from)\n } else if (step == 0 or (step > 0 and from > to) or (step < 0 and from < to)) {\n Iter.empty()\n } else if (step > 0) {\n object {\n let stepMagnitude = Int.abs(step);\n var n = from;\n public func next() : ?Nat {\n if (n > to) {\n return null\n };\n let current = n;\n n += stepMagnitude;\n ?current\n }\n }\n } else {\n object {\n let stepMagnitude = Int.abs(step);\n var n = from;\n var done = false;\n public func next() : ?Nat {\n if (done) {\n null\n } else {\n let current = n;\n if (n < to + stepMagnitude) {\n done := true\n } else {\n n -= stepMagnitude\n };\n ?current\n }\n }\n }\n }\n };\n\n /// Returns an infinite iterator over all possible `Nat` values.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat.allValues();\n /// assert iter.next() == ?0;\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter = object {\n var n = 0;\n public func next() : ?Nat {\n let current = n;\n n += 1;\n ?current\n }\n };\n\n}\n"},"Int.mo":{"content":"/// Signed integer numbers with infinite precision (also called big integers).\n///\n/// Most operations on integer numbers (e.g. addition) are available as built-in operators (e.g. `-1 + 1`).\n/// This module provides equivalent functions and `Text` conversion.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Int \"mo:core/Int\";\n/// ```\n\nimport Prim \"mo:⛔\";\nimport Char \"Char\";\nimport Runtime \"Runtime\";\nimport Iter \"Iter\";\nimport Order \"Order\";\n\nmodule {\n\n /// Infinite precision signed integers.\n public type Int = Prim.Types.Int;\n\n /// Returns the absolute value of `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.abs(-12) == 12;\n /// ```\n public let abs : (x : Int) -> Nat = Prim.abs;\n\n /// Converts an integer number to its textual representation. Textual\n /// representation _do not_ contain underscores to represent commas.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.toText(-1234) == \"-1234\";\n /// ```\n public func toText(self : Int) : Text {\n if (self == 0) {\n return \"0\"\n };\n\n let isNegative = self < 0;\n var int = if isNegative { -self } else { self };\n\n var text = \"\";\n let base = 10;\n\n while (int > 0) {\n let rem = int % base;\n text := (\n switch (rem) {\n case 0 { \"0\" };\n case 1 { \"1\" };\n case 2 { \"2\" };\n case 3 { \"3\" };\n case 4 { \"4\" };\n case 5 { \"5\" };\n case 6 { \"6\" };\n case 7 { \"7\" };\n case 8 { \"8\" };\n case 9 { \"9\" };\n case _ { Runtime.unreachable() }\n }\n ) # text;\n int := int / base\n };\n\n return if isNegative { \"-\" # text } else { text }\n };\n\n /// Creates a integer from its textual representation. Returns `null`\n /// if the input is not a valid integer.\n ///\n /// The textual representation _must not_ contain underscores but may\n /// begin with a '+' or '-' character.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.fromText(\"-1234\") == ?-1234;\n /// ```\n public func fromText(text : Text) : ?Int {\n if (text == \"\") {\n return null\n };\n var n = 0;\n var isFirst = true;\n var isNegative = false;\n var hasDigits = false;\n for (c in text.chars()) {\n if (isFirst and c == '+') {\n // Skip character\n } else if (isFirst and c == '-') {\n isNegative := true\n } else if (Char.isDigit(c)) {\n hasDigits := true;\n let charAsNat = Prim.nat32ToNat(Prim.charToNat32(c) -% Prim.charToNat32('0'));\n n := n * 10 + charAsNat\n } else {\n return null\n };\n isFirst := false\n };\n if (not hasDigits) {\n return null\n };\n ?(if (isNegative) { -n } else { n })\n };\n\n /// Creates a integer from its textual representation. Returns `null`\n /// if the input is not a valid integer.\n ///\n /// This functions is meant to be used with contextual-dot notation.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert \"-1234\".toInt() == ?-1234;\n /// ```\n public func toInt(self : Text) : ?Int {\n fromText(self)\n };\n\n /// Converts an integer to a natural number. Traps if the integer is negative.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Debug \"mo:core/Debug\";\n /// assert Int.toNat(1234 : Int) == (1234 : Nat);\n /// ```\n public func toNat(self : Int) : Nat {\n if (self < 0) {\n Runtime.trap(\"Int.toNat(): negative input value\")\n } else {\n abs(self)\n }\n };\n\n /// Converts a natural number to an integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.fromNat(1234 : Nat) == (1234 : Int);\n /// ```\n public func fromNat(nat : Nat) : Int {\n nat : Int\n };\n\n /// Conversion to Float. May result in `Inf`.\n ///\n /// Note: The floating point number may be imprecise for large or small Int values.\n /// Returns `inf` if the integer is greater than the maximum floating point number.\n /// Returns `-inf` if the integer is less than the minimum floating point number.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.toFloat(-123) == -123.0;\n /// ```\n public let toFloat : (self : Int) -> Float = Prim.intToFloat;\n\n /// Converts a signed integer with infinite precision to an 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.toInt8(123) == (123 : Int8);\n /// ```\n public let toInt8 : (self : Int) -> Int8 = Prim.intToInt8;\n\n /// Converts a signed integer with infinite precision to a 16-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.toInt16(12_345) == (12_345 : Int16);\n /// ```\n public let toInt16 : (self : Int) -> Int16 = Prim.intToInt16;\n\n /// Converts a signed integer with infinite precision to a 32-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.toInt32(123_456) == (123_456 : Int32);\n /// ```\n public let toInt32 : (self : Int) -> Int32 = Prim.intToInt32;\n\n /// Converts a signed integer with infinite precision to a 64-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.toInt64(123_456_789) == (123_456_789 : Int64);\n /// ```\n public let toInt64 : (self : Int) -> Int64 = Prim.intToInt64;\n\n /// Converts an 8-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.fromInt8(123 : Int8) == 123;\n /// ```\n public let fromInt8 : (x : Int8) -> Int = Prim.int8ToInt;\n\n /// Converts a 16-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.fromInt16(12_345 : Int16) == 12_345;\n /// ```\n public let fromInt16 : (x : Int16) -> Int = Prim.int16ToInt;\n\n /// Converts a 32-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.fromInt32(123_456 : Int32) == 123_456;\n /// ```\n public let fromInt32 : (x : Int32) -> Int = Prim.int32ToInt;\n\n /// Converts a 64-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.fromInt64(123_456_789 : Int64) == 123_456_789;\n /// ```\n public let fromInt64 : (x : Int64) -> Int = Prim.int64ToInt;\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.min(2, -3) == -3;\n /// ```\n public func min(x : Int, y : Int) : Int {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.max(2, -3) == 2;\n /// ```\n public func max(x : Int, y : Int) : Int {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Int types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.equal(-1, -1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Int = 1;\n /// let b : Int = -1;\n /// assert not Int.equal(a, b);\n /// ```\n public func equal(x : Int, y : Int) : Bool { x == y };\n\n /// Inequality function for Int types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.notEqual(-1, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Int, y : Int) : Bool { x != y };\n\n /// \"Less than\" function for Int types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.less(-2, 1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Int, y : Int) : Bool { x < y };\n\n /// \"Less than or equal\" function for Int types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.lessOrEqual(-2, 1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Int, y : Int) : Bool { x <= y };\n\n /// \"Greater than\" function for Int types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.greater(1, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Int, y : Int) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Int types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.greaterOrEqual(1, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Int, y : Int) : Bool { x >= y };\n\n /// General-purpose comparison function for `Int`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.compare(-3, 2) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([1, -2, -3], Int.compare) == [-3, -2, 1];\n /// ```\n public func compare(x : Int, y : Int) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the negation of `x`, `-x` .\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.neg(123) == -123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n public func neg(x : Int) : Int { -x };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n ///\n /// No overflow since `Int` has infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.add(1, -2) == -1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int.add) == -4;\n /// ```\n public func add(x : Int, y : Int) : Int { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n ///\n /// No overflow since `Int` has infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.sub(1, 2) == -1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int.sub) == 4;\n /// ```\n public func sub(x : Int, y : Int) : Int { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n ///\n /// No overflow since `Int` has infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.mul(-2, 3) == -6;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 1, Int.mul) == 6;\n /// ```\n public func mul(x : Int, y : Int) : Int { x * y };\n\n /// Returns the signed integer division of `x` by `y`, `x / y`.\n /// Rounds the quotient towards zero, which is the same as truncating the decimal places of the quotient.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.div(6, -2) == -3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Int, y : Int) : Int { x / y };\n\n /// Returns the remainder of the signed integer division of `x` by `y`, `x % y`,\n /// which is defined as `x - x / y * y`.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.rem(6, -4) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Int, y : Int) : Int { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n ///\n /// Traps when `y` is negative or `y > 2 ** 32 - 1`.\n /// No overflow since `Int` has infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int.pow(-2, 3) == -8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Int, y : Int) : Int { x ** y };\n\n /// Returns an iterator over the integers from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Int, toExclusive : Int) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Int {\n if (n >= toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Int` values from the first to second argument with an exclusive upper bound,\n /// incrementing by the specified step size.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// // Positive step\n /// let iter1 = Int.rangeBy(1, 7, 2);\n /// assert iter1.next() == ?1;\n /// assert iter1.next() == ?3;\n /// assert iter1.next() == ?5;\n /// assert iter1.next() == null;\n ///\n /// // Negative step\n /// let iter2 = Int.rangeBy(7, 1, -2);\n /// assert iter2.next() == ?7;\n /// assert iter2.next() == ?5;\n /// assert iter2.next() == ?3;\n /// assert iter2.next() == null;\n /// ```\n ///\n /// If `step` is 0 or if the iteration would not progress towards the bound, returns an empty iterator.\n public func rangeBy(fromInclusive : Int, toExclusive : Int, step : Int) : Iter.Iter {\n if (step == 0) {\n Iter.empty()\n } else if (step > 0 and fromInclusive < toExclusive) {\n object {\n var n = fromInclusive;\n public func next() : ?Int {\n if (n >= toExclusive) {\n null\n } else {\n let current = n;\n n += step;\n ?current\n }\n }\n }\n } else if (step < 0 and fromInclusive > toExclusive) {\n object {\n var n = fromInclusive;\n public func next() : ?Int {\n if (n <= toExclusive) {\n null\n } else {\n let current = n;\n n += step;\n ?current\n }\n }\n }\n } else {\n Iter.empty()\n }\n };\n\n /// Returns an iterator over the integers from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int.rangeInclusive(3, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Int, to : Int) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n public func next() : ?Int {\n if (n > to) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over the integers from the first to second argument, inclusive,\n /// incrementing by the specified step size.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// // Positive step\n /// let iter1 = Int.rangeByInclusive(1, 7, 2);\n /// assert iter1.next() == ?1;\n /// assert iter1.next() == ?3;\n /// assert iter1.next() == ?5;\n /// assert iter1.next() == ?7;\n /// assert iter1.next() == null;\n ///\n /// // Negative step\n /// let iter2 = Int.rangeByInclusive(7, 1, -2);\n /// assert iter2.next() == ?7;\n /// assert iter2.next() == ?5;\n /// assert iter2.next() == ?3;\n /// assert iter2.next() == ?1;\n /// assert iter2.next() == null;\n /// ```\n ///\n /// If `from == to`, return an iterator which only returns that value.\n ///\n /// Otherwise, if `step` is 0 or if the iteration would not progress towards the bound, returns an empty iterator.\n public func rangeByInclusive(from : Int, to : Int, step : Int) : Iter.Iter {\n if (from == to) {\n Iter.singleton(from)\n } else if (step == 0) {\n Iter.empty()\n } else if (step > 0 and from < to) {\n object {\n var n = from;\n public func next() : ?Int {\n if (n >= to + 1) {\n null\n } else {\n let current = n;\n n += step;\n ?current\n }\n }\n }\n } else if (step < 0 and from > to) {\n object {\n var n = from;\n public func next() : ?Int {\n if (n + 1 <= to) {\n null\n } else {\n let current = n;\n n += step;\n ?current\n }\n }\n }\n } else {\n Iter.empty()\n }\n };\n\n}\n"},"Nat8.mo":{"content":"/// Utility functions on 8-bit unsigned integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Nat8 \"mo:core/Nat8\";\n/// ```\nimport Nat \"Nat\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 8-bit natural numbers.\n public type Nat8 = Prim.Types.Nat8;\n\n /// Maximum 8-bit natural number. `2 ** 8 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.maxValue == (255 : Nat8);\n /// ```\n public let maxValue : Nat8 = 255;\n\n /// Converts an 8-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.toNat(123) == (123 : Nat);\n /// ```\n public let toNat : (self : Nat8) -> Nat = Prim.nat8ToNat;\n\n /// Converts an unsigned integer with infinite precision to an 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.fromNat(123) == (123 : Nat8);\n /// ```\n public let fromNat : Nat -> Nat8 = Prim.natToNat8;\n\n /// Converts a 16-bit unsigned integer to a 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.fromNat16(123) == (123 : Nat8);\n /// ```\n public let fromNat16 : Nat16 -> Nat8 = Prim.nat16ToNat8;\n\n /// Converts an 8-bit unsigned integer to a 16-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.toNat16(123) == (123 : Nat16);\n /// ```\n public let toNat16 : (self : Nat8) -> Nat16 = Prim.nat8ToNat16;\n\n /// Converts a 32-bit unsigned integer to a 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.fromNat32(123) == (123 : Nat8);\n /// ```\n public func fromNat32(x : Nat32) : Nat8 {\n Prim.nat16ToNat8(Prim.nat32ToNat16(x))\n };\n\n /// Converts an 8-bit unsigned integer to a 32-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.toNat32(123) == (123 : Nat32);\n /// ```\n public func toNat32(self : Nat8) : Nat32 {\n Prim.nat16ToNat32(Prim.nat8ToNat16(self))\n };\n\n /// Converts a 64-bit unsigned integer to a 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.fromNat64(123) == (123 : Nat8);\n /// ```\n public func fromNat64(x : Nat64) : Nat8 {\n Prim.nat16ToNat8(Prim.nat32ToNat16(Prim.nat64ToNat32(x)))\n };\n\n /// Converts an 8-bit unsigned integer to a 64-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.toNat64(123) == (123 : Nat64);\n /// ```\n public func toNat64(self : Nat8) : Nat64 {\n Prim.nat32ToNat64(Prim.nat16ToNat32(Prim.nat8ToNat16(self)))\n };\n\n /// Converts a signed integer with infinite precision to an 8-bit unsigned integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.fromIntWrap(123) == (123 : Nat8);\n /// ```\n public let fromIntWrap : Int -> Nat8 = Prim.intToNat8Wrap;\n\n /// Converts `x` to its textual representation.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.toText(123) == (\"123\" : Text);\n /// ```\n public func toText(self : Nat8) : Text {\n Nat.toText(toNat(self))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.min(123, 200) == (123 : Nat8);\n /// ```\n public func min(x : Nat8, y : Nat8) : Nat8 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.max(123, 200) == (200 : Nat8);\n /// ```\n public func max(x : Nat8, y : Nat8) : Nat8 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Nat8 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.equal(1, 1);\n /// assert (1 : Nat8) == (1 : Nat8);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Nat8 = 111;\n /// let b : Nat8 = 222;\n /// assert not Nat8.equal(a, b);\n /// ```\n public func equal(x : Nat8, y : Nat8) : Bool { x == y };\n\n /// Inequality function for Nat8 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.notEqual(1, 2);\n /// assert (1 : Nat8) != (2 : Nat8);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Nat8, y : Nat8) : Bool { x != y };\n\n /// \"Less than\" function for Nat8 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.less(1, 2);\n /// assert (1 : Nat8) < (2 : Nat8);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Nat8, y : Nat8) : Bool { x < y };\n\n /// \"Less than or equal\" function for Nat8 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.lessOrEqual(1, 2);\n /// assert 1 <= 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Nat8, y : Nat8) : Bool { x <= y };\n\n /// \"Greater than\" function for Nat8 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.greater(2, 1);\n /// assert (2 : Nat8) > (1 : Nat8);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Nat8, y : Nat8) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Nat8 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.greaterOrEqual(2, 1);\n /// assert (2 : Nat8) >= (1 : Nat8);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Nat8, y : Nat8) : Bool { x >= y };\n\n /// General purpose comparison function for `Nat8`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.compare(2, 3) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([2, 3, 1] : [Nat8], Nat8.compare) == [1, 2, 3];\n /// ```\n public func compare(x : Nat8, y : Nat8) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.add(1, 2) == 3;\n /// assert (1 : Nat8) + (2 : Nat8) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 0, Nat8.add) == 6;\n /// ```\n public func add(x : Nat8, y : Nat8) : Nat8 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n /// Traps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.sub(2, 1) == 1;\n /// assert (2 : Nat8) - (1 : Nat8) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 20, Nat8.sub) == 14;\n /// ```\n public func sub(x : Nat8, y : Nat8) : Nat8 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.mul(2, 3) == 6;\n /// assert (2 : Nat8) * (3 : Nat8) == 6;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 1, Nat8.mul) == 6;\n /// ```\n public func mul(x : Nat8, y : Nat8) : Nat8 { x * y };\n\n /// Returns the quotient of `x` divided by `y`, `x / y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.div(6, 2) == 3;\n /// assert (6 : Nat8) / (2 : Nat8) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Nat8, y : Nat8) : Nat8 { x / y };\n\n /// Returns the remainder of `x` divided by `y`, `x % y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.rem(6, 4) == 2;\n /// assert (6 : Nat8) % (4 : Nat8) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Nat8, y : Nat8) : Nat8 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.pow(2, 3) == 8;\n /// assert (2 : Nat8) ** (3 : Nat8) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Nat8, y : Nat8) : Nat8 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitnot(0) == 255;\n /// assert ^(0 : Nat8) == 255;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Nat8) : Nat8 { ^x };\n\n /// Returns the bitwise and of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitand(3, 2) == 2;\n /// assert (3 : Nat8) & (2 : Nat8) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Nat8, y : Nat8) : Nat8 { x & y };\n\n /// Returns the bitwise or of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitor(3, 2) == 3;\n /// assert (3 : Nat8) | (2 : Nat8) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `|` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `|`\n /// as a function value at the moment.\n public func bitor(x : Nat8, y : Nat8) : Nat8 { x | y };\n\n /// Returns the bitwise exclusive or of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitxor(3, 2) == 1;\n /// assert (3 : Nat8) ^ (2 : Nat8) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitxor(x : Nat8, y : Nat8) : Nat8 { x ^ y };\n\n /// Returns the bitwise shift left of `x` by `y`, `x << y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitshiftLeft(1, 2) == 4;\n /// assert (1 : Nat8) << (2 : Nat8) == 4;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Nat8, y : Nat8) : Nat8 { x << y };\n\n /// Returns the bitwise shift right of `x` by `y`, `x >> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitshiftRight(4, 2) == 1;\n /// assert (4 : Nat8) >> (2 : Nat8) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Nat8, y : Nat8) : Nat8 { x >> y };\n\n /// Returns the bitwise rotate left of `x` by `y`, `x <<> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitrotLeft(128, 1) == 1;\n /// assert (128 : Nat8) <<> (1 : Nat8) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Nat8, y : Nat8) : Nat8 { x <<> y };\n\n /// Returns the bitwise rotate right of `x` by `y`, `x <>> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitrotRight(1, 1) == 128;\n /// assert (1 : Nat8) <>> (1 : Nat8) == 128;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Nat8, y : Nat8) : Nat8 { x <>> y };\n\n /// Returns the value of bit `p mod 8` in `x`, `(x & 2^(p mod 8)) == 2^(p mod 8)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bittest(5, 2);\n /// ```\n public func bittest(x : Nat8, p : Nat) : Bool {\n Prim.btstNat8(x, Prim.natToNat8(p))\n };\n\n /// Returns the value of setting bit `p mod 8` in `x` to `1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitset(5, 1) == 7;\n /// ```\n public func bitset(x : Nat8, p : Nat) : Nat8 {\n x | (1 << Prim.natToNat8(p))\n };\n\n /// Returns the value of clearing bit `p mod 8` in `x` to `0`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitclear(5, 2) == 1;\n /// ```\n public func bitclear(x : Nat8, p : Nat) : Nat8 {\n x & ^(1 << Prim.natToNat8(p))\n };\n\n /// Returns the value of flipping bit `p mod 8` in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitflip(5, 2) == 1;\n /// ```\n public func bitflip(x : Nat8, p : Nat) : Nat8 {\n x ^ (1 << Prim.natToNat8(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitcountNonZero(5) == 2;\n /// ```\n public let bitcountNonZero : (x : Nat8) -> Nat8 = Prim.popcntNat8;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitcountLeadingZero(5) == 5;\n /// ```\n public let bitcountLeadingZero : (x : Nat8) -> Nat8 = Prim.clzNat8;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.bitcountTrailingZero(6) == 1;\n /// ```\n public let bitcountTrailingZero : (x : Nat8) -> Nat8 = Prim.ctzNat8;\n\n /// Returns the sum of `x` and `y`, `x +% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.addWrap(230, 26) == 0;\n /// assert (230 : Nat8) +% (26 : Nat8) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Nat8, y : Nat8) : Nat8 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`. Wraps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.subWrap(0, 1) == 255;\n /// assert (0 : Nat8) -% (1 : Nat8) == 255;\n /// ```\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Nat8, y : Nat8) : Nat8 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.mulWrap(230, 26) == 92;\n /// assert (230 : Nat8) *% (26 : Nat8) == 92;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Nat8, y : Nat8) : Nat8 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat8.powWrap(2, 8) == 0;\n /// assert (2 : Nat8) **% (8 : Nat8) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Nat8, y : Nat8) : Nat8 { x **% y };\n\n /// Returns an iterator over `Nat8` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat8.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat8.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Nat8, toExclusive : Nat8) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Nat8 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Nat8` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat8.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat8.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Nat8, to : Nat8) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Nat8 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Nat8 values, from 0 to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat8.allValues();\n /// assert iter.next() == ?0;\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(0, maxValue)\n };\n\n}\n"},"Func.mo":{"content":"/// Functions on functions, creating functions from simpler inputs.\n///\n/// (Most commonly used when programming in functional style using higher-order\n/// functions.)\n///\n/// Import from the core package to use this module.\n///\n/// ```motoko name=import\n/// import Func = \"mo:core/Func\";\n/// ```\n\nmodule {\n\n /// The composition of two functions `f` and `g` is a function that applies `g` and then `f`.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Text \"mo:core/Text\";\n /// import Char \"mo:core/Char\";\n ///\n /// let textFromNat32 = Func.compose(Text.fromChar, Char.fromNat32);\n /// assert textFromNat32(65) == \"A\";\n /// ```\n public func compose(f : B -> C, g : A -> B) : A -> C {\n func(x : A) : C {\n f(g(x))\n }\n };\n\n /// The `identity` function returns its argument.\n /// Example:\n /// ```motoko include=import\n /// assert Func.identity(10) == 10;\n /// assert Func.identity(true) == true;\n /// ```\n public func identity(x : A) : A = x;\n\n /// The const function is a _curried_ function that accepts an argument `x`,\n /// and then returns a function that discards its argument and always returns\n /// the `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Func.const(10)(\"hello\") == 10;\n /// assert Func.const(true)(20) == true;\n /// ```\n public func const(x : A) : B -> A = func _ = x\n}\n"},"Bool.mo":{"content":"/// Boolean type and operations.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Bool \"mo:core/Bool\";\n/// ```\n///\n/// While boolean operators `_ and _` and `_ or _` are short-circuiting,\n/// avoiding computation of the right argument when possible, the functions\n/// `logicalAnd(_, _)` and `logicalOr(_, _)` are *strict* and will always evaluate *both*\n/// of their arguments.\n///\n/// Example:\n/// ```motoko include=import\n/// let t = true;\n/// let f = false;\n///\n/// // Short-circuiting AND\n/// assert not (t and f);\n///\n/// // Short-circuiting OR\n/// assert t or f;\n/// ```\n\nimport Prim \"mo:⛔\";\nimport Iter \"Iter\";\nimport Order \"Order\";\n\nmodule {\n\n /// Booleans with constants `true` and `false`.\n public type Bool = Prim.Types.Bool;\n\n /// Returns `a and b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert not Bool.logicalAnd(true, false);\n /// assert Bool.logicalAnd(true, true);\n /// ```\n public func logicalAnd(self : Bool, other : Bool) : Bool = self and other;\n\n /// Returns `a or b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Bool.logicalOr(true, false);\n /// assert Bool.logicalOr(false, true);\n /// ```\n public func logicalOr(self : Bool, other : Bool) : Bool = self or other;\n\n /// Returns exclusive or of `a` and `b`, `a != b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Bool.logicalXor(true, false);\n /// assert not Bool.logicalXor(true, true);\n /// assert not Bool.logicalXor(false, false);\n /// ```\n public func logicalXor(self : Bool, other : Bool) : Bool = self != other;\n\n /// Returns `not bool`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Bool.logicalNot(false);\n /// assert not Bool.logicalNot(true);\n /// ```\n public func logicalNot(self : Bool) : Bool = not self;\n\n /// Returns `a == b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Bool.equal(true, true);\n /// assert not Bool.equal(true, false);\n /// ```\n public func equal(self : Bool, other : Bool) : Bool { self == other };\n\n /// Returns the ordering of `a` compared to `b`.\n /// Returns `#less` if `a` is `false` and `b` is `true`,\n /// `#equal` if `a` equals `b`,\n /// and `#greater` if `a` is `true` and `b` is `false`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Bool.compare(true, false) == #greater;\n /// assert Bool.compare(true, true) == #equal;\n /// assert Bool.compare(false, true) == #less;\n /// ```\n public func compare(self : Bool, other : Bool) : Order.Order {\n if (self == other) #equal else if self #greater else #less\n };\n\n /// Returns a text value which is either `\"true\"` or `\"false\"` depending on the input value.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Bool.toText(true) == \"true\";\n /// assert Bool.toText(false) == \"false\";\n /// ```\n public func toText(self : Bool) : Text {\n if self \"true\" else \"false\"\n };\n\n /// Returns an iterator over all possible boolean values (`true` and `false`).\n ///\n /// Example:\n /// ```motoko include=import\n /// let iter = Bool.allValues();\n /// assert iter.next() == ?true;\n /// assert iter.next() == ?false;\n /// assert iter.next() == null;\n /// ```\n public func allValues() : Iter.Iter = object {\n var state : ?Bool = ?true;\n public func next() : ?Bool {\n switch state {\n case (?true) { state := ?false; ?true };\n case (?false) { state := null; ?false };\n case null { null }\n }\n }\n };\n\n}\n"},"Int64.mo":{"content":"/// Utility functions on 64-bit signed integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Int64 \"mo:core/Int64\";\n/// ```\n\nimport Int \"Int\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 64-bit signed integers.\n public type Int64 = Prim.Types.Int64;\n\n /// Minimum 64-bit integer value, `-2 ** 63`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.minValue == -9_223_372_036_854_775_808;\n /// ```\n public let minValue : Int64 = -9_223_372_036_854_775_808;\n\n /// Maximum 64-bit integer value, `+2 ** 63 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.maxValue == +9_223_372_036_854_775_807;\n /// ```\n public let maxValue : Int64 = 9_223_372_036_854_775_807;\n\n /// Converts a 64-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.toInt(123_456) == (123_456 : Int);\n /// ```\n public let toInt : (self : Int64) -> Int = Prim.int64ToInt;\n\n /// Converts a signed integer with infinite precision to a 64-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.fromInt(123_456) == (+123_456 : Int64);\n /// ```\n public let fromInt : (x : Int) -> Int64 = Prim.intToInt64;\n\n /// Converts a 32-bit signed integer to a 64-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.fromInt32(-123_456) == (-123_456 : Int64);\n /// ```\n public let fromInt32 : (x : Int32) -> Int64 = Prim.int32ToInt64;\n\n /// Converts a 16-bit signed integer to a 64-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.fromInt16(-123) == (-123 : Int64);\n /// ```\n public func fromInt16(x : Int16) : Int64 {\n Prim.int32ToInt64(Prim.int16ToInt32(x))\n };\n\n /// Converts an 8-bit signed integer to a 64-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.fromInt8(-123) == (-123 : Int64);\n /// ```\n public func fromInt8(x : Int8) : Int64 {\n Prim.int32ToInt64(Prim.int16ToInt32(Prim.int8ToInt16(x)))\n };\n\n /// Converts a 64-bit signed integer to a 32-bit signed integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.toInt32(-123_456) == (-123_456 : Int32);\n /// ```\n public func toInt32(self : Int64) : Int32 {\n Prim.int64ToInt32(self)\n };\n\n /// Converts a 64-bit signed integer to a 16-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.toInt16(-123) == (-123 : Int16);\n /// ```\n public func toInt16(self : Int64) : Int16 {\n Prim.int32ToInt16(Prim.int64ToInt32(self))\n };\n\n /// Converts a 64-bit signed integer to an 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.toInt8(-123) == (-123 : Int8);\n /// ```\n public func toInt8(self : Int64) : Int8 {\n Prim.int16ToInt8(Prim.int32ToInt16(Prim.int64ToInt32(self)))\n };\n\n /// Converts a signed integer with infinite precision to a 64-bit signed integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.fromIntWrap(-123_456) == (-123_456 : Int64);\n /// ```\n public let fromIntWrap : Int -> Int64 = Prim.intToInt64Wrap;\n\n /// Converts an unsigned 64-bit integer to a signed 64-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.fromNat64(123_456) == (+123_456 : Int64);\n /// ```\n public let fromNat64 : Nat64 -> Int64 = Prim.nat64ToInt64;\n\n /// Converts a signed 64-bit integer to an unsigned 64-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.toNat64(-1) == (18_446_744_073_709_551_615 : Nat64); // underflow\n /// ```\n public let toNat64 : (self : Int64) -> Nat64 = Prim.int64ToNat64;\n\n /// Returns the Text representation of `x`. Textual representation _do not_\n /// contain underscores to represent commas.\n ///\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.toText(-123456) == \"-123456\";\n /// ```\n public func toText(self : Int64) : Text {\n Int.toText(toInt(self))\n };\n\n /// Returns the absolute value of `x`.\n ///\n /// Traps when `x == -2 ** 63` (the minimum `Int64` value).\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.abs(-123456) == +123_456;\n /// ```\n public func abs(x : Int64) : Int64 {\n fromInt(Int.abs(toInt(x)))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.min(+2, -3) == -3;\n /// ```\n public func min(x : Int64, y : Int64) : Int64 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.max(+2, -3) == +2;\n /// ```\n public func max(x : Int64, y : Int64) : Int64 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Int64 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.equal(-1, -1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Int64 = -123;\n /// let b : Int64 = 123;\n /// assert not Int64.equal(a, b);\n /// ```\n public func equal(x : Int64, y : Int64) : Bool { x == y };\n\n /// Inequality function for Int64 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.notEqual(-1, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Int64, y : Int64) : Bool { x != y };\n\n /// \"Less than\" function for Int64 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.less(-2, 1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Int64, y : Int64) : Bool { x < y };\n\n /// \"Less than or equal\" function for Int64 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.lessOrEqual(-2, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Int64, y : Int64) : Bool { x <= y };\n\n /// \"Greater than\" function for Int64 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.greater(-2, -3);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Int64, y : Int64) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Int64 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.greaterOrEqual(-2, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Int64, y : Int64) : Bool {\n x >= y\n };\n\n /// General-purpose comparison function for `Int64`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.compare(-3, 2) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([1, -2, -3] : [Int64], Int64.compare) == [-3, -2, 1];\n /// ```\n public func compare(x : Int64, y : Int64) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the negation of `x`, `-x`.\n ///\n /// Traps on overflow, i.e. for `neg(-2 ** 63)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.neg(123) == -123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n public func neg(x : Int64) : Int64 { -x };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.add(1234, 123) == +1_357;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int64.add) == -4;\n /// ```\n public func add(x : Int64, y : Int64) : Int64 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.sub(123, 100) == +23;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int64.sub) == 4;\n /// ```\n public func sub(x : Int64, y : Int64) : Int64 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.mul(123, 10) == +1_230;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 1, Int64.mul) == 6;\n /// ```\n public func mul(x : Int64, y : Int64) : Int64 { x * y };\n\n /// Returns the signed integer division of `x` by `y`, `x / y`.\n /// Rounds the quotient towards zero, which is the same as truncating the decimal places of the quotient.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.div(123, 10) == +12;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Int64, y : Int64) : Int64 { x / y };\n\n /// Returns the remainder of the signed integer division of `x` by `y`, `x % y`,\n /// which is defined as `x - x / y * y`.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.rem(123, 10) == +3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Int64, y : Int64) : Int64 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n ///\n /// Traps on overflow/underflow and when `y < 0 or y >= 64`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.pow(2, 10) == +1_024;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Int64, y : Int64) : Int64 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitnot(-256 /* 0xffff_ffff_ffff_ff00 */) == +255 // 0xff;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Int64) : Int64 { ^x };\n\n /// Returns the bitwise \"and\" of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitand(0xffff, 0x00f0) == +240 // 0xf0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Int64, y : Int64) : Int64 { x & y };\n\n /// Returns the bitwise \"or\" of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitor(0xffff, 0x00f0) == +65_535 // 0xffff;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `|` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `|`\n /// as a function value at the moment.\n public func bitor(x : Int64, y : Int64) : Int64 { x | y };\n\n /// Returns the bitwise \"exclusive or\" of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitxor(0xffff, 0x00f0) == +65_295 // 0xff0f;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitxor(x : Int64, y : Int64) : Int64 { x ^ y };\n\n /// Returns the bitwise left shift of `x` by `y`, `x << y`.\n /// The right bits of the shift filled with zeros.\n /// Left-overflowing bits, including the sign bit, are discarded.\n ///\n /// For `y >= 64`, the semantics is the same as for `bitshiftLeft(x, y % 64)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftLeft(x, y + y % 64)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitshiftLeft(1, 8) == +256 // 0x100 equivalent to `2 ** 8`.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Int64, y : Int64) : Int64 {\n x << y\n };\n\n /// Returns the signed bitwise right shift of `x` by `y`, `x >> y`.\n /// The sign bit is retained and the left side is filled with the sign bit.\n /// Right-underflowing bits are discarded, i.e. not rotated to the left side.\n ///\n /// For `y >= 64`, the semantics is the same as for `bitshiftRight(x, y % 64)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftRight (x, y + y % 64)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitshiftRight(1024, 8) == +4 // equivalent to `1024 / (2 ** 8)`;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Int64, y : Int64) : Int64 {\n x >> y\n };\n\n /// Returns the bitwise left rotatation of `x` by `y`, `x <<> y`.\n /// Each left-overflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 64`, the semantics is the same as for `bitrotLeft(x, y % 64)`.\n ///\n /// Example:\n /// ```motoko include=import\n ///\n /// assert Int64.bitrotLeft(0x2000_0000_0000_0001, 4) == +18 // 0x12.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Int64, y : Int64) : Int64 { x <<> y };\n\n /// Returns the bitwise right rotation of `x` by `y`, `x <>> y`.\n /// Each right-underflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 64`, the semantics is the same as for `bitrotRight(x, y % 64)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitrotRight(0x0002_0000_0000_0001, 48) == +65538 // 0x1_0002.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Int64, y : Int64) : Int64 {\n x <>> y\n };\n\n /// Returns the value of bit `p` in `x`, `x & 2**p == 2**p`.\n /// If `p >= 64`, the semantics is the same as for `bittest(x, p % 64)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bittest(128, 7);\n /// ```\n public func bittest(x : Int64, p : Nat) : Bool {\n Prim.btstInt64(x, Prim.intToInt64(p))\n };\n\n /// Returns the value of setting bit `p` in `x` to `1`.\n /// If `p >= 64`, the semantics is the same as for `bitset(x, p % 64)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitset(0, 7) == +128;\n /// ```\n public func bitset(x : Int64, p : Nat) : Int64 {\n x | (1 << Prim.intToInt64(p))\n };\n\n /// Returns the value of clearing bit `p` in `x` to `0`.\n /// If `p >= 64`, the semantics is the same as for `bitclear(x, p % 64)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitclear(-1, 7) == -129;\n /// ```\n public func bitclear(x : Int64, p : Nat) : Int64 {\n x & ^(1 << Prim.intToInt64(p))\n };\n\n /// Returns the value of flipping bit `p` in `x`.\n /// If `p >= 64`, the semantics is the same as for `bitclear(x, p % 64)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitflip(255, 7) == +127;\n /// ```\n public func bitflip(x : Int64, p : Nat) : Int64 {\n x ^ (1 << Prim.intToInt64(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitcountNonZero(0xffff) == +16;\n /// ```\n public let bitcountNonZero : (x : Int64) -> Int64 = Prim.popcntInt64;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitcountLeadingZero(0x8000_0000) == +32;\n /// ```\n public let bitcountLeadingZero : (x : Int64) -> Int64 = Prim.clzInt64;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.bitcountTrailingZero(0x0201_0000) == +16;\n /// ```\n public let bitcountTrailingZero : (x : Int64) -> Int64 = Prim.ctzInt64;\n\n /// Returns the upper (i.e. most significant), lower (least significant)\n /// and in-between bytes of `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.explode 0x33772266aa885511 == (51, 119, 34, 102, 170, 136, 85, 17);\n /// ```\n public let explode : (x : Int64) -> (msb : Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, lsb : Nat8) = Prim.explodeInt64;\n\n /// Returns the sum of `x` and `y`, `x +% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.addWrap(2 ** 62, 2 ** 62) == -9_223_372_036_854_775_808; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Int64, y : Int64) : Int64 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.subWrap(-2 ** 63, 1) == +9_223_372_036_854_775_807; // underflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Int64, y : Int64) : Int64 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.mulWrap(2 ** 32, 2 ** 32) == 0; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Int64, y : Int64) : Int64 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`.\n ///\n /// Wraps on overflow/underflow.\n /// Traps if `y < 0 or y >= 64`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int64.powWrap(2, 63) == -9_223_372_036_854_775_808; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Int64, y : Int64) : Int64 { x **% y };\n\n /// Returns an iterator over `Int64` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int64.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int64.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Int64, toExclusive : Int64) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Int64 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Int64` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int64.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int64.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Int64, to : Int64) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Int64 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Int64 values, from minValue to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int64.allValues();\n /// assert iter.next() == ?-9_223_372_036_854_775_808;\n /// assert iter.next() == ?-9_223_372_036_854_775_807;\n /// assert iter.next() == ?-9_223_372_036_854_775_806;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(minValue, maxValue)\n };\n\n}\n"},"Random.mo":{"content":"/// Random number generation.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Random \"mo:core/Random\";\n/// ```\n\nimport Nat8 \"Nat8\";\nimport Nat64 \"Nat64\";\nimport Int \"Int\";\nimport Nat \"Nat\";\nimport Blob \"Blob\";\nimport Runtime \"Runtime\";\n\nmodule {\n\n public type State = {\n var bytes : [Nat8];\n var index : Nat;\n var bits : Nat8;\n var bitMask : Nat8\n };\n\n public type SeedState = {\n random : State;\n prng : PRNG.State\n };\n\n let rawRand = (actor \"aaaaa-aa\" : actor { raw_rand : () -> async Blob }).raw_rand;\n\n public let blob : shared () -> async Blob = rawRand;\n\n public func bool() : async Bool {\n await* crypto().bool()\n };\n public func nat8() : async Nat8 {\n await* crypto().nat8()\n };\n public func nat64() : async Nat64 {\n await* crypto().nat64()\n };\n public func nat64Range(fromInclusive : Nat64, toExclusive : Nat64) : async Nat64 {\n await* crypto().nat64Range(fromInclusive, toExclusive)\n };\n public func natRange(fromInclusive : Nat, toExclusive : Nat) : async Nat {\n await* crypto().natRange(fromInclusive, toExclusive)\n };\n public func intRange(fromInclusive : Int, toExclusive : Int) : async Int {\n await* crypto().intRange(fromInclusive, toExclusive)\n };\n\n /// Initializes a random number generator state. This is used\n /// to create a `Random` or `AsyncRandom` instance with a specific state.\n /// The state is empty, but it can be reused after upgrading the canister.\n ///\n /// Example:\n /// ```motoko\n /// import Random \"mo:core/Random\";\n ///\n /// persistent actor {\n /// let state = Random.emptyState();\n /// transient let random = Random.cryptoFromState(state);\n ///\n /// public func main() : async () {\n /// let coin = await* random.bool(); // true or false\n /// }\n /// }\n /// ```\n /// @deprecated M0235\n public func emptyState() : State = {\n var bytes = [];\n var index = 0;\n var bits = 0x00;\n var bitMask = 0x00\n };\n\n /// Initializes a pseudo-random number generator state with a 64-bit seed.\n /// This is used to create a `Random` instance with a specific seed.\n /// The seed is used to initialize the PRNG state.\n ///\n /// Example:\n /// ```motoko\n /// import Random \"mo:core/Random\";\n ///\n /// persistent actor {\n /// let state = Random.seedState(123);\n /// transient let random = Random.seedFromState(state);\n ///\n /// public func main() : async () {\n /// let coin = random.bool(); // true or false\n /// }\n /// }\n /// ```\n /// @deprecated M0235\n public func seedState(seed : Nat64) : SeedState = {\n random = emptyState();\n prng = PRNG.init(seed)\n };\n\n /// Creates a pseudo-random number generator from a 64-bit seed.\n /// The seed is used to initialize the PRNG state.\n /// This is suitable for simulations and testing, but not for cryptographic purposes.\n ///\n /// Example:\n /// ```motoko include=import\n /// let random = Random.seed(123);\n /// let coin = random.bool(); // true or false\n /// ```\n /// @deprecated M0235\n public func seed(seed : Nat64) : Random {\n seedFromState(seedState(seed))\n };\n\n /// Creates a pseudo-random number generator with the given state.\n /// This provides statistical randomness suitable for simulations and testing,\n /// but should not be used for cryptographic purposes.\n ///\n /// Example:\n /// ```motoko\n /// import Random \"mo:core/Random\";\n ///\n /// persistent actor {\n /// let state = Random.seedState(123);\n /// transient let random = Random.seedFromState(state);\n ///\n /// public func main() : async () {\n /// let coin = random.bool(); // true or false\n /// }\n /// }\n /// ```\n /// @deprecated M0235\n public func seedFromState(state : SeedState) : Random {\n Random(\n state.random,\n func() : Blob {\n // Generate 8 bytes directly from a single 64-bit number\n let n = PRNG.next(state.prng);\n let (b7, b6, b5, b4, b3, b2, b1, b0) = Nat64.explode(n);\n Blob.fromArray([b0, b1, b2, b3, b4, b5, b6, b7])\n }\n )\n };\n\n /// Initializes a cryptographic random number generator\n /// using entropy from the ICP management canister.\n ///\n /// Example:\n /// ```motoko\n /// import Random \"mo:core/Random\";\n ///\n /// persistent actor {\n /// transient let random = Random.crypto();\n ///\n /// public func main() : async () {\n /// let coin = await* random.bool(); // true or false\n /// }\n /// }\n /// ```\n /// @deprecated M0235\n public func crypto() : AsyncRandom {\n cryptoFromState(emptyState())\n };\n\n /// Creates a random number generator suitable for cryptography\n /// using entropy from the ICP management canister. Initializing\n /// from a state makes it possible to reuse entropy after\n /// upgrading the canister.\n ///\n /// Example:\n /// ```motoko\n /// import Random \"mo:core/Random\";\n ///\n /// persistent actor {\n /// let state = Random.emptyState();\n /// transient let random = Random.cryptoFromState(state);\n ///\n /// func example() : async () {\n /// let coin = await* random.bool(); // true or false\n /// }\n /// }\n /// ```\n /// @deprecated M0235\n public func cryptoFromState(state : State) : AsyncRandom {\n AsyncRandom(state, func() : async* Blob { await rawRand() })\n };\n\n /// @deprecated M0235\n public class Random(state : State, generator : () -> Blob) {\n\n func nextBit() : Bool {\n if (0 : Nat8 == state.bitMask) {\n state.bits := nat8();\n state.bitMask := 0x40;\n 0 : Nat8 != state.bits & (0x80 : Nat8)\n } else {\n let m = state.bitMask;\n state.bitMask >>= (1 : Nat8);\n 0 : Nat8 != state.bits & m\n }\n };\n\n /// Random choice between `true` and `false`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let random = Random.seed(42);\n /// let coin = random.bool(); // true or false\n /// ```\n /// @deprecated M0235\n public func bool() : Bool {\n nextBit()\n };\n\n /// Random `Nat8` value in the range [0, 256).\n ///\n /// Example:\n /// ```motoko include=import\n /// let random = Random.seed(42);\n /// let byte = random.nat8(); // 0 to 255\n /// ```\n /// @deprecated M0235\n public func nat8() : Nat8 {\n if (state.index >= state.bytes.size()) {\n let newBytes = Blob.toArray(generator());\n if (newBytes.size() == 0) {\n Runtime.trap(\"Random: generator produced empty Blob\")\n };\n state.bytes := newBytes;\n state.index := 0\n };\n let byte = state.bytes[state.index];\n state.index += 1;\n byte\n };\n\n // Helper function which returns a uniformly sampled `Nat64` in the range `[0, max]`.\n // Uses rejection sampling to ensure uniform distribution even when the range\n // doesn't divide evenly into 2^64. This avoids modulo bias that would occur\n // from simply taking the modulo of a random 64-bit number.\n func uniform64(max : Nat64) : Nat64 {\n if (max == 0) {\n return 0\n };\n // if (max == 1) {\n // return switch (bool()) {\n // case false 0;\n // case true 1\n // }\n // };\n if (max == Nat64.maxValue) {\n return nat64()\n };\n let toExclusive = max + 1;\n // 2^64 - (2^64 % toExclusive) = (2^64-1) - (2^64-1 % toExclusive):\n let cutoff = Nat64.maxValue - (Nat64.maxValue % toExclusive);\n // 2^64 / toExclusive, with toExclusive > 1:\n let multiple = Nat64.fromNat(/* 2^64 */ 0x10000000000000000 / Nat64.toNat(toExclusive));\n loop {\n // Build up a random Nat64 from bytes\n var number = nat64();\n // If number is below cutoff, we can use it\n if (number < cutoff) {\n // Scale down to desired range\n return number / multiple\n };\n // Otherwise reject and try again\n }\n };\n\n /// Random `Nat64` value in the range [0, 2^64).\n ///\n /// Example:\n /// ```motoko include=import\n /// let random = Random.seed(42);\n /// let number = random.nat64(); // 0 to 18446744073709551615\n /// ```\n /// @deprecated M0235\n public func nat64() : Nat64 {\n (Nat64.fromNat(Nat8.toNat(nat8())) << 56) | (Nat64.fromNat(Nat8.toNat(nat8())) << 48) | (Nat64.fromNat(Nat8.toNat(nat8())) << 40) | (Nat64.fromNat(Nat8.toNat(nat8())) << 32) | (Nat64.fromNat(Nat8.toNat(nat8())) << 24) | (Nat64.fromNat(Nat8.toNat(nat8())) << 16) | (Nat64.fromNat(Nat8.toNat(nat8())) << 8) | Nat64.fromNat(Nat8.toNat(nat8()))\n };\n\n /// Random `Nat64` value in the range [fromInclusive, toExclusive).\n ///\n /// Example:\n /// ```motoko include=import\n /// let random = Random.seed(42);\n /// let dice = random.nat64Range(1, 7); // 1 to 6\n /// ```\n /// @deprecated M0235\n public func nat64Range(fromInclusive : Nat64, toExclusive : Nat64) : Nat64 {\n if (fromInclusive >= toExclusive) {\n Runtime.trap(\"Random.nat64Range(): fromInclusive >= toExclusive\")\n };\n uniform64(toExclusive - fromInclusive - 1) + fromInclusive\n };\n\n /// Random `Nat` value in the range [fromInclusive, toExclusive).\n ///\n /// Example:\n /// ```motoko include=import\n /// let random = Random.seed(42);\n /// let index = random.natRange(0, 10); // 0 to 9\n /// ```\n /// @deprecated M0235\n public func natRange(fromInclusive : Nat, toExclusive : Nat) : Nat {\n if (fromInclusive >= toExclusive) {\n Runtime.trap(\"Random.natRange(): fromInclusive >= toExclusive\")\n };\n Nat64.toNat(uniform64(Nat64.fromNat(toExclusive - fromInclusive - 1))) + fromInclusive\n };\n\n /// @deprecated M0235\n public func intRange(fromInclusive : Int, toExclusive : Int) : Int {\n let range = Nat.fromInt(toExclusive - fromInclusive - 1);\n Nat64.toNat(uniform64(Nat64.fromNat(range))) + fromInclusive\n };\n\n };\n\n /// @deprecated M0235\n public class AsyncRandom(state : State, generator : () -> async* Blob) {\n\n func nextBit() : async* Bool {\n if (0 : Nat8 == state.bitMask) {\n state.bits := await* nat8();\n state.bitMask := 0x40;\n 0 : Nat8 != state.bits & (0x80 : Nat8)\n } else {\n let m = state.bitMask;\n state.bitMask >>= (1 : Nat8);\n 0 : Nat8 != state.bits & m\n }\n };\n\n /// Random choice between `true` and `false`.\n /// @deprecated M0235\n public func bool() : async* Bool {\n await* nextBit()\n };\n\n /// Random `Nat8` value in the range [0, 256).\n /// @deprecated M0235\n public func nat8() : async* Nat8 {\n if (state.index >= state.bytes.size()) {\n let newBytes = Blob.toArray(await* generator());\n if (newBytes.size() == 0) {\n Runtime.trap(\"AsyncRandom: generator produced empty Blob\")\n };\n state.bytes := newBytes;\n state.index := 0\n };\n let byte = state.bytes[state.index];\n state.index += 1;\n byte\n };\n\n // Helper function which returns a uniformly sampled `Nat64` in the range `[0, max]`.\n // Uses rejection sampling to ensure uniform distribution even when the range\n // doesn't divide evenly into 2^64. This avoids modulo bias that would occur\n // from simply taking the modulo of a random 64-bit number.\n func uniform64(max : Nat64) : async* Nat64 {\n if (max == 0) {\n return 0\n };\n if (max == Nat64.maxValue) {\n return await* nat64()\n };\n let toExclusive = max + 1;\n // 2^64 - (2^64 % toExclusive) = (2^64-1) - (2^64-1 % toExclusive):\n let cutoff = Nat64.maxValue - (Nat64.maxValue % toExclusive);\n // 2^64 / toExclusive, with toExclusive > 1:\n let multiple = Nat64.fromNat(/* 2^64 */ 0x10000000000000000 / Nat64.toNat(toExclusive));\n loop {\n // Build up a random Nat64 from bytes\n var number = await* nat64();\n // If number is below cutoff, we can use it\n if (number < cutoff) {\n // Scale down to desired range\n return number / multiple\n };\n // Otherwise reject and try again\n }\n };\n\n /// Random `Nat64` value in the range [0, 2^64).\n /// @deprecated M0235\n public func nat64() : async* Nat64 {\n (Nat64.fromNat(Nat8.toNat(await* nat8())) << 56) | (Nat64.fromNat(Nat8.toNat(await* nat8())) << 48) | (Nat64.fromNat(Nat8.toNat(await* nat8())) << 40) | (Nat64.fromNat(Nat8.toNat(await* nat8())) << 32) | (Nat64.fromNat(Nat8.toNat(await* nat8())) << 24) | (Nat64.fromNat(Nat8.toNat(await* nat8())) << 16) | (Nat64.fromNat(Nat8.toNat(await* nat8())) << 8) | Nat64.fromNat(Nat8.toNat(await* nat8()))\n };\n\n /// Random `Nat64` value in the range [fromInclusive, toExclusive).\n /// @deprecated M0235\n public func nat64Range(fromInclusive : Nat64, toExclusive : Nat64) : async* Nat64 {\n if (fromInclusive >= toExclusive) {\n Runtime.trap(\"AsyncRandom.nat64Range(): fromInclusive >= toExclusive\")\n };\n (await* uniform64(toExclusive - fromInclusive - 1)) + fromInclusive\n };\n\n /// Random `Nat` value in the range [fromInclusive, toExclusive).\n /// @deprecated M0235\n public func natRange(fromInclusive : Nat, toExclusive : Nat) : async* Nat {\n if (fromInclusive >= toExclusive) {\n Runtime.trap(\"AsyncRandom.natRange(): fromInclusive >= toExclusive\")\n };\n Nat64.toNat(await* uniform64(Nat64.fromNat(toExclusive - fromInclusive - 1))) + fromInclusive\n };\n\n /// Random `Int` value in the range [fromInclusive, toExclusive).\n /// @deprecated M0235\n public func intRange(fromInclusive : Int, toExclusive : Int) : async* Int {\n let range = Nat.fromInt(toExclusive - fromInclusive - 1);\n Nat64.toNat(await* uniform64(Nat64.fromNat(range))) + fromInclusive\n };\n\n };\n\n // Derived from https://github.com/research-ag/prng\n module PRNG {\n let p : Nat64 = 24;\n let q : Nat64 = 11;\n let r : Nat64 = 3;\n\n public type State = {\n var a : Nat64;\n var b : Nat64;\n var c : Nat64;\n var d : Nat64\n };\n\n public func init(seed : Nat64) : State {\n init3(seed, seed, seed)\n };\n\n public func init3(seed1 : Nat64, seed2 : Nat64, seed3 : Nat64) : State {\n let state : State = {\n var a = seed1;\n var b = seed2;\n var c = seed3;\n var d = 1\n };\n for (_ in Nat.range(0, 11)) ignore next(state);\n state\n };\n\n public func next(state : State) : Nat64 {\n let tmp = state.a +% state.b +% state.d;\n state.a := state.b ^ (state.b >> q);\n state.b := state.c +% (state.c << r);\n state.c := (state.c <<> p) +% tmp;\n state.d +%= 1;\n tmp\n }\n }\n\n}\n"},"internal/BTreeHelper.mo":{"content":"// Implementation is courtesy of Byron Becker.\n// Source: https://github.com/canscale/StableHeapBTreeMap\n// Copyright (c) 2022 Byron Becker.\n// Distributed under Apache 2.0 license.\n// With adjustments by the Motoko team.\n\nimport VarArray \"../VarArray\";\nimport Runtime \"../Runtime\";\n\nmodule {\n /// Inserts an element into a mutable array at a specific index, shifting all other elements over\n ///\n /// Parameters:\n ///\n /// array - the array being inserted into\n /// insertElement - the element being inserted\n /// insertIndex - the index at which the element will be inserted\n /// currentLastElementIndex - the index of last **non-null** element in the array (used to start shifting elements over)\n ///\n /// Note: This assumes that there are nulls at the end of the array and that the array is not full.\n /// If the array is already full, this function will overflow the array size when attempting to\n /// insert and will cause the cansiter to trap\n public func insertAtPosition(array : [var ?T], insertElement : ?T, insertIndex : Nat, currentLastElementIndex : Nat) {\n // if inserting at the end of the array, don't need to do any shifting and can just insert and return\n if (insertIndex == currentLastElementIndex + 1) {\n array[insertIndex] := insertElement;\n return\n };\n\n // otherwise, need to shift all of the elements at the end of the array over one by one until\n // the insert index is hit.\n var j = currentLastElementIndex;\n label l loop {\n array[j + 1] := array[j];\n if (j == insertIndex) {\n array[j] := insertElement;\n break l\n };\n\n j -= 1\n }\n };\n\n /// Splits the array into two halves as if the insert has occured, omitting the middle element and returning it so that it can\n /// be promoted to the parent internal node. This is used when inserting an element into an array of elements that\n /// is already full.\n ///\n /// Note: Use only when inserting an element into a FULL array & promoting the resulting midpoint element.\n /// This is NOT the same as just splitting this array!\n ///\n /// Parameters:\n ///\n /// array - the array being split\n /// insertElement - the element being inserted\n /// insertIndex - the position/index that the insertElement should be inserted\n public func insertOneAtIndexAndSplitArray(array : [var ?T], insertElement : T, insertIndex : Nat) : ([var ?T], T, [var ?T]) {\n // split at the BTree order / 2\n let splitIndex = (array.size() + 1) / 2;\n // this function assumes the the splitIndex is in the middle of the kvs array - trap otherwise\n if (splitIndex > array.size()) { assert false };\n\n let leftSplit = if (insertIndex < splitIndex) {\n VarArray.tabulate(\n array.size(),\n func(i) {\n // if below the split index\n if (i < splitIndex) {\n // if below the insert index, copy over\n if (i < insertIndex) { array[i] }\n // if less than the insert index, copy over the previous element (since the inserted element has taken up 1 extra slot)\n else if (i > insertIndex) { array[i - 1] }\n // if equal to the insert index add the element to be inserted to the left split\n else { ?insertElement }\n } else { null }\n }\n )\n }\n // index >= splitIndex\n else {\n VarArray.tabulate(\n array.size(),\n func(i) {\n // right biased splitting\n if (i < splitIndex) { array[i] } else { null }\n }\n )\n };\n\n let (rightSplit, middleElement) : ([var ?T], ?T) =\n // if insert > split index, inserted element will be inserted into the right split\n if (insertIndex > splitIndex) {\n let right = VarArray.tabulate(\n array.size(),\n func(i) {\n let adjIndex = i + splitIndex + 1; // + 1 accounts for the fact that the split element was part of the original array\n if (adjIndex <= array.size()) {\n if (adjIndex < insertIndex) { array[adjIndex] } else if (adjIndex > insertIndex) {\n array[adjIndex - 1]\n } else { ?insertElement }\n } else { null }\n }\n );\n (right, array[splitIndex])\n }\n // if inserted element was placed in the left split\n else if (insertIndex < splitIndex) {\n let right = VarArray.tabulate(\n array.size(),\n func(i) {\n let adjIndex = i + splitIndex;\n if (adjIndex < array.size()) { array[adjIndex] } else { null }\n }\n );\n (right, array[splitIndex - 1])\n }\n // insertIndex == splitIndex\n else {\n let right = VarArray.tabulate(\n array.size(),\n func(i) {\n let adjIndex = i + splitIndex;\n if (adjIndex < array.size()) { array[adjIndex] } else { null }\n }\n );\n (right, ?insertElement)\n };\n\n switch (middleElement) {\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In internal/BTreeHelper: insertOneAtIndexAndSplitArray, middle element of a BTree node should never be null\")\n };\n case (?el) { (leftSplit, el, rightSplit) }\n }\n };\n\n /// Context of use: This function is used after inserting a child node into the full child of an internal node that is also full.\n /// From the insertion, the full child is rebalanced and split, and then since the internal node is full, when replacing the two\n /// halves of that rebalanced child into the internal node's children this causes a second split. This function takes in the\n /// internal node's children, and the \"rebalanced\" split child nodes, as well as the index at which the \"rebalanced\" left and right\n /// child will be inserted and replaces the original child with those two halves\n ///\n /// Note: Use when inserting two successive elements into a FULL array and splitting that array.\n /// This is NOT the same as just splitting this array!\n ///\n /// Assumptions: this function also assumes that the children array is full (no nulls)\n ///\n /// Parameters:\n ///\n /// children - the internal node's children array being split\n /// rebalancedChildIndex - the index used to mark where the rebalanced left and right children will be inserted\n /// leftChildInsert - the rebalanced left child being inserted\n /// rightChildInsert - the rebalanced right child being inserted\n public func splitArrayAndInsertTwo(children : [var ?T], rebalancedChildIndex : Nat, leftChildInsert : T, rightChildInsert : T) : ([var ?T], [var ?T]) {\n let splitIndex = children.size() / 2;\n\n let leftRebalancedChildren = VarArray.tabulate(\n children.size(),\n func(i) {\n // only insert elements up to the split index and fill the rest of the children with nulls\n if (i <= splitIndex) {\n if (i < rebalancedChildIndex) { children[i] }\n // insert the left and right rebalanced child halves if the rebalancedChildIndex comes before the splitIndex\n else if (i == rebalancedChildIndex) {\n ?leftChildInsert\n } else if (i == rebalancedChildIndex + 1) { ?rightChildInsert } else {\n children[i - 1]\n } // i > rebalancedChildIndex\n } else { null }\n }\n );\n\n let rightRebalanceChildren : [var ?T] =\n // Case 1: if both left and right rebalanced halves were inserted into the left child can just go from the split index onwards\n if (rebalancedChildIndex + 1 <= splitIndex) {\n VarArray.tabulate(\n children.size(),\n func(i) {\n let adjIndex = i + splitIndex;\n if (adjIndex < children.size()) { children[adjIndex] } else { null }\n }\n )\n }\n // Case 2: if both left and right rebalanced halves will be inserted into the right child\n else if (rebalancedChildIndex > splitIndex) {\n var rebalanceOffset = 0;\n VarArray.tabulate(\n children.size(),\n func(i) {\n let adjIndex = i + splitIndex + 1;\n if (adjIndex == rebalancedChildIndex) { ?leftChildInsert } else if (adjIndex == rebalancedChildIndex + 1) {\n rebalanceOffset := 1; // after inserting both rebalanced children, any elements coming after are from the previous index\n ?rightChildInsert\n } else if (adjIndex <= children.size()) {\n children[adjIndex - rebalanceOffset]\n } else { null }\n }\n )\n }\n // Case 3: if left rebalanced half was in left child, and right rebalanced half will be in right child\n // rebalancedChildIndex == splitIndex\n else {\n VarArray.tabulate(\n children.size(),\n func(i) {\n // first element is the right rebalanced half\n if (i == 0) { ?rightChildInsert } else {\n let adjIndex = i + splitIndex;\n if (adjIndex < children.size()) { children[adjIndex] } else {\n null\n }\n }\n }\n )\n };\n\n (leftRebalancedChildren, rightRebalanceChildren)\n };\n\n /// Specific to the BTree delete implementation (assumes node ordering such that nulls come at the end of the array)\n ///\n /// Assumptions:\n /// * All nulls come at the end of the array\n /// * Assumes the delete index provided is correct and non null - will trap otherwise\n /// * deleteIndex < array.size()\n ///\n /// Deletes an element from the the array, and then shifts all non-null elements coming after that deleted element by 1\n /// to the left. Returns the element that was deleted.\n public func deleteAndShift(array : [var ?T], deleteIndex : Nat) : T {\n var deleted : T = switch (array[deleteIndex]) {\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In internal/BTreeHelper: deleteAndShift, an invalid/incorrect delete index was passed\")\n };\n case (?el) { el }\n };\n\n array[deleteIndex] := null;\n\n var i = deleteIndex + 1;\n label l loop {\n if (i >= array.size()) { break l };\n\n switch (array[i]) {\n case null { break l };\n case (?_) {\n array[i - 1] := array[i]\n }\n };\n\n i += 1\n };\n\n array[i - 1] := null;\n\n deleted\n };\n\n // replaces two successive elements in the array with a single element and shifts all other elements to the left by 1\n public func replaceTwoWithElementAndShift(array : [var ?T], element : T, replaceIndex : Nat) {\n array[replaceIndex] := ?element;\n\n var i = replaceIndex + 1;\n let endShiftIndex : Nat = array.size() - 1;\n while (i < endShiftIndex) {\n switch (array[i]) {\n case (?_) { array[i] := array[i + 1] };\n case null { return }\n };\n\n i += 1\n };\n\n array[endShiftIndex] := null\n };\n\n /// BTree specific implementation\n ///\n /// In a single iteration insert at one position of the array while deleting at another position of the array, shifting all\n /// elements as appropriate\n ///\n /// This is used when borrowing an element from an inorder predecessor/successor through the parent node\n public func insertAtPostionAndDeleteAtPosition(array : [var ?T], insertElement : ?T, insertIndex : Nat, deleteIndex : Nat) : T {\n var deleted : T = switch (array[deleteIndex]) {\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In internal/BTreeHelper: insertAtPositionAndDeleteAtPosition, and incorrect delete index was passed\")\n }; // indicated an incorrect delete index was passed - trap\n case (?el) { el }\n };\n\n // Example of this case:\n //\n // Insert Delete\n // V V\n //[var ?10, ?20, ?30, ?40, ?50]\n if (insertIndex < deleteIndex) {\n var i = deleteIndex;\n while (i > insertIndex) {\n array[i] := array[i - 1];\n i -= 1\n };\n\n array[insertIndex] := insertElement\n }\n // Example of this case:\n //\n // Delete Insert\n // V V\n //[var ?10, ?20, ?30, ?40, ?50]\n else if (insertIndex > deleteIndex) {\n array[deleteIndex] := null;\n var i = deleteIndex + 1;\n label l loop {\n if (i >= array.size()) { assert false; break l }; // TODO: remove? this should not happen since the insertIndex should get hit first?\n\n if (i == insertIndex) {\n array[i - 1] := array[i];\n array[i] := insertElement;\n break l\n } else {\n array[i - 1] := array[i]\n };\n\n i += 1\n };\n\n }\n // insertIndex == deleteIndex, can just do a swap\n else { array[deleteIndex] := insertElement };\n\n deleted\n };\n\n // which child the deletionIndex is referring to\n public type DeletionSide = { #left; #right };\n\n // merges a middle (parent) element with the left and right child arrays while deleting the element from the correct child by the deleteIndex passed\n public func mergeParentWithChildrenAndDelete(\n parentElement : ?T,\n childCount : Nat,\n leftChild : [var ?T],\n rightChild : [var ?T],\n deleteIndex : Nat,\n deletionSide : DeletionSide\n ) : ([var ?T], T) {\n let mergedArray = VarArray.repeat(null, leftChild.size());\n var i = 0;\n switch (deletionSide) {\n case (#left) {\n // BTree implementation expects the deleted element to exist - if null, traps\n let deletedElement = switch (leftChild[deleteIndex]) {\n case (?el) { el };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In internal/BTreeHelper: mergeParentWithChildrenAndDelete, an invalid delete index was passed\")\n }\n };\n\n // copy over left child until deleted element is hit, then copy all elements after the deleted element\n while (i < childCount) {\n if (i < deleteIndex) {\n mergedArray[i] := leftChild[i]\n } else {\n mergedArray[i] := leftChild[i + 1]\n };\n i += 1\n };\n\n // insert parent kv in the middle\n mergedArray[childCount - 1] := parentElement;\n\n // copy over the rest of the right child elements\n while (i < childCount * 2) {\n mergedArray[i] := rightChild[i - childCount];\n i += 1\n };\n\n (mergedArray, deletedElement)\n };\n case (#right) {\n // BTree implementation expects the deleted element to exist - if null, traps\n let deletedElement = switch (rightChild[deleteIndex]) {\n case (?el) { el };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In internal/BTreeHelper: mergeParentWithChildrenAndDelete: element at deleted index must exist\")\n }\n };\n // since deletion side is #right, can safely copy over all elements from the left child\n while (i < childCount) {\n mergedArray[i] := leftChild[i];\n i += 1\n };\n\n // insert parent kv in the middle\n mergedArray[childCount] := parentElement;\n i += 1;\n\n var j = 0;\n // copy over right child until deleted element is hit, then copy elements after the deleted element\n while (i < childCount * 2) {\n if (j < deleteIndex) {\n mergedArray[i] := rightChild[j]\n } else {\n mergedArray[i] := rightChild[j + 1]\n };\n i += 1;\n j += 1\n };\n\n (mergedArray, deletedElement)\n }\n }\n };\n\n}\n"},"internal/PRNG.mo":{"content":"/// Collection of pseudo-random number generators\n///\n/// The algorithms deliver deterministic statistical randomness,\n/// not cryptographic randomness.\n///\n/// Algorithm 1: 128-bit Seiran PRNG\n/// See: https://github.com/andanteyk/prng-seiran\n///\n/// Algorithm 2: SFC64 and SFC32 (Chris Doty-Humphrey’s Small Fast Chaotic PRNG)\n/// See: https://numpy.org/doc/stable/reference/random/bit_generators/sfc64.html\n///\n/// Copyright: 2023 MR Research AG\n/// Main author: react0r-com\n/// Contributors: Timo Hanke (timohanke)\nimport Nat \"../Nat\";\n\nmodule {\n /// Constructs an SFC 64-bit generator.\n /// The recommended constructor arguments are: 24, 11, 3.\n ///\n /// Example:\n /// ```motoko\n /// import PRNG \"mo:core/internal/PRNG\";\n ///\n /// let rng = PRNG.SFC64(24, 11, 3);\n /// ```\n /// For convenience, the function `SFC64a()` returns a generator constructed\n /// with the recommended parameter set (24, 11, 3).\n public class SFC64(p : Nat64, q : Nat64, r : Nat64) {\n // state\n var a : Nat64 = 0;\n var b : Nat64 = 0;\n var c : Nat64 = 0;\n var d : Nat64 = 0;\n\n /// Initializes the PRNG state with a particular seed\n ///\n /// Example:\n /// ```motoko\n public func init(seed : Nat64) = init3(seed, seed, seed);\n\n /// Initializes the PRNG state with a hardcoded seed.\n /// No argument is required.\n ///\n /// Example:\n public func initPre() = init(0xcafef00dbeef5eed);\n\n /// Initializes the PRNG state with three state variables\n ///\n /// Example:\n public func init3(seed1 : Nat64, seed2 : Nat64, seed3 : Nat64) {\n a := seed1;\n b := seed2;\n c := seed3;\n d := 1;\n\n for (_ in Nat.range(0, 11)) ignore next()\n };\n\n /// Returns one output and advances the PRNG's state\n ///\n /// Example:\n public func next() : Nat64 {\n let tmp = a +% b +% d;\n a := b ^ (b >> q);\n b := c +% (c << r);\n c := (c <<> p) +% tmp;\n d +%= 1;\n tmp\n }\n };\n\n /// SFC64a is the same as numpy.\n /// See: [sfc64_next()](https:///github.com/numpy/numpy/blob/b6d372c25fab5033b828dd9de551eb0b7fa55800/numpy/random/src/sfc64/sfc64.h#L28)\n public func sfc64a() : SFC64 { SFC64(24, 11, 3) }\n}\n"},"pure/Queue.mo":{"content":"/// Double-ended queue of a generic element type `T`.\n///\n/// The interface is purely functional, not imperative, and queues are immutable values.\n/// In particular, Queue operations such as push and pop do not update their input queue but, instead, return the\n/// value of the modified Queue, alongside any other data.\n/// The input queue is left unchanged.\n///\n/// Examples of use-cases:\n/// Queue (FIFO) by using `pushBack()` and `popFront()`.\n/// Stack (LIFO) by using `pushFront()` and `popFront()`.\n///\n/// A Queue is internally implemented as two lists, a head access list and a (reversed) tail access list,\n/// that are dynamically size-balanced by splitting.\n///\n/// Construction: Create a new queue with the `empty()` function.\n///\n/// Note on the costs of push and pop functions:\n/// * Runtime: `O(1)` amortized costs, `O(size)` worst case cost per single call.\n/// * Space: `O(1)` amortized costs, `O(size)` worst case cost per single call.\n///\n/// `n` denotes the number of elements stored in the queue.\n///\n/// Note that some operations that traverse the elements of the queue (e.g. `forEach`, `values`) preserve the order of the elements,\n/// whereas others (e.g. `map`, `contains`) do NOT guarantee that the elements are visited in any order.\n/// The order is undefined to avoid allocations, making these operations more efficient.\n///\n/// ```motoko name=import\n/// import Queue \"mo:core/pure/Queue\";\n/// ```\n\nimport Iter \"../Iter\";\nimport List \"List\";\nimport Order \"../Order\";\nimport Types \"../Types\";\nimport Array \"../Array\";\nimport Prim \"mo:⛔\";\n\nmodule {\n /// @deprecated M0235\n type List = Types.Pure.List;\n\n /// Double-ended queue data type.\n public type Queue = Types.Pure.Queue;\n\n /// Create a new empty queue.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.empty();\n /// assert Queue.isEmpty(queue);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func empty() : Queue = (null, 0, null);\n\n /// Determine whether a queue is empty.\n /// Returns true if `queue` is empty, otherwise `false`.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.empty();\n /// assert Queue.isEmpty(queue);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func isEmpty(self : Queue) : Bool = self.1 == 0;\n\n /// Create a new queue comprising a single element.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.singleton(25);\n /// assert Queue.size(queue) == 1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func singleton(item : T) : Queue = (null, 1, ?(item, null));\n\n /// Determine the number of elements contained in a queue.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.singleton(42);\n /// assert Queue.size(queue) == 1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)` in Release profile (compiled with `--release` flag), `O(size)` otherwise.\n ///\n /// Space: `O(1)`.\n public func size(self : Queue) : Nat {\n debug assert self.1 == List.size(self.0) + List.size(self.2);\n self.1\n };\n\n /// Check if a queue contains a specific element.\n /// Returns true if the queue contains an element equal to `item` according to the `equal` function.\n ///\n /// Note: The order in which elements are visited is undefined, for performance reasons.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.contains(queue, Nat.equal, 2);\n /// assert not Queue.contains(queue, Nat.equal, 4);\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n public func contains(self : Queue, equal : (implicit : (T, T) -> Bool), item : T) : Bool = List.contains(self.0, equal, item) or List.contains(self.2, equal, item);\n\n /// Inspect the optional element on the front end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, the front element of `queue`.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushFront(Queue.pushFront(Queue.empty(), 2), 1);\n /// assert Queue.peekFront(queue) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func peekFront(self : Queue) : ?T = switch self {\n case ((?(x, _), _, _) or (_, _, ?(x, null))) ?x;\n case _ { debug assert List.isEmpty(self.2); null }\n };\n\n /// Inspect the optional element on the back end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, the back element of `queue`.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// assert Queue.peekBack(queue) == ?2;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func peekBack(self : Queue) : ?T = switch self {\n case ((_, _, ?(x, _)) or (?(x, null), _, _)) ?x;\n case _ { debug assert List.isEmpty(self.0); null }\n };\n\n // helper to rebalance the queue after getting lopsided\n func check(q : Queue) : Queue {\n switch q {\n case (null, n, r) {\n let (a, b) = List.split(r, n / 2);\n (List.reverse b, n, a)\n };\n case (f, n, null) {\n let (a, b) = List.split(f, n / 2);\n (a, n, List.reverse b)\n };\n case q q\n }\n };\n\n /// Insert a new element on the front end of a queue.\n /// Returns the new queue with `element` in the front followed by the elements of `queue`.\n ///\n /// This may involve dynamic rebalancing of the two, internally used lists.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushFront(Queue.pushFront(Queue.empty(), 2), 1);\n /// assert Queue.peekFront(queue) == ?1;\n /// assert Queue.peekBack(queue) == ?2;\n /// assert Queue.size(queue) == 2;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// Space: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// `n` denotes the number of elements stored in the queue.\n public func pushFront(self : Queue, element : T) : Queue = check(?(element, self.0), self.1 + 1, self.2);\n\n /// Insert a new element on the back end of a queue.\n /// Returns the new queue with all the elements of `queue`, followed by `element` on the back.\n ///\n /// This may involve dynamic rebalancing of the two, internally used lists.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// assert Queue.peekBack(queue) == ?2;\n /// assert Queue.size(queue) == 2;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// Space: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// `n` denotes the number of elements stored in the queue.\n public func pushBack(self : Queue, element : T) : Queue = check(self.0, self.1 + 1, ?(element, self.2));\n\n /// Remove the element on the front end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, it returns a pair of\n /// the first element and a new queue that contains all the remaining elements of `queue`.\n ///\n /// This may involve dynamic rebalancing of the two, internally used lists.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Runtime \"mo:core/Runtime\";\n ///\n /// persistent actor {\n /// let initial = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// // initial queue with elements [1, 2]\n /// switch (Queue.popFront(initial)) {\n /// case null Runtime.trap \"Empty queue impossible\";\n /// case (?(frontElement, remainingQueue)) {\n /// assert frontElement == 1;\n /// assert Queue.size(remainingQueue) == 1\n /// }\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// Space: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// `n` denotes the number of elements stored in the queue.\n public func popFront(self : Queue) : ?(T, Queue) = if (self.1 == 0) null else switch self {\n case (?(i, f), n, b) ?(i, (f, n - 1, b));\n case (null, _, ?(i, null)) ?(i, (null, 0, null));\n case _ popFront(check self)\n };\n\n /// Remove the element on the back end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, it returns a pair of\n /// a new queue that contains the remaining elements of `queue`\n /// and, as the second pair item, the removed back element.\n ///\n /// This may involve dynamic rebalancing of the two, internally used lists.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Runtime \"mo:core/Runtime\";\n ///\n /// persistent actor {\n /// let initial = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// // initial queue with elements [1, 2]\n /// let reduced = Queue.popBack(initial);\n /// switch reduced {\n /// case null Runtime.trap(\"Empty queue impossible\");\n /// case (?result) {\n /// let reducedQueue = result.0;\n /// let removedElement = result.1;\n /// assert removedElement == 2;\n /// assert Queue.size(reducedQueue) == 1;\n /// }\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// Space: `O(size)` worst-case, amortized to `O(1)`.\n ///\n /// `n` denotes the number of elements stored in the queue.\n public func popBack(self : Queue) : ?(Queue, T) = if (self.1 == 0) null else switch self {\n case (f, n, ?(i, b)) ?((f, n - 1, b), i);\n case (?(i, null), _, null) ?((null, 0, null), i);\n case _ popBack(check self)\n };\n\n /// Turn an iterator into a queue, consuming it.\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([0, 1, 2, 3, 4].values());\n /// assert Queue.size(queue) == 5;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func fromIter(iter : Iter.Iter) : Queue {\n let list = List.fromIter iter;\n check(list, List.size list, null)\n };\n\n /// Convert an iterator to a queue, consuming it.\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// transient let iter = [0, 1, 2, 3, 4].values();\n ///\n /// let queue = iter.toQueue();\n /// assert Queue.size(queue) == 5;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func toQueue(self : Iter.Iter) : Queue {\n fromIter(self)\n };\n\n /// Create a queue from an array.\n /// Elements appear in the same order as in the array.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromArray([\"A\", \"B\", \"C\"]);\n /// assert Queue.size(queue) == 3;\n /// assert Queue.peekFront(queue) == ?\"A\";\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func fromArray(array : [T]) : Queue {\n let list = List.fromArray array;\n check(list, array.size(), null)\n };\n\n /// Create an immutable array from a queue.\n /// Elements appear in the same order as in the queue (front to back).\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromArray([\"A\", \"B\", \"C\"]);\n /// let array = Queue.toArray(queue);\n /// assert array == [\"A\", \"B\", \"C\"];\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func toArray(self : Queue) : [T] {\n let iter = values(self);\n Array.tabulate(\n self.1,\n func(i) {\n switch (iter.next()) {\n case null {\n Prim.trap(\"pure/Queue.toArray: unexpected end of iterator\")\n };\n case (?value) { value }\n }\n }\n )\n };\n\n /// Convert a queue to an iterator of its elements in front-to-back order.\n ///\n /// Performance note: Creating the iterator needs `O(size)` runtime and space!\n ///\n /// Example:\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Iter.toArray(Queue.values(queue)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func values(self : Queue) : Iter.Iter = Iter.concat(List.values(self.0), List.values(List.reverse(self.2)));\n\n /// Compare two queues for equality using the provided equality function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue1 = Queue.fromIter([1, 2].values());\n /// let queue2 = Queue.fromIter([1, 2].values());\n /// let queue3 = Queue.fromIter([1, 3].values());\n /// assert Queue.equal(queue1, queue2, Nat.equal);\n /// assert not Queue.equal(queue1, queue3, Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func equal(self : Queue, other : Queue, equal : (implicit : (T, T) -> Bool)) : Bool {\n if (self.1 != other.1) {\n return false\n };\n let (iter1, iter2) = (values(self), values(other));\n loop {\n switch (iter1.next(), iter2.next()) {\n case (null, null) { return true };\n case (?v1, ?v2) {\n if (not equal(v1, v2)) { return false }\n };\n case (_, _) { return false }\n }\n }\n };\n\n /// Return true if the given predicate `f` is true for all queue\n /// elements.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let allGreaterThanOne = Queue.all(queue, func n = n > 1);\n /// assert not allGreaterThanOne; // false because 1 is not > 1\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)` as the current implementation uses `values` to iterate over the queue.\n ///\n /// *Runtime and space assumes that the `predicate` runs in `O(1)` time and space.\n public func all(self : Queue, predicate : T -> Bool) : Bool {\n for (item in values self) if (not (predicate item)) return false;\n return true\n };\n\n /// Return true if there exists a queue element for which\n /// the given predicate `f` is true.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let hasGreaterThanOne = Queue.any(queue, func n = n > 1);\n /// assert hasGreaterThanOne; // true because 2 and 3 are > 1\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)` as the current implementation uses `values` to iterate over the queue.\n ///\n /// *Runtime and space assumes that the `predicate` runs in `O(1)` time and space.\n public func any(self : Queue, predicate : T -> Bool) : Bool {\n for (item in values self) if (predicate item) return true;\n return false\n };\n\n /// Call the given function for its side effect, with each queue element in turn.\n /// The order of visiting elements is front-to-back.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// var text = \"\";\n /// let queue = Queue.fromIter([\"A\", \"B\", \"C\"].values());\n /// Queue.forEach(queue, func n = text #= n);\n /// assert text == \"ABC\";\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in `O(1)` time and space.\n public func forEach(self : Queue, f : T -> ()) = for (item in values self) f item;\n\n /// Call the given function `f` on each queue element and collect the results\n /// in a new queue.\n ///\n /// Note: The order of visiting elements is undefined with the current implementation.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([0, 1, 2].values());\n /// let textQueue = Queue.map(queue, Nat.toText);\n /// assert Iter.toArray(Queue.values(textQueue)) == [\"0\", \"1\", \"2\"];\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in `O(1)` time and space.\n public func map(self : Queue, f : T1 -> T2) : Queue {\n let (fr, n, b) = self;\n (List.map(fr, f), n, List.map(b, f))\n };\n\n /// Create a new queue with only those elements of the original queue for which\n /// the given function (often called the _predicate_) returns true.\n ///\n /// Note: The order of visiting elements is undefined with the current implementation.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([0, 1, 2, 1].values());\n /// let filtered = Queue.filter(queue, func n = n != 1);\n /// assert Queue.size(filtered) == 2;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `predicate` runs in `O(1)` time and space.\n public func filter(self : Queue, predicate : T -> Bool) : Queue {\n let (fr, _, b) = self;\n let front = List.filter(fr, predicate);\n let back = List.filter(b, predicate);\n check(front, List.size front + List.size back, back)\n };\n\n /// Call the given function on each queue element, and collect the non-null results\n /// in a new queue.\n ///\n /// Note: The order of visiting elements is undefined with the current implementation.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let doubled = Queue.filterMap(\n /// queue,\n /// func n = if (n > 1) ?(n * 2) else null\n /// );\n /// assert Queue.size(doubled) == 2;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in `O(1)` time and space.\n public func filterMap(self : Queue, f : T -> ?U) : Queue {\n let (fr, _n, b) = self;\n let front = List.filterMap(fr, f);\n let back = List.filterMap(b, f);\n check(front, List.size front + List.size back, back)\n };\n\n /// Convert a queue to its text representation using the provided conversion function.\n /// This function is meant to be used for debugging and testing purposes.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.toText(queue, Nat.toText) == \"PureQueue[1, 2, 3]\";\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n public func toText(self : Queue, f : (implicit : (toText : T -> Text))) : Text {\n var text = \"PureQueue[\";\n func add(item : T) {\n if (text.size() > 10) text #= \", \";\n text #= f(item)\n };\n List.forEach(self.0, add);\n List.forEach(List.reverse(self.2), add);\n text # \"]\"\n };\n\n /// Compare two queues using lexicographic ordering specified by argument function `compareItem`.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue1 = Queue.fromIter([1, 2].values());\n /// let queue2 = Queue.fromIter([1, 3].values());\n /// assert Queue.compare(queue1, queue2, Nat.compare) == #less;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that argument `compareItem` runs in `O(1)` time and space.\n public func compare(self : Queue, other : Queue, compareItem : (implicit : (compare : (T, T) -> Order.Order))) : Order.Order {\n let (i1, i2) = (values self, values other);\n loop switch (i1.next(), i2.next()) {\n case (?v1, ?v2) switch (compareItem(v1, v2)) {\n case (#equal) ();\n case c return c\n };\n case (null, null) return #equal;\n case (null, _) return #less;\n case (_, null) return #greater\n }\n };\n\n /// Reverse the order of elements in a queue.\n /// This operation is cheap, it does NOT require copying the elements.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let reversed = Queue.reverse(queue);\n /// assert Queue.peekFront(reversed) == ?3;\n /// assert Queue.peekBack(reversed) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n public func reverse(self : Queue) : Queue = (self.2, self.1, self.0)\n}\n"},"Cycles.mo":{"content":"/// Managing cycles within actors in the Internet Computer Protocol (ICP).\n///\n/// The usage of the Internet Computer is measured, and paid for, in _cycles_.\n/// This library provides imperative operations for observing cycles, transferring cycles, and\n/// observing refunds of cycles.\n///\n/// **NOTE:** Since cycles measure computational resources, the value of `balance()` can change from one call to the next.\n///\n/// Cycles can be transferred from the current actor to another actor with the evaluation of certain forms of expression.\n/// In particular, the expression must be a call to a shared function, a call to a local function with an `async` return type, or a simple `async` expression.\n/// To attach an amount of cycles to an expression ``, simply prefix the expression with `(with cycles = )`, that is, `(with cycles = ) `.\n///\n/// **NOTE:** Attaching cycles will trap if the amount specified exceeds `2 ** 128` cycles.\n///\n/// Upon the call, but not before, the amount of cycles is deducted from `balance()`.\n/// If this total exceeds `balance()`, the caller traps, aborting the call without consuming the cycles.\n/// Note that attaching cycles to a call to a local function call or `async` expression just transfers cycles from the current actor to itself.\n///\n/// Example for use on the ICP:\n/// ```motoko no-repl\n/// import Cycles \"mo:core/Cycles\";\n///\n/// persistent actor {\n/// public func main() : async () {\n/// let initialBalance = Cycles.balance();\n/// await (with cycles = 15_000_000) operation(); // accepts 10_000_000 cycles\n/// assert Cycles.refunded() == 5_000_000;\n/// assert Cycles.balance() < initialBalance; // decreased by around 10_000_000\n/// };\n///\n/// func operation() : async () {\n/// let initialBalance = Cycles.balance();\n/// let initialAvailable = Cycles.available();\n/// let obtained = Cycles.accept(10_000_000);\n/// assert obtained == 10_000_000;\n/// assert Cycles.balance() == initialBalance + 10_000_000;\n/// assert Cycles.available() == initialAvailable - 10_000_000;\n/// }\n/// }\n/// ```\nimport Prim \"mo:⛔\";\nmodule {\n\n /// Returns the actor's current balance of cycles as `amount`.\n ///\n /// Example for use on the ICP:\n /// ```motoko no-repl\n /// import Cycles \"mo:core/Cycles\";\n ///\n /// persistent actor {\n /// public func main() : async() {\n /// let balance = Cycles.balance();\n /// assert balance > 0;\n /// }\n /// }\n /// ```\n public let balance : () -> (amount : Nat) = Prim.cyclesBalance;\n\n /// Returns the currently available `amount` of cycles.\n /// The amount available is the amount received in the current call,\n /// minus the cumulative amount `accept`ed by this call.\n /// On exit from the current shared function or async expression via `return` or `throw`,\n /// any remaining available amount is automatically refunded to the caller/context.\n ///\n /// Example for use on the ICP:\n /// ```motoko no-repl\n /// import Cycles \"mo:core/Cycles\";\n ///\n /// persistent actor {\n /// public func main() : async() {\n /// let available = Cycles.available();\n /// assert available >= 0;\n /// }\n /// }\n /// ```\n public let available : () -> (amount : Nat) = Prim.cyclesAvailable;\n\n /// Transfers up to `amount` from `available()` to `balance()`.\n /// Returns the amount actually transferred, which may be less than\n /// requested, for example, if less is available, or if canister balance limits are reached.\n ///\n /// Example for use on the ICP (for simplicity, only transferring cycles to itself):\n /// ```motoko no-repl\n /// import Cycles \"mo:core/Cycles\";\n ///\n /// persistent actor {\n /// public func main() : async() {\n /// await (with cycles = 15_000_000) operation(); // accepts 10_000_000 cycles\n /// };\n ///\n /// func operation() : async() {\n /// let obtained = Cycles.accept(10_000_000);\n /// assert obtained == 10_000_000;\n /// }\n /// }\n /// ```\n public let accept : (amount : Nat) -> (accepted : Nat) = Prim.cyclesAccept;\n\n /// Reports `amount` of cycles refunded in the last `await` of the current\n /// context, or zero if no await has occurred yet.\n /// Calling `refunded()` is solely informational and does not affect `balance()`.\n /// Instead, refunds are automatically added to the current balance,\n /// whether or not `refunded` is used to observe them.\n ///\n /// Example for use on the ICP (for simplicity, only transferring cycles to itself):\n /// ```motoko no-repl\n /// import Cycles \"mo:core/Cycles\";\n ///\n /// persistent actor {\n /// func operation() : async() {\n /// ignore Cycles.accept(10_000_000);\n /// };\n ///\n /// public func main() : async() {\n /// await (with cycles = 15_000_000) operation(); // accepts 10_000_000 cycles\n /// assert Cycles.refunded() == 5_000_000;\n /// }\n /// }\n /// ```\n public let refunded : () -> (amount : Nat) = Prim.cyclesRefunded;\n\n /// Attempts to burn `amount` of cycles, deducting `burned` from the canister's\n /// cycle balance. The burned cycles are irrevocably lost and not available to any\n /// other principal either.\n ///\n /// Example for use on the IC:\n /// ```motoko no-repl\n /// import Cycles \"mo:core/Cycles\";\n ///\n /// persistent actor {\n /// public func main() : async() {\n /// let burnt = Cycles.burn(10_000_000);\n /// assert burnt == 10_000_000;\n /// }\n /// }\n /// ```\n public let burn : (amount : Nat) -> (burned : Nat) = Prim.cyclesBurn;\n\n}\n"},"internal/SortHelper.mo":{"content":"import Runtime \"../Runtime\";\nimport Order \"../Order\";\nimport Prim \"mo:⛔\";\n\nmodule {\n let nat = Prim.nat32ToNat;\n\n // Must have: len <= 8\n // Use dest = buffer when sorting in place\n public func insertionSortSmall(buffer : [var T], dest : [var T], compare : (T, T) -> Order.Order, newFrom : Nat32, len : Nat32) {\n debug assert len > 0;\n switch (len) {\n case (1) {\n let index0 = nat(newFrom);\n dest[index0] := buffer[index0]\n };\n case (2) {\n let index0 = nat(newFrom);\n let index1 = nat(newFrom +% 1);\n let t0 = buffer[index0];\n let t1 = buffer[index1];\n switch (compare(t1, t0)) {\n case (#less) {\n dest[index0] := t1;\n dest[index1] := t0\n };\n case (_) {\n dest[index0] := t0;\n dest[index1] := t1\n }\n }\n };\n case (3) {\n let index0 = nat(newFrom);\n let index1 = nat(newFrom +% 1);\n let index2 = nat(newFrom +% 2);\n var t0 = buffer[index0];\n var t1 = buffer[index1];\n let t2 = buffer[index2];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n\n switch (compare(t2, t1)) {\n case (#less) {\n switch (compare(t2, t0)) {\n case (#less) {\n dest[index0] := t2;\n dest[index1] := t0;\n dest[index2] := t1\n };\n case (_) {\n dest[index0] := t0;\n dest[index1] := t2;\n dest[index2] := t1\n }\n }\n };\n case (_) {\n dest[index0] := t0;\n dest[index1] := t1;\n dest[index2] := t2\n }\n }\n };\n case (4) {\n let index0 = nat(newFrom);\n let index1 = nat(newFrom +% 1);\n let index2 = nat(newFrom +% 2);\n let index3 = nat(newFrom +% 3);\n var t0 = buffer[index0];\n var t1 = buffer[index1];\n var t2 = buffer[index2];\n var t3 = buffer[index3];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n\n switch (compare(t3, t2)) {\n case (#less) {\n tv := t3;\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n\n dest[index0] := t0;\n dest[index1] := t1;\n dest[index2] := t2;\n dest[index3] := t3\n };\n case (5) {\n let index0 = nat(newFrom);\n let index1 = nat(newFrom +% 1);\n let index2 = nat(newFrom +% 2);\n let index3 = nat(newFrom +% 3);\n let index4 = nat(newFrom +% 4);\n var t0 = buffer[index0];\n var t1 = buffer[index1];\n var t2 = buffer[index2];\n var t3 = buffer[index3];\n var t4 = buffer[index4];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n\n dest[index0] := t0;\n dest[index1] := t1;\n dest[index2] := t2;\n dest[index3] := t3;\n dest[index4] := t4\n };\n case (6) {\n let index0 = nat(newFrom);\n let index1 = nat(newFrom +% 1);\n let index2 = nat(newFrom +% 2);\n let index3 = nat(newFrom +% 3);\n let index4 = nat(newFrom +% 4);\n let index5 = nat(newFrom +% 5);\n var t0 = buffer[index0];\n var t1 = buffer[index1];\n var t2 = buffer[index2];\n var t3 = buffer[index3];\n var t4 = buffer[index4];\n var t5 = buffer[index5];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n tv := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) {}\n };\n\n dest[index0] := t0;\n dest[index1] := t1;\n dest[index2] := t2;\n dest[index3] := t3;\n dest[index4] := t4;\n dest[index5] := t5\n };\n case (7) {\n let index0 = nat(newFrom);\n let index1 = nat(newFrom +% 1);\n let index2 = nat(newFrom +% 2);\n let index3 = nat(newFrom +% 3);\n let index4 = nat(newFrom +% 4);\n let index5 = nat(newFrom +% 5);\n let index6 = nat(newFrom +% 6);\n var t0 = buffer[index0];\n var t1 = buffer[index1];\n var t2 = buffer[index2];\n var t3 = buffer[index3];\n var t4 = buffer[index4];\n var t5 = buffer[index5];\n var t6 = buffer[index6];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n tv := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) {}\n };\n tv := t6;\n switch (compare(tv, t5)) {\n case (#less) {\n t6 := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) { t5 := tv }\n }\n };\n case (_) {}\n };\n\n dest[index0] := t0;\n dest[index1] := t1;\n dest[index2] := t2;\n dest[index3] := t3;\n dest[index4] := t4;\n dest[index5] := t5;\n dest[index6] := t6\n };\n case (8) {\n let index0 = nat(newFrom);\n let index1 = nat(newFrom +% 1);\n let index2 = nat(newFrom +% 2);\n let index3 = nat(newFrom +% 3);\n let index4 = nat(newFrom +% 4);\n let index5 = nat(newFrom +% 5);\n let index6 = nat(newFrom +% 6);\n let index7 = nat(newFrom +% 7);\n var t0 = buffer[index0];\n var t1 = buffer[index1];\n var t2 = buffer[index2];\n var t3 = buffer[index3];\n var t4 = buffer[index4];\n var t5 = buffer[index5];\n var t6 = buffer[index6];\n var t7 = buffer[index7];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n tv := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) {}\n };\n tv := t6;\n switch (compare(tv, t5)) {\n case (#less) {\n t6 := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) { t5 := tv }\n }\n };\n case (_) {}\n };\n tv := t7;\n switch (compare(tv, t6)) {\n case (#less) {\n t7 := t6;\n switch (compare(tv, t5)) {\n case (#less) {\n t6 := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) { t5 := tv }\n }\n };\n case (_) { t6 := tv }\n }\n };\n case (_) {}\n };\n\n dest[index0] := t0;\n dest[index1] := t1;\n dest[index2] := t2;\n dest[index3] := t3;\n dest[index4] := t4;\n dest[index5] := t5;\n dest[index6] := t6;\n dest[index7] := t7\n };\n case (_) Runtime.trap(\"insertionSortSmall for len > 8 is not implemented.\")\n }\n };\n\n // sort from buffer to dest array at the given offset\n public func insertionSortSmallMove(buffer : [var T], dest : [var T], compare : (T, T) -> Order.Order, newFrom : Nat32, len : Nat32, offset : Nat32) {\n debug assert len > 0;\n switch (len) {\n case (1) {\n dest[nat(offset)] := buffer[nat(newFrom)]\n };\n case (2) {\n let t0 = buffer[nat(newFrom)];\n let t1 = buffer[nat(newFrom +% 1)];\n switch (compare(t1, t0)) {\n case (#less) {\n dest[nat(offset)] := t1;\n dest[nat(offset +% 1)] := t0\n };\n case (_) {\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t1\n }\n }\n };\n case (3) {\n var t0 = buffer[nat(newFrom)];\n var t1 = buffer[nat(newFrom +% 1)];\n let t2 = buffer[nat(newFrom +% 2)];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n\n switch (compare(t2, t1)) {\n case (#less) {\n switch (compare(t2, t0)) {\n case (#less) {\n dest[nat(offset)] := t2;\n dest[nat(offset +% 1)] := t0;\n dest[nat(offset +% 2)] := t1\n };\n case (_) {\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t2;\n dest[nat(offset +% 2)] := t1\n }\n }\n };\n case (_) {\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t1;\n dest[nat(offset +% 2)] := t2\n }\n }\n };\n case (4) {\n var t0 = buffer[nat(newFrom)];\n var t1 = buffer[nat(newFrom +% 1)];\n var t2 = buffer[nat(newFrom +% 2)];\n var t3 = buffer[nat(newFrom +% 3)];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n\n switch (compare(t3, t2)) {\n case (#less) {\n tv := t3;\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t1;\n dest[nat(offset +% 2)] := t2;\n dest[nat(offset +% 3)] := t3\n };\n case (5) {\n var t0 = buffer[nat(newFrom)];\n var t1 = buffer[nat(newFrom +% 1)];\n var t2 = buffer[nat(newFrom +% 2)];\n var t3 = buffer[nat(newFrom +% 3)];\n var t4 = buffer[nat(newFrom +% 4)];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t1;\n dest[nat(offset +% 2)] := t2;\n dest[nat(offset +% 3)] := t3;\n dest[nat(offset +% 4)] := t4\n };\n case (6) {\n var t0 = buffer[nat(newFrom)];\n var t1 = buffer[nat(newFrom +% 1)];\n var t2 = buffer[nat(newFrom +% 2)];\n var t3 = buffer[nat(newFrom +% 3)];\n var t4 = buffer[nat(newFrom +% 4)];\n var t5 = buffer[nat(newFrom +% 5)];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n tv := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) {}\n };\n\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t1;\n dest[nat(offset +% 2)] := t2;\n dest[nat(offset +% 3)] := t3;\n dest[nat(offset +% 4)] := t4;\n dest[nat(offset +% 5)] := t5\n };\n case (7) {\n var t0 = buffer[nat(newFrom)];\n var t1 = buffer[nat(newFrom +% 1)];\n var t2 = buffer[nat(newFrom +% 2)];\n var t3 = buffer[nat(newFrom +% 3)];\n var t4 = buffer[nat(newFrom +% 4)];\n var t5 = buffer[nat(newFrom +% 5)];\n var t6 = buffer[nat(newFrom +% 6)];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n tv := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) {}\n };\n tv := t6;\n switch (compare(tv, t5)) {\n case (#less) {\n t6 := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) { t5 := tv }\n }\n };\n case (_) {}\n };\n\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t1;\n dest[nat(offset +% 2)] := t2;\n dest[nat(offset +% 3)] := t3;\n dest[nat(offset +% 4)] := t4;\n dest[nat(offset +% 5)] := t5;\n dest[nat(offset +% 6)] := t6\n };\n case (8) {\n var t0 = buffer[nat(newFrom)];\n var t1 = buffer[nat(newFrom +% 1)];\n var t2 = buffer[nat(newFrom +% 2)];\n var t3 = buffer[nat(newFrom +% 3)];\n var t4 = buffer[nat(newFrom +% 4)];\n var t5 = buffer[nat(newFrom +% 5)];\n var t6 = buffer[nat(newFrom +% 6)];\n var t7 = buffer[nat(newFrom +% 7)];\n\n switch (compare(t1, t0)) {\n case (#less) {\n let v = t1;\n t1 := t0;\n t0 := v\n };\n case (_) {}\n };\n var tv = t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) {}\n };\n tv := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) {}\n };\n tv := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) {}\n };\n tv := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) {}\n };\n tv := t6;\n switch (compare(tv, t5)) {\n case (#less) {\n t6 := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) { t5 := tv }\n }\n };\n case (_) {}\n };\n tv := t7;\n switch (compare(tv, t6)) {\n case (#less) {\n t7 := t6;\n switch (compare(tv, t5)) {\n case (#less) {\n t6 := t5;\n switch (compare(tv, t4)) {\n case (#less) {\n t5 := t4;\n switch (compare(tv, t3)) {\n case (#less) {\n t4 := t3;\n switch (compare(tv, t2)) {\n case (#less) {\n t3 := t2;\n switch (compare(tv, t1)) {\n case (#less) {\n t2 := t1;\n switch (compare(tv, t0)) {\n case (#less) { t1 := t0; t0 := tv };\n case (_) { t1 := tv }\n }\n };\n case (_) { t2 := tv }\n }\n };\n case (_) { t3 := tv }\n }\n };\n case (_) { t4 := tv }\n }\n };\n case (_) { t5 := tv }\n }\n };\n case (_) { t6 := tv }\n }\n };\n case (_) {}\n };\n\n dest[nat(offset)] := t0;\n dest[nat(offset +% 1)] := t1;\n dest[nat(offset +% 2)] := t2;\n dest[nat(offset +% 3)] := t3;\n dest[nat(offset +% 4)] := t4;\n dest[nat(offset +% 5)] := t5;\n dest[nat(offset +% 6)] := t6;\n dest[nat(offset +% 7)] := t7\n };\n case (_) Runtime.trap(\"insertionSortSmall for len > 8 is not implemented.\")\n }\n }\n}\n"},"Time.mo":{"content":"/// System time utilities and timers.\n///\n/// The following example illustrates using the system time:\n///\n/// ```motoko\n/// import Int = \"mo:core/Int\";\n/// import Time = \"mo:core/Time\";\n///\n/// persistent actor {\n/// var lastTime = Time.now();\n///\n/// public func greet(name : Text) : async Text {\n/// let now = Time.now();\n/// let elapsedSeconds = (now - lastTime) / 1000_000_000;\n/// lastTime := now;\n/// return \"Hello, \" # name # \"!\" #\n/// \" I was last called \" # Int.toText(elapsedSeconds) # \" seconds ago\";\n/// };\n/// };\n/// ```\n///\n/// Note: If `moc` is invoked with `-no-timer`, the importing will fail.\n/// Note: The resolution of the timers is in the order of the block rate,\n/// so durations should be chosen well above that. For frequent\n/// canister wake-ups the heartbeat mechanism should be considered.\n\nimport Types \"Types\";\nimport Nat \"Nat\";\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// System time is represent as nanoseconds since 1970-01-01.\n public type Time = Types.Time;\n\n /// Quantity of time expressed in `#days`, `#hours`, `#minutes`, `#seconds`, `#milliseconds`, or `#nanoseconds`.\n public type Duration = Types.Duration;\n\n /// Current system time given as nanoseconds since 1970-01-01. The system guarantees that:\n ///\n /// * the time, as observed by the canister smart contract, is monotonically increasing, even across canister upgrades.\n /// * within an invocation of one entry point, the time is constant.\n ///\n /// The system times of different canisters are unrelated, and calls from one canister to another may appear to travel \"backwards in time\"\n ///\n /// Note: While an implementation will likely try to keep the system time close to the real time, this is not formally guaranteed.\n public func now() : Time = Prim.nat64ToNat(Prim.time());\n\n public type TimerId = Nat;\n\n public func toNanoseconds(duration : Duration) : Nat {\n switch duration {\n case (#days n) n * 86_400_000_000_000;\n case (#hours n) n * 3_600_000_000_000;\n case (#minutes n) n * 60_000_000_000;\n case (#seconds n) n * 1_000_000_000;\n case (#milliseconds n) n * 1_000_000;\n case (#nanoseconds n) n\n }\n };\n\n}\n"},"Option.mo":{"content":"/// Typesafe nullable values.\n///\n/// Optional values can be seen as a typesafe `null`. A value of type `?Int` can\n/// be constructed with either `null` or `?42`. The simplest way to get at the\n/// contents of an optional is to use pattern matching:\n///\n/// ```motoko\n/// let optionalInt1 : ?Int = ?42;\n/// let optionalInt2 : ?Int = null;\n///\n/// let int1orZero : Int = switch optionalInt1 {\n/// case null 0;\n/// case (?int) int;\n/// };\n/// assert int1orZero == 42;\n///\n/// let int2orZero : Int = switch optionalInt2 {\n/// case null 0;\n/// case (?int) int;\n/// };\n/// assert int2orZero == 0;\n/// ```\n///\n/// The functions in this module capture some common operations when working\n/// with optionals that can be more succinct than using pattern matching.\n\nimport Runtime \"Runtime\";\nimport Types \"Types\";\n\nmodule {\n\n /// Unwraps an optional value, with a default value, i.e. `get(?x, d) = x` and\n /// `get(null, d) = d`.\n public func get(self : ?T, default : T) : T = switch self {\n case null { default };\n case (?x_) { x_ }\n };\n\n /// Unwraps an optional value using a function, or returns the default, i.e.\n /// `option(?x, f, d) = f x` and `option(null, f, d) = d`.\n public func getMapped(self : ?T, f : T -> R, default : R) : R = switch self {\n case null { default };\n case (?x_) { f(x_) }\n };\n\n /// Applies a function to the wrapped value. `null`'s are left untouched.\n /// ```motoko\n /// import Option \"mo:core/Option\";\n /// assert Option.map(?42, func x = x + 1) == ?43;\n /// assert Option.map(null, func x = x + 1) == null;\n /// ```\n public func map(self : ?T, f : T -> R) : ?R = switch self {\n case null { null };\n case (?x_) { ?f(x_) }\n };\n\n /// Applies a function to the wrapped value, but discards the result. Use\n /// `forEach` if you're only interested in the side effect `f` produces.\n ///\n /// ```motoko\n /// import Option \"mo:core/Option\";\n /// var counter : Nat = 0;\n /// Option.forEach(?5, func (x : Nat) { counter += x });\n /// assert counter == 5;\n /// Option.forEach(null, func (x : Nat) { counter += x });\n /// assert counter == 5;\n /// ```\n public func forEach(self : ?T, f : T -> ()) = switch self {\n case null {};\n case (?x_) { f(x_) }\n };\n\n /// Applies an optional function to an optional value. Returns `null` if at\n /// least one of the arguments is `null`.\n public func apply(self : ?T, f : ?(T -> R)) : ?R {\n switch (f, self) {\n case (?f_, ?x_) { ?f_(x_) };\n case (_, _) { null }\n }\n };\n\n /// Applies a function to an optional value. Returns `null` if the argument is\n /// `null`, or the function returns `null`.\n public func chain(self : ?T, f : T -> ?R) : ?R {\n switch (self) {\n case (?x_) { f(x_) };\n case (null) { null }\n }\n };\n\n /// Given an optional optional value, removes one layer of optionality.\n /// ```motoko\n /// import Option \"mo:core/Option\";\n /// assert Option.flatten(?(?(42))) == ?42;\n /// assert Option.flatten(?(null)) == null;\n /// assert Option.flatten(null) == null;\n /// ```\n public func flatten(self : ??T) : ?T {\n chain(self, func(x_ : ?T) : ?T = x_)\n };\n\n /// Creates an optional value from a definite value.\n /// ```motoko\n /// import Option \"mo:core/Option\";\n /// assert Option.some(42) == ?42;\n /// ```\n public func some(self : T) : ?T = ?self;\n\n /// Returns true if the argument is not `null`, otherwise returns false.\n public func isSome(self : ?Any) : Bool {\n self != null\n };\n\n /// Returns true if the argument is `null`, otherwise returns false.\n public func isNull(self : ?Any) : Bool {\n self == null\n };\n\n /// Returns true if the optional arguments are equal according to the equality function provided, otherwise returns false.\n public func equal(self : ?T, other : ?T, eq : (implicit : (equal : (T, T) -> Bool))) : Bool = switch (self, other) {\n case (null, null) { true };\n case (?x_, ?y_) { eq(x_, y_) };\n case (_, _) { false }\n };\n\n /// Compares two optional values using the provided comparison function.\n ///\n /// Returns:\n /// - `#equal` if both values are `null`,\n /// - `#less` if the first value is `null` and the second is not,\n /// - `#greater` if the first value is not `null` and the second is,\n /// - the result of the comparison function when both values are not `null`.\n public func compare(self : ?T, other : ?T, compare : (implicit : (T, T) -> Types.Order)) : Types.Order = switch (self, other) {\n case (null, null) #equal;\n case (null, _) #less;\n case (_, null) #greater;\n case (?x_, ?y_) { compare(x_, y_) }\n };\n\n /// Unwraps an optional value, i.e. `unwrap(?x) = x`.\n ///\n /// `Option.unwrap()` fails if the argument is null. Consider using a `switch` or `do?` expression instead.\n public func unwrap(self : ?T) : T = switch self {\n case null { Runtime.trap(\"Option.unwrap()\") };\n case (?x_) { x_ }\n };\n\n /// Returns the textural representation of an optional value for debugging purposes.\n public func toText(self : ?T, toText : (implicit : T -> Text)) : Text = switch self {\n case null { \"null\" };\n case (?x_) { \"?\" # toText(x_) }\n };\n\n}\n"},"Tuples.mo":{"content":"/// Contains modules for working with tuples of different sizes.\n///\n/// Usage example:\n///\n/// ```motoko\n/// import { Tuple2; Tuple3 } \"mo:core/Tuples\";\n/// import Bool \"mo:core/Bool\";\n/// import Nat \"mo:core/Nat\";\n///\n/// let swapped = Tuple2.swap((1, \"hello\"));\n/// assert swapped == (\"hello\", 1);\n/// let text = Tuple3.toText((1, true, 3), Nat.toText, Bool.toText, Nat.toText);\n/// assert text == \"(1, true, 3)\";\n/// ```\n\nimport Types \"Types\";\n\nmodule {\n\n public module Tuple2 {\n /// Swaps the elements of a tuple.\n ///\n /// ```motoko\n /// import { Tuple2 } \"mo:core/Tuples\";\n ///\n /// assert Tuple2.swap((1, \"hello\")) == (\"hello\", 1);\n /// ```\n public func swap((a, b) : (A, B)) : (B, A) = (b, a);\n\n /// Creates a textual representation of a tuple for debugging purposes.\n ///\n /// ```motoko\n /// import { Tuple2 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// assert Tuple2.toText((1, \"hello\"), Nat.toText, func (x: Text): Text = x) == \"(1, hello)\";\n /// ```\n public func toText(\n self : (A, B),\n toTextA : (implicit : (toText : A -> Text)),\n toTextB : (implicit : (toText : B -> Text))\n ) : Text = \"(\" # toTextA(self.0) # \", \" # toTextB(self.1) # \")\";\n\n /// Compares two tuples for equality.\n ///\n /// ```motoko\n /// import { Tuple2 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// assert Tuple2.equal((1, \"hello\"), (1, \"hello\"), Nat.equal, Text.equal);\n /// ```\n public func equal(\n self : (A, B),\n other : (A, B),\n equalA : (implicit : (equal : (A, A) -> Bool)),\n equalB : (implicit : (equal : (B, B) -> Bool))\n ) : Bool = equalA(self.0, other.0) and equalB(self.1, other.1);\n\n /// Compares two tuples lexicographically.\n ///\n /// ```motoko\n /// import { Tuple2 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// assert Tuple2.compare((1, \"hello\"), (1, \"world\"), Nat.compare, Text.compare) == #less;\n /// assert Tuple2.compare((1, \"hello\"), (2, \"hello\"), Nat.compare, Text.compare) == #less;\n /// assert Tuple2.compare((1, \"hello\"), (1, \"hello\"), Nat.compare, Text.compare) == #equal;\n /// assert Tuple2.compare((2, \"hello\"), (1, \"hello\"), Nat.compare, Text.compare) == #greater;\n /// assert Tuple2.compare((1, \"world\"), (1, \"hello\"), Nat.compare, Text.compare) == #greater;\n /// ```\n public func compare(\n self : (A, B),\n other : (A, B),\n compareA : (implicit : (compare : (A, A) -> Types.Order)),\n compareB : (implicit : (compare : (B, B) -> Types.Order))\n ) : Types.Order = switch (compareA(self.0, other.0)) {\n case (#equal) compareB(self.1, other.1);\n case order order\n };\n\n /// Creates a `toText` function for a tuple given `toText` functions for its elements.\n /// This is useful when you need to reuse the same toText conversion multiple times.\n ///\n /// ```motoko\n /// import { Tuple2 } \"mo:core/Tuples\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let tupleToText = Tuple2.makeToText(Nat.toText, func x = x);\n /// assert tupleToText((1, \"hello\")) == \"(1, hello)\";\n /// ```\n public func makeToText(\n toTextA : (implicit : (toText : A -> Text)),\n toTextB : (implicit : (toText : B -> Text))\n ) : ((A, B)) -> Text = func t = toText(t, toTextA, toTextB);\n\n /// Creates an `equal` function for a tuple given `equal` functions for its elements.\n /// This is useful when you need to reuse the same equality comparison multiple times.\n ///\n /// ```motoko\n /// import { Tuple2 } \"mo:core/Tuples\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// let tupleEqual = Tuple2.makeEqual(Nat.equal, Text.equal);\n /// assert tupleEqual((1, \"hello\"), (1, \"hello\"));\n /// ```\n public func makeEqual(\n equalA : (implicit : (equal : (A, A) -> Bool)),\n equalB : (implicit : (equal : (B, B) -> Bool))\n ) : ((A, B), (A, B)) -> Bool = func(t1, t2) = equal(t1, t2, equalA, equalB);\n\n /// Creates a `compare` function for a tuple given `compare` functions for its elements.\n /// This is useful when you need to reuse the same comparison multiple times.\n ///\n /// ```motoko\n /// import { Tuple2 } \"mo:core/Tuples\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// let tupleCompare = Tuple2.makeCompare(Nat.compare, Text.compare);\n /// assert tupleCompare((1, \"hello\"), (1, \"world\")) == #less;\n /// ```\n public func makeCompare(\n compareA : (implicit : (compare : (A, A) -> Types.Order)),\n compareB : (implicit : (compare : (B, B) -> Types.Order))\n ) : ((A, B), (A, B)) -> Types.Order = func(t1, t2) = compare(t1, t2, compareA, compareB)\n };\n\n public module Tuple3 {\n /// Creates a textual representation of a 3-tuple for debugging purposes.\n ///\n /// ```motoko\n /// import { Tuple3 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// assert Tuple3.toText((1, \"hello\", 2), Nat.toText, func (x: Text): Text = x, Nat.toText) == \"(1, hello, 2)\";\n /// ```\n public func toText(\n self : (A, B, C),\n toTextA : (implicit : (toText : A -> Text)),\n toTextB : (implicit : (toText : B -> Text)),\n toTextC : (implicit : (toText : C -> Text))\n ) : Text = \"(\" # toTextA(self.0) # \", \" # toTextB(self.1) # \", \" # toTextC(self.2) # \")\";\n\n /// Compares two 3-tuples for equality.\n ///\n /// ```motoko\n /// import { Tuple3 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// assert Tuple3.equal((1, \"hello\", 2), (1, \"hello\", 2), Nat.equal, Text.equal, Nat.equal);\n /// ```\n public func equal(\n self : (A, B, C),\n other : (A, B, C),\n equalA : (implicit : (equal : (A, A) -> Bool)),\n equalB : (implicit : (equal : (B, B) -> Bool)),\n equalC : (implicit : (equal : (C, C) -> Bool))\n ) : Bool = equalA(self.0, other.0) and equalB(self.1, other.1) and equalC(self.2, other.2);\n\n /// Compares two 3-tuples lexicographically.\n ///\n /// ```motoko\n /// import { Tuple3 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// assert Tuple3.compare((1, \"hello\", 2), (1, \"world\", 1), Nat.compare, Text.compare, Nat.compare) == #less;\n /// assert Tuple3.compare((1, \"hello\", 2), (2, \"hello\", 2), Nat.compare, Text.compare, Nat.compare) == #less;\n /// assert Tuple3.compare((1, \"hello\", 2), (1, \"hello\", 2), Nat.compare, Text.compare, Nat.compare) == #equal;\n /// assert Tuple3.compare((2, \"hello\", 2), (1, \"hello\", 2), Nat.compare, Text.compare, Nat.compare) == #greater;\n /// ```\n public func compare(\n self : (A, B, C),\n other : (A, B, C),\n compareA : (implicit : (compare : (A, A) -> Types.Order)),\n compareB : (implicit : (compare : (B, B) -> Types.Order)),\n compareC : (implicit : (compare : (C, C) -> Types.Order))\n ) : Types.Order = switch (compareA(self.0, other.0)) {\n case (#equal) {\n switch (compareB(self.1, other.1)) {\n case (#equal) compareC(self.2, other.2);\n case order order\n }\n };\n case order order\n };\n\n /// Creates a `toText` function for a 3-tuple given `toText` functions for its elements.\n /// This is useful when you need to reuse the same toText conversion multiple times.\n ///\n /// ```motoko\n /// import { Tuple3 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// let toText = Tuple3.makeToText(Nat.toText, func x = x, Nat.toText);\n /// assert toText((1, \"hello\", 2)) == \"(1, hello, 2)\";\n /// ```\n public func makeToText(\n toTextA : (implicit : (toText : A -> Text)),\n toTextB : (implicit : (toText : B -> Text)),\n toTextC : (implicit : (toText : C -> Text))\n ) : ((A, B, C)) -> Text = func t = toText(t, toTextA, toTextB, toTextC);\n\n /// Creates an `equal` function for a 3-tuple given `equal` functions for its elements.\n /// This is useful when you need to reuse the same equality comparison multiple times.\n ///\n /// ```motoko\n /// import { Tuple3 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// let equal = Tuple3.makeEqual(Nat.equal, Text.equal, Nat.equal);\n /// assert equal((1, \"hello\", 2), (1, \"hello\", 2));\n /// ```\n public func makeEqual(\n equalA : (implicit : (equal : (A, A) -> Bool)),\n equalB : (implicit : (equal : (B, B) -> Bool)),\n equalC : (implicit : (equal : (C, C) -> Bool))\n ) : ((A, B, C), (A, B, C)) -> Bool = func(t1, t2) = equal(t1, t2, equalA, equalB, equalC);\n\n /// Creates a `compare` function for a 3-tuple given `compare` functions for its elements.\n /// This is useful when you need to reuse the same comparison multiple times.\n ///\n /// ```motoko\n /// import { Tuple3 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// let compare = Tuple3.makeCompare(Nat.compare, Text.compare, Nat.compare);\n /// assert compare((1, \"hello\", 2), (1, \"world\", 1)) == #less;\n /// ```\n public func makeCompare(\n compareA : (implicit : (compare : (A, A) -> Types.Order)),\n compareB : (implicit : (compare : (B, B) -> Types.Order)),\n compareC : (implicit : (compare : (C, C) -> Types.Order))\n ) : ((A, B, C), (A, B, C)) -> Types.Order = func(t1, t2) = compare(t1, t2, compareA, compareB, compareC)\n };\n\n public module Tuple4 {\n /// Creates a textual representation of a 4-tuple for debugging purposes.\n ///\n /// ```motoko\n /// import { Tuple4 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// assert Tuple4.toText((1, \"hello\", 2, 3), Nat.toText, func (x: Text): Text = x, Nat.toText, Nat.toText) == \"(1, hello, 2, 3)\";\n /// ```\n public func toText(\n self : (A, B, C, D),\n toTextA : (implicit : (toText : A -> Text)),\n toTextB : (implicit : (toText : B -> Text)),\n toTextC : (implicit : (toText : C -> Text)),\n toTextD : (implicit : (toText : D -> Text))\n ) : Text = \"(\" # toTextA(self.0) # \", \" # toTextB(self.1) # \", \" # toTextC(self.2) # \", \" # toTextD(self.3) # \")\";\n\n /// Compares two 4-tuples for equality.\n ///\n /// ```motoko\n /// import { Tuple4 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// assert Tuple4.equal((1, \"hello\", 2, 3), (1, \"hello\", 2, 3), Nat.equal, Text.equal, Nat.equal, Nat.equal);\n /// ```\n public func equal(\n self : (A, B, C, D),\n other : (A, B, C, D),\n equalA : (implicit : (equal : (A, A) -> Bool)),\n equalB : (implicit : (equal : (B, B) -> Bool)),\n equalC : (implicit : (equal : (C, C) -> Bool)),\n equalD : (implicit : (equal : (D, D) -> Bool))\n ) : Bool = equalA(self.0, other.0) and equalB(self.1, other.1) and equalC(self.2, other.2) and equalD(self.3, other.3);\n\n /// Compares two 4-tuples lexicographically.\n ///\n /// ```motoko\n /// import { Tuple4 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// assert Tuple4.compare((1, \"hello\", 2, 3), (1, \"world\", 1, 3), Nat.compare, Text.compare, Nat.compare, Nat.compare) == #less;\n /// assert Tuple4.compare((1, \"hello\", 2, 3), (2, \"hello\", 2, 3), Nat.compare, Text.compare, Nat.compare, Nat.compare) == #less;\n /// assert Tuple4.compare((1, \"hello\", 2, 3), (1, \"hello\", 2, 3), Nat.compare, Text.compare, Nat.compare, Nat.compare) == #equal;\n /// assert Tuple4.compare((2, \"hello\", 2, 3), (1, \"hello\", 2, 3), Nat.compare, Text.compare, Nat.compare, Nat.compare) == #greater;\n /// ```\n public func compare(\n self : (A, B, C, D),\n other : (A, B, C, D),\n compareA : (implicit : (compare : (A, A) -> Types.Order)),\n compareB : (implicit : (compare : (B, B) -> Types.Order)),\n compareC : (implicit : (compare : (C, C) -> Types.Order)),\n compareD : (implicit : (compare : (D, D) -> Types.Order))\n ) : Types.Order = switch (compareA(self.0, other.0)) {\n case (#equal) {\n switch (compareB(self.1, other.1)) {\n case (#equal) {\n switch (compareC(self.2, other.2)) {\n case (#equal) compareD(self.3, other.3);\n case order order\n }\n };\n case order order\n }\n };\n case order order\n };\n\n /// Creates a `toText` function for a 4-tuple given `toText` functions for its elements.\n /// This is useful when you need to reuse the same toText conversion multiple times.\n ///\n /// ```motoko\n /// import { Tuple4 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// let toText = Tuple4.makeToText(Nat.toText, func (x: Text): Text = x, Nat.toText, Nat.toText);\n /// assert toText((1, \"hello\", 2, 3)) == \"(1, hello, 2, 3)\";\n /// ```\n public func makeToText(\n toTextA : (implicit : (toText : A -> Text)),\n toTextB : (implicit : (toText : B -> Text)),\n toTextC : (implicit : (toText : C -> Text)),\n toTextD : (implicit : (toText : D -> Text))\n ) : ((A, B, C, D)) -> Text = func t = toText(t, toTextA, toTextB, toTextC, toTextD);\n\n /// Creates an `equal` function for a 4-tuple given `equal` functions for its elements.\n /// This is useful when you need to reuse the same equality comparison multiple times.\n ///\n /// ```motoko\n /// import { Tuple4 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// let equal = Tuple4.makeEqual(Nat.equal, Text.equal, Nat.equal, Nat.equal);\n /// assert equal((1, \"hello\", 2, 3), (1, \"hello\", 2, 3));\n /// ```\n public func makeEqual(\n equalA : (implicit : (equal : (A, A) -> Bool)),\n equalB : (implicit : (equal : (B, B) -> Bool)),\n equalC : (implicit : (equal : (C, C) -> Bool)),\n equalD : (implicit : (equal : (D, D) -> Bool))\n ) : ((A, B, C, D), (A, B, C, D)) -> Bool = func(t1, t2) = equal(t1, t2, equalA, equalB, equalC, equalD);\n\n /// Creates a `compare` function for a 4-tuple given `compare` functions for its elements.\n /// This is useful when you need to reuse the same comparison multiple times.\n ///\n /// ```motoko\n /// import { Tuple4 } \"mo:core/Tuples\";\n ///\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// let compare = Tuple4.makeCompare(Nat.compare, Text.compare, Nat.compare, Nat.compare);\n /// assert compare((1, \"hello\", 2, 3), (1, \"world\", 1, 3)) == #less;\n /// ```\n public func makeCompare(\n compareA : (implicit : (compare : (A, A) -> Types.Order)),\n compareB : (implicit : (compare : (B, B) -> Types.Order)),\n compareC : (implicit : (compare : (C, C) -> Types.Order)),\n compareD : (implicit : (compare : (D, D) -> Types.Order))\n ) : ((A, B, C, D), (A, B, C, D)) -> Types.Order = func(t1, t2) = compare(t1, t2, compareA, compareB, compareC, compareD)\n }\n}\n"},"pure/Map.mo":{"content":"/// Immutable, ordered key-value maps.\n///\n/// The map type is stable whenever the key and value types are stable, allowing\n/// map values to be stored in stable variables.\n///\n/// Keys are ordered by an explicit `compare` function, which *must* be the same\n/// across all operations on a given map.\n///\n///\n/// Example:\n/// ```motoko\n/// import Map \"mo:core/pure/Map\";\n/// import Nat \"mo:core/Nat\";\n///\n/// persistent actor {\n/// // creation\n/// let empty = Map.empty();\n/// // insertion\n/// let map1 = Map.add(empty, Nat.compare, 0, \"Zero\");\n/// // retrieval\n/// assert Map.get(empty, Nat.compare, 0) == null;\n/// assert Map.get(map1, Nat.compare, 0) == ?\"Zero\";\n/// // removal\n/// let map2 = Map.remove(map1, Nat.compare, 0);\n/// assert not Map.isEmpty(map1);\n/// assert Map.isEmpty(map2);\n/// }\n/// ```\n///\n/// The internal representation is a red-black tree.\n///\n/// A red-black tree is a balanced binary search tree ordered by the keys.\n///\n/// The tree data structure internally colors each of its nodes either red or black,\n/// and uses this information to balance the tree during the modifying operations.\n///\n/// Performance:\n/// * Runtime: `O(log(n))` worst case cost per insertion, removal, and retrieval operation.\n/// * Space: `O(n)` for storing the entire tree.\n/// `n` denotes the number of key-value entries (i.e. nodes) stored in the tree.\n///\n/// Note:\n/// * Map operations, such as retrieval, insertion, and removal create `O(log(n))` temporary objects that become garbage.\n///\n/// Credits:\n///\n/// The core of this implementation is derived from:\n///\n/// * Ken Friis Larsen's [RedBlackMap.sml](https://github.com/kfl/mosml/blob/master/src/mosmllib/Redblackmap.sml), which itself is based on:\n/// * Stefan Kahrs, \"Red-black trees with types\", Journal of Functional Programming, 11(4): 425-432 (2001), [version 1 in web appendix](http://www.cs.ukc.ac.uk/people/staff/smk/redblack/rb.html).\n\nimport Order \"../Order\";\nimport Iter \"../Iter\";\nimport Types \"../Types\";\nimport Runtime \"../Runtime\";\n\n// TODO: inline Internal?\n// TODO: Do we want clone or clear, just to match imperative API?\n// inline Tree type, remove Types.Pure.Tree?\n\nmodule {\n\n /// @deprecated M0235\n public type Map = Types.Pure.Map;\n\n type Tree = Types.Pure.Map.Tree;\n\n /// Create a new empty immutable key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.empty();\n /// assert Map.size(map) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func empty() : Map {\n Internal.empty()\n };\n\n /// Determines whether a key-value map is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map0 = Map.empty();\n /// let map1 = Map.add(map0, Nat.compare, 0, \"Zero\");\n ///\n /// assert Map.isEmpty(map0);\n /// assert not Map.isEmpty(map1);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func isEmpty(self : Map) : Bool {\n self.size == 0\n };\n\n /// Determine the size of the map as the number of key-value entries.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Map.size(map) == 3;\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n public func size(self : Map) : Nat = self.size;\n\n /// Test whether the map `map`, ordered by `compare`, contains a binding for the given `key`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Map.containsKey(map, Nat.compare, 1);\n /// assert not Map.containsKey(map, Nat.compare, 42);\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func containsKey(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : Bool = Internal.contains(self.root, compare, key);\n\n /// Given, `map` ordered by `compare`, return the value associated with key `key` if present and `null` otherwise.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Map.get(map, Nat.compare, 1) == ?\"One\";\n /// assert Map.get(map, Nat.compare, 42) == null;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func get(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : ?V = Internal.get(self.root, compare, key);\n\n /// Given `map` ordered by `compare`, insert a mapping from `key` to `value`.\n /// Returns the modified map and `true` if the key is new to map, otherwise `false`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map0 = Map.empty();\n ///\n /// do {\n /// let (map1, new1) = Map.insert(map0, Nat.compare, 0, \"Zero\");\n /// assert Iter.toArray(Map.entries(map1)) == [(0, \"Zero\")];\n /// assert new1;\n /// let (map2, new2) = Map.insert(map1, Nat.compare, 0, \"Nil\");\n /// assert Iter.toArray(Map.entries(map2)) == [(0, \"Nil\")];\n /// assert not new2\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned map shares with the `m` most of the tree nodes.\n /// Garbage collecting one of maps (e.g. after an assignment `m := Map.add(m, cmp, k, v)`)\n /// causes collecting `O(log(n))` nodes.\n public func insert(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) : (Map, Bool) {\n switch (swap(self, compare, key, value)) {\n case (map1, null) (map1, true);\n case (map1, _) (map1, false)\n }\n };\n\n /// Given `map` ordered by `compare`, add a new mapping from `key` to `value`.\n /// Replaces any existing entry with key `key`.\n /// Returns the modified map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// var map = Map.empty();\n ///\n /// map := Map.add(map, Nat.compare, 0, \"Zero\");\n /// map := Map.add(map, Nat.compare, 1, \"One\");\n /// map := Map.add(map, Nat.compare, 0, \"Nil\");\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Nil\"), (1, \"One\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned map shares with the `m` most of the tree nodes.\n /// Garbage collecting one of maps (e.g. after an assignment `m := Map.add(m, cmp, k, v)`)\n /// causes collecting `O(log(n))` nodes.\n public func add(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) : Map {\n swap(self, compare, key, value).0\n };\n\n /// Given `map` ordered by `compare`, add a mapping from `key` to `value`. Overwrites any existing entry with key `key`.\n /// Returns the modified map and the previous value associated with key `key`\n /// or `null` if no such value exists.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map0 = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// do {\n /// let (map1, old1) = Map.swap(map0, Nat.compare, 0, \"Nil\");\n /// assert Iter.toArray(Map.entries(map1)) == [(0, \"Nil\"), (1, \"One\"), (2, \"Two\")];\n /// assert old1 == ?\"Zero\";\n ///\n /// let (map2, old2) = Map.swap(map0, Nat.compare, 3, \"Three\");\n /// assert Iter.toArray(Map.entries(map2)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\"), (3, \"Three\")];\n /// assert old2 == null;\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned map shares with the `m` most of the tree nodes.\n /// Garbage collecting one of maps (e.g. after an assignment `m := Map.swap(m, Nat.compare, k, v).0`)\n /// causes collecting `O(log(n))` nodes.\n public func swap(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) : (Map, ?V) {\n switch (Internal.swap(self.root, compare, key, value)) {\n case (t, null) { ({ root = t; size = self.size + 1 }, null) };\n case (t, v) { ({ root = t; size = self.size }, v) }\n }\n };\n\n /// Overwrites the value of an existing key and returns the updated map and previous value.\n /// If the key does not exist, returns the original map and `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let singleton = Map.singleton(0, \"Zero\");\n ///\n /// do {\n /// let (map1, prev1) = Map.replace(singleton, Nat.compare, 0, \"Nil\"); // overwrites the value for existing key.\n /// assert prev1 == ?\"Zero\";\n /// assert Map.get(map1, Nat.compare, 0) == ?\"Nil\";\n ///\n /// let (map2, prev2) = Map.replace(map1, Nat.compare, 1, \"One\"); // no effect, key is absent\n /// assert prev2 == null;\n /// assert Map.get(map2, Nat.compare, 1) == null;\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func replace(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) : (Map, ?V) {\n // TODO: Could be optimized in future\n if (containsKey(self, compare, key)) {\n swap(self, compare, key, value)\n } else { (self, null) }\n };\n\n /// Given a `map`, ordered by `compare`, deletes any entry for `key` from `map`.\n /// Has no effect if `key` is not present in the map.\n /// Returns the updated map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map0 =\n /// Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// let map1 = Map.remove(map0, Nat.compare, 1);\n /// assert Iter.toArray(Map.entries(map1)) == [(0, \"Zero\"), (2, \"Two\")];\n /// let map2 = Map.remove(map0, Nat.compare, 42);\n /// assert Iter.toArray(Map.entries(map2)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned map shares with the `m` most of the tree nodes.\n /// Garbage collecting one of maps (e.g. after an assignment `map := Map.delete(map, compare, k).0`)\n /// causes collecting `O(log(n))` nodes.\n public func remove(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : Map {\n switch (Internal.remove(self.root, compare, key)) {\n case (_, null) self;\n case (t, ?_) { { root = t; size = self.size - 1 } }\n }\n };\n\n /// Given a `map`, ordered by `compare`, deletes any entry for `key` from `map`.\n /// Has no effect if `key` is not present in the map.\n /// Returns the updated map and `true` if the `key` was present in `map`, otherwise `false`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map0 =\n /// Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// do {\n /// let (map1, pres1) = Map.delete(map0, Nat.compare, 1);\n /// assert Iter.toArray(Map.entries(map1)) == [(0, \"Zero\"), (2, \"Two\")];\n /// assert pres1;\n /// let (map2, pres2) = Map.delete(map0, Nat.compare, 42);\n /// assert not pres2;\n /// assert Iter.toArray(Map.entries(map2)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned map shares with the `m` most of the tree nodes.\n /// Garbage collecting one of maps (e.g. after an assignment `map := Map.delete(map, compare, k).0`)\n /// causes collecting `O(log(n))` nodes.\n public func delete(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : (Map, Bool) {\n switch (Internal.remove(self.root, compare, key)) {\n case (_, null) { (self, false) };\n case (t, ?_) { ({ root = t; size = self.size - 1 }, true) }\n }\n };\n\n /// Given a `map`, ordered by `compare`, deletes the entry for `key`. Returns a modified map, leaving `map` unchanged, and the\n /// previous value associated with `key` or `null` if no such value exists.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map0 = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// do {\n /// let (map1, prev1) = Map.take(map0, Nat.compare, 0);\n /// assert Iter.toArray(Map.entries(map1)) == [(1, \"One\"), (2, \"Two\")];\n /// assert prev1 == ?\"Zero\";\n ///\n /// let (map2, prev2) = Map.take(map0, Nat.compare, 42);\n /// assert Iter.toArray(Map.entries(map2)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// assert prev2 == null;\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned map shares with the `m` most of the tree nodes.\n /// Garbage collecting one of maps (e.g. after an assignment `map := Map.remove(map, compare, key)`)\n /// causes collecting `O(log(n))` nodes.\n public func take(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : (Map, ?V) {\n switch (Internal.remove(self.root, compare, key)) {\n case (t, null) { ({ root = t; size = self.size }, null) };\n case (t, v) { ({ root = t; size = self.size - 1 }, v) }\n }\n };\n\n /// Given a `map` retrieves the key-value pair in `map` with a maximal key. If `map` is empty returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Map.maxEntry(map) == ?(2, \"Two\");\n /// assert Map.maxEntry(Map.empty()) == null;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func maxEntry(self : Map) : ?(K, V) = Internal.maxEntry(self.root);\n\n /// Retrieves a key-value pair from `map` with the minimal key. If the map is empty returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Map.minEntry(map) == ?(0, \"Zero\");\n /// assert Map.minEntry(Map.empty()) == null;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func minEntry(self : Map) : ?(K, V) = Internal.minEntry(self.root);\n\n /// Returns an Iterator (`Iter`) over the key-value pairs in the map.\n /// Iterator provides a single method `next()`, which returns\n /// pairs in ascending order by keys, or `null` when out of pairs to iterate over.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// var sum = 0;\n /// var text = \"\";\n /// for ((k, v) in Map.entries(map)) { sum += k; text #= v };\n /// assert sum == 3;\n /// assert text == \"ZeroOneTwo\"\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(log(n))` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Full map iteration creates `O(n)` temporary objects that will be collected as garbage.\n public func entries(self : Map) : Iter.Iter<(K, V)> = Internal.iter(self.root, #fwd);\n\n /// Returns an Iterator (`Iter`) over the key-value pairs in the map.\n /// Iterator provides a single method `next()`, which returns\n /// pairs in descending order by keys, or `null` when out of pairs to iterate over.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.reverseEntries(map)) == [(2, \"Two\"), (1, \"One\"), (0, \"Zero\")];\n /// var sum = 0;\n /// var text = \"\";\n /// for ((k, v) in Map.reverseEntries(map)) { sum += k; text #= v };\n /// assert sum == 3;\n /// assert text == \"TwoOneZero\"\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(log(n))` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Full map iteration creates `O(n)` temporary objects that will be collected as garbage.\n public func reverseEntries(self : Map) : Iter.Iter<(K, V)> = Internal.iter(self.root, #bwd);\n\n /// Given a `map`, returns an Iterator (`Iter`) over the keys of the `map`.\n /// Iterator provides a single method `next()`, which returns\n /// keys in ascending order, or `null` when out of keys to iterate over.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.keys(map)) == [0, 1, 2];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(log(n))` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Full map iteration creates `O(n)` temporary objects that will be collected as garbage.\n public func keys(self : Map) : Iter.Iter = Iter.map(entries(self), func(kv : (K, V)) : K { kv.0 });\n\n /// Given a `map`, returns an Iterator (`Iter`) over the values of the map.\n /// Iterator provides a single method `next()`, which returns\n /// values in ascending order of associated keys, or `null` when out of values to iterate over.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.values(map)) == [\"Zero\", \"One\", \"Two\"];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(log(n))` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Full map iteration creates `O(n)` temporary objects that will be collected as garbage.\n public func values(self : Map) : Iter.Iter = Iter.map(entries(self), func(kv : (K, V)) : V { kv.1 });\n\n /// Returns a new map, containing all entries given by the iterator `i`.\n /// If there are multiple entries with the same key the last one is taken.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// transient let iter =\n /// Iter.fromArray([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")]);\n ///\n /// let map = Map.fromIter(iter, Nat.compare);\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n public func fromIter(iter : Iter.Iter<(K, V)>, compare : (implicit : (K, K) -> Order.Order)) : Map = Internal.fromIter(iter, compare);\n\n /// Convert an iterator of entries into a map.\n /// If there are multiple entries with the same key the last one is taken.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// transient let iter =\n /// Iter.fromArray([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")]);\n ///\n /// let map = iter.toMap(Nat.compare);\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n public func toMap(self : Iter.Iter<(K, V)>, compare : (implicit : (K, K) -> Order.Order)) : Map = Internal.fromIter(self, compare);\n\n /// Given a `map` and function `f`, creates a new map by applying `f` to each entry in the map `m`. Each entry\n /// `(k, v)` in the old map is transformed into a new entry `(k, v2)`, where\n /// the new value `v2` is created by applying `f` to `(k, v)`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func f(key : Nat, _val : Text) : Nat = key * 2;\n ///\n /// let resMap = Map.map(map, f);\n ///\n /// assert Iter.toArray(Map.entries(resMap)) == [(0, 0), (1, 2), (2, 4)];\n /// }\n /// ```\n ///\n /// Cost of mapping all the elements:\n /// Runtime: `O(n)`.\n /// Space: `O(n)` retained memory\n /// where `n` denotes the number of key-value entries stored in the map.\n public func map(self : Map, f : (K, V1) -> V2) : Map = Internal.map(self, f);\n\n /// Collapses the elements in the `map` into a single value by starting with `base`\n /// and progressively combining keys and values into `base` with `combine`. Iteration runs\n /// left to right.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func folder(accum : (Nat, Text), key : Nat, val : Text) : ((Nat, Text))\n /// = (key + accum.0, accum.1 # val);\n ///\n /// assert Map.foldLeft(map, (0, \"\"), folder) == (3, \"ZeroOneTwo\");\n /// }\n /// ```\n ///\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: depends on `combine` function plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Full map iteration creates `O(n)` temporary objects that will be collected as garbage.\n public func foldLeft(\n self : Map,\n base : A,\n combine : (A, K, V) -> A\n ) : A = Internal.foldLeft(self.root, base, combine);\n\n /// Collapses the elements in the `map` into a single value by starting with `base`\n /// and progressively combining keys and values into `base` with `combine`. Iteration runs\n /// right to left.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func folder(key : Nat, val : Text, accum : (Nat, Text)) : ((Nat, Text))\n /// = (key + accum.0, accum.1 # val);\n ///\n /// assert Map.foldRight(map, (0, \"\"), folder) == (3, \"TwoOneZero\");\n /// }\n /// ```\n ///\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: depends on `combine` function plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Full map iteration creates `O(n)` temporary objects that will be collected as garbage.\n public func foldRight(\n self : Map,\n base : A,\n combine : (K, V, A) -> A\n ) : A = Internal.foldRight(self.root, base, combine);\n\n /// Test whether all key-value pairs in `map` satisfy the given predicate `pred`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"0\"), (2, \"2\"), (1, \"1\")].values(), Nat.compare);\n ///\n /// assert Map.all(map, func (k, v) = v == Nat.toText(k));\n /// assert not Map.all(map, func (k, v) = k < 2);\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func all(self : Map, pred : (K, V) -> Bool) : Bool = Internal.all(self.root, pred);\n\n /// Test if any key-value pair in `map` satisfies the given predicate `pred`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"0\"), (2, \"2\"), (1, \"1\")].values(), Nat.compare);\n ///\n /// assert Map.any(map, func (k, v) = (k >= 0));\n /// assert not Map.any(map, func (k, v) = (k >= 3));\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func any(self : Map, pred : (K, V) -> Bool) : Bool = Internal.any(self.root, pred);\n\n /// Create a new immutable key-value `map` with a single entry.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.singleton(0, \"Zero\");\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func singleton(key : K, value : V) : Map {\n {\n size = 1;\n root = #red(#leaf, key, value, #leaf)\n }\n };\n\n /// Apply an operation for each key-value pair contained in the map.\n /// The operation is applied in ascending order of the keys.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n /// var sum = 0;\n /// var text = \"\";\n /// Map.forEach(map, func (key, value) {\n /// sum += key;\n /// text #= value;\n /// });\n /// assert sum == 3;\n /// assert text == \"ZeroOneTwo\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func forEach(self : Map, operation : (K, V) -> ()) = Internal.forEach(self, operation);\n\n /// Filter entries in a new map.\n /// Returns a new map that only contains the key-value pairs\n /// that fulfil the criterion function.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numberNames = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// let evenNames = Map.filter(numberNames, Nat.compare, func (key, value) {\n /// key % 2 == 0\n /// });\n ///\n /// assert Iter.toArray(Map.entries(evenNames)) == [(0, \"Zero\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func filter(self : Map, compare : (implicit : (K, K) -> Order.Order), criterion : (K, V) -> Bool) : Map = Internal.filter(self, compare, criterion);\n\n /// Given a `map`, comparison `compare` and function `f`,\n /// constructs a new map ordered by `compare`, by applying `f` to each entry in `map`.\n /// For each entry `(k, v)` in the old map, if `f` evaluates to `null`, the entry is discarded.\n /// Otherwise, the entry is transformed into a new entry `(k, v2)`, where\n /// the new value `v2` is the result of applying `f` to `(k, v)`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func f(key : Nat, val : Text) : ?Text {\n /// if(key == 0) {null}\n /// else { ?(\"Twenty \" # val)}\n /// };\n ///\n /// let newMap = Map.filterMap(map, Nat.compare, f);\n ///\n /// assert Iter.toArray(Map.entries(newMap)) == [(1, \"Twenty One\"), (2, \"Twenty Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n public func filterMap(self : Map, compare : (implicit : (K, K) -> Order.Order), f : (K, V1) -> ?V2) : Map = Internal.mapFilter(self, compare : (K, K) -> Order.Order, f);\n\n /// Validate the representation invariants of the given `map`.\n /// Assert if any invariants are violated.\n public func assertValid(self : Map, compare : (implicit : (K, K) -> Order.Order)) : () = Internal.validate(self, compare);\n\n /// Converts the `map` to its textual representation using `keyFormat` and `valueFormat` to convert each key and value to `Text`.\n ///\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n /// assert Map.toText(map, Nat.toText, func t { t }) == \"PureMap{(0, Zero), (1, One), (2, Two)}\";\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `keyFormat` and `valueFormat` run in O(1) time and space.\n public func toText(self : Map, keyFormat : (implicit : (toText : K -> Text)), valueFormat : (implicit : (toText : V -> Text))) : Text {\n var text = \"PureMap{\";\n var sep = \"\";\n for ((k, v) in entries(self)) {\n text #= sep # \"(\" # keyFormat(k) # \", \" # valueFormat(v) # \")\";\n sep := \", \"\n };\n text # \"}\"\n };\n\n /// Test whether two immutable maps have equal entries.\n /// Assumes both maps are ordered equivalently.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// persistent actor {\n /// let map1 = Map.fromIter([(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(), Nat.compare);\n /// let map2 = Map.fromIter([(2, \"Two\"), (1, \"One\"), (0, \"Zero\")].values(), Nat.compare);\n /// assert(Map.equal(map1, map2, Nat.compare, Text.equal));\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n public func equal(self : Map, other : Map, compare : (implicit : (K, K) -> Order.Order), equal : (implicit : (V, V) -> Bool)) : Bool {\n if (self.size != other.size) {\n return false\n };\n let iterator1 = entries(self);\n let iterator2 = entries(other);\n loop {\n let next1 = iterator1.next();\n let next2 = iterator2.next();\n switch (next1, next2) {\n case (null, null) {\n return true\n };\n case (?(key1, value1), ?(key2, value2)) {\n if (not (compare(key1, key2) == #equal) or not equal(value1, value2)) {\n return false\n }\n };\n case _ { return false }\n }\n }\n };\n\n /// Compare two maps by primarily comparing keys and secondarily values.\n /// Both maps are iterated by the ascending order of their creation and\n /// order is determined by the following rules:\n /// Less:\n /// `map1` is less than `map2` if:\n /// * the pairwise iteration hits a entry pair `entry1` and `entry2` where\n /// `entry1` is less than `entry2` and all preceding entry pairs are equal, or,\n /// * `map1` is a strict prefix of `map2`, i.e. `map2` has more entries than `map1`\n /// and all entries of `map1` occur at the beginning of iteration `map2`.\n /// `entry1` is less than `entry2` if:\n /// * the key of `entry1` is less than the key of `entry2`, or\n /// * `entry1` and `entry2` have equal keys and the value of `entry1` is less than\n /// the value of `entry2`.\n /// Equal:\n /// `map1` and `map2` have same series of equal entries by pairwise iteration.\n /// Greater:\n /// `map1` is neither less nor equal `map2`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// persistent actor {\n /// let map1 = Map.fromIter([(0, \"Zero\"), (1, \"One\")].values(), Nat.compare);\n /// let map2 = Map.fromIter([(0, \"Zero\"), (2, \"Two\")].values(), Nat.compare);\n ///\n /// assert Map.compare(map1, map2, Nat.compare, Text.compare) == #less;\n /// assert Map.compare(map1, map1, Nat.compare, Text.compare) == #equal;\n /// assert Map.compare(map2, map1, Nat.compare, Text.compare) == #greater\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that `compareKey` and `compareValue` have runtime and space costs of `O(1)`.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func compare(self : Map, other : Map, compareKey : (implicit : (compare : (K, K) -> Order.Order)), compareValue : (implicit : (compare : (V, V) -> Order.Order))) : Order.Order {\n let iterator1 = entries(self);\n let iterator2 = entries(other);\n loop {\n switch (iterator1.next(), iterator2.next()) {\n case (null, null) return #equal;\n case (null, _) return #less;\n case (_, null) return #greater;\n case (?(key1, value1), ?(key2, value2)) {\n let keyComparison = compareKey(key1, key2);\n if (keyComparison != #equal) {\n return keyComparison\n };\n let valueComparison = compareValue(value1, value2);\n if (valueComparison != #equal) {\n return valueComparison\n }\n }\n }\n }\n };\n\n module Internal {\n\n public func empty() : Map { { size = 0; root = #leaf } };\n\n public func fromIter(i : Iter.Iter<(K, V)>, compare : (K, K) -> Order.Order) : Map {\n var map = #leaf : Tree;\n var size = 0;\n for (val in i) {\n map := add(map, compare, val.0, val.1);\n size += 1\n };\n { root = map; size }\n };\n\n type List = Types.Pure.List;\n\n type IterRep = List<{ #tr : Tree; #xy : (K, V) }>;\n\n public func iter(map : Tree, direction : { #fwd; #bwd }) : Iter.Iter<(K, V)> {\n let turnLeftFirst : MapTraverser = func(l, x, y, r, ts) {\n ?(#tr(l), ?(#xy(x, y), ?(#tr(r), ts)))\n };\n\n let turnRightFirst : MapTraverser = func(l, x, y, r, ts) {\n ?(#tr(r), ?(#xy(x, y), ?(#tr(l), ts)))\n };\n\n switch direction {\n case (#fwd) IterMap(map, turnLeftFirst);\n case (#bwd) IterMap(map, turnRightFirst)\n }\n };\n\n type MapTraverser = (Tree, K, V, Tree, IterRep) -> IterRep;\n\n class IterMap(tree : Tree, mapTraverser : MapTraverser) {\n var trees : IterRep = ?(#tr(tree), null);\n public func next() : ?(K, V) {\n switch (trees) {\n case (null) { null };\n case (?(#tr(#leaf), ts)) {\n trees := ts;\n next()\n };\n case (?(#xy(xy), ts)) {\n trees := ts;\n ?xy\n };\n case (?(#tr(#red(l, x, y, r)), ts)) {\n trees := mapTraverser(l, x, y, r, ts);\n next()\n };\n case (?(#tr(#black(l, x, y, r)), ts)) {\n trees := mapTraverser(l, x, y, r, ts);\n next()\n }\n }\n }\n };\n\n public func map(map : Map, f : (K, V1) -> V2) : Map {\n func mapRec(m : Tree) : Tree {\n switch m {\n case (#leaf) { #leaf };\n case (#red(l, x, y, r)) {\n #red(mapRec l, x, f(x, y), mapRec r)\n };\n case (#black(l, x, y, r)) {\n #black(mapRec l, x, f(x, y), mapRec r)\n }\n }\n };\n { size = map.size; root = mapRec(map.root) }\n };\n\n public func foldLeft(\n map : Tree,\n base : Accum,\n combine : (Accum, Key, Value) -> Accum\n ) : Accum {\n switch (map) {\n case (#leaf) { base };\n case (#red(l, k, v, r)) {\n let left = foldLeft(l, base, combine);\n let middle = combine(left, k, v);\n foldLeft(r, middle, combine)\n };\n case (#black(l, k, v, r)) {\n let left = foldLeft(l, base, combine);\n let middle = combine(left, k, v);\n foldLeft(r, middle, combine)\n }\n }\n };\n\n public func foldRight(\n map : Tree,\n base : Accum,\n combine : (Key, Value, Accum) -> Accum\n ) : Accum {\n switch (map) {\n case (#leaf) { base };\n case (#red(l, k, v, r)) {\n let right = foldRight(r, base, combine);\n let middle = combine(k, v, right);\n foldRight(l, middle, combine)\n };\n case (#black(l, k, v, r)) {\n let right = foldRight(r, base, combine);\n let middle = combine(k, v, right);\n foldRight(l, middle, combine)\n }\n }\n };\n\n public func forEach(map : Map, operation : (K, V) -> ()) {\n func combine(_acc : Null, key : K, value : V) : Null {\n operation(key, value);\n null\n };\n ignore foldLeft(map.root, null, combine)\n };\n\n public func filter(map : Map, compare : (K, K) -> Order.Order, criterion : (K, V) -> Bool) : Map {\n var size = 0;\n func combine(acc : Tree, key : K, value : V) : Tree {\n if (criterion(key, value)) {\n size += 1;\n add(acc, compare, key, value)\n } else acc\n };\n { root = foldLeft(map.root, #leaf, combine); size }\n };\n\n public func mapFilter(map : Map, compare : (K, K) -> Order.Order, f : (K, V1) -> ?V2) : Map {\n var size = 0;\n func combine(acc : Tree, key : K, value1 : V1) : Tree {\n switch (f(key, value1)) {\n case null { acc };\n case (?value2) {\n size += 1;\n add(acc, compare, key, value2)\n }\n }\n };\n { root = foldLeft(map.root, #leaf, combine); size }\n };\n\n public func get(t : Tree, compare : (K, K) -> Order.Order, x : K) : ?V {\n switch t {\n case (#red(l, x1, y1, r)) {\n switch (compare(x, x1)) {\n case (#less) { get(l, compare, x) };\n case (#equal) { ?y1 };\n case (#greater) { get(r, compare, x) }\n }\n };\n case (#black(l, x1, y1, r)) {\n switch (compare(x, x1)) {\n case (#less) { get(l, compare, x) };\n case (#equal) { ?y1 };\n case (#greater) { get(r, compare, x) }\n }\n };\n case (#leaf) { null }\n }\n };\n\n public func contains(m : Tree, compare : (K, K) -> Order.Order, key : K) : Bool {\n switch (get(m, compare, key)) {\n case (null) { false };\n case (_) { true }\n }\n };\n\n public func maxEntry(m : Tree) : ?(K, V) {\n func rightmost(m : Tree) : (K, V) {\n switch m {\n case (#red(_, k, v, #leaf)) { (k, v) };\n case (#red(_, _, _, r)) { rightmost(r) };\n case (#black(_, k, v, #leaf)) { (k, v) };\n case (#black(_, _, _, r)) { rightmost(r) };\n case (#leaf) { Runtime.trap \"pure/Map.maxEntry() impossible\" }\n }\n };\n switch m {\n case (#leaf) { null };\n case (_) { ?rightmost(m) }\n }\n };\n\n public func minEntry(m : Tree) : ?(K, V) {\n func leftmost(m : Tree) : (K, V) {\n switch m {\n case (#red(#leaf, k, v, _)) { (k, v) };\n case (#red(l, _, _, _)) { leftmost(l) };\n case (#black(#leaf, k, v, _)) { (k, v) };\n case (#black(l, _, _, _)) { leftmost(l) };\n case (#leaf) { Runtime.trap \"pure/Map.minEntry() impossible\" }\n }\n };\n switch m {\n case (#leaf) { null };\n case (_) { ?leftmost(m) }\n }\n };\n\n public func all(m : Tree, pred : (K, V) -> Bool) : Bool {\n switch m {\n case (#red(l, k, v, r)) {\n pred(k, v) and all(l, pred) and all(r, pred)\n };\n case (#black(l, k, v, r)) {\n pred(k, v) and all(l, pred) and all(r, pred)\n };\n case (#leaf) { true }\n }\n };\n\n public func any(m : Tree, pred : (K, V) -> Bool) : Bool {\n switch m {\n case (#red(l, k, v, r)) {\n pred(k, v) or any(l, pred) or any(r, pred)\n };\n case (#black(l, k, v, r)) {\n pred(k, v) or any(l, pred) or any(r, pred)\n };\n case (#leaf) { false }\n }\n };\n\n func redden(t : Tree) : Tree {\n switch t {\n case (#black(l, x, y, r)) { (#red(l, x, y, r)) };\n case _ {\n Runtime.trap \"pure/Map.redden() impossible\"\n }\n }\n };\n\n func lbalance(left : Tree, x : K, y : V, right : Tree) : Tree {\n switch (left, right) {\n case (#red(#red(l1, x1, y1, r1), x2, y2, r2), r) {\n #red(\n #black(l1, x1, y1, r1),\n x2,\n y2,\n #black(r2, x, y, r)\n )\n };\n case (#red(l1, x1, y1, #red(l2, x2, y2, r2)), r) {\n #red(\n #black(l1, x1, y1, l2),\n x2,\n y2,\n #black(r2, x, y, r)\n )\n };\n case _ {\n #black(left, x, y, right)\n }\n }\n };\n\n func rbalance(left : Tree, x : K, y : V, right : Tree) : Tree {\n switch (left, right) {\n case (l, #red(l1, x1, y1, #red(l2, x2, y2, r2))) {\n #red(\n #black(l, x, y, l1),\n x1,\n y1,\n #black(l2, x2, y2, r2)\n )\n };\n case (l, #red(#red(l1, x1, y1, r1), x2, y2, r2)) {\n #red(\n #black(l, x, y, l1),\n x1,\n y1,\n #black(r1, x2, y2, r2)\n )\n };\n case _ {\n #black(left, x, y, right)\n }\n }\n };\n\n type ClashResolver = { old : A; new : A } -> A;\n\n func insertWith(\n m : Tree,\n compare : (K, K) -> Order.Order,\n key : K,\n val : V,\n onClash : ClashResolver\n ) : Tree {\n func ins(tree : Tree) : Tree {\n switch tree {\n case (#black(left, x, y, right)) {\n switch (compare(key, x)) {\n case (#less) {\n lbalance(ins left, x, y, right)\n };\n case (#greater) {\n rbalance(left, x, y, ins right)\n };\n case (#equal) {\n let newVal = onClash({ new = val; old = y });\n #black(left, key, newVal, right)\n }\n }\n };\n case (#red(left, x, y, right)) {\n switch (compare(key, x)) {\n case (#less) {\n #red(ins left, x, y, right)\n };\n case (#greater) {\n #red(left, x, y, ins right)\n };\n case (#equal) {\n let newVal = onClash { new = val; old = y };\n #red(left, key, newVal, right)\n }\n }\n };\n case (#leaf) {\n #red(#leaf, key, val, #leaf)\n }\n }\n };\n switch (ins m) {\n case (#red(left, x, y, right)) {\n #black(left, x, y, right)\n };\n case other { other }\n }\n };\n\n public func swap(\n m : Tree,\n compare : (K, K) -> Order.Order,\n key : K,\n val : V\n ) : (Tree, ?V) {\n var oldVal : ?V = null;\n func onClash(clash : { old : V; new : V }) : V {\n oldVal := ?clash.old;\n clash.new\n };\n let res = insertWith(m, compare, key, val, onClash);\n (res, oldVal)\n };\n\n public func add(\n m : Tree,\n compare : (K, K) -> Order.Order,\n key : K,\n val : V\n ) : Tree = swap(m, compare, key, val).0;\n\n func balLeft(left : Tree, x : K, y : V, right : Tree) : Tree {\n switch (left, right) {\n case (#red(l1, x1, y1, r1), r) {\n #red(\n #black(l1, x1, y1, r1),\n x,\n y,\n r\n )\n };\n case (_, #black(l2, x2, y2, r2)) {\n rbalance(left, x, y, #red(l2, x2, y2, r2))\n };\n case (_, #red(#black(l2, x2, y2, r2), x3, y3, r3)) {\n #red(\n #black(left, x, y, l2),\n x2,\n y2,\n rbalance(r2, x3, y3, redden r3)\n )\n };\n case _ { Runtime.trap \"pure/Map.balLeft() impossible\" }\n }\n };\n\n func balRight(left : Tree, x : K, y : V, right : Tree) : Tree {\n switch (left, right) {\n case (l, #red(l1, x1, y1, r1)) {\n #red(\n l,\n x,\n y,\n #black(l1, x1, y1, r1)\n )\n };\n case (#black(l1, x1, y1, r1), r) {\n lbalance(#red(l1, x1, y1, r1), x, y, r)\n };\n case (#red(l1, x1, y1, #black(l2, x2, y2, r2)), r3) {\n #red(\n lbalance(redden l1, x1, y1, l2),\n x2,\n y2,\n #black(r2, x, y, r3)\n )\n };\n case _ { Runtime.trap \"pure/Map.balRight() impossible\" }\n }\n };\n\n func append(left : Tree, right : Tree) : Tree {\n switch (left, right) {\n case (#leaf, _) { right };\n case (_, #leaf) { left };\n case (\n #red(l1, x1, y1, r1),\n #red(l2, x2, y2, r2)\n ) {\n switch (append(r1, l2)) {\n case (#red(l3, x3, y3, r3)) {\n #red(\n #red(l1, x1, y1, l3),\n x3,\n y3,\n #red(r3, x2, y2, r2)\n )\n };\n case r1l2 {\n #red(l1, x1, y1, #red(r1l2, x2, y2, r2))\n }\n }\n };\n case (t1, #red(l2, x2, y2, r2)) {\n #red(append(t1, l2), x2, y2, r2)\n };\n case (#red(l1, x1, y1, r1), t2) {\n #red(l1, x1, y1, append(r1, t2))\n };\n case (#black(l1, x1, y1, r1), #black(l2, x2, y2, r2)) {\n switch (append(r1, l2)) {\n case (#red(l3, x3, y3, r3)) {\n #red(\n #black(l1, x1, y1, l3),\n x3,\n y3,\n #black(r3, x2, y2, r2)\n )\n };\n case r1l2 {\n balLeft(\n l1,\n x1,\n y1,\n #black(r1l2, x2, y2, r2)\n )\n }\n }\n }\n }\n };\n\n public func delete(m : Tree, compare : (K, K) -> Order.Order, key : K) : Tree = remove(m, compare, key).0;\n\n public func remove(tree : Tree, compare : (K, K) -> Order.Order, x : K) : (Tree, ?V) {\n var y0 : ?V = null;\n func delNode(left : Tree, x1 : K, y1 : V, right : Tree) : Tree {\n switch (compare(x, x1)) {\n case (#less) {\n let newLeft = del left;\n switch left {\n case (#black(_, _, _, _)) {\n balLeft(newLeft, x1, y1, right)\n };\n case _ {\n #red(newLeft, x1, y1, right)\n }\n }\n };\n case (#greater) {\n let newRight = del right;\n switch right {\n case (#black(_, _, _, _)) {\n balRight(left, x1, y1, newRight)\n };\n case _ {\n #red(left, x1, y1, newRight)\n }\n }\n };\n case (#equal) {\n y0 := ?y1;\n append(left, right)\n }\n }\n };\n func del(tree : Tree) : Tree {\n switch tree {\n case (#red(left, x, y, right)) {\n delNode(left, x, y, right)\n };\n case (#black(left, x, y, right)) {\n delNode(left, x, y, right)\n };\n case (#leaf) {\n tree\n }\n }\n };\n switch (del(tree)) {\n case (#red(left, x, y, right)) { (#black(left, x, y, right), y0) };\n case other { (other, y0) }\n }\n };\n\n // Test helper\n public func validate(rbMap : Map, comp : (K, K) -> Order.Order) {\n ignore blackDepth(rbMap.root, comp)\n };\n\n func blackDepth(node : Tree, comp : (K, K) -> Order.Order) : Nat {\n func checkNode(left : Tree, key : K, right : Tree) : Nat {\n checkKey(left, func(x : K) : Bool { comp(x, key) == #less });\n checkKey(right, func(x : K) : Bool { comp(x, key) == #greater });\n let leftBlacks = blackDepth(left, comp);\n let rightBlacks = blackDepth(right, comp);\n assert (leftBlacks == rightBlacks);\n leftBlacks\n };\n switch node {\n case (#leaf) 0;\n case (#red(left, key, _, right)) {\n let leftBlacks = checkNode(left, key, right);\n assert (not isRed(left));\n assert (not isRed(right));\n leftBlacks\n };\n case (#black(left, key, _, right)) {\n checkNode(left, key, right) + 1\n }\n }\n };\n\n func isRed(node : Tree) : Bool {\n switch node {\n case (#red(_, _, _, _)) true;\n case _ false\n }\n };\n\n func checkKey(node : Tree, isValid : K -> Bool) {\n switch node {\n case (#leaf) {};\n case (#red(_, key, _, _)) {\n assert (isValid(key))\n };\n case (#black(_, key, _, _)) {\n assert (isValid(key))\n }\n }\n }\n };\n\n}\n"},"Error.mo":{"content":"/// Error values and inspection.\n///\n/// The `Error` type is the argument to `throw`, parameter of `catch`.\n/// The `Error` type is opaque.\n\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// Error value resulting from `async` computations\n public type Error = Prim.Types.Error;\n\n /// Error code to classify different kinds of user and system errors:\n /// ```motoko\n /// type ErrorCode = {\n /// // Fatal error.\n /// #system_fatal;\n /// // Transient error.\n /// #system_transient;\n /// // Destination invalid.\n /// #destination_invalid;\n /// // Canister error (e.g., trap, no response).\n /// #canister_error;\n /// // Explicit reject by canister code.\n /// #canister_reject;\n /// // Response unknown; system stopped waiting for it (e.g., timed out, or system under high load).\n /// #system_unknown;\n /// // Future error code (with unrecognized numeric code).\n /// #future : Nat32;\n /// // Error issuing inter-canister call\n /// // (indicating destination queue full or freezing threshold crossed).\n /// #call_error : { err_code : Nat32 }\n /// };\n /// ```\n public type ErrorCode = Prim.ErrorCode;\n\n /// Create an error from the message with the code `#canister_reject`.\n ///\n /// Example:\n /// ```motoko\n /// import Error \"mo:core/Error\";\n ///\n /// Error.reject(\"Example error\") // can be used as throw argument\n /// ```\n public let reject : (message : Text) -> Error = Prim.error;\n\n /// Returns the code of an error.\n ///\n /// Example:\n /// ```motoko\n /// import Error \"mo:core/Error\";\n ///\n /// let error = Error.reject(\"Example error\");\n /// Error.code(error) // #canister_reject\n /// ```\n public let code : (self : Error) -> ErrorCode = Prim.errorCode;\n\n /// Returns the message of an error.\n ///\n /// Example:\n /// ```motoko\n /// import Error \"mo:core/Error\";\n ///\n /// let error = Error.reject(\"Example error\");\n /// Error.message(error) // \"Example error\"\n /// ```\n public let message : (self : Error) -> Text = Prim.errorMessage;\n\n /// Checks if the error is a clean reject.\n /// A clean reject means that there must be no state changes on the callee side.\n public func isCleanReject(self : Error) : Bool = switch (code(self)) {\n case (#system_fatal or #system_transient or #destination_invalid or #call_error _) true;\n case _ false\n };\n\n /// Returns whether retrying to send a message may result in success.\n ///\n /// Example:\n /// ```motoko\n /// import Error \"mo:core/Error\";\n /// import Debug \"mo:core/Debug\";\n ///\n /// persistent actor {\n /// type CallableActor = actor {\n /// call : () -> async ()\n /// };\n ///\n /// public func example(callableActor : CallableActor) {\n /// try {\n /// await (with timeout = 3) callableActor.call();\n /// }\n /// catch e {\n /// if (Error.isRetryPossible e) {\n /// Debug.print(Error.message e);\n /// }\n /// }\n /// }\n /// }\n ///\n /// ```\n public func isRetryPossible(self : Error) : Bool = switch (code(self)) {\n case (#system_transient or #system_unknown) true;\n case _ false\n };\n\n}\n"},"InternetComputer.mo":{"content":"/// Low-level interface to the Internet Computer.\n\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// Calls `canister`'s update or query function, `name`, with the binary contents of `data` as IC argument.\n /// Returns the response to the call, an IC _reply_ or _reject_, as a Motoko future:\n ///\n /// * The message data of an IC reply determines the binary contents of `reply`.\n /// * The error code and textual message data of an IC reject determines the future's `Error` value.\n ///\n /// Note: `call` is an asynchronous function and can only be applied in an asynchronous context.\n ///\n /// Example:\n /// ```motoko no-repl\n /// import IC \"mo:core/InternetComputer\";\n /// import Principal \"mo:core/Principal\";\n ///\n /// persistent actor {\n /// type OutputType = { decimals : Nat32 };\n ///\n /// public func example() : async ?OutputType {\n /// let ledger = Principal.fromText(\"ryjl3-tyaaa-aaaaa-aaaba-cai\");\n /// let method = \"decimals\";\n /// let input = ();\n ///\n /// let rawReply = await IC.call(ledger, method, to_candid (input)); // serialized Candid\n /// let output : ?OutputType = from_candid (rawReply);\n /// assert output == ?{ decimals = 8 };\n /// output\n /// }\n /// }\n /// ```\n ///\n /// [Learn more about Candid serialization](https://internetcomputer.org/docs/motoko/language-manual#candid-serialization)\n public let call : (canister : Principal, name : Text, data : Blob) -> async (reply : Blob) = Prim.call_raw;\n\n /// `isReplicated` is true for update messages and for queries that passed through consensus.\n public let isReplicated : () -> Bool = Prim.isReplicatedExecution;\n\n /// Given computation, `comp`, counts the number of actual and (for IC system calls) notional WebAssembly\n /// instructions performed during the execution of `comp()`.\n ///\n /// More precisely, returns the difference between the state of the IC instruction counter (_performance counter_ `0`) before and after executing `comp()`\n /// (see [Performance Counter](https://internetcomputer.org/docs/current/references/ic-interface-spec#system-api-performance-counter)).\n ///\n /// NB: `countInstructions(comp)` will _not_ account for any deferred garbage collection costs incurred by `comp()`.\n ///\n /// Example:\n /// ```motoko no-repl\n /// import IC \"mo:core/InternetComputer\";\n ///\n /// let count = IC.countInstructions(func() {\n /// // ...\n /// });\n /// ```\n public func countInstructions(comp : () -> ()) : Nat64 {\n let init = Prim.performanceCounter(0);\n let pre = Prim.performanceCounter(0);\n comp();\n let post = Prim.performanceCounter(0);\n // performance_counter costs around 200 extra instructions; we perform an empty measurement to decide the overhead\n let overhead = pre - init;\n post - pre - overhead\n };\n\n /// Returns the current value of IC _performance counter_ `counter`.\n ///\n /// * Counter `0` is the _current execution instruction counter_, counting instructions only since the beginning of the current IC message.\n /// This counter is reset to value `0` on shared function entry and every `await`.\n /// It is therefore only suitable for measuring the cost of synchronous code.\n ///\n /// * Counter `1` is the _call context instruction counter_ for the current shared function call.\n /// For replicated message executing, this excludes the cost of nested IC calls (even to the current canister).\n /// For non-replicated messages, such as composite queries, it includes the cost of nested calls.\n /// The current value of this counter is preserved across `awaits` (unlike counter `0`).\n ///\n /// * The function (currently) traps if `counter` >= 2.\n ///\n /// Consult [Performance Counter](https://internetcomputer.org/docs/current/references/ic-interface-spec#system-api-performance-counter) for details.\n ///\n /// Example:\n /// ```motoko no-repl\n /// import IC \"mo:core/InternetComputer\";\n ///\n /// let c1 = IC.performanceCounter(1);\n /// // ...\n /// let diff : Nat64 = IC.performanceCounter(1) - c1;\n /// ```\n public let performanceCounter : (counter : Nat32) -> (value : Nat64) = Prim.performanceCounter;\n\n /// Returns the time (in nanoseconds from the epoch start) by when the update message should\n /// reply to the best effort message so that it can be received by the requesting canister.\n /// Queries and unbounded-time update messages return null.\n public func replyDeadline() : ?Nat {\n let raw = Prim.replyDeadline();\n if (raw == 0) null else ?Prim.nat64ToNat(raw)\n };\n\n}\n"},"Nat16.mo":{"content":"/// Utility functions on 16-bit unsigned integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Nat16 \"mo:core/Nat16\";\n/// ```\nimport Nat \"Nat\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 16-bit natural numbers.\n public type Nat16 = Prim.Types.Nat16;\n\n /// Maximum 16-bit natural number. `2 ** 16 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.maxValue == (65535 : Nat16);\n /// ```\n public let maxValue : Nat16 = 65535;\n\n /// Converts a 16-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.toNat(123) == (123 : Nat);\n /// ```\n public let toNat : (self : Nat16) -> Nat = Prim.nat16ToNat;\n\n /// Converts an unsigned integer with infinite precision to a 16-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.fromNat(123) == (123 : Nat16);\n /// ```\n public let fromNat : Nat -> Nat16 = Prim.natToNat16;\n\n /// Converts an 8-bit unsigned integer to a 16-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.fromNat8(123) == (123 : Nat16);\n /// ```\n /// @deprecated M0235\n public let fromNat8 : (x : Nat8) -> Nat16 = Prim.nat8ToNat16;\n\n /// Converts a 16-bit unsigned integer to an 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.toNat8(123) == (123 : Nat8);\n /// ```\n public let toNat8 : (self : Nat16) -> Nat8 = Prim.nat16ToNat8;\n\n /// Converts a 32-bit unsigned integer to a 16-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.fromNat32(123) == (123 : Nat16);\n /// ```\n /// @deprecated M0235\n public let fromNat32 : (x : Nat32) -> Nat16 = Prim.nat32ToNat16;\n\n /// Converts a 16-bit unsigned integer to a 32-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.toNat32(123) == (123 : Nat32);\n /// ```\n public let toNat32 : (self : Nat16) -> Nat32 = Prim.nat16ToNat32;\n\n /// Converts a 64-bit unsigned integer to a 16-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.fromNat64(123) == (123 : Nat16);\n /// ```\n /// @deprecated M0235\n public func fromNat64(x : Nat64) : Nat16 {\n Prim.nat32ToNat16(Prim.nat64ToNat32(x))\n };\n\n /// Converts a 16-bit unsigned integer to a 64-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.toNat64(123) == (123 : Nat64);\n /// ```\n public func toNat64(self : Nat16) : Nat64 {\n Prim.nat32ToNat64(Prim.nat16ToNat32(self))\n };\n\n /// Converts a signed integer with infinite precision to a 16-bit unsigned integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.fromIntWrap(123 : Int) == (123 : Nat16);\n /// ```\n public let fromIntWrap : Int -> Nat16 = Prim.intToNat16Wrap;\n\n /// Converts `x` to its textual representation. Textual representation _do not_\n /// contain underscores to represent commas.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.toText(1234) == (\"1234\" : Text);\n /// ```\n public func toText(self : Nat16) : Text {\n Nat.toText(toNat(self))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.min(123, 200) == (123 : Nat16);\n /// ```\n public func min(x : Nat16, y : Nat16) : Nat16 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.max(123, 200) == (200 : Nat16);\n /// ```\n public func max(x : Nat16, y : Nat16) : Nat16 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Nat16 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.equal(1, 1);\n /// assert (1 : Nat16) == (1 : Nat16);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Nat16 = 111;\n /// let b : Nat16 = 222;\n /// assert not Nat16.equal(a, b);\n /// ```\n public func equal(x : Nat16, y : Nat16) : Bool { x == y };\n\n /// Inequality function for Nat16 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.notEqual(1, 2);\n /// assert (1 : Nat16) != (2 : Nat16);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Nat16, y : Nat16) : Bool { x != y };\n\n /// \"Less than\" function for Nat16 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.less(1, 2);\n /// assert (1 : Nat16) < (2 : Nat16);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Nat16, y : Nat16) : Bool { x < y };\n\n /// \"Less than or equal\" function for Nat16 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.lessOrEqual(1, 2);\n /// assert (1 : Nat16) <= (2 : Nat16);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Nat16, y : Nat16) : Bool { x <= y };\n\n /// \"Greater than\" function for Nat16 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.greater(2, 1);\n /// assert (2 : Nat16) > (1 : Nat16);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Nat16, y : Nat16) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Nat16 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.greaterOrEqual(2, 1);\n /// assert (2 : Nat16) >= (1 : Nat16);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Nat16, y : Nat16) : Bool {\n x >= y\n };\n\n /// General purpose comparison function for `Nat16`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.compare(2, 3) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([2, 3, 1] : [Nat16], Nat16.compare) == [1, 2, 3];\n /// ```\n public func compare(x : Nat16, y : Nat16) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.add(1, 2) == 3;\n /// assert (1 : Nat16) + (2 : Nat16) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 0, Nat16.add) == 6;\n /// ```\n public func add(x : Nat16, y : Nat16) : Nat16 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n /// Traps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.sub(2, 1) == 1;\n /// assert (2 : Nat16) - (1 : Nat16) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 20, Nat16.sub) == 14;\n /// ```\n public func sub(x : Nat16, y : Nat16) : Nat16 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.mul(2, 3) == 6;\n /// assert (2 : Nat16) * (3 : Nat16) == 6;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 1, Nat16.mul) == 6;\n /// ```\n public func mul(x : Nat16, y : Nat16) : Nat16 { x * y };\n\n /// Returns the quotient of `x` divided by `y`, `x / y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.div(6, 2) == 3;\n /// assert (6 : Nat16) / (2 : Nat16) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Nat16, y : Nat16) : Nat16 { x / y };\n\n /// Returns the remainder of `x` divided by `y`, `x % y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.rem(6, 4) == 2;\n /// assert (6 : Nat16) % (4 : Nat16) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Nat16, y : Nat16) : Nat16 { x % y };\n\n /// Returns the power of `x` to `y`, `x ** y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.pow(2, 3) == 8;\n /// assert (2 : Nat16) ** (3 : Nat16) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Nat16, y : Nat16) : Nat16 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitnot(0) == 65535;\n /// assert ^(0 : Nat16) == 65535;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Nat16) : Nat16 { ^x };\n\n /// Returns the bitwise and of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitand(0, 1) == 0;\n /// assert (0 : Nat16) & (1 : Nat16) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Nat16, y : Nat16) : Nat16 { x & y };\n\n /// Returns the bitwise or of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitor(0, 1) == 1;\n /// assert (0 : Nat16) | (1 : Nat16) == 1;\n /// ```\n public func bitor(x : Nat16, y : Nat16) : Nat16 { x | y };\n\n /// Returns the bitwise exclusive or of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitxor(0, 1) == 1;\n /// assert (0 : Nat16) ^ (1 : Nat16) == 1;\n /// ```\n public func bitxor(x : Nat16, y : Nat16) : Nat16 { x ^ y };\n\n /// Returns the bitwise shift left of `x` by `y`, `x << y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitshiftLeft(1, 3) == 8;\n /// assert (1 : Nat16) << (3 : Nat16) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Nat16, y : Nat16) : Nat16 {\n x << y\n };\n\n /// Returns the bitwise shift right of `x` by `y`, `x >> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitshiftRight(8, 3) == 1;\n /// assert (8 : Nat16) >> (3 : Nat16) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Nat16, y : Nat16) : Nat16 {\n x >> y\n };\n\n /// Returns the bitwise rotate left of `x` by `y`, `x <<> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitrotLeft(2, 1) == 4;\n /// assert (2 : Nat16) <<> (1 : Nat16) == 4;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Nat16, y : Nat16) : Nat16 { x <<> y };\n\n /// Returns the bitwise rotate right of `x` by `y`, `x <>> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitrotRight(1, 1) == 32768;\n /// assert (1 : Nat16) <>> (1 : Nat16) == 32768;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Nat16, y : Nat16) : Nat16 {\n x <>> y\n };\n\n /// Returns the value of bit `p mod 16` in `x`, `(x & 2^(p mod 16)) == 2^(p mod 16)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bittest(5, 2);\n /// ```\n public func bittest(x : Nat16, p : Nat) : Bool {\n Prim.btstNat16(x, Prim.natToNat16(p))\n };\n\n /// Returns the value of setting bit `p mod 16` in `x` to `1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitset(0, 2) == 4;\n /// ```\n public func bitset(x : Nat16, p : Nat) : Nat16 {\n x | (1 << Prim.natToNat16(p))\n };\n\n /// Returns the value of clearing bit `p mod 16` in `x` to `0`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitclear(5, 2) == 1;\n /// ```\n public func bitclear(x : Nat16, p : Nat) : Nat16 {\n x & ^(1 << Prim.natToNat16(p))\n };\n\n /// Returns the value of flipping bit `p mod 16` in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitflip(5, 2) == 1;\n /// ```\n public func bitflip(x : Nat16, p : Nat) : Nat16 {\n x ^ (1 << Prim.natToNat16(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitcountNonZero(5) == 2;\n /// ```\n public let bitcountNonZero : (x : Nat16) -> Nat16 = Prim.popcntNat16;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitcountLeadingZero(5) == 13;\n /// ```\n public let bitcountLeadingZero : (x : Nat16) -> Nat16 = Prim.clzNat16;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.bitcountTrailingZero(5) == 0;\n /// ```\n public let bitcountTrailingZero : (x : Nat16) -> Nat16 = Prim.ctzNat16;\n\n /// Returns the upper (i.e. most significant) and lower (least significant) byte of `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.explode 0xaa88 == (170, 136);\n /// ```\n public let explode : (x : Nat16) -> (msb : Nat8, lsb : Nat8) = Prim.explodeNat16;\n\n /// Returns the sum of `x` and `y`, `x +% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.addWrap(65532, 5) == 1;\n /// assert (65532 : Nat16) +% (5 : Nat16) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Nat16, y : Nat16) : Nat16 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`. Wraps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.subWrap(1, 2) == 65535;\n /// assert (1 : Nat16) -% (2 : Nat16) == 65535;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Nat16, y : Nat16) : Nat16 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.mulWrap(655, 101) == 619;\n /// assert (655 : Nat16) *% (101 : Nat16) == 619;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Nat16, y : Nat16) : Nat16 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat16.powWrap(2, 16) == 0;\n /// assert (2 : Nat16) **% (16 : Nat16) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Nat16, y : Nat16) : Nat16 { x **% y };\n\n /// Returns an iterator over `Nat16` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat16.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat16.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Nat16, toExclusive : Nat16) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Nat16 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Nat16` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat16.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat16.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Nat16, to : Nat16) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Nat16 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Nat16 values, from 0 to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat16.allValues();\n /// assert iter.next() == ?0;\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(0, maxValue)\n };\n\n}\n"},"Iter.mo":{"content":"/// Utilities for `Iter` (iterator) values.\n///\n/// Iterators are a way to represent sequences of values that can be lazily produced.\n/// They can be used to:\n/// - Iterate over collections.\n/// - Represent collections that are too large to fit in memory or that are produced incrementally.\n/// - Transform collections without creating intermediate collections.\n///\n/// Iterators are inherently stateful. Calling `next` \"consumes\" a value from\n/// the Iterator that cannot be put back, so keep that in mind when sharing\n/// iterators between consumers.\n///\n/// ```motoko name=import\n/// import Iter \"mo:core/Iter\";\n/// ```\n///\n///\n/// An iterator can be iterated over using a `for` loop:\n/// ```motoko\n/// let iter = [1, 2, 3].values();\n/// for (x in iter) {\n/// // do something with x...\n/// }\n/// ```\n///\n/// Iterators can be:\n/// - created from other collections (e.g. using `values` or `keys` function on a `Map`) or from scratch (e.g. using `empty` or `singleton`).\n/// - transformed using `map`, `filter`, `concat`, etc. Which can be used to compose several transformations together without materializing intermediate collections.\n/// - consumed using `forEach`, `size`, `toArray`, etc.\n/// - combined using `concat`.\n\nimport Prim \"mo:prim\";\n\nimport Array \"Array\";\nimport Order \"Order\";\nimport Runtime \"Runtime\";\nimport Types \"Types\";\nimport VarArray \"VarArray\";\n\nmodule {\n\n /// An iterator that produces values of type `T`. Calling `next` returns\n /// `null` when iteration is finished.\n ///\n /// Iterators are inherently stateful. Calling `next` \"consumes\" a value from\n /// the Iterator that cannot be put back, so keep that in mind when sharing\n /// iterators between consumers.\n ///\n /// An iterator `i` can be iterated over using\n /// ```motoko\n /// let iter = [1, 2, 3].values();\n /// for (x in iter) {\n /// // do something with x...\n /// }\n /// ```\n public type Iter = Types.Iter;\n\n /// Creates an empty iterator.\n ///\n /// ```motoko include=import\n /// for (x in Iter.empty())\n /// assert false; // This loop body will never run\n /// ```\n public func empty() : Iter {\n object {\n public func next() : ?T {\n null\n }\n }\n };\n\n /// Creates an iterator that produces a single value.\n ///\n /// ```motoko include=import\n /// var sum = 0;\n /// for (x in Iter.singleton(3))\n /// sum += x;\n /// assert sum == 3;\n /// ```\n public func singleton(value : T) : Iter {\n object {\n var state = ?value;\n public func next() : ?T {\n switch state {\n case null null;\n case some {\n state := null;\n some\n }\n }\n }\n }\n };\n\n /// Calls a function `f` on every value produced by an iterator and discards\n /// the results. If you're looking to keep these results use `map` instead.\n ///\n /// ```motoko include=import\n /// var sum = 0;\n /// Iter.forEach([1, 2, 3].values(), func(x) {\n /// sum += x;\n /// });\n /// assert sum == 6;\n /// ```\n public func forEach(\n self : Iter,\n f : (T) -> ()\n ) {\n label l loop {\n switch (self.next()) {\n case (?next) {\n f(next)\n };\n case (null) {\n break l\n }\n }\n }\n };\n\n /// Takes an iterator and returns a new iterator that pairs each element with its index.\n /// The index starts at 0 and increments by 1 for each element.\n ///\n /// ```motoko include=import\n /// let iter = Iter.fromArray([\"A\", \"B\", \"C\"]);\n /// let enumerated = Iter.enumerate(iter);\n /// let result = Iter.toArray(enumerated);\n /// assert result == [(0, \"A\"), (1, \"B\"), (2, \"C\")];\n /// ```\n public func enumerate(self : Iter) : Iter<(Nat, T)> {\n object {\n var i = 0;\n public func next() : ?(Nat, T) {\n switch (self.next()) {\n case (?x) {\n let current = (i, x);\n i += 1;\n ?current\n };\n case null { null }\n }\n }\n }\n };\n\n /// Creates a new iterator that yields every nth element from the original iterator.\n /// If `interval` is 0, returns an empty iterator. If `interval` is 1, returns the original iterator.\n /// For any other positive interval, returns an iterator that skips `interval - 1` elements after each yielded element.\n ///\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3, 4, 5, 6]);\n /// let steppedIter = Iter.step(iter, 2); // Take every 2nd element\n /// assert ?1 == steppedIter.next();\n /// assert ?3 == steppedIter.next();\n /// assert ?5 == steppedIter.next();\n /// assert null == steppedIter.next();\n /// ```\n public func step(self : Iter, n : Nat) : Iter {\n if (n == 0) {\n empty()\n } else if (n == 1) {\n self\n } else {\n object {\n public func next() : ?T {\n let item = self.next();\n var i = 1;\n while (i < n) {\n ignore self.next();\n i += 1\n };\n item\n }\n }\n }\n };\n\n /// Consumes an iterator and counts how many elements were produced (discarding them in the process).\n /// ```motoko include=import\n /// let iter = [1, 2, 3].values();\n /// assert 3 == Iter.size(iter);\n /// ```\n public func size(self : Iter) : Nat {\n var len = 0;\n forEach(self, func(x) { len += 1 });\n len\n };\n\n /// Takes a function and an iterator and returns a new iterator that lazily applies\n /// the function to every element produced by the argument iterator.\n /// ```motoko include=import\n /// let iter = [1, 2, 3].values();\n /// let mappedIter = Iter.map(iter, func (x) = x * 2);\n /// let result = Iter.toArray(mappedIter);\n /// assert result == [2, 4, 6];\n /// ```\n public func map(self : Iter, f : T -> R) : Iter = object {\n public func next() : ?R {\n switch (self.next()) {\n case (?next) {\n ?f(next)\n };\n case (null) {\n null\n }\n }\n }\n };\n\n /// Creates a new iterator that only includes elements from the original iterator\n /// for which the predicate function returns true.\n ///\n /// ```motoko include=import\n /// let iter = [1, 2, 3, 4, 5].values();\n /// let evenNumbers = Iter.filter(iter, func (x) = x % 2 == 0);\n /// let result = Iter.toArray(evenNumbers);\n /// assert result == [2, 4];\n /// ```\n public func filter(self : Iter, f : T -> Bool) : Iter = object {\n public func next() : ?T {\n loop {\n let ?x = self.next() else return null;\n if (f x) return ?x\n };\n null\n }\n };\n\n /// Creates a new iterator by applying a transformation function to each element\n /// of the original iterator. Elements for which the function returns null are\n /// excluded from the result.\n ///\n /// ```motoko include=import\n /// let iter = [1, 2, 3].values();\n /// let evenNumbers = Iter.filterMap(iter, func (x) = if (x % 2 == 0) ?x else null);\n /// let result = Iter.toArray(evenNumbers);\n /// assert result == [2];\n /// ```\n public func filterMap(self : Iter, f : T -> ?R) : Iter = object {\n public func next() : ?R {\n loop {\n let ?x = self.next() else return null;\n switch (f x) {\n case (?r) return ?r;\n case null {} // continue\n }\n }\n }\n };\n\n /// Flattens an iterator of iterators into a single iterator by concatenating the inner iterators.\n ///\n /// Possible optimization: Use `flatMap` when you need to transform elements before calling `flatten`. Example: use `flatMap(...)` instead of `flatten(map(...))`.\n /// ```motoko include=import\n /// let iter = Iter.flatten([[1, 2].values(), [3].values(), [4, 5, 6].values()].values());\n /// let result = Iter.toArray(iter);\n /// assert result == [1, 2, 3, 4, 5, 6];\n /// ```\n public func flatten(self : Iter>) : Iter = object {\n var current : Iter = empty();\n public func next() : ?T {\n loop {\n switch (current.next()) {\n case (?x) return ?x;\n case null {\n let ?next = self.next() else return null;\n current := next\n }\n }\n }\n }\n };\n\n /// Transforms every element of an iterator into an iterator and concatenates the results.\n /// ```motoko include=import\n /// let iter = Iter.flatMap([1, 3, 5].values(), func (x) = [x, x + 1].values());\n /// let result = Iter.toArray(iter);\n /// assert result == [1, 2, 3, 4, 5, 6];\n /// ```\n public func flatMap(self : Iter, f : T -> Iter) : Iter = object {\n var current : Iter = empty();\n public func next() : ?R {\n loop {\n switch (current.next()) {\n case (?x) return ?x;\n case null {\n let ?next = self.next() else return null;\n current := f(next)\n }\n }\n }\n }\n };\n\n /// Returns a new iterator that yields at most, first `n` elements from the original iterator.\n /// After `n` elements have been produced or the original iterator is exhausted,\n /// subsequent calls to `next()` will return `null`.\n ///\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3, 4, 5]);\n /// let first3 = Iter.take(iter, 3);\n /// let result = Iter.toArray(first3);\n /// assert result == [1, 2, 3];\n /// ```\n ///\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3]);\n /// let first5 = Iter.take(iter, 5);\n /// let result = Iter.toArray(first5);\n /// assert result == [1, 2, 3]; // only 3 elements in the original iterator\n /// ```\n public func take(self : Iter, n : Nat) : Iter = object {\n var remaining = n;\n public func next() : ?T {\n if (remaining == 0) return null;\n remaining -= 1;\n self.next()\n }\n };\n\n /// Returns a new iterator that yields elements from the original iterator until the predicate function returns false.\n /// The first element for which the predicate returns false is not included in the result.\n ///\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3, 4, 5, 4, 3, 2, 1]);\n /// let result = Iter.takeWhile(iter, func (x) = x < 4);\n /// let array = Iter.toArray(result);\n /// assert array == [1, 2, 3]; // note the difference between `takeWhile` and `filter`\n /// ```\n public func takeWhile(self : Iter, f : T -> Bool) : Iter = object {\n var done = false;\n public func next() : ?T {\n if done return null;\n let ?x = self.next() else return null;\n if (f x) return ?x;\n done := true;\n null\n }\n };\n\n /// Returns a new iterator that skips the first `n` elements from the original iterator.\n /// If the original iterator has fewer than `n` elements, the result will be an empty iterator.\n ///\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3, 4, 5]);\n /// let skipped = Iter.drop(iter, 3);\n /// let result = Iter.toArray(skipped);\n /// assert result == [4, 5];\n /// ```\n public func drop(self : Iter, n : Nat) : Iter = object {\n var remaining = n;\n public func next() : ?T {\n while (remaining > 0) {\n let ?_ = self.next() else return null;\n remaining -= 1\n };\n self.next()\n }\n };\n\n /// Returns a new iterator that skips elements from the original iterator until the predicate function returns false.\n /// The first element for which the predicate returns false is the first element produced by the new iterator.\n ///\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3, 4, 5, 4, 3, 2, 1]);\n /// let result = Iter.dropWhile(iter, func (x) = x < 4);\n /// let array = Iter.toArray(result);\n /// assert array == [4, 5, 4, 3, 2, 1]; // notice that `takeWhile` and `dropWhile` are complementary\n /// ```\n public func dropWhile(self : Iter, f : T -> Bool) : Iter = object {\n var dropping = true;\n public func next() : ?T {\n while dropping {\n let ?x = self.next() else return null;\n if (not f x) {\n dropping := false;\n return ?x\n }\n };\n self.next()\n }\n };\n\n /// Zips two iterators into a single iterator that produces pairs of elements.\n /// The resulting iterator will stop producing elements when either of the input iterators is exhausted.\n ///\n /// ```motoko include=import\n /// let iter1 = [1, 2, 3].values();\n /// let iter2 = [\"A\", \"B\"].values();\n /// let zipped = Iter.zip(iter1, iter2);\n /// let result = Iter.toArray(zipped);\n /// assert result == [(1, \"A\"), (2, \"B\")]; // note that the third element from iter1 is not included, because iter2 is exhausted\n /// ```\n public func zip(self : Iter, other : Iter) : Iter<(A, B)> = object {\n public func next() : ?(A, B) {\n let ?x = self.next() else return null;\n let ?y = other.next() else return null;\n ?(x, y)\n }\n };\n\n /// Zips three iterators into a single iterator that produces triples of elements.\n /// The resulting iterator will stop producing elements when any of the input iterators is exhausted.\n ///\n /// ```motoko include=import\n /// let iter1 = [\"A\", \"B\"].values();\n /// let iter2 = [\"1\", \"2\", \"3\"].values();\n /// let iter3 = [\"x\", \"y\", \"z\", \"xd\"].values();\n /// let zipped = Iter.zip3(iter1, iter2, iter3);\n /// let result = Iter.toArray(zipped);\n /// assert result == [(\"A\", \"1\", \"x\"), (\"B\", \"2\", \"y\")]; // note that the unmatched elements from iter2 and iter3 are not included\n /// ```\n public func zip3(self : Iter, other1 : Iter, other2 : Iter) : Iter<(A, B, C)> = object {\n public func next() : ?(A, B, C) {\n let ?x = self.next() else return null;\n let ?y = other1.next() else return null;\n let ?z = other2.next() else return null;\n ?(x, y, z)\n }\n };\n\n /// Zips two iterators into a single iterator by applying a function to zipped pairs of elements.\n /// The resulting iterator will stop producing elements when either of the input iterators is exhausted.\n ///\n /// ```motoko include=import\n /// let iter1 = [\"A\", \"B\"].values();\n /// let iter2 = [\"1\", \"2\", \"3\"].values();\n /// let zipped = Iter.zipWith(iter1, iter2, func (a, b) = a # b);\n /// let result = Iter.toArray(zipped);\n /// assert result == [\"A1\", \"B2\"]; // note that the third element from iter2 is not included, because iter1 is exhausted\n /// ```\n public func zipWith(self : Iter, other : Iter, f : (A, B) -> R) : Iter = object {\n public func next() : ?R {\n let ?x = self.next() else return null;\n let ?y = other.next() else return null;\n ?f(x, y)\n }\n };\n\n /// Zips three iterators into a single iterator by applying a function to zipped triples of elements.\n /// The resulting iterator will stop producing elements when any of the input iterators is exhausted.\n ///\n /// ```motoko include=import\n /// let iter1 = [\"A\", \"B\"].values();\n /// let iter2 = [\"1\", \"2\", \"3\"].values();\n /// let iter3 = [\"x\", \"y\", \"z\", \"xd\"].values();\n /// let zipped = Iter.zipWith3(iter1, iter2, iter3, func (a, b, c) = a # b # c);\n /// let result = Iter.toArray(zipped);\n /// assert result == [\"A1x\", \"B2y\"]; // note that the unmatched elements from iter2 and iter3 are not included\n /// ```\n public func zipWith3(self : Iter, other1 : Iter, other2 : Iter, f : (A, B, C) -> R) : Iter = object {\n public func next() : ?R {\n let ?x = self.next() else return null;\n let ?y = other1.next() else return null;\n let ?z = other2.next() else return null;\n ?f(x, y, z)\n }\n };\n\n /// Checks if a predicate function is true for all elements produced by an iterator.\n /// It stops consuming elements from the original iterator as soon as the predicate returns false.\n ///\n /// ```motoko include=import\n /// assert Iter.all([1, 2, 3].values(), func (x) = x < 4);\n /// assert not Iter.all([1, 2, 3].values(), func (x) = x < 3);\n /// ```\n public func all(self : Iter, f : T -> Bool) : Bool {\n for (x in self) {\n if (not f x) return false\n };\n true\n };\n\n /// Checks if a predicate function is true for any element produced by an iterator.\n /// It stops consuming elements from the original iterator as soon as the predicate returns true.\n ///\n /// ```motoko include=import\n /// assert Iter.any([1, 2, 3].values(), func (x) = x == 2);\n /// assert not Iter.any([1, 2, 3].values(), func (x) = x == 4);\n /// ```\n public func any(self : Iter, f : T -> Bool) : Bool {\n for (x in self) {\n if (f x) return true\n };\n false\n };\n\n /// Finds the first element produced by an iterator for which a predicate function returns true.\n /// Returns `null` if no such element is found.\n /// It stops consuming elements from the original iterator as soon as the predicate returns true.\n ///\n /// ```motoko include=import\n /// let iter = [1, 2, 3, 4].values();\n /// assert ?2 == Iter.find(iter, func (x) = x % 2 == 0);\n /// ```\n public func find(self : Iter, f : T -> Bool) : ?T {\n for (x in self) {\n if (f x) return ?x\n };\n null\n };\n\n /// Returns the first index in `array` for which `predicate` returns true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// ```motoko include=import\n /// let iter = ['A', 'B', 'C', 'D'].values();\n /// let found = Iter.findIndex(iter, func(x) { x == 'C' });\n /// assert found == ?2;\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func findIndex(self : Iter, predicate : T -> Bool) : ?Nat {\n for ((index, element) in enumerate(self)) {\n if (predicate element) {\n return ?index\n }\n };\n null\n };\n\n /// Checks if an element is produced by an iterator.\n /// It stops consuming elements from the original iterator as soon as the predicate returns true.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let iter = [1, 2, 3, 4].values();\n /// assert Iter.contains(iter, Nat.equal, 2);\n /// ```\n public func contains(self : Iter, equal : (implicit : (T, T) -> Bool), value : T) : Bool {\n for (x in self) {\n if (equal(x, value)) return true\n };\n false\n };\n\n /// Reduces an iterator to a single value by applying a function to each element and an accumulator.\n /// The accumulator is initialized with the `initial` value.\n /// It starts applying the `combine` function starting from the `initial` accumulator value and the first elements produced by the iterator.\n ///\n /// ```motoko include=import\n /// let iter = [\"A\", \"B\", \"C\"].values();\n /// let result = Iter.foldLeft(iter, \"S\", func (acc, x) = \"(\" # acc # x # \")\");\n /// assert result == \"(((SA)B)C)\";\n /// ```\n public func foldLeft(self : Iter, initial : R, combine : (R, T) -> R) : R {\n var acc = initial;\n for (x in self) {\n acc := combine(acc, x)\n };\n acc\n };\n\n /// Reduces an iterator to a single value by applying a function to each element in reverse order and an accumulator.\n /// The accumulator is initialized with the `initial` value and it is first combined with the last element produced by the iterator.\n /// It starts applying the `combine` function starting from the last elements produced by the iterator.\n ///\n /// **Performance note**: Since this function needs to consume the entire iterator to reverse it,\n /// it has to materialize the entire iterator in memory to get to the last element to start applying the `combine` function.\n /// **Use `foldLeft` or `reduce` when possible to avoid the extra memory overhead**.\n ///\n /// ```motoko include=import\n /// let iter = [\"A\", \"B\", \"C\"].values();\n /// let result = Iter.foldRight(iter, \"S\", func (x, acc) = \"(\" # x # acc # \")\");\n /// assert result == \"(A(B(CS)))\";\n /// ```\n public func foldRight(self : Iter, initial : R, combine : (T, R) -> R) : R {\n foldLeft(reverse(self), initial, func(acc, x) = combine(x, acc))\n };\n\n /// Reduces an iterator to a single value by applying a function to each element, starting with the first elements.\n /// The accumulator is initialized with the first element produced by the iterator.\n /// When the iterator is empty, it returns `null`.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let iter = [1, 2, 3].values();\n /// assert ?6 == Iter.reduce(iter, Nat.add);\n /// ```\n public func reduce(self : Iter, combine : (T, T) -> T) : ?T {\n let ?first = self.next() else return null;\n ?foldLeft(self, first, combine)\n };\n\n /// Produces an iterator containing cumulative results of applying the `combine` operator going left to right, including the `initial` value.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let iter = [1, 2, 3].values();\n /// let scanned = Iter.scanLeft(iter, 0, Nat.add);\n /// let result = Iter.toArray(scanned);\n /// assert result == [0, 1, 3, 6];\n /// ```\n public func scanLeft(self : Iter, initial : R, combine : (R, T) -> R) : Iter = object {\n var acc = initial;\n var isInitial = true;\n public func next() : ?R {\n if (isInitial) {\n isInitial := false;\n return ?acc\n };\n switch (self.next()) {\n case (?x) {\n acc := combine(acc, x);\n ?acc\n };\n case null null\n }\n }\n };\n\n /// Produces an iterator containing cumulative results of applying the `combine` operator going right to left, including the `initial` value.\n ///\n /// **Performance note**: Since this function needs to consume the entire iterator to reverse it,\n /// it has to materialize the entire iterator in memory to get to the last element to start applying the `combine` function.\n /// **Use `scanLeft` when possible to avoid the extra memory overhead**.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let iter = [1, 2, 3].values();\n /// let scanned = Iter.scanRight(iter, 0, Nat.add);\n /// let result = Iter.toArray(scanned);\n /// assert result == [0, 3, 5, 6];\n /// ```\n public func scanRight(self : Iter, initial : R, combine : (T, R) -> R) : Iter {\n scanLeft(reverse(self), initial, func(x, acc) = combine(acc, x))\n };\n\n /// Creates an iterator that produces elements using the `step` function starting from the `initial` value.\n /// The `step` function takes the current state and returns the next element and the next state, or `null` if the iteration is finished.\n ///\n /// ```motoko include=import\n /// let iter = Iter.unfold(1, func (x) = if (x <= 3) ?(x, x + 1) else null);\n /// let result = Iter.toArray(iter);\n /// assert result == [1, 2, 3];\n /// ```\n public func unfold(initial : S, step : S -> ?(T, S)) : Iter = object {\n var state = initial;\n public func next() : ?T {\n let ?(t, next) = step(state) else return null;\n state := next;\n ?t\n }\n };\n\n // todo: unfold, iterate, cycle, range, rangeStep, rangeStepTo, rangeStepToExclusive\n\n /// Consumes an iterator and returns the first maximum element produced by the iterator.\n /// If the iterator is empty, it returns `null`.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let iter = [1, 2, 3].values();\n /// assert ?3 == Iter.max(iter, Nat.compare);\n /// ```\n public func max(self : Iter, compare : (implicit : (T, T) -> Order.Order)) : ?T {\n reduce(\n self,\n func(a, b) {\n switch (compare(a, b)) {\n case (#less) b;\n case _ a\n }\n }\n )\n };\n\n /// Consumes an iterator and returns the first minimum element produced by the iterator.\n /// If the iterator is empty, it returns `null`.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let iter = [1, 2, 3].values();\n /// assert ?1 == Iter.min(iter, Nat.compare);\n /// ```\n public func min(self : Iter, compare : (implicit : (T, T) -> Order.Order)) : ?T {\n reduce(\n self,\n func(a, b) {\n switch (compare(a, b)) {\n case (#greater) b;\n case _ a\n }\n }\n )\n };\n\n /// Creates an iterator that produces an infinite sequence of `x`.\n /// ```motoko include=import\n /// let iter = Iter.infinite(10);\n /// assert ?10 == iter.next();\n /// assert ?10 == iter.next();\n /// assert ?10 == iter.next();\n /// // ...\n /// ```\n public func infinite(item : T) : Iter = object {\n public func next() : ?T {\n ?item\n }\n };\n\n /// Takes two iterators and returns a new iterator that produces\n /// elements from the original iterators sequentally.\n /// ```motoko include=import\n /// let iter1 = [1, 2].values();\n /// let iter2 = [5, 6, 7].values();\n /// let concatenatedIter = Iter.concat(iter1, iter2);\n /// let result = Iter.toArray(concatenatedIter);\n /// assert result == [1, 2, 5, 6, 7];\n /// ```\n public func concat(self : Iter, other : Iter) : Iter {\n var aEnded : Bool = false;\n object {\n public func next() : ?T {\n if (aEnded) {\n return other.next()\n };\n switch (self.next()) {\n case (?x) ?x;\n case (null) {\n aEnded := true;\n other.next()\n }\n }\n }\n }\n };\n\n /// Creates an iterator that produces the elements of an Array in ascending index order.\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3]);\n /// assert ?1 == iter.next();\n /// assert ?2 == iter.next();\n /// assert ?3 == iter.next();\n /// assert null == iter.next();\n /// ```\n /// @deprecated M0235\n public func fromArray(array : [T]) : Iter = array.vals();\n\n /// Like `fromArray` but for Arrays with mutable elements. Captures\n /// the elements of the Array at the time the iterator is created, so\n /// further modifications won't be reflected in the iterator.\n /// @deprecated M0235\n public func fromVarArray(array : [var T]) : Iter = array.vals();\n\n /// Consumes an iterator and collects its produced elements in an Array.\n /// ```motoko include=import\n /// let iter = [1, 2, 3].values();\n /// assert [1, 2, 3] == Iter.toArray(iter);\n /// ```\n public func toArray(self : Iter) : [T] {\n // TODO: Replace implementation. This is just temporay.\n type Node = { value : T; var next : ?Node };\n var first : ?Node = null;\n var last : ?Node = null;\n var count = 0;\n\n func add(value : T) {\n let node : Node = { value; var next = null };\n switch (last) {\n case null {\n first := ?node\n };\n case (?previous) {\n previous.next := ?node\n }\n };\n last := ?node;\n count += 1\n };\n\n for (value in self) {\n add(value)\n };\n if (count == 0) {\n return []\n };\n var current = first;\n Prim.Array_tabulate(\n count,\n func(_) {\n switch (current) {\n case null Runtime.trap(\"Iter.toArray(): node must not be null\");\n case (?node) {\n current := node.next;\n node.value\n }\n }\n }\n )\n };\n\n /// Like `toArray` but for Arrays with mutable elements.\n public func toVarArray(self : Iter) : [var T] {\n Array.toVarArray(toArray(self))\n };\n\n /// Sorted iterator. Will iterate over *all* elements to sort them, necessarily.\n public func sort(self : Iter, compare : (implicit : (T, T) -> Order.Order)) : Iter {\n let array = toVarArray(self);\n VarArray.sortInPlace(array, compare);\n fromVarArray(array)\n };\n\n /// Creates an iterator that produces a given item a specified number of times.\n /// ```motoko include=import\n /// let iter = Iter.repeat(3, 2);\n /// assert ?3 == iter.next();\n /// assert ?3 == iter.next();\n /// assert null == iter.next();\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func repeat(item : T, count : Nat) : Iter = object {\n var remaining = count;\n public func next() : ?T {\n if (remaining == 0) {\n null\n } else {\n remaining -= 1;\n ?item\n }\n }\n };\n\n /// Creates a new iterator that produces elements from the original iterator in reverse order.\n /// Note: This function needs to consume the entire iterator to reverse it.\n /// ```motoko include=import\n /// let iter = Iter.fromArray([1, 2, 3]);\n /// let reversed = Iter.reverse(iter);\n /// assert ?3 == reversed.next();\n /// assert ?2 == reversed.next();\n /// assert ?1 == reversed.next();\n /// assert null == reversed.next();\n /// ```\n ///\n /// Runtime: O(n) where n is the number of elements in the iterator\n ///\n /// Space: O(n) where n is the number of elements in the iterator\n public func reverse(self : Iter) : Iter {\n var acc : Types.Pure.List = null;\n for (x in self) {\n acc := ?(x, acc)\n };\n object {\n public func next() : ?T {\n switch acc {\n case null null;\n case (?(h, t)) {\n acc := t;\n ?h\n }\n }\n }\n }\n };\n\n}\n"},"Blob.mo":{"content":"/// Module for working with Blobs (immutable sequences of bytes).\n///\n/// Blobs represent sequences of bytes. They are immutable, iterable, but not indexable and can be empty.\n///\n/// Byte sequences are also often represented as `[Nat8]`, i.e. an array of bytes, but this representation is currently much less compact than `Blob`, taking 4 physical bytes to represent each logical byte in the sequence.\n/// If you would like to manipulate Blobs, it is recommended that you convert\n/// Blobs to `[var Nat8]` or `Buffer`, do the manipulation, then convert back.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Blob \"mo:core/Blob\";\n/// ```\n///\n/// Some built in features not listed in this module:\n///\n/// * You can create a `Blob` literal from a `Text` literal, provided the context expects an expression of type `Blob`.\n/// * `b.size() : Nat` returns the number of bytes in the blob `b`;\n/// * `b.values() : Iter.Iter` returns an iterator to enumerate the bytes of the blob `b`.\n///\n/// For example:\n/// ```motoko include=import\n/// import Debug \"mo:core/Debug\";\n/// import Nat8 \"mo:core/Nat8\";\n///\n/// let blob = \"\\00\\00\\00\\ff\" : Blob; // blob literals, where each byte is delimited by a back-slash and represented in hex\n/// let blob2 = \"charsもあり\" : Blob; // you can also use characters in the literals\n/// let numBytes = blob.size();\n/// assert numBytes == 4; // returns the number of bytes in the Blob\n/// for (byte in blob.values()) { // iterator over the Blob\n/// Debug.print(Nat8.toText(byte))\n/// }\n/// ```\n\nimport Types \"Types\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n public type Blob = Prim.Types.Blob;\n\n /// Returns an empty `Blob` (equivalent to `\"\"`).\n ///\n /// Example:\n /// ```motoko include=import\n /// let emptyBlob = Blob.empty();\n /// assert emptyBlob.size() == 0;\n /// ```\n public func empty() : Blob = \"\";\n\n /// Returns whether the given `Blob` is empty (has a size of zero).\n ///\n /// ```motoko include=import\n /// let blob1 = \"\" : Blob;\n /// let blob2 = \"\\FF\\00\" : Blob;\n /// assert Blob.isEmpty(blob1);\n /// assert not Blob.isEmpty(blob2);\n /// ```\n public func isEmpty(self : Blob) : Bool = self == \"\";\n\n /// Returns the number of bytes in the given `Blob`.\n /// This is equivalent to `blob.size()`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob = \"\\FF\\00\\AA\" : Blob;\n /// assert Blob.size(blob) == 3;\n /// assert blob.size() == 3;\n /// ```\n public func size(self : Blob) : Nat = self.size();\n\n /// Creates a `Blob` from an array of bytes (`[Nat8]`), by copying each element.\n ///\n /// Example:\n /// ```motoko include=import\n /// let bytes : [Nat8] = [0, 255, 0];\n /// let blob = Blob.fromArray(bytes);\n /// assert blob == \"\\00\\FF\\00\";\n /// ```\n public let fromArray : (bytes : [Nat8]) -> Blob = Prim.arrayToBlob;\n\n /// Creates a `Blob` from a mutable array of bytes (`[var Nat8]`), by copying each element.\n ///\n /// Example:\n /// ```motoko include=import\n /// let bytes : [var Nat8] = [var 0, 255, 0];\n /// let blob = Blob.fromVarArray(bytes);\n /// assert blob == \"\\00\\FF\\00\";\n /// ```\n public let fromVarArray : (bytes : [var Nat8]) -> Blob = Prim.arrayMutToBlob;\n\n /// Converts a `Blob` to an array of bytes (`[Nat8]`), by copying each element.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob = \"\\00\\FF\\00\" : Blob;\n /// let bytes = Blob.toArray(blob);\n /// assert bytes == [0, 255, 0];\n /// ```\n public let toArray : (self : Blob) -> [Nat8] = Prim.blobToArray;\n\n /// Converts a `Blob` to a mutable array of bytes (`[var Nat8]`), by copying each element.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat8 \"mo:core/Nat8\";\n /// import VarArray \"mo:core/VarArray\";\n ///\n /// let blob = \"\\00\\FF\\00\" : Blob;\n /// let bytes = Blob.toVarArray(blob);\n /// assert VarArray.equal(bytes, [var 0, 255, 0], Nat8.equal);\n /// ```\n public let toVarArray : (self : Blob) -> [var Nat8] = Prim.blobToArrayMut;\n\n /// Returns the (non-cryptographic) hash of `blob`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob = \"\\00\\FF\\00\" : Blob;\n /// let h = Blob.hash(blob);\n /// assert h == 1_818_567_776;\n /// ```\n public let hash : (self : Blob) -> Types.Hash = Prim.hashBlob;\n\n /// General purpose comparison function for `Blob` by comparing the value of\n /// the bytes. Returns the `Order` (either `#less`, `#equal`, or `#greater`)\n /// by comparing `blob1` with `blob2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob1 = \"\\00\\00\\00\" : Blob;\n /// let blob2 = \"\\00\\FF\\00\" : Blob;\n /// let result = Blob.compare(blob1, blob2);\n /// assert result == #less;\n /// ```\n public func compare(self : Blob, other : Blob) : Order.Order {\n let c = Prim.blobCompare(self, other);\n if (c < 0) #less else if (c == 0) #equal else #greater\n };\n\n /// Equality function for `Blob` types.\n /// This is equivalent to `blob1 == blob2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob1 = \"\\00\\FF\\00\" : Blob;\n /// let blob2 = \"\\00\\FF\\00\" : Blob;\n /// assert Blob.equal(blob1, blob2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import List \"mo:core/List\";\n ///\n /// let list1 = List.singleton(\"\\00\\FF\\00\");\n /// let list2 = List.singleton(\"\\00\\FF\\00\");\n /// assert List.equal(list1, list2, Blob.equal);\n /// ```\n public func equal(self : Blob, other : Blob) : Bool { self == other };\n\n /// Inequality function for `Blob` types.\n /// This is equivalent to `blob1 != blob2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob1 = \"\\00\\AA\\AA\" : Blob;\n /// let blob2 = \"\\00\\FF\\00\" : Blob;\n /// assert Blob.notEqual(blob1, blob2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func notEqual(self : Blob, other : Blob) : Bool { self != other };\n\n /// \"Less than\" function for `Blob` types.\n /// This is equivalent to `blob1 < blob2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob1 = \"\\00\\AA\\AA\" : Blob;\n /// let blob2 = \"\\00\\FF\\00\" : Blob;\n /// assert Blob.less(blob1, blob2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func less(self : Blob, other : Blob) : Bool { self < other };\n\n /// \"Less than or equal to\" function for `Blob` types.\n /// This is equivalent to `blob1 <= blob2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob1 = \"\\00\\AA\\AA\" : Blob;\n /// let blob2 = \"\\00\\FF\\00\" : Blob;\n /// assert Blob.lessOrEqual(blob1, blob2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func lessOrEqual(self : Blob, other : Blob) : Bool { self <= other };\n\n /// \"Greater than\" function for `Blob` types.\n /// This is equivalent to `blob1 > blob2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob1 = \"\\BB\\AA\\AA\" : Blob;\n /// let blob2 = \"\\00\\00\\00\" : Blob;\n /// assert Blob.greater(blob1, blob2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func greater(self : Blob, other : Blob) : Bool { self > other };\n\n /// \"Greater than or equal to\" function for `Blob` types.\n /// This is equivalent to `blob1 >= blob2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob1 = \"\\BB\\AA\\AA\" : Blob;\n /// let blob2 = \"\\00\\00\\00\" : Blob;\n /// assert Blob.greaterOrEqual(blob1, blob2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func greaterOrEqual(self : Blob, other : Blob) : Bool {\n self >= other\n };\n\n}\n"},"Text.mo":{"content":"/// Utility functions for `Text` values.\n///\n/// A `Text` value represents human-readable text as a sequence of characters of type `Char`.\n///\n/// ```motoko\n/// let text = \"Hello!\";\n/// let size = text.size();\n/// assert size == 6;\n/// let iter = text.chars();\n/// assert iter.next() == ?'H';\n/// assert iter.next() == ?'e';\n/// assert iter.next() == ?'l';\n/// assert iter.next() == ?'l';\n/// assert iter.next() == ?'o';\n/// assert iter.next() == ?'!';\n/// assert iter.next() == null;\n/// let concat = text # \" 👋\";\n/// assert concat == \"Hello! 👋\";\n/// ```\n///\n/// The `\"mo:core/Text\"` module defines additional operations on `Text` values.\n///\n/// Import the module from the core package:\n///\n/// ```motoko name=import\n/// import Text \"mo:core/Text\";\n/// ```\n///\n/// Note: `Text` values are represented as ropes of UTF-8 character sequences with O(1) concatenation.\n///\n\nimport Char \"Char\";\nimport Iter \"Iter\";\nimport Stack \"Stack\";\nimport Types \"Types\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// The type corresponding to primitive `Text` values.\n ///\n /// ```motoko\n /// let hello = \"Hello!\";\n /// let emoji = \"👋\";\n /// let concat = hello # \" \" # emoji;\n /// assert concat == \"Hello! 👋\";\n /// ```\n public type Text = Prim.Types.Text;\n\n /// Converts the given `Char` to a `Text` value.\n ///\n /// ```motoko include=import\n /// let text = Text.fromChar('A');\n /// assert text == \"A\";\n /// ```\n public let fromChar : (c : Char) -> Text = Prim.charToText;\n\n /// Converts the given `[Char]` to a `Text` value.\n ///\n /// ```motoko include=import\n /// let text = Text.fromArray(['A', 'v', 'o', 'c', 'a', 'd', 'o']);\n /// assert text == \"Avocado\";\n /// ```\n ///\n /// Runtime: O(a.size())\n /// Space: O(a.size())\n public func fromArray(a : [Char]) : Text = fromIter(a.vals());\n\n /// Converts the given `[var Char]` to a `Text` value.\n ///\n /// ```motoko include=import\n /// let text = Text.fromVarArray([var 'E', 'g', 'g', 'p', 'l', 'a', 'n', 't']);\n /// assert text == \"Eggplant\";\n /// ```\n ///\n /// Runtime: O(a.size())\n /// Space: O(a.size())\n public func fromVarArray(a : [var Char]) : Text = fromIter(a.vals());\n\n /// Iterates over each `Char` value in the given `Text`.\n ///\n /// Equivalent to calling the `t.chars()` method where `t` is a `Text` value.\n ///\n /// ```motoko include=import\n /// let chars = Text.toIter(\"abc\");\n /// assert chars.next() == ?'a';\n /// assert chars.next() == ?'b';\n /// assert chars.next() == ?'c';\n /// assert chars.next() == null;\n /// ```\n public func toIter(self : Text) : Iter.Iter = self.chars();\n\n /// Collapses the characters in `text` into a single value by starting with `base`\n /// and progessively combining characters into `base` with `combine`. Iteration runs\n /// left to right.\n ///\n /// ```motoko include=import\n ///\n /// let text = \"Mississippi\";\n /// let count =\n /// Text.foldLeft(\n /// text,\n /// 0, // start the sum at 0\n /// func(ss, c) = if (c == 's') ss + 1 else ss\n /// );\n /// assert count == 4;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `combine` runs in O(1) time and space.\n public func foldLeft(self : Text, base : A, combine : (A, Char) -> A) : A {\n var acc = base;\n for (c in self.chars()) acc := combine(acc, c);\n acc\n };\n\n /// Creates a new `Array` containing characters of the given `Text`.\n ///\n /// Equivalent to `Iter.toArray(t.chars())`.\n ///\n /// ```motoko include=import\n /// assert Text.toArray(\"Café\") == ['C', 'a', 'f', 'é'];\n /// ```\n ///\n /// Runtime: O(t.size())\n /// Space: O(t.size())\n public func toArray(self : Text) : [Char] {\n let cs = self.chars();\n // We rely on Array_tabulate's implementation details: it fills\n // the array from left to right sequentially.\n Prim.Array_tabulate(\n self.size(),\n func _ {\n switch (cs.next()) {\n case (?c) { c };\n case null { Prim.trap(\"Text.toArray()\") }\n }\n }\n )\n };\n\n /// Creates a new mutable `Array` containing characters of the given `Text`.\n ///\n /// Equivalent to `Iter.toArrayMut(t.chars())`.\n ///\n /// ```motoko include=import\n /// import VarArray \"mo:core/VarArray\";\n /// import Char \"mo:core/Char\";\n ///\n /// assert VarArray.equal(Text.toVarArray(\"Café\"), [var 'C', 'a', 'f', 'é'], Char.equal);\n /// ```\n ///\n /// Runtime: O(t.size())\n /// Space: O(t.size())\n public func toVarArray(self : Text) : [var Char] {\n let n = self.size();\n if (n == 0) {\n return [var]\n };\n let array = Prim.Array_init(n, ' ');\n var i = 0;\n for (c in self.chars()) {\n array[i] := c;\n i += 1\n };\n array\n };\n\n /// Creates a `Text` value from a `Char` iterator.\n ///\n /// ```motoko include=import\n /// let text = Text.fromIter(['a', 'b', 'c'].values());\n /// assert text == \"abc\";\n /// ```\n public func fromIter(cs : Iter.Iter) : Text {\n var r = \"\";\n for (c in cs) {\n r #= Prim.charToText(c)\n };\n return r\n };\n\n /// Returns whether the given `Text` is empty (has a size of zero).\n ///\n /// ```motoko include=import\n /// let text1 = \"\";\n /// let text2 = \"example\";\n /// assert Text.isEmpty(text1);\n /// assert not Text.isEmpty(text2);\n /// ```\n public func isEmpty(self : Text) : Bool = self == \"\";\n\n /// Returns the number of characters in the given `Text`.\n ///\n /// Equivalent to calling `t.size()` where `t` is a `Text` value.\n ///\n /// ```motoko include=import\n /// let size = Text.size(\"abc\");\n /// assert size == 3;\n /// ```\n public func size(self : Text) : Nat = self.size();\n\n /// Returns `t1 # t2`, where `#` is the `Text` concatenation operator.\n ///\n /// ```motoko include=import\n /// let a = \"Hello\";\n /// let b = \"There\";\n /// let together = a # b;\n /// assert together == \"HelloThere\";\n /// let withSpace = a # \" \" # b;\n /// assert withSpace == \"Hello There\";\n /// let togetherAgain = Text.concat(a, b);\n /// assert togetherAgain == \"HelloThere\";\n /// ```\n public func concat(self : Text, other : Text) : Text = self # other;\n\n /// Returns a new `Text` with the characters of the input `Text` in reverse order.\n ///\n /// ```motoko include=import\n /// let text = Text.reverse(\"Hello\");\n /// assert text == \"olleH\";\n /// ```\n ///\n /// Runtime: O(t.size())\n /// Space: O(t.size())\n public func reverse(self : Text) : Text {\n fromIter(Iter.reverse(self.chars()))\n };\n\n /// Returns true if two text values are equal.\n ///\n /// ```motoko\n /// import Text \"mo:core/Text\";\n ///\n /// assert Text.equal(\"hello\", \"hello\");\n /// assert not Text.equal(\"hello\", \"world\");\n /// ```\n public func equal(self : Text, other : Text) : Bool { self == other };\n\n /// Returns true if two text values are not equal.\n ///\n /// ```motoko\n /// import Text \"mo:core/Text\";\n ///\n /// assert Text.notEqual(\"hello\", \"world\");\n /// assert not Text.notEqual(\"hello\", \"hello\");\n /// ```\n public func notEqual(self : Text, other : Text) : Bool { self != other };\n\n /// Returns true if the first text value is lexicographically less than the second.\n ///\n /// ```motoko\n /// import Text \"mo:core/Text\";\n ///\n /// assert Text.less(\"apple\", \"banana\");\n /// assert not Text.less(\"banana\", \"apple\");\n /// ```\n public func less(self : Text, other : Text) : Bool { self < other };\n\n /// Returns true if the first text value is lexicographically less than or equal to the second.\n ///\n /// ```motoko\n /// import Text \"mo:core/Text\";\n ///\n /// assert Text.lessOrEqual(\"apple\", \"banana\");\n /// assert Text.lessOrEqual(\"apple\", \"apple\");\n /// assert not Text.lessOrEqual(\"banana\", \"apple\");\n /// ```\n public func lessOrEqual(self : Text, other : Text) : Bool { self <= other };\n\n /// Returns true if the first text value is lexicographically greater than the second.\n ///\n /// ```motoko\n /// import Text \"mo:core/Text\";\n ///\n /// assert Text.greater(\"banana\", \"apple\");\n /// assert not Text.greater(\"apple\", \"banana\");\n /// ```\n public func greater(self : Text, other : Text) : Bool { self > other };\n\n /// Returns true if the first text value is lexicographically greater than or equal to the second.\n ///\n /// ```motoko\n /// import Text \"mo:core/Text\";\n ///\n /// assert Text.greaterOrEqual(\"banana\", \"apple\");\n /// assert Text.greaterOrEqual(\"apple\", \"apple\");\n /// assert not Text.greaterOrEqual(\"apple\", \"banana\");\n /// ```\n public func greaterOrEqual(self : Text, other : Text) : Bool { self >= other };\n\n /// Compares `t1` and `t2` lexicographically.\n ///\n /// ```motoko include=import\n /// assert Text.compare(\"abc\", \"abc\") == #equal;\n /// assert Text.compare(\"abc\", \"def\") == #less;\n /// assert Text.compare(\"abc\", \"ABC\") == #greater;\n /// ```\n public func compare(self : Text, other : Text) : Order.Order {\n let c = Prim.textCompare(self, other);\n if (c < 0) #less else if (c == 0) #equal else #greater\n };\n\n private func extract(self : Text, i : Nat, j : Nat) : Text {\n let size = self.size();\n if (i == 0 and j == size) return self;\n assert (j <= size);\n let cs = self.chars();\n var r = \"\";\n var n = i;\n while (n > 0) {\n ignore cs.next();\n n -= 1\n };\n n := j;\n while (n > 0) {\n switch (cs.next()) {\n case null { assert false };\n case (?c) { r #= Prim.charToText(c) }\n };\n n -= 1\n };\n return r\n };\n\n /// Join an iterator of `Text` values with a given delimiter.\n ///\n /// ```motoko include=import\n /// let joined = Text.join([\"a\", \"b\", \"c\"].values(), \", \");\n /// assert joined == \"a, b, c\";\n /// ```\n public func join(self : Iter.Iter, sep : Text) : Text {\n var r = \"\";\n if (sep.size() == 0) {\n for (t in self) {\n r #= t\n };\n return r\n };\n let next = self.next;\n switch (next()) {\n case null { return r };\n case (?t) {\n r #= t\n }\n };\n loop {\n switch (next()) {\n case null { return r };\n case (?t) {\n r #= sep;\n r #= t\n }\n }\n }\n };\n\n /// Applies a function to each character in a `Text` value, returning the concatenated `Char` results.\n ///\n /// ```motoko include=import\n /// // Replace all occurrences of '?' with '!'\n /// let result = Text.map(\"Motoko?\", func(c) {\n /// if (c == '?') '!'\n /// else c\n /// });\n /// assert result == \"Motoko!\";\n /// ```\n public func map(self : Text, f : Char -> Char) : Text {\n var r = \"\";\n for (c in self.chars()) {\n r #= Prim.charToText(f(c))\n };\n r\n };\n\n /// Returns the result of applying `f` to each character in `ts`, concatenating the intermediate text values.\n ///\n /// ```motoko include=import\n /// // Replace all occurrences of '?' with \"!!\"\n /// let result = Text.flatMap(\"Motoko?\", func(c) {\n /// if (c == '?') \"!!\"\n /// else Text.fromChar(c)\n /// });\n /// assert result == \"Motoko!!\";\n /// ```\n public func flatMap(self : Text, f : Char -> Text) : Text {\n var r = \"\";\n for (c in self.chars()) {\n r #= f(c)\n };\n r\n };\n\n /// A pattern `p` describes a sequence of characters. A pattern has one of the following forms:\n ///\n /// * `#char c` matches the single character sequence, `c`.\n /// * `#text t` matches multi-character text sequence `t`.\n /// * `#predicate p` matches any single character sequence `c` satisfying predicate `p(c)`.\n ///\n /// A _match_ for `p` is any sequence of characters matching the pattern `p`.\n ///\n /// ```motoko include=import\n /// let charPattern = #char 'A';\n /// let textPattern = #text \"phrase\";\n /// let predicatePattern : Text.Pattern = #predicate (func(c) { c == 'A' or c == 'B' });\n /// assert Text.contains(\"A\", predicatePattern);\n /// assert Text.contains(\"B\", predicatePattern);\n /// ```\n public type Pattern = Types.Pattern;\n\n private func take(n : Nat, cs : Iter.Iter) : Iter.Iter {\n var i = n;\n object {\n public func next() : ?Char {\n if (i == 0) return null;\n i -= 1;\n return cs.next()\n }\n }\n };\n\n private func empty() : Iter.Iter {\n object {\n public func next() : ?Char = null\n }\n };\n\n private type Match = {\n /// #success on complete match\n #success;\n /// #fail(cs,c) on partial match of cs, but failing match on c\n #fail : (cs : Iter.Iter, c : Char);\n /// #empty(cs) on partial match of cs and empty stream\n #empty : (cs : Iter.Iter)\n };\n\n private func sizeOfPattern(pat : Pattern) : Nat {\n switch pat {\n case (#text(t)) { t.size() };\n case (#predicate(_) or #char(_)) { 1 }\n }\n };\n\n private func matchOfPattern(pat : Pattern) : (cs : Iter.Iter) -> Match {\n switch pat {\n case (#char(p)) {\n func(cs : Iter.Iter) : Match {\n switch (cs.next()) {\n case (?c) {\n if (p == c) {\n #success\n } else {\n #fail(empty(), c)\n }\n };\n case null { #empty(empty()) }\n }\n }\n };\n case (#predicate(p)) {\n func(cs : Iter.Iter) : Match {\n switch (cs.next()) {\n case (?c) {\n if (p(c)) {\n #success\n } else {\n #fail(empty(), c)\n }\n };\n case null { #empty(empty()) }\n }\n }\n };\n case (#text(p)) {\n func(cs : Iter.Iter) : Match {\n var i = 0;\n let ds = p.chars();\n loop {\n switch (ds.next()) {\n case (?d) {\n switch (cs.next()) {\n case (?c) {\n if (c != d) {\n return #fail(take(i, p.chars()), c)\n };\n i += 1\n };\n case null {\n return #empty(take(i, p.chars()))\n }\n }\n };\n case null { return #success }\n }\n }\n }\n }\n }\n };\n\n private class CharBuffer(cs : Iter.Iter) : Iter.Iter = {\n\n var stack : Stack.Stack<(Iter.Iter, Char)> = Stack.empty();\n\n public func pushBack(cs0 : Iter.Iter, c : Char) {\n Stack.push(stack, (cs0, c))\n };\n\n public func next() : ?Char {\n switch (Stack.peek(stack)) {\n case (?(buff, c)) {\n switch (buff.next()) {\n case null {\n ignore Stack.pop(stack);\n return ?c\n };\n case oc {\n return oc\n }\n }\n };\n case null {\n return cs.next()\n }\n }\n }\n };\n\n /// Splits the input `Text` with the specified `Pattern`.\n ///\n /// Two fields are separated by exactly one match.\n ///\n /// ```motoko include=import\n /// let words = Text.split(\"This is a sentence.\", #char ' ');\n /// assert Text.join(words, \"|\") == \"This|is|a|sentence.\";\n /// ```\n public func split(self : Text, p : Pattern) : Iter.Iter {\n let match = matchOfPattern(p);\n let cs = CharBuffer(self.chars());\n var state = 0;\n var field = \"\";\n object {\n public func next() : ?Text {\n switch state {\n case (0 or 1) {\n loop {\n switch (match(cs)) {\n case (#success) {\n let r = field;\n field := \"\";\n state := 1;\n return ?r\n };\n case (#empty(cs1)) {\n for (c in cs1) {\n field #= fromChar(c)\n };\n let r = if (state == 0 and field == \"\") {\n null\n } else {\n ?field\n };\n state := 2;\n return r\n };\n case (#fail(cs1, c)) {\n cs.pushBack(cs1, c);\n switch (cs.next()) {\n case (?ci) {\n field #= fromChar(ci)\n };\n case null {\n let r = if (state == 0 and field == \"\") {\n null\n } else {\n ?field\n };\n state := 2;\n return r\n }\n }\n }\n }\n }\n };\n case _ { return null }\n }\n }\n }\n };\n\n /// Returns a sequence of tokens from the input `Text` delimited by the specified `Pattern`, derived from start to end.\n /// A \"token\" is a non-empty maximal subsequence of `t` not containing a match for pattern `p`.\n /// Two tokens may be separated by one or more matches of `p`.\n ///\n /// ```motoko include=import\n /// let tokens = Text.tokens(\"this needs\\n an example\", #predicate (func(c) { c == ' ' or c == '\\n' }));\n /// assert Text.join(tokens, \"|\") == \"this|needs|an|example\";\n /// ```\n public func tokens(self : Text, p : Pattern) : Iter.Iter {\n let fs = split(self, p);\n object {\n public func next() : ?Text {\n switch (fs.next()) {\n case (?\"\") { next() };\n case ot { ot }\n }\n }\n }\n };\n\n /// Returns `true` if the input `Text` contains a match for the specified `Pattern`.\n ///\n /// ```motoko include=import\n /// assert Text.contains(\"Motoko\", #text \"oto\");\n /// assert not Text.contains(\"Motoko\", #text \"xyz\");\n /// ```\n public func contains(self : Text, p : Pattern) : Bool {\n let match = matchOfPattern(p);\n let cs = CharBuffer(self.chars());\n loop {\n switch (match(cs)) {\n case (#success) {\n return true\n };\n case (#empty(_cs1)) {\n return false\n };\n case (#fail(cs1, c)) {\n cs.pushBack(cs1, c);\n switch (cs.next()) {\n case null {\n return false\n };\n case _ {}; // continue\n }\n }\n }\n }\n };\n\n /// Returns `true` if the input `Text` starts with a prefix matching the specified `Pattern`.\n ///\n /// ```motoko include=import\n /// assert Text.startsWith(\"Motoko\", #text \"Mo\");\n /// ```\n public func startsWith(self : Text, p : Pattern) : Bool {\n var cs = self.chars();\n let match = matchOfPattern(p);\n switch (match(cs)) {\n case (#success) { true };\n case _ { false }\n }\n };\n\n /// Returns `true` if the input `Text` ends with a suffix matching the specified `Pattern`.\n ///\n /// ```motoko include=import\n /// assert Text.endsWith(\"Motoko\", #char 'o');\n /// ```\n public func endsWith(self : Text, p : Pattern) : Bool {\n let s2 = sizeOfPattern(p);\n if (s2 == 0) return true;\n let s1 = self.size();\n if (s2 > s1) return false;\n let match = matchOfPattern(p);\n var cs1 = self.chars();\n var diff : Nat = s1 - s2;\n while (diff > 0) {\n ignore cs1.next();\n diff -= 1\n };\n switch (match(cs1)) {\n case (#success) { true };\n case _ { false }\n }\n };\n\n /// Returns the input text `t` with all matches of pattern `p` replaced by text `r`.\n ///\n /// ```motoko include=import\n /// let result = Text.replace(\"abcabc\", #char 'a', \"A\");\n /// assert result == \"AbcAbc\";\n /// ```\n public func replace(self : Text, p : Pattern, r : Text) : Text {\n let match = matchOfPattern(p);\n let size = sizeOfPattern(p);\n let cs = CharBuffer(self.chars());\n var res = \"\";\n label l loop {\n switch (match(cs)) {\n case (#success) {\n res #= r;\n if (size > 0) {\n continue l\n }\n };\n case (#empty(cs1)) {\n for (c1 in cs1) {\n res #= fromChar(c1)\n };\n break l\n };\n case (#fail(cs1, c)) {\n cs.pushBack(cs1, c)\n }\n };\n switch (cs.next()) {\n case null {\n break l\n };\n case (?c1) {\n res #= fromChar(c1)\n }; // continue\n }\n };\n return res\n };\n\n /// Strips one occurrence of the given `Pattern` from the beginning of the input `Text`.\n /// If you want to remove multiple instances of the pattern, use `Text.trimStart()` instead.\n ///\n /// ```motoko include=import\n /// // Try to strip a nonexistent character\n /// let none = Text.stripStart(\"abc\", #char '-');\n /// assert none == null;\n /// // Strip just one '-'\n /// let one = Text.stripStart(\"--abc\", #char '-');\n /// assert one == ?\"-abc\";\n /// ```\n public func stripStart(self : Text, p : Pattern) : ?Text {\n let s = sizeOfPattern(p);\n if (s == 0) return ?self;\n var cs = self.chars();\n let match = matchOfPattern(p);\n switch (match(cs)) {\n case (#success) return ?fromIter(cs);\n case _ return null\n }\n };\n\n /// Strips one occurrence of the given `Pattern` from the end of the input `Text`.\n /// If you want to remove multiple instances of the pattern, use `Text.trimEnd()` instead.\n ///\n /// ```motoko include=import\n /// // Try to strip a nonexistent character\n /// let none = Text.stripEnd(\"xyz\", #char '-');\n /// assert none == null;\n /// // Strip just one '-'\n /// let one = Text.stripEnd(\"xyz--\", #char '-');\n /// assert one == ?\"xyz-\";\n /// ```\n public func stripEnd(self : Text, p : Pattern) : ?Text {\n let s2 = sizeOfPattern(p);\n if (s2 == 0) return ?self;\n let s1 = self.size();\n if (s2 > s1) return null;\n let match = matchOfPattern(p);\n var cs1 = self.chars();\n var diff : Nat = s1 - s2;\n while (diff > 0) {\n ignore cs1.next();\n diff -= 1\n };\n switch (match(cs1)) {\n case (#success) return ?extract(self, 0, s1 - s2);\n case _ return null\n }\n };\n\n /// Trims the given `Pattern` from the start of the input `Text`.\n /// If you only want to remove a single instance of the pattern, use `Text.stripStart()` instead.\n ///\n /// ```motoko include=import\n /// let trimmed = Text.trimStart(\"---abc\", #char '-');\n /// assert trimmed == \"abc\";\n /// ```\n public func trimStart(self : Text, p : Pattern) : Text {\n let cs = self.chars();\n let size = sizeOfPattern(p);\n if (size == 0) return self;\n var matchSize = 0;\n let match = matchOfPattern(p);\n loop {\n switch (match(cs)) {\n case (#success) {\n matchSize += size\n }; // continue\n case (#empty(cs1)) {\n return if (matchSize == 0) {\n self\n } else {\n fromIter(cs1)\n }\n };\n case (#fail(cs1, c)) {\n return if (matchSize == 0) {\n self\n } else {\n fromIter(cs1) # fromChar(c) # fromIter(cs)\n }\n }\n }\n }\n };\n\n /// Trims the given `Pattern` from the end of the input `Text`.\n /// If you only want to remove a single instance of the pattern, use `Text.stripEnd()` instead.\n ///\n /// ```motoko include=import\n /// let trimmed = Text.trimEnd(\"xyz---\", #char '-');\n /// assert trimmed == \"xyz\";\n /// ```\n public func trimEnd(self : Text, p : Pattern) : Text {\n let cs = CharBuffer(self.chars());\n let size = sizeOfPattern(p);\n if (size == 0) return self;\n let match = matchOfPattern(p);\n var matchSize = 0;\n label l loop {\n switch (match(cs)) {\n case (#success) {\n matchSize += size\n }; // continue\n case (#empty(cs1)) {\n switch (cs1.next()) {\n case null break l;\n case (?_) return self\n }\n };\n case (#fail(cs1, c)) {\n matchSize := 0;\n cs.pushBack(cs1, c);\n ignore cs.next()\n }\n }\n };\n extract(self, 0, self.size() - matchSize)\n };\n\n /// Trims the given `Pattern` from both the start and end of the input `Text`.\n ///\n /// ```motoko include=import\n /// let trimmed = Text.trim(\"---abcxyz---\", #char '-');\n /// assert trimmed == \"abcxyz\";\n /// ```\n public func trim(self : Text, p : Pattern) : Text {\n let cs = self.chars();\n let size = sizeOfPattern(p);\n if (size == 0) return self;\n var matchSize = 0;\n let match = matchOfPattern(p);\n loop {\n switch (match(cs)) {\n case (#success) {\n matchSize += size\n }; // continue\n case (#empty(cs1)) {\n return if (matchSize == 0) { self } else { fromIter(cs1) }\n };\n case (#fail(cs1, c)) {\n let start = matchSize;\n let cs2 = CharBuffer(cs);\n cs2.pushBack(cs1, c);\n ignore cs2.next();\n matchSize := 0;\n label l loop {\n switch (match(cs2)) {\n case (#success) {\n matchSize += size\n }; // continue\n case (#empty(_cs3)) {\n switch (cs1.next()) {\n case null break l;\n case (?_) return self\n }\n };\n case (#fail(cs3, c1)) {\n matchSize := 0;\n cs2.pushBack(cs3, c1);\n ignore cs2.next()\n }\n }\n };\n return extract(self, start, self.size() - matchSize - start)\n }\n }\n }\n };\n\n /// Compares `t1` and `t2` using the provided character-wise comparison function.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n ///\n /// assert Text.compareWith(\"abc\", \"ABC\", func(c1, c2) { Char.compare(c1, c2) }) == #greater;\n /// ```\n public func compareWith(\n self : Text,\n other : Text,\n compare : (Char, Char) -> Order.Order\n ) : Order.Order {\n let cs1 = self.chars();\n let cs2 = other.chars();\n loop {\n switch (cs1.next(), cs2.next()) {\n case (null, null) { return #equal };\n case (null, ?_) { return #less };\n case (?_, null) { return #greater };\n case (?c1, ?c2) {\n switch (compare(c1, c2)) {\n case (#equal) {}; // continue\n case other { return other }\n }\n }\n }\n }\n };\n\n /// Returns a UTF-8 encoded `Blob` from the given `Text`.\n ///\n /// ```motoko include=import\n /// let blob = Text.encodeUtf8(\"Hello\");\n /// assert blob == \"\\48\\65\\6C\\6C\\6F\";\n /// ```\n public let encodeUtf8 : (self : Text) -> Blob = Prim.encodeUtf8;\n\n /// Tries to decode the given `Blob` as UTF-8.\n /// Returns `null` if the blob is not valid UTF-8.\n ///\n /// ```motoko include=import\n /// let text = Text.decodeUtf8(\"\\48\\65\\6C\\6C\\6F\");\n /// assert text == ?\"Hello\";\n /// ```\n public let decodeUtf8 : (self : Blob) -> ?Text = Prim.decodeUtf8;\n\n /// Returns the text argument in lowercase.\n /// WARNING: Unicode compliant only when compiled, not interpreted.\n ///\n /// ```motoko include=import\n /// let text = Text.toLower(\"Good Day\");\n /// assert text == \"good day\";\n /// ```\n public let toLower : (self : Text) -> Text = Prim.textLowercase;\n\n /// Returns the text argument in uppercase. Unicode compliant.\n /// WARNING: Unicode compliant only when compiled, not interpreted.\n ///\n /// ```motoko include=import\n /// let text = Text.toUpper(\"Good Day\");\n /// assert text == \"GOOD DAY\";\n /// ```\n public let toUpper : (self : Text) -> Text = Prim.textUppercase;\n\n /// Returns the given text value unchanged.\n /// This function is provided for consistency with other modules.\n ///\n /// ```motoko include=import\n /// assert Text.toText(\"Hello\") == \"Hello\";\n /// ```\n public func toText(self : Text) : Text = self\n\n}\n"},"pure/List.mo":{"content":"/// Purely-functional, singly-linked list data structure.\n/// This module provides immutable lists with efficient prepend and traversal operations.\n///\n/// A list of type `List` is either `null` or an optional pair of a value of type `T` and a tail, itself of type `List`.\n///\n/// To use this library, import it using:\n///\n/// ```motoko name=import\n/// import List \"mo:core/pure/List\";\n/// ```\n\nimport { Array_tabulate } \"mo:⛔\";\nimport Array \"../Array\";\nimport Iter \"../Iter\";\nimport Order \"../Order\";\nimport Result \"../Result\";\nimport { trap } \"../Runtime\";\nimport Types \"../Types\";\nimport Runtime \"../Runtime\";\n\nmodule {\n\n /// @deprecated M0235\n public type List = Types.Pure.List;\n\n /// Create an empty list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// assert List.empty() == null;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func empty() : List = null;\n\n /// Check whether a list is empty and return true if the list is empty.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// assert List.isEmpty(null);\n /// assert not List.isEmpty(?(1, null));\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func isEmpty(self : List) : Bool = switch self {\n case null true;\n case _ false\n };\n\n /// Return the length of the list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, null));\n /// assert List.size(list) == 2;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func size(self : List) : Nat = (\n func go(n : Nat, list : List) : Nat = switch list {\n case (?(_, t)) go(n + 1, t);\n case null n\n }\n )(0, self);\n\n /// Check whether the list contains a given value. Uses the provided equality function to compare values.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.contains(list, Nat.equal, 2);\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `equal` runs in O(1) time and space.\n public func contains(self : List, equal : (implicit : (T, T) -> Bool), item : T) : Bool = switch self {\n case (?(h, t)) equal(h, item) or contains(t, equal, item);\n case _ false\n };\n\n /// Access any item in a list, zero-based.\n ///\n /// NOTE: Indexing into a list is a linear operation, and usually an\n /// indication that a list might not be the best data structure\n /// to use.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, null));\n /// assert List.get(list, 1) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func get(self : List, n : Nat) : ?T = switch self {\n case (?(h, t)) if (n == 0) ?h else get(t, n - 1 : Nat);\n case null null\n };\n\n /// Add `item` to the head of `list`, and return the new list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// assert List.pushFront(null, 0) == ?(0, null);\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func pushFront(self : List, item : T) : List = ?(item, self);\n\n /// Return the last element of the list, if present.\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, null));\n /// assert List.last(list) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func last(self : List) : ?T = switch self {\n case (?(h, null)) ?h;\n case null null;\n case (?(_, t)) last t\n };\n\n /// Remove the head of the list, returning the optioned head and the tail of the list in a pair.\n /// Returns `(null, null)` if the list is empty.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, null));\n /// assert List.popFront(list) == (?0, ?(1, null));\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func popFront(self : List) : (?T, List) = switch self {\n case null (null, null);\n case (?(h, t)) (?h, t)\n };\n\n /// Reverses the list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// assert List.reverse(list) == ?(2, ?(1, ?(0, null)));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func reverse(self : List) : List = (\n func go(acc : List, list : List) : List = switch list {\n case (?(h, t)) go(?(h, acc), t);\n case null acc\n }\n )(null, self);\n\n /// Call the given function for its side effect, with each list element in turn.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// var sum = 0;\n /// List.forEach(list, func n = sum += n);\n /// assert sum == 3;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func forEach(self : List, f : T -> ()) = switch self {\n case (?(h, t)) { f h; forEach(t, f) };\n case null ()\n };\n\n /// Call the given function `f` on each list element and collect the results\n /// in a new list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// assert List.map(list, Nat.toText) == ?(\"0\", ?(\"1\", ?(\"2\", null)));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func map(self : List, f : T1 -> T2) : List = (\n func go(list : List, f : T1 -> T2, acc : List) : List = switch list {\n case (?(h, t)) go(t, f, ?(f h, acc));\n case null reverse acc\n }\n )(self, f, null);\n\n /// Create a new list with only those elements of the original list for which\n /// the given function (often called the _predicate_) returns true.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// assert List.filter(list, func n = n != 1) == ?(0, ?(2, null));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func filter(self : List, f : T -> Bool) : List = (\n func go(list : List, f : T -> Bool, acc : List) : List = switch list {\n case (?(h, t)) if (f h) go(t, f, ?(h, acc)) else go(t, f, acc);\n case null reverse acc\n }\n )(self, f, null);\n\n /// Call the given function on each list element, and collect the non-null results\n /// in a new list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.filterMap(\n /// list,\n /// func n = if (n > 1) ?(n * 2) else null\n /// ) == ?(4, ?(6, null));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func filterMap(self : List, f : T -> ?R) : List = (\n func go(list : List, f : T -> ?R, acc : List) : List = switch list {\n case (?(h, t)) switch (f h) {\n case null go(t, f, acc);\n case (?r) go(t, f, ?(r, acc))\n };\n case null reverse acc\n }\n )(self, f, null);\n\n /// Maps a `Result`-returning function `f` over a `List` and returns either\n /// the first error or a list of successful values.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.mapResult(\n /// list,\n /// func n = if (n > 0) #ok(n * 2) else #err \"Some element is zero\"\n /// ) == #ok(?(2, ?(4, ?(6, null))));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func mapResult(self : List, f : T -> Result.Result) : Result.Result, E> = (\n func rev(acc : List, list : List, f : T -> Result.Result) : Result.Result, E> = switch list {\n case (?(h, t)) switch (f h) {\n case (#ok fh) rev(?(fh, acc), t, f);\n case (#err e) #err e\n };\n case null #ok(reverse acc)\n }\n )(null, self, f);\n\n /// Create two new lists from the results of a given function (`f`).\n /// The first list only includes the elements for which the given\n /// function `f` returns true and the second list only includes\n /// the elements for which the function returns false.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// assert List.partition(list, func n = n != 1) == (?(0, ?(2, null)), ?(1, null));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func partition(self : List, f : T -> Bool) : (List, List) = (\n func go(list : List, f : T -> Bool, acc1 : List, acc2 : List) : (List, List) = switch list {\n case (?(h, t)) if (f h) go(t, f, ?(h, acc1), acc2) else go(t, f, acc1, ?(h, acc2));\n case null (reverse acc1, reverse acc2)\n }\n )(self, f, null, null);\n\n /// Append the elements from one list to another list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list1 = ?(0, ?(1, ?(2, null)));\n /// let list2 = ?(3, ?(4, ?(5, null)));\n /// assert List.concat(list1, list2) == ?(0, ?(1, ?(2, ?(3, ?(4, ?(5, null))))));\n /// }\n /// ```\n ///\n /// Runtime: O(size(l))\n ///\n /// Space: O(size(l))\n public func concat(self : List, other : List) : List = revAppend(reverse self, other);\n\n /// Flatten, or repatedly concatenate, an iterator of lists as a list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let lists = [ ?(0, ?(1, ?(2, null))),\n /// ?(3, ?(4, ?(5, null))) ];\n /// assert List.join(lists |> Iter.fromArray(_)) == ?(0, ?(1, ?(2, ?(3, ?(4, ?(5, null))))));\n /// }\n /// ```\n ///\n /// Runtime: O(size*size)\n ///\n /// Space: O(size*size)\n public func join(iter : Iter.Iter>) : List {\n var acc : List = null;\n for (list in iter) {\n acc := revAppend(list, acc)\n };\n reverse acc\n };\n\n /// Flatten, or repatedly concatenate, a list of lists as a list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let lists = ?(?(0, ?(1, ?(2, null))),\n /// ?(?(3, ?(4, ?(5, null))),\n /// null));\n /// assert List.flatten(lists) == ?(0, ?(1, ?(2, ?(3, ?(4, ?(5, null))))));\n /// }\n /// ```\n ///\n /// Runtime: O(size*size)\n ///\n /// Space: O(size*size)\n public func flatten(self : List>) : List = (\n func go(lists : List>, acc : List) : List = switch lists {\n case (?(list, t)) go(t, revAppend(list, acc));\n case null reverse acc\n }\n )(self, null);\n\n /// Returns the first `n` elements of the given list.\n /// If the given list has fewer than `n` elements, this function returns\n /// a copy of the full input list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// assert List.take(list, 2) == ?(0, ?(1, null));\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n ///\n /// Space: O(n)\n public func take(self : List, n : Nat) : List = (\n func go(n : Nat, list : List, acc : List) : List = if (n == 0) reverse acc else switch list {\n case (?(h, t)) go(n - 1 : Nat, t, ?(h, acc));\n case null reverse acc\n }\n )(n, self, null);\n\n /// Drop the first `n` elements from the given list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// assert List.drop(list, 2) == ?(2, null);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n ///\n /// Space: O(1)\n public func drop(self : List, n : Nat) : List = if (n == 0) self else switch self {\n case (?(_, t)) drop(t, n - 1 : Nat);\n case null null\n };\n\n /// Collapses the elements in `list` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// left to right.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.foldLeft(\n /// list,\n /// \"\",\n /// func (acc, x) = acc # Nat.toText(x)\n /// ) == \"123\";\n /// }\n /// ```\n ///\n /// Runtime: O(size(list))\n ///\n /// Space: O(1) heap, O(1) stack\n ///\n /// *Runtime and space assumes that `combine` runs in O(1) time and space.\n public func foldLeft(self : List, base : A, combine : (A, T) -> A) : A = switch self {\n case null base;\n case (?(h, t)) foldLeft(t, combine(base, h), combine)\n };\n\n /// Collapses the elements in `buffer` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// right to left.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.foldRight(\n /// list,\n /// \"\",\n /// func (x, acc) = Nat.toText(x) # acc\n /// ) == \"123\";\n /// }\n /// ```\n ///\n /// Runtime: O(size(list))\n ///\n /// Space: O(1) heap, O(size(list)) stack\n ///\n /// *Runtime and space assumes that `combine` runs in O(1) time and space.\n public func foldRight(self : List, base : A, combine : (T, A) -> A) : A = (\n func go(list : List, base : A, combine : (T, A) -> A) : A = switch list {\n case null base;\n case (?(h, t)) go(t, combine(h, base), combine)\n }\n )(reverse self, base, combine);\n\n /// Return the first element for which the given predicate `f` is true,\n /// if such an element exists.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.find(list, func n = n > 1) == ?2;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func find(self : List, f : T -> Bool) : ?T = switch self {\n case null null;\n case (?(h, t)) if (f h) ?h else find(t, f)\n };\n\n /// Return the first index for which the given predicate `f` is true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = List.fromArray(['A', 'B', 'C', 'D']);\n /// let found = List.findIndex(list, func(x) { x == 'C' });\n /// assert found == ?2;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func findIndex(self : List, f : T -> Bool) : ?Nat {\n findIndex_(self, 0, f)\n };\n\n private func findIndex_(self : List, index : Nat, f : T -> Bool) : ?Nat = switch self {\n case null null;\n case (?(h, t)) if (f h) ?index else findIndex_(t, index + 1, f)\n };\n\n /// Return true if the given predicate `f` is true for all list\n /// elements.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert not List.all(list, func n = n > 1);\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func all(self : List, f : T -> Bool) : Bool = switch self {\n case null true;\n case (?(h, t)) f h and all(t, f)\n };\n\n /// Return true if there exists a list element for which\n /// the given predicate `f` is true.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.any(list, func n = n > 1);\n /// }\n /// ```\n ///\n /// Runtime: O(size(list))\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func any(self : List, f : T -> Bool) : Bool = switch self {\n case null false;\n case (?(h, t)) f h or any(t, f)\n };\n\n /// Merge two ordered lists into a single ordered list.\n /// This function requires both list to be ordered as specified\n /// by the given relation `compare`.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list1 = ?(1, ?(2, ?(4, null)));\n /// let list2 = ?(2, ?(4, ?(6, null)));\n /// assert List.merge(list1, list2, Nat.compare) == ?(1, ?(2, ?(2, ?(4, ?(4, ?(6, null))))));\n /// }\n /// ```\n ///\n /// Runtime: O(size(l1) + size(l2))\n ///\n /// Space: O(size(l1) + size(l2))\n ///\n /// *Runtime and space assumes that `lessThanOrEqual` runs in O(1) time and space.\n public func merge(self : List, other : List, compare : (implicit : (T, T) -> Order.Order)) : List = (\n func go(list1 : List, list2 : List, compare : (T, T) -> Order.Order, acc : List) : List = switch (list1, list2) {\n case ((null, l) or (l, null)) reverse(revAppend(l, acc));\n case (?(h1, t1), ?(h2, t2)) switch (compare(h1, h2)) {\n case (#less or #equal) go(t1, list2, compare, ?(h1, acc));\n case (#greater) go(list1, t2, compare, ?(h2, acc))\n }\n }\n )(self, other, compare, null);\n\n /// Check if two lists are equal using the given equality function to compare elements.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list1 = ?(1, ?(2, null));\n /// let list2 = ?(1, ?(2, null));\n /// assert List.equal(list1, list2, Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `equalItem` runs in O(1) time and space.\n public func equal(self : List, other : List, equalItem : (implicit : (equal : (T, T) -> Bool))) : Bool = switch (self, other) {\n case (null, null) true;\n case (?(h1, t1), ?(h2, t2)) equalItem(h1, h2) and equal(t1, t2, equalItem);\n case _ false\n };\n\n /// Compare two lists using lexicographic ordering specified by argument function `compareItem`.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list1 = ?(1, ?(2, null));\n /// let list2 = ?(3, ?(4, null));\n /// assert List.compare(list1, list2, Nat.compare) == #less;\n /// }\n /// ```\n ///\n /// Runtime: O(size(l1))\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that argument `compare` runs in O(1) time and space.\n public func compare(self : List, other : List, compareItem : (implicit : (compare : (T, T) -> Order.Order))) : Order.Order = switch (self, other) {\n case (?(h1, t1), ?(h2, t2)) switch (compareItem(h1, h2)) {\n case (#equal) compare(t1, t2, compareItem);\n case o o\n };\n case (null, null) #equal;\n case (null, _) #less;\n case _ #greater\n };\n\n /// Generate a list based on a length and a function that maps from\n /// a list index to a list element.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = List.tabulate(3, func n = n * 2);\n /// assert list == ?(0, ?(2, ?(4, null)));\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n ///\n /// Space: O(n)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func tabulate(n : Nat, f : Nat -> T) : List {\n var i = 0;\n var l : List = null;\n while (i < n) {\n l := ?(f i, l);\n i += 1\n };\n reverse l\n };\n\n /// Create a list with exactly one element.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// assert List.singleton(0) == ?(0, null);\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func singleton(item : T) : List = ?(item, null);\n\n /// Create a list of the given length with the same value in each position.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = List.repeat('a', 3);\n /// assert list == ?('a', ?('a', ?('a', null)));\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n ///\n /// Space: O(n)\n public func repeat(item : T, n : Nat) : List {\n var res : List = null;\n var i : Int = n;\n while (i != 0) {\n i -= 1;\n res := ?(item, res)\n };\n res\n };\n\n /// Create a list of pairs from a pair of lists.\n ///\n /// If the given lists have different lengths, then the created list will have a\n /// length equal to the length of the smaller list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list1 = ?(0, ?(1, ?(2, null)));\n /// let list2 = ?(\"0\", ?(\"1\", null));\n /// assert List.zip(list1, list2) == ?((0, \"0\"), ?((1, \"1\"), null));\n /// }\n /// ```\n ///\n /// Runtime: O(min(size(xs), size(ys)))\n ///\n /// Space: O(min(size(xs), size(ys)))\n public func zip(self : List, other : List) : List<(T, U)> = zipWith(self, other, func(x, y) = (x, y));\n\n /// Create a list in which elements are created by applying function `f` to each pair `(x, y)` of elements\n /// occuring at the same position in list `xs` and list `ys`.\n ///\n /// If the given lists have different lengths, then the created list will have a\n /// length equal to the length of the smaller list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n /// import Char \"mo:core/Char\";\n ///\n /// persistent actor {\n /// let list1 = ?(0, ?(1, ?(2, null)));\n /// let list2 = ?('a', ?('b', null));\n /// assert List.zipWith(\n /// list1,\n /// list2,\n /// func (n, c) = Nat.toText(n) # Char.toText(c)\n /// ) == ?(\"0a\", ?(\"1b\", null));\n /// }\n /// ```\n ///\n /// Runtime: O(min(size(xs), size(ys)))\n ///\n /// Space: O(min(size(xs), size(ys)))\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func zipWith(self : List, other : List, f : (T, U) -> V) : List = (\n func go(list1 : List, list2 : List, f : (T, U) -> V, acc : List) : List = switch (list1, list2) {\n case ((null, _) or (_, null)) reverse acc;\n case (?(h1, t1), ?(h2, t2)) go(t1, t2, f, ?(f(h1, h2), acc))\n }\n )(self, other, f, null);\n\n /// Split the given list at the given zero-based index.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, null)));\n /// assert List.split(list, 2) == (?(0, ?(1, null)), ?(2, null));\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n ///\n /// Space: O(n)\n public func split(self : List, n : Nat) : (List, List) {\n func go(n : Nat, list : List, acc : List) : (List, List) = if (n == 0) (reverse acc, list) else switch list {\n case (?(h, t)) go(n - 1 : Nat, t, ?(h, acc));\n case null (reverse acc, null)\n };\n go(n, self, null)\n };\n\n /// Split the given list into chunks of length `n`.\n /// The last chunk will be shorter if the length of the given list\n /// does not divide by `n` evenly. Traps if `n` = 0.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = ?(0, ?(1, ?(2, ?(3, ?(4, null)))));\n /// assert List.chunks(list, 2) == ?(?(0, ?(1, null)), ?(?(2, ?(3, null)), ?(?(4, null), null)));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func chunks(self : List, n : Nat) : List> {\n if (n == 0) trap \"pure/List.chunks()\";\n func go(list : List, n : Nat, acc : List>) : List> = switch (split(list, n)) {\n case (null, _) reverse acc;\n case (pre, null) reverse(?(pre, acc));\n case (pre, post) go(post, n, ?(pre, acc))\n };\n go(self, n, null)\n };\n\n /// Returns an iterator to the elements in the list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list = List.fromArray([3, 1, 4]);\n /// var text = \"\";\n /// for (item in List.values(list)) {\n /// text #= Nat.toText(item);\n /// };\n /// assert text == \"314\";\n /// }\n /// ```\n public func values(self : List) : Iter.Iter = object {\n var l = self;\n public func next() : ?T = switch l {\n case null null;\n case (?(h, t)) {\n l := t;\n ?h\n }\n }\n };\n\n /// Returns an iterator to the `(index, element)` pairs in the list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list = List.fromArray([3, 1, 4]);\n /// var text = \"\";\n /// for ((index, element) in List.enumerate(list)) {\n /// text #= Nat.toText(index);\n /// };\n /// assert text == \"012\";\n /// }\n /// ```\n public func enumerate(self : List) : Iter.Iter<(Nat, T)> = object {\n var i = 0;\n var l = self;\n public func next() : ?(Nat, T) = switch l {\n case null null;\n case (?(h, t)) {\n l := t;\n let index = i;\n i += 1;\n ?(index, h)\n }\n }\n };\n\n /// Convert an array into a list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = List.fromArray([0, 1, 2, 3, 4]);\n /// assert list == ?(0, ?(1, ?(2, ?(3, ?(4, null)))));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func fromArray(array : [T]) : List {\n func go(from : Nat) : List = if (from < array.size()) ?(array.get from, go(from + 1)) else null;\n go 0\n };\n\n /// Convert a mutable array into a list.\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = List.fromVarArray([var 0, 1, 2, 3, 4]);\n /// assert list == ?(0, ?(1, ?(2, ?(3, ?(4, null)))));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func fromVarArray(array : [var T]) : List = fromArray(Array.fromVarArray(array));\n\n /// Create an array from a list.\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Array \"mo:core/Array\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let array = List.toArray(?(0, ?(1, ?(2, ?(3, ?(4, null))))));\n /// assert Array.equal(array, [0, 1, 2, 3, 4], Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func toArray(self : List) : [T] {\n var l = self;\n Array_tabulate(size self, func _ { let ?(h, t) = l else Runtime.trap(\"List.toArray(): unreachable\"); l := t; h })\n };\n\n /// Create a mutable array from a list.\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Array \"mo:core/Array\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let array = List.toVarArray(?(0, ?(1, ?(2, ?(3, ?(4, null))))));\n /// assert Array.equal(Array.fromVarArray(array), [0, 1, 2, 3, 4], Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func toVarArray(self : List) : [var T] = Array.toVarArray(toArray(self));\n\n /// Create a list from an iterator, consuming the iterator.\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// let list = List.fromIter([0, 1, 2, 3, 4].vals());\n /// assert list == ?(0, ?(1, ?(2, ?(3, ?(4, null)))));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func fromIter(iter : Iter.Iter) : List {\n var result : List = null;\n for (x in iter) {\n result := ?(x, result)\n };\n reverse result\n };\n\n /// Convert an iterator to a list, consuming the iterator.\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n ///\n /// persistent actor {\n /// transient let iter = [0, 1, 2, 3, 4].vals();\n ///\n /// let list = iter.toList();\n ///\n /// assert list == ?(0, ?(1, ?(2, ?(3, ?(4, null)))));\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func toList(self : Iter.Iter) : List {\n fromIter(self)\n };\n\n /// Convert a list to a text representation using the provided function to convert each element to text.\n /// The resulting text will be in the format \"[element1, element2, ...]\".\n ///\n /// Example:\n /// ```motoko\n /// import List \"mo:core/pure/List\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let list = ?(1, ?(2, ?(3, null)));\n /// assert List.toText(list, Nat.toText) == \"PureList[1, 2, 3]\";\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func toText(self : List, f : (implicit : T -> Text)) : Text {\n var text = \"PureList[\";\n var first = true;\n forEach(\n self,\n func(item : T) {\n if first {\n first := false\n } else {\n text #= \", \"\n };\n text #= f item\n }\n );\n text # \"]\"\n };\n\n // revAppend([x1 .. xn], [y1 .. ym]) = [xn .. x1, y1 .. ym]\n func revAppend(l : List, m : List) : List = switch l {\n case (?(h, t)) revAppend(t, ?(h, m));\n case null m\n }\n}\n"},"List.mo":{"content":"/// A mutable growable array data structure with efficient random access and dynamic resizing.\n/// `List` provides O(1) access time and O(sqrt(n)) memory overhead. In contrast, `pure/List` is a purely functional linked list.\n/// Can be declared `stable` for orthogonal persistence.\n///\n/// This implementation is adapted with permission from the `vector` Mops package created by Research AG.\n///\n/// Copyright: 2023 MR Research AG\n/// Main author: Andrii Stepanov (AStepanov25)\n/// Contributors: Timo Hanke (timohanke), Andy Gura (andygura), react0r-com\n///\n/// ```motoko name=import\n/// import List \"mo:core/List\";\n/// ```\n\nimport PureList \"pure/List\";\nimport Prim \"mo:⛔\";\nimport Nat32 \"Nat32\";\nimport Array \"Array\";\nimport Nat \"Nat\";\nimport Option \"Option\";\nimport VarArray \"VarArray\";\nimport Types \"Types\";\n\nmodule {\n /// `List` provides a mutable list of elements of type `T`.\n /// Based on the paper \"Resizable Arrays in Optimal Time and Space\" by Brodnik, Carlsson, Demaine, Munro and Sedgewick (1999).\n /// Since this is internally a two-dimensional array the access times for put and get operations\n /// will naturally be 2x slower than Buffer and Array. However, Array is not resizable and Buffer\n /// has `O(size)` memory waste.\n ///\n /// The maximum number of elements in a `List` is 2^32.\n public type List = Types.List;\n\n let INTERNAL_ERROR = \"List: internal error\";\n\n /// Creates a new empty List for elements of type T.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty(); // Creates a new List\n /// ```\n public func empty() : List = {\n // the first block is always empty and is present in each List\n // this is done to optimize locate, at, get, etc\n var blocks = [var [var]];\n // can't be 0 in any List\n var blockIndex = 1;\n var elementIndex = 0\n };\n\n /// Returns a new list with capacity and size 1, containing `element`.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.singleton(1);\n /// assert List.toText(list, Nat.toText) == \"List[1]\";\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n public func singleton(element : T) : List = {\n var blockIndex = 2;\n var blocks = [var [var], [var ?element]];\n var elementIndex = 0\n };\n\n func repeatInternal(initValue : ?T, size : Nat) : List {\n let (blockIndex, elementIndex) = locate(size);\n\n let blocks = newIndexBlockLength(Nat32.fromNat(if (elementIndex == 0) { blockIndex - 1 } else blockIndex));\n let dataBlocks = VarArray.repeat<[var ?T]>([var], blocks);\n var i = 1;\n while (i < blockIndex) {\n dataBlocks[i] := VarArray.repeat(initValue, dataBlockSize(i));\n i += 1\n };\n if (elementIndex != 0) {\n dataBlocks[blockIndex] := if (Option.isNull(initValue)) VarArray.repeat(\n null,\n dataBlockSize(blockIndex)\n ) else VarArray.tabulate(\n dataBlockSize(blockIndex),\n func i = if (i < elementIndex) initValue else null\n )\n };\n\n {\n var blocks = dataBlocks;\n var blockIndex = blockIndex;\n var elementIndex = elementIndex\n }\n };\n\n /// Creates a new List with `size` copies of the initial value.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.repeat(2, 4);\n /// assert List.toArray(list) == [2, 2, 2, 2];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n public func repeat(initValue : T, size : Nat) : List = repeatInternal(?initValue, size);\n\n /// Fills all elements in the list with the given value.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3]);\n /// List.fill(list, 0); // fills the list with 0\n /// assert List.toArray(list) == [0, 0, 0];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n public func fill(self : List, value : T) {\n let blocks = self.blocks;\n let blockCount = blocks.size();\n let blockIndex = self.blockIndex;\n let elementIndex = self.elementIndex;\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = if (i == blockIndex) elementIndex else db.size();\n if (sz == 0) return;\n\n var j = 0;\n while (j < sz) {\n db[j] := ?value;\n j += 1\n };\n i += 1\n }\n };\n\n /// Converts a mutable `List` to a purely functional `PureList`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3]);\n /// let pureList = List.toPure(list); // converts to immutable PureList\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n /// @deprecated M0235\n public func toPure(self : List) : PureList.List {\n var result : PureList.List = null;\n\n let blocks = self.blocks;\n let blockIndex = self.blockIndex;\n let elementIndex = self.elementIndex;\n\n var i = blockIndex;\n if (elementIndex == 0) i -= 1;\n\n while (i > 0) {\n let db = blocks[i];\n let sz = db.size();\n var j = if (i == blockIndex) elementIndex else sz;\n while (j > 0) {\n j -= 1;\n switch (db[j]) {\n case (?x) result := ?(x, result);\n case null Prim.trap INTERNAL_ERROR\n }\n };\n i -= 1\n };\n\n result\n };\n\n /// Converts a purely functional `PureList` to a `List`.\n ///\n /// Example:\n /// ```motoko include=import\n /// import PureList \"mo:core/pure/List\";\n ///\n /// let pureList = PureList.fromArray([1, 2, 3]);\n /// let list = List.fromPure(pureList); // converts to List\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n /// @deprecated M0235\n public func fromPure(pure : PureList.List) : List {\n var p = pure;\n var list = empty();\n loop {\n switch (p) {\n case (?(x, xs)) {\n add(list, x);\n p := xs\n };\n case null return list\n }\n }\n };\n\n func addRepeatInternal(list : List, initValue : ?T, count : Nat) {\n let (b, e) = locate(size(list) + count);\n let blocksCount = newIndexBlockLength(Nat32.fromNat(if (e == 0) b - 1 else b));\n\n let oldBlocksCount = list.blocks.size();\n if (oldBlocksCount < blocksCount) {\n let oldBlocks = list.blocks;\n let blocks = VarArray.repeat<[var ?T]>([var], blocksCount);\n var i = 0;\n while (i < oldBlocksCount) {\n blocks[i] := oldBlocks[i];\n i += 1\n };\n list.blocks := blocks\n };\n\n let blocks = list.blocks;\n var blockIndex = list.blockIndex;\n var elementIndex = list.elementIndex;\n\n var cnt = count;\n label L while (cnt > 0) {\n if (blocks[blockIndex].size() == 0) {\n let dbSize = dataBlockSize(blockIndex);\n if (cnt >= dbSize) {\n blocks[blockIndex] := VarArray.repeat(initValue, dbSize);\n blockIndex += 1;\n cnt -= dbSize;\n continue L\n };\n blocks[blockIndex] := VarArray.repeat(null, dbSize)\n };\n\n let block = blocks[blockIndex];\n let dbSize = block.size();\n let to = Nat.min(elementIndex + cnt, dbSize);\n cnt -= to - elementIndex;\n\n while (elementIndex < to) {\n block[elementIndex] := initValue;\n elementIndex += 1\n };\n\n if (elementIndex == dbSize) {\n elementIndex := 0;\n blockIndex += 1\n }\n };\n\n list.blockIndex := blockIndex;\n list.elementIndex := elementIndex\n };\n\n private func reserve(list : List, size : Nat) {\n let blockIndex = list.blockIndex;\n let elementIndex = list.elementIndex;\n\n addRepeatInternal(list, null, size);\n\n list.blockIndex := blockIndex;\n list.elementIndex := elementIndex\n };\n\n /// Add to list `count` copies of the initial value.\n ///\n /// ```motoko include=import\n /// let list = List.repeat(2, 4); // [2, 2, 2, 2]\n /// List.addRepeat(list, 2, 1); // [2, 2, 2, 2, 1, 1]\n /// ```\n ///\n /// The maximum number of elements in a `List` is 2^32.\n ///\n /// Runtime: `O(count)`\n public func addRepeat(self : List, initValue : T, count : Nat) = addRepeatInternal(self, ?initValue, count);\n\n /// Truncates the list to the specified size.\n /// If the new size is larger than the current size, it will do nothing.\n /// If the new size is equal to the current list size, after the operation list will be equal to cloned version of itself.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3, 4, 5]);\n /// List.truncate(list, 3); // list is now [1, 2, 3]\n /// assert List.toArray(list) == [1, 2, 3];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n public func truncate(self : List, newSize : Nat) {\n if (newSize > size(self)) return;\n\n // if newSize == size(self) then after the operation self will be equal to List.clone(self)\n let (blockIndex, elementIndex) = locate(newSize);\n self.blockIndex := blockIndex;\n self.elementIndex := elementIndex;\n let newBlocksCount = newIndexBlockLength(Nat32.fromNat(if (elementIndex == 0) blockIndex - 1 else blockIndex));\n\n let newBlocks = if (newBlocksCount < self.blocks.size()) {\n let oldDataBlocks = self.blocks;\n self.blocks := VarArray.tabulate<[var ?T]>(newBlocksCount, func(i) = oldDataBlocks[i]);\n self.blocks\n } else self.blocks;\n\n var i = if (elementIndex == 0) blockIndex else blockIndex + 1;\n while (i < newBlocksCount) {\n newBlocks[i] := [var];\n i += 1\n };\n if (elementIndex != 0) {\n let block = newBlocks[blockIndex];\n var i = elementIndex;\n var to = block.size();\n while (i < to) {\n block[i] := null;\n i += 1\n }\n }\n };\n\n /// Resets the list to size 0, de-referencing all elements.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// List.add(list, 12);\n /// List.clear(list); // list is now empty\n /// assert List.toArray(list) == [];\n /// ```\n ///\n /// Runtime: `O(1)`\n public func clear(self : List) {\n self.blocks := [var [var]];\n self.blockIndex := 1;\n self.elementIndex := 0\n };\n\n /// Creates a list of size `size`. Each element at index i\n /// is created by applying `generator` to i.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.tabulate(4, func i = i * 2);\n /// assert List.toArray(list) == [0, 2, 4, 6];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `generator` runs in O(1) time and space.\n public func tabulate(size : Nat, generator : Nat -> T) : List {\n let (blockIndex, elementIndex) = locate(size);\n\n let blocks = newIndexBlockLength(Nat32.fromNat(if (elementIndex == 0) { blockIndex - 1 } else blockIndex));\n let dataBlocks = VarArray.repeat<[var ?T]>([var], blocks);\n\n var i = 1;\n var pos = 0;\n\n while (i < blockIndex) {\n let len = dataBlockSize(i);\n dataBlocks[i] := VarArray.tabulate(len, func i = ?generator(pos + i));\n pos += len;\n i += 1\n };\n if (elementIndex != 0 and blockIndex < blocks) {\n dataBlocks[i] := VarArray.tabulate(\n dataBlockSize(blockIndex),\n func i = if (i < elementIndex) ?generator(pos + i) else null\n )\n };\n\n {\n var blocks = dataBlocks;\n var blockIndex = blockIndex;\n var elementIndex = elementIndex\n }\n };\n\n /// Combines a list of lists into a single list. Retains the original\n /// ordering of the elements.\n ///\n /// This has better performance compared to `List.join()`.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let lists = List.fromArray>([\n /// List.fromArray([0, 1, 2]), List.fromArray([2, 3]), List.fromArray([]), List.fromArray([4])\n /// ]);\n /// let flatList = List.flatten(lists);\n /// assert List.equal(flatList, List.fromArray([0, 1, 2, 2, 3, 4]), Nat.equal);\n /// ```\n ///\n /// Runtime: O(number of elements in list)\n ///\n /// Space: O(number of elements in list)\n public func flatten(self : List>) : List {\n var sz = 0;\n forEach>(self, func(sublist) = sz += size(sublist));\n\n let result = repeatInternal(null, sz);\n result.blockIndex := 1;\n result.elementIndex := 0;\n\n forEach>(\n self,\n func(sublist) {\n forEach(\n sublist,\n func(item) {\n add(result, item)\n }\n )\n }\n );\n result\n };\n\n /// Combines an iterator of lists into a single list.\n /// Retains the original ordering of the elements.\n ///\n /// Consider using `List.flatten()` for better performance.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let lists = [List.fromArray([0, 1, 2]), List.fromArray([2, 3]), List.fromArray([]), List.fromArray([4])];\n /// let joinedList = List.join(lists.vals());\n /// assert List.equal(joinedList, List.fromArray([0, 1, 2, 2, 3, 4]), Nat.equal);\n /// ```\n ///\n /// Runtime: O(number of elements in list)\n ///\n /// Space: O(number of elements in list)\n public func join(self : Types.Iter>) : List {\n var result = empty();\n for (list in self) {\n reserve(result, size(list));\n forEach(list, func item = addUnsafe(result, item))\n };\n result\n };\n\n /// Returns a copy of a List, with the same size.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 1);\n ///\n /// let clone = List.clone(list);\n /// assert List.toArray(clone) == [1];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func clone(self : List) : List = {\n var blocks = VarArray.tabulate<[var ?T]>(\n Nat.min(\n newIndexBlockLength(Nat32.fromNat(if (self.elementIndex == 0) self.blockIndex - 1 else self.blockIndex)),\n self.blocks.size()\n ),\n func(i) = VarArray.clone(self.blocks[i])\n );\n var blockIndex = self.blockIndex;\n var elementIndex = self.elementIndex\n };\n\n /// Creates a new list by applying the provided function to each element in the input list.\n /// The resulting list has the same size as the input list.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.singleton(123);\n /// let textList = List.map(list, Nat.toText);\n /// assert List.toArray(textList) == [\"123\"];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func map(self : List, f : T -> R) : List {\n let blocksCount = Nat.min(\n newIndexBlockLength(Nat32.fromNat(if (self.elementIndex == 0) self.blockIndex - 1 else self.blockIndex)),\n self.blocks.size()\n );\n let blocks = VarArray.repeat<[var ?R]>([var], blocksCount);\n\n var i = 1;\n label l while (i < blocksCount) {\n let oldBlock = self.blocks[i];\n let blockSize = oldBlock.size();\n let newBlock = VarArray.repeat(null, blockSize);\n blocks[i] := newBlock;\n var j = 0;\n\n while (j < blockSize) {\n switch (oldBlock[j]) {\n case (?item) newBlock[j] := ?f(item);\n case null break l\n };\n j += 1\n };\n i += 1\n };\n\n {\n var blocks = blocks;\n var blockIndex = self.blockIndex;\n var elementIndex = self.elementIndex\n }\n };\n\n /// Applies `f` to each element of `list` in place,\n /// retaining the original ordering of elements.\n /// This modifies the original list.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([0, 1, 2, 3]);\n /// List.mapInPlace(list, func x = x * 3);\n /// assert List.equal(list, List.fromArray([0, 3, 6, 9]), Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func mapInPlace(self : List, f : T -> T) {\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) db[j] := ?f(x);\n case null return\n };\n j += 1\n };\n i += 1\n }\n };\n\n /// Creates a new list by applying `f` to each element in `list` and its index.\n /// Retains original ordering of elements.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([10, 10, 10, 10]);\n /// let newList = List.mapEntries(list, func (x, i) = i * x);\n /// assert List.equal(newList, List.fromArray([0, 10, 20, 30]), Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func mapEntries(self : List, f : (T, Nat) -> R) : List {\n let blocks = VarArray.repeat<[var ?R]>([var], self.blocks.size());\n let blocksCount = self.blocks.size();\n\n var index = 0;\n\n var i = 1;\n label l while (i < blocksCount) {\n let oldBlock = self.blocks[i];\n let blockSize = oldBlock.size();\n let newBlock = VarArray.repeat(null, blockSize);\n blocks[i] := newBlock;\n var j = 0;\n\n while (j < blockSize) {\n switch (oldBlock[j]) {\n case (?item) newBlock[j] := ?f(item, index);\n case null break l\n };\n j += 1;\n index += 1\n };\n i += 1\n };\n\n {\n var blocks = blocks;\n var blockIndex = self.blockIndex;\n var elementIndex = self.elementIndex\n }\n };\n\n /// Creates a new list by applying `f` to each element in `list`.\n /// If any invocation of `f` produces an `#err`, returns an `#err`. Otherwise\n /// returns an `#ok` containing the new list.\n ///\n /// ```motoko include=import\n /// import Result \"mo:core/Result\";\n ///\n /// let list = List.fromArray([4, 3, 2, 1, 0]);\n /// // divide 100 by every element in the list\n /// let result = List.mapResult(list, func x {\n /// if (x > 0) {\n /// #ok(100 / x)\n /// } else {\n /// #err \"Cannot divide by zero\"\n /// }\n /// });\n /// assert Result.isErr(result);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func mapResult(self : List, f : T -> Types.Result) : Types.Result, E> {\n var error : ?E = null;\n\n let blocks = VarArray.repeat<[var ?R]>([var], self.blocks.size());\n let blocksCount = self.blocks.size();\n\n var i = 1;\n while (i < blocksCount) {\n let oldBlock = self.blocks[i];\n let blockSize = oldBlock.size();\n let newBlock = VarArray.repeat(null, blockSize);\n blocks[i] := newBlock;\n var j = 0;\n\n while (j < blockSize) {\n switch (oldBlock[j]) {\n case (?item) newBlock[j] := switch (f(item)) {\n case (#ok x) ?x;\n case (#err e) switch (error) {\n case (null) {\n error := ?e;\n null\n };\n case (?_) null\n }\n };\n case null return switch (error) {\n case (null) return #ok {\n var blocks = blocks;\n var blockIndex = self.blockIndex;\n var elementIndex = self.elementIndex\n };\n case (?e) return #err e\n }\n };\n j += 1\n };\n i += 1\n };\n\n switch (error) {\n case (null) return #ok {\n var blocks = blocks;\n var blockIndex = self.blockIndex;\n var elementIndex = self.elementIndex\n };\n case (?e) return #err e\n }\n };\n\n /// Returns a new list containing only the elements from `list` for which the predicate returns true.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3, 4]);\n /// let evenNumbers = List.filter(list, func x = x % 2 == 0);\n /// assert List.toArray(evenNumbers) == [2, 4];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `predicate` runs in `O(1)` time and space.\n public func filter(self : List, predicate : T -> Bool) : List {\n let filtered = empty();\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return filtered;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) if (predicate(x)) add(filtered, x);\n case null return filtered\n };\n j += 1\n };\n i += 1\n };\n\n filtered\n };\n\n /// Retains only the elements in `list` for which the predicate returns true.\n /// Modifies the original list in place.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3, 4]);\n /// List.retain(list, func x = x % 2 == 0);\n /// assert List.toArray(list) == [2, 4];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(sqrt(size))` if `list` was truncated otherwise `O(1)`\n public func retain(self : List, predicate : T -> Bool) {\n self.blockIndex := 1;\n self.elementIndex := 0;\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n label l while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) break l;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) if (predicate(x)) addUnsafe(self, x);\n case null break l\n };\n j += 1\n };\n i += 1\n };\n\n truncate(self, size(self))\n };\n\n /// Returns a new list containing all elements from `list` for which the function returns ?element.\n /// Discards all elements for which the function returns null.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3, 4]);\n /// let doubled = List.filterMap(list, func x = if (x % 2 == 0) ?(x * 2) else null);\n /// assert List.toArray(doubled) == [4, 8];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in `O(1)` time and space.\n public func filterMap(self : List, f : T -> ?R) : List {\n let filtered = empty();\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return filtered;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) switch (f(x)) {\n case (?y) add(filtered, y);\n case null {}\n };\n case null return filtered\n };\n j += 1\n };\n i += 1\n };\n\n filtered\n };\n\n /// Creates a new list by applying `k` to each element in `list`,\n /// and concatenating the resulting iterators in order.\n ///\n /// ```motoko include=import\n /// import Int \"mo:core/Int\"\n ///\n /// let list = List.fromArray([1, 2, 3, 4]);\n /// let newList = List.flatMap(list, func x = [x, -x].vals());\n /// assert List.equal(newList, List.fromArray([1, -1, 2, -2, 3, -3, 4, -4]), Int.equal);\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `k` runs in O(1) time and space.\n public func flatMap(self : List, k : T -> Types.Iter) : List {\n let result = empty();\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return result;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) for (y in k(x)) add(result, y);\n case _ return result\n };\n j += 1\n };\n i += 1\n };\n\n result\n };\n\n func indexByBlockElement(blockIndex : Nat, elementIndex : Nat) : Nat {\n let d = Nat32.fromNat(blockIndex);\n\n // We call all data blocks of the same capacity an \"epoch\". We number the epochs 0,1,2,...\n // A data block is in epoch e iff the data block has capacity 2 ** e.\n // Each epoch starting with epoch 1 spans exactly two super blocks.\n // Super block s falls in epoch ceil(s/2).\n\n // epoch of last data block\n // e = 32 - lz\n let lz = Nat32.bitcountLeadingZero(d / 3);\n\n // capacity of all prior epochs combined\n // capacity_before_e = 2 * 4 ** (e - 1) - 1\n\n // data blocks in all prior epochs combined\n // blocks_before_e = 3 * 2 ** (e - 1) - 2\n\n // then size = d * 2 ** e + i - c\n // where c = blocks_before_e * 2 ** e - capacity_before_e\n\n // there can be overflows, but the result is without overflows, so use addWrap and subWrap\n // we don't erase bits by >>, so to use <>> is ok\n Nat32.toNat((d -% (1 <>> lz)) <>> lz +% Nat32.fromNat(elementIndex))\n };\n\n /// Returns the current number of elements in the list.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// assert List.size(list) == 0\n /// ```\n ///\n /// Runtime: `O(1)` (with some internal calculations)\n public func size(self : List) : Nat {\n // due to the design of List (blockIndex, elementIndex) pair points\n // exactly to the place where size-th element should be added\n // so, it's the inlined version of indexByBlockElement\n let d = Nat32.fromNat(self.blockIndex);\n let lz = Nat32.bitcountLeadingZero(d / 3);\n Nat32.toNat((d -% (1 <>> lz)) <>> lz +% Nat32.fromNat(self.elementIndex))\n };\n\n func dataBlockSize(blockIndex : Nat) : Nat {\n // formula for the size of given blockIndex\n // don't call it for blockIndex == 0\n Nat32.toNat(1 <>> Nat32.bitcountLeadingZero(Nat32.fromNat(blockIndex) / 3))\n };\n\n func newIndexBlockLength(blockIndex : Nat32) : Nat {\n if (blockIndex <= 1) 2 else {\n let s = 30 - Nat32.bitcountLeadingZero(blockIndex);\n Nat32.toNat(((blockIndex >> s) +% 1) << s)\n }\n };\n\n func growIndexBlockIfNeeded(list : List) {\n if (list.blocks.size() == list.blockIndex) {\n let newBlocks = VarArray.repeat<[var ?T]>([var], newIndexBlockLength(Nat32.fromNat(list.blockIndex)));\n var i = 0;\n while (i < list.blockIndex) {\n newBlocks[i] := list.blocks[i];\n i += 1\n };\n list.blocks := newBlocks\n }\n };\n\n func shrinkIndexBlockIfNeeded(list : List) {\n let blockIndex = Nat32.fromNat(list.blockIndex);\n // kind of index of the first block in the super block\n if ((blockIndex << Nat32.bitcountLeadingZero(blockIndex)) << 2 == 0) {\n let newLength = newIndexBlockLength(blockIndex);\n if (newLength < list.blocks.size()) {\n let newBlocks = VarArray.repeat<[var ?T]>([var], newLength);\n var i = 0;\n while (i < newLength) {\n newBlocks[i] := list.blocks[i];\n i += 1\n };\n list.blocks := newBlocks\n }\n }\n };\n\n /// Adds a single element to the end of a List,\n /// allocating a new internal data block if needed,\n /// and resizing the internal index block if needed.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 0); // add 0 to list\n /// List.add(list, 1);\n /// List.add(list, 2);\n /// List.add(list, 3);\n /// assert List.toArray(list) == [0, 1, 2, 3];\n /// ```\n ///\n /// The maximum number of elements in a `List` is 2^32.\n ///\n /// Amortized Runtime: `O(1)`, Worst Case Runtime: `O(sqrt(n))`\n public func add(self : List, element : T) {\n var elementIndex = self.elementIndex;\n if (elementIndex == 0) {\n growIndexBlockIfNeeded(self);\n let blockIndex = self.blockIndex;\n\n // When removing last we keep one more data block, so can be not empty\n if (self.blocks[blockIndex].size() == 0) {\n self.blocks[blockIndex] := VarArray.repeat(\n null,\n dataBlockSize(blockIndex)\n )\n }\n };\n\n let lastDataBlock = self.blocks[self.blockIndex];\n\n lastDataBlock[elementIndex] := ?element;\n\n elementIndex += 1;\n if (elementIndex == lastDataBlock.size()) {\n elementIndex := 0;\n self.blockIndex += 1\n };\n self.elementIndex := elementIndex\n };\n\n // Add an element without checking and resizing the List\n private func addUnsafe(list : List, element : T) {\n var elementIndex = list.elementIndex;\n let lastDataBlock = list.blocks[list.blockIndex];\n lastDataBlock[elementIndex] := ?element;\n\n elementIndex += 1;\n if (elementIndex == lastDataBlock.size()) {\n elementIndex := 0;\n list.blockIndex += 1\n };\n list.elementIndex := elementIndex\n };\n\n /// Removes and returns the last item in the list or `null` if\n /// the list is empty.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// assert List.removeLast(list) == ?11;\n /// assert List.removeLast(list) == ?10;\n /// assert List.removeLast(list) == null;\n /// ```\n ///\n /// Amortized Runtime: `O(1)`, Worst Case Runtime: `O(sqrt(n))`\n ///\n /// Amortized Space: `O(1)`, Worst Case Space: `O(sqrt(n))`\n public func removeLast(self : List) : ?T {\n var elementIndex = self.elementIndex;\n if (elementIndex == 0) {\n var blockIndex = self.blockIndex;\n if (blockIndex == 1) {\n return null\n };\n\n shrinkIndexBlockIfNeeded(self);\n\n blockIndex -= 1;\n elementIndex := self.blocks[blockIndex].size();\n\n // Keep one totally empty block when removing\n if (blockIndex + 2 < self.blocks.size()) self.blocks[blockIndex + 2] := [var];\n\n self.blockIndex := blockIndex\n };\n elementIndex -= 1;\n\n let lastDataBlock = self.blocks[self.blockIndex];\n\n let element = lastDataBlock[elementIndex];\n lastDataBlock[elementIndex] := null;\n\n self.elementIndex := elementIndex;\n return element\n };\n\n func locate(index : Nat) : (Nat, Nat) {\n // see comments in tests\n let i = Nat32.fromNat(index);\n let lz = Nat32.bitcountLeadingZero(i);\n let lz2 = lz >> 1;\n if (lz & 1 == 0) {\n (Nat32.toNat(((i << lz2) >> 16) ^ (0x10000 >> lz2)), Nat32.toNat(i & (0xFFFF >> lz2)))\n } else {\n (Nat32.toNat(((i << lz2) >> 15) ^ (0x18000 >> lz2)), Nat32.toNat(i & (0x7FFF >> lz2)))\n }\n };\n\n /// Returns the element at index `index`. Indexing is zero-based.\n /// Traps if `index >= size`, error message may not be descriptive.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// assert List.at(list, 0) == 10;\n /// ```\n ///\n /// Runtime: `O(1)`\n public func at(self : List, index : Nat) : T {\n // inlined version of:\n // let (a,b) = locate(index);\n // switch(self.blocks[a][b]) {\n // case (?element) element;\n // case (null) Prim.trap \"\";\n // };\n let i = Nat32.fromNat(index);\n let lz = Nat32.bitcountLeadingZero(i);\n let lz2 = lz >> 1;\n switch (\n if (lz & 1 == 0) {\n self.blocks[Nat32.toNat(((i << lz2) >> 16) ^ (0x10000 >> lz2))][Nat32.toNat(i & (0xFFFF >> lz2))]\n } else {\n self.blocks[Nat32.toNat(((i << lz2) >> 15) ^ (0x18000 >> lz2))][Nat32.toNat(i & (0x7FFF >> lz2))]\n }\n ) {\n case (?result) return result;\n case (_) Prim.trap \"List index out of bounds in get\"\n }\n };\n\n /// Returns the element at index `index` as an option.\n /// Returns `null` when `index >= size`. Indexing is zero-based.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// assert List.get(list, 0) == ?10;\n /// assert List.get(list, 2) == null;\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n /// @deprecated M0235\n public func get(self : List, index : Nat) : ?T {\n // inlined version of locate\n let (a, b) = do {\n let i = Nat32.fromNat(index);\n let lz = Nat32.bitcountLeadingZero(i);\n let lz2 = lz >> 1;\n if (lz & 1 == 0) {\n (Nat32.toNat(((i << lz2) >> 16) ^ (0x10000 >> lz2)), Nat32.toNat(i & (0xFFFF >> lz2)))\n } else {\n (Nat32.toNat(((i << lz2) >> 15) ^ (0x18000 >> lz2)), Nat32.toNat(i & (0x7FFF >> lz2)))\n }\n };\n if (a < self.blockIndex or self.elementIndex != 0 and a == self.blockIndex) {\n self.blocks[a][b]\n } else null\n };\n\n /// Overwrites the current element at `index` with `element`.\n /// Traps if `index` >= size, error message may not be descriptive. Indexing is zero-based.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.put(list, 0, 20); // overwrites 10 at index 0 with 20\n /// assert List.toArray(list) == [20];\n /// ```\n ///\n /// Runtime: `O(1)`\n public func put(self : List, index : Nat, value : T) {\n let i = Nat32.fromNat(index);\n let lz = Nat32.bitcountLeadingZero(i);\n let lz2 = lz >> 1;\n let (block, element) = if (lz & 1 == 0) {\n (self.blocks[Nat32.toNat(((i << lz2) >> 16) ^ (0x10000 >> lz2))], Nat32.toNat(i & (0xFFFF >> lz2)))\n } else {\n (self.blocks[Nat32.toNat(((i << lz2) >> 15) ^ (0x18000 >> lz2))], Nat32.toNat(i & (0x7FFF >> lz2)))\n };\n\n switch (block[element]) {\n case (?_) block[element] := ?value;\n case _ Prim.trap \"List index out of bounds in put\"\n }\n };\n\n /// Sorts the elements in the list according to `compare`.\n /// Sort is deterministic, stable, and in-place.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.empty();\n /// List.add(list, 3);\n /// List.add(list, 1);\n /// List.add(list, 2);\n /// List.sortInPlace(list, Nat.compare);\n /// assert List.toArray(list) == [1, 2, 3];\n /// ```\n ///\n /// Runtime: O(size * log(size))\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func sortInPlace(self : List, compare : (implicit : (T, T) -> Types.Order)) {\n if (size(self) < 2) return;\n let array = toVarArray(self);\n\n VarArray.sortInPlace(array, compare);\n\n var index = 0;\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?_) db[j] := ?array[index];\n case _ return\n };\n index += 1;\n j += 1\n };\n i += 1\n }\n };\n\n /// Sorts the elements in the list according to `compare`.\n /// Sort is deterministic, stable, and in-place.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.empty();\n /// List.add(list, 3);\n /// List.add(list, 1);\n /// List.add(list, 2);\n /// let sorted = List.sort(list, Nat.compare);\n /// assert List.toArray(sorted) == [1, 2, 3];\n /// ```\n ///\n /// Runtime: O(size * log(size))\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func sort(self : List, compare : (implicit : (T, T) -> Types.Order)) : List {\n let array = toVarArray(self);\n VarArray.sortInPlace(array, compare);\n fromVarArray(array)\n };\n\n /// Checks whether the `list` is sorted.\n ///\n /// Example:\n /// ```\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1, 2, 3]);\n /// assert List.isSorted(list, Nat.compare);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func isSorted(self : List, compare : (implicit : (T, T) -> Types.Order)) : Bool {\n var prev = switch (first(self)) {\n case (?x) x;\n case _ return true\n };\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 2;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return true;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) switch (compare(x, prev)) {\n case (#greater or #equal) prev := x;\n case (#less) return false\n };\n case null return true\n };\n j += 1\n };\n i += 1\n };\n\n true\n };\n\n /// Remove adjacent duplicates from the `list`, if the `list` is sorted all elements will be unique.\n ///\n /// Example:\n /// ```\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1, 1, 2, 2, 3]);\n /// List.deduplicate(list, Nat.equal);\n /// assert List.equal(list, List.fromArray([1, 2, 3]), Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func deduplicate(self : List, equal : (implicit : (T, T) -> Bool)) {\n var prev = switch (first(self)) {\n case (?x) x;\n case _ return\n };\n\n self.blockIndex := 1;\n self.elementIndex := 0;\n\n addUnsafe(self, prev);\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 2;\n label l while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return break l;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) {\n if (not equal(x, prev)) addUnsafe(self, x);\n prev := x\n };\n case null break l\n };\n j += 1\n };\n i += 1\n };\n\n truncate(self, size(self))\n };\n\n /// Finds the first index of `element` in `list` using equality of elements defined\n /// by `equal`. Returns `null` if `element` is not found.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.empty();\n /// List.add(list, 1);\n /// List.add(list, 2);\n /// List.add(list, 3);\n /// List.add(list, 4);\n ///\n /// assert List.indexOf(list, Nat.equal, 3) == ?2;\n /// assert List.indexOf(list, Nat.equal, 5) == null;\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// *Runtime and space assumes that `equal` runs in `O(1)` time and space.\n public func indexOf(self : List, equal : (implicit : (T, T) -> Bool), element : T) : ?Nat {\n if (isEmpty(self)) return null;\n nextIndexOf(self, equal, element, 0)\n };\n\n /// Returns the index of the next occurence of `element` in the `list` starting from the `from` index (inclusive).\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let list = List.fromArray(['c', 'o', 'f', 'f', 'e', 'e']);\n /// assert List.nextIndexOf(list, Char.equal, 'c', 0) == ?0;\n /// assert List.nextIndexOf(list, Char.equal, 'f', 0) == ?2;\n /// assert List.nextIndexOf(list, Char.equal, 'f', 2) == ?2;\n /// assert List.nextIndexOf(list, Char.equal, 'f', 3) == ?3;\n /// assert List.nextIndexOf(list, Char.equal, 'f', 4) == null;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `equal` runs in O(1) time and space.\n public func nextIndexOf(self : List, equal : (implicit : (T, T) -> Bool), element : T, fromInclusive : Nat) : ?Nat {\n if (fromInclusive >= size(self)) Prim.trap \"List index out of bounds in nextIndexOf\";\n\n let (blockIndex, elementIndex) = locate(fromInclusive);\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = blockIndex;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return null;\n\n var j = if (i == blockIndex) elementIndex else 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) if (equal(x, element)) return ?indexByBlockElement(i, j);\n case null return null\n };\n j += 1\n };\n i += 1\n };\n null\n };\n\n /// Finds the last index of `element` in `list` using equality of elements defined\n /// by `equal`. Returns `null` if `element` is not found.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1, 2, 3, 4, 2, 2]);\n ///\n /// assert List.lastIndexOf(list, Nat.equal, 2) == ?5;\n /// assert List.lastIndexOf(list, Nat.equal, 5) == null;\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// *Runtime and space assumes that `equal` runs in `O(1)` time and space.\n public func lastIndexOf(self : List, equal : (implicit : (T, T) -> Bool), element : T) : ?Nat = prevIndexOf(\n self,\n equal,\n element,\n size(self)\n );\n\n /// Returns the index of the previous occurence of `element` in the `list` starting from the `from` index (exclusive).\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let list = List.fromArray(['c', 'o', 'f', 'f', 'e', 'e']);\n /// assert List.prevIndexOf(list, Char.equal, 'c', List.size(list)) == ?0;\n /// assert List.prevIndexOf(list, Char.equal, 'e', List.size(list)) == ?5;\n /// assert List.prevIndexOf(list, Char.equal, 'e', 5) == ?4;\n /// assert List.prevIndexOf(list, Char.equal, 'e', 4) == null;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func prevIndexOf(self : List, equal : (implicit : (T, T) -> Bool), element : T, fromExclusive : Nat) : ?Nat {\n if (fromExclusive > size(self)) Prim.trap \"List index out of bounds in prevIndexOf\";\n\n let blocks = self.blocks;\n let (blockIndex, elementIndex) = locate(fromExclusive);\n\n var i = blockIndex;\n if (elementIndex == 0) i -= 1;\n\n while (i > 0) {\n let db = blocks[i];\n let sz = db.size();\n var j = if (i == blockIndex) elementIndex else sz;\n while (j > 0) {\n j -= 1;\n switch (db[j]) {\n case (?x) if (equal(x, element)) return ?indexByBlockElement(i, j);\n case null Prim.trap INTERNAL_ERROR\n }\n };\n i -= 1\n };\n\n null\n };\n\n /// Returns the first value in `list` for which `predicate` returns true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// ```motoko include=import\n /// let list = List.fromArray([1, 9, 4, 8]);\n /// let found = List.find(list, func(x) { x > 8 });\n /// assert found == ?9;\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func find(self : List, predicate : T -> Bool) : ?T {\n Option.map(findIndex(self, predicate), func(i) = at(self, i))\n };\n\n /// Finds the index of the first element in `list` for which `predicate` is true.\n /// Returns `null` if no such element is found.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 1);\n /// List.add(list, 2);\n /// List.add(list, 3);\n /// List.add(list, 4);\n ///\n /// assert List.findIndex(list, func(i) { i % 2 == 0 }) == ?1;\n /// assert List.findIndex(list, func(i) { i > 5 }) == null;\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// *Runtime and space assumes that `predicate` runs in `O(1)` time and space.\n public func findIndex(self : List, predicate : T -> Bool) : ?Nat {\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return null;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) if (predicate(x)) return ?indexByBlockElement(i, j);\n case null return null\n };\n j += 1\n };\n i += 1\n };\n null\n };\n\n /// Finds the index of the last element in `list` for which `predicate` is true.\n /// Returns `null` if no such element is found.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 1);\n /// List.add(list, 2);\n /// List.add(list, 3);\n /// List.add(list, 4);\n ///\n /// assert List.findLastIndex(list, func(i) { i % 2 == 0 }) == ?3;\n /// assert List.findLastIndex(list, func(i) { i > 5 }) == null;\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// *Runtime and space assumes that `predicate` runs in `O(1)` time and space.\n public func findLastIndex(self : List, predicate : T -> Bool) : ?Nat {\n let blocks = self.blocks;\n let blockIndex = self.blockIndex;\n let elementIndex = self.elementIndex;\n\n var i = blockIndex;\n if (elementIndex == 0) i -= 1;\n\n while (i > 0) {\n let db = blocks[i];\n let sz = db.size();\n var j = if (i == blockIndex) elementIndex else sz;\n while (j > 0) {\n j -= 1;\n switch (db[j]) {\n case (?x) if (predicate(x)) return ?indexByBlockElement(i, j);\n case null Prim.trap INTERNAL_ERROR\n }\n };\n i -= 1\n };\n\n null\n };\n\n /// Performs binary search on a sorted list to find the index of the `element`.\n /// Returns `#found(index)` if the element is found, or `#insertionIndex(index)` with the index\n /// where the element would be inserted according to the ordering if not found.\n ///\n /// If there are multiple equal elements, no guarantee is made about which index is returned.\n /// The list must be sorted in ascending order according to the `compare` function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1, 3, 5, 7, 9, 11]);\n /// assert List.binarySearch(list, Nat.compare, 5) == #found(2);\n /// assert List.binarySearch(list, Nat.compare, 6) == #insertionIndex(3);\n /// ```\n ///\n /// Runtime: `O(log(size))`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `compare` runs in `O(1)` time and space.\n public func binarySearch(self : List, compare : (implicit : (T, T) -> Types.Order), element : T) : {\n #found : Nat;\n #insertionIndex : Nat\n } {\n // We call all data blocks of the same capacity an \"epoch\". We number the epochs 0,1,2,...\n // A data block is in epoch e iff the data block has capacity 2 ** e.\n // Each epoch starting with epoch 1 spans exactly two super blocks.\n // Super block s falls in epoch ceil(s/2).\n // Each epoch except e=0 contains 3 * 2 ** (e - 1) data blocks\n\n let blocks = self.blocks;\n let b = self.blockIndex - (if (self.elementIndex == 0) 1 else 0) : Nat;\n\n // block index x such that blocks[x][0] <= element\n let lessOrEqual = do {\n // epoch of the last data block\n let epoch = 32 - Nat32.bitcountLeadingZero(Nat32.fromNat(b) / 3);\n // initially block index is the first in the epoch\n var lessOrEqual = Nat32.toNat((1 << epoch) / 2);\n\n // lessOrEqual * 3 is always the first data block in an epoch\n // while the first element of the first data block in an epoch is actually grater then element go to the previous epoch\n // as the last epoch is half of the array we each iteration of the search divides the interval in four\n while (lessOrEqual != 0 and compare(Option.unwrap(blocks[lessOrEqual * 3][0]), element) == #greater) {\n lessOrEqual /= 2\n };\n\n lessOrEqual * 3\n };\n\n // Linear search in e=0, there are just two elements\n if (lessOrEqual == 0) {\n let to = Nat.min(size(self), 2);\n for (i in Nat.range(0, to)) {\n let x = at(self, i);\n switch (compare(x, element)) {\n case (#less) {};\n case (#equal) return #found(i);\n case (#greater) return #insertionIndex(i)\n }\n };\n return #insertionIndex(to)\n };\n\n // binary search the blockIndex in [left, right)\n let blockIndex = do {\n // guarateed less or equal to element\n var left = lessOrEqual;\n // right is either outside of the array or greater than element\n var right = Nat.min(b + 1, lessOrEqual * 2);\n while (right - left : Nat > 1) {\n let mid = (left + right) / 2;\n switch (compare(Option.unwrap(blocks[mid][0]), element)) {\n case (#less) left := mid;\n case (#greater) right := mid;\n case (#equal) return #found(indexByBlockElement(mid, 0))\n }\n };\n left\n };\n\n // binary search the elementIndex\n let elementIndex = do {\n let block = blocks[blockIndex];\n var left = 0;\n var right = if (blockIndex == self.blockIndex) self.elementIndex else block.size();\n while (left != right) {\n let mid = (left + right) / 2;\n switch (compare(Option.unwrap(block[mid]), element)) {\n case (#less) left := mid + 1;\n case (#greater) right := mid;\n case (#equal) return #found(indexByBlockElement(blockIndex, mid))\n }\n };\n left\n };\n\n #insertionIndex(indexByBlockElement(blockIndex, elementIndex))\n };\n\n /// Returns true iff every element in `list` satisfies `predicate`.\n /// In particular, if `list` is empty the function returns `true`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 2);\n /// List.add(list, 3);\n /// List.add(list, 4);\n ///\n /// assert List.all(list, func x { x > 1 });\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func all(self : List, predicate : T -> Bool) : Bool {\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return true;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) if (not predicate(x)) return false;\n case null return true\n };\n j += 1\n };\n i += 1\n };\n true\n };\n\n /// Returns true iff some element in `list` satisfies `predicate`.\n /// In particular, if `list` is empty the function returns `false`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 2);\n /// List.add(list, 3);\n /// List.add(list, 4);\n ///\n /// assert List.any(list, func x { x > 3 });\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func any(self : List, predicate : T -> Bool) : Bool = findIndex(self, predicate) != null;\n\n /// Returns an Iterator (`Iter`) over the elements of a List.\n /// Iterator provides a single method `next()`, which returns\n /// elements in order, or `null` when out of elements to iterate over.\n ///\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// List.add(list, 12);\n ///\n /// var sum = 0;\n /// for (element in List.values(list)) {\n /// sum += element;\n /// };\n /// assert sum == 33;\n /// ```\n ///\n /// Note: This does not create a snapshot. If the returned iterator is not consumed at once,\n /// and instead the consumption of the iterator is interleaved with other operations on the\n /// List, then this may lead to unexpected results.\n ///\n /// Runtime: `O(1)`\n public func values(self : List) : Types.Iter = object {\n let blocks = self.blocks.size();\n var blockIndex = 0;\n var elementIndex = 0;\n var db : [var ?T] = self.blocks[blockIndex];\n var dbSize = db.size();\n\n public func next() : ?T {\n if (elementIndex == dbSize) {\n blockIndex += 1;\n if (blockIndex >= blocks) return null;\n db := self.blocks[blockIndex];\n dbSize := db.size();\n if (dbSize == 0) return null;\n elementIndex := 0\n };\n switch (db[elementIndex]) {\n case (?x) {\n elementIndex += 1;\n return ?x\n };\n case (_) return null\n }\n }\n };\n\n /// Returns an Iterator (`Iter`) over the items (index-value pairs) in the list.\n /// Each item is a tuple of `(index, value)`. The iterator provides a single method\n /// `next()` which returns elements in order, or `null` when out of elements.\n ///\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// List.add(list, 12);\n /// assert Iter.toArray(List.enumerate(list)) == [(0, 10), (1, 11), (2, 12)];\n /// ```\n ///\n /// Note: This does not create a snapshot. If the returned iterator is not consumed at once,\n /// and instead the consumption of the iterator is interleaved with other operations on the\n /// List, then this may lead to unexpected results.\n ///\n /// Runtime: `O(1)`\n ///\n /// Warning: Allocates memory on the heap to store ?(Nat, T).\n public func enumerate(self : List) : Types.Iter<(Nat, T)> = object {\n let blocks = self.blocks.size();\n var blockIndex = 0;\n var elementIndex = 0;\n var size = 0;\n var db : [var ?T] = [var];\n var i = 0;\n\n public func next() : ?(Nat, T) {\n if (elementIndex == size) {\n blockIndex += 1;\n if (blockIndex >= blocks) return null;\n db := self.blocks[blockIndex];\n size := db.size();\n if (size == 0) return null;\n elementIndex := 0\n };\n switch (db[elementIndex]) {\n case (?x) {\n let ret = ?(i, x);\n elementIndex += 1;\n i += 1;\n return ret\n };\n case (_) return null\n }\n }\n };\n\n /// Returns an Iterator (`Iter`) over the elements of the list in reverse order.\n /// The iterator provides a single method `next()` which returns elements from\n /// last to first, or `null` when out of elements.\n ///\n /// ```motoko include=import\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// List.add(list, 12);\n ///\n /// var sum = 0;\n /// for (element in List.reverseValues(list)) {\n /// sum += element;\n /// };\n /// assert sum == 33;\n /// ```\n ///\n /// Note: This does not create a snapshot. If the returned iterator is not consumed at once,\n /// and instead the consumption of the iterator is interleaved with other operations on the\n /// List, then this may lead to unexpected results.\n ///\n /// Runtime: `O(1)`\n public func reverseValues(self : List) : Types.Iter = object {\n var blockIndex = self.blockIndex;\n var elementIndex = self.elementIndex;\n var db : [var ?T] = if (blockIndex < self.blocks.size()) {\n self.blocks[blockIndex]\n } else { [var] };\n\n public func next() : ?T {\n if (elementIndex != 0) {\n elementIndex -= 1\n } else {\n blockIndex -= 1;\n if (blockIndex == 0) return null;\n db := self.blocks[blockIndex];\n elementIndex := db.size() - 1\n };\n\n db[elementIndex]\n }\n };\n\n /// Returns an Iterator (`Iter`) over the items in reverse order, i.e. pairs of index and value.\n /// Iterator provides a single method `next()`, which returns\n /// elements in reverse order, or `null` when out of elements to iterate over.\n ///\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let list = List.empty();\n /// List.add(list, 10);\n /// List.add(list, 11);\n /// List.add(list, 12);\n /// assert Iter.toArray(List.reverseEnumerate(list)) == [(2, 12), (1, 11), (0, 10)];\n /// ```\n ///\n /// Note: This does not create a snapshot. If the returned iterator is not consumed at once,\n /// and instead the consumption of the iterator is interleaved with other operations on the\n /// List, then this may lead to unexpected results.\n ///\n /// Runtime: `O(1)`\n ///\n /// Warning: Allocates memory on the heap to store ?(T, Nat).\n public func reverseEnumerate(self : List) : Types.Iter<(Nat, T)> = object {\n var i = size(self);\n var blockIndex = self.blockIndex;\n var elementIndex = self.elementIndex;\n var db : [var ?T] = if (blockIndex < self.blocks.size()) {\n self.blocks[blockIndex]\n } else { [var] };\n\n public func next() : ?(Nat, T) {\n if (elementIndex != 0) {\n elementIndex -= 1\n } else {\n blockIndex -= 1;\n if (blockIndex == 0) return null;\n db := self.blocks[blockIndex];\n elementIndex := db.size() - 1\n };\n switch (db[elementIndex]) {\n case (?x) {\n i -= 1;\n return ?(i, x)\n };\n case (_) Prim.trap INTERNAL_ERROR\n }\n }\n };\n\n /// Returns an Iterator (`Iter`) over the indices (keys) of the list.\n /// The iterator provides a single method `next()` which returns indices\n /// from 0 to size-1, or `null` when out of elements.\n ///\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let list = List.empty();\n /// List.add(list, \"A\");\n /// List.add(list, \"B\");\n /// List.add(list, \"C\");\n /// Iter.toArray(List.keys(list)) // [0, 1, 2]\n /// ```\n ///\n /// Note: This does not create a snapshot. If the returned iterator is not consumed at once,\n /// and instead the consumption of the iterator is interleaved with other operations on the\n /// List, then this may lead to unexpected results.\n ///\n /// Runtime: `O(1)`\n public func keys(self : List) : Types.Iter = Nat.range(0, size(self));\n\n /// Creates a new List containing all elements from the provided iterator.\n /// Elements are added in the order they are returned by the iterator.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let array = [1, 1, 1];\n /// let iter = array.vals();\n ///\n /// let list = List.fromIter(iter);\n /// assert Iter.toArray(List.values(list)) == [1, 1, 1];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func fromIter(iter : Types.Iter) : List {\n let list = empty();\n for (element in iter) add(list, element);\n list\n };\n\n /// Convert an iterator to a new mutable List.\n /// Elements are added in the order they are returned by the iterator.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let array = [1, 1, 1];\n /// let iter = array.vals();\n ///\n /// let list = iter.toList();\n /// assert Iter.toArray(List.values(list)) == [1, 1, 1];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func toList(self : Types.Iter) : List {\n fromIter(self)\n };\n\n /// Appends all elements from `added` to the end of `list`.\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2]);\n /// let added = List.fromArray([3, 4]);\n /// List.append(list, added);\n /// assert List.toArray(list) == [1, 2, 3, 4];\n /// ```\n ///\n /// Runtime: `O(size(added))`\n ///\n /// Space: `O(size(added))`\n public func append(self : List, added : List) {\n reserve(self, size(added));\n\n let blocks = added.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) addUnsafe(self, x);\n case null return\n };\n j += 1\n };\n i += 1\n }\n };\n\n /// Adds all elements from the provided iterator to the end of the list.\n /// Elements are added in the order they are returned by the iterator.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let array = [1, 1, 1];\n /// let iter = array.vals();\n /// let list = List.repeat(2, 1);\n ///\n /// List.addAll(list, iter);\n /// assert Iter.toArray(List.values(list)) == [2, 1, 1, 1];\n /// ```\n ///\n /// The maximum number of elements in a `List` is 2^32.\n ///\n /// Runtime: `O(size)`, where n is the size of iter.\n public func addAll(self : List, iter : Types.Iter) {\n for (element in iter) add(self, element)\n };\n\n /// Creates a new immutable array containing all elements from the list.\n /// Elements appear in the same order as in the list.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3]);\n ///\n /// assert List.toArray(list) == [1, 2, 3];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func toArray(self : List) : [T] {\n var blockIndex = 0;\n var elementIndex = 0;\n var sz = 0;\n var db : [var ?T] = [var];\n\n func generator(_ : Nat) : T {\n if (elementIndex == sz) {\n blockIndex += 1;\n db := self.blocks[blockIndex];\n sz := db.size();\n elementIndex := 0\n };\n switch (db[elementIndex]) {\n case (?x) {\n elementIndex += 1;\n return x\n };\n case (_) Prim.trap INTERNAL_ERROR\n }\n };\n\n Array.tabulate(size(self), generator)\n };\n\n /// Creates a List containing elements from an Array.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let array = [2, 3];\n /// let list = List.fromArray(array);\n /// assert Iter.toArray(List.values(list)) == [2, 3];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func fromArray(array : [T]) : List {\n let (blockIndex, elementIndex) = locate(array.size());\n\n let blocks = newIndexBlockLength(Nat32.fromNat(if (elementIndex == 0) { blockIndex - 1 } else blockIndex));\n let dataBlocks = VarArray.repeat<[var ?T]>([var], blocks);\n\n var i = 1;\n var pos = 0;\n\n while (i < blockIndex) {\n let len = dataBlockSize(i);\n dataBlocks[i] := VarArray.tabulate(len, func i = ?array[pos + i]);\n pos += len;\n i += 1\n };\n if (elementIndex != 0 and blockIndex < blocks) {\n dataBlocks[i] := VarArray.tabulate(\n dataBlockSize(i),\n func i = if (i < elementIndex) ?array[pos + i] else null\n )\n };\n\n {\n var blocks = dataBlocks;\n var blockIndex = blockIndex;\n var elementIndex = elementIndex\n }\n };\n\n /// Creates a new mutable array containing all elements from the list.\n /// Elements appear in the same order as in the list.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n ///\n /// let list = List.fromArray([1, 2, 3]);\n ///\n /// let varArray = List.toVarArray(list);\n /// assert Array.fromVarArray(varArray) == [1, 2, 3];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func toVarArray(self : List) : [var T] {\n let ?fs = first(self) else return [var];\n\n let array = VarArray.repeat(fs, size(self));\n\n var index = 0;\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return array;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) array[index] := x;\n case null return array\n };\n j += 1;\n index += 1\n };\n i += 1\n };\n array\n };\n\n /// Creates a new List containing all elements from the mutable array.\n /// Elements appear in the same order as in the array.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let array = [var 2, 3];\n /// let list = List.fromVarArray(array);\n /// assert Iter.toArray(List.values(list)) == [2, 3];\n /// ```\n ///\n /// Runtime: `O(size)`\n public func fromVarArray(array : [var T]) : List {\n let (blockIndex, elementIndex) = locate(array.size());\n\n let blocks = newIndexBlockLength(Nat32.fromNat(if (elementIndex == 0) { blockIndex - 1 } else blockIndex));\n let dataBlocks = VarArray.repeat<[var ?T]>([var], blocks);\n\n func makeBlock(array : [var T], p : Nat, len : Nat, fill : Nat) : [var ?T] {\n let block = VarArray.repeat(null, len);\n var j = 0;\n var pos = p;\n while (j < fill) {\n block[j] := ?array[pos];\n j += 1;\n pos += 1\n };\n block\n };\n\n var i = 1;\n var pos = 0;\n\n while (i < blockIndex) {\n let len = dataBlockSize(i);\n dataBlocks[i] := makeBlock(array, pos, len, len);\n pos += len;\n i += 1\n };\n if (elementIndex != 0) {\n dataBlocks[i] := makeBlock(array, pos, dataBlockSize(i), elementIndex)\n };\n\n {\n var blocks = dataBlocks;\n var blockIndex = blockIndex;\n var elementIndex = elementIndex\n }\n };\n\n /// Returns the first element of `list`, or `null` if the list is empty.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert List.first(List.fromArray([1, 2, 3])) == ?1;\n /// assert List.first(List.empty()) == null;\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n public func first(self : List) : ?T {\n if (self.blockIndex == 1) null else self.blocks[1][0]\n };\n\n /// Returns the last element of `list`, or `null` if the list is empty.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert List.last(List.fromArray([1, 2, 3])) == ?3;\n /// assert List.last(List.empty()) == null;\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n public func last(self : List) : ?T {\n let e = self.elementIndex;\n if (e > 0) return self.blocks[self.blockIndex][e - 1];\n\n let b = self.blockIndex - 1 : Nat;\n if (b == 0) null else {\n let block = self.blocks[b];\n block[block.size() - 1]\n }\n };\n\n /// Applies `f` to each element in `list`.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Debug \"mo:core/Debug\";\n ///\n /// let list = List.fromArray([1, 2, 3]);\n ///\n /// List.forEach(list, func(x) {\n /// Debug.print(Nat.toText(x)); // prints each element in list\n /// });\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func forEach(self : List, f : T -> ()) {\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) f(x);\n case null return\n };\n j += 1\n };\n i += 1\n }\n };\n\n /// Applies `f` to each item `(i, x)` in `list` where `i` is the key\n /// and `x` is the value.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Debug \"mo:core/Debug\";\n ///\n /// let list = List.fromArray([1, 2, 3]);\n ///\n /// List.forEachEntry(list, func (i,x) {\n /// // prints each item (i,x) in list\n /// Debug.print(Nat.toText(i) # Nat.toText(x));\n /// });\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func forEachEntry(self : List, f : (Nat, T) -> ()) {\n var index = 0;\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) f(index, x);\n case null return\n };\n j += 1;\n index += 1\n };\n i += 1\n }\n };\n\n func actualInterval(fromInclusive : Int, toExclusive : Int, size : Nat) : (Nat, Nat) {\n let startInt = if (fromInclusive < 0) {\n let s = size + fromInclusive;\n if (s < 0) { 0 } else { s }\n } else {\n if (fromInclusive > size) { size } else { fromInclusive }\n };\n let endInt = if (toExclusive < 0) {\n let e = size + toExclusive;\n if (e < 0) { 0 } else { e }\n } else {\n if (toExclusive > size) { size } else { toExclusive }\n };\n (Prim.abs(startInt), Prim.abs(endInt))\n };\n\n /// Returns an iterator over a slice of `list` starting at `fromInclusive` up to (but not including) `toExclusive`.\n ///\n /// Negative indices are relative to the end of the list. For example, `-1` corresponds to the last element in the list.\n ///\n /// If the indices are out of bounds, they are clamped to the list bounds.\n /// If the first index is greater than the second, the function returns an empty iterator.\n ///\n /// ```motoko include=import\n /// let list = List.fromArray([1, 2, 3, 4, 5]);\n /// let iter1 = List.range(list, 3, List.size(list));\n /// assert iter1.next() == ?4;\n /// assert iter1.next() == ?5;\n /// assert iter1.next() == null;\n ///\n /// let iter2 = List.range(list, 3, -1);\n /// assert iter2.next() == ?4;\n /// assert iter2.next() == null;\n ///\n /// let iter3 = List.range(list, 0, 0);\n /// assert iter3.next() == null;\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func range(self : List, fromInclusive : Int, toExclusive : Int) : Types.Iter = object {\n let (start, end) = actualInterval(fromInclusive, toExclusive, size(self));\n let blocks = self.blocks.size();\n var blockIndex = 0;\n var elementIndex = 0;\n if (start != 0) {\n let (block, element) = locate(start - 1);\n blockIndex := block;\n elementIndex := element + 1\n };\n var db : [var ?T] = self.blocks[blockIndex];\n var dbSize = db.size();\n var index = fromInclusive;\n\n public func next() : ?T {\n if (index >= end) return null;\n index += 1;\n\n if (elementIndex == dbSize) {\n blockIndex += 1;\n if (blockIndex >= blocks) return null;\n db := self.blocks[blockIndex];\n dbSize := db.size();\n if (dbSize == 0) return null;\n elementIndex := 0\n };\n let ret = db[elementIndex];\n elementIndex += 1;\n ret\n }\n };\n\n func sliceToArrayBase(self : List, start : Nat) : {\n next(i : Nat) : T\n } = object {\n var blockIndex = 0;\n var elementIndex = 0;\n if (start != 0) {\n let (block, element) = locate(start - 1);\n blockIndex := block;\n elementIndex := element + 1\n };\n var db : [var ?T] = self.blocks[blockIndex];\n var dbSize = db.size();\n\n public func next(i : Nat) : T {\n if (elementIndex == dbSize) {\n blockIndex += 1;\n db := self.blocks[blockIndex];\n dbSize := db.size();\n elementIndex := 0\n };\n switch (db[elementIndex]) {\n case (?x) {\n elementIndex += 1;\n return x\n };\n case null Prim.trap INTERNAL_ERROR\n }\n }\n };\n\n /// Returns a new array containing elements from `list` starting at index `fromInclusive` up to (but not including) index `toExclusive`.\n /// If the indices are out of bounds, they are clamped to the array bounds.\n ///\n /// ```motoko include=import\n /// let array = List.fromArray([1, 2, 3, 4, 5]);\n ///\n /// let slice1 = List.sliceToArray(array, 1, 4);\n /// assert slice1 == [2, 3, 4];\n ///\n /// let slice2 = List.sliceToArray(array, 1, -1);\n /// assert slice2 == [2, 3, 4];\n /// ```\n ///\n /// Runtime: O(toExclusive - fromInclusive)\n ///\n /// Space: O(toExclusive - fromInclusive)\n public func sliceToArray(self : List, fromInclusive : Int, toExclusive : Int) : [T] {\n let (start, end) = actualInterval(fromInclusive, toExclusive, size(self));\n Array.tabulate(end - start, sliceToArrayBase(self, start).next)\n };\n\n /// Returns a new var array containing elements from `list` starting at index `fromInclusive` up to (but not including) index `toExclusive`.\n /// If the indices are out of bounds, they are clamped to the array bounds.\n ///\n /// ```motoko include=import\n /// import VarArray \"mo:core/VarArray\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = List.fromArray([1, 2, 3, 4, 5]);\n ///\n /// let slice1 = List.sliceToVarArray(array, 1, 4);\n /// assert VarArray.equal(slice1, [var 2, 3, 4], Nat.equal);\n ///\n /// let slice2 = List.sliceToVarArray(array, 1, -1);\n /// assert VarArray.equal(slice2, [var 2, 3, 4], Nat.equal);\n /// ```\n ///\n /// Runtime: O(toExclusive - fromInclusive)\n ///\n /// Space: O(toExclusive - fromInclusive)\n public func sliceToVarArray(self : List, fromInclusive : Int, toExclusive : Int) : [var T] {\n let (start, end) = actualInterval(fromInclusive, toExclusive, size(self));\n VarArray.tabulate(end - start, sliceToArrayBase(self, start).next)\n };\n\n /// Like `forEachEntryRev` but iterates through the list in reverse order,\n /// from end to beginning.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Debug \"mo:core/Debug\";\n ///\n /// let list = List.fromArray([1, 2, 3]);\n ///\n /// List.reverseForEachEntry(list, func (i,x) {\n /// // prints each item (i,x) in list\n /// Debug.print(Nat.toText(i) # Nat.toText(x));\n /// });\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func reverseForEachEntry(self : List, f : (Nat, T) -> ()) {\n var index = 0;\n\n let blocks = self.blocks;\n let blockIndex = self.blockIndex;\n let elementIndex = self.elementIndex;\n\n var i = blockIndex;\n if (elementIndex == 0) i -= 1;\n\n while (i > 0) {\n let db = blocks[i];\n let sz = db.size();\n var j = if (i == blockIndex) elementIndex else sz;\n while (j > 0) {\n j -= 1;\n switch (db[j]) {\n case (?x) f(index, x);\n case null Prim.trap INTERNAL_ERROR\n };\n index += 1\n };\n i -= 1\n }\n };\n\n /// Applies `f` to each element in `list` in reverse order.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Debug \"mo:core/Debug\";\n ///\n /// let list = List.fromArray([1, 2, 3]);\n ///\n /// List.reverseForEach(list, func (x) {\n /// Debug.print(Nat.toText(x)); // prints each element in list in reverse order\n /// });\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func reverseForEach(self : List, f : T -> ()) {\n let blocks = self.blocks;\n let blockIndex = self.blockIndex;\n let elementIndex = self.elementIndex;\n\n var i = blockIndex;\n if (elementIndex == 0) i -= 1;\n\n while (i > 0) {\n let db = blocks[i];\n let sz = db.size();\n var j = if (i == blockIndex) elementIndex else sz;\n while (j > 0) {\n j -= 1;\n switch (db[j]) {\n case (?x) f(x);\n case null Prim.trap INTERNAL_ERROR\n }\n };\n i -= 1\n }\n };\n\n /// Executes the closure over a slice of `list` starting at `fromInclusive` up to (but not including) `toExclusive`.\n ///\n /// ```motoko include=import\n /// import Debug \"mo:core/Debug\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1, 2, 3, 4, 5]);\n /// List.forEachInRange(list, func x = Debug.print(Nat.toText(x)), 1, 2); // prints 2 and 3\n /// ```\n ///\n /// Runtime: `O(toExclusive - fromExclusive)`\n ///\n /// Space: `O(1)`\n public func forEachInRange(self : List, f : T -> (), fromInclusive : Nat, toExclusive : Nat) {\n if (not (fromInclusive <= toExclusive and toExclusive <= size(self))) Prim.trap(\"Invalid range\");\n\n func traverseBlock(block : [var ?T], f : T -> (), from : Nat, to : Nat) {\n var i = from;\n while (i < to) {\n switch (block[i]) {\n case (?value) f(value);\n case null Prim.trap(INTERNAL_ERROR)\n };\n i += 1\n }\n };\n\n let (fromBlock, fromElement) = locate(fromInclusive);\n let (toBlock, toElement) = locate(toExclusive);\n\n let blocks = self.blocks;\n let sz = blocks.size();\n\n if (fromBlock == toBlock) {\n if (fromBlock < sz) traverseBlock(blocks[fromBlock], f, fromElement, toElement);\n return\n };\n\n traverseBlock(blocks[fromBlock], f, fromElement, blocks[fromBlock].size());\n\n var i = fromBlock + 1;\n let to = Nat.min(toBlock, sz);\n while (i < to) {\n traverseBlock(blocks[i], f, 0, blocks[i].size());\n i += 1\n };\n\n if (toBlock < sz) traverseBlock(blocks[toBlock], f, 0, toElement)\n };\n\n /// Returns true if the list contains the specified element according to the provided\n /// equality function. Uses the provided `equal` function to compare elements.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.empty();\n /// List.add(list, 2);\n /// List.add(list, 0);\n /// List.add(list, 3);\n ///\n /// assert List.contains(list, Nat.equal, 2);\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `equal` runs in O(1) time and space.\n public func contains(self : List, equal : (implicit : (T, T) -> Bool), element : T) : Bool {\n Option.isSome(indexOf(self, equal, element))\n };\n\n /// Returns the greatest element in the list according to the ordering defined by `compare`.\n /// Returns `null` if the list is empty.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.empty();\n /// List.add(list, 1);\n /// List.add(list, 2);\n ///\n /// assert List.max(list, Nat.compare) == ?2;\n /// assert List.max(List.empty(), Nat.compare) == null;\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func max(self : List, compare : (implicit : (T, T) -> Types.Order)) : ?T {\n var maxSoFar : T = switch (first(self)) {\n case (?x) x;\n case null return null\n };\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 2;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return ?maxSoFar;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) switch (compare(x, maxSoFar)) {\n case (#greater) maxSoFar := x;\n case _ {}\n };\n case null return ?maxSoFar\n };\n j += 1\n };\n i += 1\n };\n\n ?maxSoFar\n };\n\n /// Returns the least element in the list according to the ordering defined by `compare`.\n /// Returns `null` if the list is empty.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.empty();\n /// List.add(list, 1);\n /// List.add(list, 2);\n ///\n /// assert List.min(list, Nat.compare) == ?1;\n /// assert List.min(List.empty(), Nat.compare) == null;\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func min(self : List, compare : (implicit : (T, T) -> Types.Order)) : ?T {\n var minSoFar : T = switch (first(self)) {\n case (?x) x;\n case null return null\n };\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 2;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return ?minSoFar;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) switch (compare(x, minSoFar)) {\n case (#less) minSoFar := x;\n case _ {}\n };\n case null return ?minSoFar\n };\n j += 1\n };\n i += 1\n };\n\n ?minSoFar\n };\n\n /// Tests if two lists are equal by comparing their elements using the provided `equal` function.\n /// Returns true if and only if both lists have the same size and all corresponding elements\n /// are equal according to the provided function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list1 = List.fromArray([1,2]);\n /// let list2 = List.empty();\n /// List.add(list2, 1);\n /// List.add(list2, 2);\n ///\n /// assert List.equal(list1, list2, Nat.equal);\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `equal` runs in O(1) time and space.\n public func equal(self : List, other : List, equal : (implicit : (T, T) -> Bool)) : Bool {\n if (size(self) != size(other)) return false;\n\n let blocks1 = self.blocks;\n let blocks2 = other.blocks;\n let blockCount = Nat.min(blocks1.size(), blocks2.size());\n\n var i = 1;\n while (i < blockCount) {\n let db1 = blocks1[i];\n let db2 = blocks2[i];\n let sz = Nat.min(db1.size(), db2.size());\n if (sz == 0) return true;\n\n var j = 0;\n while (j < sz) {\n switch (db1[j], db2[j]) {\n case (?x, ?y) if (not equal(x, y)) return false;\n case (_, _) return true\n };\n j += 1\n };\n i += 1\n };\n return true\n };\n\n /// Compares two lists lexicographically using the provided `compare` function.\n /// Elements are compared pairwise until a difference is found or one list ends.\n /// If all elements compare equal, the shorter list is considered less than the longer list.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list1 = List.fromArray([0, 1]);\n /// let list2 = List.fromArray([2]);\n /// let list3 = List.fromArray([0, 1, 2]);\n ///\n /// assert List.compare(list1, list2, Nat.compare) == #less;\n /// assert List.compare(list1, list3, Nat.compare) == #less;\n /// assert List.compare(list2, list3, Nat.compare) == #greater;\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func compare(self : List, other : List, compare : (implicit : (T, T) -> Types.Order)) : Types.Order {\n let blocks1 = self.blocks;\n let blocks2 = other.blocks;\n let blockCount = Nat.min(blocks1.size(), blocks2.size());\n\n var i = 1;\n label l while (i < blockCount) {\n let db1 = blocks1[i];\n let db2 = blocks2[i];\n let sz = Nat.min(db1.size(), db2.size());\n if (sz == 0) break l;\n\n var j = 0;\n while (j < sz) {\n switch (db1[j], db2[j]) {\n case (?x, ?y) switch (compare(x, y)) {\n case (#less) return #less;\n case (#greater) return #greater;\n case _ {}\n };\n case (_, _) break l\n };\n j += 1\n };\n i += 1\n };\n return Nat.compare(size(self), size(other))\n };\n\n /// Creates a textual representation of `list`, using `toText` to recursively\n /// convert the elements into Text.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1,2,3,4]);\n ///\n /// assert List.toText(list, Nat.toText) == \"List[1, 2, 3, 4]\";\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `toText` runs in O(1) time and space.\n public func toText(self : List, toText : (implicit : T -> Text)) : Text {\n var text = switch (first(self)) {\n case (?x) toText(x);\n case null \"\"\n };\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 2;\n label l while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) break l;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) text #= \", \" # toText(x);\n case null break l\n };\n j += 1\n };\n i += 1\n };\n\n \"List[\" # text # \"]\"\n };\n\n /// Collapses the elements in `list` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// left to right.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1,2,3]);\n ///\n /// assert List.foldLeft(list, \"\", func (acc, x) { acc # Nat.toText(x)}) == \"123\";\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `combine` runs in O(1)` time and space.\n public func foldLeft(self : List, base : A, combine : (A, T) -> A) : A {\n var accumulation = base;\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return accumulation;\n\n var j = 0;\n while (j < sz) {\n switch (db[j]) {\n case (?x) accumulation := combine(accumulation, x);\n case null return accumulation\n };\n j += 1\n };\n i += 1\n };\n accumulation\n };\n\n /// Collapses the elements in `list` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// right to left.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let list = List.fromArray([1,2,3]);\n ///\n /// assert List.foldRight(list, \"\", func (x, acc) { Nat.toText(x) # acc }) == \"123\";\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n ///\n /// *Runtime and space assumes that `combine` runs in O(1)` time and space.\n public func foldRight(self : List, base : A, combine : (T, A) -> A) : A {\n var accumulation = base;\n\n let blocks = self.blocks;\n let blockIndex = self.blockIndex;\n let elementIndex = self.elementIndex;\n\n var i = blockIndex;\n if (elementIndex == 0) i -= 1;\n\n while (i > 0) {\n let db = blocks[i];\n let sz = db.size();\n var j = if (i == blockIndex) elementIndex else sz;\n while (j > 0) {\n j -= 1;\n switch (db[j]) {\n case (?x) accumulation := combine(x, accumulation);\n case null Prim.trap INTERNAL_ERROR\n }\n };\n i -= 1\n };\n\n accumulation\n };\n\n /// Reverses the order of elements in `list` by overwriting in place.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let list = List.fromArray([1,2,3]);\n ///\n /// List.reverseInPlace(list);\n /// assert Iter.toArray(List.values(list)) == [3, 2, 1];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n public func reverseInPlace(self : List) {\n let vsize = size(self);\n if (vsize <= 1) return;\n\n let (finalBlock, finalElement) = locate(vsize / 2);\n\n let blocks = self.blocks;\n\n var blockIndexBack = self.blockIndex;\n var elementIndexBack = self.elementIndex;\n var dbBack : [var ?T] = if (blockIndexBack < self.blocks.size()) {\n self.blocks[blockIndexBack]\n } else { [var] };\n\n var i = 1;\n var index = 0;\n while (i <= finalBlock) {\n let db = blocks[i];\n let sz = if (i == finalBlock) finalElement else db.size();\n\n var j = 0;\n while (j < sz) {\n if (elementIndexBack == 0) {\n blockIndexBack -= 1;\n dbBack := self.blocks[blockIndexBack];\n elementIndexBack := dbBack.size() - 1\n } else {\n elementIndexBack -= 1\n };\n\n let temp = db[j];\n db[j] := dbBack[elementIndexBack];\n dbBack[elementIndexBack] := temp;\n\n j += 1;\n index += 1\n };\n i += 1\n }\n };\n\n /// Returns a new List with the elements from `list` in reverse order.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let list = List.fromArray([1,2,3]);\n ///\n /// let rlist = List.reverse(list);\n /// assert Iter.toArray(List.values(rlist)) == [3, 2, 1];\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n public func reverse(self : List) : List {\n let rlist = repeatInternal(null, size(self));\n\n let blocks = self.blocks;\n let blockCount = blocks.size();\n\n var blockIndexBack = rlist.blockIndex;\n var elementIndexBack = rlist.elementIndex;\n var dbBack : [var ?T] = if (blockIndexBack < rlist.blocks.size()) {\n rlist.blocks[blockIndexBack]\n } else { [var] };\n\n var i = 1;\n while (i < blockCount) {\n let db = blocks[i];\n let sz = db.size();\n if (sz == 0) return rlist;\n\n var j = 0;\n while (j < sz) {\n if (elementIndexBack == 0) {\n blockIndexBack -= 1;\n if (blockIndexBack == 0) return rlist;\n dbBack := rlist.blocks[blockIndexBack];\n elementIndexBack := dbBack.size() - 1\n } else {\n elementIndexBack -= 1\n };\n\n dbBack[elementIndexBack] := db[j];\n j += 1\n };\n i += 1\n };\n rlist\n };\n\n /// Returns true if and only if the list is empty.\n ///\n /// Example:\n /// ```motoko include=import\n /// let list = List.fromArray([2,0,3]);\n /// assert not List.isEmpty(list);\n /// assert List.isEmpty(List.empty());\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n public func isEmpty(self : List) : Bool {\n self.blockIndex == 1\n };\n\n /// Unsafe iterator starting from `start`.\n ///\n /// Example:\n /// ```\n /// let list = List.fromArray([1, 2, 3, 4, 5]);\n /// let reader = List.reader(list, 2);\n /// assert reader() == 3;\n /// assert reader() == 4;\n /// assert reader() == 5;\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n public func reader(self : List, start : Nat) : () -> T {\n var blockIndex = 0;\n var elementIndex = 0;\n if (start != 0) {\n let (block, element) = locate(start - 1);\n blockIndex := block;\n elementIndex := element + 1\n };\n var db : [var ?T] = self.blocks[blockIndex];\n var dbSize = db.size();\n func next() : T {\n // Note: next() traps when reading beyond end of list\n if (elementIndex == dbSize) {\n blockIndex += 1;\n db := self.blocks[blockIndex];\n dbSize := db.size();\n elementIndex := 0\n };\n switch (db[elementIndex]) {\n case (?ret) {\n elementIndex += 1;\n return ret\n };\n case (_) Prim.trap(\"List.reader(): out of bounds\")\n }\n };\n next\n };\n\n}\n"},"Array.mo":{"content":"/// Provides extended utility functions on immutable Arrays (values of type `[T]`).\n///\n/// Note the difference between mutable (`[var T]`) and immutable (`[T]`) arrays.\n/// Mutable arrays allow their elements to be modified after creation, while\n/// immutable arrays are fixed once created.\n///\n/// WARNING: If you are looking for a list that can grow and shrink in size,\n/// it is recommended you use `List` for those purposes.\n/// Arrays must be created with a fixed size.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Array \"mo:core/Array\";\n/// ```\n\nimport Order \"Order\";\nimport VarArray \"VarArray\";\nimport Option \"Option\";\nimport Types \"Types\";\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// Creates an empty array (equivalent to `[]`).\n ///\n /// ```motoko include=import\n /// let array = Array.empty();\n /// assert array == [];\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func empty() : [T] = [];\n\n /// Creates an array containing `item` repeated `size` times.\n ///\n /// ```motoko include=import\n /// let array = Array.repeat(\"Echo\", 3);\n /// assert array == [\"Echo\", \"Echo\", \"Echo\"];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func repeat(item : T, size : Nat) : [T] = Prim.Array_tabulate(size, func _ = item);\n\n /// Creates an immutable array of size `size`. Each element at index i\n /// is created by applying `generator` to i.\n ///\n /// ```motoko include=import\n /// let array : [Nat] = Array.tabulate(4, func i = i * 2);\n /// assert array == [0, 2, 4, 6];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `generator` runs in O(1) time and space.\n public let tabulate : (size : Nat, generator : Nat -> T) -> [T] = Prim.Array_tabulate;\n\n /// Transforms a mutable array into an immutable array.\n ///\n /// ```motoko include=import\n /// let varArray = [var 0, 1, 2];\n /// varArray[2] := 3;\n /// let array = Array.fromVarArray(varArray);\n /// assert array == [0, 1, 3];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n /// @deprecated M0235\n public func fromVarArray(varArray : [var T]) : [T] = Prim.Array_tabulate(varArray.size(), func i = varArray[i]);\n\n /// Transforms an immutable array into a mutable array.\n ///\n /// ```motoko include=import\n /// import VarArray \"mo:core/VarArray\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [0, 1, 2];\n /// let varArray = Array.toVarArray(array);\n /// varArray[2] := 3;\n /// assert VarArray.equal(varArray, [var 0, 1, 3], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func toVarArray(self : [T]) : [var T] {\n let size = self.size();\n if (size == 0) {\n return [var]\n };\n let newArray = Prim.Array_init(size, self[0]);\n var i = 0;\n while (i < size) {\n newArray[i] := self[i];\n i += 1\n };\n newArray\n };\n\n /// Tests if two arrays contain equal values (i.e. they represent the same\n /// list of elements). Uses `equal` to compare elements in the arrays.\n ///\n /// ```motoko include=import\n /// // Use the equal function from the Nat module to compare Nats\n /// import {equal} \"mo:core/Nat\";\n ///\n /// let array1 = [0, 1, 2, 3];\n /// let array2 = [0, 1, 2, 3];\n /// assert Array.equal(array1, array2, equal);\n /// ```\n ///\n /// Runtime: O(size1 + size2)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `equal` runs in O(1) time and space.\n public func equal(self : [T], other : [T], equal : (implicit : (T, T) -> Bool)) : Bool {\n let size1 = self.size();\n let size2 = other.size();\n if (size1 != size2) {\n return false\n };\n var i = 0;\n while (i < size1) {\n if (not equal(self[i], other[i])) {\n return false\n };\n i += 1\n };\n true\n };\n\n /// Returns the first value in `array` for which `predicate` returns true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// ```motoko include=import\n /// let array = [1, 9, 4, 8];\n /// let found = Array.find(array, func x = x > 8);\n /// assert found == ?9;\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func find(self : [T], predicate : T -> Bool) : ?T {\n for (element in self.vals()) {\n if (predicate(element)) {\n return ?element\n }\n };\n null\n };\n\n /// Returns the first index in `array` for which `predicate` returns true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// ```motoko include=import\n /// let array = ['A', 'B', 'C', 'D'];\n /// let found = Array.findIndex(array, func(x) { x == 'C' });\n /// assert found == ?2;\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func findIndex(self : [T], predicate : T -> Bool) : ?Nat {\n for ((index, element) in enumerate(self)) {\n if (predicate(element)) {\n return ?index\n }\n };\n null\n };\n\n /// Create a new array by concatenating the values of `array1` and `array2`.\n /// Note that `Array.concat` copies its arguments and has linear complexity.\n ///\n /// ```motoko include=import\n /// let array1 = [1, 2, 3];\n /// let array2 = [4, 5, 6];\n /// let result = Array.concat(array1, array2);\n /// assert result == [1, 2, 3, 4, 5, 6];\n /// ```\n /// Runtime: O(size1 + size2)\n ///\n /// Space: O(size1 + size2)\n public func concat(self : [T], other : [T]) : [T] {\n let size1 = self.size();\n let size2 = other.size();\n Prim.Array_tabulate(\n size1 + size2,\n func i {\n if (i < size1) {\n self[i]\n } else {\n other[i - size1]\n }\n }\n )\n };\n\n /// Sorts the elements in the array according to `compare`.\n /// Sort is deterministic and stable.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [4, 2, 6];\n /// let sorted = Array.sort(array, Nat.compare);\n /// assert sorted == [2, 4, 6];\n /// ```\n /// Runtime: O(size * log(size))\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func sort(self : [T], compare : (implicit : (T, T) -> Order.Order)) : [T] {\n let varArray : [var T] = toVarArray(self);\n VarArray.sortInPlace(varArray, compare);\n fromVarArray(varArray)\n };\n\n /// Creates a new array by reversing the order of elements in `array`.\n ///\n /// ```motoko include=import\n /// let array = [10, 11, 12];\n /// let reversed = Array.reverse(array);\n /// assert reversed == [12, 11, 10];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func reverse(self : [T]) : [T] {\n let size = self.size();\n Prim.Array_tabulate(size, func i = self[size - i - 1])\n };\n\n /// Calls `f` with each element in `array`.\n /// Retains original ordering of elements.\n ///\n /// ```motoko include=import\n /// var sum = 0;\n /// let array = [0, 1, 2, 3];\n /// Array.forEach(array, func(x) {\n /// sum += x;\n /// });\n /// assert sum == 6;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func forEach(self : [T], f : T -> ()) {\n for (item in self.vals()) {\n f(item)\n }\n };\n\n /// Creates a new array by applying `f` to each element in `array`. `f` \"maps\"\n /// each element it is applied to of type `X` to an element of type `Y`.\n /// Retains original ordering of elements.\n ///\n /// ```motoko include=import\n /// let array1 = [0, 1, 2, 3];\n /// let array2 = Array.map(array1, func x = x * 2);\n /// assert array2 == [0, 2, 4, 6];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func map(self : [T], f : T -> R) : [R] = Prim.Array_tabulate(self.size(), func i = f(self[i]));\n\n /// Creates a new array by applying `predicate` to every element\n /// in `array`, retaining the elements for which `predicate` returns true.\n ///\n /// ```motoko include=import\n /// let array = [4, 2, 6, 1, 5];\n /// let evenElements = Array.filter(array, func x = x % 2 == 0);\n /// assert evenElements == [4, 2, 6];\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func filter(self : [T], f : T -> Bool) : [T] {\n var count = 0;\n let keep = Prim.Array_tabulate(\n self.size(),\n func i {\n if (f(self[i])) {\n count += 1;\n true\n } else {\n false\n }\n }\n );\n var nextKeep = 0;\n Prim.Array_tabulate(\n count,\n func _ {\n while (not keep[nextKeep]) {\n nextKeep += 1\n };\n nextKeep += 1;\n self[nextKeep - 1]\n }\n )\n };\n\n /// Creates a new array by applying `f` to each element in `array`,\n /// and keeping all non-null elements. The ordering is retained.\n ///\n /// ```motoko include=import\n /// import {toText} \"mo:core/Nat\";\n ///\n /// let array = [4, 2, 0, 1];\n /// let newArray =\n /// Array.filterMap( // mapping from Nat to Text values\n /// array,\n /// func x = if (x == 0) { null } else { ?toText(100 / x) } // can't divide by 0, so return null\n /// );\n /// assert newArray == [\"25\", \"50\", \"100\"];\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func filterMap(self : [T], f : T -> ?R) : [R] {\n var count = 0;\n let options = Prim.Array_tabulate(\n self.size(),\n func i {\n let result = f(self[i]);\n switch (result) {\n case (?element) {\n count += 1;\n result\n };\n case null {\n null\n }\n }\n }\n );\n\n var nextSome = 0;\n Prim.Array_tabulate(\n count,\n func _ {\n while (Option.isNull(options[nextSome])) {\n nextSome += 1\n };\n nextSome += 1;\n switch (options[nextSome - 1]) {\n case (?element) element;\n case null {\n Prim.trap \"Array.filterMap(): malformed array\"\n }\n }\n }\n )\n };\n\n /// Creates a new array by applying `f` to each element in `array`.\n /// If any invocation of `f` produces an `#err`, returns an `#err`. Otherwise\n /// returns an `#ok` containing the new array.\n ///\n /// ```motoko include=import\n /// let array = [4, 3, 2, 1, 0];\n /// // divide 100 by every element in the array\n /// let result = Array.mapResult(array, func x {\n /// if (x > 0) {\n /// #ok(100 / x)\n /// } else {\n /// #err \"Cannot divide by zero\"\n /// }\n /// });\n /// assert result == #err \"Cannot divide by zero\";\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n /// @deprecated M0235\n public func mapResult(self : [T], f : T -> Types.Result) : Types.Result<[R], E> {\n let size = self.size();\n\n var error : ?Types.Result<[R], E> = null;\n let results = Prim.Array_tabulate(\n size,\n func i {\n switch (f(self[i])) {\n case (#ok element) {\n ?element\n };\n case (#err e) {\n switch (error) {\n case null {\n // only take the first error\n error := ?(#err e)\n };\n case _ {}\n };\n null\n }\n }\n }\n );\n\n switch error {\n case null {\n // unpack the option\n #ok(\n map(\n results,\n func element {\n switch element {\n case (?element) {\n element\n };\n case null {\n Prim.trap \"Array.mapResult(): malformed array\"\n }\n }\n }\n )\n )\n };\n case (?error) {\n error\n }\n }\n };\n\n /// Creates a new array by applying `f` to each element in `array` and its index.\n /// Retains original ordering of elements.\n ///\n /// ```motoko include=import\n /// let array = [10, 10, 10, 10];\n /// let newArray = Array.mapEntries(array, func (x, i) = i * x);\n /// assert newArray == [0, 10, 20, 30];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func mapEntries(self : [T], f : (T, Nat) -> R) : [R] = Prim.Array_tabulate(self.size(), func i = f(self[i], i));\n\n /// Creates a new array by applying `k` to each element in `array`,\n /// and concatenating the resulting arrays in order.\n ///\n /// ```motoko include=import\n /// let array = [1, 2, 3, 4];\n /// let newArray = Array.flatMap(array, func x = [x, -x].values());\n /// assert newArray == [1, -1, 2, -2, 3, -3, 4, -4];\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `k` runs in O(1) time and space.\n public func flatMap(self : [T], k : T -> Types.Iter) : [R] {\n var flatSize = 0;\n let arrays = Prim.Array_tabulate<[R]>(\n self.size(),\n func i {\n let subArray = fromIter(k(self[i]));\n flatSize += subArray.size();\n subArray\n }\n );\n\n // could replace with a call to flatten,\n // but it would require an extra pass (to compute `flatSize`)\n var outer = 0;\n var inner = 0;\n Prim.Array_tabulate(\n flatSize,\n func _ {\n while (inner == arrays[outer].size()) {\n inner := 0;\n outer += 1\n };\n let element = arrays[outer][inner];\n inner += 1;\n element\n }\n )\n };\n\n /// Collapses the elements in `array` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// left to right.\n ///\n /// ```motoko include=import\n /// import {add} \"mo:core/Nat\";\n ///\n /// let array = [4, 2, 0, 1];\n /// let sum =\n /// Array.foldLeft(\n /// array,\n /// 0, // start the sum at 0\n /// func(sumSoFar, x) = sumSoFar + x // this entire function can be replaced with `add`!\n /// );\n /// assert sum == 7;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `combine` runs in O(1) time and space.\n public func foldLeft(self : [T], base : A, combine : (A, T) -> A) : A {\n var acc = base;\n for (element in self.values()) {\n acc := combine(acc, element)\n };\n acc\n };\n\n /// Collapses the elements in `array` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// right to left.\n ///\n /// ```motoko include=import\n /// import {toText} \"mo:core/Nat\";\n ///\n /// let array = [1, 9, 4, 8];\n /// let bookTitle = Array.foldRight(array, \"\", func(x, acc) = toText(x) # acc);\n /// assert bookTitle == \"1948\";\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `combine` runs in O(1) time and space.\n public func foldRight(self : [T], base : A, combine : (T, A) -> A) : A {\n var acc = base;\n let size = self.size();\n var i = size;\n while (i > 0) {\n i -= 1;\n acc := combine(self[i], acc)\n };\n acc\n };\n\n /// Combines an iterator of arrays into a single array. Retains the original\n /// ordering of the elements.\n ///\n /// Consider using `Array.flatten()` for better performance.\n ///\n /// ```motoko include=import\n /// let arrays = [[0, 1, 2], [2, 3], [], [4]];\n /// let joinedArray = Array.join(arrays.values());\n /// assert joinedArray == [0, 1, 2, 2, 3, 4];\n /// ```\n ///\n /// Runtime: O(number of elements in array)\n ///\n /// Space: O(number of elements in array)\n public func join(self : Types.Iter<[T]>) : [T] {\n flatten(fromIter(self))\n };\n\n /// Combines an array of arrays into a single array. Retains the original\n /// ordering of the elements.\n ///\n /// This has better performance compared to `Array.join()`.\n ///\n /// ```motoko include=import\n /// let arrays = [[0, 1, 2], [2, 3], [], [4]];\n /// let flatArray = Array.flatten(arrays);\n /// assert flatArray == [0, 1, 2, 2, 3, 4];\n /// ```\n ///\n /// Runtime: O(number of elements in array)\n ///\n /// Space: O(number of elements in array)\n public func flatten(self : [[T]]) : [T] {\n var flatSize = 0;\n for (subArray in self.vals()) {\n flatSize += subArray.size()\n };\n\n var outer = 0;\n var inner = 0;\n Prim.Array_tabulate(\n flatSize,\n func _ {\n while (inner == self[outer].size()) {\n inner := 0;\n outer += 1\n };\n let element = self[outer][inner];\n inner += 1;\n element\n }\n )\n };\n\n /// Create an array containing a single value.\n ///\n /// ```motoko include=import\n /// let array = Array.singleton(2);\n /// assert array == [2];\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func singleton(element : T) : [T] = [element];\n\n /// Returns the size of an array. Equivalent to `array.size()`.\n public func size(self : [T]) : Nat = self.size();\n\n /// Returns whether an array is empty, i.e. contains zero elements.\n public func isEmpty(self : [T]) : Bool = self.size() == 0;\n\n /// Converts an iterator to an array.\n /// @deprecated M0235\n public func fromIter(iter : Types.Iter) : [T] {\n var list : Types.Pure.List = null;\n var size = 0;\n label l loop {\n switch (iter.next()) {\n case (?element) {\n list := ?(element, list);\n size += 1\n };\n case null { break l }\n }\n };\n if (size == 0) { return [] };\n let array = Prim.Array_init(\n size,\n switch list {\n case (?(h, _)) h;\n case null {\n Prim.trap(\"Array.fromIter(): unreachable\")\n }\n }\n );\n var i = size : Nat;\n while (i > 0) {\n i -= 1;\n switch list {\n case (?(h, t)) {\n array[i] := h;\n list := t\n };\n case null {\n Prim.trap(\"Array.fromIter(): unreachable\")\n }\n }\n };\n Prim.Array_tabulate(size, func i = array[i])\n };\n\n /// Returns an iterator (`Iter`) over the indices of `array`.\n /// An iterator provides a single method `next()`, which returns\n /// indices in order, or `null` when out of index to iterate over.\n ///\n /// Note: You can also use `array.keys()` instead of this function. See example\n /// below.\n ///\n /// ```motoko include=import\n /// let array = [10, 11, 12];\n ///\n /// var sum = 0;\n /// for (element in array.keys()) {\n /// sum += element;\n /// };\n /// assert sum == 3; // 0 + 1 + 2\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func keys(self : [T]) : Types.Iter = self.keys();\n\n /// Iterator provides a single method `next()`, which returns\n /// elements in order, or `null` when out of elements to iterate over.\n ///\n /// Note: You can also use `array.values()` instead of this function. See example\n /// below.\n ///\n /// ```motoko include=import\n /// let array = [10, 11, 12];\n ///\n /// var sum = 0;\n /// for (element in array.values()) {\n /// sum += element;\n /// };\n /// assert sum == 33;\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func values(self : [T]) : Types.Iter = self.values();\n\n /// Iterator provides a single method `next()`, which returns\n /// pairs of (index, element) in order, or `null` when out of elements to iterate over.\n ///\n /// ```motoko include=import\n /// let array = [10, 11, 12];\n ///\n /// var sum = 0;\n /// for ((index, element) in Array.enumerate(array)) {\n /// sum += element;\n /// };\n /// assert sum == 33;\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func enumerate(self : [T]) : Types.Iter<(Nat, T)> = object {\n let size = self.size();\n var index = 0;\n public func next() : ?(Nat, T) {\n if (index >= size) {\n return null\n };\n let i = index;\n index += 1;\n ?(i, self[i])\n }\n };\n\n /// Returns true if all elements in `array` satisfy the predicate function.\n ///\n /// ```motoko include=import\n /// let array = [1, 2, 3, 4];\n /// assert Array.all(array, func x = x > 0);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func all(self : [T], predicate : T -> Bool) : Bool {\n for (element in self.values()) {\n if (not predicate(element)) {\n return false\n }\n };\n true\n };\n\n /// Returns true if any element in `array` satisfies the predicate function.\n ///\n /// ```motoko include=import\n /// let array = [1, 2, 3, 4];\n /// assert Array.any(array, func x = x > 3);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func any(self : [T], predicate : T -> Bool) : Bool {\n for (element in self.values()) {\n if (predicate(element)) {\n return true\n }\n };\n false\n };\n\n /// Returns the index of the first `element` in the `array`.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let array = ['c', 'o', 'f', 'f', 'e', 'e'];\n /// assert Array.indexOf(array, Char.equal, 'c') == ?0;\n /// assert Array.indexOf(array, Char.equal, 'f') == ?2;\n /// assert Array.indexOf(array, Char.equal, 'g') == null;\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func indexOf(self : [T], equal : (implicit : (T, T) -> Bool), element : T) : ?Nat = nextIndexOf(self, equal, element, 0);\n\n /// Returns the index of the next occurence of `element` in the `array` starting from the `from` index (inclusive).\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let array = ['c', 'o', 'f', 'f', 'e', 'e'];\n /// assert Array.nextIndexOf(array, Char.equal, 'c', 0) == ?0;\n /// assert Array.nextIndexOf(array, Char.equal, 'f', 0) == ?2;\n /// assert Array.nextIndexOf(array, Char.equal, 'f', 2) == ?2;\n /// assert Array.nextIndexOf(array, Char.equal, 'f', 3) == ?3;\n /// assert Array.nextIndexOf(array, Char.equal, 'f', 4) == null;\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func nextIndexOf(self : [T], equal : (implicit : (T, T) -> Bool), element : T, fromInclusive : Nat) : ?Nat {\n var index = fromInclusive;\n let size = self.size();\n while (index < size) {\n if (equal(self[index], element)) {\n return ?index\n } else {\n index += 1\n }\n };\n null\n };\n\n /// Returns the index of the last `element` in the `array`.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let array = ['c', 'o', 'f', 'f', 'e', 'e'];\n /// assert Array.lastIndexOf(array, Char.equal, 'c') == ?0;\n /// assert Array.lastIndexOf(array, Char.equal, 'f') == ?3;\n /// assert Array.lastIndexOf(array, Char.equal, 'e') == ?5;\n /// assert Array.lastIndexOf(array, Char.equal, 'g') == null;\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func lastIndexOf(self : [T], equal : (implicit : (T, T) -> Bool), element : T) : ?Nat = prevIndexOf(self, equal, element, self.size());\n\n /// Returns the index of the previous occurence of `element` in the `array` starting from the `from` index (exclusive).\n ///\n /// Negative indices are relative to the end of the array. For example, `-1` corresponds to the last element in the array.\n ///\n /// If the indices are out of bounds, they are clamped to the array bounds.\n /// If the first index is greater than the second, the function returns an empty iterator.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let array = ['c', 'o', 'f', 'f', 'e', 'e'];\n /// assert Array.prevIndexOf(array, Char.equal, 'c', array.size()) == ?0;\n /// assert Array.prevIndexOf(array, Char.equal, 'e', array.size()) == ?5;\n /// assert Array.prevIndexOf(array, Char.equal, 'e', 5) == ?4;\n /// assert Array.prevIndexOf(array, Char.equal, 'e', 4) == null;\n /// ```\n ///\n /// Runtime: O(array.size());\n /// Space: O(1);\n public func prevIndexOf(self : [T], equal : (implicit : (T, T) -> Bool), element : T, fromExclusive : Nat) : ?Nat {\n var i = fromExclusive;\n while (i > 0) {\n i -= 1;\n if (equal(self[i], element)) {\n return ?i\n }\n };\n null\n };\n\n /// Returns true if the `array` contains `element` using the provided `equal` function.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let array = ['c', 'o', 'f', 'f', 'e', 'e'];\n /// assert Array.contains(array, Char.equal, 'f');\n /// assert not Array.contains(array, Char.equal, 'g');\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func contains(self : [T], equal : (implicit : (T, T) -> Bool), element : T) : Bool {\n for (item in self.vals()) {\n if (equal(item, element)) {\n return true\n }\n };\n false\n };\n\n /// Returns an iterator over a slice of `array` starting at `fromInclusive` up to (but not including) `toExclusive`.\n ///\n /// Negative indices are relative to the end of the array. For example, `-1` corresponds to the last element in the array.\n ///\n /// If the indices are out of bounds, they are clamped to the array bounds.\n /// If the first index is greater than the second, the function returns an empty iterator.\n ///\n /// ```motoko include=import\n /// let array = [1, 2, 3, 4, 5];\n /// let iter1 = Array.range(array, 3, array.size());\n /// assert iter1.next() == ?4;\n /// assert iter1.next() == ?5;\n /// assert iter1.next() == null;\n ///\n /// let iter2 = Array.range(array, 3, -1);\n /// assert iter2.next() == ?4;\n /// assert iter2.next() == null;\n ///\n /// let iter3 = Array.range(array, 0, 0);\n /// assert iter3.next() == null;\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func range(self : [T], fromInclusive : Int, toExclusive : Int) : Types.Iter {\n let size = self.size();\n // Convert negative indices to positive and handle bounds\n let startInt = if (fromInclusive < 0) {\n let s = size + fromInclusive;\n if (s < 0) { 0 } else { s }\n } else {\n if (fromInclusive > size) { size } else { fromInclusive }\n };\n let endInt = if (toExclusive < 0) {\n let e = size + toExclusive;\n if (e < 0) { 0 } else { e }\n } else {\n if (toExclusive > size) { size } else { toExclusive }\n };\n // Convert to Nat (always non-negative due to bounds checking above)\n let start = Prim.abs(startInt);\n let end = Prim.abs(endInt);\n object {\n var pos = start;\n public func next() : ?T {\n if (pos >= end) {\n null\n } else {\n let elem = self[pos];\n pos += 1;\n ?elem\n }\n }\n }\n };\n\n /// Returns a new array containing elements from `array` starting at index `fromInclusive` up to (but not including) index `toExclusive`.\n /// If the indices are out of bounds, they are clamped to the array bounds.\n ///\n /// ```motoko include=import\n /// let array = [1, 2, 3, 4, 5];\n ///\n /// let slice1 = Array.sliceToArray(array, 1, 4);\n /// assert slice1 == [2, 3, 4];\n ///\n /// let slice2 = Array.sliceToArray(array, 1, -1);\n /// assert slice2 == [2, 3, 4];\n /// ```\n ///\n /// Runtime: O(toExclusive - fromInclusive)\n ///\n /// Space: O(toExclusive - fromInclusive)\n public func sliceToArray(self : [T], fromInclusive : Int, toExclusive : Int) : [T] {\n let size = self.size();\n // Convert negative indices to positive and handle bounds\n let startInt = if (fromInclusive < 0) {\n let s = size + fromInclusive;\n if (s < 0) { 0 } else { s }\n } else {\n if (fromInclusive > size) { size } else { fromInclusive }\n };\n let endInt = if (toExclusive < 0) {\n let e = size + toExclusive;\n if (e < 0) { 0 } else { e }\n } else {\n if (toExclusive > size) { size } else { toExclusive }\n };\n // Convert to Nat (always non-negative due to bounds checking above)\n let start = Prim.abs(startInt);\n let end = Prim.abs(endInt);\n if (start >= end) {\n return []\n };\n Prim.Array_tabulate(end - start, func i = self[start + i])\n };\n\n /// Returns a new mutable array containing elements from `array` starting at index `fromInclusive` up to (but not including) index `toExclusive`.\n /// If the indices are out of bounds, they are clamped to the array bounds.\n ///\n /// ```motoko include=import\n /// import VarArray \"mo:core/VarArray\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [1, 2, 3, 4, 5];\n ///\n /// let slice1 = Array.sliceToVarArray(array, 1, 4);\n /// assert VarArray.equal(slice1, [var 2, 3, 4], Nat.equal);\n ///\n /// let slice2 = Array.sliceToVarArray(array, 1, -1);\n /// assert VarArray.equal(slice2, [var 2, 3, 4], Nat.equal);\n /// ```\n ///\n /// Runtime: O(toExclusive - fromInclusive)\n ///\n /// Space: O(toExclusive - fromInclusive)\n public func sliceToVarArray(self : [T], fromInclusive : Int, toExclusive : Int) : [var T] {\n let size = self.size();\n // Convert negative indices to positive and handle bounds\n let startInt = if (fromInclusive < 0) {\n let s = size + fromInclusive;\n if (s < 0) { 0 } else { s }\n } else {\n if (fromInclusive > size) { size } else { fromInclusive }\n };\n let endInt = if (toExclusive < 0) {\n let e = size + toExclusive;\n if (e < 0) { 0 } else { e }\n } else {\n if (toExclusive > size) { size } else { toExclusive }\n };\n // Convert to Nat (always non-negative due to bounds checking above)\n let start = Prim.abs(startInt);\n let end = Prim.abs(endInt);\n if (start >= end) {\n return [var]\n };\n Prim.Array_tabulateVar(end - start, func i = self[start + i])\n };\n\n /// Converts the array to its textual representation using `f` to convert each element to `Text`.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [1, 2, 3];\n /// let text = Array.toText(array, Nat.toText);\n /// assert text == \"[1, 2, 3]\";\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func toText(self : [T], f : (implicit : (toText : T -> Text))) : Text {\n let size = self.size();\n if (size == 0) { return \"[]\" };\n var text = \"[\";\n var i = 0;\n while (i < size) {\n if (i != 0) {\n text #= \", \"\n };\n text #= f(self[i]);\n i += 1\n };\n text #= \"]\";\n text\n };\n\n /// Compares two arrays using the provided comparison function for elements.\n /// Returns #less, #equal, or #greater if `array1` is less than, equal to,\n /// or greater than `array2` respectively.\n ///\n /// If arrays have different sizes but all elements up to the shorter length are equal,\n /// the shorter array is considered #less than the longer array.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array1 = [1, 2, 3];\n /// let array2 = [1, 2, 4];\n /// assert Array.compare(array1, array2, Nat.compare) == #less;\n /// ```\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array3 = [1, 2];\n /// let array4 = [1, 2, 3];\n /// assert Array.compare(array3, array4, Nat.compare) == #less;\n /// ```\n ///\n /// Runtime: O(min(size1, size2))\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func compare(self : [T], other : [T], compare : (implicit : (T, T) -> Order.Order)) : Order.Order {\n let size1 = self.size();\n let size2 = other.size();\n var i = 0;\n let minSize = if (size1 < size2) { size1 } else { size2 };\n while (i < minSize) {\n switch (compare(self[i], other[i])) {\n case (#less) { return #less };\n case (#greater) { return #greater };\n case (#equal) { i += 1 }\n }\n };\n if (size1 < size2) { #less } else if (size1 > size2) { #greater } else {\n #equal\n }\n };\n\n /// Performs binary search on a sorted array to find the index of the `element`.\n ///\n /// Returns `#found(index)` if the element is found, or `#insertionIndex(index)` with the index\n /// where the element would be inserted according to the ordering if not found.\n ///\n /// If there are multiple equal elements, no guarantee is made about which index is returned.\n /// The array must be sorted in ascending order according to the `compare` function.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let sorted = [1, 3, 5, 7, 9, 11];\n /// assert Array.binarySearch(sorted, Nat.compare, 5) == #found(2);\n /// assert Array.binarySearch(sorted, Nat.compare, 6) == #insertionIndex(3);\n /// ```\n ///\n /// Runtime: O(log(size))\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func binarySearch(self : [T], compare : (implicit : (T, T) -> Order.Order), element : T) : {\n #found : Nat;\n #insertionIndex : Nat\n } {\n var left = 0;\n var right = self.size();\n while (left < right) {\n let mid = (left + right) / 2;\n switch (compare(self[mid], element)) {\n case (#less) left := mid + 1;\n case (#greater) right := mid;\n case (#equal) return #found mid\n }\n };\n #insertionIndex left\n };\n\n /// Checks whether the `array` is sorted according to the `compare` function.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [1, 2, 3];\n /// assert Array.isSorted(array, Nat.compare);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func isSorted(self : [T], compare : (implicit : (T, T) -> Order.Order)) : Bool {\n let size = self.size();\n if (size <= 1) return true;\n var i = 1;\n while (i < size) {\n switch (compare(self[i - 1], self[i])) {\n case (#greater) return false;\n case _ { i += 1 }\n }\n };\n true\n }\n}\n"},"Map.mo":{"content":"/// An imperative key-value map based on order/comparison of the keys.\n/// The map data structure type is stable and can be used for orthogonal persistence.\n///\n/// Example:\n/// ```motoko\n/// import Map \"mo:core/Map\";\n/// import Nat \"mo:core/Nat\";\n///\n/// persistent actor {\n/// // creation\n/// let map = Map.empty();\n/// // insertion\n/// Map.add(map, Nat.compare, 0, \"Zero\");\n/// // retrieval\n/// assert Map.get(map, Nat.compare, 0) == ?\"Zero\";\n/// assert Map.get(map, Nat.compare, 1) == null;\n/// // removal\n/// Map.remove(map, Nat.compare, 0);\n/// assert Map.isEmpty(map);\n/// }\n/// ```\n///\n/// The internal implementation is a B-tree with order 32.\n///\n/// Performance:\n/// * Runtime: `O(log(n))` worst case cost per insertion, removal, and retrieval operation.\n/// * Space: `O(n)` for storing the entire map.\n/// `n` denotes the number of key-value entries stored in the map.\n\n// Data structure implementation is courtesy of Byron Becker.\n// Source: https://github.com/canscale/StableHeapBTreeMap\n// Copyright (c) 2022 Byron Becker.\n// Distributed under Apache 2.0 license.\n// With adjustments by the Motoko team.\n\nimport PureMap \"pure/Map\";\nimport Types \"Types\";\nimport Iter \"Iter\";\nimport Order \"Order\";\nimport VarArray \"VarArray\";\nimport Runtime \"Runtime\";\nimport Stack \"Stack\";\nimport Option \"Option\";\nimport BTreeHelper \"internal/BTreeHelper\";\n\nmodule {\n let btreeOrder = 32; // Should be >= 4 and <= 512.\n\n public type Map = Types.Map;\n\n type Node = Types.Map.Node;\n type Data = Types.Map.Data;\n type Internal = Types.Map.Internal;\n type Leaf = Types.Map.Leaf;\n\n /// Convert the mutable key-value map to an immutable key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import PureMap \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(), Nat.compare);\n /// let pureMap = Map.toPure(map, Nat.compare);\n /// assert Iter.toArray(PureMap.entries(pureMap)) == Iter.toArray(Map.entries(map))\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n /// @deprecated M0235\n public func toPure(self : Map, compare : (implicit : (K, K) -> Order.Order)) : PureMap.Map {\n PureMap.fromIter(entries(self), compare)\n };\n\n /// Convert an immutable key-value map to a mutable key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import PureMap \"mo:core/pure/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let pureMap = PureMap.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(), Nat.compare);\n /// let map = Map.fromPure(pureMap, Nat.compare);\n /// assert Iter.toArray(Map.entries(map)) == Iter.toArray(PureMap.entries(pureMap))\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func fromPure(map : PureMap.Map, compare : (implicit : (K, K) -> Order.Order)) : Map {\n fromIter(PureMap.entries(map), compare)\n };\n\n /// Create a copy of the mutable key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let originalMap = Map.fromIter(\n /// [(1, \"One\"), (2, \"Two\"), (3, \"Three\")].values(), Nat.compare);\n /// let clonedMap = Map.clone(originalMap);\n /// Map.add(originalMap, Nat.compare, 4, \"Four\");\n /// assert Map.size(clonedMap) == 3;\n /// assert Map.size(originalMap) == 4;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func clone(self : Map) : Map {\n {\n var root = cloneNode(self.root);\n var size = self.size\n }\n };\n\n /// Create a new empty mutable key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n ///\n /// persistent actor {\n /// let map = Map.empty();\n /// assert Map.size(map) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func empty() : Map {\n {\n var root = #leaf({\n data = {\n kvs = VarArray.repeat(null, btreeOrder - 1);\n var count = 0\n }\n });\n var size = 0\n }\n };\n\n /// Create a new mutable key-value map with a single entry.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.singleton(0, \"Zero\");\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func singleton(key : K, value : V) : Map {\n let kvs = VarArray.repeat(null, btreeOrder - 1);\n kvs[0] := ?(key, value);\n {\n var root = #leaf { data = { kvs; var count = 1 } };\n var size = 1\n }\n };\n\n /// Delete all the entries in the key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(),\n /// Nat.compare);\n ///\n /// assert Map.size(map) == 3;\n ///\n /// Map.clear(map);\n /// assert Map.size(map) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func clear(self : Map) {\n let emptyMap = empty();\n self.root := emptyMap.root;\n self.size := 0\n };\n\n /// Determines whether a key-value map is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(),\n /// Nat.compare);\n ///\n /// assert not Map.isEmpty(map);\n /// Map.clear(map);\n /// assert Map.isEmpty(map);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func isEmpty(self : Map) : Bool {\n self.size == 0\n };\n\n /// Return the number of entries in a key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(),\n /// Nat.compare);\n ///\n /// assert Map.size(map) == 3;\n /// Map.clear(map);\n /// assert Map.size(map) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func size(self : Map) : Nat {\n self.size\n };\n\n /// Test whether two imperative maps have equal entries.\n /// Both maps have to be constructed by the same comparison function.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// persistent actor {\n /// let map1 = Map.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(),\n /// Nat.compare);\n /// let map2 = Map.clone(map1);\n ///\n /// assert Map.equal(map1, map2, Nat.compare, Text.equal);\n /// Map.clear(map2);\n /// assert not Map.equal(map1, map2, Nat.compare, Text.equal);\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n public func equal(self : Map, other : Map, compare : (implicit : (K, K) -> Types.Order), equal : (implicit : (V, V) -> Bool)) : Bool {\n if (size(self) != size(other)) {\n return false\n };\n let iterator1 = entries(self);\n let iterator2 = entries(other);\n loop {\n let next1 = iterator1.next();\n let next2 = iterator2.next();\n switch (next1, next2) {\n case (null, null) {\n return true\n };\n case (?(key1, value1), ?(key2, value2)) {\n if (\n not (compare(key1, key2) == #equal) or\n not equal(value1, value2)\n ) {\n return false\n }\n };\n case _ { return false }\n }\n }\n };\n\n /// Tests whether the map contains the provided key.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(),\n /// Nat.compare);\n ///\n /// assert Map.containsKey(map, Nat.compare, 1);\n /// assert not Map.containsKey(map, Nat.compare, 3);\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func containsKey(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : Bool {\n Option.isSome(get(self, compare, key))\n };\n\n /// Get the value associated with key in the given map if present and `null` otherwise.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")].values(),\n /// Nat.compare);\n ///\n /// assert Map.get(map, Nat.compare, 1) == ?\"One\";\n /// assert Map.get(map, Nat.compare, 3) == null;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func get(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : ?V {\n switch (self.root) {\n case (#internal(internalNode)) {\n getFromInternal(internalNode, compare, key)\n };\n case (#leaf(leafNode)) { getFromLeaf(leafNode, compare, key) }\n }\n };\n\n /// Given `map` ordered by `compare`, insert a new mapping from `key` to `value`.\n /// Replaces any existing entry under `key`.\n /// Returns true if the key is new to the map, otherwise false.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.empty();\n /// assert Map.insert(map, Nat.compare, 0, \"Zero\");\n /// assert Map.insert(map, Nat.compare, 1, \"One\");\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\")];\n /// assert not Map.insert(map, Nat.compare, 0, \"Nil\");\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Nil\"), (1, \"One\")]\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func insert(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) : Bool {\n switch (swap(self, compare, key, value)) {\n case null true;\n case _ false\n }\n };\n\n /// Given `map` ordered by `compare`, add a mapping from `key` to `value` to `map`.\n /// Replaces any existing entry for `key`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.empty();\n ///\n /// Map.add(map, Nat.compare, 0, \"Zero\");\n /// Map.add(map, Nat.compare, 1, \"One\");\n /// Map.add(map, Nat.compare, 0, \"Nil\");\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Nil\"), (1, \"One\")]\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func add(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) {\n ignore swap(self, compare, key, value)\n };\n\n /// Associates the value with the key in the map.\n /// If the key is not yet present in the map, a new key-value pair is added and `null` is returned.\n /// Otherwise, if the key is already present, the value is overwritten and the previous value is returned.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.singleton(1, \"One\");\n ///\n /// assert Map.swap(map, Nat.compare, 0, \"Zero\") == null;\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\")];\n ///\n /// assert Map.swap(map, Nat.compare, 0, \"Nil\") == ?\"Zero\";\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Nil\"), (1, \"One\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func swap(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) : ?V {\n let insertResult = switch (self.root) {\n case (#leaf(leafNode)) {\n leafInsertHelper(leafNode, btreeOrder, compare, key, value)\n };\n case (#internal(internalNode)) {\n internalInsertHelper(internalNode, btreeOrder, compare, key, value)\n }\n };\n\n switch (insertResult) {\n case (#insert(ov)) {\n switch (ov) {\n // if inserted a value that was not previously there, increment the tree size counter\n case null { self.size += 1 };\n case _ {}\n };\n ov\n };\n case (#promote({ kv; leftChild; rightChild })) {\n let kvs = VarArray.repeat(null, btreeOrder - 1);\n kvs[0] := ?kv;\n let children = VarArray.repeat>(null, btreeOrder);\n children[0] := ?leftChild;\n children[1] := ?rightChild;\n self.root := #internal({\n data = {\n kvs;\n var count = 1\n };\n children\n });\n // promotion always comes from inserting a new element, so increment the tree size counter\n self.size += 1;\n\n null\n }\n }\n };\n\n /// Overwrites the value of an existing key and returns the previous value.\n /// If the key does not exist, it has no effect and returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.singleton(0, \"Zero\");\n ///\n /// let prev1 = Map.replace(map, Nat.compare, 0, \"Nil\"); // overwrites the value for existing key.\n /// assert prev1 == ?\"Zero\";\n /// assert Map.get(map, Nat.compare, 0) == ?\"Nil\";\n ///\n /// let prev2 = Map.replace(map, Nat.compare, 1, \"One\"); // no effect, key is absent\n /// assert prev2 == null;\n /// assert Map.get(map, Nat.compare, 1) == null;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func replace(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K, value : V) : ?V {\n // TODO: Could be optimized in future\n if (containsKey(self, compare, key)) {\n swap(self, compare, key, value)\n } else {\n null\n }\n };\n\n /// Delete an entry by its key in the map.\n /// No effect if the key is not present.\n ///\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(),\n /// Nat.compare);\n ///\n /// Map.remove(map, Nat.compare, 1);\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (2, \"Two\")];\n /// Map.remove(map, Nat.compare, 42);\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` including garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` objects that will be collected as garbage.\n public func remove(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) {\n ignore delete(self, compare, key)\n };\n\n /// Delete an existing entry by its key in the map.\n /// Returns `true` if the key was present in the map, otherwise `false`.\n ///\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(),\n /// Nat.compare);\n ///\n /// assert Map.delete(map, Nat.compare, 1); // present, returns true\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (2, \"Two\")];\n ///\n /// assert not Map.delete(map, Nat.compare, 42); // absent, returns false\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` including garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` objects that will be collected as garbage.\n /// @deprecated M0235\n public func delete(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : Bool {\n switch (take(self, compare, key)) {\n case null false;\n case _ true\n }\n };\n\n /// Removes any existing entry by its key in the map.\n /// Returns the previous value of the key or `null` if the key was absent.\n ///\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter(\n /// [(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(),\n /// Nat.compare);\n ///\n /// assert Map.take(map, Nat.compare, 0) == ?\"Zero\";\n /// assert Iter.toArray(Map.entries(map)) == [(1, \"One\"), (2, \"Two\")];\n ///\n /// assert Map.take(map, Nat.compare, 3) == null;\n /// assert Iter.toArray(Map.entries(map)) == [(1, \"One\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` including garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` objects that will be collected as garbage.\n /// @deprecated M0235\n public func take(self : Map, compare : (implicit : (K, K) -> Order.Order), key : K) : ?V {\n let deletedValue = switch (self.root) {\n case (#leaf(leafNode)) {\n // TODO: think about how this can be optimized so don't have to do two steps (search and then insert)?\n switch (NodeUtil.getKeyIndex(leafNode.data, compare, key)) {\n case (#keyFound(deleteIndex)) {\n leafNode.data.count -= 1;\n let (_, deletedValue) = BTreeHelper.deleteAndShift<(K, V)>(leafNode.data.kvs, deleteIndex);\n self.size -= 1;\n ?deletedValue\n };\n case _ { null }\n }\n };\n case (#internal(internalNode)) {\n let deletedValueResult = switch (internalDeleteHelper(internalNode, btreeOrder, compare, key, false)) {\n case (#delete(value)) { value };\n case (#mergeChild({ internalChild; deletedValue })) {\n if (internalChild.data.count > 0) {\n self.root := #internal(internalChild)\n }\n // This case will be hit if the BTree has order == 4\n // In this case, the internalChild has no keys (last key was merged with new child), so need to promote that merged child (its only child)\n else {\n self.root := switch (internalChild.children[0]) {\n case (?node) { node };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.delete(), element deletion failed, due to a null replacement node error\")\n }\n }\n };\n deletedValue\n }\n };\n switch (deletedValueResult) {\n // if deleted a value from the BTree, decrement the size\n case (?deletedValue) { self.size -= 1 };\n case null {}\n };\n deletedValueResult\n }\n };\n deletedValue\n };\n\n public func toArray(self : Map) : [(K, V)] {\n Iter.toArray(entries(self))\n };\n\n public func toVarArray(self : Map) : [var (K, V)] {\n Iter.toVarArray(entries(self))\n };\n\n /// Retrieves the key-value pair from the map with the maximum key.\n /// If the map is empty, returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.empty();\n ///\n /// assert Map.maxEntry(map) == null;\n ///\n /// Map.add(map, Nat.compare, 0, \"Zero\");\n /// Map.add(map, Nat.compare, 2, \"Two\");\n /// Map.add(map, Nat.compare, 1, \"One\");\n ///\n /// assert Map.maxEntry(map) == ?(2, \"Two\")\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func maxEntry(self : Map) : ?(K, V) {\n reverseEntries(self).next()\n };\n\n /// Retrieves the key-value pair from the map with the minimum key.\n /// If the map is empty, returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.empty();\n ///\n /// assert Map.minEntry(map) == null;\n ///\n /// Map.add(map, Nat.compare, 2, \"Two\");\n /// Map.add(map, Nat.compare, 0, \"Zero\");\n /// Map.add(map, Nat.compare, 1, \"One\");\n ///\n /// assert Map.minEntry(map) == ?(0, \"Zero\")\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of key-value entries stored in the map.\n public func minEntry(self : Map) : ?(K, V) {\n entries(self).next()\n };\n\n /// Returns an iterator over the key-value pairs in the map,\n /// traversing the entries in the ascending order of the keys.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// var sum = 0;\n /// var text = \"\";\n /// for ((k, v) in Map.entries(map)) { sum += k; text #= v };\n /// assert sum == 3;\n /// assert text == \"ZeroOneTwo\"\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func entries(self : Map) : Types.Iter<(K, V)> {\n switch (self.root) {\n case (#leaf(leafNode)) { return leafEntries(leafNode) };\n case (#internal(internalNode)) { internalEntries(internalNode) }\n }\n };\n\n /// Returns an iterator over the key-value pairs in the map,\n /// starting from a given key in ascending order.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (3, \"Three\"), (1, \"One\")].values(), Nat.compare);\n /// assert Iter.toArray(Map.entriesFrom(map, Nat.compare, 1)) == [(1, \"One\"), (3, \"Three\")];\n /// assert Iter.toArray(Map.entriesFrom(map, Nat.compare, 2)) == [(3, \"Three\")];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func entriesFrom(\n self : Map,\n compare : (implicit : (K, K) -> Order.Order),\n key : K\n ) : Types.Iter<(K, V)> {\n switch (self.root) {\n case (#leaf(leafNode)) leafEntriesFrom(leafNode, compare, key);\n case (#internal(internalNode)) internalEntriesFrom(internalNode, compare, key)\n }\n };\n\n /// Returns an iterator over the key-value pairs in the map,\n /// traversing the entries in the descending order of the keys.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.reverseEntries(map)) == [(2, \"Two\"), (1, \"One\"), (0, \"Zero\")];\n /// var sum = 0;\n /// var text = \"\";\n /// for ((k, v) in Map.reverseEntries(map)) { sum += k; text #= v };\n /// assert sum == 3;\n /// assert text == \"TwoOneZero\"\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func reverseEntries(self : Map) : Types.Iter<(K, V)> {\n switch (self.root) {\n case (#leaf(leafNode)) reverseLeafEntries(leafNode);\n case (#internal(internalNode)) reverseInternalEntries(internalNode)\n }\n };\n\n /// Returns an iterator over the key-value pairs in the map,\n /// starting from a given key in descending order.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (1, \"One\"), (3, \"Three\")].values(), Nat.compare);\n /// assert Iter.toArray(Map.reverseEntriesFrom(map, Nat.compare, 0)) == [(0, \"Zero\")];\n /// assert Iter.toArray(Map.reverseEntriesFrom(map, Nat.compare, 2)) == [(1, \"One\"), (0, \"Zero\")];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func reverseEntriesFrom(\n self : Map,\n compare : (implicit : (K, K) -> Order.Order),\n key : K\n ) : Types.Iter<(K, V)> {\n switch (self.root) {\n case (#leaf(leafNode)) reverseLeafEntriesFrom(leafNode, compare, key);\n case (#internal(internalNode)) reverseInternalEntriesFrom(internalNode, compare, key)\n }\n };\n\n /// Returns an iterator over the keys in the map,\n /// traversing all keys in ascending order.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.keys(map)) == [0, 1, 2];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n public func keys(self : Map) : Types.Iter {\n object {\n let iterator = entries(self);\n\n public func next() : ?K {\n switch (iterator.next()) {\n case null null;\n case (?(key, _)) ?key\n }\n }\n }\n };\n\n /// Returns an iterator over the values in the map,\n /// traversing the values in the ascending order of the keys to which they are associated.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// assert Iter.toArray(Map.values(map)) == [\"Zero\", \"One\", \"Two\"];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n public func values(self : Map) : Types.Iter {\n object {\n let iterator = entries(self);\n\n public func next() : ?V {\n switch (iterator.next()) {\n case null null;\n case (?(_, value)) ?value\n }\n }\n }\n };\n\n /// Create a mutable key-value map with the entries obtained from an iterator.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// transient let iter =\n /// Iter.fromArray([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")]);\n ///\n /// let map = Map.fromIter(iter, Nat.compare);\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of key-value entries returned by the iterator and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func fromIter(iter : Types.Iter<(K, V)>, compare : (implicit : (K, K) -> Order.Order)) : Map {\n let map = empty();\n for ((key, value) in iter) {\n add(map, compare, key, value)\n };\n map\n };\n\n /// Converts an iterator of entries into a Map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// transient let iter =\n /// Iter.fromArray([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")]);\n ///\n /// let map = iter.toMap(Nat.compare);\n ///\n /// assert Iter.toArray(Map.entries(map)) == [(0, \"Zero\"), (1, \"One\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of key-value entries returned by the iterator and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func toMap(self : Types.Iter<(K, V)>, compare : (implicit : (K, K) -> Order.Order)) : Map {\n fromIter(self, compare)\n };\n\n public func fromArray(array : [(K, V)], compare : (implicit : (K, K) -> Order.Order)) : Map {\n fromIter(array.values(), compare)\n };\n\n public func fromVarArray(array : [var (K, V)], compare : (implicit : (K, K) -> Order.Order)) : Map {\n fromIter(array.values(), compare)\n };\n\n /// Apply an operation on each key-value pair contained in the map.\n /// The operation is applied in ascending order of the keys.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n /// var sum = 0;\n /// var text = \"\";\n /// Map.forEach(map, func (key, value) {\n /// sum += key;\n /// text #= value;\n /// });\n /// assert sum == 3;\n /// assert text == \"ZeroOneTwo\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func forEach(self : Map, operation : (K, V) -> ()) {\n for (entry in entries(self)) {\n operation(entry)\n }\n };\n\n /// Filter entries in a new map.\n /// Create a copy of the mutable map that only contains the key-value pairs\n /// that fulfil the criterion function.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numberNames = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// let evenNames = Map.filter(numberNames, Nat.compare, func (key, value) {\n /// key % 2 == 0\n /// });\n ///\n /// assert Iter.toArray(Map.entries(evenNames)) == [(0, \"Zero\"), (2, \"Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func filter(self : Map, compare : (implicit : (K, K) -> Order.Order), criterion : (K, V) -> Bool) : Map {\n let result = empty();\n for ((key, value) in entries(self)) {\n if (criterion(key, value)) {\n add(result, compare, key, value)\n }\n };\n result\n };\n\n /// Project all values of the map in a new map.\n /// Apply a mapping function to the values of each entry in the map and\n /// collect the mapped entries in a new mutable key-value map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func f(key : Nat, _val : Text) : Nat = key * 2;\n ///\n /// let resMap = Map.map(map, f);\n ///\n /// assert Iter.toArray(Map.entries(resMap)) == [(0, 0), (1, 2), (2, 4)];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func map(self : Map, project : (K, V1) -> V2) : Map {\n {\n var root = mapNode(self.root, project);\n var size = self.size\n }\n };\n\n /// Iterate all entries in ascending order of the keys,\n /// and accumulate the entries by applying the combine function, starting from a base value.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func folder(accum : (Nat, Text), key : Nat, val : Text) : ((Nat, Text))\n /// = (key + accum.0, accum.1 # val);\n ///\n /// assert Map.foldLeft(map, (0, \"\"), folder) == (3, \"ZeroOneTwo\");\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func foldLeft(\n self : Map,\n base : A,\n combine : (A, K, V) -> A\n ) : A {\n var accumulator = base;\n for ((key, value) in entries(self)) {\n accumulator := combine(accumulator, key, value)\n };\n accumulator\n };\n\n /// Iterate all entries in descending order of the keys,\n /// and accumulate the entries by applying the combine function, starting from a base value.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func folder(key : Nat, val : Text, accum : (Nat, Text)) : ((Nat, Text))\n /// = (key + accum.0, accum.1 # val);\n ///\n /// assert Map.foldRight(map, (0, \"\"), folder) == (3, \"TwoOneZero\");\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func foldRight(\n self : Map,\n base : A,\n combine : (K, V, A) -> A\n ) : A {\n var accumulator = base;\n for ((key, value) in reverseEntries(self)) {\n accumulator := combine(key, value, accumulator)\n };\n accumulator\n };\n\n /// Check whether all entries in the map fulfil a predicate function, i.e.\n /// the predicate function returns `true` for all entries in the map.\n /// Returns `true` for an empty map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"0\"), (2, \"2\"), (1, \"1\")].values(), Nat.compare);\n ///\n /// assert Map.all(map, func (k, v) = v == Nat.toText(k));\n /// assert not Map.all(map, func (k, v) = k < 2);\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func all(self : Map, predicate : (K, V) -> Bool) : Bool {\n //TODO: optimize\n for (entry in entries(self)) {\n if (not predicate(entry)) {\n return false\n }\n };\n true\n };\n\n /// Test if any key-value pair in `map` satisfies the given predicate `pred`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"0\"), (2, \"2\"), (1, \"1\")].values(), Nat.compare);\n ///\n /// assert Map.any(map, func (k, v) = (k >= 0));\n /// assert not Map.any(map, func (k, v) = (k >= 3));\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func any(self : Map, predicate : (K, V) -> Bool) : Bool {\n //TODO: optimize\n for (entry in entries(self)) {\n if (predicate(entry)) {\n return true\n }\n };\n false\n };\n\n /// Filter all entries in the map by also applying a projection to the value.\n /// Apply a mapping function `project` to all entries in the map and collect all\n /// entries, for which the function returns a non-null new value. Collect all\n /// non-discarded entries with the key and new value in a new mutable map.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n ///\n /// func f(key : Nat, val : Text) : ?Text {\n /// if(key == 0) {null}\n /// else { ?(\"Twenty \" # val)}\n /// };\n ///\n /// let newMap = Map.filterMap(map, Nat.compare, f);\n ///\n /// assert Iter.toArray(Map.entries(newMap)) == [(1, \"Twenty One\"), (2, \"Twenty Two\")];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func filterMap(self : Map, compare : (implicit : (K, K) -> Order.Order), project : (K, V1) -> ?V2) : Map {\n let result = empty();\n for ((key, value1) in entries(self)) {\n switch (project(key, value1)) {\n case null {};\n case (?value2) add(result, compare, key, value2)\n }\n };\n result\n };\n\n /// Internal sanity check function.\n /// Can be used to check that key/value pairs have been inserted with a consistent key comparison function.\n /// Traps if the internal map structure is invalid.\n /// @deprecated M0235\n public func assertValid(self : Map, compare : (implicit : (K, K) -> Order.Order)) {\n func checkIteration(iterator : Types.Iter<(K, V)>, order : Order.Order) {\n switch (iterator.next()) {\n case null {};\n case (?first) {\n var previous = first;\n loop {\n switch (iterator.next()) {\n case null return;\n case (?next) {\n if (compare(previous.0, next.0) != order) {\n Runtime.trap(\"Invalid order\")\n };\n previous := next\n }\n }\n }\n }\n }\n };\n checkIteration(entries(self), #less);\n checkIteration(reverseEntries(self), #greater)\n };\n\n /// Generate a textual representation of all the entries in the map.\n /// Primarily to be used for testing and debugging.\n /// The keys and values are formatted according to `keyFormat` and `valueFormat`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let map = Map.fromIter([(0, \"Zero\"), (2, \"Two\"), (1, \"One\")].values(), Nat.compare);\n /// assert Map.toText(map, Nat.toText, func t { t }) == \"Map{(0, Zero), (1, One), (2, Two)}\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that `keyFormat` and `valueFormat` have runtime and space costs of `O(1)`.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func toText(self : Map, keyFormat : (implicit : (toText : K -> Text)), valueFormat : (implicit : (toText : V -> Text))) : Text {\n var text = \"Map{\";\n var sep = \"\";\n for ((key, value) in entries(self)) {\n text #= sep # \"(\" # keyFormat(key) # \", \" # valueFormat(value) # \")\";\n sep := \", \"\n };\n text # \"}\"\n };\n\n /// Compare two maps by primarily comparing keys and secondarily values.\n /// Both maps must have been created by the same key comparison function.\n /// The two maps are iterated by the ascending order of their creation and\n /// order is determined by the following rules:\n /// Less:\n /// `map1` is less than `map2` if:\n /// * the pairwise iteration hits a entry pair `entry1` and `entry2` where\n /// `entry1` is less than `entry2` and all preceding entry pairs are equal, or,\n /// * `map1` is a strict prefix of `map2`, i.e. `map2` has more entries than `map1`\n /// and all entries of `map1` occur at the beginning of iteration `map2`.\n /// `entry1` is less than `entry2` if:\n /// * the key of `entry1` is less than the key of `entry2`, or\n /// * `entry1` and `entry2` have equal keys and the value of `entry1` is less than\n /// the value of `entry2`.\n /// Equal:\n /// `map1` and `map2` have same series of equal entries by pairwise iteration.\n /// Greater:\n /// `map1` is neither less nor equal `map2`.\n ///\n /// Example:\n /// ```motoko\n /// import Map \"mo:core/Map\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// persistent actor {\n /// let map1 = Map.fromIter([(0, \"Zero\"), (1, \"One\")].values(), Nat.compare);\n /// let map2 = Map.fromIter([(0, \"Zero\"), (2, \"Two\")].values(), Nat.compare);\n ///\n /// assert Map.compare(map1, map2, Nat.compare, Text.compare) == #less;\n /// assert Map.compare(map1, map1, Nat.compare, Text.compare) == #equal;\n /// assert Map.compare(map2, map1, Nat.compare, Text.compare) == #greater\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map and\n /// assuming that `compareKey` and `compareValue` have runtime and space costs of `O(1)`.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func compare(self : Map, other : Map, compareKey : (implicit : (compare : (K, K) -> Order.Order)), compareValue : (implicit : (compare : (V, V) -> Order.Order))) : Order.Order {\n let iterator1 = entries(self);\n let iterator2 = entries(other);\n loop {\n switch (iterator1.next(), iterator2.next()) {\n case (null, null) return #equal;\n case (null, _) return #less;\n case (_, null) return #greater;\n case (?(key1, value1), ?(key2, value2)) {\n let keyComparison = compareKey(key1, key2);\n if (keyComparison != #equal) {\n return keyComparison\n };\n let valueComparison = compareValue(value1, value2);\n if (valueComparison != #equal) {\n return valueComparison\n }\n }\n }\n }\n };\n\n func leafEntries({ data } : Leaf) : Types.Iter<(K, V)> {\n var i : Nat = 0;\n object {\n public func next() : ?(K, V) {\n if (i >= data.count) {\n null\n } else {\n let res = data.kvs[i];\n i += 1;\n res\n }\n }\n }\n };\n\n func leafEntriesFrom({ data } : Leaf, compare : (K, K) -> Order.Order, key : K) : Types.Iter<(K, V)> {\n var i = switch (BinarySearch.binarySearchNode(data.kvs, compare, key, data.count)) {\n case (#keyFound(i)) i;\n case (#notFound(i)) i\n };\n object {\n public func next() : ?(K, V) {\n if (i >= data.count) {\n null\n } else {\n let res = data.kvs[i];\n i += 1;\n res\n }\n }\n }\n };\n\n func reverseLeafEntries({ data } : Leaf) : Types.Iter<(K, V)> {\n var i : Nat = data.count;\n object {\n public func next() : ?(K, V) {\n if (i == 0) {\n null\n } else {\n let res = data.kvs[i - 1];\n i -= 1;\n res\n }\n }\n }\n };\n\n func reverseLeafEntriesFrom({ data } : Leaf, compare : (K, K) -> Order.Order, key : K) : Types.Iter<(K, V)> {\n var i = switch (BinarySearch.binarySearchNode(data.kvs, compare, key, data.count)) {\n case (#keyFound(i)) i + 1; // +1 to include this key\n case (#notFound(i)) i // i is the index of the first key greater than the search key, or count if all keys are less than the search key\n };\n object {\n public func next() : ?(K, V) {\n if (i == 0) {\n null\n } else {\n let res = data.kvs[i - 1];\n i -= 1;\n res\n }\n }\n }\n };\n\n // Cursor type that keeps track of the current node and the current key-value index in the node\n type NodeCursor = { node : Node; kvIndex : Nat };\n\n func internalEntries(internal : Internal) : Types.Iter<(K, V)> {\n // The nodeCursorStack keeps track of the current node and the current key-value index in the node\n // We use a stack here to push to/pop off the next node cursor to visit\n let nodeCursorStack = initializeForwardNodeCursorStack(internal);\n internalEntriesFromStack(nodeCursorStack)\n };\n\n func internalEntriesFrom(internal : Internal, compare : (K, K) -> Order.Order, key : K) : Types.Iter<(K, V)> {\n let nodeCursorStack = initializeForwardNodeCursorStackFrom(internal, compare, key);\n internalEntriesFromStack(nodeCursorStack)\n };\n\n func internalEntriesFromStack(nodeCursorStack : Stack.Stack>) : Types.Iter<(K, V)> {\n object {\n public func next() : ?(K, V) {\n // pop the next node cursor off the stack\n var nodeCursor = Stack.pop(nodeCursorStack);\n switch (nodeCursor) {\n case null { return null };\n case (?{ node; kvIndex }) {\n switch (node) {\n // if a leaf node, iterate through the leaf node's next key-value pair\n case (#leaf(leafNode)) {\n let lastKV = leafNode.data.count - 1 : Nat;\n if (kvIndex > lastKV) {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.internalEntries(), leaf kvIndex out of bounds\")\n };\n\n let currentKV = switch (leafNode.data.kvs[kvIndex]) {\n case (?kv) { kv };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Map.internalEntries(), null key-value pair found in leaf node.\"\n # \"leafNode.data.count=\" # debug_show (leafNode.data.count) # \", kvIndex=\" # debug_show (kvIndex)\n )\n }\n };\n // if not at the last key-value pair, push the next key-value index of the leaf onto the stack and return the current key-value pair\n if (kvIndex < lastKV) {\n Stack.push(\n nodeCursorStack,\n {\n node = #leaf(leafNode);\n kvIndex = kvIndex + 1 : Nat\n }\n )\n };\n\n // return the current key-value pair\n ?currentKV\n };\n // if an internal node\n case (#internal(internalNode)) {\n let lastKV = internalNode.data.count - 1 : Nat;\n // Developer facing message in case of a bug\n if (kvIndex > lastKV) {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.internalEntries(), internal kvIndex out of bounds\")\n };\n\n let currentKV = switch (internalNode.data.kvs[kvIndex]) {\n case (?kv) { kv };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Map.internalEntries(), null key-value pair found in internal node. \" #\n \"internal.data.count=\" # debug_show (internalNode.data.count) # \", kvIndex=\" # debug_show (kvIndex)\n )\n }\n };\n\n let nextCursor = {\n node = #internal(internalNode);\n kvIndex = kvIndex + 1 : Nat\n };\n // if not the last key-value pair, push the next key-value index of the internal node onto the stack\n if (kvIndex < lastKV) {\n Stack.push(nodeCursorStack, nextCursor)\n };\n // traverse the next child's min subtree and push the resulting node cursors onto the stack\n // then return the current key-value pair of the internal node\n traverseMinSubtreeIter(nodeCursorStack, nextCursor);\n ?currentKV\n }\n }\n }\n }\n }\n }\n };\n\n func reverseInternalEntries(internal : Internal) : Types.Iter<(K, V)> {\n // The nodeCursorStack keeps track of the current node and the current key-value index in the node\n // We use a stack here to push to/pop off the next node cursor to visit\n let nodeCursorStack = initializeReverseNodeCursorStack(internal);\n reverseInternalEntriesFromStack(nodeCursorStack)\n };\n\n func reverseInternalEntriesFrom(internal : Internal, compare : (K, K) -> Order.Order, key : K) : Types.Iter<(K, V)> {\n let nodeCursorStack = initializeReverseNodeCursorStackFrom(internal, compare, key);\n reverseInternalEntriesFromStack(nodeCursorStack)\n };\n\n func reverseInternalEntriesFromStack(nodeCursorStack : Stack.Stack>) : Types.Iter<(K, V)> {\n object {\n public func next() : ?(K, V) {\n // pop the next node cursor off the stack\n var nodeCursor = Stack.pop(nodeCursorStack);\n switch (nodeCursor) {\n case null { return null };\n case (?{ node; kvIndex }) {\n let firstKV = 0 : Nat;\n assert (kvIndex > firstKV);\n switch (node) {\n // if a leaf node, reverse iterate through the leaf node's next key-value pair\n case (#leaf(leafNode)) {\n let currentKV = switch (leafNode.data.kvs[kvIndex - 1]) {\n case (?kv) { kv };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Map.reverseInternalEntries(), null key-value pair found in leaf node.\"\n # \"leafNode.data.count=\" # debug_show (leafNode.data.count) # \", kvIndex=\" # debug_show (kvIndex)\n )\n }\n };\n // if not at the last key-value pair, push the previous key-value index of the leaf onto the stack and return the current key-value pair\n if (kvIndex - 1 : Nat > firstKV) {\n Stack.push(\n nodeCursorStack,\n {\n node = #leaf(leafNode);\n kvIndex = kvIndex - 1 : Nat\n }\n )\n };\n\n // return the current key-value pair\n ?currentKV\n };\n // if an internal node\n case (#internal(internalNode)) {\n let currentKV = switch (internalNode.data.kvs[kvIndex - 1]) {\n case (?kv) { kv };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Map.reverseInternalEntries(), null key-value pair found in internal node. \" #\n \"internal.data.count=\" # debug_show (internalNode.data.count) # \", kvIndex=\" # debug_show (kvIndex)\n )\n }\n };\n\n let previousCursor = {\n node = #internal(internalNode);\n kvIndex = kvIndex - 1 : Nat\n };\n // if not the first key-value pair, push the previous key-value index of the internal node onto the stack\n if (kvIndex - 1 : Nat > firstKV) {\n Stack.push(nodeCursorStack, previousCursor)\n };\n // traverse the previous child's max subtree and push the resulting node cursors onto the stack\n // then return the current key-value pair of the internal node\n traverseMaxSubtreeIter(nodeCursorStack, previousCursor);\n ?currentKV\n }\n }\n }\n }\n }\n }\n };\n\n func initializeForwardNodeCursorStack(internal : Internal) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n kvIndex = 0\n };\n\n // push the initial cursor to the stack\n Stack.push(nodeCursorStack, nodeCursor);\n // then traverse left\n traverseMinSubtreeIter(nodeCursorStack, nodeCursor);\n nodeCursorStack\n };\n\n func initializeForwardNodeCursorStackFrom(internal : Internal, compare : (K, K) -> Order.Order, key : K) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n kvIndex = 0\n };\n\n traverseMinSubtreeIterFrom(nodeCursorStack, nodeCursor, compare, key);\n nodeCursorStack\n };\n\n func initializeReverseNodeCursorStack(internal : Internal) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n kvIndex = internal.data.count\n };\n\n // push the initial cursor to the stack\n Stack.push(nodeCursorStack, nodeCursor);\n // then traverse left\n traverseMaxSubtreeIter(nodeCursorStack, nodeCursor);\n nodeCursorStack\n };\n\n func initializeReverseNodeCursorStackFrom(internal : Internal, compare : (K, K) -> Order.Order, key : K) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n kvIndex = internal.data.count\n };\n\n traverseMaxSubtreeIterFrom(nodeCursorStack, nodeCursor, compare, key);\n nodeCursorStack\n };\n\n // traverse the min subtree of the current node cursor, passing each new element to the node cursor stack\n func traverseMinSubtreeIter(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor) {\n var currentNode = nodeCursor.node;\n var childIndex = nodeCursor.kvIndex;\n\n label l loop {\n switch (currentNode) {\n // If currentNode is leaf, have hit the minimum element of the subtree and already pushed it's cursor to the stack\n // so can return\n case (#leaf(_)) {\n return\n };\n // If currentNode is internal, add it's left most child to the stack and continue traversing\n case (#internal(internalNode)) {\n switch (internalNode.children[childIndex]) {\n // Push the next min (left most) child node to the stack\n case (?childNode) {\n childIndex := 0;\n currentNode := childNode;\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n kvIndex = childIndex\n }\n )\n };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.traverseMinSubtreeIter(), null child node error\")\n }\n }\n }\n }\n }\n };\n\n func traverseMinSubtreeIterFrom(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor, compare : (K, K) -> Order.Order, key : K) {\n var currentNode = nodeCursor.node;\n\n label l loop {\n let (node, childrenOption) = switch (currentNode) {\n case (#leaf(leafNode)) (leafNode, null);\n case (#internal(internalNode)) (internalNode, ?internalNode.children)\n };\n let (i, isFound) = switch (NodeUtil.getKeyIndex(node.data, compare, key)) {\n case (#keyFound(i)) (i, true);\n case (#notFound(i)) (i, false)\n };\n if (i < node.data.count) {\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n kvIndex = i // greater entries to traverse\n }\n )\n };\n if isFound return;\n let ?children = childrenOption else return;\n let ?childNode = children[i] else Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.traverseMinSubtreeIterFrom(), null child node error\");\n currentNode := childNode\n }\n };\n\n // traverse the max subtree of the current node cursor, passing each new element to the node cursor stack\n func traverseMaxSubtreeIter(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor) {\n var currentNode = nodeCursor.node;\n var childIndex = nodeCursor.kvIndex;\n\n label l loop {\n switch (currentNode) {\n // If currentNode is leaf, have hit the maximum element of the subtree and already pushed it's cursor to the stack\n // so can return\n case (#leaf(_)) {\n return\n };\n // If currentNode is internal, add it's right most child to the stack and continue traversing\n case (#internal(internalNode)) {\n assert (childIndex <= internalNode.data.count); // children are one more than data entries\n switch (internalNode.children[childIndex]) {\n // Push the next max (right most) child node to the stack\n case (?childNode) {\n childIndex := switch (childNode) {\n case (#internal(internalNode)) internalNode.data.count;\n case (#leaf(leafNode)) leafNode.data.count\n };\n currentNode := childNode;\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n kvIndex = childIndex\n }\n )\n };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.traverseMaxSubtreeIter(), null child node error\")\n }\n }\n }\n }\n }\n };\n\n func traverseMaxSubtreeIterFrom(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor, compare : (K, K) -> Order.Order, key : K) {\n var currentNode = nodeCursor.node;\n\n label l loop {\n let (node, childrenOption) = switch (currentNode) {\n case (#leaf(leafNode)) (leafNode, null);\n case (#internal(internalNode)) (internalNode, ?internalNode.children)\n };\n let (i, isFound) = switch (NodeUtil.getKeyIndex(node.data, compare, key)) {\n case (#keyFound(i)) (i + 1, true); // +1 to include this key\n case (#notFound(i)) (i, false) // i is the index of the first key less than the search key, or 0 if all keys are greater than the search key\n };\n if (i > 0) {\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n kvIndex = i\n }\n )\n };\n if isFound return;\n let ?children = childrenOption else return;\n let ?childNode = children[i] else Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.traverseMaxSubtreeIterFrom(), null child node error\");\n currentNode := childNode\n }\n };\n\n // This type is used to signal to the parent calling context what happened in the level below\n type IntermediateInternalDeleteResult = {\n // element was deleted or not found, returning the old value (?value or null)\n #delete : ?V;\n // deleted an element, but was unable to successfully borrow and rebalance at the previous level without merging children\n // the internalChild is the merged child that needs to be rebalanced at the next level up in the BTree\n #mergeChild : {\n internalChild : Internal;\n deletedValue : ?V\n }\n };\n\n func internalDeleteHelper(internalNode : Internal, order : Nat, compare : (K, K) -> Order.Order, deleteKey : K, skipNode : Bool) : IntermediateInternalDeleteResult {\n let minKeys = NodeUtil.minKeysFromOrder(order);\n let keyIndex = NodeUtil.getKeyIndex(internalNode.data, compare, deleteKey);\n\n // match on both the result of the node binary search, and if this node level should be skipped even if the key is found (internal kv replacement case)\n switch (keyIndex, skipNode) {\n // if key is found in the internal node\n case (#keyFound(deleteIndex), false) {\n let deletedValue = switch (internalNode.data.kvs[deleteIndex]) {\n case (?kv) { ?kv.1 };\n case null { assert false; null }\n };\n // TODO: (optimization) replace with deletion in one step without having to retrieve the maxKey first\n let replaceKV = NodeUtil.getMaxKeyValue(internalNode.children[deleteIndex]);\n internalNode.data.kvs[deleteIndex] := ?replaceKV;\n switch (internalDeleteHelper(internalNode, order, compare, replaceKV.0, true)) {\n case (#delete(_)) { #delete(deletedValue) };\n case (#mergeChild({ internalChild })) {\n #mergeChild({ internalChild; deletedValue })\n }\n }\n };\n // if key is not found in the internal node OR the key is found, but skipping this node (because deleting the in order precessor i.e. replacement kv)\n // in both cases need to descend and traverse to find the kv to delete\n case ((#keyFound(_), true) or (#notFound(_), _)) {\n let childIndex = switch (keyIndex) {\n case (#keyFound(replacedSkipKeyIndex)) { replacedSkipKeyIndex };\n case (#notFound(childIndex)) { childIndex }\n };\n let child = switch (internalNode.children[childIndex]) {\n case (?c) { c };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.internalDeleteHelper, child index of #keyFound or #notfound is null\")\n }\n };\n switch (child) {\n // if child is internal\n case (#internal(internalChild)) {\n switch (internalDeleteHelper(internalChild, order, compare, deleteKey, false), childIndex == 0) {\n // if value was successfully deleted and no additional tree re-balancing is needed, return the deleted value\n case (#delete(v), _) { #delete(v) };\n // if internalChild needs rebalancing and pulling child is left most\n case (#mergeChild({ internalChild; deletedValue }), true) {\n // try to pull left-most key and child from right sibling\n switch (NodeUtil.borrowFromInternalSibling(internalNode.children, childIndex + 1, #successor)) {\n // if can pull up sibling kv and child\n case (#borrowed({ deletedSiblingKVPair; child })) {\n NodeUtil.rotateBorrowedKVsAndChildFromSibling(\n internalNode,\n childIndex,\n deletedSiblingKVPair,\n child,\n internalChild,\n #right\n );\n #delete(deletedValue)\n };\n // unable to pull from sibling, need to merge with right sibling and push down parent\n case (#notEnoughKeys(sibling)) {\n // get the parent kv that will be pushed down the the child\n let kvPairToBePushedToChild = ?BTreeHelper.deleteAndShift(internalNode.data.kvs, 0);\n internalNode.data.count -= 1;\n // merge the children and push down the parent\n let newChild = NodeUtil.mergeChildrenAndPushDownParent(internalChild, kvPairToBePushedToChild, sibling);\n // update children of the parent\n internalNode.children[0] := ?#internal(newChild);\n ignore ?BTreeHelper.deleteAndShift(internalNode.children, 1);\n\n if (internalNode.data.count < minKeys) {\n #mergeChild({ internalChild = internalNode; deletedValue })\n } else {\n #delete(deletedValue)\n }\n }\n }\n };\n // if internalChild needs rebalancing and pulling child is > 0, so a left sibling exists\n case (#mergeChild({ internalChild; deletedValue }), false) {\n // try to pull right-most key and its child directly from left sibling\n switch (NodeUtil.borrowFromInternalSibling(internalNode.children, childIndex - 1 : Nat, #predecessor)) {\n case (#borrowed({ deletedSiblingKVPair; child })) {\n NodeUtil.rotateBorrowedKVsAndChildFromSibling(\n internalNode,\n childIndex - 1 : Nat,\n deletedSiblingKVPair,\n child,\n internalChild,\n #left\n );\n #delete(deletedValue)\n };\n // unable to pull from left sibling\n case (#notEnoughKeys(leftSibling)) {\n // if child is not last index, try to pull from the right child\n if (childIndex < internalNode.data.count) {\n switch (NodeUtil.borrowFromInternalSibling(internalNode.children, childIndex, #successor)) {\n // if can pull up sibling kv and child\n case (#borrowed({ deletedSiblingKVPair; child })) {\n NodeUtil.rotateBorrowedKVsAndChildFromSibling(\n internalNode,\n childIndex,\n deletedSiblingKVPair,\n child,\n internalChild,\n #right\n );\n return #delete(deletedValue)\n };\n // if cannot borrow, from left or right, merge (see below)\n case _ {}\n }\n };\n\n // get the parent kv that will be pushed down the the child\n let kvPairToBePushedToChild = ?BTreeHelper.deleteAndShift(internalNode.data.kvs, childIndex - 1 : Nat);\n internalNode.data.count -= 1;\n // merge it the children and push down the parent\n let newChild = NodeUtil.mergeChildrenAndPushDownParent(leftSibling, kvPairToBePushedToChild, internalChild);\n\n // update children of the parent\n internalNode.children[childIndex - 1] := ?#internal(newChild);\n ignore ?BTreeHelper.deleteAndShift(internalNode.children, childIndex);\n\n if (internalNode.data.count < minKeys) {\n #mergeChild({ internalChild = internalNode; deletedValue })\n } else {\n #delete(deletedValue)\n }\n }\n }\n }\n }\n };\n // if child is leaf\n case (#leaf(leafChild)) {\n switch (leafDeleteHelper(leafChild, order, compare, deleteKey), childIndex == 0) {\n case (#delete(value), _) { #delete(value) };\n // if delete child is left most, try to borrow from right child\n case (#mergeLeafData({ leafDeleteIndex }), true) {\n switch (NodeUtil.borrowFromRightLeafChild(internalNode.children, childIndex)) {\n case (?borrowedKVPair) {\n let kvPairToBePushedToChild = internalNode.data.kvs[childIndex];\n internalNode.data.kvs[childIndex] := ?borrowedKVPair;\n\n let deletedKV = BTreeHelper.insertAtPostionAndDeleteAtPosition<(K, V)>(leafChild.data.kvs, kvPairToBePushedToChild, leafChild.data.count - 1, leafDeleteIndex);\n #delete(?deletedKV.1)\n };\n\n case null {\n // can't borrow from right child, delete from leaf and merge with right child and parent kv, then push down into new leaf\n let rightChild = switch (internalNode.children[childIndex + 1]) {\n case (?#leaf(rc)) { rc };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.internalDeleteHelper, if trying to borrow from right leaf child is null, rightChild index cannot be null or internal\")\n }\n };\n let (mergedLeaf, deletedKV) = mergeParentWithLeftRightChildLeafNodesAndDelete(\n internalNode.data.kvs[childIndex],\n leafChild,\n rightChild,\n leafDeleteIndex,\n #left\n );\n // delete the left most internal node kv, since was merging from a deletion in left most child (0) and the parent kv was pushed into the mergedLeaf\n ignore BTreeHelper.deleteAndShift<(K, V)>(internalNode.data.kvs, 0);\n // update internal node children\n BTreeHelper.replaceTwoWithElementAndShift>(internalNode.children, #leaf(mergedLeaf), 0);\n internalNode.data.count -= 1;\n\n if (internalNode.data.count < minKeys) {\n #mergeChild({\n internalChild = internalNode;\n deletedValue = ?deletedKV.1\n })\n } else {\n #delete(?deletedKV.1)\n }\n\n }\n }\n };\n // if delete child is middle or right most, try to borrow from left child\n case (#mergeLeafData({ leafDeleteIndex }), false) {\n // if delete child is right most, try to borrow from left child\n switch (NodeUtil.borrowFromLeftLeafChild(internalNode.children, childIndex)) {\n case (?borrowedKVPair) {\n let kvPairToBePushedToChild = internalNode.data.kvs[childIndex - 1];\n internalNode.data.kvs[childIndex - 1] := ?borrowedKVPair;\n let kvDelete = BTreeHelper.insertAtPostionAndDeleteAtPosition<(K, V)>(leafChild.data.kvs, kvPairToBePushedToChild, 0, leafDeleteIndex);\n #delete(?kvDelete.1)\n };\n case null {\n // if delete child is in the middle, try to borrow from right child\n if (childIndex < internalNode.data.count) {\n // try to borrow from right\n switch (NodeUtil.borrowFromRightLeafChild(internalNode.children, childIndex)) {\n case (?borrowedKVPair) {\n let kvPairToBePushedToChild = internalNode.data.kvs[childIndex];\n internalNode.data.kvs[childIndex] := ?borrowedKVPair;\n // insert the successor at the very last element\n let kvDelete = BTreeHelper.insertAtPostionAndDeleteAtPosition<(K, V)>(leafChild.data.kvs, kvPairToBePushedToChild, leafChild.data.count - 1, leafDeleteIndex);\n return #delete(?kvDelete.1)\n };\n // if cannot borrow, from left or right, merge (see below)\n case _ {}\n }\n };\n\n // can't borrow from left child, delete from leaf and merge with left child and parent kv, then push down into new leaf\n let leftChild = switch (internalNode.children[childIndex - 1]) {\n case (?#leaf(lc)) { lc };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.internalDeleteHelper, if trying to borrow from left leaf child is null, then left child index must not be null or internal\")\n }\n };\n let (mergedLeaf, deletedKV) = mergeParentWithLeftRightChildLeafNodesAndDelete(\n internalNode.data.kvs[childIndex - 1],\n leftChild,\n leafChild,\n leafDeleteIndex,\n #right\n );\n // delete the right most internal node kv, since was merging from a deletion in the right most child and the parent kv was pushed into the mergedLeaf\n ignore BTreeHelper.deleteAndShift<(K, V)>(internalNode.data.kvs, childIndex - 1);\n // update internal node children\n BTreeHelper.replaceTwoWithElementAndShift>(internalNode.children, #leaf(mergedLeaf), childIndex - 1);\n internalNode.data.count -= 1;\n\n if (internalNode.data.count < minKeys) {\n #mergeChild({\n internalChild = internalNode;\n deletedValue = ?deletedKV.1\n })\n } else {\n #delete(?deletedKV.1)\n }\n }\n }\n }\n }\n }\n }\n }\n }\n };\n\n // This type is used to signal to the parent calling context what happened in the level below\n type IntermediateLeafDeleteResult = {\n // element was deleted or not found, returning the old value (?value or null)\n #delete : ?V;\n // leaf had the minimum number of keys when deleting, so returns the leaf node's data and the index of the key that will be deleted\n #mergeLeafData : {\n data : Data;\n leafDeleteIndex : Nat\n }\n };\n\n func leafDeleteHelper(leafNode : Leaf, order : Nat, compare : (K, K) -> Order.Order, deleteKey : K) : IntermediateLeafDeleteResult {\n let minKeys = NodeUtil.minKeysFromOrder(order);\n\n switch (NodeUtil.getKeyIndex(leafNode.data, compare, deleteKey)) {\n case (#keyFound(deleteIndex)) {\n if (leafNode.data.count > minKeys) {\n leafNode.data.count -= 1;\n #delete(?BTreeHelper.deleteAndShift<(K, V)>(leafNode.data.kvs, deleteIndex).1)\n } else {\n #mergeLeafData({\n data = leafNode.data;\n leafDeleteIndex = deleteIndex\n })\n }\n };\n case (#notFound(_)) {\n #delete(null)\n }\n }\n };\n\n // get helper if internal node\n func getFromInternal(internalNode : Internal, compare : (K, K) -> Order.Order, key : K) : ?V {\n switch (NodeUtil.getKeyIndex(internalNode.data, compare, key)) {\n case (#keyFound(index)) {\n getExistingValueFromIndex(internalNode.data, index)\n };\n case (#notFound(index)) {\n switch (internalNode.children[index]) {\n // expects the child to be there, otherwise there's a bug in binary search or the tree is invalid\n case null { Runtime.trap(\"Internal bug: Map.getFromInternal\") };\n case (?#leaf(leafNode)) { getFromLeaf(leafNode, compare, key) };\n case (?#internal(internalNode)) {\n getFromInternal(internalNode, compare, key)\n }\n }\n }\n }\n };\n\n // get function helper if leaf node\n func getFromLeaf(leafNode : Leaf, compare : (K, K) -> Order.Order, key : K) : ?V {\n switch (NodeUtil.getKeyIndex(leafNode.data, compare, key)) {\n case (#keyFound(index)) {\n getExistingValueFromIndex(leafNode.data, index)\n };\n case _ null\n }\n };\n\n // get function helper that retrieves an existing value in the case that the key is found\n func getExistingValueFromIndex(data : Data, index : Nat) : ?V {\n switch (data.kvs[index]) {\n case null { null };\n case (?ov) { ?ov.1 }\n }\n };\n\n // which child the deletionIndex is referring to\n type DeletionSide = { #left; #right };\n\n func mergeParentWithLeftRightChildLeafNodesAndDelete(\n parentKV : ?(K, V),\n leftChild : Leaf,\n rightChild : Leaf,\n deleteIndex : Nat,\n deletionSide : DeletionSide\n ) : (Leaf, (K, V)) {\n let count = leftChild.data.count * 2;\n let (kvs, deletedKV) = BTreeHelper.mergeParentWithChildrenAndDelete<(K, V)>(\n parentKV,\n leftChild.data.count,\n leftChild.data.kvs,\n rightChild.data.kvs,\n deleteIndex,\n deletionSide\n );\n (\n {\n data = {\n kvs;\n var count = count\n }\n },\n deletedKV\n )\n };\n\n // This type is used to signal to the parent calling context what happened in the level below\n type IntermediateInsertResult = {\n // element was inserted or replaced, returning the old value (?value or null)\n #insert : ?V;\n // child was full when inserting, so returns the promoted kv pair and the split left and right child\n #promote : {\n kv : (K, V);\n leftChild : Node;\n rightChild : Node\n }\n };\n\n // Helper for inserting into a leaf node\n func leafInsertHelper(leafNode : Leaf, order : Nat, compare : (K, K) -> Order.Order, key : K, value : V) : (IntermediateInsertResult) {\n // Perform binary search to see if the element exists in the node\n switch (NodeUtil.getKeyIndex(leafNode.data, compare, key)) {\n case (#keyFound(insertIndex)) {\n let previous = leafNode.data.kvs[insertIndex];\n leafNode.data.kvs[insertIndex] := ?(key, value);\n switch (previous) {\n case (?ov) { #insert(?ov.1) };\n case null { assert false; #insert(null) }; // the binary search already found an element, so this case should never happen\n }\n };\n case (#notFound(insertIndex)) {\n // Note: BTree will always have an order >= 4, so this will never have negative Nat overflow\n let maxKeys : Nat = order - 1;\n // If the leaf is full, insert, split the node, and promote the middle element\n if (leafNode.data.count >= maxKeys) {\n let (leftKVs, promotedParentElement, rightKVs) = BTreeHelper.insertOneAtIndexAndSplitArray(\n leafNode.data.kvs,\n (key, value),\n insertIndex\n );\n\n let leftCount = order / 2;\n let rightCount : Nat = if (order % 2 == 0) { leftCount - 1 } else {\n leftCount\n };\n\n (\n #promote({\n kv = promotedParentElement;\n leftChild = createLeaf(leftKVs, leftCount);\n rightChild = createLeaf(rightKVs, rightCount)\n })\n )\n }\n // Otherwise, insert at the specified index (shifting elements over if necessary)\n else {\n NodeUtil.insertAtIndexOfNonFullNodeData(leafNode.data, ?(key, value), insertIndex);\n #insert(null)\n }\n }\n }\n };\n\n // Helper for inserting into an internal node\n func internalInsertHelper(internalNode : Internal, order : Nat, compare : (K, K) -> Order.Order, key : K, value : V) : IntermediateInsertResult {\n switch (NodeUtil.getKeyIndex(internalNode.data, compare, key)) {\n case (#keyFound(insertIndex)) {\n let previous = internalNode.data.kvs[insertIndex];\n internalNode.data.kvs[insertIndex] := ?(key, value);\n switch (previous) {\n case (?ov) { #insert(?ov.1) };\n case null { assert false; #insert(null) }; // the binary search already found an element, so this case should never happen\n }\n };\n case (#notFound(insertIndex)) {\n let insertResult = switch (internalNode.children[insertIndex]) {\n case null { assert false; #insert(null) };\n case (?#leaf(leafNode)) {\n leafInsertHelper(leafNode, order, compare, key, value)\n };\n case (?#internal(internalChildNode)) {\n internalInsertHelper(internalChildNode, order, compare, key, value)\n }\n };\n\n switch (insertResult) {\n case (#insert(ov)) { #insert(ov) };\n case (#promote({ kv; leftChild; rightChild })) {\n // Note: BTree will always have an order >= 4, so this will never have negative Nat overflow\n let maxKeys : Nat = order - 1;\n // if current internal node is full, need to split the internal node\n if (internalNode.data.count >= maxKeys) {\n // insert and split internal kvs, determine new promotion target kv\n let (leftKVs, promotedParentElement, rightKVs) = BTreeHelper.insertOneAtIndexAndSplitArray(\n internalNode.data.kvs,\n (kv),\n insertIndex\n );\n\n // calculate the element count in the left KVs and the element count in the right KVs\n let leftCount = order / 2;\n let rightCount : Nat = if (order % 2 == 0) { leftCount - 1 } else {\n leftCount\n };\n\n // split internal children\n let (leftChildren, rightChildren) = NodeUtil.splitChildrenInTwoWithRebalances(\n internalNode.children,\n insertIndex,\n leftChild,\n rightChild\n );\n\n // send the kv to be promoted, as well as the internal children left and right split\n #promote({\n kv = promotedParentElement;\n leftChild = #internal({\n data = { kvs = leftKVs; var count = leftCount };\n children = leftChildren\n });\n rightChild = #internal({\n data = { kvs = rightKVs; var count = rightCount };\n children = rightChildren\n })\n })\n } else {\n // insert the new kvs into the internal node\n NodeUtil.insertAtIndexOfNonFullNodeData(internalNode.data, ?kv, insertIndex);\n // split and re-insert the single child that needs rebalancing\n NodeUtil.insertRebalancedChild(internalNode.children, insertIndex, leftChild, rightChild);\n #insert(null)\n }\n }\n }\n }\n }\n };\n\n func createLeaf(kvs : [var ?(K, V)], count : Nat) : Node {\n #leaf({\n data = {\n kvs;\n var count\n }\n })\n };\n\n // Additional functionality compared to original source.\n\n func mapData(data : Data, project : (K, V1) -> V2) : Data {\n {\n kvs = VarArray.map(\n data.kvs,\n func entry {\n switch entry {\n case (?kv) ?(kv.0, project kv);\n case null null\n }\n }\n );\n var count = data.count\n }\n };\n\n func mapNode(node : Node, project : (K, V1) -> V2) : Node {\n switch node {\n case (#leaf { data }) {\n #leaf { data = mapData(data, project) }\n };\n case (#internal { data; children }) {\n let mappedData = mapData(data, project);\n let mappedChildren = VarArray.map, ?Node>(\n children,\n func child {\n switch child {\n case null null;\n case (?childNode) ?mapNode(childNode, project)\n }\n }\n );\n # internal({\n data = mappedData;\n children = mappedChildren\n })\n }\n }\n };\n\n func cloneNode(node : Node) : Node = mapNode(node, func(k, v) = v);\n\n module BinarySearch {\n public type SearchResult = {\n #keyFound : Nat;\n #notFound : Nat\n };\n\n /// Searches an array for a specific key, returning the index it occurs at if #keyFound, or the child/insert index it may occur at\n /// if #notFound. This is used when determining if a key exists in an internal or leaf node, where a key should be inserted in a\n /// leaf node, or which child of an internal node a key could be in.\n ///\n /// Note: This function expects a mutable, nullable, array of keys in sorted order, where all nulls appear at the end of the array.\n /// This function may trap if a null value appears before any values. It also expects a maxIndex, which is the right-most index (bound)\n /// from which to begin the binary search (the left most bound is expected to be 0)\n ///\n /// Parameters:\n ///\n /// * array - the sorted array that the binary search is performed upon\n /// * compare - the comparator used to perform the search\n /// * searchKey - the key being compared against in the search\n /// * maxIndex - the right-most index (bound) from which to begin the search\n public func binarySearchNode(array : [var ?(K, V)], compare : (implicit : (K, K) -> Order.Order), searchKey : K, maxIndex : Nat) : SearchResult {\n // TODO: get rid of this check?\n // Trap if array is size 0 (should not happen)\n if (array.size() == 0) {\n assert false\n };\n\n // if all elements in the array are null (i.e. first element is null), return #notFound(0)\n if (maxIndex == 0) {\n return #notFound(0)\n };\n\n // Initialize search from first to last index\n var left : Nat = 0;\n var right = maxIndex; // maxIndex does not necessarily mean array.size() - 1\n // Search the array\n while (left < right) {\n let middle = (left + right) / 2;\n switch (array[middle]) {\n case null { assert false };\n case (?(key, _)) {\n switch (compare(searchKey, key)) {\n // If the element is present at the middle itself\n case (#equal) { return #keyFound(middle) };\n // If element is greater than mid, it can only be present in left subarray\n case (#greater) { left := middle + 1 };\n // If element is smaller than mid, it can only be present in right subarray\n case (#less) {\n right := if (middle == 0) { 0 } else { middle - 1 }\n }\n }\n }\n }\n };\n\n if (left == array.size()) {\n return #notFound(left)\n };\n\n // left == right\n switch (array[left]) {\n // inserting at end of array\n case null { #notFound(left) };\n case (?(key, _)) {\n switch (compare(searchKey, key)) {\n // if left is the key\n case (#equal) { #keyFound(left) };\n // if the key is not found, return notFound and the insert location\n case (#greater) { #notFound(left + 1) };\n case (#less) { #notFound(left) }\n }\n }\n }\n }\n };\n\n module NodeUtil {\n /// Inserts element at the given index into a non-full leaf node\n public func insertAtIndexOfNonFullNodeData(data : Data, kvPair : ?(K, V), insertIndex : Nat) {\n let currentLastElementIndex : Nat = if (data.count == 0) { 0 } else {\n data.count - 1\n };\n BTreeHelper.insertAtPosition<(K, V)>(data.kvs, kvPair, insertIndex, currentLastElementIndex);\n\n // increment the count of data in this node since just inserted an element\n data.count += 1\n };\n\n /// Inserts two rebalanced (split) child halves into a non-full array of children.\n public func insertRebalancedChild(children : [var ?Node], rebalancedChildIndex : Nat, leftChildInsert : Node, rightChildInsert : Node) {\n // Note: BTree will always have an order >= 4, so this will never have negative Nat overflow\n var j : Nat = children.size() - 2;\n\n // This is just a sanity check to ensure the children aren't already full (should split promote otherwise)\n // TODO: Remove this check once confident\n if (Option.isSome(children[j + 1])) { assert false };\n\n // Iterate backwards over the array and shift each element over to the right by one until the rebalancedChildIndex is hit\n while (j > rebalancedChildIndex) {\n children[j + 1] := children[j];\n j -= 1\n };\n\n // Insert both the left and right rebalanced children (replacing the pre-split child)\n children[j] := ?leftChildInsert;\n children[j + 1] := ?rightChildInsert\n };\n\n /// Used when splitting the children of an internal node\n ///\n /// Takes in the rebalanced child index, as well as both halves of the rebalanced child and splits the children, inserting the left and right child halves appropriately\n ///\n /// For more context, see the documentation for the splitArrayAndInsertTwo method in BTreeHelper.mo\n public func splitChildrenInTwoWithRebalances(\n children : [var ?Node],\n rebalancedChildIndex : Nat,\n leftChildInsert : Node,\n rightChildInsert : Node\n ) : ([var ?Node], [var ?Node]) {\n BTreeHelper.splitArrayAndInsertTwo>(children, rebalancedChildIndex, leftChildInsert, rightChildInsert)\n };\n\n /// Helper used to get the key index of of a key within a node\n ///\n /// for more, see the BinarySearch.binarySearchNode() documentation\n public func getKeyIndex(data : Data, compare : (K, K) -> Order.Order, key : K) : BinarySearch.SearchResult {\n BinarySearch.binarySearchNode(data.kvs, compare, key, data.count)\n };\n\n // calculates a BTree Node's minimum allowed keys given the order of the BTree\n public func minKeysFromOrder(order : Nat) : Nat {\n if (order % 2 == 0) { order / 2 - 1 } else { order / 2 }\n };\n\n // Given a node, get the maximum key value (right most leaf kv)\n public func getMaxKeyValue(node : ?Node) : (K, V) {\n switch (node) {\n case (?#leaf({ data })) {\n switch (data.kvs[data.count - 1]) {\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.NodeUtil.getMaxKeyValue, data cannot have more elements than it's count\")\n };\n case (?kv) { kv }\n }\n };\n case (?#internal({ data; children })) {\n getMaxKeyValue(children[data.count])\n };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.NodeUtil.getMaxKeyValue, the node provided cannot be null\")\n }\n }\n };\n\n type InorderBorrowType = {\n #predecessor;\n #successor\n };\n\n // attempts to retrieve the in max key of the child leaf node directly to the left if the node will allow it\n // returns the deleted max key if able to retrieve, null if not able\n //\n // mutates the predecessing node's keys\n public func borrowFromLeftLeafChild(children : [var ?Node], ofChildIndex : Nat) : ?(K, V) {\n let predecessorIndex : Nat = ofChildIndex - 1;\n borrowFromLeafChild(children, predecessorIndex, #predecessor)\n };\n\n // attempts to retrieve the in max key of the child leaf node directly to the right if the node will allow it\n // returns the deleted max key if able to retrieve, null if not able\n //\n // mutates the predecessing node's keys\n public func borrowFromRightLeafChild(children : [var ?Node], ofChildIndex : Nat) : ?(K, V) {\n borrowFromLeafChild(children, ofChildIndex + 1, #successor)\n };\n\n func borrowFromLeafChild(children : [var ?Node], borrowChildIndex : Nat, childSide : InorderBorrowType) : ?(K, V) {\n let minKeys = minKeysFromOrder(children.size());\n\n switch (children[borrowChildIndex]) {\n case (?#leaf({ data })) {\n if (data.count > minKeys) {\n // able to borrow a key-value from this child, so decrement the count of kvs\n data.count -= 1; // Since enforce order >= 4, there will always be at least 1 element per node\n switch (childSide) {\n case (#predecessor) {\n let deletedKV = data.kvs[data.count];\n data.kvs[data.count] := null;\n deletedKV\n };\n case (#successor) {\n ?BTreeHelper.deleteAndShift(data.kvs, 0)\n }\n }\n } else { null }\n };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.NodeUtil.borrowFromLeafChild, the node at the borrow child index cannot be null or internal\")\n }\n }\n };\n\n type InternalBorrowResult = {\n #borrowed : InternalBorrow;\n #notEnoughKeys : Internal\n };\n\n type InternalBorrow = {\n deletedSiblingKVPair : ?(K, V);\n child : ?Node\n };\n\n // Attempts to borrow a KV and child from an internal sibling node\n public func borrowFromInternalSibling(children : [var ?Node], borrowChildIndex : Nat, borrowType : InorderBorrowType) : InternalBorrowResult {\n let minKeys = minKeysFromOrder(children.size());\n\n switch (children[borrowChildIndex]) {\n case (?#internal({ data; children })) {\n if (data.count > minKeys) {\n data.count -= 1;\n switch (borrowType) {\n case (#predecessor) {\n let deletedSiblingKVPair = data.kvs[data.count];\n data.kvs[data.count] := null;\n let child = children[data.count + 1];\n children[data.count + 1] := null;\n #borrowed({\n deletedSiblingKVPair;\n child\n })\n };\n case (#successor) {\n #borrowed({\n deletedSiblingKVPair = ?BTreeHelper.deleteAndShift(data.kvs, 0);\n child = ?BTreeHelper.deleteAndShift(children, 0)\n })\n }\n }\n } else { #notEnoughKeys({ data; children }) }\n };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Map.NodeUtil.borrowFromInternalSibling from internal sibling, the child at the borrow index cannot be null or a leaf\")\n }\n }\n };\n\n type SiblingSide = { #left; #right };\n\n // Rotates the borrowed KV and child from sibling side of the internal node to the internal child recipient\n public func rotateBorrowedKVsAndChildFromSibling(\n internalNode : Internal,\n parentRotateIndex : Nat,\n borrowedSiblingKVPair : ?(K, V),\n borrowedSiblingChild : ?Node,\n internalChildRecipient : Internal,\n siblingSide : SiblingSide\n ) {\n // if borrowing from the left, the rotated key and child will always be inserted first\n // if borrowing from the right, the rotated key and child will always be inserted last\n let (kvIndex, childIndex) = switch (siblingSide) {\n case (#left) { (0, 0) };\n case (#right) {\n (internalChildRecipient.data.count, internalChildRecipient.data.count + 1)\n }\n };\n\n // get the parent kv that will be pushed down the the child\n let kvPairToBePushedToChild = internalNode.data.kvs[parentRotateIndex];\n // replace the parent with the sibling kv\n internalNode.data.kvs[parentRotateIndex] := borrowedSiblingKVPair;\n // push the kv and child down into the internalChild\n insertAtIndexOfNonFullNodeData(internalChildRecipient.data, kvPairToBePushedToChild, kvIndex);\n\n BTreeHelper.insertAtPosition>(internalChildRecipient.children, borrowedSiblingChild, childIndex, internalChildRecipient.data.count)\n };\n\n // Merges the kvs and children of two internal nodes, pushing the parent kv in between the right and left halves\n public func mergeChildrenAndPushDownParent(leftChild : Internal, parentKV : ?(K, V), rightChild : Internal) : Internal {\n {\n data = mergeData(leftChild.data, parentKV, rightChild.data);\n children = mergeChildren(leftChild.children, rightChild.children)\n }\n };\n\n func mergeData(leftData : Data, parentKV : ?(K, V), rightData : Data) : Data {\n assert leftData.count <= minKeysFromOrder(leftData.kvs.size() + 1);\n assert rightData.count <= minKeysFromOrder(rightData.kvs.size() + 1);\n\n let mergedKVs = VarArray.repeat(null, leftData.kvs.size());\n var i = 0;\n while (i < leftData.count) {\n mergedKVs[i] := leftData.kvs[i];\n i += 1\n };\n\n mergedKVs[i] := parentKV;\n i += 1;\n\n var j = 0;\n while (j < rightData.count) {\n mergedKVs[i] := rightData.kvs[j];\n i += 1;\n j += 1\n };\n\n {\n kvs = mergedKVs;\n var count = leftData.count + 1 + rightData.count\n }\n };\n\n func mergeChildren(leftChildren : [var ?Node], rightChildren : [var ?Node]) : [var ?Node] {\n let mergedChildren = VarArray.repeat>(null, leftChildren.size());\n var i = 0;\n\n while (Option.isSome(leftChildren[i])) {\n mergedChildren[i] := leftChildren[i];\n i += 1\n };\n\n var j = 0;\n while (Option.isSome(rightChildren[j])) {\n mergedChildren[i] := rightChildren[j];\n i += 1;\n j += 1\n };\n\n mergedChildren\n }\n }\n}\n"},"VarArray.mo":{"content":"/// Provides extended utility functions on mutable Arrays (`[var]`).\n///\n/// Note the difference between mutable (`[var]`) and immutable (`[]`) arrays.\n/// Mutable arrays allow their elements to be modified after creation, while\n/// immutable arrays are fixed once created.\n///\n/// WARNING: If you are looking for a list that can grow and shrink in size,\n/// it is recommended you use `List` for those purposes.\n/// Arrays must be created with a fixed size.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import VarArray \"mo:core/VarArray\";\n/// ```\n\nimport Types \"Types\";\nimport Order \"Order\";\nimport Result \"Result\";\nimport Option \"Option\";\nimport Prim \"mo:⛔\";\nimport InsertionSort \"internal/SortHelper\";\n\nmodule {\n let nat = Prim.nat32ToNat;\n\n /// Creates an empty mutable array (equivalent to `[var]`).\n ///\n /// ```motoko include=import\n /// let array = VarArray.empty();\n /// assert array.size() == 0;\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func empty() : [var T] = [var];\n\n /// Creates a mutable array containing `item` repeated `size` times.\n ///\n /// ```motoko include=import\n /// import Text \"mo:core/Text\";\n ///\n /// let array = VarArray.repeat(\"Echo\", 3);\n /// assert VarArray.equal(array, [var \"Echo\", \"Echo\", \"Echo\"], Text.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func repeat(item : T, size : Nat) : [var T] = Prim.Array_init(size, item);\n\n /// Duplicates `array`, returning a shallow copy of the original.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array1 = [var 1, 2, 3];\n /// let array2 = VarArray.clone(array1);\n /// array2[0] := 0;\n /// assert VarArray.equal(array1, [var 1, 2, 3], Nat.equal);\n /// assert VarArray.equal(array2, [var 0, 2, 3], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n public func clone(self : [var T]) : [var T] = Prim.Array_tabulateVar(self.size(), func i = self[i]);\n\n /// Creates a mutable array of size `size`. Each element at index i\n /// is created by applying `generator` to i.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array : [var Nat] = VarArray.tabulate(4, func i = i * 2);\n /// assert VarArray.equal(array, [var 0, 2, 4, 6], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `generator` runs in O(1) time and space.\n public let tabulate : (size : Nat, generator : Nat -> T) -> [var T] = Prim.Array_tabulateVar;\n\n /// Tests if two arrays contain equal values (i.e. they represent the same\n /// list of elements). Uses `equal` to compare elements in the arrays.\n ///\n /// ```motoko include=import\n /// // Use the equal function from the Nat module to compare Nats\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array1 = [var 0, 1, 2, 3];\n /// let array2 = [var 0, 1, 2, 3];\n /// assert VarArray.equal(array1, array2, Nat.equal);\n /// ```\n ///\n /// Runtime: O(size1 + size2)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `equal` runs in O(1) time and space.\n public func equal(self : [var T], other : [var T], equal : (implicit : (T, T) -> Bool)) : Bool {\n let size1 = self.size();\n let size2 = other.size();\n if (size1 != size2) {\n return false\n };\n var i = 0;\n while (i < size1) {\n if (not equal(self[i], other[i])) {\n return false\n };\n i += 1\n };\n true\n };\n\n /// Returns the first value in `array` for which `predicate` returns true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// ```motoko include=import\n /// let array = [var 1, 9, 4, 8];\n /// let found = VarArray.find(array, func x = x > 8);\n /// assert found == ?9;\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func find(self : [var T], predicate : T -> Bool) : ?T {\n for (element in self.vals()) {\n if (predicate element) {\n return ?element\n }\n };\n null\n };\n\n /// Returns the first index in `array` for which `predicate` returns true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// ```motoko include=import\n /// let array = [var 'A', 'B', 'C', 'D'];\n /// let found = VarArray.findIndex(array, func(x) { x == 'C' });\n /// assert found == ?2;\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func findIndex(self : [var T], predicate : T -> Bool) : ?Nat {\n for ((index, element) in enumerate(self)) {\n if (predicate element) {\n return ?index\n }\n };\n null\n };\n\n /// Create a new mutable array by concatenating the values of `array1` and `array2`.\n /// Note that `VarArray.concat` copies its arguments and has linear complexity.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array1 = [var 1, 2, 3];\n /// let array2 = [var 4, 5, 6];\n /// let result = VarArray.concat(array1, array2);\n /// assert VarArray.equal(result, [var 1, 2, 3, 4, 5, 6], Nat.equal);\n /// ```\n /// Runtime: O(size1 + size2)\n ///\n /// Space: O(size1 + size2)\n public func concat(self : [var T], other : [var T]) : [var T] {\n let size1 = self.size();\n let size2 = other.size();\n tabulate(\n size1 + size2,\n func i {\n if (i < size1) {\n self[i]\n } else {\n other[i - size1]\n }\n }\n )\n };\n\n /// Creates a new sorted copy of the mutable array according to `compare`.\n /// Sort is deterministic and stable.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 4, 2, 6];\n /// let sorted = VarArray.sort(array, Nat.compare);\n /// assert VarArray.equal(sorted, [var 2, 4, 6], Nat.equal);\n /// ```\n /// Runtime: O(size * log(size))\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func sort(self : [var T], compare : (implicit : (T, T) -> Order.Order)) : [var T] {\n let newArray = clone(self);\n sortInPlace(newArray, compare);\n newArray\n };\n\n /// Sorts the elements in a mutable array in place according to `compare`.\n /// Sort is deterministic and stable. This modifies the original array.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 4, 2, 6];\n /// VarArray.sortInPlace(array, Nat.compare);\n /// assert VarArray.equal(array, [var 2, 4, 6], Nat.equal);\n /// ```\n /// Runtime: O(size * log(size))\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func sortInPlace(self : [var T], compare : (implicit : (T, T) -> Order.Order)) : () {\n let size = Prim.natToNat32(self.size());\n if (size <= 1) return;\n if (size <= 8) {\n InsertionSort.insertionSortSmall(self, self, compare, 0 : Nat32, size);\n return\n };\n let buffer = repeat(self[0], nat(size / 2));\n mergeSortRec(self, buffer, compare, 0 : Nat32, size, true, 0 : Nat32)\n };\n\n // input data is alwways in array\n // even: write output data to array in place\n // odd: write output data to buffer at offset\n // offset is only used when odd\n func mergeSortRec(\n array : [var T],\n buffer : [var T],\n compare : (T, T) -> Order.Order,\n from : Nat32,\n to : Nat32,\n even : Bool,\n offset : Nat32\n ) {\n debug assert from < to;\n let size = to -% from;\n debug assert size >= 4;\n\n if (size <= 8) {\n if (even) {\n InsertionSort.insertionSortSmall(array, array, compare, from, size); // sorts array in place\n } else {\n InsertionSort.insertionSortSmallMove(array, buffer, compare, from, size, offset); // sorts to buffer at offset\n };\n return\n };\n\n let len1 = size / 2;\n let mid = from +% len1;\n if (even) {\n // merge to array in place\n mergeSortRec(array, buffer, compare, mid, to, true, 0 : Nat32); // sort upper half to array in place\n mergeSortRec(array, buffer, compare, from, mid, false, 0 : Nat32); // sort lower half to beginning of buffer\n merge1(array, buffer, compare, from, mid, to); // merge to array in place\n } else {\n // merge to buffer at offset\n mergeSortRec(array, buffer, compare, from, mid, true, 0 : Nat32); // lower half to array in place\n mergeSortRec(array, buffer, compare, mid, to, false, offset +% len1); // sort upper half to buffer starting shifted offset\n merge2(array, buffer, compare, from, mid, size, offset); // merge to buffer at offset\n }\n };\n\n func merge1(array : [var T], buffer : [var T], compare : (T, T) -> Order.Order, from : Nat32, mid : Nat32, to : Nat32) {\n debug assert from < mid;\n debug assert mid < to;\n let len = mid -% from;\n var pos = from;\n var i = 0 : Nat32;\n var j = mid;\n\n var iElem = buffer[nat(i)];\n var jElem = array[nat(j)];\n label L loop {\n switch (compare(jElem, iElem)) {\n case (#less) {\n array[nat(pos)] := jElem;\n j +%= 1;\n pos +%= 1;\n if (j == to) {\n while (i < len) {\n array[nat(pos)] := buffer[nat(i)];\n i +%= 1;\n pos +%= 1\n };\n break L\n };\n jElem := array[nat(j)]\n };\n case (_) {\n array[nat(pos)] := iElem;\n i +%= 1;\n pos +%= 1;\n if (i == len) break L;\n iElem := buffer[nat(i)]\n }\n }\n }\n };\n\n func merge2(array : [var T], buffer : [var T], compare : (T, T) -> Order.Order, from : Nat32, mid : Nat32, size : Nat32, offset : Nat32) {\n debug assert from < mid;\n debug assert mid < from +% size;\n let len = mid -% from;\n var pos = offset;\n var i = from;\n var j = offset +% len;\n let j_max = offset +% size;\n\n var iElem = array[nat(i)];\n var jElem = buffer[nat(j)];\n label L loop {\n switch (compare(jElem, iElem)) {\n case (#less) {\n buffer[nat(pos)] := jElem;\n j +%= 1;\n pos +%= 1;\n if (j == j_max) {\n while (i < mid) {\n buffer[nat(pos)] := array[nat(i)];\n i +%= 1;\n pos +%= 1\n };\n break L\n };\n jElem := buffer[nat(j)]\n };\n case (_) {\n buffer[nat(pos)] := iElem;\n i +%= 1;\n pos +%= 1;\n if (i == mid) break L;\n iElem := array[nat(i)]\n }\n }\n }\n };\n\n /// Creates a new mutable array by reversing the order of elements in `array`.\n /// The original array is not modified.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 10, 11, 12];\n /// let reversed = VarArray.reverse(array);\n /// assert VarArray.equal(reversed, [var 12, 11, 10], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func reverse(self : [var T]) : [var T] {\n let size = self.size();\n tabulate(size, func i = self[size - i - 1])\n };\n\n /// Reverses the order of elements in a mutable array in place.\n /// This modifies the original array.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 10, 11, 12];\n /// VarArray.reverseInPlace(array);\n /// assert VarArray.equal(array, [var 12, 11, 10], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func reverseInPlace(self : [var T]) : () {\n let size = self.size();\n if (size == 0) {\n return\n };\n var i = 0;\n var j = (size - 1) : Nat;\n while (i < j) {\n let temp = self[i];\n self[i] := self[j];\n self[j] := temp;\n i += 1;\n j -= 1\n }\n };\n\n /// Calls `f` with each element in `array`.\n /// Retains original ordering of elements.\n ///\n /// ```motoko include=import\n /// var sum = 0;\n /// let array = [var 0, 1, 2, 3];\n /// VarArray.forEach(array, func(x) {\n /// sum += x;\n /// });\n /// assert sum == 6;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func forEach(self : [var T], f : T -> ()) {\n for (item in self.vals()) {\n f(item)\n }\n };\n\n /// Creates a new mutable array by applying `f` to each element in `array`. `f` \"maps\"\n /// each element it is applied to of type `T` to an element of type `R`.\n /// Retains original ordering of elements.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 0, 1, 2, 3];\n /// let array2 = VarArray.map(array, func x = x * 2);\n /// assert VarArray.equal(array2, [var 0, 2, 4, 6], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func map(self : [var T], f : T -> R) : [var R] {\n tabulate(\n self.size(),\n func(index) {\n f(self[index])\n }\n )\n };\n\n /// Applies `f` to each element of `array` in place,\n /// retaining the original ordering of elements.\n /// This modifies the original array.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 0, 1, 2, 3];\n /// VarArray.mapInPlace(array, func x = x * 3);\n /// assert VarArray.equal(array, [var 0, 3, 6, 9], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func mapInPlace(self : [var T], f : T -> T) {\n var index = 0;\n let size = self.size();\n while (index < size) {\n self[index] := f(self[index]);\n index += 1\n }\n };\n\n /// Creates a new mutable array by applying `predicate` to every element\n /// in `array`, retaining the elements for which `predicate` returns true.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 4, 2, 6, 1, 5];\n /// let evenElements = VarArray.filter(array, func x = x % 2 == 0);\n /// assert VarArray.equal(evenElements, [var 4, 2, 6], Nat.equal);\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func filter(self : [var T], f : T -> Bool) : [var T] {\n var count = 0;\n let keep = Prim.Array_tabulate(\n self.size(),\n func i {\n if (f(self[i])) {\n count += 1;\n true\n } else {\n false\n }\n }\n );\n var nextKeep = 0;\n tabulate(\n count,\n func _ {\n while (not keep[nextKeep]) {\n nextKeep += 1\n };\n nextKeep += 1;\n self[nextKeep - 1]\n }\n )\n };\n\n /// Creates a new mutable array by applying `f` to each element in `array`,\n /// and keeping all non-null elements. The ordering is retained.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// let array = [var 4, 2, 0, 1];\n /// let newArray =\n /// VarArray.filterMap( // mapping from Nat to Text values\n /// array,\n /// func x = if (x == 0) { null } else { ?Nat.toText(100 / x) } // can't divide by 0, so return null\n /// );\n /// assert VarArray.equal(newArray, [var \"25\", \"50\", \"100\"], Text.equal);\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func filterMap(self : [var T], f : T -> ?R) : [var R] {\n var count = 0;\n let options = Prim.Array_tabulate(\n self.size(),\n func i {\n let result = f(self[i]);\n switch (result) {\n case (?element) {\n count += 1;\n result\n };\n case null {\n null\n }\n }\n }\n );\n\n var nextSome = 0;\n tabulate(\n count,\n func _ {\n while (Option.isNull(options[nextSome])) {\n nextSome += 1\n };\n nextSome += 1;\n switch (options[nextSome - 1]) {\n case (?element) element;\n case null {\n Prim.trap \"VarArray.filterMap(): malformed array\"\n }\n }\n }\n )\n };\n\n /// Creates a new mutable array by applying `f` to each element in `array`.\n /// If any invocation of `f` produces an `#err`, returns an `#err`. Otherwise\n /// returns an `#ok` containing the new array.\n ///\n /// ```motoko include=import\n /// import Result \"mo:core/Result\";\n ///\n /// let array = [var 4, 3, 2, 1, 0];\n /// // divide 100 by every element in the array\n /// let result = VarArray.mapResult(array, func x {\n /// if (x > 0) {\n /// #ok(100 / x)\n /// } else {\n /// #err \"Cannot divide by zero\"\n /// }\n /// });\n /// assert Result.isErr(result);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n /// @deprecated M0235\n public func mapResult(self : [var T], f : T -> Result.Result) : Result.Result<[var R], E> {\n let size = self.size();\n\n var error : ?Result.Result<[var R], E> = null;\n let results = tabulate(\n size,\n func i {\n switch (f(self[i])) {\n case (#ok element) {\n ?element\n };\n case (#err e) {\n switch (error) {\n case null {\n // only take the first error\n error := ?(#err e)\n };\n case _ {}\n };\n null\n }\n }\n }\n );\n\n switch error {\n case null {\n // unpack the option\n #ok(\n map(\n results,\n func element {\n switch element {\n case (?element) {\n element\n };\n case null {\n Prim.trap \"VarArray.mapResults(): malformed array\"\n }\n }\n }\n )\n )\n };\n case (?error) {\n error\n }\n }\n };\n\n /// Creates a new array by applying `f` to each element in `array` and its index.\n /// Retains original ordering of elements.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 10, 10, 10, 10];\n /// let newArray = VarArray.mapEntries(array, func (x, i) = i * x);\n /// assert VarArray.equal(newArray, [var 0, 10, 20, 30], Nat.equal);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func mapEntries(self : [var T], f : (T, Nat) -> R) : [var R] {\n tabulate(self.size(), func i = f(self[i], i))\n };\n\n /// Creates a new mutable array by applying `k` to each element in `array`,\n /// and concatenating the resulting arrays in order.\n ///\n /// ```motoko include=import\n /// import Int \"mo:core/Int\"\n ///\n /// let array = [var 1, 2, 3, 4];\n /// let newArray = VarArray.flatMap(array, func x = [x, -x].vals());\n /// assert VarArray.equal(newArray, [var 1, -1, 2, -2, 3, -3, 4, -4], Int.equal);\n /// ```\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n /// *Runtime and space assumes that `k` runs in O(1) time and space.\n public func flatMap(self : [var T], k : T -> Types.Iter) : [var R] {\n var flatSize = 0;\n let arrays = Prim.Array_tabulate<[var R]>(\n self.size(),\n func i {\n let subArray = fromIter(k(self[i])); // TODO: optimize\n flatSize += subArray.size();\n subArray\n }\n );\n\n // could replace with a call to flatten,\n // but it would require an extra pass (to compute `flatSize`)\n var outer = 0;\n var inner = 0;\n tabulate(\n flatSize,\n func _ {\n while (inner == arrays[outer].size()) {\n inner := 0;\n outer += 1\n };\n let element = arrays[outer][inner];\n inner += 1;\n element\n }\n )\n };\n\n /// Collapses the elements in `array` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// left to right.\n ///\n /// ```motoko include=import\n /// import {add} \"mo:core/Nat\";\n ///\n /// let array = [var 4, 2, 0, 1];\n /// let sum =\n /// VarArray.foldLeft(\n /// array,\n /// 0, // start the sum at 0\n /// func(sumSoFar, x) = sumSoFar + x // this entire function can be replaced with `add`!\n /// );\n /// assert sum == 7;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `combine` runs in O(1) time and space.\n public func foldLeft(self : [var T], base : A, combine : (A, T) -> A) : A {\n var acc = base;\n for (element in self.vals()) {\n acc := combine(acc, element)\n };\n acc\n };\n\n /// Collapses the elements in `array` into a single value by starting with `base`\n /// and progessively combining elements into `base` with `combine`. Iteration runs\n /// right to left.\n ///\n /// ```motoko include=import\n /// import {toText} \"mo:core/Nat\";\n ///\n /// let array = [var 1, 9, 4, 8];\n /// let bookTitle = VarArray.foldRight(array, \"\", func(x, acc) = toText(x) # acc);\n /// assert bookTitle == \"1948\";\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `combine` runs in O(1) time and space.\n public func foldRight(self : [var T], base : A, combine : (T, A) -> A) : A {\n var acc = base;\n let size = self.size();\n var i = size;\n while (i > 0) {\n i -= 1;\n acc := combine(self[i], acc)\n };\n acc\n };\n\n /// Combines an iterator of mutable arrays into a single mutable array.\n /// Retains the original ordering of the elements.\n ///\n /// Consider using `VarArray.flatten()` for better performance.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let arrays : [[var Nat]] = [[var 0, 1, 2], [var 2, 3], [var], [var 4]];\n /// let joinedArray = VarArray.join(arrays.vals());\n /// assert VarArray.equal(joinedArray, [var 0, 1, 2, 2, 3, 4], Nat.equal);\n /// ```\n ///\n /// Runtime: O(number of elements in array)\n ///\n /// Space: O(number of elements in array)\n public func join(self : Types.Iter<[var T]>) : [var T] {\n flatten(fromIter(self))\n };\n\n /// Combines a mutable array of mutable arrays into a single mutable array. Retains the original\n /// ordering of the elements.\n ///\n /// This has better performance compared to `VarArray.join()`.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let arrays : [var [var Nat]] = [var [var 0, 1, 2], [var 2, 3], [var], [var 4]];\n /// let flatArray = VarArray.flatten(arrays);\n /// assert VarArray.equal(flatArray, [var 0, 1, 2, 2, 3, 4], Nat.equal);\n /// ```\n ///\n /// Runtime: O(number of elements in array)\n ///\n /// Space: O(number of elements in array)\n public func flatten(self : [var [var T]]) : [var T] {\n var flatSize = 0;\n for (subArray in self.vals()) {\n flatSize += subArray.size()\n };\n\n var outer = 0;\n var inner = 0;\n tabulate(\n flatSize,\n func _ {\n while (inner == self[outer].size()) {\n inner := 0;\n outer += 1\n };\n let element = self[outer][inner];\n inner += 1;\n element\n }\n )\n };\n\n /// Create an array containing a single value.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = VarArray.singleton(2);\n /// assert VarArray.equal(array, [var 2], Nat.equal);\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func singleton(element : T) : [var T] = [var element];\n\n /// Returns the size of a mutable array. Equivalent to `array.size()`.\n public func size(self : [var T]) : Nat = self.size();\n\n /// Returns whether a mutable array is empty, i.e. contains zero elements.\n public func isEmpty(self : [var T]) : Bool = self.size() == 0;\n\n /// Transforms an immutable array into a mutable array.\n ///\n /// ```motoko include=import\n /// let array = [0, 1, 2];\n /// let varArray = VarArray.fromArray(array);\n /// assert varArray.size() == 3;\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n /// @deprecated M0235\n public func fromArray(array : [T]) : [var T] = Prim.Array_tabulateVar(array.size(), func i = array[i]);\n\n /// Converts an iterator to a mutable array.\n public func fromIter(iter : Types.Iter) : [var T] {\n var list : Types.Pure.List = null;\n var size = 0;\n label l loop {\n switch (iter.next()) {\n case (?element) {\n list := ?(element, list);\n size += 1\n };\n case null { break l }\n }\n };\n if (size == 0) { return [var] };\n let array = Prim.Array_init(\n size,\n switch list {\n case (?(h, _)) h;\n case null {\n Prim.trap(\"VarArray.fromIter(): unreachable\")\n }\n }\n );\n var i = size;\n while (i > 0) {\n i -= 1;\n switch list {\n case (?(h, t)) {\n array[i] := h;\n list := t\n };\n case null {\n Prim.trap(\"VarArray.fromIter(): unreachable\")\n }\n }\n };\n array\n };\n\n /// Returns an iterator (`Iter`) over the indices of `array`.\n /// An iterator provides a single method `next()`, which returns\n /// indices in order, or `null` when out of index to iterate over.\n ///\n /// NOTE: You can also use `array.keys()` instead of this function. See example\n /// below.\n ///\n /// ```motoko include=import\n /// let array = [var 10, 11, 12];\n ///\n /// var sum = 0;\n /// for (element in array.keys()) {\n /// sum += element;\n /// };\n /// assert sum == 3; // 0 + 1 + 2\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func keys(self : [var T]) : Types.Iter = self.keys();\n\n /// Iterator provides a single method `next()`, which returns\n /// elements in order, or `null` when out of elements to iterate over.\n ///\n /// Note: You can also use `array.values()` instead of this function. See example\n /// below.\n ///\n /// ```motoko include=import\n /// let array = [var 10, 11, 12];\n ///\n /// var sum = 0;\n /// for (element in array.values()) {\n /// sum += element;\n /// };\n /// assert sum == 33; // 10 + 11 + 12\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func values(self : [var T]) : Types.Iter = self.vals();\n\n /// Returns an iterator that provides pairs of (index, element) in order, or `null`\n /// when out of elements to iterate over.\n ///\n /// ```motoko include=import\n /// let array = [var 10, 11, 12];\n ///\n /// var sum = 0;\n /// for ((index, element) in VarArray.enumerate(array)) {\n /// sum += element;\n /// };\n /// assert sum == 33;\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func enumerate(self : [var T]) : Types.Iter<(Nat, T)> = object {\n let size = self.size();\n var index = 0;\n public func next() : ?(Nat, T) {\n if (index >= size) {\n return null\n };\n let i = index;\n index += 1;\n ?(i, self[i])\n }\n };\n\n /// Returns true if all elements in `array` satisfy the predicate function.\n ///\n /// ```motoko include=import\n /// let array = [var 1, 2, 3, 4];\n /// assert VarArray.all(array, func x = x > 0);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func all(self : [var T], predicate : T -> Bool) : Bool {\n for (element in self.values()) {\n if (not predicate(element)) {\n return false\n }\n };\n true\n };\n\n /// Returns true if any element in `array` satisfies the predicate function.\n ///\n /// ```motoko include=import\n /// let array = [var 1, 2, 3, 4];\n /// assert VarArray.any(array, func x = x > 3);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func any(self : [var T], predicate : T -> Bool) : Bool {\n for (element in self.values()) {\n if (predicate(element)) {\n return true\n }\n };\n false\n };\n\n /// Returns the index of the first `element` in the `array`.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n ///\n /// let array = [var 'c', 'o', 'f', 'f', 'e', 'e'];\n /// assert VarArray.indexOf(array, Char.equal, 'c') == ?0;\n /// assert VarArray.indexOf(array, Char.equal, 'f') == ?2;\n /// assert VarArray.indexOf(array, Char.equal, 'g') == null;\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func indexOf(self : [var T], equal : (implicit : (T, T) -> Bool), element : T) : ?Nat = nextIndexOf(self, equal, element, 0);\n\n /// Returns the index of the next occurence of `element` in the `array` starting from the `from` index (inclusive).\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n ///\n /// let array = [var 'c', 'o', 'f', 'f', 'e', 'e'];\n /// assert VarArray.nextIndexOf(array, Char.equal, 'c', 0) == ?0;\n /// assert VarArray.nextIndexOf(array, Char.equal, 'f', 0) == ?2;\n /// assert VarArray.nextIndexOf(array, Char.equal, 'f', 2) == ?2;\n /// assert VarArray.nextIndexOf(array, Char.equal, 'f', 3) == ?3;\n /// assert VarArray.nextIndexOf(array, Char.equal, 'f', 4) == null;\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func nextIndexOf(self : [var T], equal : (implicit : (T, T) -> Bool), element : T, fromInclusive : Nat) : ?Nat {\n var index = fromInclusive;\n let size = self.size();\n while (index < size) {\n if (equal(self[index], element)) {\n return ?index\n } else {\n index += 1\n }\n };\n null\n };\n\n /// Returns the index of the last `element` in the `array`.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n ///\n /// let array = [var 'c', 'o', 'f', 'f', 'e', 'e'];\n /// assert VarArray.lastIndexOf(array, Char.equal, 'c') == ?0;\n /// assert VarArray.lastIndexOf(array, Char.equal, 'f') == ?3;\n /// assert VarArray.lastIndexOf(array, Char.equal, 'e') == ?5;\n /// assert VarArray.lastIndexOf(array, Char.equal, 'g') == null;\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func lastIndexOf(self : [var T], equal : (implicit : (T, T) -> Bool), element : T) : ?Nat = prevIndexOf(self, equal, element, self.size());\n\n /// Returns the index of the previous occurence of `element` in the `array` starting from the `from` index (exclusive).\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n /// let array = [var 'c', 'o', 'f', 'f', 'e', 'e'];\n /// assert VarArray.prevIndexOf(array, Char.equal, 'c', array.size()) == ?0;\n /// assert VarArray.prevIndexOf(array, Char.equal, 'e', array.size()) == ?5;\n /// assert VarArray.prevIndexOf(array, Char.equal, 'e', 5) == ?4;\n /// assert VarArray.prevIndexOf(array, Char.equal, 'e', 4) == null;\n /// ```\n ///\n /// Runtime: O(array.size());\n /// Space: O(1);\n public func prevIndexOf(self : [var T], equal : (implicit : (T, T) -> Bool), element : T, fromExclusive : Nat) : ?Nat {\n var i = fromExclusive;\n while (i > 0) {\n i -= 1;\n if (equal(self[i], element)) {\n return ?i\n }\n };\n null\n };\n\n /// Returns true if the `array` contains `element` using the provided `equal` function.\n ///\n /// ```motoko include=import\n /// import Char \"mo:core/Char\";\n ///\n /// let array = [var 'c', 'o', 'f', 'f', 'e', 'e'];\n /// assert VarArray.contains(array, Char.equal, 'f');\n /// assert not VarArray.contains(array, Char.equal, 'g');\n /// ```\n ///\n /// Runtime: O(array.size())\n ///\n /// Space: O(1)\n public func contains(self : [var T], equal : (implicit : (T, T) -> Bool), element : T) : Bool {\n for (item in self.vals()) {\n if (equal(item, element)) {\n return true\n }\n };\n false\n };\n\n /// Returns an iterator over a slice of `array` starting at `fromInclusive` up to (but not including) `toExclusive`.\n ///\n /// Negative indices are relative to the end of the array. For example, `-1` corresponds to the last element in the array.\n ///\n /// If the indices are out of bounds, they are clamped to the array bounds.\n /// If the first index is greater than the second, the function returns an empty iterator.\n ///\n /// ```motoko include=import\n /// let array = [var 1, 2, 3, 4, 5];\n /// let iter1 = VarArray.range(array, 3, array.size());\n /// assert iter1.next() == ?4;\n /// assert iter1.next() == ?5;\n /// assert iter1.next() == null;\n ///\n /// let iter2 = VarArray.range(array, 3, -1);\n /// assert iter2.next() == ?4;\n /// assert iter2.next() == null;\n ///\n /// let iter3 = VarArray.range(array, 0, 0);\n /// assert iter3.next() == null;\n /// ```\n ///\n /// Runtime: O(1)\n ///\n /// Space: O(1)\n public func range(self : [var T], fromInclusive : Int, toExclusive : Int) : Types.Iter {\n let size = self.size();\n // Convert negative indices to positive and handle bounds\n let startInt = if (fromInclusive < 0) {\n let s = size + fromInclusive;\n if (s < 0) { 0 } else { s }\n } else {\n if (fromInclusive > size) { size } else { fromInclusive }\n };\n let endInt = if (toExclusive < 0) {\n let e = size + toExclusive;\n if (e < 0) { 0 } else { e }\n } else {\n if (toExclusive > size) { size } else { toExclusive }\n };\n // Convert to Nat (values are non-negative due to bounds checking above)\n let start = Prim.abs(startInt);\n let end = Prim.abs(endInt);\n object {\n var pos = start;\n public func next() : ?T {\n if (pos >= end) {\n null\n } else {\n let elem = self[pos];\n pos += 1;\n ?elem\n }\n }\n }\n };\n\n /// Returns a new array containing elements from `array` starting at index `fromInclusive` up to (but not including) index `toExclusive`.\n /// If the indices are out of bounds, they are clamped to the array bounds.\n ///\n /// ```motoko include=import\n /// let array = [var 1, 2, 3, 4, 5];\n ///\n /// let slice1 = VarArray.sliceToArray(array, 1, 4);\n /// assert slice1 == [2, 3, 4];\n ///\n /// let slice2 = VarArray.sliceToArray(array, 1, -1);\n /// assert slice2 == [2, 3, 4];\n /// ```\n ///\n /// Runtime: O(toExclusive - fromInclusive)\n ///\n /// Space: O(toExclusive - fromInclusive)\n public func sliceToArray(self : [var T], fromInclusive : Int, toExclusive : Int) : [T] {\n let size = self.size();\n // Convert negative indices to positive and handle bounds\n let startInt = if (fromInclusive < 0) {\n let s = size + fromInclusive;\n if (s < 0) { 0 } else { s }\n } else {\n if (fromInclusive > size) { size } else { fromInclusive }\n };\n let endInt = if (toExclusive < 0) {\n let e = size + toExclusive;\n if (e < 0) { 0 } else { e }\n } else {\n if (toExclusive > size) { size } else { toExclusive }\n };\n // Convert to Nat (always non-negative due to bounds checking above)\n let start = Prim.abs(startInt);\n let end = Prim.abs(endInt);\n if (start >= end) {\n return []\n };\n Prim.Array_tabulate(end - start, func i = self[start + i])\n };\n\n /// Returns a new mutable array containing elements from `array` starting at index `fromInclusive` up to (but not including) index `toExclusive`.\n /// If the indices are out of bounds, they are clamped to the array bounds.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 1, 2, 3, 4, 5];\n ///\n /// let slice1 = VarArray.sliceToVarArray(array, 1, 4);\n /// assert VarArray.equal(slice1, [var 2, 3, 4], Nat.equal);\n ///\n /// let slice2 = VarArray.sliceToVarArray(array, 1, -1);\n /// assert VarArray.equal(slice2, [var 2, 3, 4], Nat.equal);\n /// ```\n ///\n /// Runtime: O(toExclusive - fromInclusive)\n ///\n /// Space: O(toExclusive - fromInclusive)\n public func sliceToVarArray(self : [var T], fromInclusive : Int, toExclusive : Int) : [var T] {\n let size = self.size();\n // Convert negative indices to positive and handle bounds\n let startInt = if (fromInclusive < 0) {\n let s = size + fromInclusive;\n if (s < 0) { 0 } else { s }\n } else {\n if (fromInclusive > size) { size } else { fromInclusive }\n };\n let endInt = if (toExclusive < 0) {\n let e = size + toExclusive;\n if (e < 0) { 0 } else { e }\n } else {\n if (toExclusive > size) { size } else { toExclusive }\n };\n // Convert to Nat (always non-negative due to bounds checking above)\n let start = Prim.abs(startInt);\n let end = Prim.abs(endInt);\n if (start >= end) {\n return [var]\n };\n Prim.Array_tabulateVar(end - start, func i = self[start + i])\n };\n\n /// Transforms a mutable array into an immutable array.\n ///\n /// ```motoko include=import\n /// let varArray = [var 0, 1, 2];\n /// varArray[2] := 3;\n /// let array = VarArray.toArray(varArray);\n /// assert array == [0, 1, 3];\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n public func toArray(self : [var T]) : [T] = Prim.Array_tabulate(self.size(), func i = self[i]);\n\n /// Converts the mutable array to its textual representation using `f` to convert each element to `Text`.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 1, 2, 3];\n /// assert VarArray.toText(array, Nat.toText) == \"[var 1, 2, 3]\";\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(size)\n ///\n /// *Runtime and space assumes that `f` runs in O(1) time and space.\n public func toText(self : [var T], f : (implicit : (toText : T -> Text))) : Text {\n let size = self.size();\n if (size == 0) { return \"[var]\" };\n var text = \"[var \";\n var i = 0;\n while (i < size) {\n if (i != 0) {\n text #= \", \"\n };\n text #= f(self[i]);\n i += 1\n };\n text #= \"]\";\n text\n };\n\n /// Compares two mutable arrays using the provided comparison function for elements.\n /// Returns #less, #equal, or #greater if `array1` is less than, equal to,\n /// or greater than `array2` respectively.\n ///\n /// If arrays have different sizes but all elements up to the shorter length are equal,\n /// the shorter array is considered #less than the longer array.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// let array1 = [var 1, 2, 3];\n /// let array2 = [var 1, 2, 4];\n /// assert VarArray.compare(array1, array2, Nat.compare) == #less;\n ///\n /// let array3 = [var 1, 2];\n /// let array4 = [var 1, 2, 3];\n /// assert VarArray.compare(array3, array4, Nat.compare) == #less;\n /// ```\n ///\n /// Runtime: O(min(size1, size2))\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func compare(self : [var T], other : [var T], compare : (implicit : (T, T) -> Order.Order)) : Order.Order {\n let size1 = self.size();\n let size2 = other.size();\n var i = 0;\n let minSize = if (size1 < size2) { size1 } else { size2 };\n while (i < minSize) {\n switch (compare(self[i], other[i])) {\n case (#less) { return #less };\n case (#greater) { return #greater };\n case (#equal) { i += 1 }\n }\n };\n if (size1 < size2) { #less } else if (size1 > size2) { #greater } else {\n #equal\n }\n };\n\n /// Performs binary search on a sorted mutable array to find the index of the `element`.\n /// Returns `#found(index)` if the element is found, or `#insertionIndex(index)` with the index\n ///\n /// If there are multiple equal elements, no guarantee is made about which index is returned.\n /// The array must be sorted in ascending order according to the `compare` function.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let sorted = [var 1, 3, 5, 7, 9, 11];\n /// assert VarArray.binarySearch(sorted, Nat.compare, 5) == #found(2);\n /// assert VarArray.binarySearch(sorted, Nat.compare, 6) == #insertionIndex(3);\n /// ```\n ///\n /// Runtime: O(log(size))\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func binarySearch(self : [var T], compare : (implicit : (T, T) -> Order.Order), element : T) : {\n #found : Nat;\n #insertionIndex : Nat\n } {\n var left = 0;\n var right = self.size();\n while (left < right) {\n let mid = (left + right) / 2;\n switch (compare(self[mid], element)) {\n case (#less) left := mid + 1;\n case (#greater) right := mid;\n case (#equal) return #found mid\n }\n };\n #insertionIndex left\n };\n\n /// Checks whether the mutable `array` is sorted according to the `compare` function.\n ///\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// let array = [var 1, 2, 3];\n /// assert VarArray.isSorted(array, Nat.compare);\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `compare` runs in O(1) time and space.\n public func isSorted(self : [var T], compare : (implicit : (T, T) -> Order.Order)) : Bool {\n let size = self.size();\n if (size <= 1) return true;\n var i = 1;\n while (i < size) {\n switch (compare(self[i - 1], self[i])) {\n case (#greater) return false;\n case _ { i += 1 }\n }\n };\n true\n }\n\n}\n"},"Result.mo":{"content":"/// Module for error handling with the Result type.\n///\n/// The Result type is used for returning and propagating errors. It has two variants:\n/// `#ok(Ok)`, representing success and containing a value, and `#err(Err)`, representing\n/// error and containing an error value.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Result \"mo:core/Result\";\n/// ```\n\nimport Order \"Order\";\nimport Types \"Types\";\n\nmodule {\n\n /// The Result type used for returning and propagating errors.\n ///\n /// The simplest way of working with Results is to pattern match on them.\n /// For example:\n /// ```motoko include=import\n /// import Text \"mo:core/Text\";\n ///\n /// type Email = Text;\n /// type ErrorMessage = Text;\n ///\n /// func validateEmail(email : Text) : Result.Result {\n /// let parts = Text.split(email, #char '@');\n /// let beforeAt = parts.next();\n /// let afterAt = parts.next();\n /// switch (beforeAt, afterAt) {\n /// case (?local, ?domain) {\n /// if (local == \"\") return #err(\"Username cannot be empty\");\n /// if (not Text.contains(domain, #char '.')) return #err(\"Invalid domain format\");\n /// #ok(email)\n /// };\n /// case _ #err(\"Email must contain exactly one @ symbol\")\n /// }\n /// };\n ///\n /// assert validateEmail(\"user@example.com\") == #ok(\"user@example.com\");\n /// assert validateEmail(\"invalid.email\") == #err(\"Email must contain exactly one @ symbol\");\n /// assert validateEmail(\"@domain.com\") == #err(\"Username cannot be empty\");\n /// assert validateEmail(\"user@invalid\") == #err(\"Invalid domain format\");\n /// ```\n /// @deprecated M0235\n public type Result = Types.Result;\n\n /// Compares two Results for equality.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// let result1 = #ok 10;\n /// let result2 = #ok 10;\n /// let result3 = #err \"error\";\n ///\n /// assert Result.equal(result1, result2, Nat.equal, Text.equal);\n /// assert not Result.equal(result1, result3, Nat.equal, Text.equal);\n /// ```\n public func equal(\n self : Result,\n other : Result,\n equalOk : (implicit : (equal : Ok, Ok) -> Bool),\n equalErr : (implicit : (equal : (Err, Err) -> Bool))\n ) : Bool {\n switch (self, other) {\n case (#ok(ok1), #ok(ok2)) {\n equalOk(ok1, ok2)\n };\n case (#err(err1), #err(err2)) {\n equalErr(err1, err2)\n };\n case _ { false }\n }\n };\n\n /// Compares two Result values. `#ok` is larger than `#err`. This ordering is\n /// arbitrary, but it lets you for example use Results as keys in ordered maps.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n ///\n /// let result1 = #ok 5;\n /// let result2 = #ok 10;\n /// let result3 = #err \"error\";\n ///\n /// assert Result.compare(result1, result2, Nat.compare, Text.compare) == #less;\n /// assert Result.compare(result2, result1, Nat.compare, Text.compare) == #greater;\n /// assert Result.compare(result1, result3, Nat.compare, Text.compare) == #greater;\n /// ```\n public func compare(\n self : Result,\n other : Result,\n compareOk : (implicit : (compare : (Ok, Ok) -> Order.Order)),\n compareErr : (implicit : (compare : (Err, Err) -> Order.Order))\n ) : Order.Order {\n switch (self, other) {\n case (#ok(ok1), #ok(ok2)) {\n compareOk(ok1, ok2)\n };\n case (#err(err1), #err(err2)) {\n compareErr(err1, err2)\n };\n case (#ok(_), _) { #greater };\n case (#err(_), _) { #less }\n }\n };\n\n /// Allows sequencing of Result values and functions that return\n /// Results themselves.\n /// ```motoko include=import\n /// type Result = Result.Result;\n /// func largerThan10(x : Nat) : Result =\n /// if (x > 10) { #ok(x) } else { #err(\"Not larger than 10.\") };\n ///\n /// func smallerThan20(x : Nat) : Result =\n /// if (x < 20) { #ok(x) } else { #err(\"Not smaller than 20.\") };\n ///\n /// func between10And20(x : Nat) : Result =\n /// Result.chain(largerThan10(x), smallerThan20);\n ///\n /// assert between10And20(15) == #ok(15);\n /// assert between10And20(9) == #err(\"Not larger than 10.\");\n /// assert between10And20(21) == #err(\"Not smaller than 20.\");\n /// ```\n public func chain(\n self : Result,\n f : Ok1 -> Result\n ) : Result {\n switch self {\n case (#err(e)) { #err(e) };\n case (#ok(r)) { f(r) }\n }\n };\n\n /// Flattens a nested Result.\n ///\n /// ```motoko include=import\n /// assert Result.flatten(#ok(#ok(10))) == #ok(10);\n /// assert Result.flatten(#err(\"Wrong\")) == #err(\"Wrong\");\n /// assert Result.flatten(#ok(#err(\"Wrong\"))) == #err(\"Wrong\");\n /// ```\n public func flatten(\n self : Result, Err>\n ) : Result {\n switch self {\n case (#ok(ok)) { ok };\n case (#err(err)) { #err(err) }\n }\n };\n\n /// Maps the `Ok` type/value, leaving any `Err` type/value unchanged.\n ///\n /// Example:\n /// ```motoko include=import\n /// let result1 = #ok(42);\n /// let result2 = #err(\"error\");\n ///\n /// let doubled1 = Result.mapOk(result1, func x = x * 2);\n /// assert doubled1 == #ok(84);\n ///\n /// let doubled2 = Result.mapOk(result2, func x = x * 2);\n /// assert doubled2 == #err(\"error\");\n /// ```\n public func mapOk(\n self : Result,\n f : Ok1 -> Ok2\n ) : Result {\n switch self {\n case (#err(e)) { #err(e) };\n case (#ok(r)) { #ok(f(r)) }\n }\n };\n\n /// Maps the `Err` type/value, leaving any `Ok` type/value unchanged.\n ///\n /// Example:\n /// ```motoko include=import\n /// let result1 = #ok(42);\n /// let result2 = #err(\"error\");\n ///\n /// let mapped1 = Result.mapErr(result1, func x = x # \"!\");\n /// assert mapped1 == #ok(42);\n ///\n /// let mapped2 = Result.mapErr(result2, func x = x # \"!\");\n /// assert mapped2 == #err(\"error!\");\n /// ```\n public func mapErr(\n self : Result,\n f : Err1 -> Err2\n ) : Result {\n switch self {\n case (#err(e)) { #err(f(e)) };\n case (#ok(r)) { #ok(r) }\n }\n };\n\n /// Create a result from an option, including an error value to handle the `null` case.\n /// ```motoko include=import\n /// assert Result.fromOption(?42, \"err\") == #ok(42);\n /// assert Result.fromOption(null, \"err\") == #err(\"err\");\n /// ```\n public func fromOption(x : ?Ok, err : Err) : Result {\n switch x {\n case (?x) { #ok(x) };\n case null { #err(err) }\n }\n };\n\n /// Create an option from a result, turning all #err into `null`.\n /// ```motoko include=import\n /// assert Result.toOption(#ok(42)) == ?42;\n /// assert Result.toOption(#err(\"err\")) == null;\n /// ```\n public func toOption(self : Result) : ?Ok {\n switch self {\n case (#ok(x)) { ?x };\n case (#err(_)) { null }\n }\n };\n\n /// Applies a function to a successful value and discards the result. Use\n /// `forOk` if you're only interested in the side effect `f` produces.\n ///\n /// ```motoko include=import\n /// var counter : Nat = 0;\n /// Result.forOk(#ok(5), func (x : Nat) { counter += x });\n /// assert counter == 5;\n /// Result.forOk(#err(\"Error\"), func (x : Nat) { counter += x });\n /// assert counter == 5;\n /// ```\n public func forOk(self : Result, f : Ok -> ()) {\n switch self {\n case (#ok(ok)) { f(ok) };\n case _ {}\n }\n };\n\n /// Applies a function to an error value and discards the result. Use\n /// `forErr` if you're only interested in the side effect `f` produces.\n ///\n /// ```motoko include=import\n /// var counter : Nat = 0;\n /// Result.forErr(#err(\"Error\"), func (x : Text) { counter += 1 });\n /// assert counter == 1;\n /// Result.forErr(#ok(5), func (x : Text) { counter += 1 });\n /// assert counter == 1;\n /// ```\n public func forErr(self : Result, f : Err -> ()) {\n switch self {\n case (#err(err)) { f(err) };\n case _ {}\n }\n };\n\n /// Whether this Result is an `#ok`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Result.isOk(#ok(42));\n /// assert not Result.isOk(#err(\"error\"));\n /// ```\n public func isOk(self : Result) : Bool {\n switch self {\n case (#ok(_)) { true };\n case (#err(_)) { false }\n }\n };\n\n /// Whether this Result is an `#err`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Result.isErr(#err(\"error\"));\n /// assert not Result.isErr(#ok(42));\n /// ```\n public func isErr(self : Result) : Bool {\n switch self {\n case (#ok(_)) { false };\n case (#err(_)) { true }\n }\n };\n\n /// Asserts that its argument is an `#ok` result, traps otherwise.\n ///\n /// Example:\n /// ```motoko include=import\n /// Result.assertOk(#ok(42)); // succeeds\n /// // Result.assertOk(#err(\"error\")); // would trap\n /// ```\n public func assertOk(self : Result) {\n switch self {\n case (#err(_)) { assert false };\n case (#ok(_)) {}\n }\n };\n\n /// Asserts that its argument is an `#err` result, traps otherwise.\n ///\n /// Example:\n /// ```motoko include=import\n /// Result.assertErr(#err(\"error\")); // succeeds\n /// // Result.assertErr(#ok(42)); // would trap\n /// ```\n public func assertErr(self : Result) {\n switch self {\n case (#err(_)) {};\n case (#ok(_)) assert false\n }\n };\n\n /// Converts an upper cased `#Ok`, `#Err` result type into a lowercased `#ok`, `#err` result type.\n /// On the IC, a common convention is to use `#Ok` and `#Err` as the variants of a result type,\n /// but in Motoko, we use `#ok` and `#err` instead.\n ///\n /// Example:\n /// ```motoko include=import\n /// let upper = #Ok(42);\n /// let lower = Result.fromUpper(upper);\n /// assert lower == #ok(42);\n /// ```\n public func fromUpper(\n result : { #Ok : Ok; #Err : Err }\n ) : Result {\n switch result {\n case (#Ok(ok)) { #ok(ok) };\n case (#Err(err)) { #err(err) }\n }\n };\n\n /// Converts a lower cased `#ok`, `#err` result type into an upper cased `#Ok`, `#Err` result type.\n /// On the IC, a common convention is to use `#Ok` and `#Err` as the variants of a result type,\n /// but in Motoko, we use `#ok` and `#err` instead.\n ///\n /// Example:\n /// ```motoko include=import\n /// let lower = #ok(42);\n /// let upper = Result.toUpper(lower);\n /// assert upper == #Ok(42);\n /// ```\n public func toUpper(\n self : Result\n ) : { #Ok : Ok; #Err : Err } {\n switch self {\n case (#ok(ok)) { #Ok(ok) };\n case (#err(err)) { #Err(err) }\n }\n };\n\n}\n"},"Queue.mo":{"content":"/// A mutable double-ended queue of elements.\n/// The queue has two ends, front and back.\n/// Elements can be added and removed at the two ends.\n///\n/// This can be used for different use cases, such as:\n/// * Queue (FIFO) by using `pushBack()` and `popFront()`\n/// * Stack (LIFO) by using `pushFront()` and `popFront()`.\n///\n/// Example:\n/// ```motoko\n/// import Queue \"mo:core/Queue\";\n///\n/// persistent actor {\n/// let orders = Queue.empty();\n/// Queue.pushBack(orders, \"Motoko\");\n/// Queue.pushBack(orders, \"Mops\");\n/// Queue.pushBack(orders, \"IC\");\n/// assert Queue.popFront(orders) == ?\"Motoko\";\n/// assert Queue.popFront(orders) == ?\"Mops\";\n/// assert Queue.popFront(orders) == ?\"IC\";\n/// assert Queue.popFront(orders) == null;\n/// }\n/// ```\n///\n/// The internal implementation is a doubly-linked list.\n///\n/// Performance:\n/// * Runtime: `O(1)` for push, pop, and peek operations.\n/// * Space: `O(n)`.\n/// `n` denotes the number of elements stored in the queue.\n\nimport PureQueue \"pure/Queue\";\nimport Iter \"Iter\";\nimport Order \"Order\";\nimport Types \"Types\";\nimport Array \"Array\";\nimport Prim \"mo:⛔\";\n\nmodule {\n public type Queue = Types.Queue.Queue;\n\n type Node = Types.Queue.Node;\n\n /// Converts a mutable queue to an immutable, purely functional queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let pureQueue = Queue.toPure(queue);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n /// @deprecated M0235\n public func toPure(self : Queue) : PureQueue.Queue {\n let pureQueue = PureQueue.empty();\n let iter = values(self);\n var current = pureQueue;\n loop {\n switch (iter.next()) {\n case null { return current };\n case (?val) { current := PureQueue.pushBack(current, val) }\n }\n }\n };\n\n /// Converts an immutable, purely functional queue to a mutable queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n /// import PureQueue \"mo:core/pure/Queue\";\n ///\n /// persistent actor {\n /// let pureQueue = PureQueue.fromIter([1, 2, 3].values());\n /// let queue = Queue.fromPure(pureQueue);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n /// @deprecated M0235\n public func fromPure(pureQueue : PureQueue.Queue) : Queue {\n let queue = empty();\n let iter = PureQueue.values(pureQueue);\n loop {\n switch (iter.next()) {\n case null { return queue };\n case (?val) { pushBack(queue, val) }\n }\n }\n };\n\n /// Create a new empty mutable double-ended queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.empty();\n /// assert Queue.size(queue) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func empty() : Queue {\n { var front = null; var back = null; var size = 0 }\n };\n\n /// Creates a new queue with a single element.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.singleton(123);\n /// assert Queue.size(queue) == 1;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func singleton(element : T) : Queue {\n let queue = empty();\n pushBack(queue, element);\n queue\n };\n\n /// Removes all elements from the queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// Queue.clear(queue);\n /// assert Queue.isEmpty(queue);\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func clear(self : Queue) {\n self.front := null;\n self.back := null;\n self.size := 0\n };\n\n /// Creates a deep copy of the queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let original = Queue.fromIter([1, 2, 3].values());\n /// let copy = Queue.clone(original);\n /// Queue.clear(original);\n /// assert Queue.size(original) == 0;\n /// assert Queue.size(copy) == 3;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func clone(self : Queue) : Queue {\n let copy = empty();\n for (element in values(self)) {\n pushBack(copy, element)\n };\n copy\n };\n\n /// Returns the number of elements in the queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([\"A\", \"B\", \"C\"].values());\n /// assert Queue.size(queue) == 3;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func size(self : Queue) : Nat {\n self.size\n };\n\n /// Returns `true` if the queue contains no elements.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.empty();\n /// assert Queue.isEmpty(queue);\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func isEmpty(self : Queue) : Bool {\n self.size == 0\n };\n\n /// Checks if an element exists in the queue using the provided equality function.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.contains(queue, Nat.equal, 2);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// `n` denotes the number of elements stored in the queue.\n public func contains(self : Queue, equal : (implicit : (T, T) -> Bool), element : T) : Bool {\n for (existing in values(self)) {\n if (equal(existing, element)) {\n return true\n }\n };\n false\n };\n\n /// Returns the first element in the queue without removing it.\n /// Returns null if the queue is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.peekFront(queue) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func peekFront(self : Queue) : ?T {\n switch (self.front) {\n case null null;\n case (?node) ?node.value\n }\n };\n\n /// Returns the last element in the queue without removing it.\n /// Returns null if the queue is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.peekBack(queue) == ?3;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func peekBack(self : Queue) : ?T {\n switch (self.back) {\n case null null;\n case (?node) ?node.value\n }\n };\n\n /// Adds an element to the front of the queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.empty();\n /// Queue.pushFront(queue, 1);\n /// assert Queue.peekFront(queue) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func pushFront(self : Queue, element : T) {\n let node : Node = {\n value = element;\n var next = self.front;\n var previous = null\n };\n switch (self.front) {\n case null {};\n case (?first) first.previous := ?node\n };\n self.front := ?node;\n switch (self.back) {\n case null self.back := ?node;\n case (?_) {}\n };\n self.size += 1\n };\n\n /// Adds an element to the back of the queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.empty();\n /// Queue.pushBack(queue, 1);\n /// assert Queue.peekBack(queue) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func pushBack(self : Queue, element : T) {\n let node : Node = {\n value = element;\n var next = null;\n var previous = self.back\n };\n switch (self.back) {\n case null {};\n case (?last) last.next := ?node\n };\n self.back := ?node;\n switch (self.front) {\n case null self.front := ?node;\n case (?_) {}\n };\n self.size += 1\n };\n\n /// Removes and returns the first element in the queue.\n /// Returns null if the queue is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.popFront(queue) == ?1;\n /// assert Queue.size(queue) == 2;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func popFront(self : Queue) : ?T {\n switch (self.front) {\n case null null;\n case (?first) {\n self.front := first.next;\n switch (self.front) {\n case null { self.back := null };\n case (?newFirst) { newFirst.previous := null }\n };\n self.size -= 1;\n ?first.value\n }\n }\n };\n\n /// Removes and returns the last element in the queue.\n /// Returns null if the queue is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.popBack(queue) == ?3;\n /// assert Queue.size(queue) == 2;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func popBack(self : Queue) : ?T {\n switch (self.back) {\n case null null;\n case (?last) {\n self.back := last.previous;\n switch (self.back) {\n case null { self.front := null };\n case (?newLast) { newLast.next := null }\n };\n self.size -= 1;\n ?last.value\n }\n }\n };\n\n /// Creates a new queue from an iterator.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([\"A\", \"B\", \"C\"].values());\n /// assert Queue.size(queue) == 3;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func fromIter(iter : Iter.Iter) : Queue {\n let queue = empty();\n for (element in iter) {\n pushBack(queue, element)\n };\n queue\n };\n\n /// Converts an iterator to a queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// transient let iter = [\"A\", \"B\", \"C\"].values();\n ///\n /// let queue = iter.toQueue();\n ///\n /// assert Queue.size(queue) == 3;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func toQueue(self : Iter.Iter) : Queue {\n fromIter(self)\n };\n\n /// Creates a new queue from an array.\n /// Elements appear in the same order as in the array.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromArray([\"A\", \"B\", \"C\"]);\n /// assert Queue.size(queue) == 3;\n /// assert Queue.peekFront(queue) == ?\"A\";\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the array.\n public func fromArray(array : [T]) : Queue {\n let queue = empty();\n for (element in array.vals()) {\n pushBack(queue, element)\n };\n queue\n };\n\n public func fromVarArray(array : [var T]) : Queue {\n fromIter(array.values())\n };\n\n /// Creates a new immutable array containing all elements from the queue.\n /// Elements appear in the same order as in the queue (front to back).\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n /// import Array \"mo:core/Array\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromArray([\"A\", \"B\", \"C\"]);\n /// let array = Queue.toArray(queue);\n /// assert array == [\"A\", \"B\", \"C\"];\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func toArray(self : Queue) : [T] {\n let iter = values(self);\n Array.tabulate(\n self.size,\n func(i) {\n switch (iter.next()) {\n case null { Prim.trap(\"Queue.toArray(): unexpected end of iterator\") };\n case (?value) { value }\n }\n }\n )\n };\n\n public func toVarArray(self : Queue) : [var T] {\n Array.toVarArray(toArray(self))\n };\n\n /// Returns an iterator over the elements in the queue.\n /// Iterates from front to back.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n /// persistent actor {\n /// let queue = Queue.fromIter([\"A\", \"B\", \"C\"].values());\n /// transient let iter = Queue.values(queue);\n /// assert iter.next() == ?\"A\";\n /// assert iter.next() == ?\"B\";\n /// assert iter.next() == ?\"C\";\n /// assert iter.next() == null;\n /// }\n /// ```\n ///\n /// Runtime: O(1) for iterator creation, O(n) for full iteration\n /// Space: O(1)\n public func values(self : Queue) : Iter.Iter {\n object {\n var current = self.front;\n\n public func next() : ?T {\n switch (current) {\n case null null;\n case (?node) {\n current := node.next;\n ?node.value\n }\n }\n }\n }\n };\n\n public func reverseValues(self : Queue) : Iter.Iter {\n Iter.reverse(values(self))\n };\n\n /// Tests whether all elements in the queue satisfy the given predicate.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([2, 4, 6].values());\n /// assert Queue.all(queue, func(x) { x % 2 == 0 });\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n public func all(self : Queue, predicate : T -> Bool) : Bool {\n for (element in values(self)) {\n if (not predicate(element)) {\n return false\n }\n };\n true\n };\n\n /// Tests whether any element in the queue satisfies the given predicate.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.any(queue, func (x) { x > 2 });\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// `n` denotes the number of elements stored in the queue.\n public func any(self : Queue, predicate : T -> Bool) : Bool {\n for (element in values(self)) {\n if (predicate(element)) {\n return true\n }\n };\n false\n };\n\n /// Applies the given operation to all elements in the queue.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// var sum = 0;\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// Queue.forEach(queue, func(x) { sum += x });\n /// assert sum == 6;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// `n` denotes the number of elements stored in the queue.\n public func forEach(self : Queue, operation : T -> ()) {\n for (element in values(self)) {\n operation(element)\n }\n };\n\n /// Creates a new queue by applying the given function to all elements.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let doubled = Queue.map(queue, func(x) { x * 2 });\n /// assert Queue.peekFront(doubled) == ?2;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func map(self : Queue, project : T -> U) : Queue {\n let result = empty();\n for (element in values(self)) {\n pushBack(result, project(element))\n };\n result\n };\n\n /// Creates a new queue containing only elements that satisfy the given predicate.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3, 4].values());\n /// let evens = Queue.filter(queue, func(x) { x % 2 == 0 });\n /// assert Queue.size(evens) == 2;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func filter(self : Queue, criterion : T -> Bool) : Queue {\n let result = empty();\n for (element in values(self)) {\n if (criterion(element)) {\n pushBack(result, element)\n }\n };\n result\n };\n\n /// Creates a new queue by applying the given function to all elements\n /// and keeping only the non-null results.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3, 4].values());\n /// let evenDoubled = Queue.filterMap(\n /// queue,\n /// func(x) {\n /// if (x % 2 == 0) { ?(x * 2) } else { null }\n /// }\n /// );\n /// assert Queue.size(evenDoubled) == 2;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func filterMap(self : Queue, project : T -> ?U) : Queue {\n let result = empty();\n for (element in values(self)) {\n switch (project(element)) {\n case null {};\n case (?newElement) pushBack(result, newElement)\n }\n };\n result\n };\n\n /// Compares two queues for equality using the provided equality function.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue1 = Queue.fromIter([1, 2, 3].values());\n /// let queue2 = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.equal(queue1, queue2, Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// `n` denotes the number of elements stored in the queue.\n public func equal(self : Queue, other : Queue, equal : (implicit : (T, T) -> Bool)) : Bool {\n if (size(self) != size(other)) {\n return false\n };\n let iterator1 = values(self);\n let iterator2 = values(other);\n loop {\n let element1 = iterator1.next();\n let element2 = iterator2.next();\n switch (element1, element2) {\n case (null, null) {\n return true\n };\n case (?element1, ?element2) {\n if (not equal(element1, element2)) {\n return false\n }\n };\n case _ { return false }\n }\n }\n };\n\n /// Converts a queue to its string representation using the provided element formatter.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.toText(queue, Nat.toText) == \"Queue[1, 2, 3]\";\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// `n` denotes the number of elements stored in the queue.\n public func toText(self : Queue, format : (implicit : (toText : T -> Text))) : Text {\n var text = \"Queue[\";\n var sep = \"\";\n for (element in values(self)) {\n text #= sep # format(element);\n sep := \", \"\n };\n text #= \"]\";\n text\n };\n\n /// Compares two queues using the provided comparison function.\n /// Returns #less, #equal, or #greater.\n ///\n /// Example:\n /// ```motoko\n /// import Queue \"mo:core/Queue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue1 = Queue.fromIter([1, 2].values());\n /// let queue2 = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.compare(queue1, queue2, Nat.compare) == #less;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// `n` denotes the number of elements stored in the queue.\n public func compare(self : Queue, other : Queue, compare : (implicit : (T, T) -> Order.Order)) : Order.Order {\n let iterator1 = values(self);\n let iterator2 = values(other);\n loop {\n switch (iterator1.next(), iterator2.next()) {\n case (null, null) return #equal;\n case (null, _) return #less;\n case (_, null) return #greater;\n case (?element1, ?element2) {\n let comparison = compare(element1, element2);\n if (comparison != #equal) {\n return comparison\n }\n }\n }\n }\n }\n}\n"},"Stack.mo":{"content":"/// A mutable stack data structure.\n/// Elements can be pushed on top of the stack\n/// and removed from top of the stack (LIFO).\n///\n/// Example:\n/// ```motoko\n/// import Stack \"mo:core/Stack\";\n/// import Debug \"mo:core/Debug\";\n///\n/// persistent actor {\n/// let levels = Stack.empty();\n/// Stack.push(levels, \"Inner\");\n/// Stack.push(levels, \"Middle\");\n/// Stack.push(levels, \"Outer\");\n/// assert Stack.pop(levels) == ?\"Outer\";\n/// assert Stack.pop(levels) == ?\"Middle\";\n/// assert Stack.pop(levels) == ?\"Inner\";\n/// assert Stack.pop(levels) == null;\n/// }\n/// ```\n///\n/// The internal implementation is a singly-linked list.\n///\n/// Performance:\n/// * Runtime: `O(1)` for push, pop, and peek operation.\n/// * Space: `O(n)`.\n/// `n` denotes the number of elements stored on the stack.\n\n// TODO: optimize or re-use pure/List operations (e.g. for `any` etc)\n\nimport Order \"Order\";\nimport Iter \"Iter\";\nimport Types \"Types\";\nimport PureList \"pure/List\";\n\nmodule {\n type List = Types.Pure.List;\n public type Stack = Types.Stack;\n\n /// Convert a mutable stack to an immutable, purely functional list.\n /// Please note that functional lists are ordered like stacks (FIFO).\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import PureList \"mo:core/pure/List\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let mutableStack = Stack.empty();\n /// Stack.push(mutableStack, 3);\n /// Stack.push(mutableStack, 2);\n /// Stack.push(mutableStack, 1);\n /// let immutableList = Stack.toPure(mutableStack);\n /// assert Iter.toArray(PureList.values(immutableList)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of elements stored in the stack.\n /// @deprecated M0235\n public func toPure(self : Stack) : PureList.List {\n self.top\n };\n\n public func toArray(self : Stack) : [T] {\n Iter.toArray(values(self))\n };\n\n public func toVarArray(self : Stack) : [var T] {\n Iter.toVarArray(values(self))\n };\n\n /// Convert an immutable, purely functional list to a mutable stack.\n /// Please note that functional lists are ordered like stacks (FIFO).\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import PureList \"mo:core/pure/List\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let immutableList = PureList.fromIter([1, 2, 3].values());\n /// let mutableStack = Stack.fromPure(immutableList);\n /// assert Iter.toArray(Stack.values(mutableStack)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements stored in the queue.\n /// @deprecated M0235\n public func fromPure(list : PureList.List) : Stack {\n var size = 0;\n var cur = list;\n loop {\n switch cur {\n case (?(_, next)) {\n size += 1;\n cur := next\n };\n case null {\n return { var top = list; var size }\n }\n }\n }\n };\n\n public func fromVarArray(array : [var T]) : Stack {\n fromIter(array.values())\n };\n\n public func fromArray(array : [T]) : Stack {\n fromIter(array.values())\n };\n\n /// Create a new empty mutable stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// assert Stack.size(stack) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func empty() : Stack {\n {\n var top = null;\n var size = 0\n }\n };\n\n /// Creates a new stack with `size` elements by applying the `generator` function to indices `[0..size-1]`.\n /// Elements are pushed in ascending index order.\n /// Which means that the generated element with the index `0` will be at the bottom of the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let stack = Stack.tabulate(3, func(i) { 2 * i });\n /// assert Iter.toArray(Stack.values(stack)) == [4, 2, 0];\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `generator` has O(1) costs.\n public func tabulate(size : Nat, generator : Nat -> T) : Stack {\n let stack = empty();\n var index = 0;\n while (index < size) {\n let element = generator(index);\n push(stack, element);\n index += 1\n };\n stack\n };\n\n /// Creates a new stack containing a single element.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.singleton(\"motoko\");\n /// assert Stack.peek(stack) == ?\"motoko\";\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func singleton(element : T) : Stack {\n let stack = empty();\n push(stack, element);\n stack\n };\n\n /// Removes all elements from the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromIter([3, 2, 1].values());\n /// Stack.clear(stack);\n /// assert Stack.isEmpty(stack);\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func clear(self : Stack) {\n self.top := null;\n self.size := 0\n };\n\n /// Creates a deep copy of the stack with the same elements in the same order.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let original = Stack.fromIter([3, 2, 1].values());\n /// let copy = Stack.clone(original);\n /// assert Stack.equal(copy, original, Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of elements stored on the stack.\n public func clone(self : Stack) : Stack {\n let copy = empty();\n for (element in values(self)) {\n push(copy, element)\n };\n reverse(copy);\n copy\n };\n\n /// Returns true if the stack contains no elements.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// assert Stack.isEmpty(stack);\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func isEmpty(self : Stack) : Bool {\n self.size == 0\n };\n\n /// Returns the number of elements on the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromIter([3, 2, 1].values());\n /// assert Stack.size(stack) == 3;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func size(self : Stack) : Nat {\n self.size\n };\n\n /// Returns true if the stack contains the specified element.\n /// Uses the provided equality function to compare elements.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromIter([3, 2, 1].values());\n /// assert Stack.contains(stack, Nat.equal, 2);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack and assuming\n /// that `equal` has O(1) costs.\n public func contains(self : Stack, equal : (implicit : (T, T) -> Bool), element : T) : Bool {\n for (existing in values(self)) {\n if (equal(existing, element)) {\n return true\n }\n };\n false\n };\n\n public func reverseValues(self : Stack) : Iter.Iter {\n Iter.reverse(values(self))\n };\n\n /// Pushes a new element onto the top of the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 42);\n /// assert Stack.peek(stack) == ?42;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func push(self : Stack, value : T) {\n self.top := ?(value, self.top);\n self.size += 1\n };\n\n /// Returns the top element of the stack without removing it.\n /// Returns null if the stack is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// assert Stack.peek(stack) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func peek(self : Stack) : ?T {\n switch (self.top) {\n case null null;\n case (?(value, _)) ?value\n }\n };\n\n /// Removes and returns the top element of the stack.\n /// Returns null if the stack is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// assert Stack.pop(stack) == ?1;\n /// assert Stack.pop(stack) == ?2;\n /// assert Stack.pop(stack) == ?3;\n /// assert Stack.pop(stack) == null;\n /// }\n /// ```\n ///\n /// Runtime: O(1)\n /// Space: O(1)\n public func pop(self : Stack) : ?T {\n switch (self.top) {\n case null null;\n case (?(value, next)) {\n self.top := next;\n self.size -= 1;\n ?value\n }\n }\n };\n\n /// Returns the element at the specified position from the top of the stack.\n /// Returns null if position is out of bounds.\n /// Position 0 is the top of the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 'c');\n /// Stack.push(stack, 'b');\n /// Stack.push(stack, 'a');\n /// assert Stack.get(stack, 0) == ?'a';\n /// assert Stack.get(stack, 1) == ?'b';\n /// assert Stack.get(stack, 2) == ?'c';\n /// assert Stack.get(stack, 3) == null;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack.\n public func get(self : Stack, position : Nat) : ?T {\n var index = 0;\n var current = self.top;\n while (index < position) {\n switch (current) {\n case null return null;\n case (?(_, next)) {\n current := next\n }\n };\n index += 1\n };\n switch (current) {\n case null null;\n case (?(value, _)) ?value\n }\n };\n\n /// Reverses the order of elements in the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// Stack.reverse(stack);\n /// assert Stack.pop(stack) == ?3;\n /// assert Stack.pop(stack) == ?2;\n /// assert Stack.pop(stack) == ?1;\n /// assert Stack.pop(stack) == null;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of elements stored on the stack.\n public func reverse(self : Stack) {\n var last : List = null;\n for (element in values(self)) {\n last := ?(element, last)\n };\n self.top := last\n };\n\n /// Returns an iterator over the elements in the stack, from top to bottom.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// assert Iter.toArray(Stack.values(stack)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: O(1) for iterator creation, O(n) for full traversal\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack.\n public func values(self : Stack) : Types.Iter {\n object {\n var current = self.top;\n\n public func next() : ?T {\n switch (current) {\n case null null;\n case (?(value, next)) {\n current := next;\n ?value\n }\n }\n }\n }\n };\n\n /// Returns true if all elements in the stack satisfy the predicate.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromIter([2, 4, 6].values());\n /// assert Stack.all(stack, func(n) = n % 2 == 0);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `predicate` has O(1) costs.\n public func all(self : Stack, predicate : T -> Bool) : Bool {\n for (element in values(self)) {\n if (not predicate(element)) {\n return false\n }\n };\n true\n };\n\n /// Returns true if any element in the stack satisfies the predicate.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromIter([3, 2, 1].values());\n /// assert Stack.any(stack, func(n) = n == 2);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming `predicate` has O(1) costs.\n public func any(self : Stack, predicate : T -> Bool) : Bool {\n for (element in values(self)) {\n if (predicate(element)) {\n return true\n }\n };\n false\n };\n\n /// Applies the operation to each element in the stack, from top to bottom.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n /// import Debug \"mo:core/Debug\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// var text = \"\";\n /// Stack.forEach(stack, func(n) = text #= Nat.toText(n));\n /// assert text == \"123\";\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `operation` has O(1) costs.\n public func forEach(self : Stack, operation : T -> ()) {\n for (element in values(self)) {\n operation(element)\n }\n };\n\n /// Creates a new stack by applying the projection function to each element.\n /// Maintains the original order of elements.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// let doubled = Stack.map(stack, func(n) { 2 * n });\n /// assert Stack.get(doubled, 0) == ?2;\n /// assert Stack.get(doubled, 1) == ?4;\n /// assert Stack.get(doubled, 2) == ?6;\n /// assert Stack.get(doubled, 3) == null;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `project` has O(1) costs.\n public func map(self : Stack, project : T -> U) : Stack {\n let result = empty();\n for (element in values(self)) {\n push(result, project(element))\n };\n reverse(result);\n result\n };\n\n /// Creates a new stack containing only elements that satisfy the predicate.\n /// Maintains the relative order of elements.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 4);\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// let evens = Stack.filter(stack, func(n) { n % 2 == 0 });\n /// assert Stack.pop(evens) == ?2;\n /// assert Stack.pop(evens) == ?4;\n /// assert Stack.pop(evens) == null;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming `predicate` has O(1) costs.\n public func filter(self : Stack, predicate : T -> Bool) : Stack {\n let result = empty();\n for (element in values(self)) {\n if (predicate(element)) {\n push(result, element)\n }\n };\n reverse(result);\n result\n };\n\n /// Creates a new stack by applying the projection function to each element\n /// and keeping only the successful results (where project returns ?value).\n /// Maintains the relative order of elements.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.empty();\n /// Stack.push(stack, 4);\n /// Stack.push(stack, 3);\n /// Stack.push(stack, 2);\n /// Stack.push(stack, 1);\n /// let evenDoubled = Stack.filterMap(stack, func(n) {\n /// if (n % 2 == 0) {\n /// ?(n * 2)\n /// } else {\n /// null\n /// }\n /// });\n /// assert Stack.pop(evenDoubled) == ?4;\n /// assert Stack.pop(evenDoubled) == ?8;\n /// assert Stack.pop(evenDoubled) == null;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `project` has O(1) costs.\n public func filterMap(self : Stack, project : T -> ?U) : Stack {\n let result = empty();\n for (element in values(self)) {\n switch (project(element)) {\n case null {};\n case (?newElement) {\n push(result, newElement)\n }\n }\n };\n reverse(result);\n result\n };\n\n /// Return the first element for which the given `predicate` is true,\n /// if such an element exists.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromPure(?(1, ?(2, ?(3, null))));\n /// assert Stack.find(stack, func n = n > 1) == ?2;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n\n public func find(self : Stack, predicate : T -> Bool) : ?T = PureList.find(self.top, predicate);\n\n /// Return the first index for which the given `predicate` is true.\n /// If no element satisfies the predicate, returns null.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromPure(?('A', ?('B', ?('C', ?('D', null)))));\n /// let found = Stack.findIndex(stack, func x = x == 'C');\n /// assert found == ?2;\n /// }\n /// ```\n ///\n /// Runtime: O(size)\n ///\n /// Space: O(1)\n ///\n /// *Runtime and space assumes that `predicate` runs in O(1) time and space.\n public func findIndex(self : Stack, predicate : T -> Bool) : ?Nat = PureList.findIndex(self.top, predicate);\n\n /// Compares two stacks for equality using the provided equality function.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let stack1 = Stack.fromIter([3, 2, 1].values());\n /// let stack2 = Stack.fromIter([3, 2, 1].values());\n /// assert Stack.equal(stack1, stack2, Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `equal` has O(1) costs.\n public func equal(self : Stack, other : Stack, equal : (implicit : (T, T) -> Bool)) : Bool {\n if (size(self) != size(other)) {\n return false\n };\n let iterator1 = values(self);\n let iterator2 = values(other);\n loop {\n let element1 = iterator1.next();\n let element2 = iterator2.next();\n switch (element1, element2) {\n case (null, null) {\n return true\n };\n case (?element1, ?element2) {\n if (not equal(element1, element2)) {\n return false\n }\n };\n case _ { return false }\n }\n }\n };\n\n /// Creates a new stack from an iterator.\n /// Elements are pushed in iteration order. Which means that the last element\n /// of the iterator will be the first element on top of the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromIter([3, 2, 1].values());\n /// assert Iter.toArray(Stack.values(stack)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of iterated elements.\n public func fromIter(iter : Types.Iter) : Stack {\n let stack = empty();\n for (element in iter) {\n push(stack, element)\n };\n stack\n };\n\n /// Convert an iterator into a stack.\n /// Elements are pushed in iteration order. Which means that the last element\n /// of the iterator will be the first element on top of the stack.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// transient let iter = [3, 2, 1].values();\n ///\n /// let stack = iter.toStack();\n ///\n /// assert Iter.toArray(Stack.values(stack)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of iterated elements.\n public func toStack(self : Types.Iter) : Stack {\n fromIter(self)\n };\n\n /// Converts the stack to its string representation using the provided\n /// element formatting function.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let stack = Stack.fromIter([3, 2, 1].values());\n /// assert Stack.toText(stack, Nat.toText) == \"Stack[1, 2, 3]\";\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(n)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `format` has O(1) costs.\n public func toText(self : Stack, format : (implicit : (toText : T -> Text))) : Text {\n var text = \"Stack[\";\n var sep = \"\";\n for (element in values(self)) {\n text #= sep # format(element);\n sep := \", \"\n };\n text #= \"]\";\n text\n };\n\n /// Compares two stacks lexicographically using the provided comparison function.\n ///\n /// Example:\n /// ```motoko\n /// import Stack \"mo:core/Stack\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let stack1 = Stack.fromIter([2, 1].values());\n /// let stack2 = Stack.fromIter([3, 2, 1].values());\n /// assert Stack.compare(stack1, stack2, Nat.compare) == #less;\n /// }\n /// ```\n ///\n /// Runtime: O(n)\n /// Space: O(1)\n /// where `n` denotes the number of elements stored on the stack and\n /// assuming that `compare` has O(1) costs.\n public func compare(self : Stack, other : Stack, compare : (implicit : (T, T) -> Order.Order)) : Order.Order {\n let iterator1 = values(self);\n let iterator2 = values(other);\n loop {\n switch (iterator1.next(), iterator2.next()) {\n case (null, null) return #equal;\n case (null, _) return #less;\n case (_, null) return #greater;\n case (?element1, ?element2) {\n let comparison = compare(element1, element2);\n if (comparison != #equal) {\n return comparison\n }\n }\n }\n }\n }\n}\n"},"Principal.mo":{"content":"/// Module for interacting with Principals (users and canisters).\n///\n/// Principals are used to identify entities that can interact with the Internet\n/// Computer. These entities are either users or canisters.\n///\n/// Example textual representation of Principals:\n///\n/// `un4fu-tqaaa-aaaab-qadjq-cai`\n///\n/// In Motoko, there is a primitive Principal type called `Principal`. As an example\n/// of where you might see Principals, you can access the Principal of the\n/// caller of your shared function.\n///\n/// ```motoko no-repl\n/// persistent actor {\n/// public shared(msg) func foo() {\n/// let caller : Principal = msg.caller;\n/// };\n/// }\n/// ```\n///\n/// Then, you can use this module to work with the `Principal`.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Principal \"mo:core/Principal\";\n/// ```\n\nimport Prim \"mo:⛔\";\nimport Blob \"Blob\";\nimport Array \"Array\";\nimport VarArray \"VarArray\";\nimport Nat8 \"Nat8\";\nimport Nat32 \"Nat32\";\nimport Nat64 \"Nat64\";\nimport Text \"Text\";\nimport Types \"Types\";\n\nmodule {\n\n public type Principal = Prim.Types.Principal;\n\n /// Get the `Principal` identifier of an actor.\n ///\n /// Example:\n /// ```motoko include=import no-repl\n /// persistent actor MyCanister {\n /// func getPrincipal() : Principal {\n /// let principal = Principal.fromActor(MyCanister);\n /// }\n /// }\n /// ```\n public let fromActor : (a : actor {}) -> Principal = Prim.principalOfActor;\n\n /// Compute the Ledger account identifier of a principal. Optionally specify a sub-account.\n ///\n /// Example:\n /// ```motoko include=import no-validate\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let subAccount : Blob = \"\\4A\\8D\\3F\\2B\\6E\\01\\C8\\7D\\9E\\03\\B4\\56\\7C\\F8\\9A\\01\\D2\\34\\56\\78\\9A\\BC\\DE\\F0\\12\\34\\56\\78\\9A\\BC\\DE\\F0\";\n /// let account = Principal.toLedgerAccount(principal, ?subAccount);\n /// assert account == \"\\8C\\5C\\20\\C6\\15\\3F\\7F\\51\\E2\\0D\\0F\\0F\\B5\\08\\51\\5B\\47\\65\\63\\A9\\62\\B4\\A9\\91\\5F\\4F\\02\\70\\8A\\ED\\4F\\82\";\n /// ```\n public func toLedgerAccount(self : Principal, subAccount : ?Blob) : Blob {\n let sha224 = SHA224();\n let accountSeparator : Blob = \"\\0Aaccount-id\";\n sha224.writeBlob(accountSeparator);\n sha224.writeBlob(toBlob(self));\n switch subAccount {\n case (?subAccount) {\n sha224.writeBlob(subAccount)\n };\n case (null) {\n let defaultSubAccount = Array.tabulate(32, func _ = 0);\n sha224.writeArray(defaultSubAccount)\n }\n };\n\n let hashSum = sha224.sum();\n\n // hashBlob is a CRC32 implementation\n let crc32Bytes = nat32ToByteArray(Prim.hashBlob hashSum);\n\n Blob.fromArray(Array.concat(crc32Bytes, Blob.toArray(hashSum)))\n };\n\n /// Convert a `Principal` to its `Blob` (bytes) representation.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let blob = Principal.toBlob(principal);\n /// assert blob == \"\\00\\00\\00\\00\\00\\30\\00\\D3\\01\\01\";\n /// ```\n public let toBlob : (self : Principal) -> Blob = Prim.blobOfPrincipal;\n\n /// Converts a `Blob` (bytes) representation of a `Principal` to a `Principal` value.\n ///\n /// Example:\n /// ```motoko include=import\n /// let blob = \"\\00\\00\\00\\00\\00\\30\\00\\D3\\01\\01\" : Blob;\n /// let principal = Principal.fromBlob(blob);\n /// assert Principal.toText(principal) == \"un4fu-tqaaa-aaaab-qadjq-cai\";\n /// ```\n public let fromBlob : (self : Blob) -> Principal = Prim.principalOfBlob;\n\n /// Converts a `Principal` to its `Text` representation.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert Principal.toText(principal) == \"un4fu-tqaaa-aaaab-qadjq-cai\";\n /// ```\n public func toText(self : Principal) : Text = debug_show (self);\n\n /// Converts a `Text` representation of a `Principal` to a `Principal` value.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert Principal.toText(principal) == \"un4fu-tqaaa-aaaab-qadjq-cai\";\n /// ```\n public func fromText(t : Text) : Principal = fromActor(actor (t));\n\n private let anonymousBlob : Blob = \"\\04\";\n\n /// Constructs and returns the anonymous principal.\n public func anonymous() : Principal = Prim.principalOfBlob(anonymousBlob);\n\n /// Checks if the given principal represents an anonymous user.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert not Principal.isAnonymous(principal);\n /// ```\n public func isAnonymous(self : Principal) : Bool = Prim.blobOfPrincipal self == anonymousBlob;\n\n /// Checks if the given principal is a canister.\n ///\n /// The last byte for opaque principal ids must be 0x01\n /// https://internetcomputer.org/docs/current/references/ic-interface-spec#principal\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert Principal.isCanister(principal);\n /// ```\n public func isCanister(self : Principal) : Bool {\n let byteArray = toByteArray(self);\n\n byteArray.size() >= 0 and byteArray.size() <= 29 and isLastByte(byteArray, 1)\n };\n\n /// Checks if the given principal is a self authenticating principal.\n /// Most of the time, this is a user principal.\n ///\n /// The last byte for user principal ids must be 0x02\n /// https://internetcomputer.org/docs/current/references/ic-interface-spec#principal\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"6rgy7-3uukz-jrj2k-crt3v-u2wjm-dmn3t-p26d6-ndilt-3gusv-75ybk-jae\");\n /// assert Principal.isSelfAuthenticating(principal);\n /// ```\n public func isSelfAuthenticating(self : Principal) : Bool {\n let byteArray = toByteArray(self);\n\n byteArray.size() == 29 and isLastByte(byteArray, 2)\n };\n\n /// Checks if the given principal is a reserved principal.\n ///\n /// The last byte for reserved principal ids must be 0x7f\n /// https://internetcomputer.org/docs/current/references/ic-interface-spec#principal\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert not Principal.isReserved(principal);\n /// ```\n public func isReserved(self : Principal) : Bool {\n let byteArray = toByteArray(self);\n\n byteArray.size() >= 0 and byteArray.size() <= 29 and isLastByte(byteArray, 127)\n };\n\n /// Checks if the given principal can control this canister.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert not Principal.isController(principal);\n /// ```\n public func isController(self : Principal) : Bool = Prim.isController self;\n\n /// Hashes the given principal by hashing its `Blob` representation.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert Principal.hash(principal) == 2_742_573_646;\n /// ```\n public func hash(self : Principal) : Types.Hash = Blob.hash(Prim.blobOfPrincipal(self));\n\n /// General purpose comparison function for `Principal`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `principal1` with\n /// `principal2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let principal2 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// assert Principal.compare(principal1, principal2) == #equal;\n /// ```\n public func compare(self : Principal, other : Principal) : {\n #less;\n #equal;\n #greater\n } {\n if (self < other) {\n #less\n } else if (self == other) {\n #equal\n } else {\n #greater\n }\n };\n\n /// Equality function for Principal types.\n /// This is equivalent to `principal1 == principal2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let principal2 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// ignore Principal.equal(principal1, principal2);\n /// assert principal1 == principal2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.anonymous();\n /// let principal2 = Principal.fromBlob(\"\\04\");\n /// assert Principal.equal(principal1, principal2);\n /// ```\n public func equal(self : Principal, other : Principal) : Bool {\n self == other\n };\n\n /// Inequality function for Principal types.\n /// This is equivalent to `principal1 != principal2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let principal2 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// ignore Principal.notEqual(principal1, principal2);\n /// assert not (principal1 != principal2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(self : Principal, other : Principal) : Bool {\n self != other\n };\n\n /// \"Less than\" function for Principal types.\n /// This is equivalent to `principal1 < principal2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let principal2 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// ignore Principal.less(principal1, principal2);\n /// assert not (principal1 < principal2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(self : Principal, other : Principal) : Bool {\n self < other\n };\n\n /// \"Less than or equal to\" function for Principal types.\n /// This is equivalent to `principal1 <= principal2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let principal2 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// ignore Principal.lessOrEqual(principal1, principal2);\n /// assert principal1 <= principal2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(self : Principal, other : Principal) : Bool {\n self <= other\n };\n\n /// \"Greater than\" function for Principal types.\n /// This is equivalent to `principal1 > principal2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let principal2 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// ignore Principal.greater(principal1, principal2);\n /// assert not (principal1 > principal2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(self : Principal, other : Principal) : Bool {\n self > other\n };\n\n /// \"Greater than or equal to\" function for Principal types.\n /// This is equivalent to `principal1 >= principal2`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let principal1 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// let principal2 = Principal.fromText(\"un4fu-tqaaa-aaaab-qadjq-cai\");\n /// ignore Principal.greaterOrEqual(principal1, principal2);\n /// assert principal1 >= principal2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(self : Principal, other : Principal) : Bool {\n self >= other\n };\n\n /**\n * SHA224 Utilities used in toAccount().\n * Utilities are not exposed as public functions.\n * Taken with permission from https://github.com/research-ag/sha2\n **/\n let K00 : Nat32 = 0x428a2f98;\n let K01 : Nat32 = 0x71374491;\n let K02 : Nat32 = 0xb5c0fbcf;\n let K03 : Nat32 = 0xe9b5dba5;\n let K04 : Nat32 = 0x3956c25b;\n let K05 : Nat32 = 0x59f111f1;\n let K06 : Nat32 = 0x923f82a4;\n let K07 : Nat32 = 0xab1c5ed5;\n let K08 : Nat32 = 0xd807aa98;\n let K09 : Nat32 = 0x12835b01;\n let K10 : Nat32 = 0x243185be;\n let K11 : Nat32 = 0x550c7dc3;\n let K12 : Nat32 = 0x72be5d74;\n let K13 : Nat32 = 0x80deb1fe;\n let K14 : Nat32 = 0x9bdc06a7;\n let K15 : Nat32 = 0xc19bf174;\n let K16 : Nat32 = 0xe49b69c1;\n let K17 : Nat32 = 0xefbe4786;\n let K18 : Nat32 = 0x0fc19dc6;\n let K19 : Nat32 = 0x240ca1cc;\n let K20 : Nat32 = 0x2de92c6f;\n let K21 : Nat32 = 0x4a7484aa;\n let K22 : Nat32 = 0x5cb0a9dc;\n let K23 : Nat32 = 0x76f988da;\n let K24 : Nat32 = 0x983e5152;\n let K25 : Nat32 = 0xa831c66d;\n let K26 : Nat32 = 0xb00327c8;\n let K27 : Nat32 = 0xbf597fc7;\n let K28 : Nat32 = 0xc6e00bf3;\n let K29 : Nat32 = 0xd5a79147;\n let K30 : Nat32 = 0x06ca6351;\n let K31 : Nat32 = 0x14292967;\n let K32 : Nat32 = 0x27b70a85;\n let K33 : Nat32 = 0x2e1b2138;\n let K34 : Nat32 = 0x4d2c6dfc;\n let K35 : Nat32 = 0x53380d13;\n let K36 : Nat32 = 0x650a7354;\n let K37 : Nat32 = 0x766a0abb;\n let K38 : Nat32 = 0x81c2c92e;\n let K39 : Nat32 = 0x92722c85;\n let K40 : Nat32 = 0xa2bfe8a1;\n let K41 : Nat32 = 0xa81a664b;\n let K42 : Nat32 = 0xc24b8b70;\n let K43 : Nat32 = 0xc76c51a3;\n let K44 : Nat32 = 0xd192e819;\n let K45 : Nat32 = 0xd6990624;\n let K46 : Nat32 = 0xf40e3585;\n let K47 : Nat32 = 0x106aa070;\n let K48 : Nat32 = 0x19a4c116;\n let K49 : Nat32 = 0x1e376c08;\n let K50 : Nat32 = 0x2748774c;\n let K51 : Nat32 = 0x34b0bcb5;\n let K52 : Nat32 = 0x391c0cb3;\n let K53 : Nat32 = 0x4ed8aa4a;\n let K54 : Nat32 = 0x5b9cca4f;\n let K55 : Nat32 = 0x682e6ff3;\n let K56 : Nat32 = 0x748f82ee;\n let K57 : Nat32 = 0x78a5636f;\n let K58 : Nat32 = 0x84c87814;\n let K59 : Nat32 = 0x8cc70208;\n let K60 : Nat32 = 0x90befffa;\n let K61 : Nat32 = 0xa4506ceb;\n let K62 : Nat32 = 0xbef9a3f7;\n let K63 : Nat32 = 0xc67178f2;\n\n let ivs : [[Nat32]] = [\n [\n // 224\n 0xc1059ed8,\n 0x367cd507,\n 0x3070dd17,\n 0xf70e5939,\n 0xffc00b31,\n 0x68581511,\n 0x64f98fa7,\n 0xbefa4fa4\n ],\n [\n // 256\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n ]\n ];\n\n let rot = Nat32.bitrotRight;\n\n class SHA224() {\n let (sum_bytes, iv) = (28, 0);\n\n var s0 : Nat32 = 0;\n var s1 : Nat32 = 0;\n var s2 : Nat32 = 0;\n var s3 : Nat32 = 0;\n var s4 : Nat32 = 0;\n var s5 : Nat32 = 0;\n var s6 : Nat32 = 0;\n var s7 : Nat32 = 0;\n\n let msg : [var Nat32] = VarArray.repeat(0, 16);\n let digest = VarArray.repeat(0, sum_bytes);\n var word : Nat32 = 0;\n\n var i_msg : Nat8 = 0;\n var i_byte : Nat8 = 4;\n var i_block : Nat64 = 0;\n\n public func reset() {\n i_msg := 0;\n i_byte := 4;\n i_block := 0;\n s0 := ivs[iv][0];\n s1 := ivs[iv][1];\n s2 := ivs[iv][2];\n s3 := ivs[iv][3];\n s4 := ivs[iv][4];\n s5 := ivs[iv][5];\n s6 := ivs[iv][6];\n s7 := ivs[iv][7]\n };\n\n reset();\n\n private func writeByte(val : Nat8) : () {\n word := (word << 8) ^ Nat32.fromIntWrap(Nat8.toNat(val));\n i_byte -%= 1;\n if (i_byte == 0) {\n msg[Nat8.toNat(i_msg)] := word;\n word := 0;\n i_byte := 4;\n i_msg +%= 1;\n if (i_msg == 16) {\n process_block();\n i_msg := 0;\n i_block +%= 1\n }\n }\n };\n\n private func process_block() : () {\n let w00 = msg[0];\n let w01 = msg[1];\n let w02 = msg[2];\n let w03 = msg[3];\n let w04 = msg[4];\n let w05 = msg[5];\n let w06 = msg[6];\n let w07 = msg[7];\n let w08 = msg[8];\n let w09 = msg[9];\n let w10 = msg[10];\n let w11 = msg[11];\n let w12 = msg[12];\n let w13 = msg[13];\n let w14 = msg[14];\n let w15 = msg[15];\n let w16 = w00 +% rot(w01, 07) ^ rot(w01, 18) ^ (w01 >> 03) +% w09 +% rot(w14, 17) ^ rot(w14, 19) ^ (w14 >> 10);\n let w17 = w01 +% rot(w02, 07) ^ rot(w02, 18) ^ (w02 >> 03) +% w10 +% rot(w15, 17) ^ rot(w15, 19) ^ (w15 >> 10);\n let w18 = w02 +% rot(w03, 07) ^ rot(w03, 18) ^ (w03 >> 03) +% w11 +% rot(w16, 17) ^ rot(w16, 19) ^ (w16 >> 10);\n let w19 = w03 +% rot(w04, 07) ^ rot(w04, 18) ^ (w04 >> 03) +% w12 +% rot(w17, 17) ^ rot(w17, 19) ^ (w17 >> 10);\n let w20 = w04 +% rot(w05, 07) ^ rot(w05, 18) ^ (w05 >> 03) +% w13 +% rot(w18, 17) ^ rot(w18, 19) ^ (w18 >> 10);\n let w21 = w05 +% rot(w06, 07) ^ rot(w06, 18) ^ (w06 >> 03) +% w14 +% rot(w19, 17) ^ rot(w19, 19) ^ (w19 >> 10);\n let w22 = w06 +% rot(w07, 07) ^ rot(w07, 18) ^ (w07 >> 03) +% w15 +% rot(w20, 17) ^ rot(w20, 19) ^ (w20 >> 10);\n let w23 = w07 +% rot(w08, 07) ^ rot(w08, 18) ^ (w08 >> 03) +% w16 +% rot(w21, 17) ^ rot(w21, 19) ^ (w21 >> 10);\n let w24 = w08 +% rot(w09, 07) ^ rot(w09, 18) ^ (w09 >> 03) +% w17 +% rot(w22, 17) ^ rot(w22, 19) ^ (w22 >> 10);\n let w25 = w09 +% rot(w10, 07) ^ rot(w10, 18) ^ (w10 >> 03) +% w18 +% rot(w23, 17) ^ rot(w23, 19) ^ (w23 >> 10);\n let w26 = w10 +% rot(w11, 07) ^ rot(w11, 18) ^ (w11 >> 03) +% w19 +% rot(w24, 17) ^ rot(w24, 19) ^ (w24 >> 10);\n let w27 = w11 +% rot(w12, 07) ^ rot(w12, 18) ^ (w12 >> 03) +% w20 +% rot(w25, 17) ^ rot(w25, 19) ^ (w25 >> 10);\n let w28 = w12 +% rot(w13, 07) ^ rot(w13, 18) ^ (w13 >> 03) +% w21 +% rot(w26, 17) ^ rot(w26, 19) ^ (w26 >> 10);\n let w29 = w13 +% rot(w14, 07) ^ rot(w14, 18) ^ (w14 >> 03) +% w22 +% rot(w27, 17) ^ rot(w27, 19) ^ (w27 >> 10);\n let w30 = w14 +% rot(w15, 07) ^ rot(w15, 18) ^ (w15 >> 03) +% w23 +% rot(w28, 17) ^ rot(w28, 19) ^ (w28 >> 10);\n let w31 = w15 +% rot(w16, 07) ^ rot(w16, 18) ^ (w16 >> 03) +% w24 +% rot(w29, 17) ^ rot(w29, 19) ^ (w29 >> 10);\n let w32 = w16 +% rot(w17, 07) ^ rot(w17, 18) ^ (w17 >> 03) +% w25 +% rot(w30, 17) ^ rot(w30, 19) ^ (w30 >> 10);\n let w33 = w17 +% rot(w18, 07) ^ rot(w18, 18) ^ (w18 >> 03) +% w26 +% rot(w31, 17) ^ rot(w31, 19) ^ (w31 >> 10);\n let w34 = w18 +% rot(w19, 07) ^ rot(w19, 18) ^ (w19 >> 03) +% w27 +% rot(w32, 17) ^ rot(w32, 19) ^ (w32 >> 10);\n let w35 = w19 +% rot(w20, 07) ^ rot(w20, 18) ^ (w20 >> 03) +% w28 +% rot(w33, 17) ^ rot(w33, 19) ^ (w33 >> 10);\n let w36 = w20 +% rot(w21, 07) ^ rot(w21, 18) ^ (w21 >> 03) +% w29 +% rot(w34, 17) ^ rot(w34, 19) ^ (w34 >> 10);\n let w37 = w21 +% rot(w22, 07) ^ rot(w22, 18) ^ (w22 >> 03) +% w30 +% rot(w35, 17) ^ rot(w35, 19) ^ (w35 >> 10);\n let w38 = w22 +% rot(w23, 07) ^ rot(w23, 18) ^ (w23 >> 03) +% w31 +% rot(w36, 17) ^ rot(w36, 19) ^ (w36 >> 10);\n let w39 = w23 +% rot(w24, 07) ^ rot(w24, 18) ^ (w24 >> 03) +% w32 +% rot(w37, 17) ^ rot(w37, 19) ^ (w37 >> 10);\n let w40 = w24 +% rot(w25, 07) ^ rot(w25, 18) ^ (w25 >> 03) +% w33 +% rot(w38, 17) ^ rot(w38, 19) ^ (w38 >> 10);\n let w41 = w25 +% rot(w26, 07) ^ rot(w26, 18) ^ (w26 >> 03) +% w34 +% rot(w39, 17) ^ rot(w39, 19) ^ (w39 >> 10);\n let w42 = w26 +% rot(w27, 07) ^ rot(w27, 18) ^ (w27 >> 03) +% w35 +% rot(w40, 17) ^ rot(w40, 19) ^ (w40 >> 10);\n let w43 = w27 +% rot(w28, 07) ^ rot(w28, 18) ^ (w28 >> 03) +% w36 +% rot(w41, 17) ^ rot(w41, 19) ^ (w41 >> 10);\n let w44 = w28 +% rot(w29, 07) ^ rot(w29, 18) ^ (w29 >> 03) +% w37 +% rot(w42, 17) ^ rot(w42, 19) ^ (w42 >> 10);\n let w45 = w29 +% rot(w30, 07) ^ rot(w30, 18) ^ (w30 >> 03) +% w38 +% rot(w43, 17) ^ rot(w43, 19) ^ (w43 >> 10);\n let w46 = w30 +% rot(w31, 07) ^ rot(w31, 18) ^ (w31 >> 03) +% w39 +% rot(w44, 17) ^ rot(w44, 19) ^ (w44 >> 10);\n let w47 = w31 +% rot(w32, 07) ^ rot(w32, 18) ^ (w32 >> 03) +% w40 +% rot(w45, 17) ^ rot(w45, 19) ^ (w45 >> 10);\n let w48 = w32 +% rot(w33, 07) ^ rot(w33, 18) ^ (w33 >> 03) +% w41 +% rot(w46, 17) ^ rot(w46, 19) ^ (w46 >> 10);\n let w49 = w33 +% rot(w34, 07) ^ rot(w34, 18) ^ (w34 >> 03) +% w42 +% rot(w47, 17) ^ rot(w47, 19) ^ (w47 >> 10);\n let w50 = w34 +% rot(w35, 07) ^ rot(w35, 18) ^ (w35 >> 03) +% w43 +% rot(w48, 17) ^ rot(w48, 19) ^ (w48 >> 10);\n let w51 = w35 +% rot(w36, 07) ^ rot(w36, 18) ^ (w36 >> 03) +% w44 +% rot(w49, 17) ^ rot(w49, 19) ^ (w49 >> 10);\n let w52 = w36 +% rot(w37, 07) ^ rot(w37, 18) ^ (w37 >> 03) +% w45 +% rot(w50, 17) ^ rot(w50, 19) ^ (w50 >> 10);\n let w53 = w37 +% rot(w38, 07) ^ rot(w38, 18) ^ (w38 >> 03) +% w46 +% rot(w51, 17) ^ rot(w51, 19) ^ (w51 >> 10);\n let w54 = w38 +% rot(w39, 07) ^ rot(w39, 18) ^ (w39 >> 03) +% w47 +% rot(w52, 17) ^ rot(w52, 19) ^ (w52 >> 10);\n let w55 = w39 +% rot(w40, 07) ^ rot(w40, 18) ^ (w40 >> 03) +% w48 +% rot(w53, 17) ^ rot(w53, 19) ^ (w53 >> 10);\n let w56 = w40 +% rot(w41, 07) ^ rot(w41, 18) ^ (w41 >> 03) +% w49 +% rot(w54, 17) ^ rot(w54, 19) ^ (w54 >> 10);\n let w57 = w41 +% rot(w42, 07) ^ rot(w42, 18) ^ (w42 >> 03) +% w50 +% rot(w55, 17) ^ rot(w55, 19) ^ (w55 >> 10);\n let w58 = w42 +% rot(w43, 07) ^ rot(w43, 18) ^ (w43 >> 03) +% w51 +% rot(w56, 17) ^ rot(w56, 19) ^ (w56 >> 10);\n let w59 = w43 +% rot(w44, 07) ^ rot(w44, 18) ^ (w44 >> 03) +% w52 +% rot(w57, 17) ^ rot(w57, 19) ^ (w57 >> 10);\n let w60 = w44 +% rot(w45, 07) ^ rot(w45, 18) ^ (w45 >> 03) +% w53 +% rot(w58, 17) ^ rot(w58, 19) ^ (w58 >> 10);\n let w61 = w45 +% rot(w46, 07) ^ rot(w46, 18) ^ (w46 >> 03) +% w54 +% rot(w59, 17) ^ rot(w59, 19) ^ (w59 >> 10);\n let w62 = w46 +% rot(w47, 07) ^ rot(w47, 18) ^ (w47 >> 03) +% w55 +% rot(w60, 17) ^ rot(w60, 19) ^ (w60 >> 10);\n let w63 = w47 +% rot(w48, 07) ^ rot(w48, 18) ^ (w48 >> 03) +% w56 +% rot(w61, 17) ^ rot(w61, 19) ^ (w61 >> 10);\n\n /*\n for ((i, j, k, l, m) in expansion_rounds.values()) {\n // (j,k,l,m) = (i+1,i+9,i+14,i+16)\n let (v0, v1) = (msg[j], msg[l]);\n let s0 = rot(v0, 07) ^ rot(v0, 18) ^ (v0 >> 03);\n let s1 = rot(v1, 17) ^ rot(v1, 19) ^ (v1 >> 10);\n msg[m] := msg[i] +% s0 +% msg[k] +% s1;\n };\n */\n // compress\n var a = s0;\n var b = s1;\n var c = s2;\n var d = s3;\n var e = s4;\n var f = s5;\n var g = s6;\n var h = s7;\n var t = 0 : Nat32;\n\n t := h +% K00 +% w00 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K01 +% w01 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K02 +% w02 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K03 +% w03 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K04 +% w04 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K05 +% w05 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K06 +% w06 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K07 +% w07 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K08 +% w08 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K09 +% w09 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K10 +% w10 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K11 +% w11 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K12 +% w12 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K13 +% w13 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K14 +% w14 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K15 +% w15 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K16 +% w16 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K17 +% w17 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K18 +% w18 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K19 +% w19 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K20 +% w20 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K21 +% w21 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K22 +% w22 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K23 +% w23 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K24 +% w24 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K25 +% w25 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K26 +% w26 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K27 +% w27 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K28 +% w28 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K29 +% w29 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K30 +% w30 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K31 +% w31 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K32 +% w32 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K33 +% w33 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K34 +% w34 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K35 +% w35 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K36 +% w36 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K37 +% w37 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K38 +% w38 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K39 +% w39 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K40 +% w40 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K41 +% w41 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K42 +% w42 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K43 +% w43 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K44 +% w44 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K45 +% w45 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K46 +% w46 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K47 +% w47 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K48 +% w48 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K49 +% w49 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K50 +% w50 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K51 +% w51 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K52 +% w52 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K53 +% w53 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K54 +% w54 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K55 +% w55 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K56 +% w56 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K57 +% w57 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K58 +% w58 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K59 +% w59 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K60 +% w60 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K61 +% w61 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K62 +% w62 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n t := h +% K63 +% w63 +% (e & f) ^ (^ e & g) +% rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% (b & c) ^ (b & d) ^ (c & d) +% rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n\n /*\n for (i in compression_rounds.keys()) {\n let ch = (e & f) ^ (^ e & g);\n let maj = (a & b) ^ (a & c) ^ (b & c);\n let sigma0 = rot(a, 02) ^ rot(a, 13) ^ rot(a, 22);\n let sigma1 = rot(e, 06) ^ rot(e, 11) ^ rot(e, 25);\n let t = h +% K[i] +% msg[i] +% ch +% sigma1;\n h := g;\n g := f;\n f := e;\n e := d +% t;\n d := c;\n c := b;\n b := a;\n a := t +% maj +% sigma0;\n };\n */\n // final addition\n s0 +%= a;\n s1 +%= b;\n s2 +%= c;\n s3 +%= d;\n s4 +%= e;\n s5 +%= f;\n s6 +%= g;\n s7 +%= h\n };\n\n public func writeIter(iter : { next() : ?Nat8 }) : () {\n label reading loop {\n switch (iter.next()) {\n case (?val) {\n writeByte(val);\n continue reading\n };\n case (null) {\n break reading\n }\n }\n }\n };\n\n public func writeArray(arr : [Nat8]) : () = writeIter(arr.vals());\n public func writeBlob(blob : Blob) : () = writeIter(blob.vals());\n\n public func sum() : Blob {\n // calculate padding\n // t = bytes in the last incomplete block (0-63)\n let t : Nat8 = (i_msg << 2) +% 4 -% i_byte;\n // p = length of padding (1-64)\n var p : Nat8 = if (t < 56) (56 -% t) else (120 -% t);\n // n_bits = length of message in bits\n let n_bits : Nat64 = ((i_block << 6) +% Nat64.fromIntWrap(Nat8.toNat(t))) << 3;\n\n // write padding\n writeByte(0x80);\n p -%= 1;\n while (p != 0) {\n writeByte(0x00);\n p -%= 1\n };\n\n // write length (8 bytes)\n // Note: this exactly fills the block buffer, hence process_block will get\n // triggered by the last writeByte\n writeByte(Nat8.fromIntWrap(Nat64.toNat((n_bits >> 56) & 0xff)));\n writeByte(Nat8.fromIntWrap(Nat64.toNat((n_bits >> 48) & 0xff)));\n writeByte(Nat8.fromIntWrap(Nat64.toNat((n_bits >> 40) & 0xff)));\n writeByte(Nat8.fromIntWrap(Nat64.toNat((n_bits >> 32) & 0xff)));\n writeByte(Nat8.fromIntWrap(Nat64.toNat((n_bits >> 24) & 0xff)));\n writeByte(Nat8.fromIntWrap(Nat64.toNat((n_bits >> 16) & 0xff)));\n writeByte(Nat8.fromIntWrap(Nat64.toNat((n_bits >> 8) & 0xff)));\n writeByte(Nat8.fromIntWrap(Nat64.toNat(n_bits & 0xff)));\n\n // retrieve sum\n digest[0] := Nat8.fromIntWrap(Nat32.toNat((s0 >> 24) & 0xff));\n digest[1] := Nat8.fromIntWrap(Nat32.toNat((s0 >> 16) & 0xff));\n digest[2] := Nat8.fromIntWrap(Nat32.toNat((s0 >> 8) & 0xff));\n digest[3] := Nat8.fromIntWrap(Nat32.toNat(s0 & 0xff));\n digest[4] := Nat8.fromIntWrap(Nat32.toNat((s1 >> 24) & 0xff));\n digest[5] := Nat8.fromIntWrap(Nat32.toNat((s1 >> 16) & 0xff));\n digest[6] := Nat8.fromIntWrap(Nat32.toNat((s1 >> 8) & 0xff));\n digest[7] := Nat8.fromIntWrap(Nat32.toNat(s1 & 0xff));\n digest[8] := Nat8.fromIntWrap(Nat32.toNat((s2 >> 24) & 0xff));\n digest[9] := Nat8.fromIntWrap(Nat32.toNat((s2 >> 16) & 0xff));\n digest[10] := Nat8.fromIntWrap(Nat32.toNat((s2 >> 8) & 0xff));\n digest[11] := Nat8.fromIntWrap(Nat32.toNat(s2 & 0xff));\n digest[12] := Nat8.fromIntWrap(Nat32.toNat((s3 >> 24) & 0xff));\n digest[13] := Nat8.fromIntWrap(Nat32.toNat((s3 >> 16) & 0xff));\n digest[14] := Nat8.fromIntWrap(Nat32.toNat((s3 >> 8) & 0xff));\n digest[15] := Nat8.fromIntWrap(Nat32.toNat(s3 & 0xff));\n digest[16] := Nat8.fromIntWrap(Nat32.toNat((s4 >> 24) & 0xff));\n digest[17] := Nat8.fromIntWrap(Nat32.toNat((s4 >> 16) & 0xff));\n digest[18] := Nat8.fromIntWrap(Nat32.toNat((s4 >> 8) & 0xff));\n digest[19] := Nat8.fromIntWrap(Nat32.toNat(s4 & 0xff));\n digest[20] := Nat8.fromIntWrap(Nat32.toNat((s5 >> 24) & 0xff));\n digest[21] := Nat8.fromIntWrap(Nat32.toNat((s5 >> 16) & 0xff));\n digest[22] := Nat8.fromIntWrap(Nat32.toNat((s5 >> 8) & 0xff));\n digest[23] := Nat8.fromIntWrap(Nat32.toNat(s5 & 0xff));\n digest[24] := Nat8.fromIntWrap(Nat32.toNat((s6 >> 24) & 0xff));\n digest[25] := Nat8.fromIntWrap(Nat32.toNat((s6 >> 16) & 0xff));\n digest[26] := Nat8.fromIntWrap(Nat32.toNat((s6 >> 8) & 0xff));\n digest[27] := Nat8.fromIntWrap(Nat32.toNat(s6 & 0xff));\n\n return Blob.fromVarArray(digest)\n }\n }; // class SHA224\n\n func nat32ToByteArray(n : Nat32) : [Nat8] {\n func byte(n : Nat32) : Nat8 {\n Nat8.fromNat(Nat32.toNat(n & 0xff))\n };\n [byte(n >> 24), byte(n >> 16), byte(n >> 8), byte(n)]\n };\n\n func toByteArray(p : Principal) : [Nat8] = Blob.toArray(toBlob(p));\n\n func isLastByte(byteArray : [Nat8], byte : Nat8) : Bool {\n let size = byteArray.size();\n size > 0 and byteArray[size - 1] == byte\n }\n}\n"},"pure/RealTimeQueue.mo":{"content":"/// Double-ended immutable queue with guaranteed `O(1)` push/pop operations (caveat: high constant factor).\n/// For a default immutable queue implementation, see `pure/Queue`.\n///\n/// This module provides an alternative implementation with better worst-case performance for single operations, e.g. `pushBack` and `popFront`.\n/// These operations are always constant time, `O(1)`, which eliminates spikes in performance of `pure/Queue` operations\n/// that are caused by the amortized nature of the `pure/Queue` implementation, which can lead to `O(n)` worst-case performance for a single operation.\n/// The spikes in performance can cause a single message to take multiple more rounds to complete than most other messages.\n///\n/// However, the `O(1)` operations come at a cost of higher constant factor than the `pure/Queue` implementation:\n/// - 'pop' operations are on average 3x more expensive\n/// - 'push' operations are on average 8x more expensive\n///\n/// For better performance across multiple operations and when the spikes in single operations are not a problem, use `pure/Queue`.\n/// For guaranteed `O(1)` operations, use `pure/RealTimeQueue`.\n///\n/// ---\n///\n/// The interface is purely functional, not imperative, and queues are immutable values.\n/// In particular, Queue operations such as push and pop do not update their input queue but, instead, return the\n/// value of the modified Queue, alongside any other data.\n/// The input queue is left unchanged.\n///\n/// Examples of use-cases:\n/// - Queue (FIFO) by using `pushBack()` and `popFront()`.\n/// - Stack (LIFO) by using `pushFront()` and `popFront()`.\n/// - Deque (double-ended queue) by using any combination of push/pop operations on either end.\n///\n/// A Queue is internally implemented as a real-time double-ended queue based on the paper\n/// \"Real-Time Double-Ended Queue Verified (Proof Pearl)\". The implementation maintains\n/// worst-case constant time `O(1)` for push/pop operations through gradual rebalancing steps.\n///\n/// Construction: Create a new queue with the `empty()` function.\n///\n/// Note that some operations that traverse the elements of the queue (e.g. `forEach`, `values`) preserve the order of the elements,\n/// whereas others (e.g. `map`, `contains`) do NOT guarantee that the elements are visited in any order.\n/// The order is undefined to avoid allocations, making these operations more efficient.\n///\n/// ```motoko name=import\n/// import Queue \"mo:core/pure/RealTimeQueue\";\n/// ```\n\nimport Types \"../Types\";\nimport List \"List\";\nimport Option \"../Option\";\nimport { trap } \"../Runtime\";\nimport Iter \"../Iter\";\n\nmodule {\n /// The real-time queue data structure can be in one of the following states:\n ///\n /// - `#empty`: the queue is empty\n /// - `#one`: the queue contains a single element\n /// - `#two`: the queue contains two elements\n /// - `#three`: the queue contains three elements\n /// - `#idles`: the queue is in the idle state, where `l` and `r` are non-empty stacks of elements fulfilling the size invariant\n /// - `#rebal`: the queue is in the rebalancing state\n public type Queue = {\n #empty;\n #one : T;\n #two : (T, T);\n #three : (T, T, T);\n #idles : (Idle, Idle);\n #rebal : States\n };\n\n /// Create a new empty queue.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.empty();\n /// assert Queue.isEmpty(queue);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func empty() : Queue = #empty;\n\n /// Determine whether a queue is empty.\n /// Returns true if `queue` is empty, otherwise `false`.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.empty();\n /// assert Queue.isEmpty(queue);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func isEmpty(self : Queue) : Bool = switch self {\n case (#empty) true;\n case _ false\n };\n\n /// Create a new queue comprising a single element.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.singleton(25);\n /// assert Queue.size(queue) == 1;\n /// assert Queue.peekFront(queue) == ?25;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func singleton(element : T) : Queue = #one(element);\n\n /// Determine the number of elements contained in a queue.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.singleton(42);\n /// assert Queue.size(queue) == 1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func size(self : Queue) : Nat = switch self {\n case (#empty) 0;\n case (#one _) 1;\n case (#two _) 2;\n case (#three _) 3;\n case (#idles((l, nL), (r, nR))) {\n debug assert Stacks.size(l) == nL and Stacks.size(r) == nR;\n nL + nR\n };\n case (#rebal(_, big, small)) BigState.size(big) + SmallState.size(small)\n };\n\n /// Test if a queue contains a given value.\n /// Returns true if the queue contains the item, otherwise false.\n ///\n /// Note: The order in which elements are visited is undefined, for performance reasons.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// assert Queue.contains(queue, Nat.equal, 1);\n /// assert not Queue.contains(queue, Nat.equal, 3);\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(1)`\n public func contains(self : Queue, equal : (implicit : (T, T) -> Bool), item : T) : Bool = switch self {\n case (#empty) false;\n case (#one(x)) equal(x, item);\n case (#two(x, y)) equal(x, item) or equal(y, item);\n case (#three(x, y, z)) equal(x, item) or equal(y, item) or equal(z, item);\n case (#idles(((l1, l2), _), ((r1, r2), _))) List.contains(l1, equal, item) or List.contains(l2, equal, item) or List.contains(r2, equal, item) or List.contains(r1, equal, item); // note that the order of the right stack is reversed, but for this operation it does not matter\n case (#rebal(_, big, small)) {\n let (extraB, _, (oldB1, oldB2), _) = BigState.current(big);\n let (extraS, _, (oldS1, oldS2), _) = SmallState.current(small);\n // note that the order of one of the stacks is reversed (depending on the `direction` field), but for this operation it does not matter\n List.contains(extraB, equal, item) or List.contains(oldB1, equal, item) or List.contains(oldB2, equal, item) or List.contains(extraS, equal, item) or List.contains(oldS1, equal, item) or List.contains(oldS2, equal, item)\n }\n };\n\n /// Inspect the optional element on the front end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, the front element of `queue`.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushFront(Queue.pushFront(Queue.empty(), 2), 1);\n /// assert Queue.peekFront(queue) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func peekFront(self : Queue) : ?T = switch self {\n case (#idles((l, _), _)) Stacks.first(l);\n case (#rebal(dir, big, small)) switch dir {\n case (#left) ?SmallState.peek(small);\n case (#right) ?BigState.peek(big)\n };\n case (#empty) null;\n case (#one(x)) ?x;\n case (#two(x, _)) ?x;\n case (#three(x, _, _)) ?x\n };\n\n /// Inspect the optional element on the back end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, the back element of `queue`.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushFront(Queue.pushFront(Queue.empty(), 2), 1);\n /// assert Queue.peekBack(queue) == ?2;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n ///\n /// Space: `O(1)`.\n public func peekBack(self : Queue) : ?T = switch self {\n case (#idles(_, (r, _))) Stacks.first(r);\n case (#rebal(dir, big, small)) switch dir {\n case (#left) ?BigState.peek(big);\n case (#right) ?SmallState.peek(small)\n };\n case (#empty) null;\n case (#one(x)) ?x;\n case (#two(_, y)) ?y;\n case (#three(_, _, z)) ?z\n };\n\n /// Insert a new element on the front end of a queue.\n /// Returns the new queue with `element` in the front followed by the elements of `queue`.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushFront(Queue.pushFront(Queue.empty(), 2), 1);\n /// assert Queue.peekFront(queue) == ?1;\n /// assert Queue.peekBack(queue) == ?2;\n /// assert Queue.size(queue) == 2;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)` worst-case!\n ///\n /// Space: `O(1)` worst-case!\n public func pushFront(self : Queue, element : T) : Queue = switch self {\n case (#idles(l0, rnR)) {\n let lnL = Idle.push(l0, element); // enque the element to the left end\n // check if the size invariant still holds\n if (3 * rnR.1 >= lnL.1) {\n debug assert 3 * lnL.1 >= rnR.1;\n #idles(lnL, rnR)\n } else {\n // initiate the rebalancing process\n let (l, nL) = lnL;\n let (r, nR) = rnR;\n let targetSizeL = nL - nR - 1 : Nat;\n let targetSizeR = 2 * nR + 1;\n debug assert targetSizeL + targetSizeR == nL + nR;\n let big = #big1(Current.new(l, targetSizeL), l, null, targetSizeL);\n let small = #small1(Current.new(r, targetSizeR), r, null);\n let states = (#right, big, small);\n let states6 = States.step(States.step(States.step(States.step(States.step(States.step(states))))));\n #rebal(states6)\n }\n };\n // if the queue is in the middle of a rebalancing process: push the element and advance the rebalancing process by 4 steps\n // move back into the idle state if the rebalancing is done\n case (#rebal(dir, big0, small0)) switch dir {\n case (#right) {\n let big = BigState.push(big0, element);\n let states4 = States.step(States.step(States.step(States.step((#right, big, small0)))));\n debug assert states4.0 == #right;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(big, small);\n #idles(big, small)\n };\n case _ #rebal(states4)\n }\n };\n case (#left) {\n let small = SmallState.push(small0, element);\n let states4 = States.step(States.step(States.step(States.step((#left, big0, small)))));\n debug assert states4.0 == #left;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(small, big);\n #idles(small, big) // swapped because dir=left\n };\n case _ #rebal(states4)\n }\n }\n };\n case (#empty) #one(element);\n case (#one(y)) #two(element, y);\n case (#two(y, z)) #three(element, y, z);\n case (#three(a, b, c)) {\n let i1 = ((?(element, ?(a, null)), null), 2);\n let i2 = ((?(c, ?(b, null)), null), 2);\n #idles(i1, i2)\n }\n };\n\n /// Insert a new element on the back end of a queue.\n /// Returns the new queue with all the elements of `queue`, followed by `element` on the back.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// assert Queue.peekBack(queue) == ?2;\n /// assert Queue.size(queue) == 2;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)` worst-case!\n ///\n /// Space: `O(1)` worst-case!\n public func pushBack(self : Queue, element : T) : Queue = switch self {\n // Equivalent to: `reverse(pushFront(reverse(queue), element))`. Inlined for performance.\n case (#idles(rnR, l0)) {\n // ^ reversed input\n let lnL = Idle.push(l0, element);\n if (3 * rnR.1 >= lnL.1) {\n debug assert 3 * lnL.1 >= rnR.1;\n #idles(rnR, lnL) // reversed output\n } else {\n let (l, nL) = lnL;\n let (r, nR) = rnR;\n let targetSizeL = nL - nR - 1 : Nat;\n let targetSizeR = 2 * nR + 1;\n debug assert targetSizeL + targetSizeR == nL + nR;\n let big = #big1(Current.new(l, targetSizeL), l, null, targetSizeL);\n let small = #small1(Current.new(r, targetSizeR), r, null);\n let states = (#left, big, small); // reversed output\n let states6 = States.step(States.step(States.step(States.step(States.step(States.step(states))))));\n #rebal(states6)\n }\n };\n case (#rebal(dir, big0, small0)) switch dir {\n case (#left) {\n // ^ reversed input\n let big = BigState.push(big0, element);\n let states4 = States.step(States.step(States.step(States.step((#left, big, small0))))); // reversed output\n debug assert states4.0 == #left;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(big, small);\n #idles(small, big) // reversed output\n };\n case _ #rebal(states4)\n }\n };\n case (#right) {\n // ^ reversed input\n let small = SmallState.push(small0, element);\n let states4 = States.step(States.step(States.step(States.step((#right, big0, small))))); // reversed output\n debug assert states4.0 == #right;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(small, big);\n #idles(big, small) // reversed output\n };\n case _ #rebal(states4)\n }\n }\n };\n case (#empty) #one(element);\n case (#one(y)) #two(y, element);\n case (#two(y, z)) #three(y, z, element);\n case (#three(a, b, c)) {\n let i1 = ((?(a, ?(b, null)), null), 2);\n let i2 = ((?(element, ?(c, null)), null), 2);\n #idles(i1, i2)\n }\n };\n\n /// Remove the element on the front end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, it returns a pair of\n /// the first element and a new queue that contains all the remaining elements of `queue`.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Runtime \"mo:core/Runtime\";\n ///\n /// persistent actor {\n /// do {\n /// let initial = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// let ?(frontElement, remainingQueue) = Queue.popFront(initial) else Runtime.trap \"Empty queue impossible\";\n /// assert frontElement == 1;\n /// assert Queue.size(remainingQueue) == 1;\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(1)` worst-case!\n ///\n /// Space: `O(1)` worst-case!\n public func popFront(self : Queue) : ?(T, Queue) = switch self {\n case (#idles(l0, rnR)) {\n let (x, lnL) = Idle.pop(l0);\n if (3 * lnL.1 >= rnR.1) {\n ?(x, #idles(lnL, rnR))\n } else if (lnL.1 >= 1) {\n let (l, nL) = lnL;\n let (r, nR) = rnR;\n let targetSizeL = 2 * nL + 1;\n let targetSizeR = nR - nL - 1 : Nat;\n debug assert targetSizeL + targetSizeR == nL + nR;\n let small = #small1(Current.new(l, targetSizeL), l, null);\n let big = #big1(Current.new(r, targetSizeR), r, null, targetSizeR);\n let states = (#left, big, small);\n let states6 = States.step(States.step(States.step(States.step(States.step(States.step(states))))));\n ?(x, #rebal(states6))\n } else {\n ?(x, Stacks.smallqueue(rnR.0))\n }\n };\n case (#rebal(dir, big0, small0)) switch dir {\n case (#left) {\n let (x, small) = SmallState.pop(small0);\n let states4 = States.step(States.step(States.step(States.step((#left, big0, small)))));\n debug assert states4.0 == #left;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(small, big);\n ?(x, #idles(small, big))\n };\n case _ ?(x, #rebal(states4))\n }\n };\n case (#right) {\n let (x, big) = BigState.pop(big0);\n let states4 = States.step(States.step(States.step(States.step((#right, big, small0)))));\n debug assert states4.0 == #right;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(big, small);\n ?(x, #idles(big, small))\n };\n case _ ?(x, #rebal(states4))\n }\n }\n };\n case (#empty) null;\n case (#one(x)) ?(x, #empty);\n case (#two(x, y)) ?(x, #one(y));\n case (#three(x, y, z)) ?(x, #two(y, z))\n };\n\n /// Remove the element on the back end of a queue.\n /// Returns `null` if `queue` is empty. Otherwise, it returns a pair of\n /// a new queue that contains the remaining elements of `queue`\n /// and, as the second pair item, the removed back element.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Runtime \"mo:core/Runtime\";\n ///\n /// persistent actor {\n /// do {\n /// let initial = Queue.pushBack(Queue.pushBack(Queue.empty(), 1), 2);\n /// let ?(reducedQueue, removedElement) = Queue.popBack(initial) else Runtime.trap \"Empty queue impossible\";\n /// assert removedElement == 2;\n /// assert Queue.size(reducedQueue) == 1;\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(1)` worst-case!\n ///\n /// Space: `O(1)` worst-case!\n public func popBack(self : Queue) : ?(Queue, T) = switch self {\n // Equivalent to:\n // = do ? { let (x, queue2) = popFront(reverse(queue))!; (reverse(queue2), x) };\n // Inlined for performance.\n case (#idles(rnR, l0)) {\n // ^ reversed input\n let (x, lnL) = Idle.pop(l0);\n if (3 * lnL.1 >= rnR.1) {\n ?(#idles(rnR, lnL), x) // reversed output\n } else if (lnL.1 >= 1) {\n let (l, nL) = lnL;\n let (r, nR) = rnR;\n let targetSizeL = 2 * nL + 1;\n let targetSizeR = nR - nL - 1 : Nat;\n debug assert targetSizeL + targetSizeR == nL + nR;\n let small = #small1(Current.new(l, targetSizeL), l, null);\n let big = #big1(Current.new(r, targetSizeR), r, null, targetSizeR);\n let states = (#right, big, small); // reversed output\n let states6 = States.step(States.step(States.step(States.step(States.step(States.step(states))))));\n ?(#rebal(states6), x)\n } else {\n ?(Stacks.smallqueueReversed(rnR.0), x) // reversed output\n }\n };\n case (#rebal(dir, big0, small0)) switch dir {\n case (#right) {\n // ^ reversed input\n let (x, small) = SmallState.pop(small0);\n let states4 = States.step(States.step(States.step(States.step((#right, big0, small))))); // reversed output\n debug assert states4.0 == #right;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(big, small);\n ?(#idles(big, small), x) // reversed output\n };\n case _ ?(#rebal(states4), x)\n }\n };\n case (#left) {\n // ^ reversed input\n let (x, big) = BigState.pop(big0);\n let states4 = States.step(States.step(States.step(States.step((#left, big, small0))))); // reversed output\n debug assert states4.0 == #left;\n switch states4 {\n case (_, #big2(#idle(_, big)), #small3(#idle(_, small))) {\n debug assert idlesInvariant(small, big);\n ?(#idles(small, big), x) // reversed output\n };\n case _ ?(#rebal(states4), x)\n }\n }\n };\n case (#empty) null;\n case (#one(x)) ?(#empty, x);\n case (#two(x, y)) ?(#one(x), y);\n case (#three(x, y, z)) ?(#two(x, y), z)\n };\n\n /// Turn an iterator into a queue, consuming it.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([0, 1, 2, 3, 4].values());\n /// assert Queue.peekFront(queue) == ?0;\n /// assert Queue.peekBack(queue) == ?4;\n /// assert Queue.size(queue) == 5;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n public func fromIter(iter : Iter) : Queue {\n var queue = empty();\n Iter.forEach(iter, func(t : T) = queue := pushBack(queue, t));\n queue\n };\n\n /// Convert an iterator into a queue, consuming the iterator.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// transient let iter = [0, 1, 2, 3, 4].values();\n ///\n /// let queue = iter.toQueue();\n ///\n /// assert Queue.peekFront(queue) == ?0;\n /// assert Queue.peekBack(queue) == ?4;\n /// assert Queue.size(queue) == 5;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n public func toQueue(self : Iter) : Queue {\n fromIter(self)\n };\n\n /// Create an iterator over the elements in the queue. The order of the elements is from front to back.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Iter.toArray(Queue.values(queue)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(1)` to create the iterator and for each `next()` call.\n ///\n /// Space: `O(1)` to create the iterator and for each `next()` call.\n public func values(self : Queue) : Iter.Iter {\n object {\n var current = self;\n public func next() : ?T {\n switch (popFront(current)) {\n case null null;\n case (?result) {\n current := result.1;\n ?result.0\n }\n }\n }\n }\n };\n\n /// Compare two queues for equality using a provided equality function to compare their elements.\n /// Two queues are considered equal if they contain the same elements in the same order.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue1 = Queue.fromIter([1, 2, 3].values());\n /// let queue2 = Queue.fromIter([1, 2, 3].values());\n /// let queue3 = Queue.fromIter([1, 3, 2].values());\n /// assert Queue.equal(queue1, queue2, Nat.equal);\n /// assert not Queue.equal(queue1, queue3, Nat.equal);\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n public func equal(self : Queue, other : Queue, equal : (implicit : (T, T) -> Bool)) : Bool {\n if (size(self) != size(other)) {\n return false\n };\n func go(self : Queue, other : Queue, equal : (T, T) -> Bool) : Bool = switch (popFront self, popFront other) {\n case (null, null) true;\n case (?(x1, tail1), ?(x2, tail2)) equal(x1, x2) and go(tail1, tail2, equal); // Note that this is tail recursive (`and` is expanded to `if`).\n case _ false\n };\n go(self, other, equal)\n };\n\n /// Compare two queues lexicographically using a provided comparison function to compare their elements.\n /// Returns `#less` if `queue1` is lexicographically less than `queue2`, `#equal` if they are equal, and `#greater` otherwise.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue1 = Queue.fromIter([1, 2, 3].values());\n /// let queue2 = Queue.fromIter([1, 2, 4].values());\n /// assert Queue.compare(queue1, queue2, Nat.compare) == #less;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n public func compare(self : Queue, other : Queue, compareItem : (implicit : (compare : (T, T) -> Types.Order))) : Types.Order = switch (popFront self, popFront other) {\n case (null, null) #equal;\n case (null, _) #less;\n case (_, null) #greater;\n case (?(x1, selfTail), ?(x2, otherTail)) {\n switch (compareItem(x1, x2)) {\n case (#equal) compare(selfTail, otherTail, compareItem);\n case order order\n }\n }\n };\n\n /// Return true if the given predicate is true for all queue elements.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([2, 4, 6].values());\n /// assert Queue.all(queue, func n = n % 2 == 0);\n /// assert not Queue.all(queue, func n = n > 4);\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)` as the current implementation uses `values` to iterate over the queue.\n ///\n /// *Runtime and space assumes that the `predicate` runs in `O(1)` time and space.\n public func all(self : Queue, predicate : T -> Bool) : Bool = switch self {\n case (#empty) true;\n case (#one(x)) predicate x;\n case (#two(x, y)) predicate x and predicate y;\n case (#three(x, y, z)) predicate x and predicate y and predicate z;\n case _ {\n for (item in values self) if (not (predicate item)) return false;\n return true\n }\n };\n\n /// Return true if the given predicate is true for any queue element.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.any(queue, func n = n > 2);\n /// assert not Queue.any(queue, func n = n > 3);\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)` as the current implementation uses `values` to iterate over the queue.\n ///\n /// *Runtime and space assumes that the `predicate` runs in `O(1)` time and space.\n public func any(self : Queue, predicate : T -> Bool) : Bool = switch self {\n case (#empty) false;\n case (#one(x)) predicate x;\n case (#two(x, y)) predicate x or predicate y;\n case (#three(x, y, z)) predicate x or predicate y or predicate z;\n case _ {\n for (item in values self) if (predicate item) return true;\n return false\n }\n };\n\n /// Call the given function for its side effect on each queue element in order: from front to back.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n /// persistent actor {\n /// var text = \"\";\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// Queue.forEach(queue, func n = text #= Nat.toText(n));\n /// assert text == \"123\";\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in `O(1)` time and space.\n public func forEach(self : Queue, f : T -> ()) = switch self {\n case (#empty) ();\n case (#one(x)) f x;\n case (#two(x, y)) { f x; f y };\n case (#three(x, y, z)) { f x; f y; f z };\n // Preserve the order when visiting the elements. Note that the #idles case would require reversing the second stack.\n case _ {\n for (t in values self) f t\n }\n };\n\n /// Create a new queue by applying the given function to each element of the original queue.\n ///\n /// Note: The order of visiting elements is undefined with the current implementation.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let mapped = Queue.map(queue, func n = n * 2);\n /// assert Queue.size(mapped) == 3;\n /// assert Queue.peekFront(mapped) == ?2;\n /// assert Queue.peekBack(mapped) == ?6;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `f` runs in `O(1)` time and space.\n public func map(self : Queue, f : T1 -> T2) : Queue = switch self {\n case (#empty) #empty;\n case (#one(x)) #one(f x);\n case (#two(x, y)) #two(f x, f y);\n case (#three(x, y, z)) #three(f x, f y, f z);\n case (#idles(l, r)) #idles(Idle.map(l, f), Idle.map(r, f));\n case (#rebal(_)) {\n // No reason to rebuild the #rebal state.\n // future work: It could be further optimized by building a balanced #idles state directly since we know the sizes.\n var q = empty();\n for (t in values self) q := pushBack(q, f t);\n q\n }\n };\n\n /// Create a new queue with only those elements of the original queue for which\n /// the given predicate returns true.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3, 4].values());\n /// let filtered = Queue.filter(queue, func n = n % 2 == 0);\n /// assert Queue.size(filtered) == 2;\n /// assert Queue.peekFront(filtered) == ?2;\n /// assert Queue.peekBack(filtered) == ?4;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that `predicate` runs in `O(1)` time and space.\n public func filter(self : Queue, predicate : T -> Bool) : Queue {\n var q = empty();\n for (t in values self) if (predicate t) q := pushBack(q, t);\n q\n };\n\n /// Create a new queue by applying the given function to each element of the original queue\n /// and collecting the results for which the function returns a non-null value.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3, 4].values());\n /// let filtered = Queue.filterMap(queue, func n = if (n % 2 == 0) { ?n } else null);\n /// assert Queue.size(filtered) == 2;\n /// assert Queue.peekFront(filtered) == ?2;\n /// assert Queue.peekBack(filtered) == ?4;\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that f runs in `O(1)` time and space.\n public func filterMap(self : Queue, f : T -> ?U) : Queue {\n var q = empty();\n for (t in values self) {\n switch (f t) {\n case (?x) q := pushBack(q, x);\n case null ()\n }\n };\n q\n };\n\n /// Create a `Text` representation of a queue for debugging purposes.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// assert Queue.toText(queue, Nat.toText) == \"RealTimeQueue[1, 2, 3]\";\n /// }\n /// ```\n ///\n /// Runtime: `O(size)`\n ///\n /// Space: `O(size)`\n ///\n /// *Runtime and space assumes that f runs in `O(1)` time and space.\n public func toText(self : Queue, f : (implicit : (toText : T -> Text))) : Text {\n var text = \"RealTimeQueue[\";\n var first = true;\n for (t in values self) {\n if (first) first := false else text #= \", \";\n text #= f(t)\n };\n text # \"]\"\n };\n\n /// Reverse the order of elements in a queue.\n /// This operation is cheap, it does NOT require copying the elements.\n ///\n /// Example:\n /// ```motoko include=import\n /// persistent actor {\n /// let queue = Queue.fromIter([1, 2, 3].values());\n /// let reversed = Queue.reverse(queue);\n /// assert Queue.peekFront(reversed) == ?3;\n /// assert Queue.peekBack(reversed) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`\n ///\n /// Space: `O(1)`\n public func reverse(self : Queue) : Queue = switch self {\n case (#idles(l, r)) #idles(r, l);\n case (#rebal(#left, big, small)) #rebal(#right, big, small);\n case (#rebal(#right, big, small)) #rebal(#left, big, small);\n case (#empty) self;\n case (#one(_)) self;\n case (#two(x, y)) #two(y, x);\n case (#three(x, y, z)) #three(z, y, x)\n };\n\n type Stacks = (left : List, right : List);\n\n module Stacks {\n public func push((left, right) : Stacks, t : T) : Stacks = (?(t, left), right);\n\n public func pop(stacks : Stacks) : Stacks = switch stacks {\n case (?(_, leftTail), right) (leftTail, right);\n case (null, ?(_, rightTail)) (null, rightTail);\n case (null, null) stacks\n };\n\n public func first((left, right) : Stacks) : ?T = switch (left) {\n case (?(h, _)) ?h;\n case (null) do ? { right!.0 }\n };\n\n public func unsafeFirst((left, right) : Stacks) : T = switch (left) {\n case (?(h, _)) h;\n case (null) Option.unwrap(right).0\n };\n\n public func isEmpty((left, right) : Stacks) : Bool = List.isEmpty(left) and List.isEmpty(right);\n\n public func size((left, right) : Stacks) : Nat = List.size(left) + List.size(right);\n\n public func smallqueue((left, right) : Stacks) : Queue = switch (left, right) {\n case (null, null) #empty;\n case (null, ?(x, null)) #one(x);\n case (?(x, null), null) #one(x);\n case (null, ?(x, ?(y, null))) #two(y, x);\n case (?(x, null), ?(y, null)) #two(y, x);\n case (?(x, ?(y, null)), null) #two(y, x);\n case (null, ?(x, ?(y, ?(z, null)))) #three(z, y, x);\n case (?(x, ?(y, ?(z, null))), null) #three(z, y, x);\n case (?(x, ?(y, null)), ?(z, null)) #three(z, y, x);\n case (?(x, null), ?(y, ?(z, null))) #three(z, y, x);\n case _ (trap \"Queue.Stacks.smallqueue() impossible\")\n };\n\n public func smallqueueReversed((left, right) : Stacks) : Queue = switch (left, right) {\n case (null, null) #empty;\n case (null, ?(x, null)) #one(x);\n case (?(x, null), null) #one(x);\n case (null, ?(x, ?(y, null))) #two(x, y);\n case (?(x, null), ?(y, null)) #two(x, y);\n case (?(x, ?(y, null)), null) #two(x, y);\n case (null, ?(x, ?(y, ?(z, null)))) #three(x, y, z);\n case (?(x, ?(y, ?(z, null))), null) #three(x, y, z);\n case (?(x, ?(y, null)), ?(z, null)) #three(x, y, z);\n case (?(x, null), ?(y, ?(z, null))) #three(x, y, z);\n case _ (trap \"Queue.Stacks.smallqueueReversed() impossible\")\n };\n public func map((left, right) : Stacks, f : T -> U) : Stacks = (List.map(left, f), List.map(right, f))\n };\n\n /// Represents an end of the queue that is not in a rebalancing process. It is a stack and its size.\n type Idle = (stacks : Stacks, size : Nat);\n module Idle {\n public func push((stacks, size) : Idle, t : T) : Idle = (Stacks.push(stacks, t), 1 + size);\n public func pop((stacks, size) : Idle) : (T, Idle) = (Stacks.unsafeFirst(stacks), (Stacks.pop(stacks), size - 1 : Nat));\n public func peek((stacks, _) : Idle) : T = Stacks.unsafeFirst(stacks);\n\n public func map((stacks, size) : Idle, f : T -> U) : Idle = (Stacks.map(stacks, f), size)\n };\n\n /// Stores information about operations that happen during rebalancing but which have not become part of the old state that is being rebalanced.\n ///\n /// - `extra`: newly added elements\n /// - `extraSize`: size of `extra`\n /// - `old`: elements contained before the rebalancing process\n /// - `targetSize`: the number of elements which will be contained after the rebalancing is finished\n type Current = (extra : List, extraSize : Nat, old : Stacks, targetSize : Nat);\n\n module Current {\n public func new(old : Stacks, targetSize : Nat) : Current = (null, 0, old, targetSize);\n\n public func push((extra, extraSize, old, targetSize) : Current, t : T) : Current = (?(t, extra), 1 + extraSize, old, targetSize);\n\n public func pop((extra, extraSize, old, targetSize) : Current) : (T, Current) = switch (extra) {\n case (?(h, t)) (h, (t, extraSize - 1 : Nat, old, targetSize));\n case (null) (Stacks.unsafeFirst(old), (null, extraSize, Stacks.pop(old), targetSize - 1 : Nat))\n };\n\n public func peek((extra, _, old, _) : Current) : T = switch (extra) {\n case (?(h, _)) h;\n case (null) Stacks.unsafeFirst(old)\n };\n\n public func size((_, extraSize, _, targetSize) : Current) : Nat = extraSize + targetSize\n };\n\n /// The bigger end of the queue during rebalancing. It is used to split the bigger end of the queue into the new big end and a portion to be added to the small end. Can be in one of the following states:\n ///\n /// - `#big1(cur, big, aux, n)`: Initial state. Using the step function it takes `n`-elements from the `big` stack and puts them to `aux` in reversed order. `#big1(cur, x1 .. xn : bigTail, [], n) ->* #big1(cur, bigTail, xn .. x1, 0)`. The `bigTail` is later given to the `small` end.\n /// - `#big2(common)`: Is used to reverse the elements from the previous phase to restore the original order. `common = #copy(cur, xn .. x1, [], 0) ->* #copy(cur, [], x1 .. xn, n)`.\n type BigState = {\n #big1 : (Current, Stacks, List, Nat);\n #big2 : CommonState\n };\n\n module BigState {\n public func push(big : BigState, t : T) : BigState = switch big {\n case (#big1(cur, big, aux, n)) #big1(Current.push(cur, t), big, aux, n);\n case (#big2(state)) #big2(CommonState.push(state, t))\n };\n\n public func pop(big : BigState) : (T, BigState) = switch big {\n case (#big1(cur, big, aux, n)) {\n let (x, cur2) = Current.pop(cur);\n (x, #big1(cur2, big, aux, n))\n };\n case (#big2(state)) {\n let (x, state2) = CommonState.pop(state);\n (x, #big2(state2))\n }\n };\n\n public func peek(big : BigState) : T = switch big {\n case (#big1(cur, _, _, _)) Current.peek(cur);\n case (#big2(state)) CommonState.peek(state)\n };\n\n public func step(big : BigState) : BigState = switch big {\n case (#big1(cur, big, aux, n)) {\n if (n == 0)\n #big2(CommonState.norm(#copy(cur, aux, null, 0))) else\n #big1(cur, Stacks.pop(big), ?(Stacks.unsafeFirst(big), aux), n - 1 : Nat)\n };\n case (#big2(state)) #big2(CommonState.step(state))\n };\n\n public func size(big : BigState) : Nat = switch big {\n case (#big1(cur, _, _, _)) Current.size(cur);\n case (#big2(state)) CommonState.size(state)\n };\n\n public func current(big : BigState) : Current = switch big {\n case (#big1(cur, _, _, _)) cur;\n case (#big2(state)) CommonState.current(state)\n }\n };\n\n /// The smaller end of the queue during rebalancing. Can be in one of the following states:\n ///\n /// - `#small1(cur, small, aux)`: Initial state. Using the step function the original elements are reversed. `#small1(cur, s1 .. sn, []) ->* #small1(cur, [], sn .. s1)`, note that `aux` is initially empty, at the end contains the reversed elements from the small stack.\n /// - `#small2(cur, aux, big, new, size)`: Using the step function the newly transfered tail from the bigger end is reversed on top of the `new` list. `#small2(cur, sn .. s1, b1 .. bm, [], 0) ->* #small2(cur, sn .. s1, [], bm .. b1, m)`, note that `aux` is the reversed small stack from the previous phase, `new` is initially empty, `size` corresponds to the size of `new`.\n /// - `#small3(common)`: Is used to reverse the elements from the two previous phases again to get them again in the original order. `#copy(cur, sn .. s1, bm .. b1, m) ->* #copy(cur, [], s1 .. sn : bm .. b1, n + m)`, note that the correct order of the elements from the big stack is reversed.\n type SmallState = {\n #small1 : (Current, Stacks, List);\n #small2 : (Current, List, Stacks, List, Nat);\n #small3 : CommonState\n };\n\n module SmallState {\n public func push(state : SmallState, t : T) : SmallState = switch state {\n case (#small1(cur, small, aux)) #small1(Current.push(cur, t), small, aux);\n case (#small2(cur, aux, big, new, newN)) #small2(Current.push(cur, t), aux, big, new, newN);\n case (#small3(common)) #small3(CommonState.push(common, t))\n };\n\n public func pop(state : SmallState) : (T, SmallState) = switch state {\n case (#small1(cur0, small, aux)) {\n let (t, cur) = Current.pop(cur0);\n (t, #small1(cur, small, aux))\n };\n case (#small2(cur0, aux, big, new, newN)) {\n let (t, cur) = Current.pop(cur0);\n (t, #small2(cur, aux, big, new, newN))\n };\n case (#small3(common0)) {\n let (t, common) = CommonState.pop(common0);\n (t, #small3(common))\n }\n };\n\n public func peek(state : SmallState) : T = switch state {\n case (#small1(cur, _, _)) Current.peek(cur);\n case (#small2(cur, _, _, _, _)) Current.peek(cur);\n case (#small3(common)) CommonState.peek(common)\n };\n\n public func step(state : SmallState) : SmallState = switch state {\n case (#small1(cur, small, aux)) {\n if (Stacks.isEmpty(small)) state else #small1(cur, Stacks.pop(small), ?(Stacks.unsafeFirst(small), aux))\n };\n case (#small2(cur, aux, big, new, newN)) {\n if (Stacks.isEmpty(big)) #small3(CommonState.norm(#copy(cur, aux, new, newN))) else #small2(cur, aux, Stacks.pop(big), ?(Stacks.unsafeFirst(big), new), 1 + newN)\n };\n case (#small3(common)) #small3(CommonState.step(common))\n };\n\n public func size(state : SmallState) : Nat = switch state {\n case (#small1(cur, _, _)) Current.size(cur);\n case (#small2(cur, _, _, _, _)) Current.size(cur);\n case (#small3(common)) CommonState.size(common)\n };\n\n public func current(state : SmallState) : Current = switch state {\n case (#small1(cur, _, _)) cur;\n case (#small2(cur, _, _, _, _)) cur;\n case (#small3(common)) CommonState.current(common)\n }\n };\n\n type CopyState = { #copy : (Current, List, List, Nat) };\n\n /// Represents the last rebalancing phase of both small and big ends of the queue. It is used to reverse the elements from the previous phases to restore the original order. It can be in one of the following states:\n ///\n /// - `#copy(cur, aux, new, sizeOfNew)`: Puts the elements from `aux` in reversed order on top of `new`. `#copy(cur, xn .. x1, new, sizeOfNew) ->* #copy(cur, [], x1 .. xn : new, n + sizeOfNew)`.\n /// - `#idle(cur, idle)`: The rebalancing process is done and the queue is in the idle state.\n type CommonState = CopyState or { #idle : (Current, Idle) };\n\n module CommonState {\n public func step(common : CommonState) : CommonState = switch common {\n case (#copy copy) {\n let (cur, aux, new, sizeOfNew) = copy;\n let (_, _, _, targetSize) = cur;\n norm(if (sizeOfNew < targetSize) #copy(cur, unsafeTail(aux), ?(unsafeHead(aux), new), 1 + sizeOfNew) else #copy copy)\n };\n case (#idle _) common\n };\n\n public func norm(copy : CopyState) : CommonState {\n let #copy(cur, _, new, sizeOfNew) = copy;\n let (extra, extraSize, _, targetSize) = cur;\n debug assert sizeOfNew <= targetSize;\n if (sizeOfNew >= targetSize) {\n #idle(cur, ((extra, new), extraSize + sizeOfNew)) // note: aux can be non-empty, thus ignored here, when the target size decreases after pop operations\n } else copy\n };\n\n public func push(common : CommonState, t : T) : CommonState = switch common {\n case (#copy(cur, aux, new, sizeOfNew)) #copy(Current.push(cur, t), aux, new, sizeOfNew);\n case (#idle(cur, idle)) #idle(Current.push(cur, t), Idle.push(idle, t)) // yes, push to both\n };\n\n public func pop(common : CommonState) : (T, CommonState) = switch common {\n case (#copy(cur, aux, new, sizeOfNew)) {\n let (t, cur2) = Current.pop(cur);\n (t, norm(#copy(cur2, aux, new, sizeOfNew)))\n };\n case (#idle(cur, idle)) {\n let (t, idle2) = Idle.pop(idle);\n (t, #idle(Current.pop(cur).1, idle2))\n }\n };\n\n public func peek(common : CommonState) : T = switch common {\n case (#copy(cur, _, _, _)) Current.peek(cur);\n case (#idle(_, idle)) Idle.peek(idle)\n };\n\n public func size(common : CommonState) : Nat = switch common {\n case (#copy(cur, _, _, _)) Current.size(cur);\n case (#idle(_, (_, size))) size\n };\n\n public func current(common : CommonState) : Current = switch common {\n case (#copy(cur, _, _, _)) cur;\n case (#idle(cur, _)) cur\n }\n };\n\n type States = (\n direction : Direction,\n bigState : BigState,\n smallState : SmallState\n );\n\n module States {\n public func step(states : States) : States = switch states {\n case (dir, #big1(_, bigTail, _, 0), #small1(currentS, _, auxS)) {\n (dir, BigState.step(states.1), #small2(currentS, auxS, bigTail, null, 0))\n };\n case (dir, big, small) (dir, BigState.step(big), SmallState.step(small))\n }\n };\n\n type Direction = { #left; #right };\n\n func idlesInvariant(((l, nL), (r, nR)) : (Idle, Idle)) : Bool = Stacks.size(l) == nL and Stacks.size(r) == nR and 3 * nL >= nR and 3 * nR >= nL;\n\n type List = Types.Pure.List;\n type Iter = Types.Iter;\n func unsafeHead(l : List) : T = Option.unwrap(l).0;\n func unsafeTail(l : List) : List = Option.unwrap(l).1\n}\n"},"Base64.mo":{"content":"/// Module for Base64 encoding of byte sequences.\n///\n/// Base64 encoding converts binary data to an ASCII string using 64 printable\n/// characters, as specified in [RFC 4648](https://www.rfc-editor.org/rfc/rfc4648).\n/// It is widely used for HTTP Basic Authentication, encoding binary data in\n/// JSON payloads, and data URIs.\n///\n/// This module uses the standard Base64 alphabet (`A–Z`, `a–z`, `0–9`, `+`, `/`)\n/// and pads output to a multiple of 4 characters using `=`.\n///\n/// Original version authored by Claude Sonnet (claude-sonnet-4-6) for use in generated\n/// Motoko API clients. The module received subsequent manual performance improvements.\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Base64 \"mo:core/Base64\";\n/// ```\n\nimport Blob \"Blob\";\nimport Nat8 \"Nat8\";\nimport Nat16 \"Nat16\";\nimport Nat32 \"Nat32\";\nimport Nat64 \"Nat64\";\nimport Text \"Text\";\nimport Prim \"mo:prim\";\n\nmodule {\n\n // Standard Base64 alphabet (RFC 4648 §4) in UTF8 values.\n // Equivalent to Text form:\n /*\n private let alphabet : [Text] = [\n \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\",\n \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\",\n \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\",\n \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\",\n \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"+\", \"/\"\n ];\n */\n // prettier-ignore\n private let alphabet : [Nat8] = [\n 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,\n 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,\n 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,\n 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,\n 43, 47\n ];\n\n /// Encodes a `Blob` as a Base64 `Text` string (RFC 4648 §4).\n ///\n /// Output length is always a multiple of 4, padded with `=` as needed.\n /// An empty `Blob` encodes to an empty `Text`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Base64.encode(\"\" : Blob) == \"\";\n /// assert Base64.encode(\"f\" : Blob) == \"Zg==\";\n /// assert Base64.encode(\"fo\" : Blob) == \"Zm8=\";\n /// assert Base64.encode(\"foo\" : Blob) == \"Zm9v\";\n /// assert Base64.encode(\"foobar\" : Blob) == \"Zm9vYmFy\";\n /// ```\n ///\n /// Typical use — embedding text in a data URI:\n /// ```motoko include=import\n /// let payload = \"Hello\" : Blob;\n /// let uri = \"data:text/plain;base64,\" # Base64.encode(payload);\n /// assert uri == \"data:text/plain;base64,SGVsbG8=\";\n /// ```\n public func encode(data : Blob) : Text {\n let sz = Nat64.fromIntWrap(data.size());\n var result = \"\";\n var i = 0 : Nat64;\n var next_i = 6 : Nat64;\n\n // Process chunks of 6 input bytes at a time (8 output characters)\n while (next_i <= sz) {\n let b1 = data[i.toNat()];\n let b2 : Nat8 = data[(i +% 1).toNat()];\n let b3 : Nat8 = data[(i +% 2).toNat()];\n let b4 : Nat8 = data[(i +% 3).toNat()];\n let b5 : Nat8 = data[(i +% 4).toNat()];\n let b6 : Nat8 = data[(i +% 5).toNat()];\n\n let n = (b1.toNat16().toNat32() << 16) | (b2.toNat16().toNat32() << 8) | b3.toNat16().toNat32();\n let m = (b4.toNat16().toNat32() << 16) | (b5.toNat16().toNat32() << 8) | b6.toNat16().toNat32();\n\n let bytes = Blob.fromArray([\n alphabet[((n >> 18) & 0x3F).toNat()],\n alphabet[((n >> 12) & 0x3F).toNat()],\n alphabet[((n >> 6) & 0x3F).toNat()],\n alphabet[(n & 0x3F).toNat()],\n alphabet[((m >> 18) & 0x3F).toNat()],\n alphabet[((m >> 12) & 0x3F).toNat()],\n alphabet[((m >> 6) & 0x3F).toNat()],\n alphabet[(m & 0x3F).toNat()]\n ]);\n\n switch (Text.decodeUtf8(bytes)) {\n case (?t) result := result # t;\n case (_) {\n Prim.trap(\"Cannot happen: Utf8 decode error in Base64.encode().\")\n }\n };\n\n i := next_i;\n next_i +%= 6\n };\n\n // Process remaining 0-5 input bytes in chunks of 3\n while (i < sz) {\n let b1 = data[i.toNat()];\n let b2 : Nat8 = if (i +% 1 < sz) data[(i +% 1).toNat()] else 0;\n let b3 : Nat8 = if (i +% 2 < sz) data[(i +% 2).toNat()] else 0;\n\n let n = (b1.toNat16().toNat32() << 16) | (b2.toNat16().toNat32() << 8) | b3.toNat16().toNat32();\n\n // Note: Value 61 is the UTF8 encoding of the `=` character\n let bytes = Blob.fromArray([\n alphabet[((n >> 18) & 0x3F).toNat()],\n alphabet[((n >> 12) & 0x3F).toNat()],\n if (i +% 1 < sz) alphabet[((n >> 6) & 0x3F).toNat()] else 61,\n if (i +% 2 < sz) alphabet[(n & 0x3F).toNat()] else 61\n ]);\n\n switch (Text.decodeUtf8(bytes)) {\n case (?t) result := result # t;\n case (_) {\n Prim.trap(\"Cannot happen: Utf8 decode error in Base64.encode().\")\n }\n };\n\n i +%= 3\n };\n result\n };\n\n}\n"},"Nat64.mo":{"content":"/// Utility functions on 64-bit unsigned integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Nat64 \"mo:core/Nat64\";\n/// ```\nimport Nat \"Nat\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 64-bit natural numbers.\n public type Nat64 = Prim.Types.Nat64;\n\n /// Maximum 64-bit natural number. `2 ** 64 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.maxValue == (18446744073709551615 : Nat64);\n /// ```\n public let maxValue : Nat64 = 18446744073709551615;\n\n /// Converts a 64-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.toNat(123) == (123 : Nat);\n /// ```\n public let toNat : (self : Nat64) -> Nat = Prim.nat64ToNat;\n\n /// Converts an unsigned integer with infinite precision to a 64-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.fromNat(123) == (123 : Nat64);\n /// ```\n public let fromNat : Nat -> Nat64 = Prim.natToNat64;\n\n /// Converts a 64-bit unsigned integer to an 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.toNat8(123) == (123 : Nat8);\n /// ```\n public func toNat8(self : Nat64) : Nat8 {\n Prim.nat16ToNat8(Prim.nat32ToNat16(Prim.nat64ToNat32(self)))\n };\n\n /// Converts a 16-bit unsigned integer to a 64-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.fromNat16(123) == (123 : Nat64);\n /// ```\n /// @deprecated M0235\n public func fromNat16(x : Nat16) : Nat64 {\n Prim.nat32ToNat64(Prim.nat16ToNat32(x))\n };\n\n /// Converts a 64-bit unsigned integer to a 16-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.toNat16(123) == (123 : Nat16);\n /// ```\n public func toNat16(self : Nat64) : Nat16 {\n Prim.nat32ToNat16(Prim.nat64ToNat32(self))\n };\n\n /// Converts an 8-bit unsigned integer to a 64-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.fromNat8(123) == (123 : Nat64);\n /// ```\n /// @deprecated M0235\n public func fromNat8(x : Nat8) : Nat64 {\n Prim.nat32ToNat64(Prim.nat16ToNat32(Prim.nat8ToNat16(x)))\n };\n\n /// Converts a 32-bit unsigned integer to a 64-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.fromNat32(123) == (123 : Nat64);\n /// ```\n /// @deprecated M0235\n public let fromNat32 : (x : Nat32) -> Nat64 = Prim.nat32ToNat64;\n\n /// Converts a 64-bit unsigned integer to a 32-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.toNat32(123) == (123 : Nat32);\n /// ```\n public let toNat32 : (self : Nat64) -> Nat32 = Prim.nat64ToNat32;\n\n /// Converts a signed integer with infinite precision to a 64-bit unsigned integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.fromIntWrap(123) == (123 : Nat64);\n /// ```\n public let fromIntWrap : Int -> Nat64 = Prim.intToNat64Wrap;\n\n /// Converts `x` to its textual representation. Textual representation _do not_\n /// contain underscores to represent commas.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.toText(1234) == (\"1234\" : Text);\n /// ```\n public func toText(self : Nat64) : Text {\n Nat.toText(toNat(self))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.min(123, 456) == (123 : Nat64);\n /// ```\n public func min(x : Nat64, y : Nat64) : Nat64 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.max(123, 456) == (456 : Nat64);\n /// ```\n public func max(x : Nat64, y : Nat64) : Nat64 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Nat64 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.equal(1, 1);\n /// assert (1 : Nat64) == (1 : Nat64);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Nat64 = 111;\n /// let b : Nat64 = 222;\n /// assert not Nat64.equal(a, b);\n /// ```\n public func equal(x : Nat64, y : Nat64) : Bool { x == y };\n\n /// Inequality function for Nat64 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.notEqual(1, 2);\n /// assert (1 : Nat64) != (2 : Nat64);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Nat64, y : Nat64) : Bool { x != y };\n\n /// \"Less than\" function for Nat64 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.less(1, 2);\n /// assert (1 : Nat64) < (2 : Nat64);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Nat64, y : Nat64) : Bool { x < y };\n\n /// \"Less than or equal\" function for Nat64 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.lessOrEqual(1, 2);\n /// assert (1 : Nat64) <= (2 : Nat64);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Nat64, y : Nat64) : Bool { x <= y };\n\n /// \"Greater than\" function for Nat64 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.greater(2, 1);\n /// assert (2 : Nat64) > (1 : Nat64);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Nat64, y : Nat64) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Nat64 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.greaterOrEqual(2, 1);\n /// assert (2 : Nat64) >= (1 : Nat64);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Nat64, y : Nat64) : Bool {\n x >= y\n };\n\n /// General purpose comparison function for `Nat64`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.compare(2, 3) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([2, 3, 1] : [Nat64], Nat64.compare) == [1, 2, 3];\n /// ```\n public func compare(x : Nat64, y : Nat64) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.add(1, 2) == 3;\n /// assert (1 : Nat64) + (2 : Nat64) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 0, Nat64.add) == 6;\n /// ```\n public func add(x : Nat64, y : Nat64) : Nat64 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n /// Traps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.sub(3, 1) == 2;\n /// assert (3 : Nat64) - (1 : Nat64) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 10, Nat64.sub) == 4;\n /// ```\n public func sub(x : Nat64, y : Nat64) : Nat64 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.mul(2, 3) == 6;\n /// assert (2 : Nat64) * (3 : Nat64) == 6;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 1, Nat64.mul) == 6;\n /// ```\n public func mul(x : Nat64, y : Nat64) : Nat64 { x * y };\n\n /// Returns the quotient of `x` divided by `y`, `x / y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.div(6, 2) == 3;\n /// assert (6 : Nat64) / (2 : Nat64) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Nat64, y : Nat64) : Nat64 { x / y };\n\n /// Returns the remainder of `x` divided by `y`, `x % y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.rem(6, 4) == 2;\n /// assert (6 : Nat64) % (4 : Nat64) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Nat64, y : Nat64) : Nat64 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`. Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.pow(2, 3) == 8;\n /// assert (2 : Nat64) ** (3 : Nat64) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Nat64, y : Nat64) : Nat64 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitnot(0) == 18446744073709551615;\n /// assert ^(0 : Nat64) == 18446744073709551615;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Nat64) : Nat64 { ^x };\n\n /// Returns the bitwise and of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitand(1, 3) == 1;\n /// assert (1 : Nat64) & (3 : Nat64) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Nat64, y : Nat64) : Nat64 { x & y };\n\n /// Returns the bitwise or of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitor(1, 3) == 3;\n /// assert (1 : Nat64) | (3 : Nat64) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `|` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `|`\n /// as a function value at the moment.\n public func bitor(x : Nat64, y : Nat64) : Nat64 { x | y };\n\n /// Returns the bitwise exclusive or of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitxor(1, 3) == 2;\n /// assert (1 : Nat64) ^ (3 : Nat64) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitxor(x : Nat64, y : Nat64) : Nat64 { x ^ y };\n\n /// Returns the bitwise shift left of `x` by `y`, `x << y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitshiftLeft(1, 3) == 8;\n /// assert (1 : Nat64) << (3 : Nat64) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Nat64, y : Nat64) : Nat64 {\n x << y\n };\n\n /// Returns the bitwise shift right of `x` by `y`, `x >> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitshiftRight(8, 3) == 1;\n /// assert (8 : Nat64) >> (3 : Nat64) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Nat64, y : Nat64) : Nat64 {\n x >> y\n };\n\n /// Returns the bitwise rotate left of `x` by `y`, `x <<> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitrotLeft(1, 3) == 8;\n /// assert (1 : Nat64) <<> (3 : Nat64) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Nat64, y : Nat64) : Nat64 { x <<> y };\n\n /// Returns the bitwise rotate right of `x` by `y`, `x <>> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitrotRight(8, 3) == 1;\n /// assert (8 : Nat64) <>> (3 : Nat64) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Nat64, y : Nat64) : Nat64 {\n x <>> y\n };\n\n /// Returns the value of bit `p mod 64` in `x`, `(x & 2^(p mod 64)) == 2^(p mod 64)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bittest(5, 2);\n /// ```\n public func bittest(x : Nat64, p : Nat) : Bool {\n Prim.btstNat64(x, Prim.natToNat64(p))\n };\n\n /// Returns the value of setting bit `p mod 64` in `x` to `1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitset(5, 1) == 7;\n /// ```\n public func bitset(x : Nat64, p : Nat) : Nat64 {\n x | (1 << Prim.natToNat64(p))\n };\n\n /// Returns the value of clearing bit `p mod 64` in `x` to `0`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitclear(5, 2) == 1;\n /// ```\n public func bitclear(x : Nat64, p : Nat) : Nat64 {\n x & ^(1 << Prim.natToNat64(p))\n };\n\n /// Returns the value of flipping bit `p mod 64` in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitflip(5, 2) == 1;\n /// ```\n public func bitflip(x : Nat64, p : Nat) : Nat64 {\n x ^ (1 << Prim.natToNat64(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitcountNonZero(5) == 2;\n /// ```\n public let bitcountNonZero : (x : Nat64) -> Nat64 = Prim.popcntNat64;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitcountLeadingZero(5) == 61;\n /// ```\n public let bitcountLeadingZero : (x : Nat64) -> Nat64 = Prim.clzNat64;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.bitcountTrailingZero(16) == 4;\n /// ```\n public let bitcountTrailingZero : (x : Nat64) -> Nat64 = Prim.ctzNat64;\n\n /// Returns the upper (i.e. most significant), lower (least significant)\n /// and in-between bytes of `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.explode 0xbb772266aa885511 == (187, 119, 34, 102, 170, 136, 85, 17);\n /// ```\n public let explode : (x : Nat64) -> (msb : Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, lsb : Nat8) = Prim.explodeNat64;\n\n /// Returns the sum of `x` and `y`, `x +% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.addWrap(Nat64.maxValue, 1) == 0;\n /// assert Nat64.maxValue +% (1 : Nat64) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Nat64, y : Nat64) : Nat64 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`. Wraps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.subWrap(0, 1) == 18446744073709551615;\n /// assert (0 : Nat64) -% (1 : Nat64) == 18446744073709551615;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Nat64, y : Nat64) : Nat64 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.mulWrap(4294967296, 4294967296) == 0;\n /// assert (4294967296 : Nat64) *% (4294967296 : Nat64) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Nat64, y : Nat64) : Nat64 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat64.powWrap(2, 64) == 0;\n /// assert (2 : Nat64) **% (64 : Nat64) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Nat64, y : Nat64) : Nat64 { x **% y };\n\n /// Returns an iterator over `Nat64` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat64.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat64.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Nat64, toExclusive : Nat64) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Nat64 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Nat64` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat64.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat64.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Nat64, to : Nat64) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Nat64 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Nat64 values, from 0 to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat64.allValues();\n /// assert iter.next() == ?0;\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(0, maxValue)\n };\n\n}\n"},"PriorityQueue.mo":{"content":"/// A mutable priority queue of elements.\n/// Always returns the element with the highest priority first,\n/// as determined by a user-provided comparison function.\n///\n/// Typical use cases include:\n/// * Task scheduling (highest-priority task first)\n/// * Event simulation\n/// * Pathfinding algorithms (e.g. Dijkstra, A*)\n///\n/// Example:\n/// ```motoko\n/// import PriorityQueue \"mo:core/PriorityQueue\";\n/// import Nat \"mo:core/Nat\";\n///\n/// persistent actor {\n/// let pq = PriorityQueue.empty();\n/// PriorityQueue.push(pq, Nat.compare, 5);\n/// PriorityQueue.push(pq, Nat.compare, 10);\n/// PriorityQueue.push(pq, Nat.compare, 3);\n/// assert PriorityQueue.pop(pq, Nat.compare) == ?10;\n/// assert PriorityQueue.pop(pq, Nat.compare) == ?5;\n/// assert PriorityQueue.pop(pq, Nat.compare) == ?3;\n/// assert PriorityQueue.pop(pq, Nat.compare) == null;\n/// }\n/// ```\n///\n/// Internally implemented as a binary heap stored in a core library `List`.\n///\n/// Performance:\n/// * Runtime: `O(log n)` for `push` and `pop` (amortized).\n/// * Runtime: `O(1)` for `peek`, `clear`, `size`, and `isEmpty`.\n/// * Space: `O(n)`, where `n` is the number of stored elements.\n///\n/// Implementation note (due to `List`):\n/// * There is an additive memory overhead of `O(sqrt(n))`.\n/// * For `push` and `pop`, the amortized time is `O(log n)`,\n/// but the worst case can involve an extra `O(sqrt(n))` step.\nimport List \"List\";\nimport Types \"Types\";\nimport Order \"Order\";\n\nmodule {\n public type PriorityQueue = Types.PriorityQueue;\n\n /// Returns an empty priority queue.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n ///\n /// let pq = PriorityQueue.empty();\n /// assert PriorityQueue.isEmpty(pq);\n /// ```\n ///\n /// Runtime: `O(1)`. Space: `O(1)`.\n public func empty() : PriorityQueue = {\n heap = List.empty()\n };\n\n /// Returns a priority queue containing a single element.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n ///\n /// let pq = PriorityQueue.singleton(42);\n /// assert PriorityQueue.peek(pq) == ?42;\n /// ```\n ///\n /// Runtime: `O(1)`. Space: `O(1)`.\n public func singleton(element : T) : PriorityQueue = {\n heap = List.singleton(element)\n };\n\n /// Returns the number of elements in the priority queue.\n ///\n /// Runtime: `O(1)`.\n public func size(self : PriorityQueue) : Nat = List.size(self.heap);\n\n /// Returns `true` iff the priority queue is empty.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let pq = PriorityQueue.empty();\n /// assert PriorityQueue.isEmpty(pq);\n /// PriorityQueue.push(pq, Nat.compare, 5);\n /// assert not PriorityQueue.isEmpty(pq);\n /// ```\n ///\n /// Runtime: `O(1)`. Space: `O(1)`.\n public func isEmpty(self : PriorityQueue) : Bool = List.isEmpty(self.heap);\n\n /// Removes all elements from the priority queue.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n /// import Nat \"mo:core/Nat\";\n ///\n ///\n /// let pq = PriorityQueue.empty();\n /// PriorityQueue.push(pq, Nat.compare, 5);\n /// PriorityQueue.push(pq, Nat.compare, 10);\n /// assert not PriorityQueue.isEmpty(pq);\n /// PriorityQueue.clear(pq);\n /// assert PriorityQueue.isEmpty(pq);\n /// ```\n ///\n /// Runtime: `O(1)`. Space: `O(1)`.\n public func clear(self : PriorityQueue) = List.clear(self.heap);\n\n /// Inserts a new element into the priority queue.\n ///\n /// `compare` – comparison function that defines priority ordering.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let pq = PriorityQueue.empty();\n /// PriorityQueue.push(pq, Nat.compare, 5);\n /// PriorityQueue.push(pq, Nat.compare, 10);\n /// assert PriorityQueue.peek(pq) == ?10;\n /// ```\n ///\n /// Runtime: `O(log n)`. Space: `O(1)`.\n public func push(\n self : PriorityQueue,\n compare : (implicit : (T, T) -> Order.Order),\n element : T\n ) {\n let heap = self.heap;\n List.add(heap, element);\n var index : Nat = List.size(heap) - 1;\n while (index > 0) {\n let parentId = (index - 1) : Nat / 2;\n let parentVal = List.at(heap, parentId);\n if (compare(element, parentVal) == #greater) {\n List.put(heap, index, parentVal);\n index := parentId\n } else {\n List.put(heap, index, element);\n return\n }\n };\n List.put(heap, 0, element)\n };\n\n /// Returns the element with the highest priority, without removing it.\n /// Returns `null` if the queue is empty.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n ///\n /// let pq = PriorityQueue.singleton(42);\n /// assert PriorityQueue.peek(pq) == ?42;\n /// ```\n ///\n /// Runtime: `O(1)`. Space: `O(1)`.\n public func peek(self : PriorityQueue) : ?T = List.get(self.heap, 0);\n\n /// Removes and returns the element with the highest priority.\n /// Returns `null` if the queue is empty.\n ///\n /// `compare` – comparison function that defines priority ordering.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let pq = PriorityQueue.empty();\n /// PriorityQueue.push(pq, Nat.compare, 5);\n /// PriorityQueue.push(pq, Nat.compare, 10);\n /// assert PriorityQueue.pop(pq, Nat.compare) == ?10;\n /// ```\n ///\n /// Runtime: `O(log n)`. Space: `O(1)`.\n public func pop(\n self : PriorityQueue,\n compare : (implicit : (T, T) -> Order.Order)\n ) : ?T {\n let heap = self.heap;\n if (List.isEmpty(heap)) {\n return null\n };\n let top = List.get(heap, 0);\n let lastIndex : Nat = List.size(heap) - 1;\n let lastElem = List.at(heap, lastIndex);\n\n var index = 0;\n loop {\n var best = lastIndex;\n let left = 2 * index + 1;\n var bestElem = lastElem;\n if (left < lastIndex) {\n let leftElem = List.at(heap, left);\n if (compare(leftElem, lastElem) == #greater) {\n best := left;\n bestElem := leftElem\n }\n };\n let right = left + 1;\n if (right < lastIndex) {\n let rightElem = List.at(heap, right);\n if (compare(rightElem, bestElem) == #greater) {\n best := right;\n bestElem := rightElem\n }\n };\n if (best == lastIndex) {\n List.put(heap, index, lastElem);\n ignore List.removeLast(heap);\n return top\n };\n List.put(heap, index, bestElem);\n index := best\n }\n };\n\n /// Creates a new priority queue from an iterator.\n ///\n /// `compare` – comparison function that defines priority ordering.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let pq = PriorityQueue.fromIter([5, 10, 3].values(), Nat.compare);\n /// assert PriorityQueue.size(pq) == 3;\n /// assert PriorityQueue.peek(pq) == ?10;\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// `n` denotes the number of elements in the iterator.\n public func fromIter(iter : Types.Iter, compare : (implicit : (T, T) -> Order.Order)) : PriorityQueue {\n let pq = empty();\n for (element in iter) {\n push(pq, element)\n };\n pq\n };\n\n /// Creates a copy of the priority queue.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// let original = PriorityQueue.fromIter([5, 10, 3].values(), Nat.compare);\n /// let copy = PriorityQueue.clone(original);\n /// assert PriorityQueue.pop(copy, Nat.compare) == ?10;\n /// assert PriorityQueue.size(original) == 3;\n /// ```\n ///\n /// Runtime: `O(n)`. Space: `O(n)`.\n /// `n` denotes the number of elements in the priority queue.\n public func clone(self : PriorityQueue) : PriorityQueue = {\n heap = List.clone(self.heap)\n };\n\n /// Returns an iterator that yields elements in descending priority order\n /// (highest priority first, matching `pop` semantics).\n ///\n /// The original queue is not modified. Internally clones the heap\n /// and pops from the clone on each `next()` call.\n ///\n /// `compare` – comparison function that defines priority ordering.\n ///\n /// Example:\n /// ```motoko\n /// import PriorityQueue \"mo:core/PriorityQueue\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// let pq = PriorityQueue.fromIter([5, 10, 3].values(), Nat.compare);\n /// assert Iter.toArray(PriorityQueue.values(pq, Nat.compare)) == [10, 5, 3];\n /// ```\n ///\n /// Runtime: `O(n)` to create the iterator, `O(log n)` per `next()` call.\n /// Space: `O(n)` for the internal clone.\n /// `n` denotes the number of elements in the priority queue.\n public func values(self : PriorityQueue, compare : (implicit : (T, T) -> Order.Order)) : Types.Iter {\n let copy : PriorityQueue = clone(self);\n object {\n public func next() : ?T {\n pop(copy)\n }\n }\n }\n}\n"},"Order.mo":{"content":"/// Utilities for `Order` (comparison between two values).\n\nimport Types \"Types\";\n\nmodule {\n\n /// A type to represent an order.\n public type Order = Types.Order;\n\n /// Check if an order is #less.\n public func isLess(self : Order) : Bool {\n switch self {\n case (#less) { true };\n case _ { false }\n }\n };\n\n /// Check if an order is #equal.\n public func isEqual(self : Order) : Bool {\n switch self {\n case (#equal) { true };\n case _ { false }\n }\n };\n\n /// Check if an order is #greater.\n public func isGreater(self : Order) : Bool {\n switch self {\n case (#greater) { true };\n case _ { false }\n }\n };\n\n /// Returns true if only if `order1` and `order2` are the same.\n public func equal(self : Order, other : Order) : Bool {\n switch (self, other) {\n case (#less, #less) { true };\n case (#equal, #equal) { true };\n case (#greater, #greater) { true };\n case _ { false }\n }\n };\n\n /// Returns an iterator that yields all possible `Order` values:\n /// `#less`, `#equal`, `#greater`.\n public func allValues() : Types.Iter {\n var nextState : ?Order = ?#less;\n {\n next = func() : ?Order {\n let state = nextState;\n switch state {\n case (?#less) { nextState := ?#equal };\n case (?#equal) { nextState := ?#greater };\n case (?#greater) { nextState := null };\n case (null) {}\n };\n state\n }\n }\n }\n\n}\n"},"pure/Set.mo":{"content":"/// Pure (immutable) sets based on order/comparison of elements.\n/// A set is a collection of elements without duplicates.\n/// The set data structure type is stable and can be used for orthogonal persistence.\n///\n/// Example:\n/// ```motoko\n/// import Set \"mo:core/pure/Set\";\n/// import Nat \"mo:core/Nat\";\n///\n/// persistent actor {\n/// let set = Set.fromIter([3, 1, 2, 3].values(), Nat.compare);\n/// assert Set.size(set) == 3;\n/// assert not Set.contains(set, Nat.compare, 4);\n/// let diff = Set.difference(set, set, Nat.compare);\n/// assert Set.isEmpty(diff);\n/// }\n/// ```\n///\n/// These sets are implemented as red-black trees, a balanced binary search tree of ordered elements.\n///\n/// The tree data structure internally colors each of its nodes either red or black,\n/// and uses this information to balance the tree during modifying operations.\n///\n/// Performance:\n/// * Runtime: `O(log(n))` worst case cost per insertion, removal, and retrieval operation.\n/// * Space: `O(n)` for storing the entire tree.\n/// `n` denotes the number of elements (i.e. nodes) stored in the tree.\n///\n/// Credits:\n///\n/// The core of this implementation is derived from:\n///\n/// * Ken Friis Larsen's [RedBlackMap.sml](https://github.com/kfl/mosml/blob/master/src/mosmllib/Redblackmap.sml), which itself is based on:\n/// * Stefan Kahrs, \"Red-black trees with types\", Journal of Functional Programming, 11(4): 425-432 (2001), [version 1 in web appendix](http://www.cs.ukc.ac.uk/people/staff/smk/redblack/rb.html).\n\nimport Runtime \"../Runtime\";\nimport List \"../List\"; // NB: imperative!\nimport Iter \"../Iter\";\nimport Types \"../Types\";\nimport Nat \"../Nat\";\nimport Order \"../Order\";\n\nmodule {\n\n /// Ordered collection of unique elements of the generic type `T`.\n /// If type `T` is stable then `Set` is also stable.\n /// To ensure that property the `Set` does not have any methods,\n /// instead they are gathered in the functor-like class `Operations` (see example there).\n\n /// @deprecated M0235\n public type Set = Types.Pure.Set;\n\n /// Red-black tree of nodes with ordered set elements.\n /// Leaves are considered implicitly black.\n type Tree = Types.Pure.Set.Tree;\n\n /// Create a set with the elements obtained from an iterator.\n /// Potential duplicate elements in the iterator are ignored, i.e.\n /// multiple occurrences of an equal element only occur once in the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([3, 1, 2, 1].values(), Nat.compare);\n /// assert Iter.toArray(Set.values(set)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements returned by the iterator and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n public func fromIter(iter : Iter.Iter, compare : (implicit : (T, T) -> Order.Order)) : Set {\n var set = empty() : Set;\n for (val in iter) {\n set := Internal.add(set, compare, val)\n };\n set\n };\n\n /// Convert an iterator into a set.\n /// Potential duplicate elements in the iterator are ignored, i.e.\n /// multiple occurrences of an equal element only occur once in the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// transient let iter = [3, 1, 2, 1].values();\n ///\n /// let set = iter.toSet(Nat.compare);\n ///\n /// assert Iter.toArray(Set.values(set)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements returned by the iterator and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n public func toSet(self : Iter.Iter, compare : (implicit : (T, T) -> Order.Order)) : Set {\n fromIter(self, compare)\n };\n\n /// Given a `set` ordered by `compare`, insert the new `element`,\n /// returning the new set.\n ///\n /// Return the set unchanged if the element already exists in the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set0 = Set.empty();\n /// let set1 = Set.add(set0, Nat.compare, 2);\n /// let set2 = Set.add(set1, Nat.compare, 1);\n /// let set3 = Set.add(set2, Nat.compare, 2);\n /// assert Iter.toArray(Set.values(set0)) == [];\n /// assert Iter.toArray(Set.values(set1)) == [2];\n /// assert Iter.toArray(Set.values(set2)) == [1, 2];\n /// assert Iter.toArray(Set.values(set3)) == [1, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned set shares with the `set` most of the tree nodes.\n /// Garbage collecting one of the sets (e.g. after an assignment `m := Set.add(m, c, e)`)\n /// causes collecting `O(log(n))` nodes.\n public func add(self : Set, compare : (implicit : (T, T) -> Order.Order), elem : T) : Set = Internal.add(self, compare, elem);\n\n /// Given `set` ordered by `compare`, insert the new `element`,\n /// returning the set extended with `element` and a Boolean indicating\n /// if the element was already present in `set`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set0 = Set.empty();\n /// do {\n /// let (set1, new1) = Set.insert(set0, Nat.compare, 2);\n /// assert new1;\n /// let (set2, new2) = Set.insert(set1, Nat.compare, 1);\n /// assert new2;\n /// let (set3, new3) = Set.insert(set2, Nat.compare, 2);\n /// assert not new3;\n /// assert Iter.toArray(Set.values(set3)) == [1, 2]\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: The returned set shares with the `set` most of the tree nodes.\n /// Garbage collecting one of the sets (e.g. after an assignment `m := Set.add(m, c, e)`)\n /// causes collecting `O(log(n))` nodes.\n public func insert(self : Set, compare : (implicit : (T, T) -> Order.Order), elem : T) : (Set, Bool) = Internal.insert(self, compare, elem);\n\n /// Given `set` ordered by `compare` return the set with `element` removed.\n /// Return the set unchanged if the element was absent.\n ///\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([1, 2, 3].values(), Nat.compare);\n ///\n /// let set1 = Set.remove(set, Nat.compare, 2);\n /// let set2 = Set.remove(set1, Nat.compare, 4);\n /// assert Iter.toArray(Set.values(set2)) == [1, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` including garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` objects that will be collected as garbage.\n /// Note: The returned set shares with `set` most of the tree nodes.\n /// Garbage collecting one of the sets (e.g. after an assignment `m := Set.delete(m, c, e)`)\n /// causes collecting `O(log(n))` nodes.\n public func remove(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) : Set = Internal.remove(self, compare, element);\n\n /// Given `set` ordered by `compare`, delete `element` from the set, returning\n /// either the set without the element and a Boolean indicating whether\n /// whether `element` was contained in `set`.\n ///\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// do {\n /// let (set1, contained1) = Set.delete(set, Nat.compare, 2);\n /// assert contained1;\n /// assert Iter.toArray(Set.values(set1)) == [1, 3];\n /// let (set2, contained2) = Set.delete(set1, Nat.compare, 4);\n /// assert not contained2;\n /// assert Iter.toArray(Set.values(set2)) == [1, 3];\n /// }\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` including garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` objects that will be collected as garbage.\n /// Note: The returned set shares with `set` most of the tree nodes.\n /// Garbage collecting one of the sets (e.g. after an assignment `m := Set.delete(m, c, e)`)\n /// causes collecting `O(log(n))` nodes.\n public func delete(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) : (Set, Bool) = Internal.delete(self, compare, element);\n\n /// Tests whether the set contains the provided element.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Bool \"mo:core/Bool\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([3, 1, 2].values(), Nat.compare);\n ///\n /// assert Set.contains(set, Nat.compare, 1);\n /// assert not Set.contains(set, Nat.compare, 4);\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func contains(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) : Bool = Internal.contains(self.root, compare, element);\n\n /// Get the maximal element of the set `set` if it is not empty, otherwise returns `null`\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([0, 2, 1].values(), Nat.compare);\n /// let set2 = Set.empty();\n /// assert Set.max(set1) == ?2;\n /// assert Set.max(set2) == null;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of elements in the set\n public func max(self : Set) : ?T = Internal.max(self.root);\n\n /// Retrieves the minimum element from the set.\n /// If the set is empty, returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([2, 0, 1].values(), Nat.compare);\n /// let set2 = Set.empty();\n /// assert Set.min(set1) == ?0;\n /// assert Set.min(set2) == null;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of elements stored in the set.\n public func min(self : Set) : ?T = Internal.min(self.root);\n\n /// Returns a new set that is the union of `set1` and `set2`,\n /// i.e. a new set that all the elements that exist in at least on of the two sets.\n /// Potential duplicates are ignored, i.e. if the same element occurs in both `set1`\n /// and `set2`, it only occurs once in the returned set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let union = Set.union(set1, set2, Nat.compare);\n /// assert Iter.toArray(Set.values(union)) == [1, 2, 3, 4, 5];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(m)`, retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements in the sets, and `m <= n`.\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(m * log(n))` temporary objects that will be collected as garbage.\n public func union(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Set {\n if (size(self) < size(other)) {\n foldLeft(self, other, func(acc : Set, elem : T) : Set { Internal.add(acc, compare, elem) })\n } else {\n foldLeft(other, self, func(acc : Set, elem : T) : Set { Internal.add(acc, compare, elem) })\n }\n };\n\n /// Returns a new set that is the intersection of `set1` and `set2`,\n /// i.e. a new set that contains all the elements that exist in both sets.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([0, 1, 2].values(), Nat.compare);\n /// let set2 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let intersection = Set.intersection(set1, set2, Nat.compare);\n /// assert Iter.toArray(Set.values(intersection)) == [1, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets `set1` and `set2`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(m)` temporary objects that will be collected as garbage.\n public func intersection(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Set {\n let elems = List.empty();\n if (self.size < other.size) {\n Internal.iterate(\n self.root,\n func(x : T) {\n if (Internal.contains(other.root, compare, x)) {\n List.add(elems, x)\n }\n }\n )\n } else {\n Internal.iterate(\n other.root,\n func(x : T) {\n if (Internal.contains(self.root, compare, x)) {\n List.add(elems, x)\n }\n }\n )\n };\n { root = Internal.buildFromSorted(elems); size = List.size(elems) }\n };\n\n /// Returns a new set that is the difference between `set1` and `other` (`set1` minus `set2`),\n /// i.e. a new set that contains all the elements of `set1` that do not exist in `set2`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let difference = Set.difference(set1, set2, Nat.compare);\n /// assert Iter.toArray(Set.values(difference)) == [1, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets `set1` and `set2`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(m * log(n))` temporary objects that will be collected as garbage.\n public func difference(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Set {\n if (size(self) < size(other)) {\n let elems = List.empty(); /* imperative! */\n Internal.iterate(\n self.root,\n func(x : T) {\n if (not Internal.contains(other.root, compare, x)) {\n List.add(elems, x)\n }\n }\n );\n { root = Internal.buildFromSorted(elems); size = List.size(elems) }\n } else {\n foldLeft(\n other,\n self,\n func(acc : Set, elem : T) : Set {\n if (Internal.contains(acc.root, compare, elem)) {\n Internal.remove(acc, compare, elem)\n } else { acc }\n }\n )\n }\n };\n\n /// Project all elements of the set in a new set.\n /// Apply a mapping function to each element in the set and\n /// collect the mapped elements in a new mutable set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([3, 1, 2].values(), Nat.compare);\n ///\n /// let textNumbers =\n /// Set.map(numbers, Text.compare, Nat.toText);\n /// assert Iter.toArray(Set.values(textNumbers)) == [\"1\", \"2\", \"3\"];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n public func map(self : Set, compare : (implicit : (T2, T2) -> Order.Order), project : T1 -> T2) : Set = Internal.foldLeft(self.root, empty(), func(acc : Set, elem : T1) : Set { Internal.add(acc, compare, project(elem)) });\n\n /// Apply an operation on each element contained in the set.\n /// The operation is applied in ascending order of the elements.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// var text = \"\";\n /// Set.forEach(numbers, func (element) {\n /// text #= \" \" # Nat.toText(element)\n /// });\n /// assert text == \" 0 1 2 3\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory.\n /// where `n` denotes the number of elements stored in the set.\n ///\n public func forEach(self : Set, operation : T -> ()) {\n ignore foldLeft(self, null, func(acc, e) : Null { operation(e); null })\n };\n\n /// Filter elements in a new set.\n /// Create a copy of the mutable set that only contains the elements\n /// that fulfil the criterion function.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// let evenNumbers = Set.filter(numbers, Nat.compare, func (number) {\n /// number % 2 == 0\n /// });\n /// assert Iter.toArray(Set.values(evenNumbers)) == [0, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func filter(self : Set, compare : (implicit : (T, T) -> Order.Order), criterion : T -> Bool) : Set {\n foldLeft>(\n self,\n empty(),\n func(acc, e) {\n if (criterion(e)) (add(acc, compare, e)) else acc\n }\n )\n };\n\n /// Filter all elements in the set by also applying a projection to the elements.\n /// Apply a mapping function `project` to all elements in the set and collect all\n /// elements, for which the function returns a non-null new element. Collect all\n /// non-discarded new elements in a new mutable set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([3, 0, 2, 1].values(), Nat.compare);\n ///\n /// let evenTextNumbers = Set.filterMap(numbers, Text.compare, func (number) {\n /// if (number % 2 == 0) {\n /// ?Nat.toText(number)\n /// } else {\n /// null // discard odd numbers\n /// }\n /// });\n /// assert Iter.toArray(Set.values(evenTextNumbers)) == [\"0\", \"2\"];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n public func filterMap(self : Set, compare : (implicit : (T2, T2) -> Order.Order), project : T1 -> ?T2) : Set {\n func combine(acc : Set, elem : T1) : Set {\n switch (project(elem)) {\n case null { acc };\n case (?elem2) {\n Internal.add(acc, compare, elem2)\n }\n }\n };\n Internal.foldLeft(self.root, empty(), combine)\n };\n\n /// Test whether `set1` is a sub-set of `set2`, i.e. each element in `set1` is\n /// also contained in `set2`. Returns `true` if both sets are equal.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2].values(), Nat.compare);\n /// let set2 = Set.fromIter([2, 1, 0].values(), Nat.compare);\n /// let set3 = Set.fromIter([3, 4].values(), Nat.compare);\n /// assert Set.isSubset(set1, set2, Nat.compare);\n /// assert not Set.isSubset(set1, set3, Nat.compare);\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets set1 and set2, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func isSubset(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Bool {\n if (self.size > other.size) { return false };\n isSubsetHelper(self.root, other.root, compare)\n };\n\n /// Test whether two sets are equal.\n /// Both sets have to be constructed by the same comparison function.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2].values(), Nat.compare);\n /// let set2 = Set.fromIter([2, 1].values(), Nat.compare);\n /// let set3 = Set.fromIter([2, 1, 0].values(), Nat.compare);\n /// assert Set.equal(set1, set2, Nat.compare);\n /// assert not Set.equal(set1, set3, Nat.compare);\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets set1 and set2, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func equal(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Bool {\n if (self.size != other.size) { return false };\n isSubsetHelper(self.root, other.root, compare)\n };\n\n func isSubsetHelper(t1 : Tree, t2 : Tree, compare : (T, T) -> Order.Order) : Bool {\n switch (t1, t2) {\n case (#leaf, _) { true };\n case (_, #leaf) { false };\n case ((#red(t1l, x1, t1r) or #black(t1l, x1, t1r)), (#red(t2l, x2, t2r)) or #black(t2l, x2, t2r)) {\n switch (compare(x1, x2)) {\n case (#equal) {\n isSubsetHelper(t1l, t2l, compare) and isSubsetHelper(t1r, t2r, compare)\n };\n // x1 < x2 ==> x1 \\in t2l /\\ t1l \\subset t2l\n case (#less) {\n Internal.contains(t2l, compare, x1) and isSubsetHelper(t1l, t2l, compare) and isSubsetHelper(t1r, t2, compare)\n };\n // x2 < x1 ==> x1 \\in t2r /\\ t1r \\subset t2r\n case (#greater) {\n Internal.contains(t2r, compare, x1) and isSubsetHelper(t1l, t2, compare) and isSubsetHelper(t1r, t2r, compare)\n }\n }\n }\n }\n };\n\n /// Compare two sets by comparing the elements.\n /// Both sets must have been created by the same comparison function.\n /// The two sets are iterated by the ascending order of their creation and\n /// order is determined by the following rules:\n /// Less:\n /// `set1` is less than `set2` if:\n /// * the pairwise iteration hits an element pair `element1` and `element2` where\n /// `element1` is less than `element2` and all preceding elements are equal, or,\n /// * `set1` is a strict prefix of `set2`, i.e. `set2` has more elements than `set1`\n /// and all elements of `set1` occur at the beginning of iteration `set2`.\n /// Equal:\n /// `set1` and `set2` have same series of equal elements by pairwise iteration.\n /// Greater:\n /// `set1` is neither less nor equal `set2`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([0, 1].values(), Nat.compare);\n /// let set2 = Set.fromIter([0, 2].values(), Nat.compare);\n ///\n /// assert Set.compare(set1, set2, Nat.compare) == #less;\n /// assert Set.compare(set1, set1, Nat.compare) == #equal;\n /// assert Set.compare(set2, set1, Nat.compare) == #greater;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that `compare` has runtime and space costs of `O(1)`.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func compare(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Order.Order {\n // TODO: optimize using recursion on self?\n let iterator1 = values(self);\n let iterator2 = values(other);\n loop {\n switch (iterator1.next(), iterator2.next()) {\n case (null, null) return #equal;\n case (null, _) return #less;\n case (_, null) return #greater;\n case (?element1, ?element2) {\n let comparison = compare(element1, element2);\n if (comparison != #equal) {\n return comparison\n }\n }\n }\n }\n };\n\n /// Returns an iterator over the elements in the set,\n /// traversing the elements in the ascending order.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 2, 3, 1].values(), Nat.compare);\n ///\n /// var text = \"\";\n /// for (number in Set.values(set)) {\n /// text #= \" \" # Nat.toText(number);\n /// };\n /// assert text == \" 0 1 2 3\";\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func values(self : Set) : Iter.Iter = Internal.iter(self.root, #fwd);\n\n /// Returns an iterator over the elements in the set,\n /// traversing the elements in the descending order.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 2, 3, 1].values(), Nat.compare);\n ///\n /// var tmp = \"\";\n /// for (number in Set.reverseValues(set)) {\n /// tmp #= \" \" # Nat.toText(number);\n /// };\n /// assert tmp == \" 3 2 1 0\";\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func reverseValues(self : Set) : Iter.Iter = Internal.iter(self.root, #bwd);\n\n /// Create a new empty set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// assert Iter.toArray(Set.values(set)) == [];\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func empty() : Set = { root = #leaf; size = 0 };\n\n /// Create a new set with a single element.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.singleton(0);\n /// assert Iter.toArray(Set.values(set)) == [0];\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func singleton(element : T) : Set {\n {\n size = 1;\n root = #red(#leaf, element, #leaf)\n }\n };\n\n /// Return the number of elements in a set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 2, 1, 3].values(), Nat.compare);\n ///\n /// assert Set.size(set) == 4;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func size(self : Set) : Nat = self.size;\n\n /// Iterate all elements in ascending order,\n /// and accumulate the elements by applying the combine function, starting from a base value.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 2, 1].values(), Nat.compare);\n ///\n /// let text = Set.foldLeft(\n /// set,\n /// \"\",\n /// func (accumulator, element) {\n /// accumulator # \" \" # Nat.toText(element)\n /// }\n /// );\n /// assert text == \" 0 1 2 3\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n public func foldLeft(\n self : Set,\n base : A,\n combine : (A, T) -> A\n ) : A = Internal.foldLeft(self.root, base, combine);\n\n /// Iterate all elements in descending order,\n /// and accumulate the elements by applying the combine function, starting from a base value.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 2, 1].values(), Nat.compare);\n ///\n /// let text = Set.foldRight(\n /// set,\n /// \"\",\n /// func (element, accumulator) {\n /// accumulator # \" \" # Nat.toText(element)\n /// }\n /// );\n /// assert text == \" 3 2 1 0\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n public func foldRight(\n self : Set,\n base : A,\n combine : (T, A) -> A\n ) : A = Internal.foldRight(self.root, base, combine);\n\n /// Determines whether a set is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.empty();\n /// let set2 = Set.singleton(1);\n ///\n /// assert Set.isEmpty(set1);\n /// assert not Set.isEmpty(set2);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func isEmpty(self : Set) : Bool {\n switch (self.root) {\n case (#leaf) { true };\n case _ { false }\n }\n };\n\n /// Check whether all element in the set satisfy a predicate, i.e.\n /// the `predicate` function returns `true` for all elements in the set.\n /// Returns `true` for an empty set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// let belowTen = Set.all(set, func (number) {\n /// number < 10\n /// });\n /// assert belowTen;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of elements stored in the set.\n public func all(self : Set, predicate : T -> Bool) : Bool = Internal.all(self.root, predicate);\n\n /// Check whether at least one element in the set satisfies a predicate, i.e.\n /// the `predicate` function returns `true` for at least one element in the set.\n /// Returns `false` for an empty set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// let aboveTen = Set.any(set, func (number) {\n /// number > 10\n /// });\n /// assert not aboveTen;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n public func any(self : Set, pred : T -> Bool) : Bool = Internal.any(self.root, pred);\n\n /// Test helper that check internal invariant for the given set `s`.\n /// Raise an error (for a stack trace) if invariants are violated.\n public func assertValid(self : Set, compare : (implicit : (T, T) -> Order.Order)) : () {\n Internal.assertValid(self, compare)\n };\n\n /// Generate a textual representation of all the elements in the set.\n /// Primarily to be used for testing and debugging.\n /// The elements are formatted according to `elementFormat`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// assert Set.toText(set, Nat.toText) == \"PureSet{0, 1, 2, 3}\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that `elementFormat` has runtime and space costs of `O(1)`.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func toText(self : Set, elementFormat : (implicit : (toText : T -> Text))) : Text {\n var text = \"PureSet{\";\n var sep = \"\";\n for (element in values(self)) {\n text #= sep # elementFormat(element);\n sep := \", \"\n };\n text # \"}\"\n };\n\n /// Construct the union of a set of element sets, i.e. all elements of\n /// each element set are included in the result set.\n /// Any duplicates are ignored, i.e. if the same element occurs in multiple element sets,\n /// it only occurs once in the result set.\n ///\n /// Assumes all sets are ordered by `compare`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Order \"mo:core/Order\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// func setCompare(first: Set.Set, second: Set.Set) : Order.Order {\n /// Set.compare(first, second, Nat.compare)\n /// };\n ///\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let set3 = Set.fromIter([5, 6, 7].values(), Nat.compare);\n /// let setOfSets = Set.fromIter([set1, set2, set3].values(), setCompare);\n /// let flatSet = Set.flatten(setOfSets, Nat.compare);\n /// assert Iter.toArray(Set.values(flatSet)) == [1, 2, 3, 4, 5, 6, 7];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of elements stored in all the sub-sets,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func flatten(self : Set>, compare : (implicit : (T, T) -> Order.Order)) : Set {\n var result = empty();\n for (set in values(self)) {\n result := union(result, set, compare)\n };\n result\n };\n\n /// Construct the union of a series of sets, i.e. all elements of\n /// each set are included in the result set.\n /// Any duplicates are ignored, i.e. if an element occurs\n /// in several of the iterated sets, it only occurs once in the result set.\n ///\n /// Assumes all sets are ordered by `compare`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let set3 = Set.fromIter([5, 6, 7].values(), Nat.compare);\n /// let combined = Set.join([set1, set2, set3].values(), Nat.compare);\n /// assert Iter.toArray(Set.values(combined)) == [1, 2, 3, 4, 5, 6, 7];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of elements stored in the iterated sets,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func join(self : Iter.Iter>, compare : (implicit : (T, T) -> Order.Order)) : Set {\n var result = empty();\n for (set in self) {\n result := union(result, set, compare)\n };\n result\n };\n\n module Internal {\n public func contains(tree : Tree, compare : (T, T) -> Order.Order, elem : T) : Bool {\n func f(t : Tree, x : T) : Bool {\n switch t {\n case (#black(l, x1, r)) {\n switch (compare(x, x1)) {\n case (#less) { f(l, x) };\n case (#equal) { true };\n case (#greater) { f(r, x) }\n }\n };\n case (#red(l, x1, r)) {\n switch (compare(x, x1)) {\n case (#less) { f(l, x) };\n case (#equal) { true };\n case (#greater) { f(r, x) }\n }\n };\n case (#leaf) { false }\n }\n };\n f(tree, elem)\n };\n\n public func max(m : Tree) : ?V {\n func rightmost(m : Tree) : V {\n switch m {\n case (#red(_, v, #leaf)) { v };\n case (#red(_, _, r)) { rightmost(r) };\n case (#black(_, v, #leaf)) { v };\n case (#black(_, _, r)) { rightmost(r) };\n case (#leaf) { Runtime.trap \"pure/Set.max() impossible\" }\n }\n };\n switch m {\n case (#leaf) { null };\n case (_) { ?rightmost(m) }\n }\n };\n\n public func min(m : Tree) : ?V {\n func leftmost(m : Tree) : V {\n switch m {\n case (#red(#leaf, v, _)) { v };\n case (#red(l, _, _)) { leftmost(l) };\n case (#black(#leaf, v, _)) { v };\n case (#black(l, _, _)) { leftmost(l) };\n case (#leaf) { Runtime.trap \"pure/Set.min() impossible\" }\n }\n };\n switch m {\n case (#leaf) { null };\n case (_) { ?leftmost(m) }\n }\n };\n\n public func all(m : Tree, pred : V -> Bool) : Bool {\n switch m {\n case (#red(l, v, r)) {\n pred(v) and all(l, pred) and all(r, pred)\n };\n case (#black(l, v, r)) {\n pred(v) and all(l, pred) and all(r, pred)\n };\n case (#leaf) { true }\n }\n };\n\n public func any(m : Tree, pred : V -> Bool) : Bool {\n switch m {\n case (#red(l, v, r)) {\n pred(v) or any(l, pred) or any(r, pred)\n };\n case (#black(l, v, r)) {\n pred(v) or any(l, pred) or any(r, pred)\n };\n case (#leaf) { false }\n }\n };\n\n public func iterate(m : Tree, f : V -> ()) {\n switch m {\n case (#leaf) {};\n case (#black(l, v, r)) { iterate(l, f); f(v); iterate(r, f) };\n case (#red(l, v, r)) { iterate(l, f); f(v); iterate(r, f) }\n }\n };\n\n // build tree from elements arr[l]..arr[r-1]\n public func buildFromSorted(buf : List.List) : Tree {\n var maxDepth = 0;\n var maxSize = 1;\n while (maxSize < List.size(buf)) {\n maxDepth += 1;\n maxSize += maxSize + 1\n };\n maxDepth := if (maxDepth == 0) { 1 } else { maxDepth }; // keep root black for 1 element tree\n func buildFromSortedHelper(l : Nat, r : Nat, depth : Nat) : Tree {\n if (l + 1 == r) {\n if (depth == maxDepth) {\n return #red(#leaf, List.at(buf, l), #leaf)\n } else {\n return #black(#leaf, List.at(buf, l), #leaf)\n }\n };\n if (l >= r) {\n return #leaf\n };\n let m = (l + r) / 2;\n return #black(\n buildFromSortedHelper(l, m, depth + 1),\n List.at(buf, m),\n buildFromSortedHelper(m + 1, r, depth + 1)\n )\n };\n buildFromSortedHelper(0, List.size(buf), 0)\n };\n\n type IterRep = Types.Pure.List<{ #tr : Tree; #x : T }>;\n\n type SetTraverser = (Tree, T, Tree, IterRep) -> IterRep;\n\n class IterSet(tree : Tree, setTraverser : SetTraverser) {\n var trees : IterRep = ?(#tr(tree), null);\n public func next() : ?T {\n switch (trees) {\n case (null) { null };\n case (?(#tr(#leaf), ts)) {\n trees := ts;\n next()\n };\n case (?(#x(x), ts)) {\n trees := ts;\n ?x\n };\n case (?(#tr(#black(l, x, r)), ts)) {\n trees := setTraverser(l, x, r, ts);\n next()\n };\n case (?(#tr(#red(l, x, r)), ts)) {\n trees := setTraverser(l, x, r, ts);\n next()\n }\n }\n }\n };\n\n public func iter(s : Tree, direction : { #fwd; #bwd }) : Iter.Iter {\n let turnLeftFirst : SetTraverser = func(l, x, r, ts) {\n ?(#tr(l), ?(#x(x), ?(#tr(r), ts)))\n };\n\n let turnRightFirst : SetTraverser = func(l, x, r, ts) {\n ?(#tr(r), ?(#x(x), ?(#tr(l), ts)))\n };\n\n switch direction {\n case (#fwd) IterSet(s, turnLeftFirst);\n case (#bwd) IterSet(s, turnRightFirst)\n }\n };\n\n public func foldLeft(\n tree : Tree,\n base : Accum,\n combine : (Accum, T) -> Accum\n ) : Accum {\n switch (tree) {\n case (#leaf) { base };\n case (#black(l, x, r)) {\n let left = foldLeft(l, base, combine);\n let middle = combine(left, x);\n foldLeft(r, middle, combine)\n };\n case (#red(l, x, r)) {\n let left = foldLeft(l, base, combine);\n let middle = combine(left, x);\n foldLeft(r, middle, combine)\n }\n }\n };\n\n public func foldRight(\n tree : Tree,\n base : Accum,\n combine : (T, Accum) -> Accum\n ) : Accum {\n switch (tree) {\n case (#leaf) { base };\n case (#black(l, x, r)) {\n let right = foldRight(r, base, combine);\n let middle = combine(x, right);\n foldRight(l, middle, combine)\n };\n case (#red(l, x, r)) {\n let right = foldRight(r, base, combine);\n let middle = combine(x, right);\n foldRight(l, middle, combine)\n }\n }\n };\n\n func redden(t : Tree) : Tree {\n switch t {\n case (#black(l, x, r)) { (#red(l, x, r)) };\n case _ {\n Runtime.trap \"pure/Set.redden() impossible\"\n }\n }\n };\n\n func lbalance(left : Tree, x : T, right : Tree) : Tree {\n switch (left, right) {\n case (#red(#red(l1, x1, r1), x2, r2), r) {\n #red(\n #black(l1, x1, r1),\n x2,\n #black(r2, x, r)\n )\n };\n case (#red(l1, x1, #red(l2, x2, r2)), r) {\n #red(\n #black(l1, x1, l2),\n x2,\n #black(r2, x, r)\n )\n };\n case _ {\n #black(left, x, right)\n }\n }\n };\n\n func rbalance(left : Tree, x : T, right : Tree) : Tree {\n switch (left, right) {\n case (l, #red(l1, x1, #red(l2, x2, r2))) {\n #red(\n #black(l, x, l1),\n x1,\n #black(l2, x2, r2)\n )\n };\n case (l, #red(#red(l1, x1, r1), x2, r2)) {\n #red(\n #black(l, x, l1),\n x1,\n #black(r1, x2, r2)\n )\n };\n case _ {\n #black(left, x, right)\n }\n }\n };\n\n public func add(\n set : Set,\n compare : (T, T) -> Order.Order,\n elem : T\n ) : Set {\n insert(set, compare, elem).0\n };\n\n public func insert(\n s : Set,\n compare : (T, T) -> Order.Order,\n elem : T\n ) : (Set, Bool) {\n var newNodeIsCreated : Bool = false;\n func ins(tree : Tree) : Tree {\n switch tree {\n case (#black(left, x, right)) {\n switch (compare(elem, x)) {\n case (#less) {\n lbalance(ins left, x, right)\n };\n case (#greater) {\n rbalance(left, x, ins right)\n };\n case (#equal) {\n #black(left, x, right)\n }\n }\n };\n case (#red(left, x, right)) {\n switch (compare(elem, x)) {\n case (#less) {\n #red(ins left, x, right)\n };\n case (#greater) {\n #red(left, x, ins right)\n };\n case (#equal) {\n #red(left, x, right)\n }\n }\n };\n case (#leaf) {\n newNodeIsCreated := true;\n #red(#leaf, elem, #leaf)\n }\n }\n };\n let newRoot = switch (ins(s.root)) {\n case (#red(left, x, right)) {\n #black(left, x, right)\n };\n case other { other }\n };\n if newNodeIsCreated ({ root = newRoot; size = s.size + 1 }, true) else (s, false)\n };\n\n func balLeft(left : Tree, x : T, right : Tree) : Tree {\n switch (left, right) {\n case (#red(l1, x1, r1), r) {\n #red(#black(l1, x1, r1), x, r)\n };\n case (_, #black(l2, x2, r2)) {\n rbalance(left, x, #red(l2, x2, r2))\n };\n case (_, #red(#black(l2, x2, r2), x3, r3)) {\n #red(\n #black(left, x, l2),\n x2,\n rbalance(r2, x3, redden r3)\n )\n };\n case _ { Runtime.trap \"pure/Set.balLeft() impossible\" }\n }\n };\n\n func balRight(left : Tree, x : T, right : Tree) : Tree {\n switch (left, right) {\n case (l, #red(l1, x1, r1)) {\n #red(l, x, #black(l1, x1, r1))\n };\n case (#black(l1, x1, r1), r) {\n lbalance(#red(l1, x1, r1), x, r)\n };\n case (#red(l1, x1, #black(l2, x2, r2)), r3) {\n #red(\n lbalance(redden l1, x1, l2),\n x2,\n #black(r2, x, r3)\n )\n };\n case _ { Runtime.trap \"pure/Set.balRight() impossible\" }\n }\n };\n\n func append(left : Tree, right : Tree) : Tree {\n switch (left, right) {\n case (#leaf, _) { right };\n case (_, #leaf) { left };\n case (\n #red(l1, x1, r1),\n #red(l2, x2, r2)\n ) {\n switch (append(r1, l2)) {\n case (#red(l3, x3, r3)) {\n #red(\n #red(l1, x1, l3),\n x3,\n #red(r3, x2, r2)\n )\n };\n case r1l2 {\n #red(l1, x1, #red(r1l2, x2, r2))\n }\n }\n };\n case (t1, #red(l2, x2, r2)) {\n #red(append(t1, l2), x2, r2)\n };\n case (#red(l1, x1, r1), t2) {\n #red(l1, x1, append(r1, t2))\n };\n case (#black(l1, x1, r1), #black(l2, x2, r2)) {\n switch (append(r1, l2)) {\n case (#red(l3, x3, r3)) {\n #red(\n #black(l1, x1, l3),\n x3,\n #black(r3, x2, r2)\n )\n };\n case r1l2 {\n balLeft(\n l1,\n x1,\n #black(r1l2, x2, r2)\n )\n }\n }\n }\n }\n };\n\n public func remove(set : Set, compare : (T, T) -> Order.Order, elem : T) : Set {\n delete(set, compare, elem).0\n };\n\n public func delete(s : Set, compare : (T, T) -> Order.Order, x : T) : (Set, Bool) {\n var changed : Bool = false;\n func delNode(left : Tree, x1 : T, right : Tree) : Tree {\n switch (compare(x, x1)) {\n case (#less) {\n let newLeft = del left;\n switch left {\n case (#black(_, _, _)) {\n balLeft(newLeft, x1, right)\n };\n case _ {\n #red(newLeft, x1, right)\n }\n }\n };\n case (#greater) {\n let newRight = del right;\n switch right {\n case (#black(_, _, _)) {\n balRight(left, x1, newRight)\n };\n case _ {\n #red(left, x1, newRight)\n }\n }\n };\n case (#equal) {\n changed := true;\n append(left, right)\n }\n }\n };\n func del(tree : Tree) : Tree {\n switch tree {\n case (#black(left, x1, right)) {\n delNode(left, x1, right)\n };\n case (#red(left, x1, right)) {\n delNode(left, x1, right)\n };\n case (#leaf) {\n tree\n }\n }\n };\n let newRoot = switch (del(s.root)) {\n case (#red(left, x1, right)) {\n #black(left, x1, right)\n };\n case other { other }\n };\n if changed ({ root = newRoot; size = s.size - 1 }, true) else (s, false)\n };\n\n // check binary search tree order of elements and black depth invariant of the RB-tree\n public func assertValid(s : Set, comp : (T, T) -> Order.Order) {\n ignore blackDepth(s.root, comp)\n };\n\n func blackDepth(node : Tree, comp : (T, T) -> Order.Order) : Nat {\n func checkNode(left : Tree, x1 : T, right : Tree) : Nat {\n checkElem(left, func(x : T) : Bool { comp(x, x1) == #less });\n checkElem(right, func(x : T) : Bool { comp(x, x1) == #greater });\n let leftBlacks = blackDepth(left, comp);\n let rightBlacks = blackDepth(right, comp);\n assert (leftBlacks == rightBlacks);\n leftBlacks\n };\n switch node {\n case (#leaf) 0;\n case (#red(left, x1, right)) {\n assert (not isRed(left));\n assert (not isRed(right));\n checkNode(left, x1, right)\n };\n case (#black(left, x1, right)) {\n checkNode(left, x1, right) + 1\n }\n }\n };\n\n func isRed(node : Tree) : Bool {\n switch node {\n case (#red(_, _, _)) true;\n case _ false\n }\n };\n\n func checkElem(node : Tree, isValid : T -> Bool) {\n switch node {\n case (#leaf) {};\n case (#black(_, elem, _)) {\n assert (isValid(elem))\n };\n case (#red(_, elem, _)) {\n assert (isValid(elem))\n }\n }\n }\n };\n\n}\n"},"WeakReference.mo":{"content":"/// Module that implements a weak reference to an object.\n///\n/// ATTENTION: This functionality does not work with classical persistence (`--legacy-persistence` moc flag).\n///\n/// Usage example:\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import WeakReference \"mo:core/WeakReference\";\n/// ```\n\nimport Prim \"mo:⛔\"\n\nmodule {\n public type WeakReference = {\n ref : weak T\n };\n\n /// Allocate a new weak reference to the given object.\n ///\n /// The `obj` parameter is the object to allocate a weak reference for.\n /// Returns a new weak reference pointingto the given object.\n /// ```motoko include=import\n /// let obj = { x = 1 };\n /// let weakRef = WeakReference.allocate(obj);\n /// ```\n public func allocate(obj : T) : WeakReference {\n return { ref = Prim.allocWeakRef(obj) }\n };\n\n /// Get the value that the weak reference is pointing to.\n ///\n /// The `self` parameter is the weak reference pointing to the value the function returns.\n /// The function returns the value that the weak reference is pointing to,\n /// or `null` if the value has been collected by the garbage collector.\n /// ```motoko include=import\n /// let obj = { x = 1 };\n /// let weakRef = WeakReference.allocate(obj);\n /// let value = weakRef.get();\n /// ```\n public func get(self : WeakReference) : ?T {\n return Prim.weakGet(self.ref)\n };\n\n /// Check if the weak reference is still alive.\n ///\n /// The `self` parameter is the weak reference to check whether it is still alive.\n /// Returns `true` if the weak reference is still alive, `false` otherwise.\n /// False means that the value has been collected by the garbage collector.\n /// ```motoko include=import\n /// let obj = { x = 1 };\n /// let weakRef = WeakReference.allocate(obj);\n /// let isLive = weakRef.isLive();\n /// assert isLive == true;\n /// ```\n public func isLive(self : WeakReference) : Bool {\n return Prim.isLive(self.ref)\n };\n\n}\n"},"Int16.mo":{"content":"/// Utility functions on 16-bit signed integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Int16 \"mo:core/Int16\";\n/// ```\n\nimport Int \"Int\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 16-bit signed integers.\n public type Int16 = Prim.Types.Int16;\n\n /// Minimum 16-bit integer value, `-2 ** 15`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.minValue == (-32_768 : Int16);\n /// ```\n public let minValue : Int16 = -32_768;\n\n /// Maximum 16-bit integer value, `+2 ** 15 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.maxValue == (+32_767 : Int16);\n /// ```\n public let maxValue : Int16 = 32_767;\n\n /// Converts a 16-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.toInt(12_345) == (12_345 : Int);\n /// ```\n public let toInt : (self : Int16) -> Int = Prim.int16ToInt;\n\n /// Converts a signed integer with infinite precision to a 16-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.fromInt(12_345) == (+12_345 : Int16);\n /// ```\n public let fromInt : Int -> Int16 = Prim.intToInt16;\n\n /// Converts a signed integer with infinite precision to a 16-bit signed integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.fromIntWrap(-12_345) == (-12_345 : Int);\n /// ```\n public let fromIntWrap : Int -> Int16 = Prim.intToInt16Wrap;\n\n /// Converts a 8-bit signed integer to a 16-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.fromInt8(-123) == (-123 : Int16);\n /// ```\n public let fromInt8 : Int8 -> Int16 = Prim.int8ToInt16;\n\n /// Converts a 16-bit signed integer to a 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.toInt8(-123) == (-123 : Int8);\n /// ```\n public let toInt8 : (self : Int16) -> Int8 = Prim.int16ToInt8;\n\n /// Converts a 32-bit signed integer to a 16-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.fromInt32(-12_345) == (-12_345 : Int16);\n /// ```\n public let fromInt32 : Int32 -> Int16 = Prim.int32ToInt16;\n\n /// Converts a 16-bit signed integer to a 32-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.toInt32(-12_345) == (-12_345 : Int32);\n /// ```\n public let toInt32 : (self : Int16) -> Int32 = Prim.int16ToInt32;\n\n /// Converts a 64-bit signed integer to a 16-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.fromInt64(-12_345) == (-12_345 : Int16);\n /// ```\n public func fromInt64(x : Int64) : Int16 {\n Prim.int32ToInt16(Prim.int64ToInt32(x))\n };\n\n /// Converts a 16-bit signed integer to a 64-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.toInt64(-12_345) == (-12_345 : Int64);\n /// ```\n public func toInt64(self : Int16) : Int64 {\n Prim.int32ToInt64(Prim.int16ToInt32(self))\n };\n\n /// Converts an unsigned 16-bit integer to a signed 16-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.fromNat16(12_345) == (+12_345 : Int16);\n /// ```\n public let fromNat16 : Nat16 -> Int16 = Prim.nat16ToInt16;\n\n /// Converts a signed 16-bit integer to an unsigned 16-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.toNat16(-1) == (65_535 : Nat16); // underflow\n /// ```\n public let toNat16 : (self : Int16) -> Nat16 = Prim.int16ToNat16;\n\n /// Returns the Text representation of `x`. Textual representation _do not_\n /// contain underscores to represent commas.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.toText(-12345) == \"-12345\";\n /// ```\n public func toText(self : Int16) : Text {\n Int.toText(toInt(self))\n };\n\n /// Returns the absolute value of `x`.\n ///\n /// Traps when `x == -2 ** 15` (the minimum `Int16` value).\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.abs(-12345) == +12_345;\n /// ```\n public func abs(x : Int16) : Int16 {\n fromInt(Int.abs(toInt(x)))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.min(+2, -3) == -3;\n /// ```\n public func min(x : Int16, y : Int16) : Int16 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.max(+2, -3) == +2;\n /// ```\n public func max(x : Int16, y : Int16) : Int16 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Int16 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.equal(-1, -1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Int16 = -123;\n /// let b : Int16 = 123;\n /// assert not Int16.equal(a, b);\n /// ```\n public func equal(x : Int16, y : Int16) : Bool { x == y };\n\n /// Inequality function for Int16 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.notEqual(-1, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Int16, y : Int16) : Bool { x != y };\n\n /// \"Less than\" function for Int16 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.less(-2, 1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Int16, y : Int16) : Bool { x < y };\n\n /// \"Less than or equal\" function for Int16 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.lessOrEqual(-2, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Int16, y : Int16) : Bool { x <= y };\n\n /// \"Greater than\" function for Int16 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert not Int16.greater(-2, 1);\n /// ```\n public func greater(x : Int16, y : Int16) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Int16 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.greaterOrEqual(-2, -2);\n /// ```\n public func greaterOrEqual(x : Int16, y : Int16) : Bool {\n x >= y\n };\n\n /// General-purpose comparison function for `Int16`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.compare(-3, 2) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([1, -2, -3] : [Int16], Int16.compare) == [-3, -2, 1];\n /// ```\n public func compare(x : Int16, y : Int16) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the negation of `x`, `-x`.\n ///\n /// Traps on overflow, i.e. for `neg(-2 ** 15)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.neg(123) == -123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n public func neg(x : Int16) : Int16 { -x };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.add(100, 23) == +123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int16.add) == -4;\n /// ```\n public func add(x : Int16, y : Int16) : Int16 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.sub(123, 100) == +23;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int16.sub) == 4;\n /// ```\n public func sub(x : Int16, y : Int16) : Int16 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.mul(12, 10) == +120;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 1, Int16.mul) == 6;\n /// ```\n public func mul(x : Int16, y : Int16) : Int16 { x * y };\n\n /// Returns the signed integer division of `x` by `y`, `x / y`.\n /// Rounds the quotient towards zero, which is the same as truncating the decimal places of the quotient.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.div(123, 10) == +12;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Int16, y : Int16) : Int16 { x / y };\n\n /// Returns the remainder of the signed integer division of `x` by `y`, `x % y`,\n /// which is defined as `x - x / y * y`.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.rem(123, 10) == +3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Int16, y : Int16) : Int16 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n ///\n /// Traps on overflow/underflow and when `y < 0 or y >= 16`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.pow(2, 10) == +1_024;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Int16, y : Int16) : Int16 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitnot(-256 /* 0xff00 */) == +255 // 0xff;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Int16) : Int16 { ^x };\n\n /// Returns the bitwise \"and\" of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitand(0x0fff, 0x00f0) == +240 // 0xf0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Int16, y : Int16) : Int16 { x & y };\n\n /// Returns the bitwise \"or\" of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitor(0x0f0f, 0x00f0) == +4_095 // 0x0fff;\n /// ```\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `|` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `|`\n /// as a function value at the moment.\n public func bitor(x : Int16, y : Int16) : Int16 { x | y };\n\n /// Returns the bitwise \"exclusive or\" of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitxor(0x0fff, 0x00f0) == +3_855 // 0x0f0f;\n /// ```\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitxor(x : Int16, y : Int16) : Int16 { x ^ y };\n\n /// Returns the bitwise left shift of `x` by `y`, `x << y`.\n /// The right bits of the shift filled with zeros.\n /// Left-overflowing bits, including the sign bit, are discarded.\n ///\n /// For `y >= 16`, the semantics is the same as for `bitshiftLeft(x, y % 16)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftLeft(x, y + y % 16)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitshiftLeft(1, 8) == +256 // 0x100 equivalent to `2 ** 8`.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Int16, y : Int16) : Int16 {\n x << y\n };\n\n /// Returns the signed bitwise right shift of `x` by `y`, `x >> y`.\n /// The sign bit is retained and the left side is filled with the sign bit.\n /// Right-underflowing bits are discarded, i.e. not rotated to the left side.\n ///\n /// For `y >= 16`, the semantics is the same as for `bitshiftRight(x, y % 16)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftRight (x, y + y % 16)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitshiftRight(1024, 8) == +4 // equivalent to `1024 / (2 ** 8)`;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Int16, y : Int16) : Int16 {\n x >> y\n };\n\n /// Returns the bitwise left rotatation of `x` by `y`, `x <<> y`.\n /// Each left-overflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 16`, the semantics is the same as for `bitrotLeft(x, y % 16)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitrotLeft(0x2001, 4) == +18 // 0x12.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Int16, y : Int16) : Int16 { x <<> y };\n\n /// Returns the bitwise right rotation of `x` by `y`, `x <>> y`.\n /// Each right-underflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 16`, the semantics is the same as for `bitrotRight(x, y % 16)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitrotRight(0x2010, 8) == +4_128 // 0x01020.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Int16, y : Int16) : Int16 {\n x <>> y\n };\n\n /// Returns the value of bit `p` in `x`, `x & 2**p == 2**p`.\n /// If `p >= 16`, the semantics is the same as for `bittest(x, p % 16)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bittest(128, 7);\n /// ```\n public func bittest(x : Int16, p : Nat) : Bool {\n Prim.btstInt16(x, Prim.intToInt16(p))\n };\n\n /// Returns the value of setting bit `p` in `x` to `1`.\n /// If `p >= 16`, the semantics is the same as for `bitset(x, p % 16)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitset(0, 7) == +128;\n /// ```\n public func bitset(x : Int16, p : Nat) : Int16 {\n x | (1 << Prim.intToInt16(p))\n };\n\n /// Returns the value of clearing bit `p` in `x` to `0`.\n /// If `p >= 16`, the semantics is the same as for `bitclear(x, p % 16)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitclear(-1, 7) == -129;\n /// ```\n public func bitclear(x : Int16, p : Nat) : Int16 {\n x & ^(1 << Prim.intToInt16(p))\n };\n\n /// Returns the value of flipping bit `p` in `x`.\n /// If `p >= 16`, the semantics is the same as for `bitclear(x, p % 16)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitflip(255, 7) == +127;\n /// ```\n public func bitflip(x : Int16, p : Nat) : Int16 {\n x ^ (1 << Prim.intToInt16(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitcountNonZero(0xff) == +8;\n /// ```\n public let bitcountNonZero : (x : Int16) -> Int16 = Prim.popcntInt16;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitcountLeadingZero(0x80) == +8;\n /// ```\n public let bitcountLeadingZero : (x : Int16) -> Int16 = Prim.clzInt16;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.bitcountTrailingZero(0x0100) == +8;\n /// ```\n public let bitcountTrailingZero : (x : Int16) -> Int16 = Prim.ctzInt16;\n\n /// Returns the upper (i.e. most significant) and lower (least significant) byte of `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.explode 0x77ee == (119, 238);\n /// ```\n public let explode : (x : Int16) -> (msb : Nat8, lsb : Nat8) = Prim.explodeInt16;\n\n /// Returns the sum of `x` and `y`, `x +% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.addWrap(2 ** 14, 2 ** 14) == -32_768; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Int16, y : Int16) : Int16 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.subWrap(-2 ** 15, 1) == +32_767; // underflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Int16, y : Int16) : Int16 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int16.mulWrap(2 ** 8, 2 ** 8) == 0; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Int16, y : Int16) : Int16 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`.\n ///\n /// Wraps on overflow/underflow.\n /// Traps if `y < 0 or y >= 16`.\n ///\n /// Example:\n /// ```motoko include=import\n ///\n /// assert Int16.powWrap(2, 15) == -32_768; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Int16, y : Int16) : Int16 { x **% y };\n\n /// Returns an iterator over `Int16` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int16.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int16.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Int16, toExclusive : Int16) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Int16 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Int16` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int16.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int16.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Int16, to : Int16) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Int16 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Int16 values, from minValue to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int16.allValues();\n /// assert iter.next() == ?-32_768;\n /// assert iter.next() == ?-32_767;\n /// assert iter.next() == ?-32_766;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(minValue, maxValue)\n };\n\n}\n"},"Char.mo":{"content":"/// Module for working with Characters (Unicode code points).\n///\n/// Characters in Motoko represent Unicode code points\n/// in the range 0 to 0x10FFFF, excluding the surrogate code points\n/// (0xD800 through 0xDFFF).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Char \"mo:core/Char\";\n/// ```\n///\n/// Some built in features not listed in this module:\n///\n/// * You can create a `Char` literal using single quotes, e.g. 'A', '1', '漢'\n/// * You can compare characters using `<`, `<=`, `==`, `!=`, `>=`, `>` operators\n/// * You can convert a single-character `Text` to a `Char` using `:Char` type annotation\n///\n/// For example:\n/// ```motoko include=import\n/// let char : Char = 'A';\n/// let unicodeChar = '漢';\n/// let digit = '7';\n/// assert Char.isDigit(digit);\n/// assert Char.toText(char) == \"A\";\n/// ```\n\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// Characters represented as Unicode code points.\n public type Char = Prim.Types.Char;\n\n /// Convert character `char` to a word containing its Unicode scalar value.\n ///\n /// Example:\n /// ```motoko include=import\n /// let char = 'A';\n /// let unicode = Char.toNat32(char);\n /// assert unicode == 65;\n /// ```\n public let toNat32 : (self : Char) -> Nat32 = Prim.charToNat32;\n\n /// Convert `w` to a character.\n /// Traps if `w` is not a valid Unicode scalar value.\n /// Value `w` is valid if, and only if, `w < 0xD800 or (0xE000 <= w and w <= 0x10FFFF)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let unicode : Nat32 = 65;\n /// let char = Char.fromNat32(unicode);\n /// assert char == 'A';\n /// ```\n public let fromNat32 : (nat32 : Nat32) -> Char = Prim.nat32ToChar;\n\n /// Convert character `char` to single character text.\n ///\n /// Example:\n /// ```motoko include=import\n /// let char = '漢';\n /// let text = Char.toText(char);\n /// assert text == \"漢\";\n /// ```\n public let toText : (self : Char) -> Text = Prim.charToText;\n\n // Not exposed pending multi-char implementation.\n private let _toUpper : (char : Char) -> Char = Prim.charToUpper;\n\n // Not exposed pending multi-char implementation.\n private let _toLower : (char : Char) -> Char = Prim.charToLower;\n\n /// Returns `true` when `char` is a decimal digit between `0` and `9`, otherwise `false`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.isDigit('5');\n /// assert not Char.isDigit('A');\n /// ```\n public func isDigit(self : Char) : Bool {\n Prim.charToNat32(self) -% Prim.charToNat32('0') <= (9 : Nat32)\n };\n\n /// Returns whether `char` is a whitespace character.\n /// Whitespace characters include space, tab, newline, etc.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.isWhitespace(' ');\n /// assert Char.isWhitespace('\\n');\n /// assert not Char.isWhitespace('A');\n /// ```\n public let isWhitespace : (self : Char) -> Bool = Prim.charIsWhitespace;\n\n /// Returns whether `char` is a lowercase character.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.isLower('a');\n /// assert not Char.isLower('A');\n /// ```\n public let isLower : (self : Char) -> Bool = Prim.charIsLowercase;\n\n /// Returns whether `char` is an uppercase character.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.isUpper('A');\n /// assert not Char.isUpper('a');\n /// ```\n public let isUpper : (self : Char) -> Bool = Prim.charIsUppercase;\n\n /// Returns whether `char` is an alphabetic character.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.isAlphabetic('A');\n /// assert Char.isAlphabetic('漢');\n /// assert not Char.isAlphabetic('1');\n /// ```\n public func isAlphabetic(self : Char) : Bool = Prim.charIsAlphabetic(self);\n\n /// Returns `a == b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.equal('A', 'A');\n /// assert not Char.equal('A', 'B');\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func equal(self : Char, other : Char) : Bool { self == other };\n\n /// Returns `a != b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.notEqual('A', 'B');\n /// assert not Char.notEqual('A', 'A');\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func notEqual(self : Char, other : Char) : Bool { self != other };\n\n /// Returns `a < b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.less('A', 'B');\n /// assert not Char.less('B', 'A');\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func less(self : Char, other : Char) : Bool { self < other };\n\n /// Returns `a <= b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.lessOrEqual('A', 'A');\n /// assert Char.lessOrEqual('A', 'B');\n /// assert not Char.lessOrEqual('B', 'A');\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func lessOrEqual(self : Char, other : Char) : Bool { self <= other };\n\n /// Returns `a > b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.greater('B', 'A');\n /// assert not Char.greater('A', 'B');\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func greater(self : Char, other : Char) : Bool { self > other };\n\n /// Returns `a >= b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.greaterOrEqual('B', 'A');\n /// assert Char.greaterOrEqual('A', 'A');\n /// assert not Char.greaterOrEqual('A', 'B');\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function value\n /// to pass to a higher order function.\n public func greaterOrEqual(self : Char, other : Char) : Bool { self >= other };\n\n /// Returns the order of `a` and `b`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Char.compare('A', 'B') == #less;\n /// assert Char.compare('B', 'A') == #greater;\n /// assert Char.compare('A', 'A') == #equal;\n /// ```\n public func compare(self : Char, other : Char) : { #less; #equal; #greater } {\n if (self < other) { #less } else if (self == other) { #equal } else {\n #greater\n }\n };\n\n}\n"},"Timer.mo":{"content":"/// Timers for one-off or periodic tasks. Applicable as part of the default mechanism.\n/// If `moc` is invoked with `-no-timer`, the importing will fail. Furthermore, if passed `--trap-on-call-error`, a congested canister send queue may prevent timer expirations to execute at runtime. It may also deactivate the global timer.\n///\n/// ```motoko name=import\n/// import Timer \"mo:core/Timer\";\n/// ```\n///\n/// The resolution of the timers is similar to the block rate,\n/// so durations should be chosen well above that. For frequent\n/// canister wake-ups, consider using the [heartbeat](https://internetcomputer.org/docs/motoko/icp-features/system-functions#heartbeat) mechanism; however, when possible, canisters should prefer timers.\n///\n/// The functionality described below is enabled only when the actor does not override it by declaring an explicit `system func timer`.\n///\n/// Timers are _not_ persisted across upgrades. One possible strategy\n/// to re-establish timers after an upgrade is to use stable variables\n/// in the `post_upgrade` hook and distill necessary timer information\n/// from there.\n///\n/// Using timers for security (e.g., access control) is strongly discouraged.\n/// Make sure to inform yourself about state-of-the-art dapp security.\n/// If you must use timers for security controls, be sure\n/// to consider reentrancy issues as well as the vanishing of timers on upgrades\n/// and reinstalls.\n///\n/// For further usage information for timers on the IC, please consult\n/// [the documentation](https://internetcomputer.org/docs/building-apps/network-features/periodic-tasks-timers#timers-library-limitations).\nimport { setTimer = setTimerNano; cancelTimer = cancel } = \"mo:⛔\";\nimport Nat64 = \"Nat64\";\nimport Time \"Time\";\n\nmodule {\n\n public type TimerId = Nat;\n\n /// Installs a one-off timer that upon expiration after given duration `d`\n /// executes the future `job()`.\n ///\n /// ```motoko include=import no-repl\n /// import Int \"mo:core/Int\";\n ///\n /// func runIn30Minutes() : async () {\n /// // ...\n /// };\n /// let timerId = Timer.setTimer(#minutes 30, runIn30Minutes);\n /// ```\n public func setTimer(duration : Time.Duration, job : () -> async ()) : TimerId {\n setTimerNano(Nat64.fromNat(Time.toNanoseconds duration), false, job)\n };\n\n /// Installs a recurring timer that upon expiration after given duration `d`\n /// executes the future `job()` and reinserts itself for another expiration.\n ///\n /// Note: A duration of 0 will only expire once.\n ///\n /// ```motoko include=import no-repl\n /// func runEvery30Minutes() : async () {\n /// // ...\n /// };\n /// let timerId = Timer.recurringTimer(#minutes 30, runEvery30Minutes);\n /// ```\n public func recurringTimer(duration : Time.Duration, job : () -> async ()) : TimerId {\n setTimerNano(Nat64.fromNat(Time.toNanoseconds duration), true, job)\n };\n\n /// Cancels a still active timer with `(id : TimerId)`. For expired timers\n /// and not recognised `id`s nothing happens.\n ///\n /// ```motoko include=import no-repl\n /// var counter = 0;\n /// var timerId : ?Timer.TimerId = null;\n /// func runFiveTimes() : async () {\n /// counter += 1;\n /// if (counter == 5) {\n /// switch (timerId) {\n /// case (?id) { Timer.cancelTimer(id) };\n /// case null { assert false /* timer already cancelled */ };\n /// };\n /// }\n /// };\n /// timerId := ?Timer.recurringTimer(#minutes 30, runFiveTimes);\n /// ```\n public let cancelTimer : TimerId -> () = cancel;\n\n}\n"},"Nat32.mo":{"content":"/// Utility functions on 32-bit unsigned integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Nat32 \"mo:core/Nat32\";\n/// ```\nimport Nat \"Nat\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 32-bit natural numbers.\n public type Nat32 = Prim.Types.Nat32;\n\n /// Maximum 32-bit natural number. `2 ** 32 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.maxValue == (4294967295 : Nat32);\n /// ```\n public let maxValue : Nat32 = 4294967295;\n\n /// Converts a 32-bit unsigned integer to an unsigned integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.toNat(123) == (123 : Nat);\n /// ```\n public let toNat : (self : Nat32) -> Nat = Prim.nat32ToNat;\n\n /// Converts an unsigned integer with infinite precision to a 32-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.fromNat(123) == (123 : Nat32);\n /// ```\n public let fromNat : Nat -> Nat32 = Prim.natToNat32;\n\n /// Converts a 32-bit unsigned integer to an 8-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.toNat8(123) == (123 : Nat8);\n /// ```\n public func toNat8(self : Nat32) : Nat8 {\n Prim.nat16ToNat8(Prim.nat32ToNat16(self))\n };\n\n /// Converts an 8-bit unsigned integer to a 32-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.fromNat8(123) == (123 : Nat32);\n /// ```\n /// @deprecated M0235\n public func fromNat8(x : Nat8) : Nat32 {\n Prim.nat16ToNat32(Prim.nat8ToNat16(x))\n };\n\n /// Converts a 16-bit unsigned integer to a 32-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.fromNat16(123) == (123 : Nat32);\n /// ```\n /// @deprecated M0235\n public let fromNat16 : (x : Nat16) -> Nat32 = Prim.nat16ToNat32;\n\n /// Converts a 32-bit unsigned integer to a 16-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.toNat16(123) == (123 : Nat16);\n /// ```\n public let toNat16 : (self : Nat32) -> Nat16 = Prim.nat32ToNat16;\n\n /// Converts a 64-bit unsigned integer to a 32-bit unsigned integer.\n ///\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.fromNat64(123) == (123 : Nat32);\n /// ```\n /// @deprecated M0235\n public let fromNat64 : (x : Nat64) -> Nat32 = Prim.nat64ToNat32;\n\n /// Converts a 32-bit unsigned integer to a 64-bit unsigned integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.toNat64(123) == (123 : Nat64);\n /// ```\n public let toNat64 : (self : Nat32) -> Nat64 = Prim.nat32ToNat64;\n\n /// Converts a signed integer with infinite precision to a 32-bit unsigned integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.fromIntWrap(123) == (123 : Nat32);\n /// ```\n public let fromIntWrap : Int -> Nat32 = Prim.intToNat32Wrap;\n\n /// Convert a Nat32 `char` to a Char in its Unicode representation.\n ///\n /// Example:\n /// ```motoko include=import\n /// let unicode = Nat32.toChar(65);\n /// assert unicode == 'A';\n /// ```\n public let toChar : (self : Nat32) -> Char = Prim.nat32ToChar;\n\n /// Converts `x` to its textual representation. Textual representation _do not_\n /// contain underscores to represent commas.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.toText(1234) == (\"1234\" : Text);\n /// ```\n public func toText(self : Nat32) : Text {\n Nat.toText(toNat(self))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.min(123, 456) == (123 : Nat32);\n /// ```\n public func min(x : Nat32, y : Nat32) : Nat32 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.max(123, 456) == (456 : Nat32);\n /// ```\n public func max(x : Nat32, y : Nat32) : Nat32 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Nat32 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.equal(1, 1);\n /// assert (1 : Nat32) == (1 : Nat32);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Nat32 = 111;\n /// let b : Nat32 = 222;\n /// assert not Nat32.equal(a, b);\n /// ```\n public func equal(x : Nat32, y : Nat32) : Bool { x == y };\n\n /// Inequality function for Nat32 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.notEqual(1, 2);\n /// assert (1 : Nat32) != (2 : Nat32);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Nat32, y : Nat32) : Bool { x != y };\n\n /// \"Less than\" function for Nat32 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.less(1, 2);\n /// assert (1 : Nat32) < (2 : Nat32);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Nat32, y : Nat32) : Bool { x < y };\n\n /// \"Less than or equal\" function for Nat32 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.lessOrEqual(1, 2);\n /// assert (1 : Nat32) <= (2 : Nat32);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Nat32, y : Nat32) : Bool { x <= y };\n\n /// \"Greater than\" function for Nat32 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.greater(2, 1);\n /// assert (2 : Nat32) > (1 : Nat32);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Nat32, y : Nat32) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Nat32 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.greaterOrEqual(2, 1);\n /// assert (2 : Nat32) >= (1 : Nat32);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Nat32, y : Nat32) : Bool {\n x >= y\n };\n\n /// General purpose comparison function for `Nat32`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.compare(2, 3) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([2, 3, 1] : [Nat32], Nat32.compare) == [1, 2, 3];\n /// ```\n public func compare(x : Nat32, y : Nat32) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.add(1, 2) == 3;\n /// assert (1 : Nat32) + (2 : Nat32) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 0, Nat32.add) == 6;\n /// ```\n public func add(x : Nat32, y : Nat32) : Nat32 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n /// Traps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.sub(2, 1) == 1;\n /// assert (2 : Nat32) - (1 : Nat32) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 20, Nat32.sub) == 14;\n /// ```\n public func sub(x : Nat32, y : Nat32) : Nat32 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n /// Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.mul(2, 3) == 6;\n /// assert (2 : Nat32) * (3 : Nat32) == 6;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([2, 3, 1], 1, Nat32.mul) == 6;\n /// ```\n public func mul(x : Nat32, y : Nat32) : Nat32 { x * y };\n\n /// Returns the division of `x by y`, `x / y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.div(6, 2) == 3;\n /// assert (6 : Nat32) / (2 : Nat32) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Nat32, y : Nat32) : Nat32 { x / y };\n\n /// Returns the remainder of `x` divided by `y`, `x % y`.\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.rem(6, 4) == 2;\n /// assert (6 : Nat32) % (4 : Nat32) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Nat32, y : Nat32) : Nat32 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`. Traps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.pow(2, 3) == 8;\n /// assert (2 : Nat32) ** (3 : Nat32) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Nat32, y : Nat32) : Nat32 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitnot(0) == 4294967295;\n /// assert ^(0 : Nat32) == 4294967295;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Nat32) : Nat32 { ^x };\n\n /// Returns the bitwise and of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitand(1, 3) == 1;\n /// assert (1 : Nat32) & (3 : Nat32) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Nat32, y : Nat32) : Nat32 { x & y };\n\n /// Returns the bitwise or of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitor(1, 3) == 3;\n /// assert (1 : Nat32) | (3 : Nat32) == 3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `|` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `|`\n /// as a function value at the moment.\n public func bitor(x : Nat32, y : Nat32) : Nat32 { x | y };\n\n /// Returns the bitwise exclusive or of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitxor(1, 3) == 2;\n /// assert (1 : Nat32) ^ (3 : Nat32) == 2;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitxor(x : Nat32, y : Nat32) : Nat32 { x ^ y };\n\n /// Returns the bitwise shift left of `x` by `y`, `x << y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitshiftLeft(1, 3) == 8;\n /// assert (1 : Nat32) << (3 : Nat32) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Nat32, y : Nat32) : Nat32 {\n x << y\n };\n\n /// Returns the bitwise shift right of `x` by `y`, `x >> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitshiftRight(8, 3) == 1;\n /// assert (8 : Nat32) >> (3 : Nat32) == 1;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Nat32, y : Nat32) : Nat32 {\n x >> y\n };\n\n /// Returns the bitwise rotate left of `x` by `y`, `x <<> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitrotLeft(1, 3) == 8;\n /// assert (1 : Nat32) <<> (3 : Nat32) == 8;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Nat32, y : Nat32) : Nat32 { x <<> y };\n\n /// Returns the bitwise rotate right of `x` by `y`, `x <>> y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitrotRight(1, 1) == 2147483648;\n /// assert (1 : Nat32) <>> (1 : Nat32) == 2147483648;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Nat32, y : Nat32) : Nat32 {\n x <>> y\n };\n\n /// Returns the value of bit `p mod 32` in `x`, `(x & 2^(p mod 32)) == 2^(p mod 32)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bittest(5, 2);\n /// ```\n public func bittest(x : Nat32, p : Nat) : Bool {\n Prim.btstNat32(x, Prim.natToNat32(p))\n };\n\n /// Returns the value of setting bit `p mod 32` in `x` to `1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitset(5, 1) == 7;\n /// ```\n public func bitset(x : Nat32, p : Nat) : Nat32 {\n x | (1 << Prim.natToNat32(p))\n };\n\n /// Returns the value of clearing bit `p mod 32` in `x` to `0`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitclear(5, 2) == 1;\n /// ```\n public func bitclear(x : Nat32, p : Nat) : Nat32 {\n x & ^(1 << Prim.natToNat32(p))\n };\n\n /// Returns the value of flipping bit `p mod 32` in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitflip(5, 2) == 1;\n /// ```\n public func bitflip(x : Nat32, p : Nat) : Nat32 {\n x ^ (1 << Prim.natToNat32(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitcountNonZero(5) == 2;\n /// ```\n public let bitcountNonZero : (x : Nat32) -> Nat32 = Prim.popcntNat32;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitcountLeadingZero(5) == 29;\n /// ```\n public let bitcountLeadingZero : (x : Nat32) -> Nat32 = Prim.clzNat32;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.bitcountTrailingZero(16) == 4;\n /// ```\n public let bitcountTrailingZero : (x : Nat32) -> Nat32 = Prim.ctzNat32;\n\n /// Returns the upper (i.e. most significant), lower (least significant)\n /// and in-between bytes of `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.explode 0xaa885511 == (170, 136, 85, 17);\n /// ```\n public let explode : (x : Nat32) -> (msb : Nat8, Nat8, Nat8, lsb : Nat8) = Prim.explodeNat32;\n\n /// Returns the sum of `x` and `y`, `x +% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.addWrap(4294967295, 1) == 0;\n /// assert (4294967295 : Nat32) +% (1 : Nat32) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Nat32, y : Nat32) : Nat32 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`. Wraps on underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.subWrap(0, 1) == 4294967295;\n /// assert (0 : Nat32) -% (1 : Nat32) == 4294967295;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Nat32, y : Nat32) : Nat32 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.mulWrap(2147483648, 2) == 0;\n /// assert (2147483648 : Nat32) *% (2 : Nat32) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Nat32, y : Nat32) : Nat32 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`. Wraps on overflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Nat32.powWrap(2, 32) == 0;\n /// assert (2 : Nat32) **% (32 : Nat32) == 0;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Nat32, y : Nat32) : Nat32 { x **% y };\n\n /// Returns an iterator over `Nat32` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat32.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat32.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Nat32, toExclusive : Nat32) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Nat32 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Nat32` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat32.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat32.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Nat32, to : Nat32) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Nat32 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Nat32 values, from 0 to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Nat32.allValues();\n /// assert iter.next() == ?0;\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(0, maxValue)\n };\n\n}\n"},"Set.mo":{"content":"/// Imperative (mutable) sets based on order/comparison of elements.\n/// A set is a collection of elements without duplicates.\n/// The set data structure type is stable and can be used for orthogonal persistence.\n///\n/// Example:\n/// ```motoko\n/// import Set \"mo:core/Set\";\n/// import Nat \"mo:core/Nat\";\n///\n/// persistent actor {\n/// let set = Set.fromIter([3, 1, 2, 3].vals(), Nat.compare);\n/// assert Set.size(set) == 3;\n/// assert not Set.contains(set, Nat.compare, 4);\n/// let diff = Set.difference(set, set, Nat.compare);\n/// assert Set.isEmpty(diff);\n/// }\n/// ```\n///\n/// These sets are implemented as B-trees with order 32, a balanced search tree of ordered elements.\n///\n/// Performance:\n/// * Runtime: `O(log(n))` worst case cost per insertion, removal, and retrieval operation.\n/// * Space: `O(n)` for storing the entire tree,\n/// where `n` denotes the number of elements stored in the set.\n\n// Data structure implementation is courtesy of Byron Becker.\n// Source: https://github.com/canscale/StableHeapBTreeMap\n// Copyright (c) 2022 Byron Becker.\n// Distributed under Apache 2.0 license.\n// With adjustments by the Motoko team.\n\nimport PureSet \"pure/Set\";\nimport Types \"Types\";\nimport Order \"Order\";\nimport Array \"Array\";\nimport VarArray \"VarArray\";\nimport Runtime \"Runtime\";\nimport Stack \"Stack\";\nimport Option \"Option\";\nimport Iter \"Iter\";\nimport BTreeHelper \"internal/BTreeHelper\";\n\nmodule {\n let btreeOrder = 32; // Should be >= 4 and <= 512.\n\n public type Set = Types.Set.Set;\n type Node = Types.Set.Node;\n type Data = Types.Set.Data;\n type Internal = Types.Set.Internal;\n type Leaf = Types.Set.Leaf;\n\n /// Convert the mutable set to an immutable, purely functional set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import PureSet \"mo:core/pure/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 2, 1].values(), Nat.compare);\n /// let pureSet = Set.toPure(set, Nat.compare);\n /// assert Iter.toArray(PureSet.values(pureSet)) == Iter.toArray(Set.values(set));\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(n * log(n))` temporary objects that will be collected as garbage.\n /// @deprecated M0235\n public func toPure(self : Set, compare : (implicit : (T, T) -> Order.Order)) : PureSet.Set {\n PureSet.fromIter(values(self), compare)\n };\n\n /// Convert an immutable, purely functional set to a mutable set.\n ///\n /// Example:\n /// ```motoko\n /// import PureSet \"mo:core/pure/Set\";\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let pureSet = PureSet.fromIter([3, 1, 2].values(), Nat.compare);\n /// let set = Set.fromPure(pureSet, Nat.compare);\n /// assert Iter.toArray(Set.values(set)) == Iter.toArray(PureSet.values(pureSet));\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func fromPure(set : PureSet.Set, compare : (implicit : (T, T) -> Order.Order)) : Set {\n fromIter(PureSet.values(set), compare)\n };\n\n public func fromArray(array : [T], compare : (implicit : (T, T) -> Order.Order)) : Set {\n fromIter(array.values(), compare)\n };\n\n /// Create a copy of the mutable set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let originalSet = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let clonedSet = Set.clone(originalSet);\n /// Set.add(originalSet, Nat.compare, 4);\n /// assert Set.size(clonedSet) == 3;\n /// assert Set.size(originalSet) == 4;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements stored in the set.\n public func clone(self : Set) : Set {\n {\n var root = cloneNode(self.root);\n var size = self.size\n }\n };\n\n /// Create a new empty mutable set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// assert Set.size(set) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func empty() : Set {\n {\n var root = #leaf({\n data = {\n elements = VarArray.repeat(null, btreeOrder - 1);\n var count = 0\n }\n });\n var size = 0\n }\n };\n\n /// Create a new mutable set with a single element.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n ///\n /// persistent actor {\n /// let cities = Set.singleton(\"Zurich\");\n /// assert Set.size(cities) == 1;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func singleton(element : T) : Set {\n let elements = VarArray.repeat(null, btreeOrder - 1);\n elements[0] := ?element;\n {\n var root =\n #leaf({ data = { elements; var count = 1 } });\n var size = 1\n }\n };\n\n /// Remove all the elements from the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Text \"mo:core/Text\";\n ///\n /// persistent actor {\n /// let cities = Set.empty();\n /// Set.add(cities, Text.compare, \"Zurich\");\n /// Set.add(cities, Text.compare, \"San Francisco\");\n /// Set.add(cities, Text.compare, \"London\");\n /// assert Set.size(cities) == 3;\n ///\n /// Set.clear(cities);\n /// assert Set.size(cities) == 0;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func clear(self : Set) {\n let emptySet = empty();\n self.root := emptySet.root;\n self.size := 0\n };\n\n /// Determines whether a set is empty.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// Set.add(set, Nat.compare, 1);\n /// Set.add(set, Nat.compare, 2);\n /// Set.add(set, Nat.compare, 3);\n ///\n /// assert not Set.isEmpty(set);\n /// Set.clear(set);\n /// assert Set.isEmpty(set);\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func isEmpty(self : Set) : Bool {\n self.size == 0\n };\n\n /// Return the number of elements in a set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// Set.add(set, Nat.compare, 1);\n /// Set.add(set, Nat.compare, 2);\n /// Set.add(set, Nat.compare, 3);\n ///\n /// assert Set.size(set) == 3;\n /// }\n /// ```\n ///\n /// Runtime: `O(1)`.\n /// Space: `O(1)`.\n public func size(self : Set) : Nat {\n self.size\n };\n\n /// Test whether two imperative sets are equal.\n /// Both sets have to be constructed by the same comparison function.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2].values(), Nat.compare);\n /// let set2 = Set.fromIter([2, 1].values(), Nat.compare);\n /// let set3 = Set.fromIter([2, 1, 0].values(), Nat.compare);\n /// assert Set.equal(set1, set2, Nat.compare);\n /// assert not Set.equal(set1, set3, Nat.compare);\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)`.\n public func equal(self : Set, other : Set, compare : (implicit : (T, T) -> Types.Order)) : Bool {\n if (self.size != other.size) return false;\n // TODO: optimize\n let iterator1 = values(self);\n let iterator2 = values(other);\n loop {\n let next1 = iterator1.next();\n let next2 = iterator2.next();\n switch (next1, next2) {\n case (null, null) {\n return true\n };\n case (?element1, ?element2) {\n if (not (compare(element1, element2) == #equal)) {\n return false\n }\n };\n case _ { return false }\n }\n }\n };\n\n /// Tests whether the set contains the provided element.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// Set.add(set, Nat.compare, 1);\n /// Set.add(set, Nat.compare, 2);\n /// Set.add(set, Nat.compare, 3);\n ///\n /// assert Set.contains(set, Nat.compare, 1);\n /// assert not Set.contains(set, Nat.compare, 4);\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func contains(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) : Bool {\n switch (self.root) {\n case (#internal(internalNode)) {\n containsInInternal(internalNode, compare, element)\n };\n case (#leaf(leafNode)) { containsInLeaf(leafNode, compare, element) }\n }\n };\n\n /// Add a new element to a set.\n /// No effect if the element already exists in the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// Set.add(set, Nat.compare, 2);\n /// Set.add(set, Nat.compare, 1);\n /// Set.add(set, Nat.compare, 2);\n /// assert Iter.toArray(Set.values(set)) == [1, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func add(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) {\n ignore insert(self, compare, element)\n };\n\n /// Insert a new element in the set.\n /// Returns true if the element is new, false if the element was already contained in the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// assert Set.insert(set, Nat.compare, 2);\n /// assert Set.insert(set, Nat.compare, 1);\n /// assert not Set.insert(set, Nat.compare, 2);\n /// assert Iter.toArray(Set.values(set)) == [1, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func insert(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) : Bool {\n let insertResult = switch (self.root) {\n case (#leaf(leafNode)) {\n leafInsertHelper(leafNode, btreeOrder, compare, element)\n };\n case (#internal(internalNode)) {\n internalInsertHelper(internalNode, btreeOrder, compare, element)\n }\n };\n\n switch (insertResult) {\n case (#inserted) {\n // if inserted an element that was not previously there, increment the tree size counter\n self.size += 1;\n true\n };\n case (#existent) {\n // keep size\n false\n };\n case (#promote({ element = promotedElement; leftChild; rightChild })) {\n let elements = VarArray.repeat(null, btreeOrder - 1);\n elements[0] := ?promotedElement;\n let children = VarArray.repeat>(null, btreeOrder);\n children[0] := ?leftChild;\n children[1] := ?rightChild;\n self.root := #internal({\n data = { elements; var count = 1 };\n children\n });\n // promotion always comes from inserting a new element, so increment the tree size counter\n self.size += 1;\n true\n }\n }\n };\n\n /// Deletes an element from a set.\n /// No effect if the element is not contained in the set.\n ///\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([1, 2, 3].values(), Nat.compare);\n ///\n /// Set.remove(set, Nat.compare, 2);\n /// assert not Set.contains(set, Nat.compare, 2);\n ///\n /// Set.remove(set, Nat.compare, 4);\n /// assert not Set.contains(set, Nat.compare, 4);\n ///\n /// assert Iter.toArray(Set.values(set)) == [1, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` including garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` objects that will be collected as garbage.\n public func remove(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) : () {\n ignore delete(self, compare, element)\n };\n\n /// Deletes an element from a set.\n /// Returns true if the element was contained in the set, false if not.\n ///\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([1, 2, 3].values(), Nat.compare);\n ///\n /// assert Set.delete(set, Nat.compare, 2);\n /// assert not Set.contains(set, Nat.compare, 2);\n ///\n /// assert not Set.delete(set, Nat.compare, 4);\n /// assert not Set.contains(set, Nat.compare, 4);\n /// assert Iter.toArray(Set.values(set)) == [1, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(log(n))` including garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` objects that will be collected as garbage.\n /// @deprecated M0235\n public func delete(self : Set, compare : (implicit : (T, T) -> Order.Order), element : T) : Bool {\n let deleted = switch (self.root) {\n case (#leaf(leafNode)) {\n // TODO: think about how this can be optimized so don't have to do two steps (search and then insert)?\n switch (NodeUtil.getElementIndex(leafNode.data, compare, element)) {\n case (#elementFound(deleteIndex)) {\n leafNode.data.count -= 1;\n ignore BTreeHelper.deleteAndShift(leafNode.data.elements, deleteIndex);\n self.size -= 1;\n true\n };\n case _ { false }\n }\n };\n case (#internal(internalNode)) {\n let deletedElement = switch (internalDeleteHelper(internalNode, btreeOrder, compare, element, false)) {\n case (#deleted) { true };\n case (#inexistent) { false };\n case (#mergeChild({ internalChild })) {\n if (internalChild.data.count > 0) {\n self.root := #internal(internalChild)\n }\n // This case will be hit if the BTree has order == 4\n // In this case, the internalChild has no element (last element was merged with new child), so need to promote that merged child (its only child)\n else {\n self.root := switch (internalChild.children[0]) {\n case (?node) { node };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.delete(), element deletion failed, due to a null replacement node error\")\n }\n }\n };\n true\n }\n };\n if (deletedElement) {\n // if deleted an element from the BTree, decrement the size\n self.size -= 1\n };\n deletedElement\n }\n };\n deleted\n };\n\n /// Retrieves the maximum element from the set.\n /// If the set is empty, returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// assert Set.max(set) == null;\n /// Set.add(set, Nat.compare, 3);\n /// Set.add(set, Nat.compare, 1);\n /// Set.add(set, Nat.compare, 2);\n /// assert Set.max(set) == ?3;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of elements stored in the set.\n public func max(self : Set) : ?T {\n reverseValues(self).next()\n };\n\n /// Retrieves the minimum element from the set.\n /// If the set is empty, returns `null`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.empty();\n /// assert Set.min(set) == null;\n /// Set.add(set, Nat.compare, 1);\n /// Set.add(set, Nat.compare, 2);\n /// Set.add(set, Nat.compare, 3);\n /// assert Set.min(set) == ?1;\n /// }\n /// ```\n ///\n /// Runtime: `O(log(n))`.\n /// Space: `O(1)`.\n /// where `n` denotes the number of elements stored in the set.\n public func min(self : Set) : ?T {\n values(self).next()\n };\n\n public func toArray(self : Set) : [T] {\n Iter.toArray(values(self))\n };\n\n /// Returns an iterator over the elements in the set,\n /// traversing the elements in the ascending order.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 2, 3, 1].values(), Nat.compare);\n ///\n /// var tmp = \"\";\n /// for (number in Set.values(set)) {\n /// tmp #= \" \" # Nat.toText(number);\n /// };\n /// assert tmp == \" 0 1 2 3\";\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func values(self : Set) : Types.Iter {\n switch (self.root) {\n case (#leaf(leafNode)) { return leafElements(leafNode) };\n case (#internal(internalNode)) { internalElements(internalNode) }\n }\n };\n\n /// Returns an iterator over the elements in the set,\n /// starting from a given element in ascending order.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 1].values(), Nat.compare);\n /// assert Iter.toArray(Set.valuesFrom(set, Nat.compare, 1)) == [1, 3];\n /// assert Iter.toArray(Set.valuesFrom(set, Nat.compare, 2)) == [3];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of key-value entries stored in the map.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func valuesFrom(\n self : Set,\n compare : (implicit : (T, T) -> Order.Order),\n element : T\n ) : Types.Iter {\n switch (self.root) {\n case (#leaf(leafNode)) leafElementsFrom(leafNode, compare, element);\n case (#internal(internalNode)) internalElementsFrom(internalNode, compare, element)\n }\n };\n\n /// Returns an iterator over the elements in the set,\n /// traversing the elements in the descending order.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 2, 3, 1].values(), Nat.compare);\n ///\n /// var tmp = \"\";\n /// for (number in Set.reverseValues(set)) {\n /// tmp #= \" \" # Nat.toText(number);\n /// };\n /// assert tmp == \" 3 2 1 0\";\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func reverseValues(self : Set) : Types.Iter {\n switch (self.root) {\n case (#leaf(leafNode)) { return reverseLeafElements(leafNode) };\n case (#internal(internalNode)) { reverseInternalElements(internalNode) }\n }\n };\n\n /// Returns an iterator over the elements in the set,\n /// starting from a given element in descending order.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 1, 3].values(), Nat.compare);\n /// assert Iter.toArray(Set.reverseValuesFrom(set, Nat.compare, 0)) == [0];\n /// assert Iter.toArray(Set.reverseValuesFrom(set, Nat.compare, 2)) == [1, 0];\n /// }\n /// ```\n /// Cost of iteration over all elements:\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func reverseValuesFrom(\n self : Set,\n compare : (implicit : (T, T) -> Order.Order),\n element : T\n ) : Types.Iter {\n switch (self.root) {\n case (#leaf(leafNode)) reverseLeafElementsFrom(leafNode, compare, element);\n case (#internal(internalNode)) reverseInternalElementsFrom(internalNode, compare, element)\n }\n };\n\n /// Create a mutable set with the elements obtained from an iterator.\n /// Potential duplicate elements in the iterator are ignored, i.e.\n /// multiple occurrence of an equal element only occur once in the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([3, 1, 2, 1].values(), Nat.compare);\n /// assert Iter.toArray(Set.values(set)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements returned by the iterator and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func fromIter(iter : Types.Iter, compare : (implicit : (T, T) -> Order.Order)) : Set {\n let set = empty();\n for (element in iter) {\n add(set, compare, element)\n };\n set\n };\n\n /// Convert an iterator of elements to a mutable set.\n /// Potential duplicate elements in the iterator are ignored, i.e.\n /// multiple occurrence of an equal element only occur once in the set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// transient let iter = [3, 1, 2, 1].values();\n ///\n /// let set = iter.toSet(Nat.compare);\n ///\n /// assert Iter.toArray(Set.values(set)) == [1, 2, 3];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements returned by the iterator and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func toSet(self : Types.Iter, compare : (implicit : (T, T) -> Order.Order)) : Set {\n fromIter(self, compare)\n };\n\n /// Test whether `set1` is a sub-set of `set2`, i.e. each element in `set1` is\n /// also contained in `set2`. Returns `true` if both sets are equal.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2].values(), Nat.compare);\n /// let set2 = Set.fromIter([2, 1, 0].values(), Nat.compare);\n /// let set3 = Set.fromIter([3, 4].values(), Nat.compare);\n /// assert Set.isSubset(set1, set2, Nat.compare);\n /// assert not Set.isSubset(set1, set3, Nat.compare);\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets `set1` and `set2`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func isSubset(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Bool {\n if (self.size > other.size) { return false };\n // TODO: optimize\n for (element in values(self)) {\n if (not contains(other, compare, element)) {\n return false\n }\n };\n true\n };\n\n /// Returns a new set that is the union of `set1` and `set2`,\n /// i.e. a new set that all the elements that exist in at least on of the two sets.\n /// Potential duplicates are ignored, i.e. if the same element occurs in both `set1`\n /// and `set2`, it only occurs once in the returned set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let union = Set.union(set1, set2, Nat.compare);\n /// assert Iter.toArray(Set.values(union)) == [1, 2, 3, 4, 5];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets `set1` and `set2`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func union(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Set {\n let result = clone(self);\n for (element in values(other)) {\n if (not contains(result, compare, element)) {\n add(result, compare, element)\n }\n };\n result\n };\n\n /// Returns a new set that is the intersection of `set1` and `set2`,\n /// i.e. a new set that contains all the elements that exist in both sets.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([0, 1, 2].values(), Nat.compare);\n /// let set2 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let intersection = Set.intersection(set1, set2, Nat.compare);\n /// assert Iter.toArray(Set.values(intersection)) == [1, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets `set1` and `set2`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func intersection(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Set {\n let result = empty();\n for (element in values(self)) {\n if (contains(other, compare, element)) {\n add(result, compare, element)\n }\n };\n result\n };\n\n /// Returns a new set that is the difference between `set1` and `set2` (`set1` minus `set2`),\n /// i.e. a new set that contains all the elements of `set1` that do not exist in `set2`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let difference = Set.difference(set1, set2, Nat.compare);\n /// assert Iter.toArray(Set.values(difference)) == [1, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements stored in the sets `set1` and `set2`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func difference(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Set {\n let result = empty();\n for (element in values(self)) {\n if (not contains(other, compare, element)) {\n add(result, compare, element)\n }\n };\n result\n };\n\n /// Adds all elements from `iter` to the specified `set`.\n /// This is equivalent to `Set.union()` but modifies the set in place.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// Set.addAll(set, Nat.compare, [3, 4, 5].values());\n /// assert Iter.toArray(Set.values(set)) == [1, 2, 3, 4, 5];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements in `set` and `iter`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func addAll(self : Set, compare : (implicit : (T, T) -> Order.Order), iter : Types.Iter) {\n for (element in iter) {\n add(self, compare, element)\n }\n };\n\n /// Deletes all values in `iter` from the specified `set`.\n /// Returns `true` if any value was present in the set, otherwise false.\n /// The return value indicates whether the size of the set has changed.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 1, 2].values(), Nat.compare);\n /// assert Set.deleteAll(set, Nat.compare, [0, 2].values());\n /// assert Iter.toArray(Set.values(set)) == [1];\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements in `set` and `iter`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func deleteAll(self : Set, compare : (implicit : (T, T) -> Order.Order), iter : Types.Iter) : Bool {\n var deleted = false;\n for (element in iter) {\n deleted := delete(self, compare, element) or deleted // order matters!\n };\n deleted\n };\n\n /// Inserts all values in `iter` into `set`.\n /// Returns true if any value was not contained in the original set, otherwise false.\n /// The return value indicates whether the size of the set has changed.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 1, 2].values(), Nat.compare);\n /// assert Set.insertAll(set, Nat.compare, [0, 2, 3].values());\n /// assert Iter.toArray(Set.values(set)) == [0, 1, 2, 3];\n /// assert not Set.insertAll(set, Nat.compare, [0, 1, 2].values()); // no change\n /// }\n /// ```\n ///\n /// Runtime: `O(m * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `m` and `n` denote the number of elements in `set` and `iter`, respectively,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n /// @deprecated M0235\n public func insertAll(self : Set, compare : (implicit : (T, T) -> Order.Order), iter : Types.Iter) : Bool {\n var inserted = false;\n for (element in iter) {\n inserted := insert(self, compare, element) or inserted // order matters!\n };\n inserted\n };\n\n /// Removes all values in `set` that do not satisfy the given predicate.\n /// Returns `true` if and only if the size of the set has changed.\n /// Modifies the set in place.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([3, 1, 2].values(), Nat.compare);\n ///\n /// let sizeChanged = Set.retainAll(set, Nat.compare, func n { n % 2 == 0 });\n /// assert Iter.toArray(Set.values(set)) == [2];\n /// assert sizeChanged;\n /// }\n /// ```\n public func retainAll(self : Set, compare : (implicit : (T, T) -> Order.Order), predicate : T -> Bool) : Bool {\n let array = Array.fromIter(values(self));\n deleteAll(\n self,\n compare,\n Iter.filter(array.vals(), func(element : T) : Bool = not predicate(element))\n )\n };\n\n /// Apply an operation on each element contained in the set.\n /// The operation is applied in ascending order of the elements.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// var tmp = \"\";\n /// Set.forEach(numbers, func (element) {\n /// tmp #= \" \" # Nat.toText(element)\n /// });\n /// assert tmp == \" 0 1 2 3\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func forEach(self : Set, operation : T -> ()) {\n for (element in values(self)) {\n operation(element)\n }\n };\n\n /// Filter elements in a new set.\n /// Create a copy of the mutable set that only contains the elements\n /// that fulfil the criterion function.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// let evenNumbers = Set.filter(numbers, Nat.compare, func (number) {\n /// number % 2 == 0\n /// });\n /// assert Iter.toArray(Set.values(evenNumbers)) == [0, 2];\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)`.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n public func filter(self : Set, compare : (implicit : (T, T) -> Order.Order), criterion : T -> Bool) : Set {\n let result = empty();\n for (element in values(self)) {\n if (criterion(element)) {\n add(result, compare, element)\n }\n };\n result\n };\n\n /// Project all elements of the set in a new set.\n /// Apply a mapping function to each element in the set and\n /// collect the mapped elements in a new mutable set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([3, 1, 2].values(), Nat.compare);\n ///\n /// let textNumbers =\n /// Set.map(numbers, Text.compare, Nat.toText);\n /// assert Iter.toArray(Set.values(textNumbers)) == [\"1\", \"2\", \"3\"];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that the `compare` function implements an `O(1)` comparison.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func map(self : Set, compare : (implicit : (T2, T2) -> Order.Order), project : T1 -> T2) : Set {\n let result = empty();\n for (element1 in values(self)) {\n let element2 = project(element1);\n add(result, compare, element2)\n };\n result\n };\n\n /// Filter all elements in the set by also applying a projection to the elements.\n /// Apply a mapping function `project` to all elements in the set and collect all\n /// elements, for which the function returns a non-null new element. Collect all\n /// non-discarded new elements in a new mutable set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Text \"mo:core/Text\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let numbers = Set.fromIter([3, 0, 2, 1].values(), Nat.compare);\n ///\n /// let evenTextNumbers = Set.filterMap(numbers, Text.compare, func (number) {\n /// if (number % 2 == 0) {\n /// ?Nat.toText(number)\n /// } else {\n /// null // discard odd numbers\n /// }\n /// });\n /// assert Iter.toArray(Set.values(evenTextNumbers)) == [\"0\", \"2\"];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func filterMap(self : Set, compare : (implicit : (T2, T2) -> Order.Order), project : T1 -> ?T2) : Set {\n let result = empty();\n for (element1 in values(self)) {\n switch (project(element1)) {\n case null {};\n case (?element2) add(result, compare, element2)\n }\n };\n result\n };\n\n /// Iterate all elements in ascending order,\n /// and accumulate the elements by applying the combine function, starting from a base value.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 2, 1].values(), Nat.compare);\n ///\n /// let text = Set.foldLeft(\n /// set,\n /// \"\",\n /// func (accumulator, element) {\n /// accumulator # \" \" # Nat.toText(element)\n /// }\n /// );\n /// assert text == \" 0 1 2 3\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func foldLeft(\n self : Set,\n base : A,\n combine : (A, T) -> A\n ) : A {\n var accumulator = base;\n for (element in values(self)) {\n accumulator := combine(accumulator, element)\n };\n accumulator\n };\n\n /// Iterate all elements in descending order,\n /// and accumulate the elements by applying the combine function, starting from a base value.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 2, 1].values(), Nat.compare);\n ///\n /// let text = Set.foldRight(\n /// set,\n /// \"\",\n /// func (element, accumulator) {\n /// accumulator # \" \" # Nat.toText(element)\n /// }\n /// );\n /// assert text == \" 3 2 1 0\";\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func foldRight(\n self : Set,\n base : A,\n combine : (T, A) -> A\n ) : A {\n var accumulator = base;\n for (element in reverseValues(self)) {\n accumulator := combine(element, accumulator)\n };\n accumulator\n };\n\n /// Construct the union of a series of sets, i.e. all elements of\n /// each set are included in the result set.\n /// Any duplicates are ignored, i.e. if an element occurs\n /// in several of the iterated sets, it only occurs once in the result set.\n ///\n /// Assumes all sets are ordered by `compare`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let set3 = Set.fromIter([5, 6, 7].values(), Nat.compare);\n /// let combined = Set.join([set1, set2, set3].values(), Nat.compare);\n /// assert Iter.toArray(Set.values(combined)) == [1, 2, 3, 4, 5, 6, 7];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of elements stored in the iterated sets,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func join(setIterator : Types.Iter>, compare : (implicit : (T, T) -> Order.Order)) : Set {\n let result = empty();\n for (set in setIterator) {\n for (element in values(set)) {\n add(result, compare, element)\n }\n };\n result\n };\n\n /// Construct the union of a set of element sets, i.e. all elements of\n /// each element set are included in the result set.\n /// Any duplicates are ignored, i.e. if the same element occurs in multiple element sets,\n /// it only occurs once in the result set.\n ///\n /// Assumes all sets are ordered by `compare`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n /// import Order \"mo:core/Order\";\n /// import Iter \"mo:core/Iter\";\n ///\n /// persistent actor {\n /// func setCompare(first: Set.Set, second: Set.Set) : Order.Order {\n /// Set.compare(first, second, Nat.compare)\n /// };\n ///\n /// let set1 = Set.fromIter([1, 2, 3].values(), Nat.compare);\n /// let set2 = Set.fromIter([3, 4, 5].values(), Nat.compare);\n /// let set3 = Set.fromIter([5, 6, 7].values(), Nat.compare);\n /// let setOfSets = Set.fromIter([set1, set2, set3].values(), setCompare);\n /// let flatSet = Set.flatten(setOfSets, Nat.compare);\n /// assert Iter.toArray(Set.values(flatSet)) == [1, 2, 3, 4, 5, 6, 7];\n /// }\n /// ```\n ///\n /// Runtime: `O(n * log(n))`.\n /// Space: `O(1)` retained memory plus garbage, see the note below.\n /// where `n` denotes the number of elements stored in all the sub-sets,\n /// and assuming that the `compare` function implements an `O(1)` comparison.\n public func flatten(self : Set>, compare : (implicit : (T, T) -> Order.Order)) : Set {\n let result = empty();\n for (subSet in values(self)) {\n for (element in values(subSet)) {\n add(result, compare, element)\n }\n };\n result\n };\n\n /// Check whether all elements in the set satisfy a predicate, i.e.\n /// the `predicate` function returns `true` for all elements in the set.\n /// Returns `true` for an empty set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// let belowTen = Set.all(set, func (number) {\n /// number < 10\n /// });\n /// assert belowTen;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func all(self : Set, predicate : T -> Bool) : Bool {\n // TODO optimize, avoiding iterator\n for (element in values(self)) {\n if (not predicate(element)) {\n return false\n }\n };\n true\n };\n\n /// Check whether at least one element in the set satisfies a predicate, i.e.\n /// the `predicate` function returns `true` for at least one element in the set.\n /// Returns `false` for an empty set.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// let aboveTen = Set.any(set, func (number) {\n /// number > 10\n /// });\n /// assert not aboveTen;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func any(self : Set, predicate : T -> Bool) : Bool {\n // TODO optimize, avoiding iterator\n for (element in values(self)) {\n if (predicate(element)) {\n return true\n }\n };\n false\n };\n\n /// Internal sanity check function.\n /// Can be used to check that elements have been inserted with a consistent comparison function.\n /// Traps if the internal set structure is invalid.\n /// @deprecated M0235\n public func assertValid(self : Set, compare : (implicit : (T, T) -> Order.Order)) {\n func checkIteration(iterator : Types.Iter, order : Order.Order) {\n switch (iterator.next()) {\n case null {};\n case (?first) {\n var previous = first;\n loop {\n switch (iterator.next()) {\n case null return;\n case (?next) {\n if (compare(previous, next) != order) {\n Runtime.trap(\"Invalid order\")\n };\n previous := next\n }\n }\n }\n }\n }\n };\n checkIteration(values(self), #less);\n checkIteration(reverseValues(self), #greater)\n };\n\n /// Generate a textual representation of all the elements in the set.\n /// Primarily to be used for testing and debugging.\n /// The elements are formatted according to `elementFormat`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set = Set.fromIter([0, 3, 1, 2].values(), Nat.compare);\n ///\n /// assert Set.toText(set, Nat.toText) == \"Set{0, 1, 2, 3}\"\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(n)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that `elementFormat` has runtime and space costs of `O(1)`.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func toText(self : Set, toText : (implicit : T -> Text)) : Text {\n var text = \"Set{\";\n var sep = \"\";\n for (element in values(self)) {\n text #= sep # toText(element);\n sep := \", \"\n };\n text # \"}\"\n };\n\n /// Compare two sets by comparing the elements.\n /// Both sets must have been created by the same comparison function.\n /// The two sets are iterated by the ascending order of their creation and\n /// order is determined by the following rules:\n /// Less:\n /// `set1` is less than `set2` if:\n /// * the pairwise iteration hits an element pair `element1` and `element2` where\n /// `element1` is less than `element2` and all preceding elements are equal, or,\n /// * `set1` is a strict prefix of `set2`, i.e. `set2` has more elements than `set1`\n /// and all elements of `set1` occur at the beginning of iteration `set2`.\n /// Equal:\n /// `set1` and `set2` have same series of equal elements by pairwise iteration.\n /// Greater:\n /// `set1` is neither less nor equal `set2`.\n ///\n /// Example:\n /// ```motoko\n /// import Set \"mo:core/Set\";\n /// import Nat \"mo:core/Nat\";\n ///\n /// persistent actor {\n /// let set1 = Set.fromIter([0, 1].values(), Nat.compare);\n /// let set2 = Set.fromIter([0, 2].values(), Nat.compare);\n ///\n /// assert Set.compare(set1, set2, Nat.compare) == #less;\n /// assert Set.compare(set1, set1, Nat.compare) == #equal;\n /// assert Set.compare(set2, set1, Nat.compare) == #greater;\n /// }\n /// ```\n ///\n /// Runtime: `O(n)`.\n /// Space: `O(1)` retained memory plus garbage, see below.\n /// where `n` denotes the number of elements stored in the set and\n /// assuming that `compare` has runtime and space costs of `O(1)`.\n ///\n /// Note: Creates `O(log(n))` temporary objects that will be collected as garbage.\n public func compare(self : Set, other : Set, compare : (implicit : (T, T) -> Order.Order)) : Order.Order {\n let iterator1 = values(self);\n let iterator2 = values(other);\n loop {\n switch (iterator1.next(), iterator2.next()) {\n case (null, null) return #equal;\n case (null, _) return #less;\n case (_, null) return #greater;\n case (?element1, ?element2) {\n let comparison = compare(element1, element2);\n if (comparison != #equal) {\n return comparison\n }\n }\n }\n }\n };\n\n func leafElements({ data } : Leaf) : Types.Iter {\n var i : Nat = 0;\n object {\n public func next() : ?T {\n if (i >= data.count) {\n null\n } else {\n let res = data.elements[i];\n i += 1;\n res\n }\n }\n }\n };\n\n func leafElementsFrom({ data } : Leaf, compare : (T, T) -> Order.Order, element : T) : Types.Iter {\n var i = switch (BinarySearch.binarySearchNode(data.elements, compare, element, data.count)) {\n case (#elementFound(i)) i;\n case (#notFound(i)) i\n };\n object {\n public func next() : ?T {\n if (i >= data.count) {\n null\n } else {\n let res = data.elements[i];\n i += 1;\n res\n }\n }\n }\n };\n\n func reverseLeafElements({ data } : Leaf) : Types.Iter {\n var i : Nat = data.count;\n object {\n public func next() : ?T {\n if (i == 0) {\n null\n } else {\n let res = data.elements[i - 1];\n i -= 1;\n res\n }\n }\n }\n };\n\n func reverseLeafElementsFrom({ data } : Leaf, compare : (T, T) -> Order.Order, element : T) : Types.Iter {\n var i = switch (BinarySearch.binarySearchNode(data.elements, compare, element, data.count)) {\n case (#elementFound(i)) i + 1; // +1 to include this element\n case (#notFound(i)) i // i is the index of the first element greater than the search element, or count if all elements are less than the search element\n };\n object {\n public func next() : ?T {\n if (i == 0) {\n null\n } else {\n let res = data.elements[i - 1];\n i -= 1;\n res\n }\n }\n }\n };\n\n // Cursor type that keeps track of the current node and the current element index in the node\n type NodeCursor = { node : Node; elementIndex : Nat };\n\n func internalElements(internal : Internal) : Types.Iter {\n // The nodeCursorStack keeps track of the current node and the current element index in the node\n // We use a stack here to push to/pop off the next node cursor to visit\n let nodeCursorStack = initializeForwardNodeCursorStack(internal);\n internalElementsFromStack(nodeCursorStack)\n };\n\n func internalElementsFrom(internal : Internal, compare : (T, T) -> Order.Order, element : T) : Types.Iter {\n let nodeCursorStack = initializeForwardNodeCursorStackFrom(internal, compare, element);\n internalElementsFromStack(nodeCursorStack)\n };\n\n func internalElementsFromStack(nodeCursorStack : Stack.Stack>) : Types.Iter {\n object {\n public func next() : ?T {\n // pop the next node cursor off the stack\n var nodeCursor = Stack.pop(nodeCursorStack);\n switch (nodeCursor) {\n case null { return null };\n case (?{ node; elementIndex }) {\n switch (node) {\n // if a leaf node, iterate through the leaf node's next element\n case (#leaf(leafNode)) {\n let lastIndex = leafNode.data.count - 1 : Nat;\n if (elementIndex > lastIndex) {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.internalElements(), leaf elementIndex out of bounds\")\n };\n\n let currentElement = switch (leafNode.data.elements[elementIndex]) {\n case (?element) { element };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Set.internalElements(), null element found in leaf node.\"\n # \"leafNode.data.count=\" # debug_show (leafNode.data.count) # \", elementIndex=\" # debug_show (elementIndex)\n )\n }\n };\n // if not at the last element, push the next element index of the leaf onto the stack and return the current element\n if (elementIndex < lastIndex) {\n Stack.push(\n nodeCursorStack,\n {\n node = #leaf(leafNode);\n elementIndex = elementIndex + 1 : Nat\n }\n )\n };\n\n ?currentElement\n };\n // if an internal node\n case (#internal(internalNode)) {\n let lastIndex = internalNode.data.count - 1 : Nat;\n // Developer facing message in case of a bug\n if (elementIndex > lastIndex) {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.internalElements(), internal elementIndex out of bounds\")\n };\n\n let currentElement = switch (internalNode.data.elements[elementIndex]) {\n case (?element) { element };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Set.internalElements(), null element found in internal node. \" #\n \"internal.data.count=\" # debug_show (internalNode.data.count) # \", elementIndex=\" # debug_show (elementIndex)\n )\n }\n };\n\n let nextCursor = {\n node = #internal(internalNode);\n elementIndex = elementIndex + 1 : Nat\n };\n // if not the last element, push the next element of the internal node onto the stack\n if (elementIndex < lastIndex) {\n Stack.push(nodeCursorStack, nextCursor)\n };\n // traverse the next child's min subtree and push the resulting node cursors onto the stack\n // then return the current element of the internal node\n traverseMinSubtreeIter(nodeCursorStack, nextCursor);\n ?currentElement\n }\n }\n }\n }\n }\n }\n };\n\n func reverseInternalElements(internal : Internal) : Types.Iter {\n // The nodeCursorStack keeps track of the current node and the current element index in the node\n // We use a stack here to push to/pop off the next node cursor to visit\n let nodeCursorStack = initializeReverseNodeCursorStack(internal);\n reverseInternalElementsFromStack(nodeCursorStack)\n };\n\n func reverseInternalElementsFrom(internal : Internal, compare : (T, T) -> Order.Order, element : T) : Types.Iter {\n let nodeCursorStack = initializeReverseNodeCursorStackFrom(internal, compare, element);\n reverseInternalElementsFromStack(nodeCursorStack)\n };\n\n func reverseInternalElementsFromStack(nodeCursorStack : Stack.Stack>) : Types.Iter {\n object {\n public func next() : ?T {\n // pop the next node cursor off the stack\n var nodeCursor = Stack.pop(nodeCursorStack);\n switch (nodeCursor) {\n case null { return null };\n case (?{ node; elementIndex }) {\n let firstIndex = 0 : Nat;\n assert (elementIndex > firstIndex);\n switch (node) {\n // if a leaf node, reverse iterate through the leaf node's next element\n case (#leaf(leafNode)) {\n let currentElement = switch (leafNode.data.elements[elementIndex - 1]) {\n case (?element) { element };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Set.reverseInternalElements(), null element found in leaf node.\"\n # \"leafNode.data.count=\" # debug_show (leafNode.data.count) # \", elementIndex=\" # debug_show (elementIndex)\n )\n }\n };\n // if not at the last element, push the previous element index of the leaf onto the stack and return the current element\n if (elementIndex - 1 : Nat > firstIndex) {\n Stack.push(\n nodeCursorStack,\n {\n node = #leaf(leafNode);\n elementIndex = elementIndex - 1 : Nat\n }\n )\n };\n\n // return the current element\n ?currentElement\n };\n // if an internal node\n case (#internal(internalNode)) {\n let currentElement = switch (internalNode.data.elements[elementIndex - 1]) {\n case (?element) { element };\n case null {\n Runtime.trap(\n \"UNREACHABLE_ERROR: file a bug report! In Set.reverseInternalElements(), null element found in internal node. \" #\n \"internal.data.count=\" # debug_show (internalNode.data.count) # \", elementIndex=\" # debug_show (elementIndex)\n )\n }\n };\n\n let previousCursor = {\n node = #internal(internalNode);\n elementIndex = elementIndex - 1 : Nat\n };\n // if not the first element, push the previous element index of the internal node onto the stack\n if (elementIndex - 1 : Nat > firstIndex) {\n Stack.push(nodeCursorStack, previousCursor)\n };\n // traverse the previous child's max subtree and push the resulting node cursors onto the stack\n // then return the current element of the internal node\n traverseMaxSubtreeIter(nodeCursorStack, previousCursor);\n ?currentElement\n }\n }\n }\n }\n }\n }\n };\n\n func initializeForwardNodeCursorStack(internal : Internal) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n elementIndex = 0\n };\n\n // push the initial cursor to the stack\n Stack.push(nodeCursorStack, nodeCursor);\n // then traverse left\n traverseMinSubtreeIter(nodeCursorStack, nodeCursor);\n nodeCursorStack\n };\n\n func initializeForwardNodeCursorStackFrom(internal : Internal, compare : (T, T) -> Order.Order, element : T) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n elementIndex = 0\n };\n\n traverseMinSubtreeIterFrom(nodeCursorStack, nodeCursor, compare, element);\n nodeCursorStack\n };\n\n func initializeReverseNodeCursorStack(internal : Internal) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n elementIndex = internal.data.count\n };\n\n // push the initial cursor to the stack\n Stack.push(nodeCursorStack, nodeCursor);\n // then traverse left\n traverseMaxSubtreeIter(nodeCursorStack, nodeCursor);\n nodeCursorStack\n };\n\n func initializeReverseNodeCursorStackFrom(internal : Internal, compare : (T, T) -> Order.Order, element : T) : Stack.Stack> {\n let nodeCursorStack = Stack.empty>();\n let nodeCursor : NodeCursor = {\n node = #internal(internal);\n elementIndex = internal.data.count\n };\n\n traverseMaxSubtreeIterFrom(nodeCursorStack, nodeCursor, compare, element);\n nodeCursorStack\n };\n\n // traverse the min subtree of the current node cursor, passing each new element to the node cursor stack\n func traverseMinSubtreeIter(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor) {\n var currentNode = nodeCursor.node;\n var childIndex = nodeCursor.elementIndex;\n\n label l loop {\n switch (currentNode) {\n // If currentNode is leaf, have hit the minimum element of the subtree and already pushed it's cursor to the stack\n // so can return\n case (#leaf(_)) {\n return\n };\n // If currentNode is internal, add it's left most child to the stack and continue traversing\n case (#internal(internalNode)) {\n switch (internalNode.children[childIndex]) {\n // Push the next min (left most) child node to the stack\n case (?childNode) {\n childIndex := 0;\n currentNode := childNode;\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n elementIndex = childIndex\n }\n )\n };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.traverseMinSubtreeIter(), null child node error\")\n }\n }\n }\n }\n }\n };\n\n func traverseMinSubtreeIterFrom(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor, compare : (T, T) -> Order.Order, element : T) {\n var currentNode = nodeCursor.node;\n\n label l loop {\n let (node, childrenOption) = switch (currentNode) {\n case (#leaf(leafNode)) (leafNode, null);\n case (#internal(internalNode)) (internalNode, ?internalNode.children)\n };\n let (i, isFound) = switch (NodeUtil.getElementIndex(node.data, compare, element)) {\n case (#elementFound(i)) (i, true);\n case (#notFound(i)) (i, false)\n };\n if (i < node.data.count) {\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n elementIndex = i // greater elements to traverse\n }\n )\n };\n if isFound return;\n let ?children = childrenOption else return;\n let ?childNode = children[i] else Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.traverseMinSubtreeIterFrom(), null child node error\");\n currentNode := childNode\n }\n };\n\n // traverse the max subtree of the current node cursor, passing each new element to the node cursor stack\n func traverseMaxSubtreeIter(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor) {\n var currentNode = nodeCursor.node;\n var childIndex = nodeCursor.elementIndex;\n\n label l loop {\n switch (currentNode) {\n // If currentNode is leaf, have hit the maximum element of the subtree and already pushed it's cursor to the stack\n // so can return\n case (#leaf(_)) {\n return\n };\n // If currentNode is internal, add it's right most child to the stack and continue traversing\n case (#internal(internalNode)) {\n assert (childIndex <= internalNode.data.count); // children are one more than data elements\n switch (internalNode.children[childIndex]) {\n // Push the next max (right most) child node to the stack\n case (?childNode) {\n childIndex := switch (childNode) {\n case (#internal(internalNode)) internalNode.data.count;\n case (#leaf(leafNode)) leafNode.data.count\n };\n currentNode := childNode;\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n elementIndex = childIndex\n }\n )\n };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.traverseMaxSubtreeIter(), null child node error\")\n }\n }\n }\n }\n }\n };\n\n func traverseMaxSubtreeIterFrom(nodeCursorStack : Stack.Stack>, nodeCursor : NodeCursor, compare : (T, T) -> Order.Order, element : T) {\n var currentNode = nodeCursor.node;\n\n label l loop {\n let (node, childrenOption) = switch (currentNode) {\n case (#leaf(leafNode)) (leafNode, null);\n case (#internal(internalNode)) (internalNode, ?internalNode.children)\n };\n let (i, isFound) = switch (NodeUtil.getElementIndex(node.data, compare, element)) {\n case (#elementFound(i)) (i + 1, true); // +1 to include this element\n case (#notFound(i)) (i, false) // i is the index of the first element less than the search element, or 0 if all elements are greater than the search element\n };\n if (i > 0) {\n Stack.push(\n nodeCursorStack,\n {\n node = currentNode;\n elementIndex = i\n }\n )\n };\n if isFound return;\n let ?children = childrenOption else return;\n let ?childNode = children[i] else Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.traverseMaxSubtreeIterFrom(), null child node error\");\n currentNode := childNode\n }\n };\n\n // This type is used to signal to the parent calling context what happened in the level below\n type IntermediateInternalDeleteResult = {\n // element was deleted\n #deleted;\n // element was absent\n #inexistent;\n // deleted an element, but was unable to successfully borrow and rebalance at the previous level without merging children\n // the internalChild is the merged child that needs to be rebalanced at the next level up in the BTree\n #mergeChild : {\n internalChild : Internal\n }\n };\n\n func internalDeleteHelper(internalNode : Internal, order : Nat, compare : (T, T) -> Order.Order, deleteElement : T, skipNode : Bool) : IntermediateInternalDeleteResult {\n let minElements = NodeUtil.minElementsFromOrder(order);\n let elementIndex = NodeUtil.getElementIndex(internalNode.data, compare, deleteElement);\n\n // match on both the result of the node binary search, and if this node level should be skipped even if the element is found (internal element replacement case)\n switch (elementIndex, skipNode) {\n // if element is found in the internal node\n case (#elementFound(deleteIndex), false) {\n if (Option.isNull(internalNode.data.elements[deleteIndex])) {\n Runtime.trap(\"Bug in Set.internalDeleteHelper\")\n };\n // TODO: (optimization) replace with deletion in one step without having to retrieve the max element first\n let replaceElement = NodeUtil.getMaxElement(internalNode.children[deleteIndex]);\n internalNode.data.elements[deleteIndex] := ?replaceElement;\n switch (internalDeleteHelper(internalNode, order, compare, replaceElement, true)) {\n case (#deleted) { #deleted };\n case (#inexistent) { #inexistent };\n case (#mergeChild({ internalChild })) {\n #mergeChild({ internalChild })\n }\n }\n };\n // if element is not found in the internal node OR the element is found, but skipping this node (because deleting the in order precessor i.e. replacement element)\n // in both cases need to descend and traverse to find the element to delete\n case ((#elementFound(_), true) or (#notFound(_), _)) {\n let childIndex = switch (elementIndex) {\n case (#elementFound(replacedSkipElementIndex)) {\n replacedSkipElementIndex\n };\n case (#notFound(childIndex)) { childIndex }\n };\n let child = switch (internalNode.children[childIndex]) {\n case (?c) { c };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.internalDeleteHelper, child index of #elementFound or #notfound is null\")\n }\n };\n switch (child) {\n // if child is internal\n case (#internal(internalChild)) {\n switch (internalDeleteHelper(internalChild, order, compare, deleteElement, false), childIndex == 0) {\n // if element was successfully deleted and no additional tree re-balancing is needed, return #deleted\n case (#deleted, _) { #deleted };\n case (#inexistent, _) { #inexistent };\n // if internalChild needs rebalancing and pulling child is left most\n case (#mergeChild({ internalChild }), true) {\n // try to pull left-most element and child from right sibling\n switch (NodeUtil.borrowFromInternalSibling(internalNode.children, childIndex + 1, #successor)) {\n // if can pull up sibling element and child\n case (#borrowed({ deletedSiblingElement; child })) {\n NodeUtil.rotateBorrowedElementsAndChildFromSibling(\n internalNode,\n childIndex,\n deletedSiblingElement,\n child,\n internalChild,\n #right\n );\n #deleted\n };\n // unable to pull from sibling, need to merge with right sibling and push down parent\n case (#notEnoughElements(sibling)) {\n // get the parent element that will be pushed down the the child\n let elementsToBePushedToChild = ?BTreeHelper.deleteAndShift(internalNode.data.elements, 0);\n internalNode.data.count -= 1;\n // merge the children and push down the parent\n let newChild = NodeUtil.mergeChildrenAndPushDownParent(internalChild, elementsToBePushedToChild, sibling);\n // update children of the parent\n internalNode.children[0] := ?#internal(newChild);\n ignore ?BTreeHelper.deleteAndShift(internalNode.children, 1);\n\n if (internalNode.data.count < minElements) {\n #mergeChild({ internalChild = internalNode })\n } else {\n #deleted\n }\n }\n }\n };\n // if internalChild needs rebalancing and pulling child is > 0, so a left sibling exists\n case (#mergeChild({ internalChild }), false) {\n // try to pull right-most element and its child directly from left sibling\n switch (NodeUtil.borrowFromInternalSibling(internalNode.children, childIndex - 1 : Nat, #predecessor)) {\n case (#borrowed({ deletedSiblingElement; child })) {\n NodeUtil.rotateBorrowedElementsAndChildFromSibling(\n internalNode,\n childIndex - 1 : Nat,\n deletedSiblingElement,\n child,\n internalChild,\n #left\n );\n #deleted\n };\n // unable to pull from left sibling\n case (#notEnoughElements(leftSibling)) {\n // if child is not last index, try to pull from the right child\n if (childIndex < internalNode.data.count) {\n switch (NodeUtil.borrowFromInternalSibling(internalNode.children, childIndex, #successor)) {\n // if can pull up sibling element and child\n case (#borrowed({ deletedSiblingElement; child })) {\n NodeUtil.rotateBorrowedElementsAndChildFromSibling(\n internalNode,\n childIndex,\n deletedSiblingElement,\n child,\n internalChild,\n #right\n );\n return #deleted\n };\n // if cannot borrow, from left or right, merge (see below)\n case _ {}\n }\n };\n\n // get the parent element that will be pushed down the the child\n let elementToBePushedToChild = ?BTreeHelper.deleteAndShift(internalNode.data.elements, childIndex - 1 : Nat);\n internalNode.data.count -= 1;\n // merge it the children and push down the parent\n let newChild = NodeUtil.mergeChildrenAndPushDownParent(leftSibling, elementToBePushedToChild, internalChild);\n\n // update children of the parent\n internalNode.children[childIndex - 1] := ?#internal(newChild);\n ignore ?BTreeHelper.deleteAndShift(internalNode.children, childIndex);\n\n if (internalNode.data.count < minElements) {\n #mergeChild({ internalChild = internalNode })\n } else {\n #deleted\n }\n }\n }\n }\n }\n };\n // if child is leaf\n case (#leaf(leafChild)) {\n switch (leafDeleteHelper(leafChild, order, compare, deleteElement), childIndex == 0) {\n case (#deleted, _) { #deleted };\n case (#inexistent, _) { #inexistent };\n // if delete child is left most, try to borrow from right child\n case (#mergeLeafData({ leafDeleteIndex }), true) {\n switch (NodeUtil.borrowFromRightLeafChild(internalNode.children, childIndex)) {\n case (?borrowedElement) {\n let elementToBePushedToChild = internalNode.data.elements[childIndex];\n internalNode.data.elements[childIndex] := ?borrowedElement;\n\n ignore BTreeHelper.insertAtPostionAndDeleteAtPosition(leafChild.data.elements, elementToBePushedToChild, leafChild.data.count - 1, leafDeleteIndex);\n #deleted\n };\n\n case null {\n // can't borrow from right child, delete from leaf and merge with right child and parent element, then push down into new leaf\n let rightChild = switch (internalNode.children[childIndex + 1]) {\n case (?#leaf(rc)) { rc };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.internalDeleteHelper, if trying to borrow from right leaf child is null, rightChild index cannot be null or internal\")\n }\n };\n let mergedLeaf = mergeParentWithLeftRightChildLeafNodesAndDelete(\n internalNode.data.elements[childIndex],\n leafChild,\n rightChild,\n leafDeleteIndex,\n #left\n );\n // delete the left most internal node element, since was merging from a deletion in left most child (0) and the parent element was pushed into the mergedLeaf\n ignore BTreeHelper.deleteAndShift(internalNode.data.elements, 0);\n // update internal node children\n BTreeHelper.replaceTwoWithElementAndShift>(internalNode.children, #leaf(mergedLeaf), 0);\n internalNode.data.count -= 1;\n\n if (internalNode.data.count < minElements) {\n #mergeChild({\n internalChild = internalNode\n })\n } else {\n #deleted\n }\n\n }\n }\n };\n // if delete child is middle or right most, try to borrow from left child\n case (#mergeLeafData({ leafDeleteIndex }), false) {\n // if delete child is right most, try to borrow from left child\n switch (NodeUtil.borrowFromLeftLeafChild(internalNode.children, childIndex)) {\n case (?borrowedElement) {\n let elementToBePushedToChild = internalNode.data.elements[childIndex - 1];\n internalNode.data.elements[childIndex - 1] := ?borrowedElement;\n ignore BTreeHelper.insertAtPostionAndDeleteAtPosition(leafChild.data.elements, elementToBePushedToChild, 0, leafDeleteIndex);\n #deleted\n };\n case null {\n // if delete child is in the middle, try to borrow from right child\n if (childIndex < internalNode.data.count) {\n // try to borrow from right\n switch (NodeUtil.borrowFromRightLeafChild(internalNode.children, childIndex)) {\n case (?borrowedElement) {\n let elementToBePushedToChild = internalNode.data.elements[childIndex];\n internalNode.data.elements[childIndex] := ?borrowedElement;\n // insert the successor at the very last element\n ignore BTreeHelper.insertAtPostionAndDeleteAtPosition(leafChild.data.elements, elementToBePushedToChild, leafChild.data.count - 1, leafDeleteIndex);\n return #deleted\n };\n // if cannot borrow, from left or right, merge (see below)\n case _ {}\n }\n };\n\n // can't borrow from left child, delete from leaf and merge with left child and parent element, then push down into new leaf\n let leftChild = switch (internalNode.children[childIndex - 1]) {\n case (?#leaf(lc)) { lc };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.internalDeleteHelper, if trying to borrow from left leaf child is null, then left child index must not be null or internal\")\n }\n };\n let mergedLeaf = mergeParentWithLeftRightChildLeafNodesAndDelete(\n internalNode.data.elements[childIndex - 1],\n leftChild,\n leafChild,\n leafDeleteIndex,\n #right\n );\n // delete the right most internal node element, since was merging from a deletion in the right most child and the parent element was pushed into the mergedLeaf\n ignore BTreeHelper.deleteAndShift(internalNode.data.elements, childIndex - 1);\n // update internal node children\n BTreeHelper.replaceTwoWithElementAndShift>(internalNode.children, #leaf(mergedLeaf), childIndex - 1);\n internalNode.data.count -= 1;\n\n if (internalNode.data.count < minElements) {\n #mergeChild({\n internalChild = internalNode\n })\n } else {\n #deleted\n }\n }\n }\n }\n }\n }\n }\n }\n }\n };\n\n // This type is used to signal to the parent calling context what happened in the level below\n type IntermediateLeafDeleteResult = {\n // element was deleted\n #deleted;\n // element was absent\n #inexistent;\n // leaf had the minimum number of elements when deleting, so returns the leaf node's data and the index of the element that will be deleted\n #mergeLeafData : {\n data : Data;\n leafDeleteIndex : Nat\n }\n };\n\n func leafDeleteHelper(leafNode : Leaf, order : Nat, compare : (T, T) -> Order.Order, deleteElement : T) : IntermediateLeafDeleteResult {\n let minElements = NodeUtil.minElementsFromOrder(order);\n\n switch (NodeUtil.getElementIndex(leafNode.data, compare, deleteElement)) {\n case (#elementFound(deleteIndex)) {\n if (leafNode.data.count > minElements) {\n leafNode.data.count -= 1;\n ignore BTreeHelper.deleteAndShift(leafNode.data.elements, deleteIndex);\n #deleted\n } else {\n #mergeLeafData({\n data = leafNode.data;\n leafDeleteIndex = deleteIndex\n })\n }\n };\n case (#notFound(_)) {\n #inexistent\n }\n }\n };\n\n func containsInInternal(internalNode : Internal, compare : (T, T) -> Order.Order, element : T) : Bool {\n switch (NodeUtil.getElementIndex(internalNode.data, compare, element)) {\n case (#elementFound _index) {\n true\n };\n case (#notFound(index)) {\n switch (internalNode.children[index]) {\n // expects the child to be there, otherwise there's a bug in binary search or the tree is invalid\n case null { Runtime.trap(\"Internal bug: Set.containsInInternal\") };\n case (?#leaf(leafNode)) { containsInLeaf(leafNode, compare, element) };\n case (?#internal(internalNode)) {\n containsInInternal(internalNode, compare, element)\n }\n }\n }\n }\n };\n\n func containsInLeaf(leafNode : Leaf, compare : (T, T) -> Order.Order, element : T) : Bool {\n switch (NodeUtil.getElementIndex(leafNode.data, compare, element)) {\n case (#elementFound(_index)) {\n true\n };\n case _ false\n }\n };\n\n type DeletionSide = { #left; #right };\n\n func mergeParentWithLeftRightChildLeafNodesAndDelete(\n parentElement : ?T,\n leftChild : Leaf,\n rightChild : Leaf,\n deleteIndex : Nat,\n deletionSide : DeletionSide\n ) : Leaf {\n let count = leftChild.data.count * 2;\n let (elements, _) = BTreeHelper.mergeParentWithChildrenAndDelete(\n parentElement,\n leftChild.data.count,\n leftChild.data.elements,\n rightChild.data.elements,\n deleteIndex,\n deletionSide\n );\n ({\n data = {\n elements;\n var count = count\n }\n })\n };\n\n // This type is used to signal to the parent calling context what happened in the level below\n type IntermediateInsertResult = {\n // element was inserted\n #inserted;\n // element was alreay present\n #existent;\n // child was full when inserting, so returns the promoted element and the split left and right child\n #promote : {\n element : T;\n leftChild : Node;\n rightChild : Node\n }\n };\n\n // Helper for inserting into a leaf node\n func leafInsertHelper(leafNode : Leaf, order : Nat, compare : (T, T) -> Order.Order, insertedElement : T) : (IntermediateInsertResult) {\n // Perform binary search to see if the element exists in the node\n switch (NodeUtil.getElementIndex(leafNode.data, compare, insertedElement)) {\n case (#elementFound(insertIndex)) {\n let previous = leafNode.data.elements[insertIndex];\n leafNode.data.elements[insertIndex] := ?insertedElement;\n switch (previous) {\n case (?_) { #existent };\n case null { Runtime.trap(\"Bug in Set.leafInsertHelper\") }; // the binary search already found an element, so this case should never happen\n }\n };\n case (#notFound(insertIndex)) {\n // Note: BTree will always have an order >= 4, so this will never have negative Nat overflow\n let maxElements : Nat = order - 1;\n // If the leaf is full, insert, split the node, and promote the middle element\n if (leafNode.data.count >= maxElements) {\n let (leftElements, promotedParentElement, rightElements) = BTreeHelper.insertOneAtIndexAndSplitArray(\n leafNode.data.elements,\n insertedElement,\n insertIndex\n );\n\n let leftCount = order / 2;\n let rightCount : Nat = if (order % 2 == 0) { leftCount - 1 } else {\n leftCount\n };\n\n (\n #promote({\n element = promotedParentElement;\n leftChild = createLeaf(leftElements, leftCount);\n rightChild = createLeaf(rightElements, rightCount)\n })\n )\n }\n // Otherwise, insert at the specified index (shifting elements over if necessary)\n else {\n NodeUtil.insertAtIndexOfNonFullNodeData(leafNode.data, ?insertedElement, insertIndex);\n #inserted\n }\n }\n }\n };\n\n // Helper for inserting into an internal node\n func internalInsertHelper(internalNode : Internal, order : Nat, compare : (T, T) -> Order.Order, insertElement : T) : IntermediateInsertResult {\n switch (NodeUtil.getElementIndex(internalNode.data, compare, insertElement)) {\n case (#elementFound(insertIndex)) {\n let previous = internalNode.data.elements[insertIndex];\n internalNode.data.elements[insertIndex] := ?insertElement;\n switch (previous) {\n case (?_) { #existent };\n case null {\n Runtime.trap(\"Bug in Set.internalInsertHelper, element found\")\n }; // the binary search already found an element, so this case should never happen\n }\n };\n case (#notFound(insertIndex)) {\n let insertResult = switch (internalNode.children[insertIndex]) {\n case null {\n Runtime.trap(\"Bug in Set.internalInsertHelper, not found\")\n };\n case (?#leaf(leafNode)) {\n leafInsertHelper(leafNode, order, compare, insertElement)\n };\n case (?#internal(internalChildNode)) {\n internalInsertHelper(internalChildNode, order, compare, insertElement)\n }\n };\n\n switch (insertResult) {\n case (#inserted) #inserted;\n case (#existent) #existent;\n case (#promote({ element = promotedElement; leftChild; rightChild })) {\n // Note: BTree will always have an order >= 4, so this will never have negative Nat overflow\n let maxElements : Nat = order - 1;\n // if current internal node is full, need to split the internal node\n if (internalNode.data.count >= maxElements) {\n // insert and split internal elements, determine new promotion target element\n let (leftElements, promotedParentElement, rightElements) = BTreeHelper.insertOneAtIndexAndSplitArray(\n internalNode.data.elements,\n promotedElement,\n insertIndex\n );\n\n // calculate the element count in the left elements and the element count in the right elements\n let leftCount = order / 2;\n let rightCount : Nat = if (order % 2 == 0) { leftCount - 1 } else {\n leftCount\n };\n\n // split internal children\n let (leftChildren, rightChildren) = NodeUtil.splitChildrenInTwoWithRebalances(\n internalNode.children,\n insertIndex,\n leftChild,\n rightChild\n );\n\n // send the element to be promoted, as well as the internal children left and right split\n #promote({\n element = promotedParentElement;\n leftChild = #internal({\n data = { elements = leftElements; var count = leftCount };\n children = leftChildren\n });\n rightChild = #internal({\n data = { elements = rightElements; var count = rightCount };\n children = rightChildren\n })\n })\n } else {\n // insert the new elements into the internal node\n NodeUtil.insertAtIndexOfNonFullNodeData(internalNode.data, ?promotedElement, insertIndex);\n // split and re-insert the single child that needs rebalancing\n NodeUtil.insertRebalancedChild(internalNode.children, insertIndex, leftChild, rightChild);\n #inserted\n }\n }\n }\n }\n }\n };\n\n func createLeaf(elements : [var ?T], count : Nat) : Node {\n #leaf({\n data = {\n elements;\n var count\n }\n })\n };\n\n // FIXME\n // Additional functionality compared to original source.\n\n func cloneData(data : Data) : Data {\n {\n elements = VarArray.clone(data.elements);\n var count = data.count\n }\n };\n\n func cloneNode(node : Node) : Node {\n switch node {\n case (#leaf { data }) {\n #leaf { data = cloneData(data) }\n };\n case (#internal { data; children }) {\n let clonedData = cloneData(data);\n let clonedChildren = VarArray.map, ?Node>(\n children,\n func child {\n switch child {\n case null null;\n case (?childNode) ?cloneNode(childNode)\n }\n }\n );\n #internal({\n data = clonedData;\n children = clonedChildren\n })\n }\n }\n };\n\n module BinarySearch {\n public type SearchResult = {\n #elementFound : Nat;\n #notFound : Nat\n };\n\n /// Searches an array for a specific element, returning the index it occurs at if #elementFound, or the child/insert index it may occur at\n /// if #notFound. This is used when determining if a element exists in an internal or leaf node, where an element should be inserted in a\n /// leaf node, or which child of an internal node a element could be in.\n ///\n /// Note: This function expects a mutable, nullable, array of elements in sorted order, where all nulls appear at the end of the array.\n /// This function may trap if a null element appears before any elements. It also expects a maxIndex, which is the right-most index (bound)\n /// from which to begin the binary search (the left most bound is expected to be 0)\n ///\n /// Parameters:\n ///\n /// * array - the sorted array that the binary search is performed upon\n /// * compare - the comparator used to perform the search\n /// * searchElement - the element being compared against in the search\n /// * maxIndex - the right-most index (bound) from which to begin the search\n public func binarySearchNode(array : [var ?T], compare : (T, T) -> Order.Order, searchElement : T, maxIndex : Nat) : SearchResult {\n // TODO: get rid of this check?\n // Trap if array is size 0 (should not happen)\n if (array.size() == 0) {\n assert false\n };\n\n // if all elements in the array are null (i.e. first element is null), return #notFound(0)\n if (maxIndex == 0) {\n return #notFound(0)\n };\n\n // Initialize search from first to last index\n var left : Nat = 0;\n var right = maxIndex; // maxIndex does not necessarily mean array.size() - 1\n // Search the array\n while (left < right) {\n let middle = (left + right) / 2;\n switch (array[middle]) {\n case null { assert false };\n case (?element) {\n switch (compare(searchElement, element)) {\n // If the element is present at the middle itself\n case (#equal) { return #elementFound(middle) };\n // If element is greater than mid, it can only be present in left subarray\n case (#greater) { left := middle + 1 };\n // If element is smaller than mid, it can only be present in right subarray\n case (#less) {\n right := if (middle == 0) { 0 } else { middle - 1 }\n }\n }\n }\n }\n };\n\n if (left == array.size()) {\n return #notFound(left)\n };\n\n // left == right\n switch (array[left]) {\n // inserting at end of array\n case null { #notFound(left) };\n case (?element) {\n switch (compare(searchElement, element)) {\n // if left is the searched element\n case (#equal) { #elementFound(left) };\n // if the element is not found, return notFound and the insert location\n case (#greater) { #notFound(left + 1) };\n case (#less) { #notFound(left) }\n }\n }\n }\n }\n };\n\n module NodeUtil {\n /// Inserts element at the given index into a non-full leaf node\n public func insertAtIndexOfNonFullNodeData(data : Data, element : ?T, insertIndex : Nat) {\n let currentLastElementIndex : Nat = if (data.count == 0) { 0 } else {\n data.count - 1\n };\n BTreeHelper.insertAtPosition(data.elements, element, insertIndex, currentLastElementIndex);\n\n // increment the count of data in this node since just inserted an element\n data.count += 1\n };\n\n /// Inserts two rebalanced (split) child halves into a non-full array of children.\n public func insertRebalancedChild(children : [var ?Node], rebalancedChildIndex : Nat, leftChildInsert : Node, rightChildInsert : Node) {\n // Note: BTree will always have an order >= 4, so this will never have negative Nat overflow\n var j : Nat = children.size() - 2;\n\n // This is just a sanity check to ensure the children aren't already full (should split promote otherwise)\n // TODO: Remove this check once confident\n if (Option.isSome(children[j + 1])) { assert false };\n\n // Iterate backwards over the array and shift each element over to the right by one until the rebalancedChildIndex is hit\n while (j > rebalancedChildIndex) {\n children[j + 1] := children[j];\n j -= 1\n };\n\n // Insert both the left and right rebalanced children (replacing the pre-split child)\n children[j] := ?leftChildInsert;\n children[j + 1] := ?rightChildInsert\n };\n\n /// Used when splitting the children of an internal node\n ///\n /// Takes in the rebalanced child index, as well as both halves of the rebalanced child and splits the children, inserting the left and right child halves appropriately\n ///\n /// For more context, see the documentation for the splitArrayAndInsertTwo method in ArrayUtils.mo\n public func splitChildrenInTwoWithRebalances(\n children : [var ?Node],\n rebalancedChildIndex : Nat,\n leftChildInsert : Node,\n rightChildInsert : Node\n ) : ([var ?Node], [var ?Node]) {\n BTreeHelper.splitArrayAndInsertTwo>(children, rebalancedChildIndex, leftChildInsert, rightChildInsert)\n };\n\n /// Helper used to get the element index of of a element within a node\n ///\n /// for more, see the BinarySearch.binarySearchNode() documentation\n public func getElementIndex(data : Data, compare : (T, T) -> Order.Order, element : T) : BinarySearch.SearchResult {\n BinarySearch.binarySearchNode(data.elements, compare, element, data.count)\n };\n\n // calculates a BTree Node's minimum allowed elements given the order of the BTree\n public func minElementsFromOrder(order : Nat) : Nat {\n if (order % 2 == 0) { order / 2 - 1 } else { order / 2 }\n };\n\n // Given a node, get the maximum element (right most leaf element)\n public func getMaxElement(node : ?Node) : T {\n switch (node) {\n case (?#leaf({ data })) {\n switch (data.elements[data.count - 1]) {\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.NodeUtil.getMaxElement, data cannot have more elements than it's count\")\n };\n case (?element) { element }\n }\n };\n case (?#internal({ data; children })) {\n getMaxElement(children[data.count])\n };\n case null {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.NodeUtil.getMaxElement, the node provided cannot be null\")\n }\n }\n };\n\n type InorderBorrowType = {\n #predecessor;\n #successor\n };\n\n // attempts to retrieve the in max element of the child leaf node directly to the left if the node will allow it\n // returns the deleted max element if able to retrieve, null if not able\n //\n // mutates the predecessing node's elements\n public func borrowFromLeftLeafChild(children : [var ?Node], ofChildIndex : Nat) : ?T {\n let predecessorIndex : Nat = ofChildIndex - 1;\n borrowFromLeafChild(children, predecessorIndex, #predecessor)\n };\n\n // attempts to retrieve the in max element of the child leaf node directly to the right if the node will allow it\n // returns the deleted max element if able to retrieve, null if not able\n //\n // mutates the predecessing node's elements\n public func borrowFromRightLeafChild(children : [var ?Node], ofChildIndex : Nat) : ?T {\n borrowFromLeafChild(children, ofChildIndex + 1, #successor)\n };\n\n func borrowFromLeafChild(children : [var ?Node], borrowChildIndex : Nat, childSide : InorderBorrowType) : ?T {\n let minElements = minElementsFromOrder(children.size());\n\n switch (children[borrowChildIndex]) {\n case (?#leaf({ data })) {\n if (data.count > minElements) {\n // able to borrow an element from this child, so decrement the count of elements\n data.count -= 1; // Since enforce order >= 4, there will always be at least 1 element per node\n switch (childSide) {\n case (#predecessor) {\n let deletedElement = data.elements[data.count];\n data.elements[data.count] := null;\n deletedElement\n };\n case (#successor) {\n ?BTreeHelper.deleteAndShift(data.elements, 0)\n }\n }\n } else { null }\n };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.NodeUtil.borrowFromLeafChild, the node at the borrow child index cannot be null or internal\")\n }\n }\n };\n\n type InternalBorrowResult = {\n #borrowed : InternalBorrow;\n #notEnoughElements : Internal\n };\n\n type InternalBorrow = {\n deletedSiblingElement : ?T;\n child : ?Node\n };\n\n // Attempts to borrow an element and child from an internal sibling node\n public func borrowFromInternalSibling(children : [var ?Node], borrowChildIndex : Nat, borrowType : InorderBorrowType) : InternalBorrowResult {\n let minElements = minElementsFromOrder(children.size());\n\n switch (children[borrowChildIndex]) {\n case (?#internal({ data; children })) {\n if (data.count > minElements) {\n data.count -= 1;\n switch (borrowType) {\n case (#predecessor) {\n let deletedSiblingElement = data.elements[data.count];\n data.elements[data.count] := null;\n let child = children[data.count + 1];\n children[data.count + 1] := null;\n #borrowed({\n deletedSiblingElement;\n child\n })\n };\n case (#successor) {\n #borrowed({\n deletedSiblingElement = ?BTreeHelper.deleteAndShift(data.elements, 0);\n child = ?BTreeHelper.deleteAndShift(children, 0)\n })\n }\n }\n } else { #notEnoughElements({ data; children }) }\n };\n case _ {\n Runtime.trap(\"UNREACHABLE_ERROR: file a bug report! In Set.NodeUtil.borrowFromInternalSibling from internal sibling, the child at the borrow index cannot be null or a leaf\")\n }\n }\n };\n\n type SiblingSide = { #left; #right };\n\n // Rotates the borrowed elements and child from sibling side of the internal node to the internal child recipient\n public func rotateBorrowedElementsAndChildFromSibling(\n internalNode : Internal,\n parentRotateIndex : Nat,\n borrowedSiblingElement : ?T,\n borrowedSiblingChild : ?Node,\n internalChildRecipient : Internal,\n siblingSide : SiblingSide\n ) {\n // if borrowing from the left, the rotated element and child will always be inserted first\n // if borrowing from the right, the rotated element and child will always be inserted last\n let (elementIndex, childIndex) = switch (siblingSide) {\n case (#left) { (0, 0) };\n case (#right) {\n (internalChildRecipient.data.count, internalChildRecipient.data.count + 1)\n }\n };\n\n // get the parent element that will be pushed down the the child\n let elementToBePushedToChild = internalNode.data.elements[parentRotateIndex];\n // replace the parent with the sibling element\n internalNode.data.elements[parentRotateIndex] := borrowedSiblingElement;\n // push the element and child down into the internalChild\n insertAtIndexOfNonFullNodeData(internalChildRecipient.data, elementToBePushedToChild, elementIndex);\n\n BTreeHelper.insertAtPosition>(internalChildRecipient.children, borrowedSiblingChild, childIndex, internalChildRecipient.data.count)\n };\n\n // Merges the elements and children of two internal nodes, pushing the parent element in between the right and left halves\n public func mergeChildrenAndPushDownParent(leftChild : Internal, parentElement : ?T, rightChild : Internal) : Internal {\n {\n data = mergeData(leftChild.data, parentElement, rightChild.data);\n children = mergeChildren(leftChild.children, rightChild.children)\n }\n };\n\n func mergeData(leftData : Data, parentElement : ?T, rightData : Data) : Data {\n assert leftData.count <= minElementsFromOrder(leftData.elements.size() + 1);\n assert rightData.count <= minElementsFromOrder(rightData.elements.size() + 1);\n\n let mergedElements = VarArray.repeat(null, leftData.elements.size());\n var i = 0;\n while (i < leftData.count) {\n mergedElements[i] := leftData.elements[i];\n i += 1\n };\n\n mergedElements[i] := parentElement;\n i += 1;\n\n var j = 0;\n while (j < rightData.count) {\n mergedElements[i] := rightData.elements[j];\n i += 1;\n j += 1\n };\n\n {\n elements = mergedElements;\n var count = leftData.count + 1 + rightData.count\n }\n };\n\n func mergeChildren(leftChildren : [var ?Node], rightChildren : [var ?Node]) : [var ?Node] {\n let mergedChildren = VarArray.repeat>(null, leftChildren.size());\n var i = 0;\n\n while (Option.isSome(leftChildren[i])) {\n mergedChildren[i] := leftChildren[i];\n i += 1\n };\n\n var j = 0;\n while (Option.isSome(rightChildren[j])) {\n mergedChildren[i] := rightChildren[j];\n i += 1;\n j += 1\n };\n\n mergedChildren\n }\n }\n}\n"},"Region.mo":{"content":"/// Byte-level access to isolated, virtual stable memory regions.\n///\n/// This is a moderately lightweight abstraction over IC _stable memory_ and supports persisting\n/// regions of binary data across Motoko upgrades.\n/// Use of this module is fully compatible with Motoko's use of\n/// _stable variables_, whose persistence mechanism also uses (real) IC stable memory internally, but does not interfere with this API.\n/// It is also fully compatible with existing uses of the `ExperimentalStableMemory` library, which has a similar interface, but,\n/// only supported a single memory region, without isolation between different applications.\n///\n/// The `Region` type is stable and can be used in stable data structures.\n///\n/// A new, empty `Region` is allocated using function `new()`.\n///\n/// Regions are stateful objects and can be distinguished by the numeric identifier returned by function `id(region)`.\n/// Every region owns an initially empty, but growable sequence of virtual IC stable memory pages.\n/// The current size, in pages, of a region is returned by function `size(region)`.\n/// The size of a region determines the range, [ 0, ..., size(region)*2^16 ), of valid byte-offsets into the region; these offsets are used as the source and destination of `load`/`store` operations on the region.\n///\n/// Memory is allocated to a region, using function `grow(region, pages)`, sequentially and on demand, in units of 64KiB logical pages, starting with 0 allocated pages.\n/// A call to `grow` may succeed, returning the previous size of the region, or fail, returning a sentinel value. New pages are zero initialized.\n///\n/// A size of a region can only grow and never shrink.\n/// In addition, the stable memory pages allocated to a region will *not* be reclaimed by garbage collection, even\n/// if the region object itself becomes unreachable.\n///\n/// Growth is capped by a soft limit on physical page count controlled by compile-time flag\n/// `--max-stable-pages ` (the default is 65536, or 4GiB).\n///\n/// Each `load` operation loads from region relative byte address `offset` in little-endian\n/// format using the natural bit-width of the type in question.\n/// The operation traps if attempting to read beyond the current region size.\n///\n/// Each `store` operation stores to region relative byte address `offset` in little-endian format using the natural bit-width of the type in question.\n/// The operation traps if attempting to write beyond the current region size.\n///\n/// Text values can be handled by using `Text.decodeUtf8` and `Text.encodeUtf8`, in conjunction with `loadBlob` and `storeBlob`.\n///\n/// The current region allocation and region contents are preserved across upgrades.\n///\n/// NB: The IC's actual stable memory size (`ic0.stable_size`) may exceed the\n/// total page size reported by summing all regions sizes.\n/// This (and the cap on growth) are to accommodate Motoko's stable variables and bookkeeping for regions.\n/// Applications that plan to use Motoko stable variables sparingly or not at all can\n/// increase `--max-stable-pages` as desired, approaching the IC maximum (initially 8GiB, then 32Gib, currently 64Gib).\n/// All applications should reserve at least one page for stable variable data, even when no stable variables are used.\n///\n/// Usage:\n/// ```motoko no-repl name=import\n/// import Region \"mo:core/Region\";\n/// ```\n\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// A stateful handle to an isolated region of IC stable memory.\n /// `Region` is a stable type and regions can be stored in stable variables.\n /// @deprecated M0235\n public type Region = Prim.Types.Region;\n\n /// Allocate a new, isolated Region of size 0.\n ///\n /// Example:\n ///\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// assert Region.size(region) == 0;\n /// }\n /// }\n /// ```\n public let new : () -> Region = Prim.regionNew;\n\n /// Return a Nat identifying the given region.\n /// May be used for equality, comparison and hashing.\n /// NB: Regions returned by `new()` are numbered from 16\n /// (regions 0..15 are currently reserved for internal use).\n /// Allocate a new, isolated Region of size 0.\n ///\n /// Example:\n ///\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// assert Region.id(region) == 16;\n /// }\n /// }\n /// ```\n public let id : (self : Region) -> Nat = Prim.regionId;\n\n /// Current size of `region`, in pages.\n /// Each page is 64KiB (65536 bytes).\n /// Initially `0`.\n /// Preserved across upgrades, together with contents of allocated\n /// stable memory.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let beforeSize = Region.size(region);\n /// ignore Region.grow(region, 10);\n /// let afterSize = Region.size(region);\n /// assert afterSize - beforeSize == 10;\n /// }\n /// }\n /// ```\n public let size : (self : Region) -> (pages : Nat64) = Prim.regionSize;\n\n /// Grow current `size` of `region` by the given number of pages.\n /// Each page is 64KiB (65536 bytes).\n /// Returns the previous `size` when able to grow.\n /// Returns `0xFFFF_FFFF_FFFF_FFFF` if remaining pages insufficient.\n /// Every new page is zero-initialized, containing byte 0x00 at every offset.\n /// Function `grow` is capped by a soft limit on `size` controlled by compile-time flag\n /// `--max-stable-pages ` (the default is 65536, or 4GiB).\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// import Error \"mo:core/Error\";\n ///\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let beforeSize = Region.grow(region, 10);\n /// if (beforeSize == 0xFFFF_FFFF_FFFF_FFFF) {\n /// throw Error.reject(\"Out of memory\");\n /// };\n /// let afterSize = Region.size(region);\n /// assert afterSize - beforeSize == 10;\n /// }\n /// }\n /// ```\n public let grow : (self : Region, newPages : Nat64) -> (oldPages : Nat64) = Prim.regionGrow;\n\n /// Within `region`, load a `Nat8` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat8 = 123;\n /// Region.storeNat8(region, offset, value);\n /// assert Region.loadNat8(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadNat8 : (self : Region, offset : Nat64) -> Nat8 = Prim.regionLoadNat8;\n\n /// Within `region`, store a `Nat8` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat8 = 123;\n /// Region.storeNat8(region, offset, value);\n /// assert Region.loadNat8(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let storeNat8 : (self : Region, offset : Nat64, value : Nat8) -> () = Prim.regionStoreNat8;\n\n /// Within `region`, load a `Nat16` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat16 = 123;\n /// Region.storeNat16(region, offset, value);\n /// assert Region.loadNat16(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadNat16 : (self : Region, offset : Nat64) -> Nat16 = Prim.regionLoadNat16;\n\n /// Within `region`, store a `Nat16` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat16 = 123;\n /// Region.storeNat16(region, offset, value);\n /// assert Region.loadNat16(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let storeNat16 : (self : Region, offset : Nat64, value : Nat16) -> () = Prim.regionStoreNat16;\n\n /// Within `region`, load a `Nat32` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat32 = 123;\n /// Region.storeNat32(region, offset, value);\n /// assert Region.loadNat32(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadNat32 : (self : Region, offset : Nat64) -> Nat32 = Prim.regionLoadNat32;\n\n /// Within `region`, store a `Nat32` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat32 = 123;\n /// Region.storeNat32(region, offset, value);\n /// assert Region.loadNat32(region, offset) == 123;\n /// }\n /// }\n /// ```\n public func storeNat32(self : Region, offset : Nat64, value : Nat32) : () = Prim.regionStoreNat32(self, offset, value);\n\n /// Within `region`, load a `Nat64` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat64 = 123;\n /// Region.storeNat64(region, offset, value);\n /// assert Region.loadNat64(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadNat64 : (self : Region, offset : Nat64) -> Nat64 = Prim.regionLoadNat64;\n\n /// Within `region`, store a `Nat64` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Nat64 = 123;\n /// Region.storeNat64(region, offset, value);\n /// assert Region.loadNat64(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let storeNat64 : (self : Region, offset : Nat64, value : Nat64) -> () = Prim.regionStoreNat64;\n\n /// Within `region`, load a `Int8` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int8 = 123;\n /// Region.storeInt8(region, offset, value);\n /// assert Region.loadInt8(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadInt8 : (self : Region, offset : Nat64) -> Int8 = Prim.regionLoadInt8;\n\n /// Within `region`, store a `Int8` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int8 = 123;\n /// Region.storeInt8(region, offset, value);\n /// assert Region.loadInt8(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let storeInt8 : (self : Region, offset : Nat64, value : Int8) -> () = Prim.regionStoreInt8;\n\n /// Within `region`, load a `Int16` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int16 = 123;\n /// Region.storeInt16(region, offset, value);\n /// assert Region.loadInt16(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadInt16 : (self : Region, offset : Nat64) -> Int16 = Prim.regionLoadInt16;\n\n /// Within `region`, store a `Int16` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int16 = 123;\n /// Region.storeInt16(region, offset, value);\n /// assert Region.loadInt16(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let storeInt16 : (self : Region, offset : Nat64, value : Int16) -> () = Prim.regionStoreInt16;\n\n /// Within `region`, load a `Int32` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int32 = 123;\n /// Region.storeInt32(region, offset, value);\n /// assert Region.loadInt32(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadInt32 : (self : Region, offset : Nat64) -> Int32 = Prim.regionLoadInt32;\n\n /// Within `region`, store a `Int32` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int32 = 123;\n /// Region.storeInt32(region, offset, value);\n /// assert Region.loadInt32(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let storeInt32 : (self : Region, offset : Nat64, value : Int32) -> () = Prim.regionStoreInt32;\n\n /// Within `region`, load a `Int64` value from `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int64 = 123;\n /// Region.storeInt64(region, offset, value);\n /// assert Region.loadInt64(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let loadInt64 : (self : Region, offset : Nat64) -> Int64 = Prim.regionLoadInt64;\n\n /// Within `region`, store a `Int64` value at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value : Int64 = 123;\n /// Region.storeInt64(region, offset, value);\n /// assert Region.loadInt64(region, offset) == 123;\n /// }\n /// }\n /// ```\n public let storeInt64 : (self : Region, offset : Nat64, value : Int64) -> () = Prim.regionStoreInt64;\n\n /// Within `region`, loads a `Float` value from the given `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value = 1.25;\n /// Region.storeFloat(region, offset, value);\n /// assert Region.loadFloat(region, offset) == 1.25;\n /// }\n /// }\n /// ```\n public let loadFloat : (self : Region, offset : Nat64) -> Float = Prim.regionLoadFloat;\n\n /// Within `region`, store float `value` at the given `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value = 1.25;\n /// Region.storeFloat(region, offset, value);\n /// assert Region.loadFloat(region, offset) == 1.25;\n /// }\n /// }\n /// ```\n public let storeFloat : (self : Region, offset : Nat64, value : Float) -> () = Prim.regionStoreFloat;\n\n /// Within `region,` load `size` bytes starting from `offset` as a `Blob`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// import Blob \"mo:core/Blob\";\n ///\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value = Blob.fromArray([1, 2, 3]);\n /// let size = value.size();\n /// Region.storeBlob(region, offset, value);\n /// assert Blob.toArray(Region.loadBlob(region, offset, size)) == [1, 2, 3];\n /// }\n /// }\n /// ```\n public let loadBlob : (self : Region, offset : Nat64, size : Nat) -> Blob = Prim.regionLoadBlob;\n\n /// Within `region, write `blob.size()` bytes of `blob` beginning at `offset`.\n /// Traps on an out-of-bounds access.\n ///\n /// Example:\n /// ```motoko no-repl include=import\n /// import Blob \"mo:core/Blob\";\n ///\n /// persistent actor {\n /// public func example() : async () {\n /// let region = Region.new();\n /// let offset : Nat64 = 0;\n /// let value = Blob.fromArray([1, 2, 3]);\n /// let size = value.size();\n /// Region.storeBlob(region, offset, value);\n /// assert Blob.toArray(Region.loadBlob(region, offset, size)) == [1, 2, 3];\n /// }\n /// }\n /// ```\n public let storeBlob : (self : Region, offset : Nat64, value : Blob) -> () = Prim.regionStoreBlob;\n\n}\n"},"Types.mo":{"content":"/// Common types used throughout the core package.\n///\n/// Example usage:\n///\n/// ```motoko name=import\n/// import { type Result; type Iter } \"mo:core/Types\";\n///\n/// // Result for error handling\n/// let result : Result = #ok(42);\n///\n/// // Iterator for sequences\n/// let iter : Iter = { next = func() { ?1 } };\n/// ```\n\nimport Prim \"mo:⛔\";\n\nmodule {\n public type Blob = Prim.Types.Blob;\n public type Bool = Prim.Types.Bool;\n public type Char = Prim.Types.Char;\n public type Error = Prim.Types.Error;\n public type ErrorCode = Prim.ErrorCode;\n public type Float = Prim.Types.Float;\n public type Int = Prim.Types.Int;\n public type Int8 = Prim.Types.Int8;\n public type Int16 = Prim.Types.Int16;\n public type Int32 = Prim.Types.Int32;\n public type Int64 = Prim.Types.Int64;\n public type Nat = Prim.Types.Nat;\n public type Nat8 = Prim.Types.Nat8;\n public type Nat16 = Prim.Types.Nat16;\n public type Nat32 = Prim.Types.Nat32;\n public type Nat64 = Prim.Types.Nat64;\n public type Principal = Prim.Types.Principal;\n public type Region = Prim.Types.Region;\n public type Text = Prim.Types.Text;\n\n public type Hash = Nat32;\n public type Iter = { next : () -> ?T };\n public type Order = { #less; #equal; #greater };\n public type Result = { #ok : T; #err : E };\n public type Pattern = {\n #char : Char;\n #text : Text;\n #predicate : (Char -> Bool)\n };\n public type Time = Int;\n public type Duration = {\n #days : Nat;\n #hours : Nat;\n #minutes : Nat;\n #seconds : Nat;\n #milliseconds : Nat;\n #nanoseconds : Nat\n };\n public type TimerId = Nat;\n\n public type List = {\n var blocks : [var [var ?T]];\n var blockIndex : Nat;\n var elementIndex : Nat\n };\n\n public module Queue {\n public type Queue = {\n var front : ?Node;\n var back : ?Node;\n var size : Nat\n };\n\n public type Node = {\n value : T;\n var next : ?Node;\n var previous : ?Node\n }\n };\n public type Queue = Queue.Queue;\n\n public module PriorityQueue {\n public type PriorityQueue = {\n heap : List\n }\n };\n public type PriorityQueue = PriorityQueue.PriorityQueue;\n\n public module Set {\n public type Node = {\n #leaf : Leaf;\n #internal : Internal\n };\n\n public type Data = {\n elements : [var ?T];\n var count : Nat\n };\n\n public type Internal = {\n data : Data;\n children : [var ?Node]\n };\n\n public type Leaf = {\n data : Data\n };\n\n public type Set = {\n var root : Node;\n var size : Nat\n }\n };\n public type Set = Set.Set;\n\n public module Map {\n public type Node = {\n #leaf : Leaf;\n #internal : Internal\n };\n\n public type Data = {\n kvs : [var ?(K, V)];\n var count : Nat\n };\n\n public type Internal = {\n data : Data;\n children : [var ?Node]\n };\n\n public type Leaf = {\n data : Data\n };\n\n public type Map = {\n var root : Node;\n var size : Nat\n }\n };\n\n public type Map = Map.Map;\n\n public module Stack {\n public type Stack = {\n var top : Pure.List;\n var size : Nat\n }\n };\n public type Stack = Stack.Stack;\n\n public module Pure {\n public type List = ?(T, List);\n\n public module Map {\n public type Map = {\n size : Nat;\n root : Tree\n };\n public type Tree = {\n #red : (Tree, K, V, Tree);\n #black : (Tree, K, V, Tree);\n #leaf\n };\n\n };\n public type Map = Map.Map;\n\n public type Queue = (List, Nat, List);\n\n public module Set {\n public type Tree = {\n #red : (Tree, T, Tree);\n #black : (Tree, T, Tree);\n #leaf\n };\n\n public type Set = { size : Nat; root : Tree }\n };\n\n public type Set = Set.Set;\n\n }\n}\n"},"Int8.mo":{"content":"/// Utility functions on 8-bit signed integers.\n///\n/// Note that most operations are available as built-in operators (e.g. `1 + 1`).\n///\n/// Import from the core package to use this module.\n/// ```motoko name=import\n/// import Int8 \"mo:core/Int8\";\n/// ```\nimport Int \"Int\";\nimport Iter \"Iter\";\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 8-bit signed integers.\n public type Int8 = Prim.Types.Int8;\n\n /// Minimum 8-bit integer value, `-2 ** 7`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.minValue == -128;\n /// ```\n public let minValue : Int8 = -128;\n\n /// Maximum 8-bit integer value, `+2 ** 7 - 1`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.maxValue == +127;\n /// ```\n public let maxValue : Int8 = 127;\n\n /// Converts an 8-bit signed integer to a signed integer with infinite precision.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.toInt(123) == (123 : Int);\n /// ```\n public let toInt : (self : Int8) -> Int = Prim.int8ToInt;\n\n /// Converts a signed integer with infinite precision to an 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.fromInt(123) == (+123 : Int8);\n /// ```\n public let fromInt : Int -> Int8 = Prim.intToInt8;\n\n /// Converts a signed integer with infinite precision to an 8-bit signed integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.fromIntWrap(-123) == (-123 : Int8);\n /// ```\n public let fromIntWrap : Int -> Int8 = Prim.intToInt8Wrap;\n\n /// Converts a 16-bit signed integer to an 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.fromInt16(123) == (+123 : Int8);\n /// ```\n public let fromInt16 : Int16 -> Int8 = Prim.int16ToInt8;\n\n /// Converts an 8-bit signed integer to a 16-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.toInt16(123) == (+123 : Int16);\n /// ```\n public let toInt16 : (self : Int8) -> Int16 = Prim.int8ToInt16;\n\n /// Converts a 32-bit signed integer to an 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.fromInt32(123) == (+123 : Int8);\n /// ```\n public func fromInt32(x : Int32) : Int8 {\n Prim.int16ToInt8(Prim.int32ToInt16(x))\n };\n\n /// Converts an 8-bit signed integer to a 32-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.toInt32(123) == (+123 : Int32);\n /// ```\n public func toInt32(self : Int8) : Int32 {\n Prim.int16ToInt32(Prim.int8ToInt16(self))\n };\n\n /// Converts a 64-bit signed integer to an 8-bit signed integer.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.fromInt64(123) == (+123 : Int8);\n /// ```\n public func fromInt64(x : Int64) : Int8 {\n Prim.int16ToInt8(Prim.int32ToInt16(Prim.int64ToInt32(x)))\n };\n\n /// Converts an 8-bit signed integer to a 64-bit signed integer.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.toInt64(123) == (+123 : Int64);\n /// ```\n public func toInt64(self : Int8) : Int64 {\n Prim.int32ToInt64(Prim.int16ToInt32(Prim.int8ToInt16(self)))\n };\n\n /// Converts an unsigned 8-bit integer to a signed 8-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.fromNat8(123) == (+123 : Int8);\n /// ```\n public let fromNat8 : Nat8 -> Int8 = Prim.nat8ToInt8;\n\n /// Converts a signed 8-bit integer to an unsigned 8-bit integer.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.toNat8(-1) == (255 : Nat8); // underflow\n /// ```\n public let toNat8 : (self : Int8) -> Nat8 = Prim.int8ToNat8;\n\n /// Converts an integer number to its textual representation.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.toText(-123) == \"-123\";\n /// ```\n public func toText(self : Int8) : Text {\n Int.toText(toInt(self))\n };\n\n /// Returns the absolute value of `x`.\n ///\n /// Traps when `x == -2 ** 7` (the minimum `Int8` value).\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.abs(-123) == +123;\n /// ```\n public func abs(x : Int8) : Int8 {\n fromInt(Int.abs(toInt(x)))\n };\n\n /// Returns the minimum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.min(+2, -3) == -3;\n /// ```\n public func min(x : Int8, y : Int8) : Int8 {\n if (x < y) { x } else { y }\n };\n\n /// Returns the maximum of `x` and `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.max(+2, -3) == +2;\n /// ```\n public func max(x : Int8, y : Int8) : Int8 {\n if (x < y) { y } else { x }\n };\n\n /// Equality function for Int8 types.\n /// This is equivalent to `x == y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.equal(-1, -1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `==` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `==`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// let a : Int8 = -123;\n /// let b : Int8 = 123;\n /// assert not Int8.equal(a, b);\n /// ```\n public func equal(x : Int8, y : Int8) : Bool { x == y };\n\n /// Inequality function for Int8 types.\n /// This is equivalent to `x != y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.notEqual(-1, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `!=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `!=`\n /// as a function value at the moment.\n public func notEqual(x : Int8, y : Int8) : Bool { x != y };\n\n /// \"Less than\" function for Int8 types.\n /// This is equivalent to `x < y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.less(-2, 1);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<`\n /// as a function value at the moment.\n public func less(x : Int8, y : Int8) : Bool { x < y };\n\n /// \"Less than or equal\" function for Int8 types.\n /// This is equivalent to `x <= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.lessOrEqual(-2, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<=`\n /// as a function value at the moment.\n public func lessOrEqual(x : Int8, y : Int8) : Bool { x <= y };\n\n /// \"Greater than\" function for Int8 types.\n /// This is equivalent to `x > y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.greater(-2, -3);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>`\n /// as a function value at the moment.\n public func greater(x : Int8, y : Int8) : Bool { x > y };\n\n /// \"Greater than or equal\" function for Int8 types.\n /// This is equivalent to `x >= y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.greaterOrEqual(-2, -2);\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>=` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>=`\n /// as a function value at the moment.\n public func greaterOrEqual(x : Int8, y : Int8) : Bool { x >= y };\n\n /// General-purpose comparison function for `Int8`. Returns the `Order` (\n /// either `#less`, `#equal`, or `#greater`) of comparing `x` with `y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.compare(-3, 2) == #less;\n /// ```\n ///\n /// This function can be used as value for a high order function, such as a sort function.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.sort([1, -2, -3] : [Int8], Int8.compare) == [-3, -2, 1];\n /// ```\n public func compare(x : Int8, y : Int8) : Order.Order {\n if (x < y) { #less } else if (x == y) { #equal } else {\n #greater\n }\n };\n\n /// Returns the negation of `x`, `-x`.\n ///\n /// Traps on overflow, i.e. for `neg(-2 ** 7)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.neg(123) == -123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n public func neg(x : Int8) : Int8 { -x };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.add(100, 23) == +123;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int8.add) == -4;\n /// ```\n public func add(x : Int8, y : Int8) : Int8 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.sub(123, 23) == +100;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 0, Int8.sub) == 4;\n /// ```\n public func sub(x : Int8, y : Int8) : Int8 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n ///\n /// Traps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.mul(12, 10) == +120;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*`\n /// as a function value at the moment.\n ///\n /// Example:\n /// ```motoko include=import\n /// import Array \"mo:core/Array\";\n /// assert Array.foldLeft([1, -2, -3], 1, Int8.mul) == 6;\n /// ```\n public func mul(x : Int8, y : Int8) : Int8 { x * y };\n\n /// Returns the signed integer division of `x` by `y`, `x / y`.\n /// Rounds the quotient towards zero, which is the same as truncating the decimal places of the quotient.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.div(123, 10) == +12;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `/` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `/`\n /// as a function value at the moment.\n public func div(x : Int8, y : Int8) : Int8 { x / y };\n\n /// Returns the remainder of the signed integer division of `x` by `y`, `x % y`,\n /// which is defined as `x - x / y * y`.\n ///\n /// Traps when `y` is zero.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.rem(123, 10) == +3;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `%`\n /// as a function value at the moment.\n public func rem(x : Int8, y : Int8) : Int8 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n ///\n /// Traps on overflow/underflow and when `y < 0 or y >= 8`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.pow(2, 6) == +64;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**`\n /// as a function value at the moment.\n public func pow(x : Int8, y : Int8) : Int8 { x ** y };\n\n /// Returns the bitwise negation of `x`, `^x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitnot(-16 /* 0xf0 */) == +15 // 0x0f;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitnot(x : Int8) : Int8 { ^x };\n\n /// Returns the bitwise \"and\" of `x` and `y`, `x & y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitand(0x1f, 0x70) == +16 // 0x10;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `&` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `&`\n /// as a function value at the moment.\n public func bitand(x : Int8, y : Int8) : Int8 { x & y };\n\n /// Returns the bitwise \"or\" of `x` and `y`, `x | y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitor(0x0f, 0x70) == +127 // 0x7f;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `|` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `|`\n /// as a function value at the moment.\n public func bitor(x : Int8, y : Int8) : Int8 { x | y };\n\n /// Returns the bitwise \"exclusive or\" of `x` and `y`, `x ^ y`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitxor(0x70, 0x7f) == +15 // 0x0f;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `^` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `^`\n /// as a function value at the moment.\n public func bitxor(x : Int8, y : Int8) : Int8 { x ^ y };\n\n /// Returns the bitwise left shift of `x` by `y`, `x << y`.\n /// The right bits of the shift filled with zeros.\n /// Left-overflowing bits, including the sign bit, are discarded.\n ///\n /// For `y >= 8`, the semantics is the same as for `bitshiftLeft(x, y % 8)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftLeft(x, y + y % 8)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitshiftLeft(1, 4) == +16 // 0x10 equivalent to `2 ** 4`.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<`\n /// as a function value at the moment.\n public func bitshiftLeft(x : Int8, y : Int8) : Int8 { x << y };\n\n /// Returns the signed bitwise right shift of `x` by `y`, `x >> y`.\n /// The sign bit is retained and the left side is filled with the sign bit.\n /// Right-underflowing bits are discarded, i.e. not rotated to the left side.\n ///\n /// For `y >= 8`, the semantics is the same as for `bitshiftRight(x, y % 8)`.\n /// For `y < 0`, the semantics is the same as for `bitshiftRight (x, y + y % 8)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitshiftRight(64, 4) == +4 // equivalent to `64 / (2 ** 4)`;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `>>`\n /// as a function value at the moment.\n public func bitshiftRight(x : Int8, y : Int8) : Int8 { x >> y };\n\n /// Returns the bitwise left rotatation of `x` by `y`, `x <<> y`.\n /// Each left-overflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 8`, the semantics is the same as for `bitrotLeft(x, y % 8)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitrotLeft(0x11 /* 0b0001_0001 */, 2) == +68 // 0b0100_0100 == 0x44.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<<>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<<>`\n /// as a function value at the moment.\n public func bitrotLeft(x : Int8, y : Int8) : Int8 { x <<> y };\n\n /// Returns the bitwise right rotation of `x` by `y`, `x <>> y`.\n /// Each right-underflowing bit is inserted again on the right side.\n /// The sign bit is rotated like y bits, i.e. the rotation interprets the number as unsigned.\n ///\n /// Changes the direction of rotation for negative `y`.\n /// For `y >= 8`, the semantics is the same as for `bitrotRight(x, y % 8)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitrotRight(0x11 /* 0b0001_0001 */, 1) == -120 // 0b1000_1000 == 0x88.;\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `<>>` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `<>>`\n /// as a function value at the moment.\n public func bitrotRight(x : Int8, y : Int8) : Int8 { x <>> y };\n\n /// Returns the value of bit `p` in `x`, `x & 2**p == 2**p`.\n /// If `p >= 8`, the semantics is the same as for `bittest(x, p % 8)`.\n /// This is equivalent to checking if the `p`-th bit is set in `x`, using 0 indexing.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bittest(64, 6);\n /// ```\n public func bittest(x : Int8, p : Nat) : Bool {\n Prim.btstInt8(x, Prim.intToInt8(p))\n };\n\n /// Returns the value of setting bit `p` in `x` to `1`.\n /// If `p >= 8`, the semantics is the same as for `bitset(x, p % 8)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitset(0, 6) == +64;\n /// ```\n public func bitset(x : Int8, p : Nat) : Int8 {\n x | (1 << Prim.intToInt8(p))\n };\n\n /// Returns the value of clearing bit `p` in `x` to `0`.\n /// If `p >= 8`, the semantics is the same as for `bitclear(x, p % 8)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitclear(-1, 6) == -65;\n /// ```\n public func bitclear(x : Int8, p : Nat) : Int8 {\n x & ^(1 << Prim.intToInt8(p))\n };\n\n /// Returns the value of flipping bit `p` in `x`.\n /// If `p >= 8`, the semantics is the same as for `bitclear(x, p % 8)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitflip(127, 6) == +63;\n /// ```\n public func bitflip(x : Int8, p : Nat) : Int8 {\n x ^ (1 << Prim.intToInt8(p))\n };\n\n /// Returns the count of non-zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitcountNonZero(0x0f) == +4;\n /// ```\n public let bitcountNonZero : (x : Int8) -> Int8 = Prim.popcntInt8;\n\n /// Returns the count of leading zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitcountLeadingZero(0x08) == +4;\n /// ```\n public let bitcountLeadingZero : (x : Int8) -> Int8 = Prim.clzInt8;\n\n /// Returns the count of trailing zero bits in `x`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.bitcountTrailingZero(0x10) == +4;\n /// ```\n public let bitcountTrailingZero : (x : Int8) -> Int8 = Prim.ctzInt8;\n\n /// Returns the sum of `x` and `y`, `x +% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.addWrap(2 ** 6, 2 ** 6) == -128; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `+%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `+%`\n /// as a function value at the moment.\n public func addWrap(x : Int8, y : Int8) : Int8 { x +% y };\n\n /// Returns the difference of `x` and `y`, `x -% y`.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.subWrap(-2 ** 7, 1) == +127; // underflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `-%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `-%`\n /// as a function value at the moment.\n public func subWrap(x : Int8, y : Int8) : Int8 { x -% y };\n\n /// Returns the product of `x` and `y`, `x *% y`. Wraps on overflow.\n ///\n /// Wraps on overflow/underflow.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.mulWrap(2 ** 4, 2 ** 4) == 0; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `*%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `*%`\n /// as a function value at the moment.\n public func mulWrap(x : Int8, y : Int8) : Int8 { x *% y };\n\n /// Returns `x` to the power of `y`, `x **% y`.\n ///\n /// Wraps on overflow/underflow.\n /// Traps if `y < 0 or y >= 8`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Int8.powWrap(2, 7) == -128; // overflow\n /// ```\n ///\n /// Note: The reason why this function is defined in this library (in addition\n /// to the existing `**%` operator) is so that you can use it as a function\n /// value to pass to a higher order function. It is not possible to use `**%`\n /// as a function value at the moment.\n public func powWrap(x : Int8, y : Int8) : Int8 { x **% y };\n\n /// Returns an iterator over `Int8` values from the first to second argument with an exclusive upper bound.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int8.range(1, 4);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int8.range(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func range(fromInclusive : Int8, toExclusive : Int8) : Iter.Iter {\n if (fromInclusive >= toExclusive) {\n Iter.empty()\n } else {\n object {\n var n = fromInclusive;\n public func next() : ?Int8 {\n if (n == toExclusive) {\n null\n } else {\n let result = n;\n n += 1;\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over `Int8` values from the first to second argument, inclusive.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int8.rangeInclusive(1, 3);\n /// assert iter.next() == ?1;\n /// assert iter.next() == ?2;\n /// assert iter.next() == ?3;\n /// assert iter.next() == null;\n /// ```\n ///\n /// If the first argument is greater than the second argument, the function returns an empty iterator.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int8.rangeInclusive(4, 1);\n /// assert iter.next() == null; // empty iterator\n /// ```\n public func rangeInclusive(from : Int8, to : Int8) : Iter.Iter {\n if (from > to) {\n Iter.empty()\n } else {\n object {\n var n = from;\n var done = false;\n public func next() : ?Int8 {\n if (done) {\n null\n } else {\n let result = n;\n if (n == to) {\n done := true\n } else {\n n += 1\n };\n ?result\n }\n }\n }\n }\n };\n\n /// Returns an iterator over all Int8 values, from minValue to maxValue.\n /// ```motoko include=import\n /// import Iter \"mo:core/Iter\";\n ///\n /// let iter = Int8.allValues();\n /// assert iter.next() == ?-128;\n /// assert iter.next() == ?-127;\n /// assert iter.next() == ?-126;\n /// // ...\n /// ```\n public func allValues() : Iter.Iter {\n rangeInclusive(minValue, maxValue)\n };\n\n}\n"},"Float.mo":{"content":"/// Double precision (64-bit) floating-point numbers in IEEE 754 representation.\n///\n/// This module contains common floating-point constants and utility functions.\n///\n/// ```motoko name=import\n/// import Float \"mo:core/Float\";\n/// ```\n///\n/// Notation for special values in the documentation below:\n/// `+inf`: Positive infinity\n/// `-inf`: Negative infinity\n/// `NaN`: \"not a number\" (can have different sign bit values, but `NaN != NaN` regardless of the sign).\n///\n/// Note:\n/// Floating point numbers have limited precision and operations may inherently result in numerical errors.\n///\n/// Examples of numerical errors:\n/// ```motoko\n/// assert 0.1 + 0.1 + 0.1 != 0.3;\n/// ```\n///\n/// ```motoko\n/// assert not (1e16 + 1.0 != 1e16);\n/// ```\n///\n/// (and many more cases)\n///\n/// Advice:\n/// * Floating point number comparisons by `==` or `!=` are discouraged. Instead, it is better to compare\n/// floating-point numbers with a numerical tolerance, called epsilon.\n///\n/// Example:\n/// ```motoko\n/// import Float \"mo:core/Float\";\n/// let x = 0.1 + 0.1 + 0.1;\n/// let y = 0.3;\n///\n/// let epsilon = 1e-6; // This depends on the application case (needs a numerical error analysis).\n/// assert Float.equal(x, y, epsilon);\n/// ```\n///\n/// * For absolute precision, it is recommened to encode the fraction number as a pair of a Nat for the base\n/// and a Nat for the exponent (decimal point).\n///\n/// NaN sign:\n/// * The NaN sign is only applied by `abs`, `neg`, and `copySign`. Other operations can have an arbitrary\n/// sign bit for NaN results.\n\nimport Prim \"mo:⛔\";\nimport Int \"Int\";\nimport Order \"Order\";\n\nmodule {\n\n /// 64-bit floating point number type.\n public type Float = Prim.Types.Float;\n\n /// Ratio of the circumference of a circle to its diameter.\n /// Note: Limited precision.\n public let pi : Float = 3.14159265358979323846; // taken from musl math.h\n\n /// Base of the natural logarithm.\n /// Note: Limited precision.\n public let e : Float = 2.7182818284590452354; // taken from musl math.h\n\n /// Determines whether the `number` is a `NaN` (\"not a number\" in the floating point representation).\n /// Notes:\n /// * Equality test of `NaN` with itself or another number is always `false`.\n /// * There exist many internal `NaN` value representations, such as positive and negative NaN,\n /// signalling and quiet NaNs, each with many different bit representations.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.isNaN(0.0/0.0);\n /// ```\n public func isNaN(self : Float) : Bool {\n self != self\n };\n\n /// Returns the absolute value of `x`.\n ///\n /// Special cases:\n /// ```\n /// abs(+inf) => +inf\n /// abs(-inf) => +inf\n /// abs(-NaN) => +NaN\n /// abs(-0.0) => 0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.abs(-1.2), 1.2, epsilon);\n /// ```\n public let abs : (x : Float) -> Float = Prim.floatAbs;\n\n /// Returns the square root of `x`.\n ///\n /// Special cases:\n /// ```\n /// sqrt(+inf) => +inf\n /// sqrt(-0.0) => -0.0\n /// sqrt(x) => NaN if x < 0.0\n /// sqrt(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.sqrt(6.25), 2.5, epsilon);\n /// ```\n public let sqrt : (x : Float) -> Float = Prim.floatSqrt;\n\n /// Returns the smallest integral float greater than or equal to `x`.\n ///\n /// Special cases:\n /// ```\n /// ceil(+inf) => +inf\n /// ceil(-inf) => -inf\n /// ceil(NaN) => NaN\n /// ceil(0.0) => 0.0\n /// ceil(-0.0) => -0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.ceil(1.2), 2.0, epsilon);\n /// ```\n public let ceil : (x : Float) -> Float = Prim.floatCeil;\n\n /// Returns the largest integral float less than or equal to `x`.\n ///\n /// Special cases:\n /// ```\n /// floor(+inf) => +inf\n /// floor(-inf) => -inf\n /// floor(NaN) => NaN\n /// floor(0.0) => 0.0\n /// floor(-0.0) => -0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.floor(1.2), 1.0, epsilon);\n /// ```\n public let floor : (x : Float) -> Float = Prim.floatFloor;\n\n /// Returns the nearest integral float not greater in magnitude than `x`.\n /// This is equivalent to returning `x` with truncating its decimal places.\n ///\n /// Special cases:\n /// ```\n /// trunc(+inf) => +inf\n /// trunc(-inf) => -inf\n /// trunc(NaN) => NaN\n /// trunc(0.0) => 0.0\n /// trunc(-0.0) => -0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.trunc(2.75), 2.0, epsilon);\n /// ```\n public let trunc : (x : Float) -> Float = Prim.floatTrunc;\n\n /// Returns the nearest integral float to `x`.\n /// A decimal place of exactly .5 is rounded to the nearest even integral float.\n /// and rounded down for `x < 0`\n ///\n /// Special cases:\n /// ```\n /// nearest(+inf) => +inf\n /// nearest(-inf) => -inf\n /// nearest(NaN) => NaN\n /// nearest(0.0) => 0.0\n /// nearest(-0.0) => -0.0\n /// nearest(14.5) => 14.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.nearest(2.75) == 3.0\n /// ```\n public let nearest : (x : Float) -> Float = Prim.floatNearest;\n\n /// Returns `x` if `x` and `y` have same sign, otherwise `x` with negated sign.\n ///\n /// The sign bit of zero, infinity, and `NaN` is considered.\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.copySign(1.2, -2.3), -1.2, epsilon);\n /// ```\n public let copySign : (x : Float, y : Float) -> Float = Prim.floatCopySign;\n\n /// Returns the smaller value of `x` and `y`.\n ///\n /// Special cases:\n /// ```\n /// min(NaN, y) => NaN for any Float y\n /// min(x, NaN) => NaN for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.min(1.2, -2.3) == -2.3; // with numerical imprecision\n /// ```\n public let min : (x : Float, y : Float) -> Float = Prim.floatMin;\n\n /// Returns the larger value of `x` and `y`.\n ///\n /// Special cases:\n /// ```\n /// max(NaN, y) => NaN for any Float y\n /// max(x, NaN) => NaN for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.max(1.2, -2.3) == 1.2;\n /// ```\n public let max : (x : Float, y : Float) -> Float = Prim.floatMax;\n\n /// Returns the sine of the radian angle `x`.\n ///\n /// Special cases:\n /// ```\n /// sin(+inf) => NaN\n /// sin(-inf) => NaN\n /// sin(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.sin(Float.pi / 2), 1.0, epsilon);\n /// ```\n public let sin : (x : Float) -> Float = Prim.sin;\n\n /// Returns the cosine of the radian angle `x`.\n ///\n /// Special cases:\n /// ```\n /// cos(+inf) => NaN\n /// cos(-inf) => NaN\n /// cos(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.cos(Float.pi / 2), 0.0, epsilon);\n /// ```\n public let cos : (x : Float) -> Float = Prim.cos;\n\n /// Returns the tangent of the radian angle `x`.\n ///\n /// Special cases:\n /// ```\n /// tan(+inf) => NaN\n /// tan(-inf) => NaN\n /// tan(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.tan(Float.pi / 4), 1.0, epsilon);\n /// ```\n public let tan : (x : Float) -> Float = Prim.tan;\n\n /// Returns the arc sine of `x` in radians.\n ///\n /// Special cases:\n /// ```\n /// arcsin(x) => NaN if x > 1.0\n /// arcsin(x) => NaN if x < -1.0\n /// arcsin(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.arcsin(1.0), Float.pi / 2, epsilon);\n /// ```\n public let arcsin : (x : Float) -> Float = Prim.arcsin;\n\n /// Returns the arc cosine of `x` in radians.\n ///\n /// Special cases:\n /// ```\n /// arccos(x) => NaN if x > 1.0\n /// arccos(x) => NaN if x < -1.0\n /// arcos(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.arccos(1.0), 0.0, epsilon);\n /// ```\n public let arccos : (x : Float) -> Float = Prim.arccos;\n\n /// Returns the arc tangent of `x` in radians.\n ///\n /// Special cases:\n /// ```\n /// arctan(+inf) => pi / 2\n /// arctan(-inf) => -pi / 2\n /// arctan(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.arctan(1.0), Float.pi / 4, epsilon);\n /// ```\n public let arctan : (x : Float) -> Float = Prim.arctan;\n\n /// Given `(y, x)`, returns the arc tangent in radians of `y/x` based on the signs of both values to determine the correct quadrant.\n ///\n /// Special cases:\n /// ```\n /// arctan2(0.0, 0.0) => 0.0\n /// arctan2(-0.0, 0.0) => -0.0\n /// arctan2(0.0, -0.0) => pi\n /// arctan2(-0.0, -0.0) => -pi\n /// arctan2(+inf, +inf) => pi / 4\n /// arctan2(+inf, -inf) => 3 * pi / 4\n /// arctan2(-inf, +inf) => -pi / 4\n /// arctan2(-inf, -inf) => -3 * pi / 4\n /// arctan2(NaN, x) => NaN for any Float x\n /// arctan2(y, NaN) => NaN for any Float y\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let sqrt2over2 = Float.sqrt(2) / 2;\n /// assert Float.arctan2(sqrt2over2, sqrt2over2) == Float.pi / 4;\n /// ```\n public let arctan2 : (y : Float, x : Float) -> Float = Prim.arctan2;\n\n /// Returns the value of `e` raised to the `x`-th power.\n ///\n /// Special cases:\n /// ```\n /// exp(+inf) => +inf\n /// exp(-inf) => 0.0\n /// exp(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.exp(1.0), Float.e, epsilon);\n /// ```\n public let exp : (x : Float) -> Float = Prim.exp;\n\n /// Returns the natural logarithm (base-`e`) of `x`.\n ///\n /// Special cases:\n /// ```\n /// log(0.0) => -inf\n /// log(-0.0) => -inf\n /// log(x) => NaN if x < 0.0\n /// log(+inf) => +inf\n /// log(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.log(Float.e), 1.0, epsilon);\n /// ```\n public let log : (x : Float) -> Float = Prim.log;\n\n /// Formatting. `format(fmt, x)` formats `x` to `Text` according to the\n /// formatting directive `fmt`, which can take one of the following forms:\n ///\n /// * `#fix prec` as fixed-point format with `prec` digits\n /// * `#exp prec` as exponential format with `prec` digits\n /// * `#gen prec` as generic format with `prec` digits\n /// * `#exact` as exact format that can be decoded without loss.\n ///\n /// `-0.0` is formatted with negative sign bit.\n /// Positive infinity is formatted as \"inf\".\n /// Negative infinity is formatted as \"-inf\".\n ///\n /// The numerical precision and the text format can vary between\n /// Motoko versions and runtime configuration. Moreover, `NaN` can be printed\n /// differently, i.e. \"NaN\" or \"nan\", potentially omitting the `NaN` sign.\n ///\n /// Example:\n /// ```motoko include=import no-validate\n /// assert Float.format(#exp 3, 123.0) == \"1.230e+02\";\n /// ```\n public func format(self : Float, fmt : { #fix : Nat8; #exp : Nat8; #gen : Nat8; #exact }) : Text = switch fmt {\n case (#fix(prec)) { Prim.floatToFormattedText(self, prec, 0) };\n case (#exp(prec)) { Prim.floatToFormattedText(self, prec, 1) };\n case (#gen(prec)) { Prim.floatToFormattedText(self, prec, 2) };\n case (#exact) { Prim.floatToFormattedText(self, 17, 2) }\n };\n\n /// Conversion to Text. Use `format(fmt, x)` for more detailed control.\n ///\n /// `-0.0` is formatted with negative sign bit.\n /// Positive infinity is formatted as `inf`.\n /// Negative infinity is formatted as `-inf`.\n /// `NaN` is formatted as `NaN` or `-NaN` depending on its sign bit.\n ///\n /// The numerical precision and the text format can vary between\n /// Motoko versions and runtime configuration. Moreover, `NaN` can be printed\n /// differently, i.e. \"NaN\" or \"nan\", potentially omitting the `NaN` sign.\n ///\n /// Example:\n /// ```motoko include=import no-validate\n /// assert Float.toText(1.2) == \"1.2\";\n /// ```\n public let toText : (self : Float) -> Text = Prim.floatToText;\n\n /// Conversion to Int64 by truncating Float, equivalent to `toInt64(trunc(f))`\n ///\n /// Traps if the floating point number is larger or smaller than the representable Int64.\n /// Also traps for `inf`, `-inf`, and `NaN`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.toInt64(-12.3) == -12;\n /// ```\n public let toInt64 : (self : Float) -> Int64 = Prim.floatToInt64;\n\n /// Conversion from Int64.\n ///\n /// Note: The floating point number may be imprecise for large or small Int64.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.fromInt64(-42) == -42.0;\n /// ```\n public let fromInt64 : (x : Int64) -> Float = Prim.int64ToFloat;\n\n /// Conversion to Int.\n ///\n /// Traps for `inf`, `-inf`, and `NaN`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.toInt(1.2e6) == +1_200_000;\n /// ```\n public let toInt : (self : Float) -> Int = Prim.floatToInt;\n\n /// Conversion from Int. May result in `Inf`.\n ///\n /// Note: The floating point number may be imprecise for large or small Int values.\n /// Returns `inf` if the integer is greater than the maximum floating point number.\n /// Returns `-inf` if the integer is less than the minimum floating point number.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.fromInt(-123) == -123.0;\n /// ```\n /// @deprecated M0235\n public let fromInt : (x : Int) -> Float = Prim.intToFloat;\n\n /// Conversion to Float32 (32-bit single precision).\n ///\n /// Note: This may lose precision for values that are not exactly representable in 32-bit.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.toFloat32(1.5) == 1.5;\n /// ```\n public let toFloat32 : (self : Float) -> Prim.Types.Float32 = Prim.floatToFloat32;\n\n /// Conversion from Float32 (32-bit single precision) to Float (64-bit double precision).\n ///\n /// This is a lossless widening conversion.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.fromFloat32(1.5) == 1.5;\n /// ```\n public let fromFloat32 : (x : Prim.Types.Float32) -> Float = Prim.float32ToFloat;\n\n /// Determines whether `x` is equal to `y` within the defined tolerance of `epsilon`.\n /// The `epsilon` considers numerical erros, see comment above.\n /// Equivalent to `Float.abs(x - y) <= epsilon` for a non-negative epsilon.\n ///\n /// Traps if `epsilon` is negative or `NaN`.\n ///\n /// Special cases:\n /// ```\n /// equal(+0.0, -0.0, epsilon) => true for any `epsilon >= 0.0`\n /// equal(-0.0, +0.0, epsilon) => true for any `epsilon >= 0.0`\n /// equal(+inf, +inf, epsilon) => true for any `epsilon >= 0.0`\n /// equal(-inf, -inf, epsilon) => true for any `epsilon >= 0.0`\n /// equal(x, NaN, epsilon) => false for any x and `epsilon >= 0.0`\n /// equal(NaN, y, epsilon) => false for any y and `epsilon >= 0.0`\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(-12.3, -1.23e1, epsilon);\n /// ```\n public func equal(x : Float, y : Float, epsilon : Float) : Bool {\n if (not (epsilon >= 0.0)) {\n // also considers NaN, not identical to `epsilon < 0.0`\n Prim.trap(\"Float.equal(): epsilon must be greater or equal 0.0\")\n };\n x == y or abs(x - y) <= epsilon // `x == y` to also consider infinity equal\n };\n\n /// Determines whether `x` is not equal to `y` within the defined tolerance of `epsilon`.\n /// The `epsilon` considers numerical erros, see comment above.\n /// Equivalent to `not equal(x, y, epsilon)`.\n ///\n /// Traps if `epsilon` is negative or `NaN`.\n ///\n /// Special cases:\n /// ```\n /// notEqual(+0.0, -0.0, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(-0.0, +0.0, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(+inf, +inf, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(-inf, -inf, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(x, NaN, epsilon) => true for any x and `epsilon >= 0.0`\n /// notEqual(NaN, y, epsilon) => true for any y and `epsilon >= 0.0`\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert not Float.notEqual(-12.3, -1.23e1, epsilon);\n /// ```\n public func notEqual(x : Float, y : Float, epsilon : Float) : Bool {\n if (not (epsilon >= 0.0)) {\n // also considers NaN, not identical to `epsilon < 0.0`\n Prim.trap(\"Float.notEqual(): epsilon must be greater or equal 0.0\")\n };\n not (x == y or abs(x - y) <= epsilon)\n };\n\n /// Returns `x < y`.\n ///\n /// Special cases:\n /// ```\n /// less(+0.0, -0.0) => false\n /// less(-0.0, +0.0) => false\n /// less(NaN, y) => false for any Float y\n /// less(x, NaN) => false for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.less(Float.e, Float.pi);\n /// ```\n public func less(x : Float, y : Float) : Bool { x < y };\n\n /// Returns `x <= y`.\n ///\n /// Special cases:\n /// ```\n /// lessOrEqual(+0.0, -0.0) => true\n /// lessOrEqual(-0.0, +0.0) => true\n /// lessOrEqual(NaN, y) => false for any Float y\n /// lessOrEqual(x, NaN) => false for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.lessOrEqual(0.123, 0.1234);\n /// ```\n public func lessOrEqual(x : Float, y : Float) : Bool { x <= y };\n\n /// Returns `x > y`.\n ///\n /// Special cases:\n /// ```\n /// greater(+0.0, -0.0) => false\n /// greater(-0.0, +0.0) => false\n /// greater(NaN, y) => false for any Float y\n /// greater(x, NaN) => false for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.greater(Float.pi, Float.e);\n /// ```\n public func greater(x : Float, y : Float) : Bool { x > y };\n\n /// Returns `x >= y`.\n ///\n /// Special cases:\n /// ```\n /// greaterOrEqual(+0.0, -0.0) => true\n /// greaterOrEqual(-0.0, +0.0) => true\n /// greaterOrEqual(NaN, y) => false for any Float y\n /// greaterOrEqual(x, NaN) => false for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.greaterOrEqual(0.1234, 0.123);\n /// ```\n public func greaterOrEqual(x : Float, y : Float) : Bool {\n x >= y\n };\n\n /// Defines a total order of `x` and `y` for use in sorting.\n ///\n /// Note: Using this operation to determine equality or inequality is discouraged for two reasons:\n /// * It does not consider numerical errors, see comment above. Use `equal(x, y, espilon)` or\n /// `notEqual(x, y, epsilon)` to test for equality or inequality, respectively.\n /// * `NaN` are here considered equal if their sign matches, which is different to the standard equality\n /// by `==` or when using `equal()` or `notEqual()`.\n ///\n /// Total order:\n /// * negative NaN (no distinction between signalling and quiet negative NaN)\n /// * negative infinity\n /// * negative numbers (including negative subnormal numbers in standard order)\n /// * negative zero (`-0.0`)\n /// * positive zero (`+0.0`)\n /// * positive numbers (including positive subnormal numbers in standard order)\n /// * positive infinity\n /// * positive NaN (no distinction between signalling and quiet positive NaN)\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float.compare(0.123, 0.1234) == #less;\n /// ```\n public func compare(x : Float, y : Float) : Order.Order {\n if (isNaN(x)) {\n if (isNegative(x)) {\n if (isNaN(y) and isNegative(y)) { #equal } else { #less }\n } else {\n if (isNaN(y) and not isNegative(y)) { #equal } else { #greater }\n }\n } else if (isNaN(y)) {\n if (isNegative(y)) {\n #greater\n } else {\n #less\n }\n } else {\n if (x == y) { #equal } else if (x < y) { #less } else {\n #greater\n }\n }\n };\n\n func isNegative(self : Float) : Bool {\n copySign(1.0, self) < 0.0\n };\n\n /// Returns the negation of `x`, `-x` .\n ///\n /// Changes the sign bit for infinity.\n ///\n /// Special cases:\n /// ```\n /// neg(+inf) => -inf\n /// neg(-inf) => +inf\n /// neg(+NaN) => -NaN\n /// neg(-NaN) => +NaN\n /// neg(+0.0) => -0.0\n /// neg(-0.0) => +0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.neg(1.23), -1.23, epsilon);\n /// ```\n public func neg(x : Float) : Float { -x };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// add(+inf, y) => +inf if y is any Float except -inf and NaN\n /// add(-inf, y) => -inf if y is any Float except +inf and NaN\n /// add(+inf, -inf) => NaN\n /// add(NaN, y) => NaN for any Float y\n /// ```\n /// The same cases apply commutatively, i.e. for `add(y, x)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.add(1.23, 0.123), 1.353, epsilon);\n /// ```\n public func add(x : Float, y : Float) : Float { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// sub(+inf, y) => +inf if y is any Float except +inf or NaN\n /// sub(-inf, y) => -inf if y is any Float except -inf and NaN\n /// sub(x, +inf) => -inf if x is any Float except +inf and NaN\n /// sub(x, -inf) => +inf if x is any Float except -inf and NaN\n /// sub(+inf, +inf) => NaN\n /// sub(-inf, -inf) => NaN\n /// sub(NaN, y) => NaN for any Float y\n /// sub(x, NaN) => NaN for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.sub(1.23, 0.123), 1.107, epsilon);\n /// ```\n public func sub(x : Float, y : Float) : Float { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// mul(+inf, y) => +inf if y > 0.0\n /// mul(-inf, y) => -inf if y > 0.0\n /// mul(+inf, y) => -inf if y < 0.0\n /// mul(-inf, y) => +inf if y < 0.0\n /// mul(+inf, 0.0) => NaN\n /// mul(-inf, 0.0) => NaN\n /// mul(NaN, y) => NaN for any Float y\n /// ```\n /// The same cases apply commutatively, i.e. for `mul(y, x)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.mul(1.23, 1e2), 123.0, epsilon);\n /// ```\n public func mul(x : Float, y : Float) : Float { x * y };\n\n /// Returns the division of `x` by `y`, `x / y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// div(0.0, 0.0) => NaN\n /// div(x, 0.0) => +inf for x > 0.0\n /// div(x, 0.0) => -inf for x < 0.0\n /// div(x, +inf) => 0.0 for any x except +inf, -inf, and NaN\n /// div(x, -inf) => 0.0 for any x except +inf, -inf, and NaN\n /// div(+inf, y) => +inf if y >= 0.0\n /// div(+inf, y) => -inf if y < 0.0\n /// div(-inf, y) => -inf if y >= 0.0\n /// div(-inf, y) => +inf if y < 0.0\n /// div(NaN, y) => NaN for any Float y\n /// div(x, NaN) => NaN for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.div(1.23, 1e2), 0.0123, epsilon);\n /// ```\n public func div(x : Float, y : Float) : Float { x / y };\n\n /// Returns the floating point division remainder `x % y`,\n /// which is defined as `x - trunc(x / y) * y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// rem(0.0, 0.0) => NaN\n /// rem(x, y) => +inf if sign(x) == sign(y) for any x and y not being +inf, -inf, or NaN\n /// rem(x, y) => -inf if sign(x) != sign(y) for any x and y not being +inf, -inf, or NaN\n /// rem(x, +inf) => x for any x except +inf, -inf, and NaN\n /// rem(x, -inf) => x for any x except +inf, -inf, and NaN\n /// rem(+inf, y) => NaN for any Float y\n /// rem(-inf, y) => NaN for any Float y\n /// rem(NaN, y) => NaN for any Float y\n /// rem(x, NaN) => NaN for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.rem(7.2, 2.3), 0.3, epsilon);\n /// ```\n public func rem(x : Float, y : Float) : Float { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// pow(+inf, y) => +inf for any y > 0.0 including +inf\n /// pow(+inf, 0.0) => 1.0\n /// pow(+inf, y) => 0.0 for any y < 0.0 including -inf\n /// pow(x, +inf) => +inf if x > 0.0 or x < 0.0\n /// pow(0.0, +inf) => 0.0\n /// pow(x, -inf) => 0.0 if x > 0.0 or x < 0.0\n /// pow(0.0, -inf) => +inf\n /// pow(x, y) => NaN if x < 0.0 and y is a non-integral Float\n /// pow(-inf, y) => +inf if y > 0.0 and y is a non-integral or an even integral Float\n /// pow(-inf, y) => -inf if y > 0.0 and y is an odd integral Float\n /// pow(-inf, 0.0) => 1.0\n /// pow(-inf, y) => 0.0 if y < 0.0\n /// pow(-inf, +inf) => +inf\n /// pow(-inf, -inf) => 1.0\n /// pow(NaN, y) => NaN if y != 0.0\n /// pow(NaN, 0.0) => 1.0\n /// pow(x, NaN) => NaN for any Float x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-6;\n /// assert Float.equal(Float.pow(2.5, 2.0), 6.25, epsilon);\n /// ```\n public func pow(x : Float, y : Float) : Float { x ** y };\n\n}\n"},"CertifiedData.mo":{"content":"/// Certified data.\n///\n/// The Internet Computer allows canister smart contracts to store a small amount of data during\n/// update method processing so that during query call processing, the canister can obtain\n/// a certificate about that data.\n///\n/// This module provides a _low-level_ interface to this API, aimed at advanced\n/// users and library implementors. See the Internet Computer Functional\n/// Specification and corresponding documentation for how to use this to make query\n/// calls to your canister tamperproof.\n\nimport Prim \"mo:⛔\";\n\nmodule {\n\n /// Set the certified data.\n ///\n /// Must be called from an update method, else traps.\n /// Must be passed a blob of at most 32 bytes, else traps.\n ///\n /// Example:\n /// ```motoko no-repl\n /// import CertifiedData \"mo:core/CertifiedData\";\n /// import Blob \"mo:core/Blob\";\n ///\n /// // Must be in an update call\n ///\n /// let array : [Nat8] = [1, 2, 3];\n /// let blob = Blob.fromArray(array);\n /// CertifiedData.set(blob);\n /// ```\n ///\n /// See a full example on how to use certified variables here: https://github.com/dfinity/examples/tree/master/motoko/cert-var\n ///\n public let set : (data : Blob) -> () = Prim.setCertifiedData;\n\n /// Gets a certificate\n ///\n /// Returns `null` if no certificate is available, e.g. when processing an\n /// update call or inter-canister call. This returns a non-`null` value only\n /// when processing a query call.\n ///\n /// Example:\n /// ```motoko no-repl\n /// import CertifiedData \"mo:core/CertifiedData\";\n /// // Must be in a query call\n ///\n /// CertifiedData.getCertificate();\n /// ```\n /// See a full example on how to use certified variables here: https://github.com/dfinity/examples/tree/master/motoko/cert-var\n ///\n public let getCertificate : () -> ?Blob = Prim.getCertificate;\n\n}\n"},"Float32.mo":{"content":"/// Single precision (32-bit) floating-point numbers in IEEE 754 representation.\n///\n/// This module contains common floating-point constants and utility functions.\n///\n/// ```motoko name=import\n/// import Float32 \"mo:core/Float32\";\n/// ```\n///\n/// Notation for special values in the documentation below:\n/// `+inf`: Positive infinity\n/// `-inf`: Negative infinity\n/// `NaN`: \"not a number\" (can have different sign bit values, but `NaN != NaN` regardless of the sign).\n///\n/// Note:\n/// Floating point numbers have limited precision and operations may inherently result in numerical errors.\n/// `Float32` has less precision than `Float` (64-bit); only about 7 significant decimal digits.\n///\n/// Examples of numerical errors:\n/// ```motoko\n/// assert 0.1 + 0.1 + 0.1 != 0.3;\n/// ```\n///\n/// Advice:\n/// * Floating point number comparisons by `==` or `!=` are discouraged. Instead, it is better to compare\n/// floating-point numbers with a numerical tolerance, called epsilon.\n///\n/// Example:\n/// ```motoko\n/// import Float32 \"mo:core/Float32\";\n/// let x = 0.1 + 0.1 + 0.1 : Float32;\n/// let y = 0.3 : Float32;\n///\n/// let epsilon = 1e-5 : Float32; // This depends on the application case (needs a numerical error analysis).\n/// assert Float32.equal(x, y, epsilon);\n/// ```\n///\n/// * For absolute precision, it is recommended to encode the fraction number as a pair of a Nat for the base\n/// and a Nat for the exponent (decimal point).\n///\n/// Note: As of `moc` 1.4, `Float32` support is experimental.\n///\n/// NaN sign:\n/// * The NaN sign is only applied by `abs`, `neg`, and `copySign`. Other operations can have an arbitrary\n/// sign bit for NaN results.\n\nimport Prim \"mo:⛔\";\nimport Order \"Order\";\n\nmodule {\n\n /// 32-bit floating point number type.\n public type Float32 = Prim.Types.Float32;\n\n /// Conversion to Float (64-bit double precision).\n ///\n /// This is a lossless widening conversion.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.toFloat(1.5) == 1.5;\n /// ```\n public let toFloat : (self : Float32) -> Float = Prim.float32ToFloat;\n\n /// Conversion from Float (64-bit double precision) to Float32.\n ///\n /// Note: This may lose precision for values that are not exactly representable in 32-bit.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.fromFloat(1.5) == 1.5;\n /// ```\n public let fromFloat : (x : Float) -> Float32 = Prim.floatToFloat32;\n\n /// Ratio of the circumference of a circle to its diameter.\n /// Note: Limited precision (approximately 7 significant decimal digits).\n public let pi : Float32 = 3.14159265358979323846;\n\n /// Base of the natural logarithm.\n /// Note: Limited precision (approximately 7 significant decimal digits).\n public let e : Float32 = 2.7182818284590452354;\n\n /// Determines whether the `number` is a `NaN` (\"not a number\" in the floating point representation).\n /// Notes:\n /// * Equality test of `NaN` with itself or another number is always `false`.\n /// * There exist many internal `NaN` value representations, such as positive and negative NaN,\n /// signalling and quiet NaNs, each with many different bit representations.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.isNaN(0.0/0.0);\n /// ```\n public func isNaN(self : Float32) : Bool {\n self != self\n };\n\n /// Returns the absolute value of `x`.\n ///\n /// Special cases:\n /// ```\n /// abs(+inf) => +inf\n /// abs(-inf) => +inf\n /// abs(-NaN) => +NaN\n /// abs(-0.0) => 0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.abs(-1.2), 1.2, epsilon);\n /// ```\n public func abs(x : Float32) : Float32 {\n fromFloat(Prim.floatAbs(toFloat(x)))\n };\n\n /// Returns the square root of `x`.\n ///\n /// Special cases:\n /// ```\n /// sqrt(+inf) => +inf\n /// sqrt(-0.0) => -0.0\n /// sqrt(x) => NaN if x < 0.0\n /// sqrt(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.sqrt(6.25), 2.5, epsilon);\n /// ```\n public func sqrt(x : Float32) : Float32 {\n fromFloat(Prim.floatSqrt(toFloat(x)))\n };\n\n /// Returns the smallest integral float greater than or equal to `x`.\n ///\n /// Special cases:\n /// ```\n /// ceil(+inf) => +inf\n /// ceil(-inf) => -inf\n /// ceil(NaN) => NaN\n /// ceil(0.0) => 0.0\n /// ceil(-0.0) => -0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.ceil(1.2), 2.0, epsilon);\n /// ```\n public func ceil(x : Float32) : Float32 {\n fromFloat(Prim.floatCeil(toFloat(x)))\n };\n\n /// Returns the largest integral float less than or equal to `x`.\n ///\n /// Special cases:\n /// ```\n /// floor(+inf) => +inf\n /// floor(-inf) => -inf\n /// floor(NaN) => NaN\n /// floor(0.0) => 0.0\n /// floor(-0.0) => -0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.floor(1.2), 1.0, epsilon);\n /// ```\n public func floor(x : Float32) : Float32 {\n fromFloat(Prim.floatFloor(toFloat(x)))\n };\n\n /// Returns the nearest integral float not greater in magnitude than `x`.\n /// This is equivalent to returning `x` with truncating its decimal places.\n ///\n /// Special cases:\n /// ```\n /// trunc(+inf) => +inf\n /// trunc(-inf) => -inf\n /// trunc(NaN) => NaN\n /// trunc(0.0) => 0.0\n /// trunc(-0.0) => -0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.trunc(2.75), 2.0, epsilon);\n /// ```\n public func trunc(x : Float32) : Float32 {\n fromFloat(Prim.floatTrunc(toFloat(x)))\n };\n\n /// Returns the nearest integral float to `x`.\n /// A decimal place of exactly .5 is rounded to the nearest even integral float.\n ///\n /// Special cases:\n /// ```\n /// nearest(+inf) => +inf\n /// nearest(-inf) => -inf\n /// nearest(NaN) => NaN\n /// nearest(0.0) => 0.0\n /// nearest(-0.0) => -0.0\n /// nearest(14.5) => 14.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.nearest(2.75) == 3.0\n /// ```\n public func nearest(x : Float32) : Float32 {\n fromFloat(Prim.floatNearest(toFloat(x)))\n };\n\n /// Returns `x` if `x` and `y` have same sign, otherwise `x` with negated sign.\n ///\n /// The sign bit of zero, infinity, and `NaN` is considered.\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.copySign(1.2, -2.3), -1.2, epsilon);\n /// ```\n public func copySign(x : Float32, y : Float32) : Float32 {\n fromFloat(Prim.floatCopySign(toFloat(x), toFloat(y)))\n };\n\n /// Returns the smaller value of `x` and `y`.\n ///\n /// Special cases:\n /// ```\n /// min(NaN, y) => NaN for any Float32 y\n /// min(x, NaN) => NaN for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.min(1.2, -2.3) == -2.3; // with numerical imprecision\n /// ```\n public func min(x : Float32, y : Float32) : Float32 {\n fromFloat(Prim.floatMin(toFloat(x), toFloat(y)))\n };\n\n /// Returns the larger value of `x` and `y`.\n ///\n /// Special cases:\n /// ```\n /// max(NaN, y) => NaN for any Float32 y\n /// max(x, NaN) => NaN for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.max(1.2, -2.3) == 1.2;\n /// ```\n public func max(x : Float32, y : Float32) : Float32 {\n fromFloat(Prim.floatMax(toFloat(x), toFloat(y)))\n };\n\n /// Returns the sine of the radian angle `x`.\n ///\n /// Special cases:\n /// ```\n /// sin(+inf) => NaN\n /// sin(-inf) => NaN\n /// sin(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.sin(Float32.pi / 2.0), 1.0, epsilon);\n /// ```\n public func sin(x : Float32) : Float32 {\n fromFloat(Prim.sin(toFloat(x)))\n };\n\n /// Returns the cosine of the radian angle `x`.\n ///\n /// Special cases:\n /// ```\n /// cos(+inf) => NaN\n /// cos(-inf) => NaN\n /// cos(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.cos(Float32.pi / 2.0), 0.0, epsilon);\n /// ```\n public func cos(x : Float32) : Float32 {\n fromFloat(Prim.cos(toFloat(x)))\n };\n\n /// Returns the tangent of the radian angle `x`.\n ///\n /// Special cases:\n /// ```\n /// tan(+inf) => NaN\n /// tan(-inf) => NaN\n /// tan(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.tan(Float32.pi / 4.0), 1.0, epsilon);\n /// ```\n public func tan(x : Float32) : Float32 {\n fromFloat(Prim.tan(toFloat(x)))\n };\n\n /// Returns the arc sine of `x` in radians.\n ///\n /// Special cases:\n /// ```\n /// arcsin(x) => NaN if x > 1.0\n /// arcsin(x) => NaN if x < -1.0\n /// arcsin(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.arcsin(1.0), Float32.pi / 2.0, epsilon);\n /// ```\n public func arcsin(x : Float32) : Float32 {\n fromFloat(Prim.arcsin(toFloat(x)))\n };\n\n /// Returns the arc cosine of `x` in radians.\n ///\n /// Special cases:\n /// ```\n /// arccos(x) => NaN if x > 1.0\n /// arccos(x) => NaN if x < -1.0\n /// arccos(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.arccos(1.0), 0.0, epsilon);\n /// ```\n public func arccos(x : Float32) : Float32 {\n fromFloat(Prim.arccos(toFloat(x)))\n };\n\n /// Returns the arc tangent of `x` in radians.\n ///\n /// Special cases:\n /// ```\n /// arctan(+inf) => pi / 2\n /// arctan(-inf) => -pi / 2\n /// arctan(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.arctan(1.0), Float32.pi / 4.0, epsilon);\n /// ```\n public func arctan(x : Float32) : Float32 {\n fromFloat(Prim.arctan(toFloat(x)))\n };\n\n /// Given `(y, x)`, returns the arc tangent in radians of `y/x` based on the signs of both values to determine the correct quadrant.\n ///\n /// Special cases:\n /// ```\n /// arctan2(0.0, 0.0) => 0.0\n /// arctan2(-0.0, 0.0) => -0.0\n /// arctan2(0.0, -0.0) => pi\n /// arctan2(-0.0, -0.0) => -pi\n /// arctan2(+inf, +inf) => pi / 4\n /// arctan2(+inf, -inf) => 3 * pi / 4\n /// arctan2(-inf, +inf) => -pi / 4\n /// arctan2(-inf, -inf) => -3 * pi / 4\n /// arctan2(NaN, x) => NaN for any Float32 x\n /// arctan2(y, NaN) => NaN for any Float32 y\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let sqrt2over2 = Float32.sqrt(2.0) / 2.0;\n /// assert Float32.arctan2(sqrt2over2, sqrt2over2) == Float32.pi / 4.0;\n /// ```\n public func arctan2(y : Float32, x : Float32) : Float32 {\n fromFloat(Prim.arctan2(toFloat(y), toFloat(x)))\n };\n\n /// Returns the value of `e` raised to the `x`-th power.\n ///\n /// Special cases:\n /// ```\n /// exp(+inf) => +inf\n /// exp(-inf) => 0.0\n /// exp(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.exp(1.0), Float32.e, epsilon);\n /// ```\n public func exp(x : Float32) : Float32 {\n fromFloat(Prim.exp(toFloat(x)))\n };\n\n /// Returns the natural logarithm (base-`e`) of `x`.\n ///\n /// Special cases:\n /// ```\n /// log(0.0) => -inf\n /// log(-0.0) => -inf\n /// log(x) => NaN if x < 0.0\n /// log(+inf) => +inf\n /// log(NaN) => NaN\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.log(Float32.e), 1.0, epsilon);\n /// ```\n public func log(x : Float32) : Float32 {\n fromFloat(Prim.log(toFloat(x)))\n };\n\n /// Formatting. `format(fmt, x)` formats `x` to `Text` according to the\n /// formatting directive `fmt`, which can take one of the following forms:\n ///\n /// * `#fix prec` as fixed-point format with `prec` digits\n /// * `#exp prec` as exponential format with `prec` digits\n /// * `#gen prec` as generic format with `prec` digits\n /// * `#exact` as exact format that can be decoded without loss.\n ///\n /// `-0.0` is formatted with negative sign bit.\n /// Positive infinity is formatted as \"inf\".\n /// Negative infinity is formatted as \"-inf\".\n ///\n /// The numerical precision and the text format can vary between\n /// Motoko versions and runtime configuration. Moreover, `NaN` can be printed\n /// differently, i.e. \"NaN\" or \"nan\", potentially omitting the `NaN` sign.\n ///\n /// Example:\n /// ```motoko include=import no-validate\n /// assert Float32.format(123.0 : Float32, #exp (3 : Nat8)) == \"1.230e+02\";\n /// ```\n public func format(self : Float32, fmt : { #fix : Nat8; #exp : Nat8; #gen : Nat8; #exact }) : Text {\n let f = toFloat(self);\n switch fmt {\n case (#fix(prec)) { Prim.floatToFormattedText(f, prec, 0) };\n case (#exp(prec)) { Prim.floatToFormattedText(f, prec, 1) };\n case (#gen(prec)) { Prim.floatToFormattedText(f, prec, 2) };\n case (#exact) { Prim.floatToFormattedText(f, 17, 2) }\n }\n };\n\n /// Conversion to Text. Use `format(fmt, x)` for more detailed control.\n ///\n /// `-0.0` is formatted with negative sign bit.\n /// Positive infinity is formatted as `inf`.\n /// Negative infinity is formatted as `-inf`.\n /// `NaN` is formatted as `NaN` or `-NaN` depending on its sign bit.\n ///\n /// The numerical precision and the text format can vary between\n /// Motoko versions and runtime configuration. Moreover, `NaN` can be printed\n /// differently, i.e. \"NaN\" or \"nan\", potentially omitting the `NaN` sign.\n ///\n /// Example:\n /// ```motoko include=import no-validate\n /// assert Float32.toText(1.5) == \"1.5\";\n /// ```\n public func toText(self : Float32) : Text {\n Prim.floatToText(toFloat(self))\n };\n\n /// Conversion to Int64 by truncating Float32, equivalent to `toInt64(trunc(f))`\n ///\n /// Traps if the floating point number is larger or smaller than the representable Int64.\n /// Also traps for `inf`, `-inf`, and `NaN`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.toInt64(-12.0) == -12;\n /// ```\n public func toInt64(self : Float32) : Int64 {\n Prim.floatToInt64(toFloat(self))\n };\n\n /// Conversion from Int64.\n ///\n /// Note: The floating point number may be imprecise for large or small Int64.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.fromInt64(-42) == -42.0;\n /// ```\n public func fromInt64(x : Int64) : Float32 {\n fromFloat(Prim.int64ToFloat(x))\n };\n\n /// Conversion to Int.\n ///\n /// Traps for `inf`, `-inf`, and `NaN`.\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.toInt(1.0e6) == +1_000_000;\n /// ```\n public func toInt(self : Float32) : Int {\n Prim.floatToInt(toFloat(self))\n };\n\n /// Determines whether `x` is equal to `y` within the defined tolerance of `epsilon`.\n /// The `epsilon` considers numerical errors, see comment above.\n /// Equivalent to `Float32.abs(x - y) <= epsilon` for a non-negative epsilon.\n ///\n /// Traps if `epsilon` is negative or `NaN`.\n ///\n /// Special cases:\n /// ```\n /// equal(+0.0, -0.0, epsilon) => true for any `epsilon >= 0.0`\n /// equal(-0.0, +0.0, epsilon) => true for any `epsilon >= 0.0`\n /// equal(+inf, +inf, epsilon) => true for any `epsilon >= 0.0`\n /// equal(-inf, -inf, epsilon) => true for any `epsilon >= 0.0`\n /// equal(x, NaN, epsilon) => false for any x and `epsilon >= 0.0`\n /// equal(NaN, y, epsilon) => false for any y and `epsilon >= 0.0`\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(-12.3, -1.23e1, epsilon);\n /// ```\n public func equal(x : Float32, y : Float32, epsilon : Float32) : Bool {\n if (not (epsilon >= (0.0 : Float32))) {\n // also considers NaN, not identical to `epsilon < 0.0`\n Prim.trap(\"Float32.equal(): epsilon must be greater or equal 0.0\")\n };\n x == y or abs(x - y) <= epsilon // `x == y` to also consider infinity equal\n };\n\n /// Determines whether `x` is not equal to `y` within the defined tolerance of `epsilon`.\n /// The `epsilon` considers numerical errors, see comment above.\n /// Equivalent to `not equal(x, y, epsilon)`.\n ///\n /// Traps if `epsilon` is negative or `NaN`.\n ///\n /// Special cases:\n /// ```\n /// notEqual(+0.0, -0.0, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(-0.0, +0.0, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(+inf, +inf, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(-inf, -inf, epsilon) => false for any `epsilon >= 0.0`\n /// notEqual(x, NaN, epsilon) => true for any x and `epsilon >= 0.0`\n /// notEqual(NaN, y, epsilon) => true for any y and `epsilon >= 0.0`\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert not Float32.notEqual(-12.3, -1.23e1, epsilon);\n /// ```\n public func notEqual(x : Float32, y : Float32, epsilon : Float32) : Bool {\n if (not (epsilon >= (0.0 : Float32))) {\n // also considers NaN, not identical to `epsilon < 0.0`\n Prim.trap(\"Float32.notEqual(): epsilon must be greater or equal 0.0\")\n };\n not (x == y or abs(x - y) <= epsilon)\n };\n\n /// Returns `x < y`.\n ///\n /// Special cases:\n /// ```\n /// less(+0.0, -0.0) => false\n /// less(-0.0, +0.0) => false\n /// less(NaN, y) => false for any Float32 y\n /// less(x, NaN) => false for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.less(Float32.e, Float32.pi);\n /// ```\n public func less(x : Float32, y : Float32) : Bool { x < y };\n\n /// Returns `x <= y`.\n ///\n /// Special cases:\n /// ```\n /// lessOrEqual(+0.0, -0.0) => true\n /// lessOrEqual(-0.0, +0.0) => true\n /// lessOrEqual(NaN, y) => false for any Float32 y\n /// lessOrEqual(x, NaN) => false for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.lessOrEqual(0.123, 0.1234);\n /// ```\n public func lessOrEqual(x : Float32, y : Float32) : Bool { x <= y };\n\n /// Returns `x > y`.\n ///\n /// Special cases:\n /// ```\n /// greater(+0.0, -0.0) => false\n /// greater(-0.0, +0.0) => false\n /// greater(NaN, y) => false for any Float32 y\n /// greater(x, NaN) => false for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.greater(Float32.pi, Float32.e);\n /// ```\n public func greater(x : Float32, y : Float32) : Bool { x > y };\n\n /// Returns `x >= y`.\n ///\n /// Special cases:\n /// ```\n /// greaterOrEqual(+0.0, -0.0) => true\n /// greaterOrEqual(-0.0, +0.0) => true\n /// greaterOrEqual(NaN, y) => false for any Float32 y\n /// greaterOrEqual(x, NaN) => false for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.greaterOrEqual(0.1234, 0.123);\n /// ```\n public func greaterOrEqual(x : Float32, y : Float32) : Bool {\n x >= y\n };\n\n /// Defines a total order of `x` and `y` for use in sorting.\n ///\n /// Note: Using this operation to determine equality or inequality is discouraged for two reasons:\n /// * It does not consider numerical errors, see comment above. Use `equal(x, y, epsilon)` or\n /// `notEqual(x, y, epsilon)` to test for equality or inequality, respectively.\n /// * `NaN` are here considered equal if their sign matches, which is different to the standard equality\n /// by `==` or when using `equal()` or `notEqual()`.\n ///\n /// Total order:\n /// * negative NaN (no distinction between signalling and quiet negative NaN)\n /// * negative infinity\n /// * negative numbers (including negative subnormal numbers in standard order)\n /// * negative zero (`-0.0`)\n /// * positive zero (`+0.0`)\n /// * positive numbers (including positive subnormal numbers in standard order)\n /// * positive infinity\n /// * positive NaN (no distinction between signalling and quiet positive NaN)\n ///\n /// Example:\n /// ```motoko include=import\n /// assert Float32.compare(0.123, 0.1234) == #less;\n /// ```\n public func compare(x : Float32, y : Float32) : Order.Order {\n if (isNaN(x)) {\n if (isNegative(x)) {\n if (isNaN(y) and isNegative(y)) { #equal } else { #less }\n } else {\n if (isNaN(y) and not isNegative(y)) { #equal } else { #greater }\n }\n } else if (isNaN(y)) {\n if (isNegative(y)) {\n #greater\n } else {\n #less\n }\n } else {\n if (x == y) { #equal } else if (x < y) { #less } else {\n #greater\n }\n }\n };\n\n func isNegative(self : Float32) : Bool {\n copySign(1.0, self) < (0.0 : Float32)\n };\n\n /// Returns the negation of `x`, `-x`.\n ///\n /// Changes the sign bit for infinity.\n ///\n /// Special cases:\n /// ```\n /// neg(+inf) => -inf\n /// neg(-inf) => +inf\n /// neg(+NaN) => -NaN\n /// neg(-NaN) => +NaN\n /// neg(+0.0) => -0.0\n /// neg(-0.0) => +0.0\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.neg(1.23), -1.23, epsilon);\n /// ```\n public func neg(x : Float32) : Float32 { -x };\n\n /// Returns the sum of `x` and `y`, `x + y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// add(+inf, y) => +inf if y is any Float32 except -inf and NaN\n /// add(-inf, y) => -inf if y is any Float32 except +inf and NaN\n /// add(+inf, -inf) => NaN\n /// add(NaN, y) => NaN for any Float32 y\n /// ```\n /// The same cases apply commutatively, i.e. for `add(y, x)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.add(1.23, 0.123), 1.353, epsilon);\n /// ```\n public func add(x : Float32, y : Float32) : Float32 { x + y };\n\n /// Returns the difference of `x` and `y`, `x - y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// sub(+inf, y) => +inf if y is any Float32 except +inf or NaN\n /// sub(-inf, y) => -inf if y is any Float32 except -inf and NaN\n /// sub(x, +inf) => -inf if x is any Float32 except +inf and NaN\n /// sub(x, -inf) => +inf if x is any Float32 except -inf and NaN\n /// sub(+inf, +inf) => NaN\n /// sub(-inf, -inf) => NaN\n /// sub(NaN, y) => NaN for any Float32 y\n /// sub(x, NaN) => NaN for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.sub(1.23, 0.123), 1.107, epsilon);\n /// ```\n public func sub(x : Float32, y : Float32) : Float32 { x - y };\n\n /// Returns the product of `x` and `y`, `x * y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// mul(+inf, y) => +inf if y > 0.0\n /// mul(-inf, y) => -inf if y > 0.0\n /// mul(+inf, y) => -inf if y < 0.0\n /// mul(-inf, y) => +inf if y < 0.0\n /// mul(+inf, 0.0) => NaN\n /// mul(-inf, 0.0) => NaN\n /// mul(NaN, y) => NaN for any Float32 y\n /// ```\n /// The same cases apply commutatively, i.e. for `mul(y, x)`.\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.mul(1.23, 1e2), 123.0, epsilon);\n /// ```\n public func mul(x : Float32, y : Float32) : Float32 { x * y };\n\n /// Returns the division of `x` by `y`, `x / y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// div(0.0, 0.0) => NaN\n /// div(x, 0.0) => +inf for x > 0.0\n /// div(x, 0.0) => -inf for x < 0.0\n /// div(x, +inf) => 0.0 for any x except +inf, -inf, and NaN\n /// div(x, -inf) => 0.0 for any x except +inf, -inf, and NaN\n /// div(+inf, y) => +inf if y >= 0.0\n /// div(+inf, y) => -inf if y < 0.0\n /// div(-inf, y) => -inf if y >= 0.0\n /// div(-inf, y) => +inf if y < 0.0\n /// div(NaN, y) => NaN for any Float32 y\n /// div(x, NaN) => NaN for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.div(1.23, 1e2), 0.0123, epsilon);\n /// ```\n public func div(x : Float32, y : Float32) : Float32 { x / y };\n\n /// Returns the floating point division remainder `x % y`,\n /// which is defined as `x - trunc(x / y) * y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// rem(0.0, 0.0) => NaN\n /// rem(x, +inf) => x for any x except +inf, -inf, and NaN\n /// rem(x, -inf) => x for any x except +inf, -inf, and NaN\n /// rem(+inf, y) => NaN for any Float32 y\n /// rem(-inf, y) => NaN for any Float32 y\n /// rem(NaN, y) => NaN for any Float32 y\n /// rem(x, NaN) => NaN for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.rem(7.2, 2.3), 0.3, epsilon);\n /// ```\n public func rem(x : Float32, y : Float32) : Float32 { x % y };\n\n /// Returns `x` to the power of `y`, `x ** y`.\n ///\n /// Note: Numerical errors may occur, see comment above.\n ///\n /// Special cases:\n /// ```\n /// pow(+inf, y) => +inf for any y > 0.0 including +inf\n /// pow(+inf, 0.0) => 1.0\n /// pow(+inf, y) => 0.0 for any y < 0.0 including -inf\n /// pow(x, +inf) => +inf if x > 0.0 or x < 0.0\n /// pow(0.0, +inf) => 0.0\n /// pow(x, -inf) => 0.0 if x > 0.0 or x < 0.0\n /// pow(0.0, -inf) => +inf\n /// pow(x, y) => NaN if x < 0.0 and y is a non-integral Float32\n /// pow(NaN, y) => NaN if y != 0.0\n /// pow(NaN, 0.0) => 1.0\n /// pow(x, NaN) => NaN for any Float32 x\n /// ```\n ///\n /// Example:\n /// ```motoko include=import\n /// let epsilon = 1e-5 : Float32;\n /// assert Float32.equal(Float32.pow(2.5, 2.0), 6.25, epsilon);\n /// ```\n public func pow(x : Float32, y : Float32) : Float32 { x ** y };\n\n}\n"}}} \ No newline at end of file diff --git a/versions/latest/moc.min.js b/versions/latest/moc.min.js index 147664f..56da137 100644 --- a/versions/latest/moc.min.js +++ b/versions/latest/moc.min.js @@ -1 +1 @@ -!function(r){function n(){var n=this||self;n.globalThis=n,delete r.prototype._T_}"object"!=typeof globalThis&&(this?n():(r.defineProperty(r.prototype,"_T_",{configurable:!0,get:n}),_T_))}(Object),function(r){"use strict";var n="object"==typeof module&&module.exports||r,t=" mentioned in error at ",e=183,a="buffer_size: unexpected variant",u="facos",f="cannot infer type of wildcard",i="size",c=16384,v=1114111,o=255,A=395720131,s="frame_ptr <> stack_ptr",b="func",l="expected function type, but expression produces type\n ",B="box_f64",j="idl_sub_buf_words",k="__",p="__stablememory_load_float64",m="malformed UTF-8 encoding",d="to_candid argument must have shared type, but instead has non-shared type%a",_="malformed operator",h="duplicate binding for ",x="deadline",y="clz64",w="M0141",g="deserialize",q="popcntInt8",I="sys_big_int_of_string",D="Unsupported persistence version. Use newer Motoko compiler version.",E="text_concat",N="tup_scrut",T="region0_get",F="",M=487,P="obj_idx<",U="convertee",G="canister_inspect_message",$="M0222",K="Int8Lit",O="DIDL",R="rts_version",Q=870828711,C="ExpField",H="lowering/desugar.ml",V="idllib/arrange_idl.ml",L="parsing",z="mutbox_value",S="actor classes with non non-async return types are deprecated; please declare the return type as 'async ...'",Z="nat32",W=246,X=160,J="max_res_bytes",Y="actor class configuration unsupported in interpreter",rr="?",nr="rsh_Nat",tr='compile_const_exp/VarE: "%s" not found',er="get_typtbl_size_ptr",ar="__stablememory_load_word64",ur="schedule_incremental_gc",fr="ObjP",ir="__idl_types_length",cr=" and ",vr="StableMemory offset out of bounds",or="NegOp",Ar="canister_init",sr="asin",br="if_can_tag_i64",lr="int16",Br="env_var_value_copy",jr="v_rng",kr="EEXIST",pr=431,mr="blob_compare",dr="start_gc_after_destabilization",_r="cannot reject when running locally",hr=405,xr="__stablemem_ensure",yr="jsError",wr=-872313182,gr="fmax",qr=7947,Ir=475,Dr="file size is larger than an OCaml 63-bit integer",Er="Int64Lit",Nr="fmodf",Tr="h_ptr",Fr="M0146",Mr="cannot get deadline when running locally",Pr="B+div",Ur="bigint_ge",Gr="json",$r="__stablememory_store_word16",Kr="canister_subnet",Or="shared function has non-shared parameter type%a",Rr="clz16",Qr=781116926,Cr="ENOMEM",Hr=8041,Vr="ENETDOWN",Lr=852405675,zr="env",Sr="regionStoreNat64",Zr="prim",Wr=110,Xr=420,Jr="src/sexp_conv.ml",Yr="field",rn="LitE",nn=-798940232,tn="array index out of bounds",en="region_page_count",an=250,un="expected array type, but expression produces type\n %s",fn="<- await",cn="value_len",vn="inspect",on="",An=130,sn="cannot send references on IC System API",bn="last",ln="float32",Bn="RotROp",jn="Map.bal",kn="cannot have more than one mode",pn="bigint_to_word64_wrap",mn="heapSize",dn="ctz8",_n="msg",hn="first_word",xn="__motoko_runtime_information",yn=140,wn="Shared Composite",gn="get_maintyps_ptr",qn="bigint_isneg",In="Nat32Lit",Dn="btst32",En="arithmetic overflow",Nn="bad import: imported actor class cannot be anonymous",Tn="text_size",Fn="IDL error: exceeded value limit",Mn=" of type:",Pn="non-",Un="AsyncT",Gn="multi_val_",$n="log",Kn="PostPreUpgrade",On="heartbeat_exp",Rn="A.B.C",Qn="mo_types/typ_hash.ml",Cn="__stablememory_size",Hn=1247,Vn="PrimT",Ln=": ",zn="object type",Sn="skip_any",Zn="InInit",Wn=176,Xn=55296,Jn="cannot infer type of primitive",Yn=126,rt="regionStoreNat32",nt="Array",tt=345,et="count",at="of_string",ut=" Display this list of options",ft="BoolLit",it="EFBIG",ct="ERANGE",vt="actor class has non-async return type",ot="opt_inject",At="EPROTOTYPE",st="env_var_value_size",bt="true",lt="msg_arg_data_size",Bt="shared function has non-async result type",jt="shared query function must have syntactic return type 'async '",kt="ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0",pt="set_upgrade_instructions",mt=1348,dt="type ",_t="continuation_table_size",ht="data_certificate_copy",xt=288,yt="with",wt="assign_stable_type",gt=216,qt="find_field",It="fmod",Dt="mo_frontend/bi_match.ml",Et="Arr.toBlob",Nt="object pattern cannot consume expected type",Tt="",Ft=65535,Mt=405210929,Pt="InPostUpgrade",Ut="get_heap_base",Gt="CatOp",$t="maxLiveSize",Kt=495,Ot="inner actor classes are not supported yet; any actor class must come last in your program",Rt=737308346,Qt=228,Ct="decrement",Ht="migration",Vt="alloc_words",Lt="Expect one table in first module",zt="newPages",St="LeOp",Zt="src/fmt.ml",Wt="word16",Xt=342,Jt=112,Yt="decodeUtf8",re="",ne="obj_idx<%d>",te="destination_invalid",ee="fmtFloat->Text",ae="stableMemoryLoadNat32",ue="M0207",fe="EADDRINUSE",ie="bigint_trap",ce="AsyncE*",ve="ELOOP",oe=398,Ae="blob_of_ptr_size",se="idllib/typing.ml",be=";",le="if_can_tag_i32",Be="TagE",je="subnet_self_size",ke="bad import: expected a module or actor class but found an actor",pe="Export ",me="",de=418,_e="stableMemoryLoadNat16",he="Assert_failure",xe="bigint_div",ye="@@typtbl_end",we=357,ge="CPSAwait answer type error",qe="record",Ie=684370880,De="T1",Ee="M0089",Ne=149,Te="generational",Fe="too few type arguments",Me="<= %s",Pe="NatLit",Ue="cost_call",Ge="switch",$e="TryE",Ke="n",Oe="blob too long for actor principal",Re="curve",Qe="Failure",Ce=" declared",He=57344,Ve="remember_continuation",Le="param",ze="WeakT",Se="ESOCKTNOSUPPORT",Ze="moc_stable_mem_set_version",We="region_load_word64",Xe=994,Je="s",Ye="unop",ra="fatan",na="M0190",ta="M0131",ea=1255,aa="inspect_exp",ua=143,fa="wpow_nat",ia="async",ca="AndT",va="cycles",oa="ENOBUFS",Aa="graph_stabilization_increment",sa="initialize_static_variables",ba="totalAllocation",la="cannot decide subtyping between type",Ba="rts_in_upgrade",ja="M0166",ka="/static/",pa="init_region",ma="Blob.compare_lt",da="the type ",_a="Module",ha="idlHash only implemented in interpreter",xa="Fatal error: exception %s\n",ya="InComposite",wa=511,ga=824580451,qa="val",Ia="ETOOMANYREFS",Da=336,Ea="MixinD",Na="lib.mo",Ta=133,Fa="Any",Ma="amount",Pa="field names ",Ua="ffloor",Ga=223,$a="regionGrow",Ka="RetE",Oa="__motoko_gc_trigger",Ra="nat64",Qa=" of type ",Ca="bigint_2complement_bits",Ha="regionLoadNat16",Va=210,La="set_dedup_table",za="principal_of_blob",Sa="popcnt32",Za="stableMemoryLoadInt8",Wa=" does not exist in ",Xa="MulOp",Ja="regionStoreNat8",Ya=1350,ru="v_dom",nu="expected mutable assignment target",tu="(%s%s)",eu="memorySize",au="relop",uu="integer too large",fu=4100401,iu="write_location",cu="stableMemoryStoreInt64",vu="M0241",ou="cost_sign_with_ecdsa",Au="ir_def/construct.ml",su="num_conv",bu="multi_val_%d",lu="array_len",Bu="fd_write",ju="LitP",ku="\n",pu="rts_lifetime_instructions",mu="could not perform oneway",du="BinOp",_u="sleb128_decode",hu="bigint_lsh",xu="cycle_available",yu="rts_max_live_size",wu="M0145",gu="error_value",qu="arg_typ",Iu=454,Du="principalOfActor",Eu="tan",Nu="PreInit",Tu="ValPF",Fu=65528,Mu="as_obj",Pu=737455525,Uu="DecField",Gu="cast",$u="__stablemem_%swrite_%s",Ku="cannot get root-key when running locally",Ou="system_transient",Ru="btstInt16",Qu=".",Cu=416,Hu="ignored argument of `async*` type has no effect",Vu="@reject_callback",Lu=155,zu="alloc_array",Su="__lifetime_instructions",Zu="human",Wu="ImplicitLibE",Xu="Nat64",Ju="regionLoadInt64",Yu=334,rf="ic0_stable64_read",nf="set_val: ",tf="Odd: Type hash scratch space not empty",ef="__type_offsets_length",af=4294967296,uf="M0211",ff="meth_pair1",cf="cannot get caller when running locally",vf="persistent",of="pages_needed",Af="M0195",sf="cannot compute union of types containing recursive or forward references to other type definitions",bf="type field",lf=15713,Bf="EPIPE",jf="public",kf=7977,pf="incremental",mf="ctz16",df="wasi_snapshot_preview1",_f="start_graph_stabilization",hf='compile_const_exp/ObjE: "%s" not found',xf="IDL error: left-over references ",yf="ctzInt32",wf="stableMemoryStoreBlob",gf=756711075,qf=287,If=374,Df="as_ptr_size",Ef=837731904,Nf="Sys_blocked_io",Tf="performance_counter",Ff="bigint_leb128_decode",Mf="@get_actor_to_persist",Pf="",Uf="root_key_copy",Gf="num_wrap",$f="unexpected ",Kf=172,Of="CPSAwait bad cont",Rf="B_lt",Qf=8045,Cf=181,Hf="cannot infer return type",Vf="sanityChecks",Lf="Variant",zf="nat",Sf="with --enhanced-migration, this stable declaration cannot have an initializer.\n Remove the expression and initialize the declaration using a `migration` function.",Zf="int64",Wf=8044,Xf="not a module, skipping",Jf="..",Yf="post_upgrade",ri="oneway function has non-unit return type",ni=65536,ti="len2",ei="UnboxedTuple %d",ai="IDL error: too few arguments ",ui="",fi="wasm-exts/customModuleDecode.ml",ii="compile_eq",ci=65535,vi="system_unknown",oi="Replies",Ai="Blob",si="warning",bi="EADDRNOTAVAIL",li="bigint_rem",Bi="getCandidLimits",ji="M0235",ki="serialize_go",pi="custom section size mismatch",mi="idl_limit_check",di="@anon-",_i="_",hi="word64",xi="misplaced stability declaration on field of non-actor",yi="No global named ",wi="var ",gi=-1073741824,qi="EqOp",Ii="([^/]+)",Di="bigint_of_word32",Ei="assert_nonneg",Ni="with flag --default-persistent-actors, the `persistent` keyword is redundant and can be removed",Ti="opt_scrut",Fi="cos",Mi="ObjBlockE",Pi="OptE",Ui="c",Gi="utf8_valid",$i="msg_arg_data_copy",Ki="Mixins are not yet supported in the interpreter",Oi="cannot combine `(with migration = ...)` with --enhanced-migration; use one or the other.",Ri="linking/linkModule.ml",Qi="continue outside of loop",Ci=236,Hi="_start",Vi="get_n_ptr",Li="canister_reject",zi="EINTR",Si="__heap_base",Zi=189,Wi="M0142",Xi="CallE",Ji="__wasm_call_ctors",Yi='compile_const_exp/VarE: "',rc="env_var",nc="stableMemoryStoreNat16",tc="regionLoadNat8",ec="data_start",ac="regionLoadFloat",uc="duplicate binding for type ",fc=354,ic="is_ref",cc='" not found',vc="composite send capability required, but not available\n (cannot call a `composite query` function from a non-`composite query` function)",oc="[var ",Ac="unexpected `system` capability (try deleting it)",sc="__stablememory_store_word8",bc="skip_fields",lc="implicit",Bc="ref_size",jc="async expressions are not supported",kc="\\\\",pc="EINVAL",mc="get_total_allocations",dc="str_caller",_c="timer_exp",hc="schedule",xc="\\n",yc=147,wc="Error",gc="misplaced ",qc="Query",Ic=7976,Dc=1054,Ec="ObjE",Nc="idltyp2",Tc="fasin",Fc="__stablememory_load_word8",Mc="ic0_stable64_grow",Pc="NewObjE",Uc="",Gc="IDL error: coercion failure encountered",$c="@@data_buf",Kc="mo_frontend/parser.ml",Oc="rts_reclaimed",Rc=434,Qc=" missing",Cc=323557469,Hc="rts_start",Vc="WMulOp",Lc="compile_lit_pat",zc="rts",Sc="alloc_weak_ref",Zc="heartbeat",Wc="Float32",Xc="DotH",Jc="call_new",Yc="%.*g",rv="b",nv="PrimE",tv="Stack_overflow",ev="text",av="Invalid_argument",uv="shared function has unexpected type parameters",fv="Nat",iv="schedule_",cv="getCandidTypeLimits",vv="text_of_ptr_size",ov=" than expected",Av="ftan",sv=252,bv="serialize",lv="-help",Bv="B_mod",jv="timer",kv=178,pv="/",mv="v",dv="Out_of_memory",_v="buffer.ml",hv="idltyp1",xv=256,yv=-48,wv=16777212,gv="EHOSTUNREACH",qv="Blob size out of bounds",Iv="blob_of_text",Dv="recall_continuation",Ev="rts_stable_memory_size",Nv="codegen/compile_enhanced.ml",Tv="ir_passes/eq.ml",Fv="the new type of stable variable `",Mv=-10,Pv=937,Uv="EPERM",Gv="@;<0 0>",$v="@[<2>async@ %a@]",Kv="NotE",Ov="bigint_to_float64",Rv="None",Qv="conv_Char_Text",Cv="message result is not sharable:\n ",Hv="Prim",Vv="idl_sub_buf_init",Lv="not a directory",zv="data_size",Sv="unexpected call_conv ",Zv="principalOfBlob",Wv="Local actors not supported by backend",Xv="let",Jv="compile_const_exp/ProjE: not a static tuple",Yv=114,ro="actor classes are not supported",no="blobOfPrincipal",to="data_segment_blob",eo=350,ao="send capability required, but not available\n (cannot call a `shared` function from a `query` function)",uo="setCandidLimits",fo="IDL error: incompatible actor type",io="length",co="bigint_leb128_size",vo="ENOEXEC",oo=", characters ",Ao="compile_unop",so=-588596599,bo="type_desc: unexpected type ",lo="Candid limit denominator cannot be zero",Bo="ctzInt64",jo="continue",ko=1022,po="cannot perform ",mo="from_candid requires but is missing a known type (from context)",_o=" must not depend on itself",ho="cost_sign_with_schnorr",xo=" does not match pattern",yo="M0007",wo=201,go="compile_relop",qo="region_load_word32",Io="binop",Do=16777153,Eo="from_%i_tuple",No="arrayMutToBlob",To="TagP",Fo="typ_field",Mo="start",Po="reference buffer not filled",Uo="stableMemoryLoadInt16",Go="module",$o=148,Ko="set_val: %s is const",Oo=154,Ro="exp",Qo=7944,Co="get",Ho="M0155",Vo="stableVarQuery",Lo="open",zo="blobToArray",So="Division_by_zero",Zo="cycles out of bounds",Wo="env_var_name_size",Xo=438,Jo="payload_size",Yo=104,rA="Blob.compare",nA="type:",tA="clzInt64",eA="UnboxedWord64",aA="ENOTSOCK",uA="i",fA="M0061",iA="rts_total_allocation",cA="IdxE",vA="mo_frontend/stability.ml",oA="Undefined_recursive_module",AA="Nat16",sA="EHOSTDOWN",bA=226,lA="ESPIPE",BA="cannot compile library",jA="operator is not defined for operand type",kA="M0101",pA=300,mA="free_stable_actor",dA="assertion failed at %s",_A="illegal escape",hA="clzInt16",xA="maxStackSize",yA="promising function cannot be local:\n ",wA=151,gA="field name ",qA="region_store_word16",IA="bigint_to_word64_trap_with",DA=185,EA="msg_reply",NA=" <: ",TA=")\n",FA=485,MA="Int",PA=146,UA=65280,GA="object",$A=144,KA="compute_crc32",OA="label",RA="btstInt32",QA="raw call",CA="tuple pattern has ",HA="__call_perform_message",VA=438511779,LA="error_code",zA="actor classes with type parameters are not supported yet",SA="hv5xj38a-hmjm7x6r-xb31fk7z-klb59z9x",ZA="EWOULDBLOCK",WA="incremental_gc",XA="cannot reply when running locally",JA="no such file or directory",YA="ECHILD",rs="region_vec_pages",ns="cannot infer type of implicit argument",ts=1024,es="compile_start_func: Cannot compile library",as="cannot get arg_data when running locally",us=768,fs="` is missing from ",is=138,cs="Int->Int64",vs="GOT.func",os=366,As="sin",ss="meth_pair2",bs='"',ls="bigint_to_word64_trap",Bs=105,js="ctzInt8",ks="M0238",ps="Idle",ms=224,ds="Array.idx",_s="@@type_bias",hs="tuple pattern cannot consume expected type",xs="__stablemem_size",ys="GeOp",ws="bad file descriptor",gs="AllocHow.join: cannot join StoreStatic and StoreHeap",qs=129,Is="__motoko_destabilize_after_upgrade",Ds="buf",Es="message result is not sharable:\n %s",Ns="blob index out of bounds",Ts="next",Fs="pipeline/pipeline.ml",Ms="actor class cannot take a context pattern",Ps="ENAMETOOLONG",Us=1031864215,Gs=1114112,$s="DoOptE",Ks="",Os="M0005",Rs=1e3,Qs=921,Cs="rmdir",Hs="str_self",Vs="\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Ls=8047,zs="this looks like an unintended function call, perhaps a missing ';'?",Ss="}",Zs="IfE",Ws="bigint_leb128_stream_encode",Xs="M0177",Js=158,Ys="illegal operation on a directory",rb="a float",nb="stableMemoryStoreInt32",tb="@;<0 -2>",eb="rts_max_stack_size",ab="__init_message_payload",ub="@ ",fb="this uninitialized `let` can only use a simple identifier pattern `let : `",ib="mo_types/productive.ml",cb=389604418,vb="",ob="text_iter",Ab="text_uppercase",sb="ExpD",bb="AndE",lb="AndOp",Bb="M0218",jb="no type can be inferred for actor reference",kb="T2",pb="lower",mb="internal error: left-over ThrowPrim",db=107,_b="copying",hb="alloc_size<",xb=197,yb="'",wb="ESRCH",gb="codepoint out of range",qb="lib/pack/menhirLib.ml",Ib="EISDIR",Db="operator is not defined for operand type%a",Eb="%.17g",Nb="Int8",Tb="y",Fb="unbound variable %s%a",Mb=1073741823,Pb="moc_stable_mem_set_size",Ub="regionLoadBlob",Gb="call_cycles_add128",$b="text_iter_done",Kb="M0254",Ob="\n scope ",Rb="try handler",Qb="SwitchE",Cb="bigint_sleb128_encode",Hb=">_tag<",Vb=242899572,Lb="`, `",zb="msg_reject_msg_copy",Sb=180,Zb=2147483647,Wb="moc_stabilization_instruction_limit",Xb="M0032",Jb="temp_ptr",Yb="M0074",rl="OrOp",nl="done",tl="M0244",el="menhir-recovery-lib/menhirRecoveryLib.ml",al="M0062",ul="",fl="res",il="pattern failed",cl="bigint_to_word32_trap",vl="bigint_sleb128_stream_encode",ol="regionId",Al="@@global_typtbl_end",sl="Arr.ofBlobMut",bl="__candid_data_length",ll="__run_post_upgrade",Bl="Expected no arguments",jl="Text.compare_ge",kl=428,pl="type",ml="EMSGSIZE",dl="codegen/compile_classical.ml",_l="read_",hl="rts_logical_stable_memory_size",xl="call_on_cleanup",yl="stableMemoryStoreNat32",wl="used more than once",gl="unvisited mutable data in serialize_go (Array)",ql="__destabilized_actor",Il="__stablemem_",Dl="Stable memory error: Aliased at wrong type, expected: ",El="PreLit",Nl="trans_state",Tl="hash",Fl="variable ",Ml=500,Pl=102,Ul=248,Gl="start_graph_destabilization",$l="else",Kl="misplaced return",Ol=1000000010,Rl="__stablemem_ensure_pages",Ql="Unreachable",Cl="Int->",Hl="system_fatal",Vl=359,Ll="lowmemory",zl=423,Sl="Nat64Lit",Zl="EMLINK",Wl="misplaced parenthetical (`async*` calls cannot be modified)",Xl=2146435072,Jl="bigint function error",Yl="canister_composite_query ",rB=392,nB="RelE",tB="bigint_sub",eB="operator may trap for inferred type",aB=4202101,uB="IDL error: unexpected variant tag",fB="unknown mixin %s",iB="Vanilla",cB="@@rel_buf_opt",vB="System",oB="bigint_leb128_decode_word64",AB="assert",sB="cycle_burn",bB="cannot get ",lB="canister_query ",BB=512,jB="B_pow",kB="__stablememory_grow",pB="mismatching sources",mB="EACCES",dB=143365725,_B="mo:",hB="empty",xB="$",yB="M0037",wB="__stablememory_load_word32",gB="ShowE",qB="msg_reply_data_append",IB="IDL error: out of bounds read",DB="explode_Int32",EB=231,NB="ENOTTY",TB="idl_sub",FB=737453762,MB="mixins can only be included in an actor context",PB="e",UB="fatan2",GB="migration expression consumes field `",$B="Local",KB=" components but expected type has ",OB="M0000",RB="moc_stable_mem_grow",QB="fcopysign",CB="unbound variable ",HB=989373200,VB="has_stable_actor",LB=781515420,zB="Passive data segments are not yet supported in the RTS module",SB=254,ZB=7949,WB=7948,XB="certified_data_set",JB="env_var_count",YB="mkdir",rj="canister_error",nj="is_graph_stabilization_started",tj="__motoko_async_helper",ej=848054398,aj="clz8",uj="compile_prim_invocation",fj="__stablememory_load_blob",ij=191,cj="canister_global_timer",vj="call_perform",oj=127,Aj="popcnt64",sj="Out of stable memory.",bj="ic0_performance_counter",lj="show is not defined for operand type",Bj="region_store_word32",jj=266,kj="boxed_f64",pj=483,mj=16776960,dj="type parameters",_j=769,hj=16777211,xj="type field also present in base, here",yj="stable variable",wj="timeout",gj="%s%!",qj="ENOTDIR",Ij="IgnoreE",Dj="__stabilization_completed",Ej="variant",Nj="alloc_size<%d>_tag<%d>",Tj=" in object pattern",Fj="RotLOp",Mj="Value.compare",Pj='file "',Uj="len_self",Gj="set_val: %s is PublicMethod",$j="word",Kj="rts_heap_size",Oj="costSignWithEcdsa",Rj="misplaced await",Qj=-216810653,Cj="@@value_bias",Hj="garbageCollector",Vj="Pervasives.do_at_exit",Lj="from_word128_ptr",zj=341,Sj=240,Zj="lseek",Wj="ignore",Xj="rotl",Jj="unrecognised attribute ",Yj=461,rk="B_add",nk=297,tk="nan:0x",ek="can_recover",ak="",uk="\nand",fk=" has cyclic bounds ",ik=1067124520,ck=106,vk=290,ok=" or ",Ak="cannot set certified data when running locally",sk="compile",bk="version",lk=265,Bk="running_gc",jk="region",kk="print_ptr",pk="old_pages",mk="debug_show",dk=437082891,_k=7982,hk="cannot decide type constructor equality",xk="data_certificate_size",yk=1073741824,wk="@deserialize_go<",gk=188,qk="M0135",Ik="Text.compare_le",Dk="non-toplevel actor; an actor can only be declared at the toplevel of a program",Ek="(Program not linked with -g, cannot print stack backtrace)\n",Nk="",Tk="Array.unsafe_idx",Fk="checking",Mk="word32",Pk="cycle_refunded",Uk=245,Gk="ESHUTDOWN",$k="type:%a",Kk="ENODEV",Ok="function",Rk="variable",Qk="in",Ck="Nat->",Hk="set_static_variable",Vk="cycle_add",Lk="canister_cycle_balance128",zk="EBADF",Sk="sub",Zk="Arr.ofBlob",Wk="stable64_grow",Xk=-605101559,Jk="an integer",Yk="cycles_burn128",rp="ir_passes/show.ml",np="postupgrade",tp="@@global_typtbl",ep="too many type arguments",ap="import",up="an actor or actor class must be the only non-imported declaration in a program",fp="text_compare",ip=386,cp="cannot get self-actor-reference when running locally",vp="preupgrade",op="stableMemoryStoreNat8",Ap="__stablemem_grow",sp="blob_iter",bp="principal",lp="EROFS",Bp="│",jp="@[<1>(%a)@]",kp="Func",pp=115,mp="M0118",dp="chars",_p="BlobLit",hp="get_upgrade_instructions",xp="AwaitE?",yp="rel_buf",wp="mo_idl/mo_to_idl.ml",gp="cannot get cycles available when running locally",qp="pointer",Ip="candid:service",Dp="stableMemoryLoadInt32",Ep="M0017",Np="blob_copy_",Tp="canister_version",Fp="self call",Mp="get_migrations",Pp="switch_in",Up="get_dedup_table",Gp="@[<2>async%s@ %a@]",$p="obj_idx_ind<",Kp="refs_size",Op="msg_method_name_copy",Rp="@reset_cycles",Qp="\nbecause operand types are inconsistent,\nleft operand is",Cp=309,Hp="regionNew",Vp="Blob.compare_ge",Lp="@@value_denominator",zp="",Sp="; ",Zp=", ",Wp="fexp",Xp="value ",Jp="text_lowercase",Yp="region_store_word64",rm="TODO: ",nm="actor field ",tm="@motoko_async_destabilization",em="M0191",am="alloc_blob",um="get_reclaimed",fm="Principal too long",im="expected array type, but expression produces type\n ",cm="M0059",vm="in_replicated_execution",om="<",Am="this function has the name of a system method, but is declared without system visibility and will not be called by the system",sm="array",bm="subnet_self_copy",lm="ObjT",Bm="unreachable",jm=316,km="EAGAIN",pm=141,mm="nativeint_of_big_int",dm="^",_m="rts.wasm",hm=933,xm="<1>",ym="EBUSY",wm="@timeout",gm="__motoko_stable_var_info",qm=368,Im="region_new",Dm=1836278016,Em="cannot get environment variable names when running locally",Nm="classical",Tm="codegen/compile_common.ml",Fm="__typtbl_size",Mm="M0236",Pm="Float32Lit",Um="Invalid stack rep join (%s, %s)\n",Gm="ECONNRESET",$m=926227490,Km="result",Om="cannot compute intersection of types containing recursive or forward references to other type definitions",Rm="M0239",Qm="@@typtbl",Cm=4298439,Hm="unbox64",Vm="UnboxedFloat32",Lm="ENOENT",zm="as_func",Sm="enhanced-orthogonal-persistence",Zm=394,Wm="explode_Nat32",Xm=239,Jm="Returns",Ym="\nLast environment:\n",rd="get_max_live_size",nd="this pattern will always match, so the else clause is useless. Consider removing the else clause",td="misplaced parenthetical (this call does not send a message)",ed="@@global_typtbl_size",ad="uncovered relop",ud="%.16g",fd="btst8",id="TODO: compile_unop",cd="redundant `stable` keyword, this declaration is implicitly stable",vd="Unknown stack_rep conversion %s -> %s\n",od="WhileE",Ad="alloc_stream",sd="costSignWithSchnorr",bd="flog",ld="arrayToBlob",Bd=-840203068,jd=277,kd=-397582078,pd="unicode escape out of range",md="ir_passes/await.ml",dd="` not found in persisted state (migration should have initialized it)",_d="lsh_Nat",hd="LabelE",xd="ENFILE",yd=218,wd=1023,gd="AltP",qd="to_candid argument must have shared type, but instead has non-shared type",Id="to_var_type: UnboxedTuple",Dd="ENOSYS",Ed="stream_write",Nd="Match_failure",Td="name",Fd="Actor",Md="GtOp",Pd=698610924,Ud="AllocHow.disjoint_union: ",Gd="IDL error: variant index out of bounds",$d=7983,Kd="_HP",Od="len",Rd="wrap_pow_Int64",Qd=" is const",Cd="canister_self",Hd="@",Vd=8046,Ld=4194304,zd="bigint_of_word64",Sd="`system` capability required, but not available\n (need an enclosing async expression or function body or explicit `system` type parameter)",Zd="char_is_lowercase",Wd="M",Xd="fnearest",Jd="region_id",Yd="float64",r_=-211555818,n_="keep_memory_reserve",t_="keys",e_="ensured",a_="TupT",u_="compilerVersion",f_=">",i_="M0064",c_="%s: %s",v_="ForE",o_="region_load_word8",A_=7980,s_="Async*",b_="Expect fixed sized table in first module",l_=284,B_="ic0",j_="moc_stable_mem_get_version",k_=16777215,p_="nan",m_=395,d_="@@type_scaler",__="__mutator_instructions",h_="Unknown stack_rep conversion ",x_="operator may trap for inferred type%a",y_="anon_async",w_="compile_exp",g_=659980059,q_="regionStoreInt64",I_=" : ",D_="Private",E_="canister_self_copy",N_=1000000009,T_="B_ge",F_="ActorUrlE",M_="@@",P_="tuple projection ",U_="to_candid",G_="M0194",$_=194,K_="char_is_alphabetic",O_="UnboxedTuple ",R_="pre_upgrade",Q_="idlHash",C_="\\t",H_="costCreateCanister",V_=1063,L_=1252,z_=2147483648,S_=111,Z_="to_%i_tuple",W_="(",X_="TextLit",J_="Region",Y_="stack_overflow",rh="variant pattern cannot consume expected type",nh="time",th="__stablememory_store_float64",eh="ENOSPC",ah="mo_values/show.ml",uh="cannot perform %s when running locally",fh="E2BIG",ih="remote call",ch="data buffer not filled",vh=323,oh="IDL error: blob not a vector of nat8",Ah='/*\nThe primitive definitions.\n\nThis module should contain everything that cannot be implemented in plain\nMotoko. It is available via `import Prim "mo:⛔"`. Normal user code would\nusually not import that module directly, but through `base`, which takes\ncare of providing a proper module structure, e.g. exposing `Array_tabulate`\nthrough `Array.tabulate`.\n\nTherefore, the prim module does not need to provide a stable interface, as its\nonly supported consumer is the `base` library, and that is bundled with the\ncompiler.\n\nNevertheless, it shoud be _safe_ to import prim, i.e. the definitions here\nshould not break type safety or other guarantees of the language.\n*/\n\nmodule Types = {\n public type Any = prim "Any";\n public type None = prim "None";\n public type Null = prim "Null";\n public type Bool = prim "Bool";\n public type Nat = prim "Nat";\n public type Nat8 = prim "Nat8";\n public type Nat16 = prim "Nat16";\n public type Nat32 = prim "Nat32";\n public type Nat64 = prim "Nat64";\n public type Int = prim "Int";\n public type Int8 = prim "Int8";\n public type Int16 = prim "Int16";\n public type Int32 = prim "Int32";\n public type Int64 = prim "Int64";\n public type Float = prim "Float";\n public type Float32 = prim "Float32";\n public type Char = prim "Char";\n public type Text = prim "Text";\n public type Blob = prim "Blob";\n public type Error = prim "Error";\n public type Principal = prim "Principal";\n public type Region = prim "Region";\n};\n\nfunc abs(x : Int) : Nat { (prim "abs" : Int -> Nat) x };\nfunc shiftLeft(x : Nat, shift : Nat32) : Nat {\n (prim "lsh_Nat" : (Nat, Nat32) -> Nat)(x, shift);\n};\nfunc shiftRight(x : Nat, shift : Nat32) : Nat {\n (prim "rsh_Nat" : (Nat, Nat32) -> Nat)(x, shift);\n};\n\n// for testing\nfunc idlHash(x : Text) : Nat32 { (prim "idlHash" : Text -> Nat32) x };\n\n// Printing\n\nfunc debugPrint(x : Text) { (prim "print" : Text -> ()) x };\nfunc debugPrintNat(x : Nat) { debugPrint(@text_of_Nat x) };\nfunc debugPrintInt(x : Int) { debugPrint(@text_of_Int x) };\nfunc debugPrintChar(x : Char) { debugPrint(charToText x) };\n\n// Trapping\n\nfunc trap(x : Text) : None { (prim "trap" : Text -> None) x };\n\n// RTS stats\n\nfunc rts_version() : Text { (prim "rts_version" : () -> Text)() };\nfunc rts_memory_size() : Nat { (prim "rts_memory_size" : () -> Nat)() };\nfunc rts_heap_size() : Nat { (prim "rts_heap_size" : () -> Nat)() };\nfunc rts_total_allocation() : Nat {\n (prim "rts_total_allocation" : () -> Nat)();\n};\nfunc rts_reclaimed() : Nat { (prim "rts_reclaimed" : () -> Nat)() };\nfunc rts_max_live_size() : Nat { (prim "rts_max_live_size" : () -> Nat)() };\nfunc rts_max_stack_size() : Nat { (prim "rts_max_stack_size" : () -> Nat)() };\nfunc rts_callback_table_count() : Nat {\n (prim "rts_callback_table_count" : () -> Nat)();\n};\nfunc rts_callback_table_size() : Nat {\n (prim "rts_callback_table_size" : () -> Nat)();\n};\nfunc rts_mutator_instructions() : Nat {\n (prim "rts_mutator_instructions" : () -> Nat)();\n};\nfunc rts_collector_instructions() : Nat {\n (prim "rts_collector_instructions" : () -> Nat)();\n};\nfunc rts_lifetime_instructions() : Nat {\n (prim "rts_lifetime_instructions" : () -> Nat)();\n};\nfunc rts_upgrade_instructions() : Nat {\n (prim "rts_upgrade_instructions" : () -> Nat)();\n};\n\nfunc rts_stable_memory_size() : Nat {\n (prim "rts_stable_memory_size" : () -> Nat)();\n};\n\nfunc rts_logical_stable_memory_size() : Nat {\n (prim "rts_logical_stable_memory_size" : () -> Nat)();\n};\n\n//TODO: just call this `weak`?\nfunc allocWeakRef(obj : T) : weak T {\n (prim "alloc_weak_ref" : T -> weak T)(obj);\n};\n\nfunc weakGet(w : weak T) : ?T {\n (prim "weak_get" : weak T -> ?T)(w);\n};\n\nfunc isLive(weak_ref : weak Any) : Bool {\n (prim "weak_ref_is_live" : weak Any -> Bool)(weak_ref);\n};\n\nfunc envVarNames() : [Text] {\n (prim "env_var_names" : () -> [Text])();\n};\n\nfunc envVar(name : Text) : ?Text {\n (prim "env_var" : Text -> ?Text)(name);\n};\n\n/// EXPERIMENTAL SECTION AND API. DO NOT USE IN PRODUCTION CODE!\n///\ntype __WeakRef = {\n ref : weak Blob;\n};\ntype __List = {\n var next : ?__List;\n value : ?__WeakRef;\n originalBlob : Blob;\n index : Nat;\n};\nfunc __getDedupTable() : ?[var __List] {\n (prim "get_dedup_table" : () -> ?[var __List])();\n};\n\nclass BlobIterator(hash : [var __List]) {\n let HASH_ARRAY_SIZE = 16_384;\n var currentIndex : Nat = 0;\n var currentList : ?__List = null;\n let hashArray = hash;\n\n // Counts the number of dead blobs.\n public func size() : Nat {\n var len = 0;\n var i = 0;\n while (i < HASH_ARRAY_SIZE) {\n var list = hashArray[i];\n label countLoop loop {\n let weakRef = list.value;\n switch weakRef {\n case (?weakRef) {\n let deref = weakGet(weakRef.ref);\n switch deref {\n case (?deref) {};\n case null { len += 1 };\n };\n };\n case null {};\n };\n let next = list.next;\n switch next {\n case (?next) { list := next };\n case null { break countLoop };\n };\n };\n i += 1;\n };\n len;\n };\n\n func getDeadBlobFromListNode(list : ?__List) : ?Blob {\n switch list {\n case (?myList) {\n let weakRef = myList.value;\n switch weakRef {\n case (?weakRef) {\n let deref = weakGet(weakRef.ref);\n switch deref {\n case (?deref) { return null };\n case null { return ?myList.originalBlob };\n };\n };\n case null { return null };\n };\n };\n case null { return null };\n };\n };\n\n func advanceListNode(list : ?__List) : ?__List {\n switch list {\n case (?list) { list.next };\n case null { null };\n };\n };\n\n public func nextDeadBlob() : Blob {\n // Start at the current index and list.\n loop {\n // Get the blob from the current list node.\n let blob = getDeadBlobFromListNode(currentList);\n switch blob {\n // If we found a blob, return it.\n case (?blob) {\n // Advance to the next list node.\n // So that next time we call nextDeadBlob(), we get the next blob.\n currentList := advanceListNode(currentList);\n return blob;\n };\n case null {\n // If we didn\'t find a blob, advance to the next list node.\n currentList := advanceListNode(currentList);\n\n switch currentList {\n case (?_) {};\n // If we reached the end of the list, advance to the next index.\n case null {\n currentIndex += 1;\n // If we reached the end of the hash array, return null.\n if (currentIndex >= HASH_ARRAY_SIZE) {\n return "";\n };\n // Get the new list node.\n currentList := ?hashArray[currentIndex];\n };\n };\n\n };\n };\n };\n "";\n };\n\n func computeIndex(b : Blob) : Nat {\n // Append the magic bytes to compute the hash.\n let magicBytes : [Nat8] = [0x21, 0x63, 0x61, 0x66, 0x21];\n let originalBlob : [Nat8] = blobToArray(b);\n let concat = Array_tabulate(magicBytes.size() + originalBlob.size(), func(i : Nat) : Nat8 = if (i < magicBytes.size()) { magicBytes[i] } else { originalBlob[i - magicBytes.size()] });\n let bWithMagic = arrayToBlob(concat);\n // Get hash bucket.\n let hashValue = hashBlob(bWithMagic);\n nat32ToNat(hashValue) % HASH_ARRAY_SIZE;\n };\n\n public func isBlobLive(b : Blob) : Bool {\n let index = computeIndex(b);\n var list = hashArray[index];\n // Walk the list and check if the blob is live.\n loop {\n if (blobCompare(list.originalBlob, b) == 0) {\n let weakRef = list.value;\n switch weakRef {\n case (?weakRef) { return isLive(weakRef.ref) };\n // The weak ref should not be null, but just in case.\n case null { return false };\n };\n } else {\n // Advance to the next list node.\n let next = list.next;\n switch next {\n case (?next) { list := next };\n // If we reached the end of the list, return false.\n case null { return false };\n };\n };\n };\n };\n\n func pruneFirstElement(list : __List, b : Blob, index : Nat) : Bool {\n let deadBlob = getDeadBlobFromListNode(?list);\n switch deadBlob {\n case (?deadBlob) {\n if (blobCompare(deadBlob, b) == 0) {\n let nextElem = list.next;\n switch nextElem {\n case (?next) { hashArray[index] := next; return true };\n case null {\n // Do nothing. This case should not happen as the array is initialized\n // with a sentinel (empty) value that is non-null.};\n };\n };\n };\n };\n // No dead blob in this list node.\n case null {};\n };\n false;\n };\n\n public func pruneDeadBlobs(confirmedDeadBlobs : [Blob]) {\n // For each element in the confirmedDeadBlobs array, we check if it is in the hash array.\n // If it is, and if the corresponding WeakRef is null, we remove the whole list node\n // from the hash array.\n var i = 0;\n while (i < confirmedDeadBlobs.size()) {\n let b = confirmedDeadBlobs[i];\n // Get hash bucket.\n let index = computeIndex(b);\n // Get the list of the hash bucket and walk it until we find the blob b.\n let list = hashArray[index];\n // Special case for the first list node.\n let pruned = pruneFirstElement(list, b, index);\n if (pruned == false) {\n // If we\'re here, we know that the blob is not the first list node.\n // So we can advance to the next list node.\n var prev = ?list;\n var crntNode = advanceListNode(?list);\n label findLoop loop {\n let crntBlob = getDeadBlobFromListNode(crntNode);\n switch crntBlob {\n case (?crntBlob) {\n if (blobCompare(crntBlob, b) == 0) {\n // We found the blob and we know for sure it\'s dead.\n // We just need to prune the current list node.\n switch (prev, crntNode) {\n case (?prev, ?crntNode) {\n prev.next := crntNode.next;\n // Break the loop, we found the blob and pruned.\n break findLoop;\n };\n case _ {};\n };\n };\n };\n case null {\n // No dead blob in this list node.\n // We can advance pointers.\n prev := crntNode;\n crntNode := advanceListNode(crntNode);\n };\n };\n switch crntNode {\n case (?crntNode) {};\n // We reached the end, break.\n case null { break findLoop };\n };\n };\n };\n // Continue loop.\n i += 1;\n };\n\n };\n\n};\n\nfunc getDeadBlobs() : ?[Blob] {\n let dedupTableOption = __getDedupTable();\n switch dedupTableOption {\n case (?dedupTable) {\n let dedupTableIter = BlobIterator(dedupTable);\n let numDeadBlobs = dedupTableIter.size();\n let deadBlobs = Array_tabulate(numDeadBlobs, func(i : Nat) : Blob { dedupTableIter.nextDeadBlob() });\n return ?deadBlobs;\n };\n case null { return null };\n };\n\n};\n\nfunc pruneConfirmedDeadBlobs(confirmedDeadBlobs : [Blob]) {\n let dedupTableOption = __getDedupTable();\n switch dedupTableOption {\n case (?dedupTable) {\n let dedupTableIter = BlobIterator(dedupTable);\n dedupTableIter.pruneDeadBlobs(confirmedDeadBlobs);\n };\n };\n};\n\nfunc isStorageBlobLive(b : Blob) : Bool {\n let dedupTableOption = __getDedupTable();\n switch dedupTableOption {\n case (?dedupTable) {\n let iter = BlobIterator(dedupTable);\n iter.isBlobLive(b);\n };\n case null { false };\n };\n};\n///\n/// END EXPERIMENTAL SECTION.\n\n// Total conversions (fixed to big)\n\nlet int64ToInt = @int64ToInt;\nlet int32ToInt = @int32ToInt;\nlet int16ToInt = @int16ToInt;\nlet int8ToInt = @int8ToInt;\nlet nat64ToNat = @nat64ToNat;\nlet nat32ToNat = @nat32ToNat;\nlet nat16ToNat = @nat16ToNat;\nlet nat8ToNat = @nat8ToNat;\n\n// Trapping conversions (big to fixed)\n\nfunc intToInt64(n : Int) : Int64 = (prim "num_conv_Int_Int64" : Int -> Int64) n;\nfunc intToInt32(n : Int) : Int32 = (prim "num_conv_Int_Int32" : Int -> Int32) n;\nfunc intToInt16(n : Int) : Int16 = (prim "num_conv_Int_Int16" : Int -> Int16) n;\nfunc intToInt8(n : Int) : Int8 = (prim "num_conv_Int_Int8" : Int -> Int8) n;\n\nfunc natToNat64(n : Nat) : Nat64 = (prim "num_conv_Nat_Nat64" : Nat -> Nat64) n;\nfunc natToNat32(n : Nat) : Nat32 = (prim "num_conv_Nat_Nat32" : Nat -> Nat32) n;\nfunc natToNat16(n : Nat) : Nat16 = (prim "num_conv_Nat_Nat16" : Nat -> Nat16) n;\nfunc natToNat8(n : Nat) : Nat8 = (prim "num_conv_Nat_Nat8" : Nat -> Nat8) n;\n\n// Wrapping conversions (big to fixed, and within fixed)\n\nfunc intToInt64Wrap(n : Int) : Int64 = (prim "num_wrap_Int_Int64" : Int -> Int64) n;\nfunc intToInt32Wrap(n : Int) : Int32 = (prim "num_wrap_Int_Int32" : Int -> Int32) n;\nfunc intToInt16Wrap(n : Int) : Int16 = (prim "num_wrap_Int_Int16" : Int -> Int16) n;\nfunc intToInt8Wrap(n : Int) : Int8 = (prim "num_wrap_Int_Int8" : Int -> Int8) n;\n\nfunc intToNat64Wrap(n : Int) : Nat64 = (prim "num_wrap_Int_Nat64" : Int -> Nat64) n;\nfunc intToNat32Wrap(n : Int) : Nat32 = (prim "num_wrap_Int_Nat32" : Int -> Nat32) n;\nfunc intToNat16Wrap(n : Int) : Nat16 = (prim "num_wrap_Int_Nat16" : Int -> Nat16) n;\nfunc intToNat8Wrap(n : Int) : Nat8 = (prim "num_wrap_Int_Nat8" : Int -> Nat8) n;\n\n// Across same width\nfunc int64ToNat64(n : Int64) : Nat64 = (prim "num_wrap_Int64_Nat64" : Int64 -> Nat64) n;\nfunc nat64ToInt64(n : Nat64) : Int64 = (prim "num_wrap_Nat64_Int64" : Nat64 -> Int64) n;\nfunc int32ToNat32(n : Int32) : Nat32 = (prim "num_wrap_Int32_Nat32" : Int32 -> Nat32) n;\nfunc nat32ToInt32(n : Nat32) : Int32 = (prim "num_wrap_Nat32_Int32" : Nat32 -> Int32) n;\nfunc int16ToNat16(n : Int16) : Nat16 = (prim "num_wrap_Int16_Nat16" : Int16 -> Nat16) n;\nfunc nat16ToInt16(n : Nat16) : Int16 = (prim "num_wrap_Nat16_Int16" : Nat16 -> Int16) n;\nfunc int8ToNat8(n : Int8) : Nat8 = (prim "num_wrap_Int8_Nat8" : Int8 -> Nat8) n;\nfunc nat8ToInt8(n : Nat8) : Int8 = (prim "num_wrap_Nat8_Int8" : Nat8 -> Int8) n;\n\n// Between adjacent widths\nfunc nat8ToNat16(n : Nat8) : Nat16 = (prim "num_conv_Nat8_Nat16" : Nat8 -> Nat16) n;\nfunc nat16ToNat32(n : Nat16) : Nat32 = (prim "num_conv_Nat16_Nat32" : Nat16 -> Nat32) n;\nfunc nat32ToNat64(n : Nat32) : Nat64 = (prim "num_conv_Nat32_Nat64" : Nat32 -> Nat64) n;\n\nfunc nat64ToNat32(n : Nat64) : Nat32 = (prim "num_conv_Nat64_Nat32" : Nat64 -> Nat32) n;\nfunc nat32ToNat16(n : Nat32) : Nat16 = (prim "num_conv_Nat32_Nat16" : Nat32 -> Nat16) n;\nfunc nat16ToNat8(n : Nat16) : Nat8 = (prim "num_conv_Nat16_Nat8" : Nat16 -> Nat8) n;\n\nfunc int8ToInt16(n : Int8) : Int16 = (prim "num_conv_Int8_Int16" : Int8 -> Int16) n;\nfunc int16ToInt32(n : Int16) : Int32 = (prim "num_conv_Int16_Int32" : Int16 -> Int32) n;\nfunc int32ToInt64(n : Int32) : Int64 = (prim "num_conv_Int32_Int64" : Int32 -> Int64) n;\n\nfunc int64ToInt32(n : Int64) : Int32 = (prim "num_conv_Int64_Int32" : Int64 -> Int32) n;\nfunc int32ToInt16(n : Int32) : Int16 = (prim "num_conv_Int32_Int16" : Int32 -> Int16) n;\nfunc int16ToInt8(n : Int16) : Int8 = (prim "num_conv_Int16_Int8" : Int16 -> Int8) n;\n\n// Exploding to bytes\nfunc explodeNat16(n : Nat16) : (msb : Nat8, lsb : Nat8) = (prim "explode_Nat16" : Nat16 -> (Nat8, Nat8)) n;\nfunc explodeInt16(n : Int16) : (msb : Nat8, lsb : Nat8) = (prim "explode_Int16" : Int16 -> (Nat8, Nat8)) n;\nfunc explodeNat32(n : Nat32) : (msb : Nat8, Nat8, Nat8, lsb : Nat8) = (prim "explode_Nat32" : Nat32 -> (Nat8, Nat8, Nat8, Nat8)) n;\nfunc explodeInt32(n : Int32) : (msb : Nat8, Nat8, Nat8, lsb : Nat8) = (prim "explode_Int32" : Int32 -> (Nat8, Nat8, Nat8, Nat8)) n;\nfunc explodeNat64(n : Nat64) : (msb : Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, lsb : Nat8) = (prim "explode_Nat64" : Nat64 -> (Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8)) n;\nfunc explodeInt64(n : Int64) : (msb : Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, lsb : Nat8) = (prim "explode_Int64" : Int64 -> (Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8)) n;\n\n// Char conversion and properties\n\nfunc charToNat32(c : Char) : Nat32 = (prim "num_wrap_Char_Nat32" : Char -> Nat32) c;\nfunc nat32ToChar(w : Nat32) : Char = (prim "num_conv_Nat32_Char" : Nat32 -> Char) w;\n\nfunc charToText(c : Char) : Text = (prim "conv_Char_Text" : Char -> Text) c;\n\nfunc charToUpper(c : Char) : Char = (prim "char_to_upper" : Char -> Char) c;\nfunc charToLower(c : Char) : Char = (prim "char_to_lower" : Char -> Char) c;\nfunc charIsWhitespace(c : Char) : Bool = (prim "char_is_whitespace" : Char -> Bool) c;\nfunc charIsLowercase(c : Char) : Bool = (prim "char_is_lowercase" : Char -> Bool) c;\nfunc charIsUppercase(c : Char) : Bool = (prim "char_is_uppercase" : Char -> Bool) c;\nfunc charIsAlphabetic(c : Char) : Bool = (prim "char_is_alphabetic" : Char -> Bool) c;\n\n// Blob functions\n\nfunc blobCompare(b1 : Blob, b2 : Blob) : Int8 = (prim "blob_compare" : (Blob, Blob) -> Int8)(b1, b2);\nfunc hashBlob(b : Blob) : Nat32 { (prim "crc32Hash" : Blob -> Nat32) b };\n\n// Text conversion\nfunc decodeUtf8(b : Blob) : ?Text = (prim "decodeUtf8" : Blob -> ?Text) b;\nfunc encodeUtf8(t : Text) : Blob = (prim "encodeUtf8" : Text -> Blob) t;\n\n// Text comparison\nfunc textCompare(t1 : Text, t2 : Text) : Int8 = (prim "text_compare" : (Text, Text) -> Int8)(t1, t2);\n\n// Text lowercase\nfunc textLowercase(t : Text) : Text = (prim "text_lowercase" : (Text) -> Text)(t);\n// Text uppercase\nfunc textUppercase(t : Text) : Text = (prim "text_uppercase" : (Text) -> Text)(t);\n\n// Exotic bitwise operations\nfunc popcntNat8(w : Nat8) : Nat8 = (prim "popcnt8" : Nat8 -> Nat8) w;\nfunc clzNat8(w : Nat8) : Nat8 = (prim "clz8" : Nat8 -> Nat8) w;\nfunc ctzNat8(w : Nat8) : Nat8 = (prim "ctz8" : Nat8 -> Nat8) w;\nfunc btstNat8(w : Nat8, amount : Nat8) : Bool = (prim "btst8" : (Nat8, Nat8) -> Nat8)(w, amount) != (0 : Nat8);\n\nfunc popcntNat16(w : Nat16) : Nat16 = (prim "popcnt16" : Nat16 -> Nat16) w;\nfunc clzNat16(w : Nat16) : Nat16 = (prim "clz16" : Nat16 -> Nat16) w;\nfunc ctzNat16(w : Nat16) : Nat16 = (prim "ctz16" : Nat16 -> Nat16) w;\nfunc btstNat16(w : Nat16, amount : Nat16) : Bool = (prim "btst16" : (Nat16, Nat16) -> Nat16)(w, amount) != (0 : Nat16);\n\nfunc popcntNat32(w : Nat32) : Nat32 = (prim "popcnt32" : Nat32 -> Nat32) w;\nfunc clzNat32(w : Nat32) : Nat32 = (prim "clz32" : Nat32 -> Nat32) w;\nfunc ctzNat32(w : Nat32) : Nat32 = (prim "ctz32" : Nat32 -> Nat32) w;\nfunc btstNat32(w : Nat32, amount : Nat32) : Bool = (prim "btst32" : (Nat32, Nat32) -> Nat32)(w, amount) != (0 : Nat32);\n\nfunc popcntNat64(w : Nat64) : Nat64 = (prim "popcnt64" : Nat64 -> Nat64) w;\nfunc clzNat64(w : Nat64) : Nat64 = (prim "clz64" : Nat64 -> Nat64) w;\nfunc ctzNat64(w : Nat64) : Nat64 = (prim "ctz64" : Nat64 -> Nat64) w;\nfunc btstNat64(w : Nat64, amount : Nat64) : Bool = (prim "btst64" : (Nat64, Nat64) -> Nat64)(w, amount) != (0 : Nat64);\n\nfunc popcntInt8(w : Int8) : Int8 = (prim "popcntInt8" : Int8 -> Int8) w;\nfunc clzInt8(w : Int8) : Int8 = (prim "clzInt8" : Int8 -> Int8) w;\nfunc ctzInt8(w : Int8) : Int8 = (prim "ctzInt8" : Int8 -> Int8) w;\nfunc btstInt8(w : Int8, amount : Int8) : Bool = (prim "btstInt8" : (Int8, Int8) -> Int8)(w, amount) != (0 : Int8);\n\nfunc popcntInt16(w : Int16) : Int16 = (prim "popcntInt16" : Int16 -> Int16) w;\nfunc clzInt16(w : Int16) : Int16 = (prim "clzInt16" : Int16 -> Int16) w;\nfunc ctzInt16(w : Int16) : Int16 = (prim "ctzInt16" : Int16 -> Int16) w;\nfunc btstInt16(w : Int16, amount : Int16) : Bool = (prim "btstInt16" : (Int16, Int16) -> Int16)(w, amount) != (0 : Int16);\n\nfunc popcntInt32(w : Int32) : Int32 = (prim "popcntInt32" : Int32 -> Int32) w;\nfunc clzInt32(w : Int32) : Int32 = (prim "clzInt32" : Int32 -> Int32) w;\nfunc ctzInt32(w : Int32) : Int32 = (prim "ctzInt32" : Int32 -> Int32) w;\nfunc btstInt32(w : Int32, amount : Int32) : Bool = (prim "btstInt32" : (Int32, Int32) -> Int32)(w, amount) != (0 : Int32);\n\nfunc popcntInt64(w : Int64) : Int64 = (prim "popcntInt64" : Int64 -> Int64) w;\nfunc clzInt64(w : Int64) : Int64 = (prim "clzInt64" : Int64 -> Int64) w;\nfunc ctzInt64(w : Int64) : Int64 = (prim "ctzInt64" : Int64 -> Int64) w;\nfunc btstInt64(w : Int64, amount : Int64) : Bool = (prim "btstInt64" : (Int64, Int64) -> Int64)(w, amount) != (0 : Int64);\n\n// Float32 conversions\n\nfunc floatToFloat32(f : Float) : Float32 = (prim "num_conv_Float_Float32" : Float -> Float32) f;\nfunc float32ToFloat(f : Float32) : Float = (prim "num_conv_Float32_Float" : Float32 -> Float) f;\n\n// Checked Float -> Float32 conversion: returns ?Float32 if round-trip stays within epsilon, null otherwise\nfunc safeFloatToFloat32(f : Float, epsilon : Float) : ?Float32 {\n let f32 = floatToFloat32 f;\n if (floatAbs(float32ToFloat f32 - f) <= epsilon) ?f32 else null\n};\n\n// Float operations\n\nfunc floatAbs(f : Float) : Float = (prim "fabs" : Float -> Float) f;\nfunc floatSqrt(f : Float) : Float = (prim "fsqrt" : Float -> Float) f;\nfunc floatCeil(f : Float) : Float = (prim "fceil" : Float -> Float) f;\nfunc floatFloor(f : Float) : Float = (prim "ffloor" : Float -> Float) f;\nfunc floatTrunc(f : Float) : Float = (prim "ftrunc" : Float -> Float) f;\nfunc floatNearest(f : Float) : Float = (prim "fnearest" : Float -> Float) f;\nfunc floatMin(f : Float, g : Float) : Float = (prim "fmin" : (Float, Float) -> Float)(f, g);\nfunc floatMax(f : Float, g : Float) : Float = (prim "fmax" : (Float, Float) -> Float)(f, g);\nfunc floatCopySign(f : Float, g : Float) : Float = (prim "fcopysign" : (Float, Float) -> Float)(f, g);\nfunc floatToInt(f : Float) : Int = (prim "num_conv_Float_Int" : Float -> Int)(f);\nfunc intToFloat(n : Int) : Float = (prim "num_conv_Int_Float" : Int -> Float)(n);\nfunc floatToInt64(f : Float) : Int64 = (prim "num_conv_Float_Int64" : Float -> Int64)(f);\nfunc int64ToFloat(n : Int64) : Float = (prim "num_conv_Int64_Float" : Int64 -> Float)(n);\n\nlet floatToText = @text_of_Float;\n\n// Configurable Float formatter\n// mode:\n// 0) fixed format "%.*f"\n// 1) exponent format "%.*e"\n// 2) generic format "%.*g"\n// 3) hexadecimal format "%.*h"\n// _) invalid (traps)\nfunc floatToFormattedText(f : Float, prec : Nat8, mode : Nat8) : Text = (prim "fmtFloat->Text" : (Float, Nat8, Nat8) -> Text)(f, prec, mode);\n\n// Trigonometric and transcendental functions\n\nfunc sin(f : Float) : Float = (prim "fsin" : Float -> Float) f;\nfunc cos(f : Float) : Float = (prim "fcos" : Float -> Float) f;\nfunc tan(f : Float) : Float = (prim "ftan" : Float -> Float) f;\nfunc arcsin(f : Float) : Float = (prim "fasin" : Float -> Float) f;\nfunc arccos(f : Float) : Float = (prim "facos" : Float -> Float) f;\nfunc arctan(f : Float) : Float = (prim "fatan" : Float -> Float) f;\nfunc arctan2(y : Float, x : Float) : Float = (prim "fatan2" : (Float, Float) -> Float)(y, x);\n\nfunc exp(f : Float) : Float = (prim "fexp" : Float -> Float) f;\nfunc log(f : Float) : Float = (prim "flog" : Float -> Float) f;\n\n// Array utilities\n\nfunc Array_init(len : Nat, x : T) : [var T] {\n (prim "Array.init" : (Nat, T) -> [var T]) (len, x);\n};\n\nfunc Array_tabulate(len : Nat, gen : Nat -> T) : [T] {\n (prim "Array.tabulate" : (Nat, Nat -> T) -> [T]) (len, gen);\n};\n\nfunc Array_tabulateVar(len : Nat, gen : Nat -> T) : [var T] {\n (prim "Array.tabulateVar" : (Nat, Nat -> T) -> [var T]) (len, gen);\n};\n\nfunc blobToArray(b : Blob) : [Nat8] = (prim "blobToArray" : (Blob) -> [Nat8]) b;\nfunc blobToArrayMut(b : Blob) : [var Nat8] = (prim "blobToArrayMut" : (Blob) -> [var Nat8]) b;\nfunc arrayToBlob(a : [Nat8]) : Blob = (prim "arrayToBlob" : [Nat8] -> Blob) a;\nfunc arrayMutToBlob(a : [var Nat8]) : Blob = (prim "arrayMutToBlob" : [var Nat8] -> Blob) a;\n\n// Error codes\ntype ErrorCode = {\n #system_fatal;\n #system_transient;\n #destination_invalid;\n #canister_reject;\n #canister_error;\n #system_unknown;\n #future : Nat32;\n #call_error : { err_code : Nat32 };\n};\n\n// creation and inspection of abstract error\nfunc error(message : Text) : Error {\n let e = (#canister_reject, message);\n (prim "cast" : (ErrorCode, Text) -> Error) e;\n};\nfunc errorCode(e : Error) : ErrorCode = ((prim "cast" : Error -> (ErrorCode, Text)) e).0;\nfunc errorMessage(e : Error) : Text = ((prim "cast" : Error -> (ErrorCode, Text)) e).1;\n\n// Message deadline (best-effort messaging)\n\nfunc replyDeadline() : Nat64 = (prim "deadline" : () -> Nat64)();\n\n// Time\n\nfunc time() : Nat64 = (prim "time" : () -> Nat64)();\n\n// Principal\n\nfunc blobOfPrincipal(id : Principal) : Blob = (prim "blobOfPrincipal" : Principal -> Blob) id;\nfunc principalOfBlob(act : Blob) : Principal {\n // TODO: better: check size in prim "principalOfBlob" instead\n if (act.size() > 29) {\n trap("blob too long for principal");\n };\n (prim "principalOfBlob" : Blob -> Principal) act;\n};\n\nfunc principalOfActor(act : actor {}) : Principal = (prim "principalOfActor" : (actor {}) -> Principal) act;\nfunc actorOfPrincipal(p : Principal) : A = (prim "actorOfPrincipal" : Principal -> A) p;\nfunc isController(p : Principal) : Bool = (prim "is_controller" : Principal -> Bool) p;\nfunc isReplicatedExecution() : Bool = (prim "replicated_execution" : () -> Bool)();\nfunc canisterVersion() : Nat64 = (prim "canister_version" : () -> Nat64)();\nfunc canisterSubnet() : Principal = (prim "canister_subnet" : () -> Principal)();\nfunc rootKey() : Blob = (prim "root_key" : () -> Blob)();\nfunc getSelfPrincipal() : Principal = (prim "canister_self" : () -> Principal)();\n\n// Untyped dynamic actor creation from blobs\nlet createActor : (wasm : Blob, argument : Blob) -> async Principal = @create_actor_helper;\n\nfunc cyclesBalance() : Nat = (prim "cyclesBalance" : () -> Nat)();\nfunc cyclesAvailable() : Nat = (prim "cyclesAvailable" : () -> Nat)();\nfunc cyclesRefunded() : Nat = @refund;\nfunc cyclesAccept(amount : Nat) : Nat = (prim "cyclesAccept" : Nat -> Nat) amount;\n\nfunc cyclesAdd(amount : Nat) : () {\n if (amount == 0) return;\n @cycles += amount;\n // trap if @cycles would exceed 2^128\n if (@cycles > 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) {\n trap("cannot add more than 2^128 cycles");\n };\n};\n\nfunc cyclesBurn(amount : Nat) : Nat = (prim "cyclesBurn" : Nat -> Nat) amount;\n\nfunc costCall(methodNameSize : Nat64, payloadSize : Nat64) : Nat = (prim "costCall" : (Nat64, Nat64) -> Nat)(methodNameSize, payloadSize);\n\nfunc costCreateCanister() : Nat = (prim "costCreateCanister" : () -> Nat)();\n\nfunc costHttpRequest(requestSize : Nat64, maxResBytes : Nat64) : Nat = (prim "costHttpRequest" : (Nat64, Nat64) -> Nat)(requestSize, maxResBytes);\n\nfunc costSignWithEcdsa(keyName : Text, curveEncoding : Nat32) : (resultCode : Nat32, costOrUndefined : Nat) = (prim "costSignWithEcdsa" : (Text, Nat32) -> (Nat32, Nat))(keyName, curveEncoding);\n\nfunc costSignWithSchnorr(keyName : Text, algorithmEncoding : Nat32) : (resultCode : Nat32, costOrUndefined : Nat) = (prim "costSignWithSchnorr" : (Text, Nat32) -> (Nat32, Nat))(keyName, algorithmEncoding);\n\n// certified data\nfunc setCertifiedData(data : Blob) = (prim "setCertifiedData" : Blob -> ()) data;\nfunc getCertificate() : ?Blob = (prim "getCertificate" : () -> ?Blob)();\n\n// stable memory\n\n/// @deprecated M0199\nfunc stableMemorySize() : Nat64 = (prim "stableMemorySize" : () -> Nat64)();\n\n/// @deprecated M0199\nfunc stableMemoryGrow(pages : Nat64) : Nat64 = (prim "stableMemoryGrow" : Nat64 -> Nat64) pages;\n\n/// @deprecated M0199\nfunc stableMemoryLoadNat32(offset : Nat64) : Nat32 = (prim "stableMemoryLoadNat32" : Nat64 -> Nat32) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreNat32(offset : Nat64, val : Nat32) : () = (prim "stableMemoryStoreNat32" : (Nat64, Nat32) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadNat8(offset : Nat64) : Nat8 = (prim "stableMemoryLoadNat8" : Nat64 -> Nat8) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreNat8(offset : Nat64, val : Nat8) : () = (prim "stableMemoryStoreNat8" : (Nat64, Nat8) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadNat16(offset : Nat64) : Nat16 = (prim "stableMemoryLoadNat16" : Nat64 -> Nat16) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreNat16(offset : Nat64, val : Nat16) : () = (prim "stableMemoryStoreNat16" : (Nat64, Nat16) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadNat64(offset : Nat64) : Nat64 = (prim "stableMemoryLoadNat64" : Nat64 -> Nat64) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreNat64(offset : Nat64, val : Nat64) : () = (prim "stableMemoryStoreNat64" : (Nat64, Nat64) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadInt32(offset : Nat64) : Int32 = (prim "stableMemoryLoadInt32" : Nat64 -> Int32) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreInt32(offset : Nat64, val : Int32) : () = (prim "stableMemoryStoreInt32" : (Nat64, Int32) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadInt8(offset : Nat64) : Int8 = (prim "stableMemoryLoadInt8" : Nat64 -> Int8) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreInt8(offset : Nat64, val : Int8) : () = (prim "stableMemoryStoreInt8" : (Nat64, Int8) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadInt16(offset : Nat64) : Int16 = (prim "stableMemoryLoadInt16" : Nat64 -> Int16) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreInt16(offset : Nat64, val : Int16) : () = (prim "stableMemoryStoreInt16" : (Nat64, Int16) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadInt64(offset : Nat64) : Int64 = (prim "stableMemoryLoadInt64" : Nat64 -> Int64) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreInt64(offset : Nat64, val : Int64) : () = (prim "stableMemoryStoreInt64" : (Nat64, Int64) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadFloat(offset : Nat64) : Float = (prim "stableMemoryLoadFloat" : Nat64 -> Float) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreFloat(offset : Nat64, val : Float) : () = (prim "stableMemoryStoreFloat" : (Nat64, Float) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadBlob(offset : Nat64, size : Nat) : Blob = (prim "stableMemoryLoadBlob" : (Nat64, Nat) -> Blob)(offset, size);\n\n/// @deprecated M0199\nfunc stableMemoryStoreBlob(offset : Nat64, val : Blob) : () = (prim "stableMemoryStoreBlob" : (Nat64, Blob) -> ())(offset, val);\n\n// Returns a query that computes the current actor\'s stable variable statistics (for now, the current size, in bytes, of serialized stable variable data).\nfunc stableVarQuery() : shared query () -> async { size : Nat64 } = (prim "stableVarQuery" : () -> (shared query () -> async { size : Nat64 }))();\n\n// stable regions\n\nfunc regionNew() : Region = (prim "regionNew" : () -> Region)();\n\nfunc regionId(r : Region) : Nat = (prim "regionId" : Region -> Nat) r;\n\nfunc regionSize(r : Region) : Nat64 = (prim "regionSize" : Region -> Nat64) r;\n\nfunc regionGrow(r : Region, pages : Nat64) : Nat64 = (prim "regionGrow" : (Region, Nat64) -> Nat64)(r, pages);\n\nfunc regionLoadNat32(r : Region, offset : Nat64) : Nat32 = (prim "regionLoadNat32" : (Region, Nat64) -> Nat32)(r, offset);\n\nfunc regionStoreNat32(r : Region, offset : Nat64, val : Nat32) : () = (prim "regionStoreNat32" : (Region, Nat64, Nat32) -> ())(r, offset, val);\n\nfunc regionLoadNat8(r : Region, offset : Nat64) : Nat8 = (prim "regionLoadNat8" : (Region, Nat64) -> Nat8)(r, offset);\n\nfunc regionStoreNat8(r : Region, offset : Nat64, val : Nat8) : () = (prim "regionStoreNat8" : (Region, Nat64, Nat8) -> ())(r, offset, val);\n\nfunc regionLoadNat16(r : Region, offset : Nat64) : Nat16 = (prim "regionLoadNat16" : (Region, Nat64) -> Nat16)(r, offset);\n\nfunc regionStoreNat16(r : Region, offset : Nat64, val : Nat16) : () = (prim "regionStoreNat16" : (Region, Nat64, Nat16) -> ())(r, offset, val);\n\nfunc regionLoadNat64(r : Region, offset : Nat64) : Nat64 = (prim "regionLoadNat64" : (Region, Nat64) -> Nat64)(r, offset);\n\nfunc regionStoreNat64(r : Region, offset : Nat64, val : Nat64) : () = (prim "regionStoreNat64" : (Region, Nat64, Nat64) -> ())(r, offset, val);\n\nfunc regionLoadInt32(r : Region, offset : Nat64) : Int32 = (prim "regionLoadInt32" : (Region, Nat64) -> Int32)(r, offset);\n\nfunc regionStoreInt32(r : Region, offset : Nat64, val : Int32) : () = (prim "regionStoreInt32" : (Region, Nat64, Int32) -> ())(r, offset, val);\n\nfunc regionLoadInt8(r : Region, offset : Nat64) : Int8 = (prim "regionLoadInt8" : (Region, Nat64) -> Int8)(r, offset);\n\nfunc regionStoreInt8(r : Region, offset : Nat64, val : Int8) : () = (prim "regionStoreInt8" : (Region, Nat64, Int8) -> ())(r, offset, val);\n\nfunc regionLoadInt16(r : Region, offset : Nat64) : Int16 = (prim "regionLoadInt16" : (Region, Nat64) -> Int16)(r, offset);\n\nfunc regionStoreInt16(r : Region, offset : Nat64, val : Int16) : () = (prim "regionStoreInt16" : (Region, Nat64, Int16) -> ())(r, offset, val);\n\nfunc regionLoadInt64(r : Region, offset : Nat64) : Int64 = (prim "regionLoadInt64" : (Region, Nat64) -> Int64)(r, offset);\n\nfunc regionStoreInt64(r : Region, offset : Nat64, val : Int64) : () = (prim "regionStoreInt64" : (Region, Nat64, Int64) -> ())(r, offset, val);\n\nfunc regionLoadFloat(r : Region, offset : Nat64) : Float = (prim "regionLoadFloat" : (Region, Nat64) -> Float)(r, offset);\n\nfunc regionStoreFloat(r : Region, offset : Nat64, val : Float) : () = (prim "regionStoreFloat" : (Region, Nat64, Float) -> ())(r, offset, val);\n\nfunc regionLoadBlob(r : Region, offset : Nat64, size : Nat) : Blob = (prim "regionLoadBlob" : (Region, Nat64, Nat) -> Blob)(r, offset, size);\n\nfunc regionStoreBlob(r : Region, offset : Nat64, val : Blob) : () = (prim "regionStoreBlob" : (Region, Nat64, Blob) -> ())(r, offset, val);\n\nlet call_raw = @call_raw;\n\nfunc performanceCounter(counter : Nat32) : Nat64 = (prim "performanceCounter" : (Nat32) -> Nat64) counter;\n\n// Candid configuration\nfunc setCandidLimits({\n numerator : Nat32;\n denominator : Nat32;\n bias : Nat32;\n}) {\n (prim "setCandidLimits" : (Nat32, Nat32, Nat32) -> ())(numerator, denominator, bias);\n};\n\nfunc getCandidLimits() : {\n numerator : Nat32;\n denominator : Nat32;\n bias : Nat32;\n} {\n let (numerator, denominator, bias) = (prim "getCandidLimits" : () -> (Nat32, Nat32, Nat32))();\n {\n numerator;\n denominator;\n bias;\n };\n};\n\nfunc setCandidTypeLimits({\n scalar : Nat32;\n bias : Nat32;\n}) {\n (prim "setCandidTypeLimits" : (Nat32, Nat32) -> ())(scalar, bias);\n};\n\nfunc getCandidTypeLimits() : {\n scalar : Nat32;\n bias : Nat32;\n} {\n let (scalar, bias) = (prim "getCandidTypeLimits" : () -> (Nat32, Nat32))();\n {\n scalar;\n bias;\n };\n};\n',sh="ActorU",bh="@;<0 1>",lh="promising function cannot be local:\n %s",Bh="different set of bindings in pattern alternatives",jh=330,kh="call_raw",ph=471,mh="composite",dh="__call_perform_status",_h="Blob.idx",hh=128,xh="mo_values/prim.ml",yh="callbackTableCount",wh=" or\n ",gh="DivOp",qh=435,Ih="async expression",Dh="EFAULT",Eh="send capability required, but not available\n (cannot call a `shared` function from a `composite query` function; only calls to `query` and `composite query` functions are allowed)",Nh="trap",Th="regionLoadNat32",Fh="IDL error: did not find field %s in record",Mh="reserved",Ph="stableMemoryStoreInt8",Uh="M0226",Gh="region_store_float64",$h="\\r",Kh="M0041",Oh=776,Rh="shared function has non-async result type%a",Qh="send capability required, but not available\n (need an enclosing async expression or function body)",Ch="file already exists",Hh=411,Vh="StableMemory range out of bounds",Lh="Name",zh="M0212",Sh="offset",Zh="__upgrade_instructions",Wh="var_scrut",Xh="msg_reject_msg_size",Jh="canister_pre_upgrade",Yh="res64",rx="int_from_i64",nx="stable",tx="B_mul",ex="mo_types/type.ml",ax="x",ux="InQuery",fx="field ",ix="stableMemoryStoreNat64",cx="char_to_upper",vx="@.",ox="@[<1>(%a%s)@]",Ax=7978,sx="duplicate binding for %s in pattern",bx="<2>",lx="lib/lib.ml",Bx="Fatal error: exception ",jx=441,kx=1058,px="NotOp",mx="M0199",dx="skip_leb128",_x="expected object type, but expression produces type\n ",hx="break",xx="flexible",yx="text_singleton",wx="text_len",gx="abs",qx="regionStoreInt8",Ix="inconsistent migration chain",Dx="<:",Ex="illegal T.Pre type",Nx="region_store_blob",Tx=122,Fx="Promises",Mx=449,Px=222,Ux="blob_size",Gx="env_var_name_exists",$x="as_array",Kx=1333,Ox="\ncannot produce expected type",Rx="",Qx="` of type `",Cx=463,Hx=289,Vx="ptr",Lx="to_opt_",zx="@[<1>?%a@]",Sx="bigint_abs",Zx="stable variable `%s` of type `%s` not found in persisted state (migration should have initialized it)",Wx="acos",Xx="k",Jx="@reset_refund",Yx="btst16",ry="popcntInt16",ny="stableMemoryLoadNat8",ty="stream_shutdown",ey="root_key_size",ay="FuncE",uy=737456202,fy=" (in TAG 0x",iy="EOVERFLOW",cy="AllocHow.disjoint_union: %s",vy="blob_vals_iter",oy="pow",Ay="actor reference must have an actor type",sy="err_msg",by="str",ly="TypF",By="{",jy='", not found in static environment\n',ky=182,py='""',my="closure",dy="weak",_y="mo_frontend/parsing.ml",hy="EOPNOTSUPP",xy="T",yy=124,wy="popcnt8",gy="regionStoreInt32",qy="redundant ignore, operand already has type ()",Iy="\n is not compatible with type ",Dy="AnnotP",Ey="assertion failure",Ny="mo_frontend/parser.mly",Ty="",Fy="tuple pattern has %i components but expected type has %i",My="M0206",Py="@[",Uy="stream_write_text",Gy="__frame_pointer",$y="ENOPROTOOPT",Ky="index out of bounds",Oy=696517344,Ry="io_vec",Qy="explode_Int64",Cy="nat_sub",Hy=1072,Vy="await",Ly="serialize_go: unexpected variant",zy=" ",Sy="of",Zy="Int32Lit",Wy="call_perform_status",Xy="Text.compare_eq",Jy=424,Yy="char_is_whitespace",rw="product",nw="this code is (or uses) the deprecated library `ExperimentalStableMemory`.\nPlease use the `Region` library instead: https://internetcomputer.org/docs/current/motoko/main/stable-memory/stable-regions/#the-region-library or compile with flag `--experimental-stable-memory 1` to suppress this message.",tw=119,ew="truncate",aw=913,uw="move these declarations into the body of the main actor or actor class",fw="stable variable `",iw=338,cw="stream_write_byte",vw="install_arg",ow="infinity",Aw="expression of type",sw="code",bw="root_key",lw="write_",Bw="B_div",jw="\ninstead of expected type",kw="file %s must not depend on itself",pw="AsyncT*",mw="EPROTONOSUPPORT",dw="M0128",_w="B_lsh",hw="state",xw="OptT",yw="register_stable_type",ww="region_grow",gw="atan2",qw="btstInt8",Iw="continuation_count",Dw="Win32",Ew="weak_ref_is_live",Nw="msg_deadline",Tw="stableMemoryLoadInt64",Fw="TupE",Mw="get_typtbl_ptr",Pw="TypPF",Uw="cannot read balance when running locally",Gw="parse_idl_header",$w="IDL error: unexpected function reference",Kw=157,Ow="shared function has non-shared return type%a",Rw="M0243",Qw="EINPROGRESS",Cw="write",Hw=243,Vw="candid:args",Lw="Odd offset",zw="Array.tabulateVar",Sw="Array.tabulate",Zw=" is declared stable but has non-stable type",Ww="cb_index",Xw="unexpected %s, expected one of token or sequence:\n %s",Jw=" in block",Yw="Could not find ",rg="mixins may only be imported by binding to a name",ng=301,tg="try",eg="wpow_int",ag=171,ug="regionStoreBlob",fg="buffer_size overflow",ig=499,cg="+",vg="type parameter ",og="reclaimed",Ag=7950,sg="src",bg="M0237",lg="Principal",Bg="misplaced '!' (no enclosing 'do ? { ... }' expression)",jg=7946,kg="B_eq",pg="Invalid stack rep join (",mg="Nat32->Char",dg=" does not exist in type\n ",_g="mo_interpreter/interpret.ml",hg="",xg="Mixin",yg="case",wg="ParP",gg="continue ",qg=66447547,Ig="arg%i",Dg="Not_found",Eg="bigint_leb128_encode",Ng="char_to_lower",Tg="Nat8Lit",Fg="expected object type, but expression produces type%a",Mg="await*",Pg="the type %a\n is not compatible with type %a%s",Ug="@callback<",Gg="cannot get method_name when running locally",$g="__stablemem_version",Kg="(Flexible)",Og="as_mut",Rg="#%s",Qg="this declaration has no initializer. Omitting an initializer is only allowed in an actor and with flag --enhanced-migration.",Cg='compile_const_exp/ObjE: "',Hg=159,Vg="EDEADLK",Lg="@{",zg="{}",Sg="global_timer_set",Zg="EDOM",Wg=7945,Xg="PowOp",Jg="settings",Yg="unclosed comment",rq=251,nq="Unix.Unix_error",tq="tag_scrut",eq="N",aq="msg_cycles_accept128",uq="AssertE",fq="null rel_buf",iq="stableMemoryStoreInt16",cq="M0033",vq="fmin",oq="alt_scrut",Aq="actor",sq="class",bq="decode_principal",lq="file",Bq="regionStoreNat16",jq="blob_iter_done",kq="B+sub",pq="tup",mq="Sys_error",dq=1051,_q=101,hq=16777152,xq="OCAMLRUNPARAM",yq="IDL error: left-over bytes ",wq="post_write_barrier",gq="error_message",qq=198,Iq="bigint_rsh",Dq="ENOTCONN",Eq="contains_field",Nq="cycle_accept",Tq="@[{@;<0 0>%a@;<0 -2>}@]",Fq=186,Mq="tagidx",Pq="int_from_i32",Uq="CPSAsync unexpected typ",Gq="ArrayE",$q="field name %s does not exist in type\n %s",Kq="call_data_append",Oq="Int32",Rq='": captures "',Qq="B_neg",Cq="region_load_blob",Hq="compile_const_dec: Unexpected VarD/RefD",Vq="values",Lq="EPFNOSUPPORT",zq="costCall",Sq="=",Zq="wasm_features",Wq="arg_count",Xq=" :",Jq=")",Yq="M0217",rI="bigint_sleb128_decode",nI="this declaration is currently implicitly transient, please declare it explicitly `transient`",tI=.0009765625,eI="ctz32",aI="blobToArrayMut",uI="B_sub",fI="ETIMEDOUT",iI="",cI="value",vI="Pos",oI="error",AI="encodeUtf8",sI=460,bI="BangE",lI="assertion failed at ",BI="cannot infer type of forward field reference %s",jI="cannot get system time when running locally",kI=125,pI=" in ",mI="service constructor not supported",dI=179,_I="stableMemoryLoadFloat",hI=1021133848,xI="callbackTableSize",yI="memory",wI=" <: ",gI="BreakE",qI="this declares an implicit oneway function.\n if this is intentional, annotate explicitly with `: ()`, otherwise annotate with `: async ()`",II="async*",DI="obj_idx_ind<%d>",EI="buffer_in_32_bit_range",NI=150,TI="fceil",FI="M0223",MI="f",PI="Stable",UI="graph_destabilization_increment",GI=32768,$I="set_local %i",KI="canister_update ",OI="expression of type%a\ncannot produce expected type%a",RI="!",QI="replicated_execution",CI="ftrunc",HI="caller",VI="get_heap_size",LI="data_buffer",zI="Invalid UTF-8",SI="\\u{%02x}",ZI="FromCandidE",WI=1078,XI=8042,JI="\n because ",YI=131,rD="StackRep.of_type",nD="Flexible",tD=1006505782,eD="bigint_mul",aD="ShiftROp",uD="moc_stable_mem_get_size",fD="XorOp",iD="suspend",cD=401,vD="redundant type instantiation",oD="mo_frontend/coverage.ml",AD="@motoko_async_stabilization",sD="Array.init",bD="data_certificate_present",lD="NullLit",BD="IDL error: circular record read",jD=472,kD=256,pD="FloatLit",mD="M0119",dD=12582912,_D="false",hD="Text.compare_gt",xD="bool",yD="boundary",wD="DIDL\0\0",gD="TypD",qD="memo",ID="misplaced actor migration expression on module or object",DD="load_stable_actor",ED="stableMemoryLoadBlob",ND="tag",TD="blob_len",FD="InPreUpgrade",MD="FuncT",PD="M0057",UD=508,GD="len1",$D="atan",KD=390,OD="@[%s%s@]",RD="write_with_barrier",QD="msg_caller_size",CD=193,HD="actors are not supported",VD="cannot get environment variable when running locally",LD="stableMemorySize",zD="cannot get actor-subnet-reference when running locally",SD="@cleanup",ZD=919,WD=327,XD="ModOp",JD="mo_types/expansive.ml",YD="variable %s is declared stable but has non-stable type%a",rE="cannot get cycles refunded when running locally",nE="fsin",tE="type parameter %s has cyclic bounds %s",eE="guarded_",aE="ParT",uE="mismatching source",fE="CharLit",iE="__typtbl",cE="region_size",vE="clzInt8",oE="future",AE="List.nth",sE="Shared Query",bE="End_of_file",lE=346,BE="idl_alloc_typtbl",jE="...",kE=".\n",pE="int32",mE=375,dE="ClassD",_E="rts_trap",hE="public ",xE="blob_iter_next",yE=" when running locally",wE=200,gE="ic0_stable64_size",qE="type_desc: unexpected type %s\n",IE="deprecated syntax: an imported library should be a module or named actor class",DE=307,EE=363,NE="region_init",TE=" = ",FE=" argument",ME="motoko:stable-types",PE="include",UE="acc",GE="private",$E="%Lx",KE="print_text",OE="cannot accept cycles when running locally",RE="\ndoes not match expected type",QE="shared",CE=139,HE="initialize_incremental_gc",VE="Public",LE="Null",zE="mul",SE=489,ZE="file$",WE="Float->Text",XE="\n does not match ",JE="this pattern is never matched",YE="buffer_size called on value of type None",rN="mo_frontend/menhir_error_reporting.ml",nN="@@ref_buf",tN=440380662,eN="unknown primitive type",aN="Composite",uN=296,fN="M0121",iN=870530776,cN=24029,vN="fsqrt",oN="Int16Lit",AN="WildP",sN="M0240",bN="leb128_encode",lN=258,BN="field %s does not exist in %a",jN="",kN="@@typtbl_size",pN=-808010220,mN="could not perform %s",dN="shared function cannot take a context pattern",_N="overwrite field to resolve error",hN="stream_reserve",xN="obj_scrut",yN="mo_def/compUnit.ml",wN="bad annotation (object type expected)",gN=165,qN="M0039",IN="field also present in base, here (consider overwriting)",DN="actor_public_field",EN="request_size",NN=3654863,TN="a shared function is only allowed as a public field of an actor",FN="stable64_write",MN=" is PublicMethod",PN="cannot get certificate when running locally",UN="method_name_size",GN="opt_project",$N="Float32->Text",KN="_clos",ON="WSubOp",RN="Could not find %s\n",QN=108,CN="expected object type, but expression produces type\n %s",HN="canister_pre_upgrade attempted with outstanding message callbacks (try stopping the canister before upgrade)",VN="@callback",LN="AddOp",zN="logicalStableMemorySize",SN="ValF",ZN="ImportE",WN="set of bindings differ for alternative pattern",XN="compile_comparison",JN="lexp with non-mutable type",YN="__wasm_apply_data_relocs",rT=" in pattern",nT="compiler bug: expected a module or actor class but found a program, i.e. a sequence of declarations",tT="VarD",eT="InUpdate",aT="explode_Int16",uT="new_object",fT="PathT",iT=409,cT="\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0ÿ\0\0\0\0\0\0\0\0\0\0\0\0",vT="reply_with_data",oT="ArrayT",AT="DotE",sT="bigint_eq",bT="@[%*s %a %a@]",lT=-32,BT="box64",jT="serialization overflow",kT="system function timer is present but -no-timer flag is specified",pT="cost_create_canister",mT="fcos",dT="%s\n",_T="ECONNABORTED",hT="to_var_type: Unreachable",xT="Object",yT="msg_caller_copy",wT="Int64",gT="Shared",qT=109,IT="M0215",DT="text_iter_next",ET="ECONNREFUSED",NT="Weak",TT="src/automaton_state_intf.ml",FT="leb128_decode",MT="M0251",PT="regionStoreFloat",UT="int",GT="LoopE",$T="actors cannot serve as bases in record extensions",KT="peek_future_continuation",OT="ShiftLOp",RT="EAFNOSUPPORT",QT="bigint_of_int32",CT="cycle_balance",HT="actorOfPrincipal",VT="low_memory_exp",LT=1080,zT=257,ST="M0077",ZT="canister_post_upgrade",WT=192,XT="canister_status",JT="mo_values/operator.ml",YT="Blob.compare_neq",rF="-",nF="Int16",tF="illegal control character in text literal",eF="class cannot be a query",aF="word8",uF="file ",fF="set_val: %s missing",iF="regionStoreInt16",cF="__stablemem_store_blob",vF="serializing value of type None",oF="cannot get %s when running locally",AF=365180284,sF="not a self-call or call from controller",bF="clzInt32",lF=3455931,BF="temp",jF="A",kF="expected function type, but expression produces type\n %s",pF=" but got ",mF="canister_heartbeat",dF="close",_F="%s\n%!",hF=415,xF=-976970511,yF="null",wF="shared function with async result type has non-async body",gF="__stablememory_store_word64",qF=261,IF="IDL error: did not find field ",DF=2147483647,EF=-822677911,NF="Int64.of_string",TF="could not perform ",FF="while",MF="Blob.compare_le",PF="int_of_string",UF="Nat8",GF="popcntInt64",$F="VariantT",KF="M0096",OF="src/pre_sexp.ml",RF=1/0,QF="ir_def/check_ir.ml",CF="rts_callback_table_size",HF="call_with_best_effort_response",VF=834,LF="powf",zF="rotr",SF=502,ZF="M0221",WF="Const",XF="deserialize_go (Region): unexpected idl_typ",JF="%s",YF="stable64_size",rM=116,nM="expected object type, but expression produces type",tM="cannot infer type of forward field reference ",eM="GOT.mem",aM="popcnt16",uM="compile_const_exp/DotE: not a static object",fM="--enhanced-migration: no valid migration modules found (migration modules must export a public `migration` function)",iM="lang_utils/expGraph.ml",cM="public actor field needs to be a manifest function",vM="bigint_gt",oM="by",AM=32768,sM="StableMemory range overflow",bM="__stablemem_%sread_%s",lM="Nat32",BM="cannot infer the type of this or-pattern, please add a type annotation",jM="WPowOp",kM="msg_cycles_available128",pM="No global named %s declared",mM="cannot decide subtyping between type%a\nand%a",dM="failed",_M="as_tup",hM="note: ",xM="@ret",yM="actor import",wM=132,gM="__stablememory_store_blob",qM="0x",IM="written_value",DM="syntax",EM="__collector_instructions",NM="compare: functional value",TM="%d",FM="stableMemoryGrow",MM="message",PM="Text.compare_lt",UM="multi-memory",GM="float_fmt",$M=467,KM="IDL error: unexpected IDL type when parsing ",OM="post_exp",RM="shared function has non-shared return type",QM="ref_buffer",CM="ENETUNREACH",HM="btst64",VM=8421504,LM=" ",zM="object_size/Mut: Unexpected tag.",SM="option pattern cannot consume expected type",ZM=376,WM="B_rsh",XM=-2147483648,JM="OptP",YM="Range overflow",rP="stableMemoryStoreFloat",nP="package",tP="__stablemem_load_blob",eP="readdir",aP="M0189",uP=286,fP="arg",iP="name_len",cP="internals",vP="ctzInt16",oP="put",AP="is_controller",sP="bigint_lt",bP="rts_callback_table_count",lP="non-actor class cannot take a context pattern",BP="Float",jP="rts_memory_size",kP="EALREADY",pP="regionLoadNat64",mP="AsyncE",dP="bigint_le",_P="motoko",hP=229,xP=325,yP="AwaitE*",wP="misplaced %s",gP='" not defined',qP="r",IP="Obj.extension_constructor",DP="B_rem",EP="Array.idx_bigint",NP="M0168",TP=" -> ",FP="stream_stable_dest",MP="ir_passes/async.ml",PP="duplicate variable definition in block",UP=221,GP="__motoko_stabilize_before_upgrade",$P="rts_collector_instructions",KP=121,OP=118,RP="finally",QP='internal error: const "%s": captures "%s", not found in static environment\n',CP="Text",HP=120,VP="@@value_numerator",LP=999,zP="boxed_i64",SP=": calling convention ",ZP="old_pos",WP="LetD",XP="M0038",JP="\n ",YP="__typtbl_idltyps",rU='internal error: const "',nU="msg_reject_code",tU=7981,eU="shared function has non-shared parameter type",aU="failed to determine type for type pattern field",uU="shared functions are not supported",fU="$lambda",iU=145,cU="rtsVersion",vU="print",oU=82908052,AU="from_",sU="--help",bU="SubOp",lU="",BU="integer representation too long",jU="init",kU="cannot infer type of variable",pU="lib/core/index.ml",mU="mixin",dU="new_size",_U="blob_copy_%s_%s",hU="clos",xU="win32",yU="sort mismatch",wU="bigint_pow",gU="unbound variable %s",qU="",IU="fabs",DU="rts_mutator_instructions",EU="camlinternalMod.ml",NU="PosOp",TU="AwaitE",FU="new",MU="int8",PU="Natural subtraction underflow",UU=123,GU="@prim",$U="ctz64",KU="idx",OU="msg_cycles_refunded128",RU="clz32",QU="VarE",CU="Nat->Nat64",HU="env_var_name_copy",VU="to_var_type: Const",LU="IDL error: unexpected principal reference",zU="rts_upgrade_instructions",SU=" of type",ZU="%lx",WU=-16777216,XU="explode_Nat16",JU="explode_Nat64",YU="migration module does not export a `migration` function, skipping",rG="But got no arguments",nG="bigint_sleb128_decode_word64",tG="refs_start",eG="_tuple",aG="Bool",uG="var",fG="sleb128_encode",iG="not a self-call",cG="M0210",vG=749039939,oG="EDESTADDRREQ",AG="ThrowE",sG="Blob.idx_bigint",bG="bigint_count_bits",lG="__typtbl_end",BG=" doesn't exist",jG="compacting",kG="regionSize",pG="Blob.compare_eq",mG="unvisited mutable data in serialize_go (MutBox)",dG="BlockE",_G="regionLoadInt16",hG="__stablememory_load_word16",xG=31744,yG="msg_reject",wG="",gG="misplaced system visibility, did you mean private?",qG="IDL error: unexpecting primitive alias type",IG="__stablemem_guard_range",DG="\nbecause ",EG="closure_data",NG="NamedT",TG="NeqOp",FG="return",MG="IDL error: principal too long",PG=65516,UG="add",GG="different set of type bindings in pattern alternatives",$G="Weak references are not supported in classical mode.",KG="unvisited mutable data in serialize_go (Region)",OG=162,RG="actor-alias",QG="stop_gc_before_stabilization",CG="char_is_uppercase",HG="alloc_region",VG=787,LG="call_as_prim was true?",zG="debug",SG="from_candid",ZG="regionLoadInt32",WG="Var",XG="popcntInt32",JG="",YG="neg_trap",r$="AnnotE",n$="",t$=117,e$="ProjE",a$="invalid argument",u$="ENOLCK",f$="Char",i$="as_async",c$="weak ",v$="blob import placeholder",o$=253,A$="__persistence_version",s$="cost_http_request",b$="read_persistence_version",l$="query",B$="bigint_of_float64",j$="crc32Hash",k$="stop_gc_on_upgrade",p$="` of type",m$="setCandidTypeLimits",d$="B_gt",_$=103,h$="` is provided but not expected in object of type",x$=100,y$="loop",w$="algorithm",g$="PostQuery",q$="zero flag expected",I$="@[<2>%s :@ %a@]",D$="bigint_add",E$="lib/ansi_renderer/snippet.ml",N$="M0167",T$="expected `",F$=-440679759,M$="ENOTEMPTY",P$="TupP",U$="__stablememory_store_word32",G$="M0198",$$="bigint_to_word32_wrap",K$="vals",O$="`%s`",R$="WAddOp",Q$="Memory",C$="unclosed text literal",H$="Nat16Lit",V$="IDL error: unexpected actor reference",L$=458,z$=2139095040,S$="uncaught throw",Z$="EMFILE",W$=113,X$="canister_on_low_wasm_memory",J$="as_variant",Y$="bigint_to_word32_trap_with",rK=" = a: 0x",nK=":",tK="M0242",eK=" in record",aK="%a",uK="camlinternalFormat.ml",fK="performanceCounter",iK="BinE",cK="mixins may only be declared at the top-level",vK="redundant empty parenthetical note",oK="IDL error: incompatible function type",AK=399,sK="IntLit",bK="%s<%s>",lK="M0154",BK=7951,jK="DebugE",kK="service",pK="compile_binop",mK="0",dK="",_K="Array index out of bounds",hK="canister_self_size",xK=445,yK="Ill-typed intermediate code after ",wK="M0081",gK="get_static_roots",qK=474,IK="throw",DK="M0031",EK="debug_print",NK="this uninitialized declaration requires a type annotation",TK="catch",FK="table",MK=328,PK=836501035,UK="lib/ansi_renderer/snippet_renderer.ml",GK=255,$K=16777215,KK=362,OK="allocation_barrier",RK="IncludeD",QK="stream",CK="blob_of_principal",HK="ENETRESET",VK="cannot upgrade from an actor using enhanced migration to an actor not using enhanced migration",LK="IDL error: did not find tuple field in record",zK="shared function with () result type has unexpected body:\n the body must either be of sugared form '{ ... }' \n or explicit form '= ignore ((async ...) : async ())'",SK="Set.bal",ZK=408,WK="moc_stable_memory_access_limit",XK="parenthetical notes aren't allowed on shared functions",JK=381,YK="@@value_quota",rO=963043957,nO="dst",tO="negative power",eO="@[<1>weak %a@]",aO="call_perform_message",uO="unknown mixin ",fO=7979,iO="",cO=402,vO="ic0_stable64_write",oO="to_opt_%i_tuple",AO="AssignE",sO="LtOp",bO="#",lO="system",BO="pre_exp",jO="@add_cycles",kO="cannot import canister urls without --actor-idl param",pO="Blob.compare_gt",mO="internal error: unexpected state entering ",dO="VarP",_O="int64_of_big_int",hO="weak_get",xO="get_graph_destabilized_actor",yO=134,wO="region_load_word16",gO="region_load_float64",qO="cannot burn cycles when running locally",IO="value %s does not match pattern",DO="M0169",EO="stable64_read",NO="nat16",TO="set_migrations",FO="@cleanup_callback",MO="ENXIO",PO=205556449,UO=230,GO="len_caller",$O="key_name",KO="regionLoadInt8",OO="a shared function cannot be private",RO="accept_message",QO="exec/ixx.ml",CO=",",HO=", expected one of token or sequence:\n ",VO=" in imports",LO="bigint_neg",zO="transient",SO="utf8_validate",ZO="buffer_size",WO="EXDEV",XO=384,JO=8043,YO="memcmp",rR="_bigarr02",nR="this actor or actor class should be declared `persistent`",tR=388,eR="B_le",aR=377,uR="Async",fR="btstInt64",iR="@buffer_size<",cR=".mo",vR="UnboxedFloat64",oR="call ",AR=" is not contained in expected type",sR="\nright operand is",bR="env_var_names",lR="M0086",BR="ToCandidE",jR="mo_frontend/typing.ml",kR=195,pR="bigint_sleb128_size",mR=196,dR="read",_R="unbound label ",hR="mo_idl/idl_to_mo.ml",xR="nat8",yR="IDL error: deserializing value of type None",wR=-97,gR=391,qR=306,IR="meth_pair",DR=8040,ER="EISCONN",NR="motoko:compiler",TR="msg_method_name_size",FR="shared function must have syntactic return type '()' or 'async '",MR="bulk-memory",PR="region_store_word8",UR="prelude",GR="costHttpRequest",$R="IDL error: byte tag not 0 or 1",KR="blob",OR="/// ",RR=220,QR="wasm-exts/customModuleEncode.ml",CR="pages",HR="Printexc.handle_uncaught_exception",VR="__stack_pointer",LR="bigint_of_int64",zR="Pre",SR="bitwidth_mask_of_type",ZR="text_to_buf",WR="SignP",XR="save_stable_actor",JR="M0200",YR="accessing identifier before its definition",rQ="info",nQ="get_static_variable",tQ="losing precision",eQ="Blob index out of bounds",aQ="stableMemoryLoadNat64",uQ="a",fQ="";function iQ(r,n,t,e){for(var a=e,u=0;u>>0)+a;if(r.data[n+u]=0|f,f===f>>>0){a=0;break}a=1}return a}function cQ(r,n,t,e,a,u,f){for(var i=f,c=0;c>>0)+(e.data[a+c]>>>0)+i;r.data[n+c]=v,i=v===v>>>0?0:1}return iQ(r,n+u,t-u,i)}function vQ(r,n,t,e,a){for(var u=0;u=1;u--)t[e+u]=r[n+u];return 0}function AQ(r,n,t){var e=new Array(t+1);e[0]=0;for(var a=1,u=n+1;a<=t;a++,u++)e[a]=r[u];return e}var sQ={};function bQ(n){if(sQ[n])return sQ[n];var t=r.process;return t&&t.env&&void 0!==t.env[n]?t.env[n]:r.jsoo_env&&"string"==typeof r.jsoo_env[n]?r.jsoo_env[n]:void 0}var lQ=0;!function(){var r=bQ(xq);if(void 0!==r)for(var n=r.split(CO),t=0;t>-n-14,u[r|kD]=1024>>-n-14|GI,f[r]=-n-1,f[r|kD]=-n-1):n<=15?(u[r]=n+15<<10,u[r|kD]=n+15<<10|GI,f[r]=13,f[r|kD]=13):n0?1:-1,i=Math.abs(u);if(i65504||Number.isNaN(v)?f*Number.POSITIVE_INFINITY:f*v}(r);const i=v[0],o=i>>23&511;return u[o]+((8388607&i)>>f[o])}}(),wQ=function(){var r=Math.pow,n=r(2,-24),t=tI;return function(e){var a=e>>>15,u=e>>>10&31,f=1023&e;return 31===u?0===f?0===a?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:Number.NaN:0===u?f*(0===a?n:-n):r(2,u-15)*(0===a?1+f*t:-1-f*t)}}(),gQ=Math.pow(2,-24);function qQ(r){throw r}function IQ(){qQ(jQ.Division_by_zero)}class DQ{constructor(r,n,t){this.lo=r&k_,this.mi=n&k_,this.hi=t&ci,this.caml_custom="_j"}static UNSIGNED_MAX=new DQ(k_,k_,ci);static SIGNED_MAX=new DQ(k_,k_,32767);static SIGNED_MIN=new DQ(0,0,GI);slice(){return new DQ(this.lo,this.mi,this.hi)}ucompare(r){return this.hi>r.hi?1:this.hir.mi?1:this.mir.lo?1:this.lot?1:nr.mi?1:this.mir.lo?1:this.lo>24),t=-this.hi+(n>>24);return new DQ(r,n,t)}add(r){var n=this.lo+r.lo,t=this.mi+r.mi+(n>>24),e=this.hi+r.hi+(t>>24);return new DQ(n,t,e)}sub(r){var n=this.lo-r.lo,t=this.mi-r.mi+(n>>24),e=this.hi-r.hi+(t>>24);return new DQ(n,t,e)}mul(r){var n=this.lo*r.lo,t=(n*gQ|0)+this.mi*r.lo+this.lo*r.mi,e=(t*gQ|0)+this.hi*r.lo+this.mi*r.mi+this.lo*r.hi;return new DQ(n,t,e)}isZero(){return 0===(this.lo|this.mi|this.hi)}isNeg(){return this.hi<<16<0}and(r){return new DQ(this.lo&r.lo,this.mi&r.mi,this.hi&r.hi)}or(r){return new DQ(this.lo|r.lo,this.mi|r.mi,this.hi|r.hi)}xor(r){return new DQ(this.lo^r.lo,this.mi^r.mi,this.hi^r.hi)}shift_left(r){return 0===(r&=63)?this:r<24?new DQ(this.lo<>24-r,this.hi<>24-r):r<48?new DQ(0,this.lo<>48-r):new DQ(0,0,this.lo<>r|this.mi<<24-r,this.mi>>r|this.hi<<24-r,this.hi>>r):r<48?new DQ(this.mi>>r-24|this.hi<<48-r,this.hi>>r-24,0):new DQ(this.hi>>r-48,0,0)}shift_right(r){if(0===(r&=63))return this;var n=this.hi<<16>>16;if(r<24)return new DQ(this.lo>>r|this.mi<<24-r,this.mi>>r|n<<24-r,this.hi<<16>>r>>>16);var t=this.hi<<16>>31;return r<48?new DQ(this.mi>>r-24|this.hi<<48-r,this.hi<<16>>r-24>>16,t&ci):new DQ(this.hi<<16>>r-32,t,t)}lsl1(){this.hi=this.hi<<1|this.mi>>23,this.mi=(this.mi<<1|this.lo>>23)&k_,this.lo=this.lo<<1&k_}lsr1(){this.lo=(this.lo>>>1|this.mi<<23)&k_,this.mi=(this.mi>>>1|this.hi<<23)&k_,this.hi=this.hi>>>1}udivmod(r){for(var n=0,t=this.slice(),e=r.slice(),a=new DQ(0,0,0);t.ucompare(e)>0;)n++,e.lsl1();for(;n>=0;)n--,a.lsl1(),t.ucompare(e)>=0&&(a.lo++,t=t.sub(e)),e.lsr1();return{quotient:a,modulus:t}}div(r){var n=this;r.isZero()&&IQ();var t=n.hi^r.hi;n.hi&GI&&(n=n.neg()),r.hi&GI&&(r=r.neg());var e=n.udivmod(r).quotient;return t&GI&&(e=e.neg()),e}mod(r){var n=this;r.isZero()&&IQ();var t=n.hi;n.hi&GI&&(n=n.neg()),r.hi&GI&&(r=r.neg());var e=n.udivmod(r).modulus;return t&GI&&(e=e.neg()),e}toInt(){return this.lo|this.mi<<24}toFloat(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo}toArray(){return[this.hi>>8,this.hi&o,this.mi>>16,this.mi>>8&o,this.mi&o,this.lo>>16,this.lo>>8&o,this.lo&o]}lo32(){return this.lo|(this.mi&o)<<24}hi32(){return this.mi>>>8&ci|this.hi<<16}}function EQ(r){return r.hi32()}function NQ(r){return r.lo32()}function TQ(){dQ(Ky)}var FQ=rR;class MQ{constructor(r,n,t,e){this.kind=r,this.layout=n,this.dims=t,this.data=e,this.caml_custom=FQ}offset(r){var n=0;if("number"==typeof r&&(r=[r]),Array.isArray(r)||dQ("bigarray.js: invalid offset"),this.dims.length!==r.length&&dQ("Bigarray.get/set: bad number of dimensions"),0===this.layout)for(var t=0;t=this.dims[t])&&TQ(),n=n*this.dims[t]+r[t];else for(t=this.dims.length-1;t>=0;t--)(r[t]<1||r[t]>this.dims[t])&&TQ(),n=n*this.dims[t]+(r[t]-1);return n}get(r){switch(this.kind){case 7:return function(r,n){return new DQ(r&k_,r>>>24&o|(n&ci)<<8,n>>>16&ci)}(this.data[2*r+0],this.data[2*r+1]);case 10:case 11:var n=this.data[2*r+0],t=this.data[2*r+1];return[SB,n,t];case 13:return wQ(this.data[r]);default:return this.data[r]}}set(r,n){switch(this.kind){case 7:this.data[2*r+0]=NQ(n),this.data[2*r+1]=EQ(n);break;case 10:case 11:this.data[2*r+0]=n[1],this.data[2*r+1]=n[2];break;case 13:this.data[r]=yQ(n);break;default:this.data[r]=n}return 0}fill(r){switch(this.kind){case 7:var n=NQ(r),t=EQ(r);if(n===t)this.data.fill(n);else for(var e=0;eu)return 1;if(a!==u){if(!n)return Number.NaN;if(!Number.isNaN(a))return 1;if(!Number.isNaN(u))return-1}}break;case 7:for(e=0;er.data[e+1])return 1;if(this.data[e]>>>0>>0)return-1;if(this.data[e]>>>0>r.data[e]>>>0)return 1}break;case 13:for(e=0;ei)return 1}break;case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 12:for(e=0;er.data[e])return 1}}return 0}}class PQ extends MQ{offset(r){return"number"!=typeof r&&(Array.isArray(r)&&1===r.length?r=r[0]:dQ("Ml_Bigarray_c_1_1.offset")),(r<0||r>=this.dims[0])&&TQ(),r}get(r){return this.data[r]}set(r,n){return this.data[r]=n,0}fill(r){return this.data.fill(r),0}}function UQ(r,n,t,e){var a=_Q(r);return xQ(t)*a!==e.length&&dQ("length doesn't match dims"),0===n&&1===t.length&&1===a&&13!==r?new PQ(r,n,t,e):new MQ(r,n,t,e)}function GQ(r){return r.slice(1)}function $Q(r){return function(r,n){return(n<0||n>=r.dims.length)&&dQ("Bigarray.dim"),r.dims[n]}(r,0)}function KQ(r,n,t){var e=String.fromCharCode;if(0===n&&t<=4096&&t===r.length)return e.apply(null,r);for(var a=fQ;0=t.l||2===t.t&&a>=t.c.length))t.c=4===r.t?KQ(r.c,n,a):0===n&&r.c.length===a?r.c:r.c.slice(n,n+a),t.t=t.c.length===t.l?0:2;else if(2===t.t&&e===t.c.length)t.c+=4===r.t?KQ(r.c,n,a):0===n&&r.c.length===a?r.c:r.c.slice(n,n+a),t.t=t.c.length===t.l?0:2;else{4!==t.t&&OQ(t);var u=r.c,f=t.c;if(4===r.t)if(e<=n)for(var i=0;i=0;i--)f[e+i]=u[n+i];else{var c=Math.min(a,u.length-n);for(i=0;ioj)return!1;return!0}return!/[^\x00-\x7f]/.test(r)}class zQ{constructor(r,n,t){this.t=r,this.c=n,this.l=t}toString(){switch(this.t){case 9:case 8:return this.c;case 4:case 2:VQ(this);case 0:return LQ(this.c)?this.t=9:this.t=8,this.c}}toUtf16(){if(9===this.t)return this.c;var r=CQ(this);return QQ.decode(r)}slice(){var r=4===this.t?this.c.slice():this.c;return new zQ(this.t,r,this.l)}}function SQ(r){return new zQ(0,r,r.length)}function ZQ(r){return r}function WQ(r){return SQ(r)}function XQ(r,n,t,e,a){return RQ(WQ(r),n,t,e,a),0}function JQ(){dQ(Ky)}function YQ(r,n){switch(6&r.t){case 0:return r.c.charCodeAt(n);case 2:return n>=r.c.length?0:r.c.charCodeAt(n);case 4:return r.c[n]}}function rC(r,n){return n>>>0>=r.l&&JQ(),YQ(r,n)}function nC(r){return new DQ(r[7]|r[6]<<8|r[5]<<16,r[4]|r[3]<<8|r[2]<<16,r[1]|r[0]<<8)}function tC(r,n){n>>>0>=r.l-7&&JQ();for(var t=new Array(8),e=0;e<8;e++)t[7-e]=YQ(r,n+e);return nC(t)}function eC(r,n,t){if(t&=o,4!==r.t){if(n===r.c.length)return r.c+=String.fromCharCode(t),n+1===r.l&&(r.t=0),0;OQ(r)}return r.c[n]=t,0}function aC(r,n,t){return n>>>0>=r.l&&JQ(),eC(r,n,t)}function uC(r,n,t){n>>>0>=r.l-3&&JQ();var e=o&t>>24,a=o&t>>16,u=o&t>>8;return eC(r,n+0,o&t),eC(r,n+1,u),eC(r,n+2,a),eC(r,n+3,e),0}function fC(r){return r.toArray()}function iC(r,n,t){n>>>0>=r.l-7&&JQ();for(var e=fC(t),a=0;a<8;a++)eC(r,n+7-a,e[a]);return 0}function cC(r,n){var t=r.l>=0?r.l:r.l=r.length,e=n.length,a=t-e;if(0===a)return r(...n);if(a<0)return"function"!=typeof(u=r(...n.slice(0,t)))?u:cC(u,n.slice(t));switch(a){case 1:var u=function(t){for(var a=new Array(e+1),u=0;u>>0>=r.length-1&&TQ(),r}function oC(r){return Number.isFinite(r)?Math.abs(r)>=22250738585072014e-324?0:0!==r?1:2:Number.isNaN(r)?4:3}function AC(r){return 0}var sC=new DataView(new ArrayBuffer(8));function bC(r){return sC.setFloat32(0,r,!0),0|sC.getUint32(0,!0)}function lC(r,n,t){return new DQ(r,n,t)}function BC(r){sC.setFloat64(0,r,!0);var n=sC.getUint32(0,!0),t=sC.getUint32(4,!0);return lC(n&k_,n>>>24|t<<8&k_,t>>>16&ci)}function jC(r,n,t){if(r.write(32,n.dims.length),r.write(32,n.kind|n.layout<<8),n.caml_custom===rR)for(var e=0;e>>8|e<<16,!0),sC.getFloat64(0,!0)}function mC(r){jQ.Failure||(jQ.Failure=[Ul,Qe,-3]),mQ(jQ.Failure,r)}function dC(r,n,t){var e=r.read32s();(e<0||e>16)&&mC("input_value: wrong number of bigarray dimensions");var a=r.read32s(),u=a&o,f=a>>8&1,i=[];if(t===rR)for(var c=0;c>>17,461845907))<<13|r>>>19)+(r<<2)|0)-430675100|0}function yC(r,n){return(n&xG)===xG&&1023&n?n=31745:n===GI&&(n=0),xC(r,n)}function wC(r,n){var t=bC(n);return(t&z$)===z$&&8388607&t?t=2139095041:t===(0|z_)&&(t=0),r=xC(r,t)}function gC(r,n){var t=BC(n),e=NQ(t),a=EQ(t);return(a&Xl)===Xl&&e|1048575&a?(a=Xl,e=1):a===(0|z_)&&0===e&&(a=0),r=xC(r,e),r=xC(r,a)}function qC(r){var n=xQ(r.dims),t=0;switch(r.kind){case 2:case 3:case 12:n>xv&&(n=xv);var e=0,a=0;for(a=0;a+4<=n;a+=4)t=xC(t,e=r.data[a+0]&o|(r.data[a+1]&o)<<8|(r.data[a+2]&o)<<16|r.data[a+3]<<24);switch(e=0,3&n){case 3:e=r.data[a+2]<<16;case 2:e|=r.data[a+1]<<8;case 1:t=xC(t,e|=r.data[a+0])}break;case 4:case 5:n>hh&&(n=hh);e=0,a=0;for(a=0;a+2<=n;a+=2)t=xC(t,e=r.data[a+0]&ci|r.data[a+1]<<16);1&n&&(t=xC(t,r.data[a]));break;case 6:n>64&&(n=64);for(a=0;a64&&(n=64);for(a=0;a32&&(n=32),n*=2;for(a=0;a64&&(n=64);for(a=0;a32&&(n=32);for(a=0;ahh&&(n=hh);for(a=0;a0?a(n,r,e):a(r,n,e);if(e&&Number.isNaN(u))return t;if(Number.isNaN(+u))return+u;if(0|u)return 0|u}return t}function TC(r){return"string"==typeof r&&!/[^\x00-\xff]/.test(r)}function FC(r){return r instanceof zQ}function MC(r){if("number"==typeof r)return Rs;if(FC(r))return sv;if(TC(r))return L_;if(Array.isArray(r)&&r[0]===r[0]>>>0&&r[0]<=GK){var n=0|r[0];return n===SB?0:n}return r instanceof String||"string"==typeof r?12520:r instanceof Number?Rs:r?.caml_custom?ea:r?.compare?1256:"function"==typeof r?Hn:"symbol"==typeof r?1251:1001}function PC(r,n){return rn?1:0}function GC(r,n){return 6&r.t&&VQ(r),6&n.t&&VQ(n),r.cn.c?1:0}function $C(r,n,t){for(var e=[];;){if(!t||r!==n){var a=MC(r);if(a===an){r=r[1];continue}var u=MC(n);if(u===an){n=n[1];continue}if(a!==u)return a===Rs?u===ea?NC(r,n,-1,t):-1:u===Rs?a===ea?NC(n,r,1,t):1:an)return 1;if(r!==n){if(!t)return Number.NaN;if(!Number.isNaN(r))return 1;if(!Number.isNaN(n))return-1}break;case 1001:if(rn)return 1;if(r!==n)return t?1:Number.NaN;break;case 1251:if(r!==n)return t?1:Number.NaN;break;case 1252:if((r=ZQ(r))!==(n=ZQ(n))){if(rn)return 1}break;case 12520:if((r=r.toString())!==(n=n.toString())){if(rn)return 1}break;default:if(AC()){dQ("compare: continuation value");break}if(r.length!==n.length)return r.length1&&e.push(r,n,1)}}if(0===e.length)return 0;var c=e.pop();n=e.pop(),c+1<(r=e.pop()).length&&e.push(r,n,c+1),r=r[c],n=n[c]}}function KC(r,n){return $C(r,n,!0)}function OC(r){return r<0&&dQ("Bytes.create"),new zQ(r?2:9,fQ,r)}var RC=new ArrayBuffer(ts);function QC(r){if(LQ(r))return r;for(var n=r.length<=RC.length?new Uint8Array(RC,0,r.length):new Uint8Array(r.length),t=0;t=a){var u=OC(r+e),f=this.data;this.data=u,RQ(f,0,this.data,0,a)}return RQ(nH(n),t,this.data,r,e),e}read(r,n,t,e){var a=this.length();if(r+e>=a&&(e=a-r),e){var u=OC(0|e);RQ(this.data,r,u,0,e),n.set(CQ(u),t)}return e}}class uH{constructor(r,n,t){this.file=n,this.name=r,this.flags=t,this.offset=0,this.seeked=!1}err_closed(r,n){YC(n,zk,r,ws)}length(){if(this.file)return this.file.length();this.err_closed(io)}truncate(r,n){if(this.file)return this.flags.wronly||this.flags.rdwr||YC(n,pc,ew,a$),this.file.truncate(r);this.err_closed(ew,n)}write(r,n,t,e){if(this.file&&(this.flags.wronly||this.flags.rdwr)){var a=this.offset;return t=this.file.write(a,r,n,t),this.offset+=t,t}this.err_closed(Cw,e)}read(r,n,t,e){if(this.file&&!this.flags.wronly){var a=this.offset;return t=this.file.read(a,r,n,t),this.offset+=t,t}this.err_closed(dR,e)}seek(r,n,t){switch(n){case 0:break;case 1:r+=this.offset;break;case 2:r+=this.length()}r<0&&YC(t,pc,Zj,a$),this.offset=r,this.seeked=!0}close(){this.file||this.err_closed(dF),this.file=void 0}check_stream_semantics(r){if(!this.file)return this.err_closed(r,1)}}class fH{constructor(r,n){this.content={},this.root=r,this.lookupFun=n}nm(r){return this.root+r}create_dir_if_needed(r){for(var n=r.split(pv),t=fQ,e=0;e0&&ZC(this.nm(n)+" : directory not empty"));var t=this.slash(r),e=this.slash(n);this.create_dir_if_needed(e);for(const n of this.readdir(r))this.rename(t+n,e+n);delete this.content[t]}rename(r,n){this.exists(r)||ZC(this.nm(r)+" : no such file or directory"),this.is_dir(r)?this.rename_dir(r,n):(this.exists(n)&&this.is_dir(n)&&ZC(this.nm(n)+" : file already exists and is a directory"),this.content[n]=this.content[r],delete this.content[r])}mkdir(r,n,t){this.exists(r)&&YC(t,kr,YB,Ch,this.nm(r));var e=/^(.*)\/[^/]+/.exec(r);e=e?.[1]||fQ,this.exists(e)||YC(t,Lm,YB,JA,this.nm(r)),this.is_dir(e)||YC(t,qj,YB,Lv,this.nm(r)),this.create_dir_if_needed(this.slash(r))}rmdir(r,n){var t=r===fQ?fQ:this.slash(r),e=new RegExp(dm+t+Ii);for(var a in this.exists(r)||YC(n,Lm,Cs,JA,this.nm(r)),this.is_dir(r)||YC(n,qj,Cs,Lv,this.nm(r)),this.content)a.match(e)&&YC(n,M$,Cs,"directory not empty",this.nm(r));delete this.content[t]}readdir(r){var n=r===fQ?fQ:this.slash(r);this.exists(r)||ZC(r+": No such file or directory"),this.is_dir(r)||ZC(r+": Not a directory");var t=new RegExp(dm+n+Ii),e={},a=[];for(var u in this.content){var f=u.match(t);f&&!e[f[1]]&&(e[f[1]]=!0,a.push(f[1]))}return a}opendir(r,n){var t=this.readdir(r),e=!1,a=0;return{readSync:function(){if(e&&YC(n,zk,eP,ws),a===t.length)return null;var r=t[a];return a++,{name:r}},closeSync:function(){e&&YC(n,zk,eP,ws),e=!0,t=[]}}}is_dir(r){if(r===fQ)return!0;var n=this.slash(r);return this.content[n]?1:0}unlink(r,n){return this.exists(r,!0)||YC(n,Lm,"unlink",JA,r),delete this.content[r],0}access(r,n,t){return this.lookup(r),this.content[r]?this.is_dir(r)&&YC(t,"EACCESS","access","permission denied,",this.nm(r)):rH(this.nm(r),t),0}open(r,n,t,e){var a;return this.lookup(r),this.content[r]?(this.is_dir(r)&&YC(e,Ib,Lo,Ys,this.nm(r)),n.create&&n.excl&&YC(e,kr,Lo,Ch,this.nm(r)),a=this.content[r],n.truncate&&a.truncate()):n.create?(this.create_dir_if_needed(r),this.content[r]=new aH(OC(0)),a=this.content[r]):rH(this.nm(r),e),new uH(this.nm(r),a,n)}truncate(r,n,t){this.lookup(r),this.content[r]?(this.is_dir(r)&&YC(t,Ib,Lo,Ys,this.nm(r)),this.content[r].truncate(n)):rH(this.nm(r),t)}register(r,n){var t;if(this.content[r]&&ZC(this.nm(r)+" : file already exists"),FC(n)&&(t=new aH(n)),TC(n))t=new aH(WQ(n));else if(Array.isArray(n))t=new aH(function(r){return r instanceof Uint8Array||(r=new Uint8Array(r)),new zQ(4,r,r.length)}(n));else if("string"==typeof n)t=new aH(SQ(n));else if(n.toString){var e=WQ(SC(n.toString()));t=new aH(e)}t?(this.create_dir_if_needed(r),this.content[r]=t):ZC(this.nm(r)+" : registering file with invalid content type")}}function iH(r){var n=HC(r);if(n)return n[0]+pv}var cH=iH(CC)||mC("unable to compute caml_root"),vH=[];function oH(r){for(var n,t=function(r){r=QC(r),HC(r)||(r=CC+r);for(var n=HC(r),t=n[1].split(/[/\\]/),e=[],a=0;a=3;e--){var a=n[e];if(r.WeakRef&&a instanceof r.WeakRef){if(void 0===a.deref()){n[e]=sH;continue}r.WeakMap&&(t=(new r.WeakMap).set(a,t))}}return n[2]=t,0}function pH(r,n){return 0===n?function(r){r[2]=sH}(r):kH(r,n[1]),0}function mH(n,t,e){var a=BH(n);return r.WeakRef&&e instanceof Object&&(e=new r.WeakRef(e)),n[3+t]=e,pH(n,a),0}function dH(r,n){return+(0===$C(r,n,!1))}function _H(r){var n,t=/^ *[-+]?(?:\d*\.?\d+|\d+\.?\d*)(?:[eE][-+]?\d+)?$/;if(n=+r,!Number.isNaN(n)&&t.test(r))return n;if(n=+(r=r.replace(/_/g,fQ)),!Number.isNaN(n)&&t.test(r)||/^[+-]?nan$/i.test(r))return n;var e=/^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)(p([+-]?[0-9]+))?$/i.exec(r);if(e){var a=e[3].replace(/0+$/,fQ),u=Number.parseInt(e[1]+e[2]+a,16),f=(+e[5]||0)-4*a.length;return n=u*Math.pow(2,f)}return/^\+?inf(inity)?$/i.test(r)?Number.POSITIVE_INFINITY:/^-inf(inity)?$/i.test(r)?Number.NEGATIVE_INFINITY:void mC("float_of_string")}function hH(r){var n=r.length;n>31&&dQ("format_int: format too long");for(var t={justify:cg,signstyle:rF,filler:zy,alternate:!1,base:0,signedconv:!1,width:0,uppercase:!1,sign:1,prec:-1,conv:MI},e=0;e=0&&a<=9;)t.width=10*t.width+a,e++;e--;break;case".":for(t.prec=0,e++;(a=r.charCodeAt(e)-48)>=0&&a<=9;)t.prec=10*t.prec+a,e++;e--;break;case"d":case"i":t.signedconv=!0,t.base=10;break;case"u":t.base=10;break;case"x":t.base=16;break;case"X":t.base=16,t.uppercase=!0;break;case"o":t.base=8;break;case"e":case"f":case"g":t.signedconv=!0,t.conv=a;break;case"E":case"F":case"G":t.signedconv=!0,t.uppercase=!0,t.conv=a.toLowerCase()}}return t}function xH(r,n){r.uppercase&&(n=n.toUpperCase());var t=n.length;r.signedconv&&(r.sign<0||r.signstyle!==rF)&&t++,r.alternate&&(8===r.base&&(t+=1),16===r.base&&(t+=2));var e=fQ;if(r.justify===cg&&r.filler===zy)for(var a=t;a20?(t-=20,r/=Math.pow(10,t),r+=HQ(t,mK),n>0&&(r=r+Qu+HQ(n,mK)),r):r.toFixed(n)}(n,e);break;case"g":e=e||1;var f=(a=n.toExponential(e-1)).indexOf(PB),i=+a.slice(f+1);if(i<-4||n>=1e21||n.toFixed(0).length>e){for(u=f-1;a.charAt(u)===mK;)u--;a.charAt(u)===Qu&&u--,u=(a=a.slice(0,u+1)+a.slice(f)).length,a.charAt(u-3)===PB&&(a=a.slice(0,u-1)+mK+a.slice(u-1));break}var c=e;if(i<0)c-=i+1,a=n.toFixed(c);else for(;(a=n.toFixed(c)).length>e+1;)c--;if(c){for(u=a.length-1;a.charAt(u)===mK;)u--;a.charAt(u)===Qu&&u--,a=a.slice(0,u+1)}}else a="inf",t.filler=zy;return xH(t,a)}function wH(r,n){if(r===TM)return fQ+n;var t=hH(r);n<0&&(t.signedconv?(t.sign=-1,n=-n):n>>>=0);var e=n.toString(t.base);if(t.prec>=0){t.filler=zy;var a=t.prec-e.length;a>0&&(e=HQ(a,mK)+e)}return xH(t,e)}var gH=0;function qH(){return gH++}function IH(r,n){return+($C(r,n,!1)>=0)}function DH(r,n){return+($C(r,n,!1)>0)}function EH(r,n){var t,e,a=n.length;for(t=0;t+4<=a;t+=4)r=xC(r,e=n.charCodeAt(t)|n.charCodeAt(t+1)<<8|n.charCodeAt(t+2)<<16|n.charCodeAt(t+3)<<24);switch(e=0,3&a){case 3:e=n.charCodeAt(t+2)<<16;case 2:e|=n.charCodeAt(t+1)<<8;case 1:r=xC(r,e|=n.charCodeAt(t))}return r^=a}function NH(r,n){return EH(r,n)}function TH(r,n){var t=function(r){return 2==(6&r.t)?(VQ(r),r.c):r.c}(n);return"string"==typeof t?EH(r,t):function(r,n){var t,e,a=n.length;for(t=0;t+4<=a;t+=4)r=xC(r,e=n[t]|n[t+1]<<8|n[t+2]<<16|n[t+3]<<24);switch(e=0,3&a){case 3:e=n[t+2]<<16;case 2:e|=n[t+1]<<8;case 1:r=xC(r,e|=n[t])}return r^a}(r,t)}function FH(r,n,t,e){var a,u,f,i,c,v,o,A,s;for(((i=n)<0||i>xv)&&(i=xv),c=r,v=t,a=[e],u=0,f=1;u0;){if(o=a[u++],o?.caml_custom){if(DC[o.caml_custom]&&DC[o.caml_custom].hash)v=xC(v,DC[o.caml_custom].hash(o)),c--}else if(Array.isArray(o)&&o[0]===(0|o[0]))switch(o[0]){case 248:v=xC(v,o[2]),c--;break;case 250:a[--u]=o[1];break;default:if(AC(o[0]))break;for(v=xC(v,o.length-1<<10|o[0]),A=1,s=o.length;A=i);A++)a[f++]=o[A]}else FC(o)?(v=TH(v,o),c--):TC(o)?(v=NH(v,o),c--):"string"==typeof o?(v=EH(v,o),c--):o===(0|o)?(v=xC(v,o+o+1),c--):"number"==typeof o&&(v=gC(v,o),c--)}return v=function(r){return r=hC(r^=r>>>16,-2048144789),r=hC(r^=r>>>13,-1028477387),r^r>>>16}(v),1073741823&v}function MH(r,n){return r.add(n)}function PH(r,n){return r.and(n)}function UH(r,n){return r.div(n)}function GH(r){return+r.isZero()}function $H(r){return new DQ(r&k_,r>>24&k_,r>>31&ci)}function KH(r){return r.toInt()}function OH(r){return r.neg()}function RH(r,n){var t=hH(r);t.signedconv&&function(r){return+r.isNeg()}(n)&&(t.sign=-1,n=OH(n));var e=fQ,a=$H(t.base);do{var u=n.udivmod(a);n=u.quotient,e="0123456789abcdef".charAt(KH(u.modulus))+e}while(!GH(n));if(t.prec>=0){t.filler=zy;var f=t.prec-e.length;f>0&&(e=HQ(f,mK)+e)}return xH(t,e)}function QH(r,n){return r.mod(n)}function CH(r,n){return r.mul(n)}function HH(r){return r.length}function VH(r,n){return r.charCodeAt(n)}function LH(r,n){return r.ucompare(n)<0}function zH(r){var n=0,t=HH(r),e=10,a=1,u=1;if(t>0)switch(VH(r,n)){case 45:n++,a=-1;break;case 43:n++,a=1}if(n+1=48&&r<=57?r-48:r>=65&&r<=90?r-55:r>=97&&r<=Tx?r-87:-1}function ZH(r,n){return r.or(n)}function WH(r,n){return r.shift_left(n)}function XH(r,n){return r.shift_right(n)}function JH(r,n){return r.shift_right_unsigned(n)}function YH(r,n){return r.sub(n)}function rV(r){return r.toFloat()}function nV(r,n){return r.xor(n)}function tV(r){var n=zH(r),t=n[0],e=n[1],a=n[2],u=n[3],f=HH(r),i=t=a)&&mC(PF);var v=c;for(t++;t=a)break;(v=a*v+c)>4294967295&&mC(PF)}return t!==f&&mC(PF),v*=e,u&&(0|v)!==v&&mC(PF),0|v}function eV(r){var n=r.length,t=new Array(n+1);t[0]=0;for(var e=0;e>16;return t}function oV(r){for(var n=0,t=r.length-1;t>=0;t--){n=[0,r[t],n]}return n}function AV(r,n){return function(r,n){r>>>0>=(Zb/4|0)&&TQ(),r=r+1|0;var t=new Array(r);t[0]=0;for(var e=1;e>>32-u,e)}function t(r,t,e,a,u,f,i){return n(t&e|~t&a,r,t,u,f,i)}function e(r,t,e,a,u,f,i){return n(t&a|e&~a,r,t,u,f,i)}function a(r,t,e,a,u,f,i){return n(t^e^a,r,t,u,f,i)}function u(r,t,e,a,u,f,i){return n(e^(t|~a),r,t,u,f,i)}return function(n,f){var i=n[0],c=n[1],v=n[2],o=n[3];i=t(i,c,v,o,f[0],7,3614090360),o=t(o,i,c,v,f[1],12,3905402710),v=t(v,o,i,c,f[2],17,606105819),c=t(c,v,o,i,f[3],22,3250441966),i=t(i,c,v,o,f[4],7,4118548399),o=t(o,i,c,v,f[5],12,1200080426),v=t(v,o,i,c,f[6],17,2821735955),c=t(c,v,o,i,f[7],22,4249261313),i=t(i,c,v,o,f[8],7,1770035416),o=t(o,i,c,v,f[9],12,2336552879),v=t(v,o,i,c,f[10],17,4294925233),c=t(c,v,o,i,f[11],22,2304563134),i=t(i,c,v,o,f[12],7,1804603682),o=t(o,i,c,v,f[13],12,4254626195),v=t(v,o,i,c,f[14],17,2792965006),i=e(i,c=t(c,v,o,i,f[15],22,1236535329),v,o,f[1],5,4129170786),o=e(o,i,c,v,f[6],9,3225465664),v=e(v,o,i,c,f[11],14,643717713),c=e(c,v,o,i,f[0],20,3921069994),i=e(i,c,v,o,f[5],5,3593408605),o=e(o,i,c,v,f[10],9,38016083),v=e(v,o,i,c,f[15],14,3634488961),c=e(c,v,o,i,f[4],20,3889429448),i=e(i,c,v,o,f[9],5,568446438),o=e(o,i,c,v,f[14],9,3275163606),v=e(v,o,i,c,f[3],14,4107603335),c=e(c,v,o,i,f[8],20,1163531501),i=e(i,c,v,o,f[13],5,2850285829),o=e(o,i,c,v,f[2],9,4243563512),v=e(v,o,i,c,f[7],14,1735328473),i=a(i,c=e(c,v,o,i,f[12],20,2368359562),v,o,f[5],4,4294588738),o=a(o,i,c,v,f[8],11,2272392833),v=a(v,o,i,c,f[11],16,1839030562),c=a(c,v,o,i,f[14],23,4259657740),i=a(i,c,v,o,f[1],4,2763975236),o=a(o,i,c,v,f[4],11,1272893353),v=a(v,o,i,c,f[7],16,4139469664),c=a(c,v,o,i,f[10],23,3200236656),i=a(i,c,v,o,f[13],4,681279174),o=a(o,i,c,v,f[0],11,3936430074),v=a(v,o,i,c,f[3],16,3572445317),c=a(c,v,o,i,f[6],23,76029189),i=a(i,c,v,o,f[9],4,3654602809),o=a(o,i,c,v,f[12],11,3873151461),v=a(v,o,i,c,f[15],16,530742520),i=u(i,c=a(c,v,o,i,f[2],23,3299628645),v,o,f[0],6,4096336452),o=u(o,i,c,v,f[7],10,1126891415),v=u(v,o,i,c,f[14],15,2878612391),c=u(c,v,o,i,f[5],21,4237533241),i=u(i,c,v,o,f[12],6,1700485571),o=u(o,i,c,v,f[3],10,2399980690),v=u(v,o,i,c,f[10],15,4293915773),c=u(c,v,o,i,f[1],21,2240044497),i=u(i,c,v,o,f[8],6,1873313359),o=u(o,i,c,v,f[15],10,4264355552),v=u(v,o,i,c,f[6],15,2734768916),c=u(c,v,o,i,f[13],21,1309151649),i=u(i,c,v,o,f[4],6,4149444226),o=u(o,i,c,v,f[11],10,3174756917),v=u(v,o,i,c,f[2],15,718787259),c=u(c,v,o,i,f[9],21,3951481745),n[0]=r(i,n[0]),n[1]=r(c,n[1]),n[2]=r(v,n[2]),n[3]=r(o,n[3])}}();function bV(r){return KQ(r,0,r.length)}function lV(r,n,t){var e=function(){var r=new ArrayBuffer(64),n=new Uint32Array(r),t=new Uint8Array(r);return{len:0,w:new Uint32Array([1732584193,4023233417,2562383102,271733878]),b32:n,b8:t}}();return function(r,n,t){var e=63&r.len,a=0;if(r.len+=t,e){var u=64-e;if(t=64;)r.b8.set(n.subarray(a,a+64),0),sV(r.w,r.b32),t-=64,a+=64;t&&r.b8.set(n.subarray(a,a+t),0)}(e,CQ(r).subarray(n,n+t),t),bV(function(r){var n=63&r.len;if(r.b8[n]=128,++n>56){for(var t=n;t<64;t++)r.b8[t]=0;for(sV(r.w,r.b32),t=0;t<56;t++)r.b8[t]=0}else for(t=n;t<56;t++)r.b8[t]=0;r.b32[14]=r.len<<3,r.b32[15]=r.len>>29&536870911,sV(r.w,r.b32);for(var e=new Uint8Array(16),a=0;a<4;a++)for(t=0;t<4;t++)e[4*a+t]=r.w[a]>>8*t&o;return e}(e))}function BV(r,n,t){return lV(WQ(r),n,t)}function jV(r){this.id=r}var kV=new class{constructor(){this.map=new r.WeakMap,this.opened=new r.Set}close(r){this.opened.delete(r)}get(r){return this.map.get(r)}set(r,n){return n.opened&&this.opened.add(r),this.map.set(r,n)}all(){return this.opened.values()}};function pV(r){return kV.get(r)}function mV(r){return 0|pV(r).file.length()}var dV=new Array(3);function _V(r){var n=pV(r);if(n.opened||ZC("Cannot flush a closed channel"),!n.buffer||0===n.buffer_curr)return 0;if(n.output)n.output(KQ(n.buffer,0,n.buffer_curr));else for(var t=0;t0)n.set(a.buffer.subarray(a.buffer_curr,a.buffer_curr+f),t),a.buffer_curr+=f,u=f;else{var f;a.buffer_curr=0,a.buffer_max=0,xV(a),u>(f=a.buffer_max-a.buffer_curr)&&(u=f),n.set(a.buffer.subarray(a.buffer_curr,a.buffer_curr+u),t),a.buffer_curr+=u}return 0|u}(r,CQ(n),t,e)}function wV(r){var n=pV(r);n.buffer_curr>=n.buffer_max&&(n.buffer_curr=0,n.buffer_max=0,xV(n)),n.buffer_curr>=n.buffer_max&&qQ(jQ.End_of_file);var t=n.buffer[n.buffer_curr];return n.buffer_curr++,t}function gV(r){var n=pV(r),t=n.buffer_curr;do{if(t>=n.buffer_max){if(n.buffer_curr>0&&(n.buffer.set(n.buffer.subarray(n.buffer_curr),0),t-=n.buffer_curr,n.buffer_max-=n.buffer_curr,n.buffer_curr=0),n.buffer_max>=n.buffer.length)return 0|-n.buffer_max;var e=n.buffer_max;if(xV(n),e===n.buffer_max)return 0|-n.buffer_max}}while(10!==n.buffer[t++]);return t-n.buffer_curr|0}var qV=ni;class IV extends aH{constructor(r,n){super(OC(0)),this.log=function(r){return 0},1===r&&"function"==typeof console.log?this.log=console.log:2===r&&"function"==typeof console.error?this.log=console.error:"function"==typeof console.log&&(this.log=console.log),this.flags=n}length(){return 0}truncate(r,n){YC(n,pc,"ftruncate",a$)}write(r,n,t,e){var a=t;if(this.log){t>0&&n>=0&&n+t<=r.length&&10===r[n+t-1]&&t--;var u=OC(t);return RQ(nH(r),n,u,0,t),this.log(u.toUtf16()),a}YC(e,zk,Cw,ws)}read(r,n,t,e){YC(e,zk,dR,ws)}seek(r,n,t){YC(t,lA,Zj,"illegal seek")}close(){this.log=void 0}check_stream_semantics(r){}}function DV(r,n){var t;return t=void 0===n?new jV(n=dV.length):dV[n]?dV[n].chanid:new jV(n),dV[n]={file:r,chanid:t},0|n}function EV(r,n,t){for(var e={};n;){switch(n[1]){case 0:e.rdonly=1;break;case 1:e.wronly=1;break;case 2:e.append=1,e.writeonly=1;break;case 3:e.create=1;break;case 4:e.truncate=1;break;case 5:e.excl=1;break;case 6:e.binary=1;break;case 7:e.text=1;break;case 8:e.nonblock=1}n=n[2]}var a=oH(r);return DV(a.device.open(a.rest,e,t),void 0)}function NV(r){var n=dV[r];void 0===n&&ZC("fd "+r+BG);var t=n.file,e=n.chanid,a={file:t,offset:t.offset,fd:r,opened:!0,out:!1,buffer_curr:0,buffer_max:0,buffer:new Uint8Array(qV),refill:null};return kV.set(e,a),e}function TV(r){var n=dV[r];void 0===n&&ZC("fd "+r+BG);var t=n.file,e=n.chanid,a=void 0!==t.flags.buffered?t.flags.buffered:1,u={file:t,offset:t.offset,fd:r,opened:!0,out:!0,buffer_curr:0,buffer:new Uint8Array(qV),buffered:a};return kV.set(e,u),e}function FV(r,n,t,e){return function(r,n,t,e){var a=pV(r);if(a.opened||ZC("Cannot output to a closed channel"),n=n.subarray(t,t+e),a.buffer_curr+n.length>a.buffer.length){var u=new Uint8Array(a.buffer_curr+n.length);u.set(a.buffer),a.buffer=u}switch(a.buffered){case 0:a.buffer.set(n,a.buffer_curr),a.buffer_curr+=n.length,_V(r);break;case 1:a.buffer.set(n,a.buffer_curr),a.buffer_curr+=n.length,a.buffer_curr>=a.buffer.length&&_V(r);break;case 2:var f=n.lastIndexOf(10);f<0?(a.buffer.set(n,a.buffer_curr),a.buffer_curr+=n.length,a.buffer_curr>=a.buffer.length&&_V(r)):(a.buffer.set(n.subarray(0,f+1),a.buffer_curr),a.buffer_curr+=f+1,_V(r),a.buffer.set(n.subarray(f+1),a.buffer_curr),a.buffer_curr+=n.length-f-1)}return 0}(r,n=CQ(n),t,e)}function MV(r,n,t,e){return FV(r,WQ(n),t,e)}function PV(r,n){return MV(r,String.fromCharCode(n),0,1),0}function UV(r){return 0|function(r){var n=pV(r);return n.offset-(n.buffer_max-n.buffer_curr)}(r)}function GV(r,n){return pV(r).name=n,0}function $V(r,n){return 0===n&&IQ(),r%n}function KV(r,n){return+(0!==$C(r,n,!1))}function OV(r){return"number"==typeof r?r:r.slice()}function RV(r){return Array.isArray(r)&&r[0]===r[0]>>>0?r[0]:FC(r)||TC(r)?sv:r instanceof Function||"function"==typeof r?247:r?.caml_custom?GK:Rs}!function(){function r(r,n){return new IV(r,n)}DV(r(0,{rdonly:1,altname:"/dev/stdin",isCharacterDevice:!0}),0),DV(r(1,{buffered:2,wronly:1,isCharacterDevice:!0}),1),DV(r(2,{buffered:2,wronly:1,isCharacterDevice:!0}),2)}();function QV(r,n,t){if(t){var e=t;if(jQ.symbols){jQ.symidx||(jQ.symidx=function(r){var n={},t=-1;if(r)for(var e=1;e=0)r=a;else{r=jQ.symidx.next_idx++;jQ.symidx[e]=r}}}jQ[r+1]=n,t&&(jQ[t]=n)}function CV(r,n){return XC[r]=n,0}function HV(r,n){return r===n?1:0}function VV(r,n){return n>>>0>=HH(r)&&dQ(Ky),VH(r,n)}function LV(r,n){return r<=n?1:0}function zV(r,n){return LV(n,r)}function SV(r,n){return r=0;e--)if(0!==r.data[n+e])return e+1;return 1}function vL(r,n,t,e,a,u){var f=cL(r,n,t),i=cL(e,a,u);if(f>i)return 1;if(f=0;c--){if(r.data[n+c]>>>0>e.data[a+c]>>>0)return 1;if(r.data[n+c]>>>0>>0)return-1}return 0}class oL{constructor(r){this.data=new Int32Array(r),this.length=this.data.length+2,this.caml_custom="_nat"}}function AL(r){for(var n=new oL(r),t=0;t>>0)-a;if(r.data[n+u]=f,f>=0){a=0;break}a=1}return 1===a?0:1}function bL(r,n,t){var e=r*ni+(n>>>16),a=Math.floor(e/t)*ni,u=e%t*ni+(65535&n);return[a+Math.floor(u/t),u%t]}function lL(r,n,t,e,a,u,f,i,c){for(var v=a.data[u+f-1]>>>0,o=f-2;o>=0;o--){var A=bL(v,a.data[u+o]>>>0,i.data[c]>>>0);r.data[n+o]=A[0],v=A[1]}return t.data[e]=v,0}function BL(r,n){var t=r.data[n],e=0;return 4294901760&t&&(e+=16,t>>>=16),65280&t&&(e+=8,t>>>=8),240&t&&(e+=4,t>>>=4),12&t&&(e+=2,t>>>=2),2&t&&(e+=1,t>>>=1),1&t&&(e+=1),32-e}function jL(r,n,t,e,a,u){if(0===u)return e.data[a]=0,0;for(var f=0,i=0;i>>0;r.data[n+i]=c<>>32-u}return e.data[a]=f,0}function kL(r,n,t,e,a,u){if(0===u)return e.data[a]=0,0;for(var f=0,i=t-1;i>=0;i--){var c=r.data[n+i]>>>0;r.data[n+i]=c>>>u|f,f=c<<32-u}return e.data[a]=f,0}function pL(r,n,t){for(var e=0;e>>0,o=0;o>>0)+(e.data[a+o]>>>0)*(65535&v)+c,s=(e.data[a+o]>>>0)*(v>>>16);c=Math.floor(s/ni);var b=A+s%ni*ni;r.data[n+o]=b,c+=Math.floor(b/af)}return u>>0)-(e.data[a+c]>>>0)-i;r.data[n+c]=v,i=v>=0?0:1}return sL(r,n+u,t-u,1===i?0:1)}function hL(r,n,t){var e=n.data.length;r.write(32,e);for(var a=0;a=0?1:0}function gL(r,n){return 0===r.data[n]?1:0}function qL(r){return r.data.length}function IL(r,n,t,e,a,u,f,i,c){for(var v=0,o=0;oe&&(n+=Zp);var u=t[a];n+="number"==typeof u?u.toString():u instanceof zQ||"string"==typeof u?bs+u.toString()+bs:_i}n+=Jq}else r[0]===Ul&&(n+=r[1]);return n}(r),e=JC(Vj);if(e&&aV(e,[0]),console.error(Bx+t),r.js_error)throw r.js_error}}!function(){var n=r.process;n?.on?n.on("uncaughtException",function(r,t){FL(r),n.exit(2)}):r.addEventListener&&r.addEventListener(oI,function(r){r.error&&FL(r.error)})}();var ML=void 0!==r.caml_unix_map_file_bytecode?r.caml_unix_map_file_bytecode:function(){mC("caml_unix_map_file_bytecode not implemented")};function PL(r,n){return 1===(r.l>=0?r.l:r.l=r.length)?r(n):cC(r,[n])}function UL(r,n,t){return 2===(r.l>=0?r.l:r.l=r.length)?r(n,t):cC(r,[n,t])}function GL(r,n,t,e){return 3===(r.l>=0?r.l:r.l=r.length)?r(n,t,e):cC(r,[n,t,e])}function $L(r,n,t,e,a){return 4===(r.l>=0?r.l:r.l=r.length)?r(n,t,e,a):cC(r,[n,t,e,a])}function KL(r,n,t,e,a,u){return 5===(r.l>=0?r.l:r.l=r.length)?r(n,t,e,a,u):cC(r,[n,t,e,a,u])}function OL(r,n,t,e,a,u,f){return 6===(r.l>=0?r.l:r.l=r.length)?r(n,t,e,a,u,f):cC(r,[n,t,e,a,u,f])}function RL(r,n,t,e,a,u,f,i){return 7===(r.l>=0?r.l:r.l=r.length)?r(n,t,e,a,u,f,i):cC(r,[n,t,e,a,u,f,i])}function QL(r,n,t,e,a,u,f,i,c){return 8===(r.l>=0?r.l:r.l=r.length)?r(n,t,e,a,u,f,i,c):cC(r,[n,t,e,a,u,f,i,c])}function CL(r,n,t,e,a,u,f,i,c,v,o,A){return 11===(r.l>=0?r.l:r.l=r.length)?r(n,t,e,a,u,f,i,c,v,o,A):cC(r,[n,t,e,a,u,f,i,c,v,o,A])}var HL=[Ul,dv,-1],VL=[Ul,mq,-2],LL=[Ul,Qe,-3],zL=[Ul,av,-4],SL=[Ul,bE,-5],ZL=[Ul,So,-6],WL=[Ul,Dg,-7],XL=[Ul,Nd,-8],JL=[Ul,tv,-9],YL=[Ul,he,-11],rz=[Ul,oA,-12],nz="List.iter2",tz="List.fold_left2",ez="List.for_all2",az=lC($K,$K,Ft),uz=lC(0,0,0),fz=lC(1,0,0),iz=lC($K,$K,Ft),cz=lC(0,0,AM),vz=lC($K,$K,32767),oz=[0,fQ,0,0,-1],Az=[0,fQ,1,0,0],sz=TM,bz=[0,[11,'File "',[2,0,[11,'", line ',[4,0,0,0,[11,oo,[4,0,0,0,[12,45,[4,0,0,0,[11,Ln,[2,0,0]]]]]]]]]],'File "%s", line %d, characters %d-%d: %s'],lz=[0,0],Bz=[0,fQ,0,fQ],jz=Qu,kz=Qu,pz=Qu,mz=SA,dz=[0,lC(14026752,10728,0),lC(14824448,Hy,0)],_z=[0,fQ,0,0],hz=yF,xz=mK,yz=[0,fQ,0,0],wz=[0,"\0\0Öÿ\0\0\0\0Á\0A×ÿØÿÙÿÚÿË\0Ñg²ýH“Þ)t¿\n…xƒ‚\0¼\0„\0øÿùÿúÿûÿüÿýÿþÿÿÿöÿôÿõÿóÿ³Vmîÿïÿðÿ¤škÊ%ee¥e\bæ\b&\tf\t¦\tæ\t&\nf\n¦\næ\níÿ|\0¦\vX\bo\b™\vw\f\fè\f3\r~\rÉ\r_ªõ@‹Ö!l·M˜ã.yÄZ¥ð;†Ñg²ýH“Þ)t¿\nU ë6Ìb­øCŽÙ$oºP›æ1|Ç]¨Ûÿ®ÝÿÞÿ/ \n_ Ÿ ß ß !_!Ÿ!ß!\"_\"Ÿ\"ß\"#_#Ÿ#ß#$_$Ÿ$ß$%_%Ÿ%U&úÿ&`\vÆ&'F'F'†'ûÿüÿýÿÎ\0Ì\0ÿÿþÿÆ'(F(†(Æ()F)†)Æ)","ÿÿÿÿ)\0)\0)\0)\0)\0)\0)\0ÿÿÿÿÿÿÿÿ(\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0(\0\0\0\r\0(\0\b\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0ÿÿÿÿÿÿ \0 \0 \0 \0\0 \0 \0 \0 \0 \0\0 \0 \0\0 \0 \0\0 \0 \0\0 \0 \0 \0\0 \0 \0\0 \0 \0 \0 \0\0 \0 \0 \0 \0\0 \0 \0\0 \0 \0 \0 \0 \0 \0 \0\0 \0 \0 \0\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0\0ÿÿ#\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0ÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;\0ÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0\0\0\0\0\0E\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿ;\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ´\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\f\0\v\0\t\0\t\0\f\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\f\0\0\0\t\0\t\0\t\0\t\0\t\0'\0&\0\t\0\t\0\"\0\0!\0\r\0\0\0\0\0\0\0\0\0\0\0 \0#\0\t\0\0\t\0\t\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\t\0\t\0\t\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0%\0\t\0$\0\t\0\t\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0+\0(\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ž\0*\0I\0º\0)\0\0¹\0\0\0\0\0\0\0\0\0\n\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0l\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0d\0\0\0\0e\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0]\0\0^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0W\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0L\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\0\0\0\0\x002\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0.\0.\0.\0.\0.\0\0\0\0\0\0\0-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x003\0-\0\0\0\0\0\0\0\0\0\0\0\0\0.\0.\0.\0.\0.\0.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\x009\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x008\x007\x007\x006\x004\x004\x004\x005\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0.\0.\0.\0.\0.\0\0\0/\0\0\0.\0.\0.\0.\0.\0.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0G\0\0\0\0\0\0\0\0\0G\0\0\0\0\0.\0.\0.\0.\0.\0.\0H\0H\0H\0H\0H\0H\0H\0H\0H\0H\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0H\0H\0H\0H\0H\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0\0\0\0\0\0\0\0\0\0\0G\0\0\0\0\0\0\0\0\0H\0H\0H\0H\0H\0H\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0G\0\0\0\0\0\0\0G\0\0\0G\0F\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿ>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\0\0\0\0\x002\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0;\0;\0;\0;\0;\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\0J\0J\0J\0J\0J\0\0\0\0\0\0\0;\0;\0;\0;\0;\0;\0\0\0\0\x003\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\0J\0J\0J\0J\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\x009\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x008\x007\x007\x006\x004\x004\x004\x005\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\0\0\0\0\x002\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\0J\0J\0J\0J\0J\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0K\0\0\0J\0J\0J\0J\0J\0J\0\0\0\0\x003\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\x009\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x008\x007\x007\x006\x004\x004\x004\x005\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\0J\0J\0J\0J\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\0J\0J\0J\0J\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0M\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0N\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0O\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0T\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0X\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0[\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0h\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0j\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0k\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0o\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0p\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0u\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0x\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0{\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‚\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ƒ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0„\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0…\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‡\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ˆ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‰\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Š\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‹\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0—\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0–\0•\0•\0”\0’\0’\0’\0“\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0¶\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¸\0\0\0\0\0\0\0\0\0·\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0²\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0±\0°\0°\0¯\0­\0­\0­\0®\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0µ\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\r\0\0F\0·\0\0\r\0¸\0ÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0ÿÿ\0\0\0\0\0\0\0\0\0\0,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,\0,\0,\0,\0,\0,\0ÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0-\0-\0-\0-\0-\0-\0-\0-\0-\0-\0ÿÿ,\0,\0,\0,\0,\0,\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.\0.\0.\0.\0.\0.\0/\0/\0/\0/\0/\0/\0/\0/\0/\0/\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ/\0/\0/\0/\0/\0/\0ÿÿ.\0ÿÿ.\0.\0.\0.\0.\0.\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3\0ÿÿÿÿÿÿÿÿ3\0ÿÿÿÿ/\0/\0/\0/\0/\0/\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3\x003\x003\x003\x003\x003\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0ÿÿÿÿÿÿÿÿÿÿ3\0ÿÿÿÿÿÿÿÿ3\x003\x003\x003\x003\x003\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3\0ÿÿÿÿÿÿ3\0ÿÿ3\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0ÿÿÿÿ;\0H\0H\0H\0H\0H\0H\0H\0H\0H\0H\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿH\0H\0H\0H\0H\0H\0I\0I\0I\0I\0I\0I\0I\0I\0I\0I\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿI\0I\0I\0I\0I\0I\0ÿÿÿÿÿÿH\0H\0H\0H\0H\0H\0ÿÿÿÿ;\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿI\0I\0I\0I\0I\0I\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0ÿÿÿÿG\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿJ\0J\0J\0J\0J\0J\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿJ\0ÿÿJ\0J\0J\0J\0J\0J\0ÿÿÿÿG\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿJ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿG\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0K\0K\0K\0K\0K\0K\0K\0K\0K\0K\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿK\0K\0K\0K\0K\0K\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿL\0L\0L\0L\0L\0L\0L\0L\0L\0L\0ÿÿK\0K\0K\0K\0K\0K\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0ÿÿÿÿÿÿÿÿL\0ÿÿL\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿM\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0ÿÿÿÿÿÿÿÿM\0ÿÿM\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿN\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0ÿÿÿÿÿÿÿÿN\0ÿÿN\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿO\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0ÿÿÿÿÿÿÿÿO\0ÿÿO\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿP\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0ÿÿÿÿÿÿÿÿP\0ÿÿP\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿQ\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0ÿÿÿÿÿÿÿÿQ\0ÿÿQ\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿR\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0ÿÿÿÿÿÿÿÿR\0ÿÿR\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿS\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0ÿÿÿÿÿÿÿÿS\0ÿÿS\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿT\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0ÿÿÿÿÿÿÿÿT\0ÿÿT\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿU\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0ÿÿÿÿÿÿÿÿU\0ÿÿU\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿV\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0ÿÿÿÿÿÿÿÿV\0ÿÿV\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿW\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0ÿÿÿÿÿÿÿÿW\0ÿÿW\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿX\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0ÿÿÿÿÿÿÿÿX\0ÿÿX\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿY\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0ÿÿÿÿÿÿÿÿY\0ÿÿY\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿZ\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0ÿÿÿÿÿÿÿÿZ\0ÿÿZ\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0ÿÿÿÿÿÿÿÿ[\0ÿÿ[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0ÿÿÿÿÿÿÿÿ\\\0ÿÿ\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0ÿÿÿÿÿÿÿÿ]\0ÿÿ]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0ÿÿÿÿÿÿÿÿ^\0ÿÿ^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0ÿÿÿÿÿÿÿÿ_\0ÿÿ_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0ÿÿÿÿÿÿÿÿ`\0ÿÿ`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿa\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0ÿÿÿÿÿÿÿÿa\0ÿÿa\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿb\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0ÿÿÿÿÿÿÿÿb\0ÿÿb\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿc\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0ÿÿÿÿÿÿÿÿc\0ÿÿc\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿd\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0ÿÿÿÿÿÿÿÿd\0ÿÿd\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿe\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0ÿÿÿÿÿÿÿÿe\0ÿÿe\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿf\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0ÿÿÿÿÿÿÿÿf\0ÿÿf\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿg\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0ÿÿÿÿÿÿÿÿg\0ÿÿg\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿh\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0ÿÿÿÿÿÿÿÿh\0ÿÿh\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿi\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0ÿÿÿÿÿÿÿÿi\0ÿÿi\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿj\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0ÿÿÿÿÿÿÿÿj\0ÿÿj\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿk\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0ÿÿÿÿÿÿÿÿk\0ÿÿk\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿl\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0ÿÿÿÿÿÿÿÿl\0ÿÿl\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿm\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0ÿÿÿÿÿÿÿÿm\0ÿÿm\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿn\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0ÿÿÿÿÿÿÿÿn\0ÿÿn\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿo\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0ÿÿÿÿÿÿÿÿo\0ÿÿo\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿp\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0ÿÿÿÿÿÿÿÿp\0ÿÿp\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿq\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0ÿÿÿÿÿÿÿÿq\0ÿÿq\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿr\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0ÿÿÿÿÿÿÿÿr\0ÿÿr\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿs\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0ÿÿÿÿÿÿÿÿs\0ÿÿs\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿt\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0ÿÿÿÿÿÿÿÿt\0ÿÿt\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿu\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0ÿÿÿÿÿÿÿÿu\0ÿÿu\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿv\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0ÿÿÿÿÿÿÿÿv\0ÿÿv\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿw\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0ÿÿÿÿÿÿÿÿw\0ÿÿw\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿx\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0ÿÿÿÿÿÿÿÿx\0ÿÿx\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿy\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0ÿÿÿÿÿÿÿÿy\0ÿÿy\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿz\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0ÿÿÿÿÿÿÿÿz\0ÿÿz\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0ÿÿÿÿÿÿÿÿ{\0ÿÿ{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0ÿÿÿÿÿÿÿÿ|\0ÿÿ|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0ÿÿÿÿÿÿÿÿ}\0ÿÿ}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0ÿÿÿÿÿÿÿÿ~\0ÿÿ~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0ÿÿÿÿÿÿÿÿ€\0ÿÿ€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0ÿÿÿÿÿÿÿÿ‚\0ÿÿ‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ÿÿÿÿÿÿÿÿƒ\0ÿÿƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0ÿÿÿÿÿÿÿÿ„\0ÿÿ„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0ÿÿÿÿÿÿÿÿ…\0ÿÿ…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0ÿÿÿÿÿÿÿÿ†\0ÿÿ†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0ÿÿÿÿÿÿÿÿ‡\0ÿÿ‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ÿÿÿÿÿÿÿÿˆ\0ÿÿˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0ÿÿÿÿÿÿÿÿ‰\0ÿÿ‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0ÿÿÿÿÿÿÿÿŠ\0ÿÿŠ\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0ÿÿÿÿÿÿÿÿ‹\0ÿÿ‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0\0ÿÿÿÿÿÿŒ\0ÿÿŒ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0«\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«\0ÿÿÿÿÿÿÿÿ«\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",fQ,fQ,fQ,fQ,fQ,fQ],gz=[0,tb,0,-2],qz=[15,[17,[0,tb,0,-2],[12,kI,[17,0,0]]]],Iz=[0,Gv,0,0],Dz=[7,0],Ez=[7,0],Nz=[2,1],Tz=[2,2],Fz=[2,5],Mz=[2,6],Pz=[2,7],Uz=[2,15],Gz=[2,16],$z=[2,17],Kz=[2,18],Oz=[2,17],Rz=[2,17],Qz=[8,0,0,0,[0,[2,6],0],0],Cz=tj,Hz=gm,Vz=Oa,Lz=va,zz=Ht,Sz=wj,Zz=fQ,Wz="ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",Xz=[15,0],Jz=[0,0,0],Yz=[0,2,0],rS="<>auto",nS="continue <>auto",tS="feed: outgoing transition does not exist",eS=zy,aS=ku,uS='/*\nThe prelude. This stuff is always initially in scope.\nThis should only be type definitions for primitive types.\n*/\n\ntype Any = prim "Any";\ntype None = prim "None";\ntype Null = prim "Null";\ntype Bool = prim "Bool";\ntype Nat = prim "Nat";\ntype Nat8 = prim "Nat8";\ntype Nat16 = prim "Nat16";\ntype Nat32 = prim "Nat32";\ntype Nat64 = prim "Nat64";\ntype Int = prim "Int";\ntype Int8 = prim "Int8";\ntype Int16 = prim "Int16";\ntype Int32 = prim "Int32";\ntype Int64 = prim "Int64";\ntype Float = prim "Float";\ntype Float32 = prim "Float32";\ntype Char = prim "Char";\ntype Text = prim "Text";\ntype Blob = prim "Blob";\ntype Error = prim "Error";\ntype Principal = prim "Principal";\ntype Region = prim "Region";\n',fS=[0,0,0,0,0,0,0,0,0,0,0],iS=[0,0,0,0],cS=[11,Zp,[4,0,0,0,[11,TA,0]]],vS="repeat_until overshot",oS="unexpected end of section or function",AS=[0,0],sS="https://internetcomputer.org/docs/motoko/fundamentals/actors/compatibility#explicit-migration-using-a-migration-function",bS="Compatibility",lS=Vy,BS=[0,16,"Î\0\0\0\0g(#%\0\0\0\0&'$q\0\0p\0\0\0\0\0\0b\0\0\0\0\0\0\0\0\0\0\0\0R\0\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ø\0\0\0\0\0\0\0\0\0\0\0\0\0\0²\0\0\0\0\0\0\0\0ý\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ó\0\0\0\0\0\0\0\0\0\0ü÷ù\0\0\0\0\0\0\0\0áòÿâ\0\0\0\0\0\0Ï\0\0\0\0\0\0\0\0Ð\0\0¯\0\0ÒUïúí\0\0\0\0\0\0\0\0ì\0\0\0\0ë\0\0ñ\0\0ð\0\0\0\0ä\0\0\0\0\0\0\0\0ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0º\0\0¹\0\0ôû\0\0\0\0\0\0þ\0\0\0\0\0\0\0\0\0\0Á\0\0ÀÇ\0\0Æ\0\0\0\0\0\0ê\0\0\0\0\0\0\0\0é\0\0\0\0è\0\0\0\0\"\0\0\0\0\0\0\0\0ç\0\0\0\0\0\0\0\0æ\0\0\0\0å\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0½\0\0î\0\0\0\0\0\0\0h\0\0\0\0cmi\0\0o]k\0\0\0\0^\0\0\0\0a\0\0d\0\0\0\0¤\0\0£n\0\0j\0\0\0\0 \0\0J\0\0\0\0V\0\0\0\0™\0\0˜\0Î\0\0\0\0\0\0\0\0\0Ø\0\0\0\0\0\0\0\0\0×\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0î\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ö\0Ô\0Ü\0Õ+\0\0\0\0\0\0\0\0\0\0\0\0\0Ó\0\0\0\0\0\0\0\0\0\0e\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ËÊÉ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v\0\f\0\rA\0\0\0\0\0\0\0\0?\0\0\0\0\0\0\0\0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\01\0\0\0\0\0\07\0\0\0\02\0\0\0\0\0\0\0\0-\0\0\0\0\0\05\0\0\0\0.\0\0\0\0\0\0\0\03\0\0\0\0\0\08\0\0\0\04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0“\0\0\0\0}\0\0|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\r\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0Ò\0\0\0ú\0è\0ä\0\0\0þ\0\0\0û\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ê\0É\0\0\0\0\0\0\0\0\0\0P\0»\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\0\0\0\0\0\0\0\0D\0\0\0\0\0\0\0\0G\0\0\0\0\0\0\0\0\0\0\0\0\0H\0\0\0\0\0\0\0\0E\0\0\0\0\0\09\0\0\0\0\0¹L\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ñ\0\0\0\0\0õ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0š\0™\0\0\0\0ÿ\0\0\0\0\0‹\0\0\0\0\0‰\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0÷\0\0\0\0\0\0\0\0/\0\0\0\0\0\06\0ý\0\0\0\00\0\0+\0\0\0\0\0\0\0Ð\0Þ\0!\0Ë\0´\0\0\0\0\0H\0\0\0\0\0R\0\0\0\0\0\0\0N\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0³\0j\0\"\0Ì\0i\0Ï\0\0\0²\0\0\0·\0\0\0#\0Í\0\0\0\0\0\0\0\0\0©\0$\0Î\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¤\0\0\0¦\0\0\0¥\0\0\0\0\0\0\0£\0\0\0\0\0\0\0«\0\0\0ª\0\0\0­\0\0\0¬\0\0\0¢\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¨\0\0\0Ÿ\0\0\0¡\0\0\0ž\0\0\0 \0\0\0c\0\0\0®\0\0\0œ\0\0\0§\0y\0\0\0\0\0\0\0t\0\0\x005\0\0\0v\0\0\0\0\0\0\0u\0\0\0\0\0\0\0s\0\0\0\0\0\0\0\0\0\0\0{\0\0\0\0\0\0\0z\0\0\0\0\0\0\0}\0\0\0\0\0\0\0|\0\0\x001\0\0\0r\0\0\0m\0\0\0\0\0\0\0\0\0\0\0x\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0o\0\0\0\0\0\0\0q\0\0\0n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0p\0\0\0F\0\0\0~\0\0\0l\0\0\0\0\0\0\0w\0\0\0\0\0\0\0\0\0\0\0á\0â\0\0\0ã\0æ\0\0\0*\0\0\0)\0\0\0\0\0'\0\0\0\0‹\0(\0%\0&\0å\0‡\0‚\0ƒ\0„\0…\0†\0Œ\0µ\0\0\0\0\0—\0\0\0\0\0Ž\0˜\0ˆ\0¶\0\0\0à\0\0\0\0’\0\0\0ß\0\0\0\0\0–\0¼\0\0\0\0\0Ç\0\0\0\0Ý\0\0\0\0\0\0\0ç\0\0\0\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\0\0\0\0\0\0\0\0=\0\0\0\0\0\0>\0\0\0\0\0\0\0\0;\0\0\0\0\0\0\0\0\0\0C\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ž\0\0\0ì\0\0\0í\0ð\0\0\0ï\0\0\0\0\0¾\0\0\0ë\0ö\0È\0\0€\0¸\0\0\0\0ê\0\0\0é\0ø\0’\0\0\0\0\0Æ\0\0\0\0\0\0\0ñ\0\0\0\0\0\0\0\0\0\0\0±\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0„\0\0ƒ\0\0°\0\0\0,\0\0\0\0ˆ\0\0‡<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‘\0\0\0\0\0\n\0\0\0\0\0\0”\0\t\0\0\0Ã\0h\0\0\0\0\0Ù\0\0\0\0\0\0\0Û\0\0\0\0Ä\0\0Ã\0\0\0\0\0\0\0Ú\0\0\0\0y\0ü\0Â\0\0\0\0\0\0\0\0\v\n\b\0ù\0\0\0\0\0Á\0\0\0\0\0À\0\0\0\0Ä\0\0\f\t\0\0W\0Î\0\0\0\0\0\0X\0\0\0\0€\0\0\0\0•\0Î\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¶\0\0µ\0\0\0\0*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¬\0\0«\0\0[\0\0\0\0\0\0\0\0\0\0\0\0œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Z\0\0\0\0¨\0\0§\0\0\0\0Y\0"],jS=[0,YI,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0 \b€@@\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b$\0@\0À€\0\b@\0\0\0\0\0\0H\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b$\0\0@\0À€\0\b@\0\0€\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`@\0\0\0\0\0\0€\0\0\0\0@\0 c\0\0\0\0\b\0\0\0@\0\0` \0\0\0\0\0\0\0\0\0\b\0\0\0Œ\0\0\0\0\0\0\0 \0\t\b\b1„€\0\0€\0\0\0\x000\0\00\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\b\0\0\0\0€\0 @ Æ\0\0\0\f\0\0\0\0€\0\0À@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0Œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0À\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0ÈÀ@\0\0@€€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0 \0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0 \0\b\b\b1€€\0\0€\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0H\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\b\0\0\0@\0\0` \0\0\0\0\0\0€\0@\f€@AŒ\0\0\0\b\0 \0\b\b\b1€€\0\0€ëݟÿóÿÿÿþ÷ßÿÛÿà\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0À@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0Œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0 @ Æ\0\0\0\f\0\0\0\0ˆ\bÀ@\0\0\0€€\0\0\0\0€\b\0\0\0\x000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ëݟÿóÿÿÿþ÷ÏÿÛÿà\0€\0 @ Æ@\0\0\fÿ¯vÿÏÿÿïùÿß?ÿoÿ€\0\0€\0€ƒ\b\0\0\b\x000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿ¯vÿÏÿÿÿùÿßÿoÿ€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0 \0\0€\0\b\0\b\0\0d\f` \0\0 \0ÀX÷`x|”úLræú8\0 \0\b\b\b1€€\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0 @ Æ@\0\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0€\0\0\bÀ@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0 c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\b\b\b1€€\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0@\f€@AŒ\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0€ƒ\b\0\0\b\x000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\f€@AŒ\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0@\f€@AŒ\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0€ƒ\b\0\0\b\x000\0\0\0\f\b\0 \0\0\0\0\0\0\0\0\b\0\b\0\0d\f` \0\0 \0À@\0\0\x000 \0€\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\x0020\0\0\0` \0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0@\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\b\0\0d\f` \0\0 \0À@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\00\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0ÈÀ@\0\0@€€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\b\0\0d\f` \0\0 \0À@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\b\0\0d\f` \0\0 \0À@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\00\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0ÈÀ@\0\0@€€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\b\0\0d\f` \0\0 \0À@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\x0020\0\0\0` \0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0€\0\b\0\0\0\0@0\0\0\0\0€\0€ƒ\b\0\0\b\x000\0\0\0\0\0 \0\0\0\0\0\0€\0\b\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0H\f€@AŒ$\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À»Ãd§Ògxñâæ7ÑÀ\0\0\x000 \0\0\0\0\0\0@\0\0\0\0\b$\0\0@\0À€\0\b@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$ƒ\0\t \bˆ@W\x006 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0ƒ\0\b\0\0\b\0\x002\0\0 \0‚@\0\0$\f\b\0\0„\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0d\f` \0\0 \0À@\0\x0080\0€\0\0€p \0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0@\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\b\0\0\0\0\0\x000\0\0 \0‚@\0$\f\b\0\0„\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0½Ø%“;Ǐ\b1¾†À»d£Ògzñáæ7ÐÀ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0^ì\b\t’IëDŽG˜ßC\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000îÀ€™(ô™Þ¼xDyô6\0½Ø%“;Ǐ\b1¾†À)\0\0DÐ$`0 \0Ø\0E \0\b:Œ\0 B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f{°$&J=&wc}\f\0\0\0\b \b€@@\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À»Bd£Ògxñàæ7ÐÀ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0 \0\0\0\0\x0020\0\0\0` \0\0\0@\0\0\0\0¸\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000îÀ€™(ô™Þc}\r€/vÉG¤ÎñãÀ\'Ìo¡€\0‚\0\0\0$\b\b\0\0„\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À)\0\0DÐ$`0 \0Ø÷`@\\”zLï<<Æú\0Nì\b\v’IãǀG˜ßC@€\0 \0H \0\b\0@\0\0\0\0\0\0\0\0¸\0€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0½Ø%“;Ǐ\0Ÿq¾†À»d£Ògxñàæ7Ðßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0`\v݁2Qé3¼xð\bóèl{° &J=&w>c}\r€R\0\0‰ HÀa@ €\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0þIïì>åí¦Ñl`܁<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E \0\b:Œ\0 B\0\0\b¤\0@‘€Â€\b@`€\0"@è0P\0\b\0`\0\0€\0\0\0\t\0@\0\0\0!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0þIïì>åíçÑo`ÜÁ<\0\b\0d\f`$\0\0 \0À@\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0 \0\b\b\b1€€\0\0€\0\0\0\0\0\0\0\0\0\0\0\b\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0÷`@L”zLï<<Æú\0\b \0\0@\0€€\0\b@\0`\v݁2Qé3¼xð\tóè`\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\0Š@\0 t\t\f(\0@„\x000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b¤\0@‘€Â€\b@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0"\0HF\n\0!\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\rïÀ™(ô™Þc}\r€/vÉG¤ÎñãÀ\'Ìo¡°îÀ€™(ô™Þc}\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁2Qé3¼xð\tóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/vÉG¤ÎñãÀ\'Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0€"\0p€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`€\0"@è0P\0\b\0oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E \0\b:Œ\0 B\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`€\0"@è0P\0\b\0oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý€R\0\0‰ HÀa@ ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö\0H\0$#…\0\b€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØ\0E \0\b:Œ\0 B\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`€\0"@è0P\0\b\0oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý€R\0\0‰ HÀa@ ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö\0½Ø%“;Ǐ\01¾†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0÷`@L”zLï<<Æú\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁2Qé3¼xð\bóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€R\0\0‰ HÀa@ ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö\0½Ø%“;Ǐ\01¾†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E \0\b:Œ\0 B\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`\v݁2Qé3¼xð\bóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0½Ø%“;Ǐ\01¾†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0÷`@L”zLï<<Æú\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁2Qé3¼xð\bóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0$#…\0\b€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØ\0E \0\b:Œ\0 B\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`€\0"@è0P\0\b\0oý\0ߨ=ÀÚ\0\0˜Á˜y€R\0\0‰ HÀa@ ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö\0H\0$#…\0\b€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØ\0E \0\b:Œ\0 B\0ÿ@÷öp6€\0@&0f\0ž`€\0"@è0P\0\b\0oý\0ߨ=ÀÚ\0\0˜Á˜y€R\0\0‰ HÀa@ ¿ô\0O`÷h\0c`\tæ\0H\0$#…\0\b€ÿÐ=ýƒÜ\r \0\tŒ€\'˜\0E \0\b:Œ\0 B\0ÿ@÷öp6€\0@&0f\0ž`€\0"@è0P\0\b\0oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0½Ø%“;Ǐ\01¾†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0÷`@L”zLï<<Æú\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁2Qé3¼xð\bóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0 c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0÷`@L”zLï<<Æú\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁2Qé3¼xð\bóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À)\0\0DÐ$`0 \0ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû\0^ì\b\t’IãǀG˜ßC\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0"\0HF\n\0!\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000îÀ€™(ô™ÞåíçÑo`ÜÁ<\0\0\0Á\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\b \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 €\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÄxø¹{yÀtHØ50O\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b \0\0@\0€€\0\b@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý€/vÉG¤ÎñãÀ\'Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÀ»d£Ògxñàæ7ÐÀ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b \0\0@1€€€\b`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 €\0@\t\0Æ\0!€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0A\0@„r@Œ\0Â\b\v\0^ì\b\t’IãǀO˜ßC\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 €\0\0@\t\0Æ\0!€\0\0\0\0\b \b€@@\0 \0?ô‚Oa÷/o8‹{æ\tä\0H\0\0€"\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0÷`@L”zLï<<Æú\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁2Qé3¼xð\tóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁²Qé3¼xðˆóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/vÉG¤ÎñãÂ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/þ„ùG¤Îñãà#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¿úå“;Ǐ€1¾†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b \0\0\0@0\0€€\0\b@\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0÷`@L”zLï<|Æú\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H \0\b\0\f{° &J=&w>c}\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö\0½Ø%“;Ǐ\0Ÿ1¾†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b‚\0`A\0$\b\b˜†\0@\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ˆ \0\0@1€€€\b`\0\0\0\0È0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b‚\0\0A\0$\b\b\0†\0@\0@\0\0 \f€#\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0‚\0\0\0d\b\b\0\0„\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000îÀ€™(ô™Þc}\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000îÀÀ™(ô™Þ¼xyô6\0½Ø%“;Ǐ\01¾†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁2Qé3¼xð\bóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/vÉG¤ÎñãÀ#Ìo¡°îÀÀ™(ô™Þ¼xyô0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0d\f` \0\0 \0À@\0\0\x000\0\0€\0\b\0\0\0\0\0\0(\0 \0\b\b\b1€€\0\0€\0\0\0\0À\0\0\0 \0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\b\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\x0020\0\0\0` \0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0€ƒ\b\0\0\b\x000\0\0\0\f\b\0 \0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\b\0\0d\f` \0\0 \0À@\0\0\x000 \0€\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\b\0 \0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0ÈÀ@\0\0@€€\0\0\0`@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\b\0\0d\f` \0\0 \0À@\0\0\x000 \0€\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0ÈÀ@\0\0@€€\0\0\0`@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\b\0\0d\f` \0\0 \0À@\0\0\x000 \0€\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'],kS=[0,8,'\0iihgfedddccccbaaaaaaaaaaaa``__^^]]]]]]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ZZZZYYXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWVVUUTTTTTSSSSSRRRQQPPPPPPPPPPOOOOOOOOOONNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMLLKKKKKKJIHHHGGFFEEEEEEDCBA@@@@@@@@@@@@@@@@@@@@@@@@@@@@??>>==<<;;;::987666544433322110000///////..----,,++++***))))((((\'\'\'&&&&%%%$$$####""""!!! \r\r\r\f\f\f\f\f\f\f\f\f\f\f\f\f\v\v\v\v\v\v\n\t\t\b\b\b\b\b\b\b'],pS=[0,[0,16,'\0\t\0\f\0¼\0\0\0\0\0\0\0\0\0\t"\0\0\0\0\0\0\0\0\0q\0\0b0\0\0\0\0\bVxXÆ|\t&\0\0\0\0\0\0Z\b&\t\tj\0\0,¤\b8\0\0 \0Ò\0\0\0\0.\0\0\0\0Ì\0Ò\0\0\0\0V\0\0þ\0\0\0\0\0\0p\bê\0\0Ð\b¨\0\08\0n\0\0\0\0ÄÒ\t\0\06\0\0\0\0b\0²!:\t”\0\0\0\0\0\0\0(Ô\0\0ê\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b\0\0È\0\0¨\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00\0\0¾\0\0\0\0R\0\0\0\0\0\0\0\0\0\0\0\0ž\0\0\0\0Ä\0\0V\0\0\0\0X\0\0Èz\0\0",\0\0œ\0\0\0\0\\\0\0 \0\0ì\0\0\0\0ô\0\0\0\0¬\0\0®\0\0\0\0\0\0\0\0\0\0\0\0\0\0ä\0\0\0\0\0\0\0\0´\0\0Ð\0\0\0\0Þ\0\0\0\0\0\0\0\0þ\0\0\0\0ê\0\0\0\0\0\0v\0\0\0\0\b¸\0\0\0\0È\0\0 6\0\0\0\04\0\0ê\0\0\0\0ª\0\0\0\0\n\0\0\0\06\0\0\0\0’\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!Â\0\0\0\0D\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0š\0\0º\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\0\0\0F\0\0\t&\0\0\0\0\0\0\0\0\0\0\0\0\0\0è\0\0Ú\0\0\0\0ö²\fÞ Ð ¾\0\0\0\0\b"\0\0\0\0\0Ø\0\0\b¤\0\0\0\0\0\0\0\0ü\0\0\0\0Þ\0\0²\0\0~!! ⠚\0\0!8!F\0Øz>\0\0\bâ\0\0\r>"\b\0\0\0\0\0\0\0\0\0\0\0\0ê\0R,!À|\0\0\bþ\0\0ˆ\b–\0ˆ\0\0\0\0\0\0\0\0ŠX\bT\0\0ä\0\0\0\0<\0\0(\b,\0\0*\0\0\0\0z\0\0\0\0\0\0ÄBN\0\0\0\0\0\0\bd\0\0\0\0\0\0\0Ò\0Ü\0\0\0\0\0\0þfFÔ\f\0\0\0\0\0\0\0\0\0\0R>œ\0\0\0\06v\f\0\0¨\0\rž\0\0\0\0¦\0fæ\0\0¶ð\0\0$t\0\0žè’œ\0\0ª:ò\0\0”\0\0ˆ²FV\0\0\0p\0\0šà\0\0\\â\0\0\0OºØTþ!ö\0\0˜\0\0\0\0\0\0Æ\0\0â\0\0¢”`\tt\0\0N\0\0º\bPŽ\0\0\r€ h\0\0!Ê\0\0Ê Œ ZÀ\0\0\0\0\bv\0\b\f†\b\0\0\0\0\0\0\0\0\0\0\v†d\0‚\0\0\0\0Ö\0\0\0\0\0\0 6\0\0\bÈ\0\0\x000\0ÀØ\n\b\n\0ê\rþ\0\0¼\0\0\n6\bÈ\0\0\0\0°T$\br\0\0\0\0\0\0®\0\0\0\0\0\0ü\b8\0’\0\0\0\0N\bò\0\0\0\00\bB˜\0\0"\bFº\0\0\0\0Ü\b^°\0\0\0\0T\bdÀ\0\0ú\bl¸\0\0\0\0\0\0\0\0\0\bz\0\0\bp‚.!Ò\0\0\0\0",\0\0!x\0\0\0\0!Ð\0\0\t¦Ö\b‚\b†\0\0\0\0\0\0\0ú\0\0X\bà\0\0\0\0˜\0\0R\0¬¨V\0!j\0\0ì\bŒ\bæ\bæ\0\0\\\b¤d\0\0\0\0\t\t6\0\0\0\0\0\0\böB„\0\0\0\0\0\0\0\0\0\0\0\0þ\0\0\0\0Ú\0\0F\0\0\0\0¶\0\0B\0\0f\0\0\rÎ\0X\0\0\0\0\0\0\0\0\0\0\0\0Ú\0\0\0¬\0\0À\0\0\0\0\0\0®\0\0\fv\0\0\0\0\0\0ü\0\0 \0\0\0®\0\0R\0\0R\0\0Ž\0\0ö\0\0\tF\0\0\fF\0\0\0\0B\0\0®\0\0B\0\0\rn\0\0r\0\0¾\0\0\vV\0\0²\0\0"\0\0Ž\0\0h\0\0Œ\0\0j\0\0z\0\0°\0\0"\0\0ü\0\0ú\0\0”\0\0î\0\02\0\0î\0\0\nö\0\0¢\0\0¢\0\0X\0\0R\0\0\tv\0\0\væ\0\0\0\0F\0\0B\0\0\0\0Ò\0\0@\0\0â\0\0²\0\0\f\0\0Ö\0\0\0\0‚\0\0j\0\0~\0\0ú\0\0^\0\0Ž\0\0.\0\04\0\0\nf\0\0\v¶\0\0€\0\0´\0\0’\0\0"\0\0ì\0\0Ø\0\0\0\0Ò\0\0\tÖ\0\0b\0\0ú\0\0 \0\0¢\0\0D\0\0ˆ\0\0Ì\0\0N\0\0ò\0\0ì\0\0\n\0\0r\0\0Š\0\0Â\0\0Ú\0\0‚\0\0\0\0\0\0\0\0\0\0\0\0\0\0¬\0\0\0\0\0\0\bÖ\0\0\0\0\0\0°\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0È\0\0\0\0\0\0\0\0®\0\0\0\0\0\0Ò\0\0\0\0\0\0\0\0\0\0\bö\0\0\0\0\0\0\0\0Z\b \0\0\n–\0\0\0\0Ö\bæÖ\0\0\0\0Þ\bà:\0\0\0\0Ò\bèò\0\0\n\b|Ž\0\0\0\0&\bt\0\0¸\0\0^\bnÜ\0\0\0\0Î\bðÄ\0\0\0\0°\0\00\0\0À\0\0\bž„\0\0\0\0Þ\0\0\b \0\0\bv\0\0\0\0\0\0\0\0\\\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ø\0\0\bv\0\0\0\0\0\0\0\0p\0\0 ((\0\0\b^\0W\0\00\0\0\nÆ\0\0*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v&\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x008\0\00\0\0\0\0¦î>\0\0\0\0\0\0èZ\0\0\0lü\0\0\0\0,\0\0\0\0\0\0\0\0\0\0\0\0\b \0\0\0\0\0\0\0\0\0\0\0\02\0\0\0\0\bv\fÐ\0\0\0\0\bv¸\0\0\0\0\0\0\0\0N\0\0 (\0\0\0\0\0\0\0\0\0\0\0\0¦Ô\0\0\0\0\b&\0\0\0\0ª\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"®â\0\0\0\0\0\0\fª\0\0\0\0T\0\0\0\0 ä\0\0\0\0~\0\0\0\0˜\0\0Â\0\0\0\00\0\0¬\0\0\0\0ä\0\0\0\0\0\0\0\0ž\0\0\0\0\0\0\0\0\0\0Ž\0\0\0\0\0\0\0N\0\0\0\0\0\0\0\0\0\0\0\0l\0\0\0ì\0\0\0\0\0\0\0:\0\0\0\0\0\0L\0\0\0\0Z\0\0\0\0\0\0\0\0D\0\0\0\0B\0\0\0\0\0\0\0\0\0%\0\0\0\0\0\0\0\0º\0\0\0f\0\0^\0\0\0\0\0\0'],[0,16,'eWV0\0H\0S1\0U\0Q\0V\0W\0\\|\0c\0Í\0t23ÞVÄAÕWB0€e1X^Ö׉ß\0fc3£\0ú23Þ\0Y~\0ñWÌ€W=0…†1x\0á\0Üe\0âÝ\0ócä£\0Þ23Þ~ž\0g\0û\0ý€ƒ\0Þ=k…†W\0Ü071\0H\0O\0h\0Q\0V\0Wc\0Ü£ò23ÞW~\0Þ\0 1ƒ€@A=\0“…†X\0ÞY\\â\0«]W^\0˜_s1\0Ya\0Þotuv\0ÜX\0öY\\wx]W^d_ª1^a@etuv\0ÞX1Y\\wx]$^_|g\\a\0Þ]tuv\0é]`V‚wx0æd1VWZ0ox1;\0ëÍ…23Þc\0ÜÍ\0Ý23ÞW~W1¥€\0ð\0Ü=\0â…†X\0ÞY\\z}]W^\0Þ_˜1\0Þa\0ÞtuvâXY\\wx]W^W_ð1taWtuvoX\x003Y\\wx]W^\0Þ_`1\0‰a|\0ÞtuvyX†Y\\wx]W^W_^1ua„WtuvoX1Y\\wx]W^\0Þ_¿1Sa\0\0Þtuv5XèY\\wx]W^b_¬1ˆaÆTtuvVXBY\\wx]ì^[_öAFaB3tuv‡]`-wx03B1\0„WW0@ü1©ÍG23ÞcžÍJ23ÞW~\0Þ\0Þ1\x003€’3=\0ý…†XBY\\\0°^]W^W__1Da]`tuvoX\x003Y\\wx]W^\0Þ_z1JaiWtuvàXŠY\\wx]W^W_Q1”a\0ï\0ÞtuvoXxY\\wx]W^\0Þ_R1\0ëasWtuvoX‹Y\\wx]W^W_J1paâ\0ÞtuvXXY\\wx]W^\0Þ_S1 aéWtuv8X1Y\\wx]W^W_G1Ëa*\0Þtuv•XxY\\wx]W^\0Þ_K1‡aTtuvX\x003Y\\wx]W^W_D1<aŽWtuvoX\0“Y\\wx]W^\0Þ_N1\0•a\0Þtuv¯XPY\\wx]?^ž_½AçaBtuv@гwx03\0£1\0ÿWW0@u1»Í\0Þ23Þc\0¨Í23ÞW~\0Þ\0Þ1±€}W=\0ý…†X\x003Y\\\0ý]W^W_1\x006a±\0ÞtuvLXY\\wx]W^\0Þ_O1ža†Wtuv\0ÞX\0“Y\\wx]W^U_ø1\0—až\0ÞtuvVXŒY\\wx]W^\0Þ_E1“a@–tuv\0ÞX\x003Y\\wx]W^W_²1\x005a\0ÞWtuvIX\x003Y\\wx]W^\0Þ_#1Sa‘\0Þtuv\0ÞXY\\wx]W^W_1RamWtuv–XoY\\wx]W^\0Þ_¼1\0Þa\0Þtuv\0£X\nY\\wx]W^ë_É1\0£a\0¥tuv\0£X\x003Y\\wx]W^\0§_I1\0ya\0ªtuv—XoY\\wx]e^ _÷AoaBµtuvù\0ío,wx031nW¡0o\f1°CÍ\0ë23ÞcoÍ23ÞW~š1“€6ž=ñ…†XoY\\Žq]W^±_H1±aotuv›XY\\wx]W^œ_Ò1\0šaˆotuvŸX\x003Y\\wx]W^z_\\1\0jažotuv¢X\x003Y\\wx]W^R_1ajotuvoX\x003Y\\wx]W^ƒ_F1\0Àa£¦tuv¢XY\\wx]W^_b1a¾btuvYXÓY\\wx]W^Ò_ó1ôa\0ŸPtuvêX\0&Y\\wx]W^ž_ 1éaGòtuvùXËY\\wx]W^\0:_µ1¨a?tuv\vXY\\wx];^\0×_Tœa\0=tuv&\0º‡wx0‚817W>0tL1ãMÍN23ÞcnÍQ23ÞW~U61\0¹€\0F\0»=…†X\0Y\\\0à\0ø]\0N^\0\r_îy,aV~tuv’W\0\00wx1\0á\0Ü\0\0\0â\0\0\0ãºc\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0Þ1–\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Ò\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01L\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01%\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01`\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01û\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01p\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0WÚ0€\0\01Ð\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01È\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0\0\0\0\0ÕW\0\00€\0\01\0\0\0\0Ö×\0\0Ø\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01¨\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01­\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01ý\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Ô\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01å\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€21˜\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0\0\0\nW€0(„1…†\0\0\0\0\0\0\0\0\0\0c\0\0Í\0\023Þ\0\00\0\0Õ1\0\0W€0\0\0\0\01Ö×\f023Þc\0\0Í\0\023Þ\0\0\0\0\0\0ÕW\0\00€\0\01\0\0\0\0Ö×\0\0Ø\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01³\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0WÓ0€\0\01û\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01¢\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0\0\0\0\0ÕW\0\00€\0\01\0\0\0\0Ö×\0\0Ø\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Õ\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01c\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01÷\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01ó\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01´\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0WÜ0€\0\01¦\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Æ\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0\0\0\0\0ÕW\0\00€\0\01\0\0\0\0Ö×\0\0Ø\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01¶\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€.1ï\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þš~\0\0\0\01W€0\0\0ž1…†\0\0\0\0›\\\0\0c]Í\0\023Þ\0\0\0\0\0\0ÕW\0\00€\0\01\0\0\0\0Ö×x0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01š\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\010\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01\'\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Ê\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Þ\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01\v\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Ä\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01+\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01!\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01¬\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Ð\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01ë\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01ª\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01á\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01!\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Ù\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01¤\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01ÌU…†\0\0\0\0\0\0cZÍ\0\023Þ\0\0~\0\0\0\0\0\0\0\0€\0\0\0\0Ý\0\0…†W\0\00\0\0\0\01\0\0W\0\00·\0\01c\0\0Í\0\023ÞcWÍ23Þ€W\0\0\0\00†€1¹W\0\00†\0\01c\0\0Í\0\023Þc\0\0Í\0\023ÞŽW\0\0\0\0YW€0\0á\0Ü1\0â†\0ãí\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0W\0\0\0\0\0ÞW€0\0\0\0\01\0\0†\0\00\0\0\0\01c\0\0Í\0\023ÞÝWÍ23Þ€\0\0\0\0\0\0\0H\0S†\0U\0Q\0V\0W\0\\\0Î\0\0\0\0\0H\0S\0Ð\0U\0Q\0V\0W\0\\\0Î\0Ò\0\0\0H\0S\0Ð\0U\0Q\0V\0W\0\\\0\0\0Ñ\0\0\0H\0S\0]\0U\0Q\0V\0W\0n\0Y\0\0\0\0\0H\0S\0c\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0]\0U\0Q\0V\0W\0Ä\0Y\0\0\0\0\0H\0S\0d\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0]\0U\0Q\0V\0W\0´\0Y\0\0\0\0\0H\0SÕ\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0¸\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0Sw\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0€\0U\0Q\0V\0W\0\\\0Yý\0\0\0á\0Ü\0r\0âÿ\0ãÎ\0\0\0Y\0\0\0H\0S\0\0\0U\0Q\0V\0W\0\\\0\0\0Y\0\0\0\0\0Þ?\0\0\0\00\0\0\0\01\0Y\0H\0S\0\0\0U\0Q\0V\0W\0\\\b\0\023ÞA0\0\0\0\01\0\0ž\0Y\0H\0S\0\0\0U\0Q\0V\0W\0\\23Ù\0H\0S\0\0U\0Q\0V\0W\0\\\0\0\0Y\0\0\0H\0S_\0U\0Q\0V\0W\0\\\0\0\0\0\0\0\0H\0SR\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0›\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0St\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0So\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0~\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0SÑ\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0ˆ\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0a\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0’\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0Ê\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0Í\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0Sl\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0_\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0Ö\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0SU\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0U\0Q\0V\0W\0\\\0Y0\0\0\0\01\0ç\0\0\0\0\0\0\0\0\0\0\0Yc\0\0Í\0\023Þ\0\0\0\00\0Y\0\01\0\0\0\00\0\01c\0YÍ\0\023Þc\0\0Í\0\023Þ¶0\0\0\0\01\0\00\0\01\0\0\0\0c\0\0Í\0\023Þ\f\0\023Þ\0H\0SŒ\0U\0Q\0V\0W\0}0\0\0\0\01\0\0\0\0\0\00\0\0\0\01c\0õÍ\0\023Þc\0\0Í\0\023Þ\0á\0Ü\0\0\0â\0\0\0ó\0Y\0H\0S\0\0\0U\0Q\0V\0W\0Ç0\0\0\0\01\0\0\0\0\0Þ0\0\0\0\01c\0\0Í\0\023Þc\0\0Í\0\023Þß\0á\0Ü\0\0\0â\0\0\0å\0Y\0H\0S\0\0\0U\0Q\0V\0W\0¯0\0\0\0\01\0\0\0\0\0Þ0\0\0\0\01c\0\0Í\0\023Þc\0\0Í\0\023ÞÀ\0\0\0\0\0\0\0\0\0\0\0\0\0Y\0H\0S\0\0\0U\0Q\0V\0W\0q\0H\0S\0\0\0U\0Q\0V\0W\0i\0\00\0H\0S1\0U\0Q\0V\0W\0·\0\0\0\0c\0\0Í\0\023Þ0\0\0\0\01\0H\0­\0Y¾\0Q\0V\0Wc\0\0Í\0Y23Þ0\0\0\0\01\0H\0{\0Yj\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0n\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0p\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0H\0l\0\0)\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0‚\0\0\0\0\0\0c\0\0Í\0\023Þ0!\0\01\0\00\0\0\r1\0Y\0\0c\0\0Í\0\023Þ\0\0\0\023"\0H\0S”\0U\0Q\0V\0W\0x0\0\0\0\01\0\0\0\0\0\00\0\0\0\01c\0\0Í\0\023Þc\0\0Í\0\023Þù0\0\0\0\01\0H\0² \0Y\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0°\0\0\0\0\0\0c\0\0Í\0\023Þ0\0\0\0\01\0\00\0\0²1\0Y\0\0c\0\0Í\0\023ÞÀ\0\023Þ\0H\0S¸\0U\0Q\0V\0WÎ0\0\0\0\01\0\0\0\0\0\00\0\0\0\01c\0\0Í\0\023Þc\0\0Í\0\023ÞÂ0\0\0\0\01\0H\0µ¼\0Y\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0H\0½\0\0º\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0×\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0´\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0H\0Â\0\0®\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0H\0Õ\0\0ã\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0ç\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0ñ\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0H\0o\0\0Û\0Q\0V\0Wc\0\0Í\0\023Þ\0\0\0\0\0\0\0\0\0\0\0H\0Sœ\0U\0Q\0V\0W\0X0\0\0\0\01\0\0\0\0\0\00\0\0\0\01c\0\0Í\0Y23Þc\0\0Í\0\023Þÿ0\0\0\0\01\0H\0I’\0Y\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0H\0Å\0\0\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0\t\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0ˆ\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0H\0Ô\0\0\0Q\0V\0Wc\0\0Í\0\023Þ\0\0\0\0\0\0\0\0\0\0\0H\0S\0U\0Q\0V\0W#0\0\0\0\01\0\0\0\0\0\00\0\0\0\01c\0\0Í\0Y23Þc\0\0Í\0\023Þ/0\0\0\0\01\0H\0vé\0Y\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0H\0\0\0\0l\0Q\0V\0‹c\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0f\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0d\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0H\0\0\0\0\0Q\0V\0c\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0h\0\0\0\0\0\0c\0\0Í\0\023Þ0A\0\01\0\00\0\0í1\0Y\0\0c\0\0Í\0\023Þ\0\0\0\023"\0H\0Sõ\0U\0Q\0V\0W\0¿0\0\0\0\01\0\0\0\0\0\00\0\0\0\01c\0\0Í\0\023Þc\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0-\0Y\0\0\0\0\0\0c\0\0Í\0\023Þš\0\00\0\0\0\01\0\0Š\0\00\0\0\0\01\0\0\0\0Ê\0\023Þá\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\00\0\0\0\01Ì\0\0Í\0\023Þ±\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\00\0\0\0\01¯\0\0Í\0\023Þ\0\0Í\0\023Þ0\0H\0O1\0P\0Q\0V\0W\0\00\0\0&1Í\0\023Þ0\0\0\'1Í\0\023Þ\0\0\0\0\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0Y0\0\0\0\01\0\0Í\0\023Þ\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\00\0\0\0\01\0\0Í\0\023Þ\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\00\0\0\0\01I\0\0Í\0\023Þ/\0\0Í\0\023Þ\0á\0Ü\0\0\0â\0\0\0ã\0è\0á\0Ü\0\0\0â\0H\0ã2\0\0\0Q\0V\0†0\0\0\0\01\0Þ0\0\0\0\010\0\0\0Þ1\0\0\0\0239\0\0\0\023Æ\0\023)0\0\0\0\01\0\00\0\0\0Y10\0\0\0\01\0\0\0\023­\0\0\0\023"\0\02340\0\0\0\01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\023-']],mS=[0,16,"\0\0\0\0\0\0\0\0\0\0\b\0\t\0\n\0\v\0\f\0\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0!\0\"\0#\0$\0%\0&\0'\0(\0)\0*\0+\0,\0-\0.\0/\x000\x001\x002\x003\x004\x005\x006\x007\x008\x009\0:\0;\0<\0=\0>\0?\0@\0A\0B\0C\0D\0E\0F\0G\0H\0I\0J\0K\0L\0M\0N\0O\0P\0Q\0R\0S\0T\0U\0V\0W\0X\0Y\0Z\0[\0\\\0]\0^\0_\0`\0a\0b\0c\0d\0e\0f\0g\0h\0i\0j\0k\0l\0m\0n\0o\0p\0q\0r\0s\0t\0u\0v\0w\0x\0y\0z\0{\0|\0}\0~\0\0€\0\0‚\0ƒ\0„\0…\0†\0‡\0ˆ\0‰\0Š\0‹\0Œ\0\0Ž\0\0\0‘\0’\0“\0”\0•\0–\0—\0˜\0™\0š\0›\0œ\0\0ž\0Ÿ\0 \0¡\0¢\0£\0¤\0¥\0¦\0§\0¨\0©\0ª\0«\0¬\0­\0®\0¯\0°\0±\0²\0³\0´\0µ\0¶\0·\0¸\0¹\0º\0»\0¼\0½\0¾\0¿\0À\0Á\0Â\0Ã\0Ä\0Å\0Æ\0Ç\0È\0É\0Ê\0Ë\0Ì\0Í\0Î\0Ï\0Ð\0Ñ\0Ò\0Ó\0Ô\0Õ\0Ö\0×\0Ø\0Ù\0Ú\0Û\0Ü\0Ý\0Þ\0ß\0à\0á\0â\0ã\0ä\0å\0æ\0ç\0è\0é\0ê\0ë\0ì\0í\0î\0ï\0ð\0ñ\0ò\0ó\0ô\0õ\0ö\0÷\0ø\0ù\0ú\0û\0ü\0ý\0þ\0ÿ\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abchipqxyrstuvwœžŸ ¡¢£¤¥¦§¨©ª«de¬­®¯fgjk|}–—‚ƒ„…’“°±²³´µlm¶·no¸¹º»¼½¾¿ÀÁÂÃz{~€Š‹š›†‡ˆ‰ŒŽ‘˜™ÄÅÆÇÈÉÊËÌÍ”•ÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†"],dS=[0,"\0\0uÿ\0\0\0\0Á\0Avÿwÿxÿ¶\0¡\0ì\0À\vV¡ì7‚Íc®ùDÚ%p»QÌÃ\b¿Š\tÂ\t¹\0º\0»\0½\0¾\0ÏÕÖØ¿\0Á\0Â\0ôÿù\vÞøÿùÿúÿûÿüÿýÿþÿÿÿÙÿÚÿÞàöÿÏÿãÍÿ\tÌÿ\t\bÜÿÝÿ\rÛÿÎÿØÿËÿÆÿ×ÿ)ÊÿÖÿ*ÛÓÿ+ÈÿÉÿ}ÿ½\tÕÿ>\nN\bn\n®\nÌ\bÎ\n\vN\vŽ\vÎ\v\fN\fŽ\fÎ\f\rN\rÔÿÒÿÑÿçÿÐÿÇÿB\tÞ\r)\r\bB \tƒ©Ïcª\tÄ'Lœðç2}1‡BŸ•fÅEE…ÅE…ÅE…ÅðU¯Àÿl’©Ï\f½ÿ¾ÿ¿ÿstõ–%e¥¥å%e¥å%e¥å%¼ÿåØï¶ód¯úEÛ&q¼X¸ÿ£î9„Ï ´ÿµÿk ¶ !L!—!â!-\"x\"Ã\"#Y#¤#ï#:$…$Ð$%f%±%ü%G&’&Ý&('s'¾'\t(T(Ÿ(ê(5)€)Ë)*a*¬*÷*B++Ø+#,n,¹,-O-š-å-0.{.Æ./\\/§/ò/=0ˆ0Ó01i1´1ÿ1J2•2à2+3v3Á3\f4W4¢4í485ƒ5Î56d6¯6ú6E77Û7&8q8¼89R99è93:~:É:;_;ª;õ;@<‹<ÖM>˜>ã>.?y?Ä?@Z@¥@ð@;A†AÑABgB²BýBHC“CÞC)DtD¿D\nEUE EëE6FFÌFGbG­GøGCHŽHÙH$IoIºIJPJ›JæJ1K|KÇKL]L¨LóL>M‰MÔMNjNµN\0OKO–OáO,PwPÂP\rQXQ£QîQ9R„RÏRSeS°SûSFT‘TÜT'UrU½U\bVSVžVéV4WWÊWX`X«XöXAYŒY×Y\"ZmZ¸Z[N[™[ä[/\\z\\Å\\][]¦]ñ]<^‡^zÿ‚^Â^_B_‚_Â_`B`‚`8aúÿè`Ó©aéa)b)bibûÿüÿýÿgcÿÿþÿ©béb)cic©céc)did©d","ÿÿÿÿŠ\0Š\0Š\0Š\0Š\0Š\0Š\0ÿÿÿÿÿÿ†\0„\0ƒ\0‰\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‰\0‰\0<\0<\0:\0!\0\0\0\0\0\0\0\0\0\0\r\0\f\0ÿÿ\n\0\0\b\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿÿÿÿ\0ÿÿ\0ÿÿ;\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿÿÿÿÿÿ\0ÿÿÿÿ\0\0ÿÿ \0ÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ>\0ÿÿÿÿ<\0ÿÿ>\0ÿÿ>\0ÿÿ>\0ÿÿÿÿ>\0=\0=\0ÿÿ=\0=\0>\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿC\0C\0C\0ÿÿÿÿÿÿ\0\0\0\0\0\0D\0E\0\0\0\0F\0ÿÿ\0\0H\0\0\0I\0ÿÿÿÿ\0\0\0L\0\0\0\0\0\0M\0\0N\0\0\0O\0\0\0\0\0\0\0\0P\0\0\0\0\0Q\0T\0\0\0\0R\0\0\0\0\0S\0\0\0U\0\0\0\0\0\0\0\0\0V\0\0\0\0\0W\0\0\0\0\0\0X\0Y\0\0\0\0\0\0\0\0\0Z\0\0[\0\0^\0\0\\\0\0\0\0]\0\0\0\0\0a\0\0\0\0\0\0\0_\0\0`\0\0\0\0\0b\0\0\0\0c\0\0\0d\0\0e\0g\0\0\0\0\0f\0\0\0\0\0\0h\0i\0\0j\0\0\0\0\0\0\0\0\0\0\0k\0\0~\0\0\0\0l\0\0\0\0m\0\0\0\0n\0\0\0\0\0o\0\0\0\0\0\0\0\0p\0\0\0\0q\0\0\0\0r\0\0\0\0s\0\0\0\0\0\0u\0\0\0\0\0\0\0t\0x\0\0\0v\0\0\0\0\0\0\0w\0\0y\0\0z\0\0\0\0\0{\0\0\0|\0\0}\0€\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0ÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0ÿÿ\0\0ÿÿ\0\0ÿÿÿÿ\0\0\0\0ÿÿ\0\0\0\0\0\0ÿÿ\0\0\0\0\0\0ÿÿ\0\0\0\0ÿÿÿÿ\0\0ÿÿ\0\0\0\0\0\0`\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0¬\0¾\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿ¬\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\0\v\0\t\0\t\0\f\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\r\x003\0#\0(\0\t\0,\0+\0$\0?\0>\0.\x000\x008\0/\x005\0-\0&\0%\0%\0%\0%\0%\0%\0%\0%\0%\x007\x009\x006\x002\x001\x004\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0=\0\t\0<\0)\0'\0\t\0\"\0!\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0*\0:\0\t\0\t\0································································¯\r\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\0v\0t\0u\0s\0r\0O\0N\0M\0L\0\n\0µµµµµµµµµµµµµµµµ³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0®®®®®®®®®®®®®®®®®®®®®®®®®®@\0H\0E\0F\0®G\0®®®®®®®®®®®®®®®®®®®®®®®®®®\0\0\0\0\0\0\0\0\0\0D\0I\0C\0A\0B\0P\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0W\0^\0]\0£\0\0¦\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Â\0ÈÇ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¦\0\0¥¤\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¢\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Š\0\0\0\0\0\0‰\0\0‹\0\0\0\0\0\0ˆ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\0\0\0\0\0\0\0\0\0\0\0v\0\0u\0t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0o\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0k\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0X\0\0\0\0\0\0\0\0\0\0\0\0W\0\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0O\0\0\0N\0\0\0\0\0\0\0\0\0M\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0G\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0C\0\0\0\0\0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\0\0\0\0\x009\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&%\0\0\0\0\0#$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0÷\0\0\0\0\0\0\0\0\0\0ö\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0à\0\0\0\0\0\0\0\0\0\0\0ß\0\0\0Þ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ú\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0È\0\0\0\0\0\0\0\0\0\0\0Ç\0\0\0\0\0Æ\0\0\0\0Å\0\0\0\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0£\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0\0\0y\0«\0%\0%\0%\0%\0%\0%\0%\0%\0%\0%\0_\0Y\0V\0\0\0R\0`\0Z\0\\\0\0\0\0\0\0\0x\0\0\0\0\0\0\0\0\0\0\0\0\0¤\0a\0\0\0\0\0\0\0\0\0\0\0X\0U\0T\0Q\0\0\0\0\0[\0\0\0\0\0\0\0\0\0\0\0{\0\0\0\0\0\0\0\0\0\0\0x\0\0\0\0\0\0\0­\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0%\0%\0%\0%\0%\0%\0%\0%\0%\0%\0\0\0\0\0\0\0\0\0©\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0³\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0²\0±\0±\0°\0®\0®\0®\0¯\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿª\0Ž\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0\0\0\0\0\0\0\0\0\0\0Ž\0Ž\0\0\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0\0\0ˆ\0\0\0ˆ\0\0\0K\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0•\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0”\0“\0“\0’\0\0\0\0‘\0y\0\0\0%\0%\0%\0%\0%\0%\0%\0%\0%\0%\0\0\0\0\0\0\0ÿÿ\0\0\0\0\0\0ƒ\0\0\0ƒ\0\0\0x\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0\0\0\0\0\0\0\0\0\0\0{\0\0\0\0\0\0\0\0\0\0\0x\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿh\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0g\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0f\0e\0e\0d\0b\0b\0b\0c\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿp\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0†\0†\0†\0†\0‡\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0\0\0\0\0\0\0\0\0†\0\0\0†\0†\0†\0†\0‡\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0|\0|\0|\0|\0|\0|\0~\0\0\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0|\0|\0|\0|\0|\0|\0\0\0|\0|\0|\0|\0|\0|\0\0\0\0\0}\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0\0\0\0\0\0\0\0\0\0\0\0|\0|\0|\0|\0|\0|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0\0\0\0\0\0\0\0\0\0\0„\0\0\0€\0€\0€\0€\0€\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0\0\0\0\0\0\0\0\0\0\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0\0\0€\0€\0€\0€\0€\0€\0|\0|\0|\0|\0|\0|\0\0\0\0\0\0\0}\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0\0\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0\0\0|\0|\0|\0|\0|\0|\0€\0€\0€\0€\0€\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0\0\0\0\0\0\0\0\0\0\0\0€\0€\0€\0€\0€\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0€\0€\0€\0€\0€\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0\0\0x\0\0\0\0\0\0\0\0\0€\0€\0€\0€\0€\0€\0\0\0\0\0\0\0\0\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0\0\0\0\0\0\0\0\0\0\0\0x\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0\0\0\0\0\0\0\0\0†\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0ˆ\0\0\0ˆ\0\0\0\0\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0\0\0\0\0\0\0\0\0†\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0\0\0\0\0\0\0\0\0Š\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0\0\0\0\0\0\0\0\0†\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0Ž\0\0\0\0\0\0\0\0\0Ž\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0\0\0\0\0\0\0Œ\0\0\0\0\0\0\0¡\0¡\0¡\0¡\0¡\0¡\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0\0\0\0\0\0\0\0\0\0\0Ž\0\0\0\0\0\0\0\0\0¡\0¡\0¡\0¡\0¡\0¡\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ž\0\0\0\0\0\0\0Ž\0\0\0Ž\0 \0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¢\0¢\0¢\0¢\0¢\0¢\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¥\0¥\0¥\0¥\0¥\0¥\0\0\0\0\0\0\0¢\0¢\0¢\0¢\0¢\0¢\0\0\0\0\0\0\0\0\0\0\0\0\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0\0\0¥\0¥\0¥\0¥\0¥\0¥\0¢\0¢\0¢\0¢\0¢\0¢\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0§\0§\0§\0§\0§\0§\0\0\0\0\0\0\0¢\0¢\0¢\0¢\0¢\0¢\0\0\0\0\0\0\0\0\0\0\0\0\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0\0\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¨\0\0\0§\0§\0§\0§\0§\0§\0\0\0\0\0\0\0\0\0\0\0\0\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0\0\0\0\0\0\0\0\0\0\0\0\0Ž\0§\0§\0§\0§\0§\0§\0ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0§\0§\0§\0§\0§\0§\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0\0\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0\0\0\0\0«\0À\0\0\0\0\0\0\0\0\0À\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Á\0Á\0Á\0Á\0Á\0Á\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0­\0À\0\0\0\0\0\0\0\0\0Á\0Á\0Á\0Á\0Á\0Á\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À\0\0\0\0\0\0\0À\0\0\0À\0¿\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0©\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0³\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0²\0±\0±\0°\0®\0®\0®\0¯\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿª\0ÿÿ¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0\0\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0\0\0\0\0«\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¬\0¬\0¬\0¬\0¬\0¬\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0¬\0¬\0¬\0¬\0¬\0¬\0\0\0\0\0­\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0©\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0³\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0²\0±\0±\0°\0®\0®\0®\0¯\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿª\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ä\0\0\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0¬\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Õ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Í\0\0\0\0\0\0Î\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ì\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0É\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ê\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ë\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ò\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ï\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ð\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ñ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ó\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ô\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ö\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0×\0\0\0\0\0\0\0Ù\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ø\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Û\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ü\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ý\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ê\0é\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0æ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0â\0á\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ä\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0å\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ç\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0è\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ñ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ë\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ì\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0í\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0î\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ï\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ð\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ò\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ó\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ô\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0õ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ø\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ù\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ú\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0û\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ü\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ý\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0þ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0/\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x002\0\x001\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x007\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x003\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x004\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x005\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x006\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x008\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0>\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0=\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0A\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0D\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0K\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0L\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0T\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0[\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0]\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b\0\0\0\0\0\0\0\0c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0d\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0e\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0h\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0j\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0l\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0p\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0„\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0x\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0{\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‚\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ƒ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0…\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‡\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0™\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0–\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ž\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0•\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‘\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0’\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0“\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0”\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0—\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0˜\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0š\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0›\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ž\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¡\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0£\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¬\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0©\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0§\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¨\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ª\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0«\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0­\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0®®®®®®®®®®\0\0\0\0\0\0\0\0\0\0\0\0\0\0®®®®®®®®®®®®®®®®®®®®®®®®®®\0\0\0\0\0\0\0\0®\0\0®®®®®®®®®®®®®®®®®®®®®®®®®®\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0Ä\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Æ\0\0\0\0\0\0\0\0ÅÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÀ¾¾¾¾¾¾¾¾¾¾¾¾¿¾¾½»»»¼ºººººººººººÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(\0)\0*\0*\0+\0,\x001\x001\x002\x003\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x007\0B\0C\0C\0\0F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x006\0H\x006\x006\x006\0N\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0V\0Y\0\\\0Ž\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¿\0ÅÆÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0ÿÿÿÿÿÿÿÿ \0ÿÿ \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0ÿÿÿÿÿÿÿÿ!\0ÿÿ!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0ÿÿÿÿÿÿÿÿ\"\0ÿÿ\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0¢\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0ÿÿ%\0#\0%\0%\0%\0%\0%\0%\0%\0%\0%\0%\0-\0.\0/\0ÿÿ0\0-\0.\0Z\0ÿÿÿÿÿÿ%\0ÿÿÿÿÿÿÿÿÿÿÿÿ¢\0-\0ÿÿÿÿÿÿÿÿÿÿ.\0/\0/\x000\0ÿÿÿÿZ\0ÿÿÿÿÿÿÿÿÿÿ%\0ÿÿÿÿÿÿÿÿÿÿ%\0ÿÿÿÿÿÿ#\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0K\0K\0K\0K\0K\0K\0K\0K\0K\0K\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0ÿÿÿÿÿÿÿÿ#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0$\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0ÿÿÿÿÿÿÿÿÿÿ$\0$\0ÿÿ$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0ÿÿx\0ÿÿx\0ÿÿJ\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0&\0ÿÿ&\0&\0&\0&\0&\0&\0&\0&\0&\0&\0ÿÿÿÿÿÿ`\0ÿÿÿÿÿÿ}\0ÿÿ}\0ÿÿ&\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ÿÿÿÿÿÿÿÿÿÿ&\0ÿÿÿÿÿÿÿÿÿÿ&\0ÿÿÿÿ'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0ÿÿÿÿÿÿÿÿÿÿÿÿ&\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0ÿÿÿÿÿÿÿÿ'\0ÿÿ'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿy\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0ÿÿÿÿÿÿÿÿy\0ÿÿy\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿz\0z\0z\0z\0z\0z\0|\0ÿÿ|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|\0|\0|\0|\0|\0|\0ÿÿz\0z\0z\0z\0z\0z\0ÿÿÿÿ|\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0ÿÿÿÿÿÿÿÿ|\0ÿÿ|\0|\0|\0|\0|\0|\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0ÿÿÿÿÿÿÿÿÿÿ‚\0ÿÿ~\0~\0~\0~\0~\0~\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~\0ÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0ÿÿ~\0~\0~\0~\0~\0~\0\0\0\0\0\0\0ÿÿÿÿÿÿ~\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0ÿÿ€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0ÿÿ\0\0\0\0\0\0€\0€\0€\0€\0€\0€\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ÿÿÿÿÿÿÿÿ€\0ÿÿ€\0€\0€\0€\0€\0€\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0ÿÿ…\0ÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿ†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0…\0ÿÿÿÿÿÿÿÿÿÿ…\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0ÿÿÿÿÿÿÿÿ†\0ÿÿ†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0‡\0ÿÿ‡\0ÿÿÿÿ‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0ÿÿÿÿÿÿÿÿ‡\0ÿÿ‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0ÿÿÿÿÿÿÿÿ‰\0ÿÿ‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0ÿÿÿÿÿÿÿÿŠ\0ÿÿŠ\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿ‹\0ÿÿÿÿÿÿ\0\0\0\0\0\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0ÿÿÿÿÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¡\0¡\0¡\0¡\0¡\0¡\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤\0¤\0¤\0¤\0¤\0¤\0ÿÿÿÿÿÿ¡\0¡\0¡\0¡\0¡\0¡\0ÿÿÿÿÿÿÿÿÿÿÿÿ¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0ÿÿ¤\0¤\0¤\0¤\0¤\0¤\0¥\0¥\0¥\0¥\0¥\0¥\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¦\0¦\0¦\0¦\0¦\0¦\0ÿÿÿÿÿÿ¥\0¥\0¥\0¥\0¥\0¥\0ÿÿÿÿÿÿÿÿÿÿÿÿ§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0ÿÿ¦\0¦\0¦\0¦\0¦\0¦\0§\0§\0§\0§\0§\0§\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ§\0ÿÿ§\0§\0§\0§\0§\0§\0ÿÿÿÿÿÿÿÿÿÿÿÿ¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0ÿÿÿÿÿÿÿÿÿÿÿÿ§\0¨\0¨\0¨\0¨\0¨\0¨\0¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¨\0¨\0¨\0¨\0¨\0¨\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0ÿÿ¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0ÿÿÿÿ¬\0­\0ÿÿÿÿÿÿÿÿ­\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­\0­\0­\0­\0­\0­\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬\0­\0ÿÿÿÿÿÿÿÿ­\0­\0­\0­\0­\0­\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­\0ÿÿÿÿÿÿ­\0ÿÿ­\0­\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0­\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0ÿÿÀ\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0ÿÿÿÿÀ\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁ\0Á\0Á\0Á\0Á\0Á\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ\0Â\0Â\0Â\0Â\0Â\0ÿÿÿÿÿÿÁ\0Á\0Á\0Á\0Á\0Á\0ÿÿÿÿÀ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ\0Â\0Â\0Â\0Â\0Â\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ\0Ã\0Ã\0Ã\0Ã\0Ã\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ\0ÿÿÃ\0Ã\0Ã\0Ã\0Ã\0Ã\0ÿÿÿÿÿÿÿÿÿÿÿÿÄ\0Ä\0Ä\0Ä\0Ä\0Ä\0Ä\0Ä\0Ä\0Ä\0ÿÿÿÿÿÿÿÿÿÿÿÿÃ\0Ä\0Ä\0Ä\0Ä\0Ä\0Ä\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0ÿÿÄ\0Ä\0Ä\0Ä\0Ä\0Ä\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0ÿÿÿÿÿÿÿÿÅ\0ÿÿÅ\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0ÿÿÿÿÿÿÿÿÆ\0ÿÿÆ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇ\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0ÿÿÿÿÿÿÿÿÇ\0ÿÿÇ\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0ÿÿÿÿÿÿÿÿÈ\0ÿÿÈ\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0ÿÿÿÿÿÿÿÿÉ\0ÿÿÉ\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÊ\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0ÿÿÿÿÿÿÿÿÊ\0ÿÿÊ\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿË\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0ÿÿÿÿÿÿÿÿË\0ÿÿË\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0ÿÿÿÿÿÿÿÿÌ\0ÿÿÌ\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍ\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0ÿÿÿÿÿÿÿÿÍ\0ÿÿÍ\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0ÿÿÿÿÿÿÿÿÎ\0ÿÿÎ\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0ÿÿÿÿÿÿÿÿÏ\0ÿÿÏ\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ð\0ÿÿÿÿÿÿÿÿÿÿÐ\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐ\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0ÿÿÿÿÿÿÿÿÐ\0ÿÿÐ\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒ\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0ÿÿÿÿÿÿÿÿÒ\0ÿÿÒ\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÓ\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0ÿÿÿÿÿÿÿÿÓ\0ÿÿÓ\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔ\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0ÿÿÿÿÿÿÿÿÔ\0ÿÿÔ\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0ÿÿÿÿÿÿÿÿÕ\0ÿÿÕ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖ\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0ÿÿÿÿÿÿÿÿÖ\0ÿÿÖ\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0×\0ÿÿÿÿÿÿÿÿÿÿ×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0ÿÿÿÿÿÿÿÿÿÿ×\0ÿÿ×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0ÿÿÿÿÿÿÿÿ×\0ÿÿ×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚ\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0ÿÿÿÿÿÿÿÿÚ\0ÿÿÚ\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛ\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0ÿÿÿÿÿÿÿÿÛ\0ÿÿÛ\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜ\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0ÿÿÿÿÿÿÿÿÜ\0ÿÿÜ\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝ\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0ÿÿÿÿÿÿÿÿÝ\0ÿÿÝ\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÞ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0ÿÿÿÿÿÿÿÿÞ\0ÿÿÞ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ÿÿÿÿÿÿÿÿß\0ÿÿß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿà\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0ÿÿÿÿÿÿÿÿà\0ÿÿà\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿá\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0ÿÿÿÿÿÿÿÿá\0ÿÿá\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0ÿÿÿÿÿÿÿÿâ\0ÿÿâ\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ÿÿÿÿÿÿÿÿã\0ÿÿã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ÿÿÿÿÿÿÿÿä\0ÿÿä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿå\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0ÿÿÿÿÿÿÿÿå\0ÿÿå\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿæ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0ÿÿÿÿÿÿÿÿæ\0ÿÿæ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ÿÿÿÿÿÿÿÿç\0ÿÿç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿè\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0ÿÿÿÿÿÿÿÿè\0ÿÿè\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿé\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0ÿÿÿÿÿÿÿÿé\0ÿÿé\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ÿÿÿÿÿÿÿÿê\0ÿÿê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ÿÿÿÿÿÿÿÿë\0ÿÿë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ÿÿÿÿÿÿÿÿì\0ÿÿì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿí\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0ÿÿÿÿÿÿÿÿí\0ÿÿí\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿî\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0ÿÿÿÿÿÿÿÿî\0ÿÿî\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ÿÿÿÿÿÿÿÿï\0ÿÿï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ÿÿÿÿÿÿÿÿð\0ÿÿð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ÿÿÿÿÿÿÿÿñ\0ÿÿñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ÿÿÿÿÿÿÿÿò\0ÿÿò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ÿÿÿÿÿÿÿÿó\0ÿÿó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ÿÿÿÿÿÿÿÿô\0ÿÿô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿõ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0ÿÿÿÿÿÿÿÿõ\0ÿÿõ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ÿÿÿÿÿÿÿÿö\0ÿÿö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0ÿÿÿÿÿÿÿÿ÷\0ÿÿ÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ÿÿÿÿÿÿÿÿø\0ÿÿø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ÿÿÿÿÿÿÿÿù\0ÿÿù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ÿÿÿÿÿÿÿÿú\0ÿÿú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿû\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0ÿÿÿÿÿÿÿÿû\0ÿÿû\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ÿÿÿÿÿÿÿÿü\0ÿÿü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ÿÿÿÿÿÿÿÿý\0ÿÿý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0ÿÿÿÿÿÿÿÿþ\0ÿÿþ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿÿÿÿÿÿÿÿÿ\0ÿÿÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\b\b\b\b\b\b\b\b\b\bÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bÿÿÿÿÿÿÿÿ\bÿÿ\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\t\t\t\t\t\t\t\t\t\tÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tÿÿÿÿÿÿÿÿ\tÿÿ\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\n\n\n\n\n\n\n\nÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nÿÿÿÿÿÿÿÿ\nÿÿ\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\v\v\v\v\v\v\v\v\v\vÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\vÿÿÿÿÿÿÿÿ\vÿÿ\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\f\f\f\f\f\f\f\f\f\fÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\fÿÿÿÿÿÿÿÿ\fÿÿ\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\r\r\r\r\r\r\r\r\r\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\rÿÿÿÿÿÿÿÿ\rÿÿ\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ          ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ                          ÿÿÿÿÿÿÿÿ ÿÿ                          !!!!!!!!!!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!!!!!!!!!!!!!!!!!!!!!!!!!!ÿÿÿÿÿÿÿÿ!ÿÿ!!!!!!!!!!!!!!!!!!!!!!!!!!\"\"\"\"\"\"\"\"\"\"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"ÿÿÿÿÿÿÿÿ\"ÿÿ\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"##########ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ##########################ÿÿÿÿÿÿÿÿ#ÿÿ##########################$$$$$$$$$$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$$$$$$$$$$$$$$$$$$$$$$$$$$ÿÿÿÿÿÿÿÿ$ÿÿ$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ%%%%%%%%%%%%%%%%%%%%%%%%%%ÿÿÿÿÿÿÿÿ%ÿÿ%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿ&ÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ''''''''''''''''''''''''''ÿÿÿÿÿÿÿÿ'ÿÿ''''''''''''''''''''''''''((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ((((((((((((((((((((((((((ÿÿÿÿÿÿÿÿ(ÿÿ(((((((((((((((((((((((((())))))))))ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ))))))))))))))))))))))))))ÿÿÿÿÿÿÿÿ)ÿÿ))))))))))))))))))))))))))**********ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ**************************ÿÿÿÿÿÿÿÿ*ÿÿ**************************++++++++++ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ++++++++++++++++++++++++++ÿÿÿÿÿÿÿÿ+ÿÿ++++++++++++++++++++++++++,,,,,,,,,,ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,,,,,,,,,,,,,,,,,,,,,,,,,,ÿÿÿÿÿÿÿÿ,ÿÿ,,,,,,,,,,,,,,,,,,,,,,,,,,----------ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ--------------------------ÿÿÿÿÿÿÿÿ-ÿÿ--------------------------..........ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ..........................ÿÿÿÿÿÿÿÿ.ÿÿ..........................//////////ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ//////////////////////////ÿÿÿÿÿÿÿÿ/ÿÿ//////////////////////////0000000000ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00000000000000000000000000ÿÿÿÿÿÿÿÿ0ÿÿ000000000000000000000000001111111111ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ11111111111111111111111111ÿÿÿÿÿÿÿÿ1ÿÿ111111111111111111111111112222222222ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ22222222222222222222222222ÿÿÿÿÿÿÿÿ2ÿÿ222222222222222222222222223333333333ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ33333333333333333333333333ÿÿÿÿÿÿÿÿ3ÿÿ333333333333333333333333334444444444ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ44444444444444444444444444ÿÿÿÿÿÿÿÿ4ÿÿ444444444444444444444444445555555555ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ55555555555555555555555555ÿÿÿÿÿÿÿÿ5ÿÿ555555555555555555555555556666666666ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ66666666666666666666666666ÿÿÿÿÿÿÿÿ6ÿÿ666666666666666666666666667777777777ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ77777777777777777777777777ÿÿÿÿÿÿÿÿ7ÿÿ777777777777777777777777778888888888ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ88888888888888888888888888ÿÿÿÿÿÿÿÿ8ÿÿ888888888888888888888888889999999999ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ99999999999999999999999999ÿÿÿÿÿÿÿÿ9ÿÿ99999999999999999999999999::::::::::ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ::::::::::::::::::::::::::ÿÿÿÿÿÿÿÿ:ÿÿ::::::::::::::::::::::::::;;;;;;;;;;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;;;;;;;;;;;;;;;;;;;;;;;;;;ÿÿÿÿÿÿÿÿ;ÿÿ;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<<<<<<<<<<<<<<<<<<<<<<<<<<ÿÿÿÿÿÿÿÿ<ÿÿ<<<<<<<<<<<<<<<<<<<<<<<<<<==========ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ==========================ÿÿÿÿÿÿÿÿ=ÿÿ==========================>>>>>>>>>>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ>>>>>>>>>>>>>>>>>>>>>>>>>>ÿÿÿÿÿÿÿÿ>ÿÿ>>>>>>>>>>>>>>>>>>>>>>>>>>??????????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????????????????????????ÿÿÿÿÿÿÿÿ?ÿÿ??????????????????????????@@@@@@@@@@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@@@@@@@@@@@@@@@@@@@@@@@@@@ÿÿÿÿÿÿÿÿ@ÿÿ@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAÿÿÿÿÿÿÿÿÿÿÿÿÿÿAAAAAAAAAAAAAAAAAAAAAAAAAAÿÿÿÿÿÿÿÿAÿÿAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBÿÿÿÿÿÿÿÿÿÿÿÿÿÿBBBBBBBBBBBBBBBBBBBBBBBBBBÿÿÿÿÿÿÿÿBÿÿBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCÿÿÿÿÿÿÿÿÿÿÿÿÿÿCCCCCCCCCCCCCCCCCCCCCCCCCCÿÿÿÿÿÿÿÿCÿÿCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDÿÿÿÿÿÿÿÿÿÿÿÿÿÿDDDDDDDDDDDDDDDDDDDDDDDDDDÿÿÿÿÿÿÿÿDÿÿDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEÿÿÿÿÿÿÿÿÿÿÿÿÿÿEEEEEEEEEEEEEEEEEEEEEEEEEEÿÿÿÿÿÿÿÿEÿÿEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFÿÿÿÿÿÿÿÿÿÿÿÿÿÿFFFFFFFFFFFFFFFFFFFFFFFFFFÿÿÿÿÿÿÿÿFÿÿFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGÿÿÿÿÿÿÿÿÿÿÿÿÿÿGGGGGGGGGGGGGGGGGGGGGGGGGGÿÿÿÿÿÿÿÿGÿÿGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHÿÿÿÿÿÿÿÿÿÿÿÿÿÿHHHHHHHHHHHHHHHHHHHHHHHHHHÿÿÿÿÿÿÿÿHÿÿHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIÿÿÿÿÿÿÿÿÿÿÿÿÿÿIIIIIIIIIIIIIIIIIIIIIIIIIIÿÿÿÿÿÿÿÿIÿÿIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJÿÿÿÿÿÿÿÿÿÿÿÿÿÿJJJJJJJJJJJJJJJJJJJJJJJJJJÿÿÿÿÿÿÿÿJÿÿJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKÿÿÿÿÿÿÿÿÿÿÿÿÿÿKKKKKKKKKKKKKKKKKKKKKKKKKKÿÿÿÿÿÿÿÿKÿÿKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLÿÿÿÿÿÿÿÿÿÿÿÿÿÿLLLLLLLLLLLLLLLLLLLLLLLLLLÿÿÿÿÿÿÿÿLÿÿLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMÿÿÿÿÿÿÿÿÿÿÿÿÿÿMMMMMMMMMMMMMMMMMMMMMMMMMMÿÿÿÿÿÿÿÿMÿÿMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNÿÿÿÿÿÿÿÿÿÿÿÿÿÿNNNNNNNNNNNNNNNNNNNNNNNNNNÿÿÿÿÿÿÿÿNÿÿNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOOOOOOOOOOOOOOOOOOOOOOOOÿÿÿÿÿÿÿÿOÿÿOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPPPPPPPPPPPPPPPPPPPPPÿÿÿÿÿÿÿÿPÿÿPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQÿÿÿÿÿÿÿÿÿÿÿÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQÿÿÿÿÿÿÿÿQÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRÿÿÿÿÿÿÿÿÿÿÿÿÿÿRRRRRRRRRRRRRRRRRRRRRRRRRRÿÿÿÿÿÿÿÿRÿÿRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿSSSSSSSSSSSSSSSSSSSSSSSSSSÿÿÿÿÿÿÿÿSÿÿSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTÿÿÿÿÿÿÿÿÿÿÿÿÿÿTTTTTTTTTTTTTTTTTTTTTTTTTTÿÿÿÿÿÿÿÿTÿÿTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿUUUUUUUUUUUUUUUUUUUUUUUUUUÿÿÿÿÿÿÿÿUÿÿUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVÿÿÿÿÿÿÿÿÿÿÿÿÿÿVVVVVVVVVVVVVVVVVVVVVVVVVVÿÿÿÿÿÿÿÿVÿÿVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWÿÿÿÿÿÿÿÿÿÿÿÿÿÿWWWWWWWWWWWWWWWWWWWWWWWWWWÿÿÿÿÿÿÿÿWÿÿWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXÿÿÿÿÿÿÿÿÿÿÿÿÿÿXXXXXXXXXXXXXXXXXXXXXXXXXXÿÿÿÿÿÿÿÿXÿÿXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYÿÿÿÿÿÿÿÿÿÿÿÿÿÿYYYYYYYYYYYYYYYYYYYYYYYYYYÿÿÿÿÿÿÿÿYÿÿYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZÿÿÿÿÿÿÿÿÿÿÿÿÿÿZZZZZZZZZZZZZZZZZZZZZZZZZZÿÿÿÿÿÿÿÿZÿÿZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ[[[[[[[[[[[[[[[[[[[[[[[[[[ÿÿÿÿÿÿÿÿ[ÿÿ[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ÿÿÿÿÿÿÿÿ\\ÿÿ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]]]]]]]]]]]]]]]]]]]]]]]]]]ÿÿÿÿÿÿÿÿ]ÿÿ]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ^^^^^^^^^^^^^^^^^^^^^^^^^^ÿÿÿÿÿÿÿÿ^ÿÿ^^^^^^^^^^^^^^^^^^^^^^^^^^__________ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ__________________________ÿÿÿÿÿÿÿÿ_ÿÿ__________________________``````````ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ``````````````````````````ÿÿÿÿÿÿÿÿ`ÿÿ``````````````````````````aaaaaaaaaaÿÿÿÿÿÿÿÿÿÿÿÿÿÿaaaaaaaaaaaaaaaaaaaaaaaaaaÿÿÿÿÿÿÿÿaÿÿaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbÿÿÿÿÿÿÿÿÿÿÿÿÿÿbbbbbbbbbbbbbbbbbbbbbbbbbbÿÿÿÿÿÿÿÿbÿÿbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccÿÿÿÿÿÿÿÿÿÿÿÿÿÿccccccccccccccccccccccccccÿÿÿÿÿÿÿÿcÿÿccccccccccccccccccccccccccddddddddddÿÿÿÿÿÿÿÿÿÿÿÿÿÿddddddddddddddddddddddddddÿÿÿÿÿÿÿÿdÿÿddddddddddddddddddddddddddeeeeeeeeeeÿÿÿÿÿÿÿÿÿÿÿÿÿÿeeeeeeeeeeeeeeeeeeeeeeeeeeÿÿÿÿÿÿÿÿeÿÿeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffÿÿÿÿÿÿÿÿÿÿÿÿÿÿffffffffffffffffffffffffffÿÿÿÿÿÿÿÿfÿÿffffffffffffffffffffffffffggggggggggÿÿÿÿÿÿÿÿÿÿÿÿÿÿggggggggggggggggggggggggggÿÿÿÿÿÿÿÿgÿÿgggggggggggggggggggggggggghhhhhhhhhhÿÿÿÿÿÿÿÿÿÿÿÿÿÿhhhhhhhhhhhhhhhhhhhhhhhhhhÿÿÿÿÿÿÿÿhÿÿhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiÿÿÿÿÿÿÿÿÿÿÿÿÿÿiiiiiiiiiiiiiiiiiiiiiiiiiiÿÿÿÿÿÿÿÿiÿÿiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjÿÿÿÿÿÿÿÿÿÿÿÿÿÿjjjjjjjjjjjjjjjjjjjjjjjjjjÿÿÿÿÿÿÿÿjÿÿjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkÿÿÿÿÿÿÿÿÿÿÿÿÿÿkkkkkkkkkkkkkkkkkkkkkkkkkkÿÿÿÿÿÿÿÿkÿÿkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllÿÿÿÿÿÿÿÿÿÿÿÿÿÿllllllllllllllllllllllllllÿÿÿÿÿÿÿÿlÿÿllllllllllllllllllllllllllmmmmmmmmmmÿÿÿÿÿÿÿÿÿÿÿÿÿÿmmmmmmmmmmmmmmmmmmmmmmmmmmÿÿÿÿÿÿÿÿmÿÿmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnÿÿÿÿÿÿÿÿÿÿÿÿÿÿnnnnnnnnnnnnnnnnnnnnnnnnnnÿÿÿÿÿÿÿÿnÿÿnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooÿÿÿÿÿÿÿÿÿÿÿÿÿÿooooooooooooooooooooooooooÿÿÿÿÿÿÿÿoÿÿooooooooooooooooooooooooooppppppppppÿÿÿÿÿÿÿÿÿÿÿÿÿÿppppppppppppppppppppppppppÿÿÿÿÿÿÿÿpÿÿppppppppppppppppppppppppppqqqqqqqqqqÿÿÿÿÿÿÿÿÿÿÿÿÿÿqqqqqqqqqqqqqqqqqqqqqqqqqqÿÿÿÿÿÿÿÿqÿÿqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrÿÿÿÿÿÿÿÿÿÿÿÿÿÿrrrrrrrrrrrrrrrrrrrrrrrrrrÿÿÿÿÿÿÿÿrÿÿrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssÿÿÿÿÿÿÿÿÿÿÿÿÿÿssssssssssssssssssssssssssÿÿÿÿÿÿÿÿsÿÿssssssssssssssssssssssssssttttttttttÿÿÿÿÿÿÿÿÿÿÿÿÿÿttttttttttttttttttttttttttÿÿÿÿÿÿÿÿtÿÿttttttttttttttttttttttttttuuuuuuuuuuÿÿÿÿÿÿÿÿÿÿÿÿÿÿuuuuuuuuuuuuuuuuuuuuuuuuuuÿÿÿÿÿÿÿÿuÿÿuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvÿÿÿÿÿÿÿÿÿÿÿÿÿÿvvvvvvvvvvvvvvvvvvvvvvvvvvÿÿÿÿÿÿÿÿvÿÿvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwÿÿÿÿÿÿÿÿÿÿÿÿÿÿwwwwwwwwwwwwwwwwwwwwwwwwwwÿÿÿÿÿÿÿÿwÿÿwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxÿÿÿÿÿÿÿÿÿÿÿÿÿÿxxxxxxxxxxxxxxxxxxxxxxxxxxÿÿÿÿÿÿÿÿxÿÿxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyÿÿÿÿÿÿÿÿÿÿÿÿÿÿyyyyyyyyyyyyyyyyyyyyyyyyyyÿÿÿÿÿÿÿÿyÿÿyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzÿÿÿÿÿÿÿÿÿÿÿÿÿÿzzzzzzzzzzzzzzzzzzzzzzzzzzÿÿÿÿÿÿÿÿzÿÿzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ{{{{{{{{{{{{{{{{{{{{{{{{{{ÿÿÿÿÿÿÿÿ{ÿÿ{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ||||||||||||||||||||||||||ÿÿÿÿÿÿÿÿ|ÿÿ||||||||||||||||||||||||||}}}}}}}}}}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}}}}}}}}}}}}}}}}}}}}}}}}}}ÿÿÿÿÿÿÿÿ}ÿÿ}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~~~~~~~~~~~~~~~~~~~~~~~~~~ÿÿÿÿÿÿÿÿ~ÿÿ~~~~~~~~~~~~~~~~~~~~~~~~~~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€€€€€€€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€€€€€€€€€€€€€€€€€€€€€€€€€ÿÿÿÿÿÿÿÿ€ÿÿ€€€€€€€€€€€€€€€€€€€€€€€€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚‚‚‚‚‚‚‚‚‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ÿÿÿÿÿÿÿÿ‚ÿÿ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒÿÿÿÿÿÿÿÿƒÿÿƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„„„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„„„„„„„„„„„„„„„„„„„„„„„„„„ÿÿÿÿÿÿÿÿ„ÿÿ„„„„„„„„„„„„„„„„„„„„„„„„„„…………………………ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ……………………………………………………………………ÿÿÿÿÿÿÿÿ…ÿÿ……………………………………………………………………††††††††††ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ††††††††††††††††††††††††††ÿÿÿÿÿÿÿÿ†ÿÿ††††††††††††††††††††††††††‡‡‡‡‡‡‡‡‡‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡ÿÿÿÿÿÿÿÿ‡ÿÿ‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡ˆˆˆˆˆˆˆˆˆˆÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÿÿÿÿÿÿÿÿˆÿÿˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰‰‰‰‰‰‰‰‰‰ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÿÿÿÿÿÿÿÿ‰ÿÿ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ŠŠŠŠŠŠŠŠŠŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠÿÿÿÿÿÿÿÿŠÿÿŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠ‹‹‹‹‹‹‹‹‹‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ÿÿÿÿÿÿÿÿ‹ÿÿ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ŒŒŒŒŒŒŒŒŒŒÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒÿÿÿÿÿÿÿÿŒÿÿŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽŽŽŽŽŽŽŽŽŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽÿÿÿÿÿÿÿÿŽÿÿŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘‘‘‘‘‘‘‘‘‘ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘ÿÿÿÿÿÿÿÿ‘ÿÿ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘’’’’’’’’’’ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’’’’’’’’’’’’’’’’’’’’’’’’’’ÿÿÿÿÿÿÿÿ’ÿÿ’’’’’’’’’’’’’’’’’’’’’’’’’’““““““““““ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ““““““““““““““““““““““““““ÿÿÿÿÿÿÿÿ“ÿÿ““““““““““““““““““““““““““””””””””””ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ””””””””””””””””””””””””””ÿÿÿÿÿÿÿÿ”ÿÿ””””””””””””””””””””””””””••••••••••ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ••••••••••••••••••••••••••ÿÿÿÿÿÿÿÿ•ÿÿ••••••••••••••••••••••••••––––––––––ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ––––––––––––––––––––––––––ÿÿÿÿÿÿÿÿ–ÿÿ––––––––––––––––––––––––––——————————ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ——————————————————————————ÿÿÿÿÿÿÿÿ—ÿÿ——————————————————————————˜˜˜˜˜˜˜˜˜˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜ÿÿÿÿÿÿÿÿ˜ÿÿ˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜™™™™™™™™™™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ™™™™™™™™™™™™™™™™™™™™™™™™™™ÿÿÿÿÿÿÿÿ™ÿÿ™™™™™™™™™™™™™™™™™™™™™™™™™™ššššššššššÿÿÿÿÿÿÿÿÿÿÿÿÿÿššššššššššššššššššššššššššÿÿÿÿÿÿÿÿšÿÿšššššššššššššššššššššššššš››››››››››ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ››››››››››››››››››››››››››ÿÿÿÿÿÿÿÿ›ÿÿ››››››››››››››››››››››››››œœœœœœœœœœÿÿÿÿÿÿÿÿÿÿÿÿÿÿœœœœœœœœœœœœœœœœœœœœœœœœœœÿÿÿÿÿÿÿÿœÿÿœœœœœœœœœœœœœœœœœœœœœœœœœœÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿžžžžžžžžžžÿÿÿÿÿÿÿÿÿÿÿÿÿÿžžžžžžžžžžžžžžžžžžžžžžžžžžÿÿÿÿÿÿÿÿžÿÿžžžžžžžžžžžžžžžžžžžžžžžžžžŸŸŸŸŸŸŸŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸÿÿÿÿÿÿÿÿŸÿÿŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ          ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ                          ÿÿÿÿÿÿÿÿ ÿÿ                          ¡¡¡¡¡¡¡¡¡¡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÿÿÿÿÿÿÿÿ¡ÿÿ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢¢¢¢¢¢ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢ÿÿÿÿÿÿÿÿ¢ÿÿ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢££££££££££ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ££££££££££££££££££££££££££ÿÿÿÿÿÿÿÿ£ÿÿ££££££££££££££££££££££££££¤¤¤¤¤¤¤¤¤¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ÿÿÿÿÿÿÿÿ¤ÿÿ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¥¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ÿÿÿÿÿÿÿÿ¥ÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¦¦¦¦¦¦¦¦¦¦ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ÿÿÿÿÿÿÿÿ¦ÿÿ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦§§§§§§§§§§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ§§§§§§§§§§§§§§§§§§§§§§§§§§ÿÿÿÿÿÿÿÿ§ÿÿ§§§§§§§§§§§§§§§§§§§§§§§§§§¨¨¨¨¨¨¨¨¨¨ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ÿÿÿÿÿÿÿÿ¨ÿÿ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨©©©©©©©©©©ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ©©©©©©©©©©©©©©©©©©©©©©©©©©ÿÿÿÿÿÿÿÿ©ÿÿ©©©©©©©©©©©©©©©©©©©©©©©©©©ªªªªªªªªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªÿÿÿÿÿÿÿÿªÿÿªªªªªªªªªªªªªªªªªªªªªªªªªª««««««««««ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ««««««««««««««««««««««««««ÿÿÿÿÿÿÿÿ«ÿÿ««««««««««««««««««««««««««¬¬¬¬¬¬¬¬¬¬ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ÿÿÿÿÿÿÿÿ¬ÿÿ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬­­­­­­­­­­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­­­­­­­­­­­­­­­­­­­­­­­­­­ÿÿÿÿÿÿÿÿ­ÿÿ­­­­­­­­­­­­­­­­­­­­­­­­­­®®®®®®®®®®ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®®®®®®®®®®®®®®®®®®®®®®®®®®ÿÿÿÿÿÿÿÿ®ÿÿ®®®®®®®®®®®®®®®®®®®®®®®®®®°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶································································¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ÿÿÿÿÿÿÿÿ¹»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",fQ,fQ,fQ,fQ,fQ,fQ],_S=[0,[1,[0,96]],[0,[0,zj],0]],hS=[0,[1,[0,34]],[0,[0,361],0]],xS=[0,[1,[0,57]],[0,[0,vk],0]],yS=[0,[1,[0,83]],[0,[0,Vl],0]],wS=[0,[1,[0,40]],[0,[0,355],0]],gS=[0,[0,339],[0,[0,494],0]],qS=[0,[1,[0,34]],[0,[0,493],0]],IS=[0,[0,xt],[0,[0,Hx],0]],DS=[0,[1,[0,40]],[0,[0,ig],0]],ES=[0,[0,pr],[0,[0,433],0]],NS=[0,[1,[0,41]],[0,[0,Kt],0]],TS=[0,[1,[0,41]],[0,[0,496],0]],FS=[0,[1,[0,86]],[0,[0,465],0]],MS=[0,[1,[0,83]],[0,[0,501],0]],PS=[0,[0,kl],[0,[0,430],0]],US=[0,[0,Xo],[0,[0,440],0]],GS=[0,[0,5],[0,[0,509],0]],$S=[0,[0,xK],[0,[0,447],0]],KS=[0,[0,442],[0,[0,444],0]],OS=[0,[0,Cu],[0,[0,de],0]],RS=[0,[0,413],[0,[0,hF],0]],QS=[0,[0,hr],[0,[0,407],0]],CS=[0,[1,[0,96]],[0,[0,Xt],0]],HS=[0,[1,[1,79]],[0,[0,EB],0]],VS=[0,[1,[0,34]],[0,[0,271],0]],LS=[0,[1,[1,91]],[0,[0,Bs],0]],zS=[0,[1,[0,34]],[0,[0,RR],0]],SS=[0,[1,[1,90]],[0,[0,30],0]],ZS=[0,[1,[0,40]],[0,[0,gt],0]],WS=[0,[0,5],[0,[0,_q],0]],XS=[0,[1,[0,40]],[0,[0,$_],0]],JS=[0,[1,[0,34]],[0,[0,GK],0]],YS=[0,[1,[1,90]],[0,[0,273],0]],rZ=[0,[1,[0,40]],[0,[0,299],0]],nZ=[0,[1,[0,pp]],[0,[0,DA],[0,[0,15],[0,[0,17],0]]]],tZ=[0,[1,[0,40]],[0,[0,7],0]],eZ=[0,[1,[0,40]],[0,[0,PA],0]],aZ=[0,[0,aR],[0,[0,379],0]],uZ=[0,[1,[0,41]],[0,[0,232],0]],fZ=[0,[1,[0,41]],[0,[0,233],0]],iZ=[0,[1,[1,90]],[0,[0,29],0]],cZ=[0,[1,[0,86]],[0,[0,l_],0]],vZ=[0,[1,[0,86]],[0,[0,285],0]],oZ=[0,[0,uP],[0,[0,qf],0]],AZ=[0,[1,[0,41]],[0,[0,234],0]],sZ=[0,[1,[0,41]],[0,[0,Px],0]],bZ=[0,[1,[0,41]],[0,[0,Ga],0]],lZ=[0,[1,[0,41]],[0,[0,ms],0]],BZ=[0,[1,[0,15]],[0,[0,41],0]],jZ=[0,[1,[0,34]],[0,[0,38],0]],kZ=[0,[0,rB],[0,[0,Zm],0]],pZ=[0,[0,AK],[0,[0,cD],0]],mZ=[0,[0,5],[0,[0,x$],0]],dZ=[0,[0,m_],[0,[0,397],0]],_Z=[0,[0,XO],[0,[0,ip],0]],hZ=[0,[0,tR],[0,[0,KD],0]],xZ=[0,[1,[0,40]],[0,[0,yd],0]],yZ=[0,[1,[0,32]],[0,[0,343],0]],wZ=[0,[0,JK],[0,[0,383],0]],gZ=[0,[0,cO],[0,[0,404],0]],qZ=[0,[1,[0,40]],[0,[0,344],0]],IZ=[0,[0,Rc],[0,[0,436],0]],DZ=[0,[1,[0,40]],[0,[0,lE],0]],EZ=[0,[0,Jy],[0,[0,426],0]],NZ=[0,[0,iT],[0,[0,Hh],0]],TZ=[0,[1,[0,34]],[0,[0,tt],0]],FZ=[0,[0,Xr],[0,[0,422],0]],MZ=oI,PZ=yt,UZ=FF,GZ=dy,$Z=uG,KZ=_i,OZ=pl,RZ=tg,QZ=zO,CZ=U_,HZ=IK,VZ=lO,LZ=Ge,zZ=Dx,SZ=nx,ZZ=QE,WZ=be,XZ=be,JZ=Jq,YZ=FG,rW=Ss,nW=rr,tW=l$,eW=jf,aW=GE,uW=Zr,fW=vf,iW=GA,cW="num.id",vW=yF,oW=Go,AW=mU,sW=om,bW=W_,lW=y$,BW=Xv,jW=By,kW=OA,pW=PE,mW=Qk,dW=ap,_W=lc,hW=Wj,xW=JG,yW=f_,wW=b,gW=SG,qW=jN,IW=xx,DW=RP,EW=Sq,NW="",TW=$l,FW=Qu,MW="",PW=mk,UW=zG,GW=jo,$W=mh,KW=CO,OW=nK,RW=sq,QW=TK,CW=yg,HW=hx,VW="",LW=RI,zW=Mg,SW="await?",ZW=Vy,WW=II,XW=ia,JW=AB,YW=Aq,rX=fQ,nX="-=",tX="",eX=rF,aX="",uX="+=",fX="",iX="==",cX="",vX=cg,oX="",AX="42",sX=ax,bX=MA,lX='import Array "mo:base/Array"',BX="",jX="#t",kX=[0,"",be],pX=[0,be,be],mX=[0,CO,CO],dX="",_X=[0,2,0,0,0],hX=Ts,xX=[0,jF,0],yX=[6,0],wX=[0,0,0],gX=ax,qX=rv,IX=[0,xy,0],DX=[1,0],EX=[1,0],NX=[0,0,0],TX=En,FX=En,MX=il,PX=Is,UX=GP,GX=FO,$X=lC($K,GK,0),KX=Vu,OX=lC(3,0,0),RX=lC(16777213,$K,Ft),QX=jO,CX=Bm,HX=rk,VX=tx,LX=kq,zX=uI,SX=lC(2,0,0),ZX=Ds,WX=lC(7,0,0),XX=lC(15,0,0),JX=lC(31,0,0),YX=lC(1,0,0),rJ=WA,nJ=[0,0],tJ=[21,[0,2]],eJ=lC(8,0,0),aJ=[21,[1,1]],uJ=[21,[0,2]],fJ=lC(hj,$K,Ft),iJ=lC(2,0,0),cJ=lC(0,0,0),vJ=lC(1,0,0),oJ=lC(8,0,0),AJ="@initialize_main_actor",sJ=Mf,bJ=lC(0,0,0),lJ=lC(1,0,0),BJ=lC(2,0,0),jJ=lC(16,0,0),kJ=lC(8,0,0),pJ=lC(4,0,0),mJ=AD,dJ="@async_stabilization_reply_callback",_J="@async_stabilization_reject_callback",hJ=tm,xJ="@async_destabilization_reply_callback",yJ="@async_destabilization_reject_callback",wJ=En,gJ=En,qJ=il,IJ=FO,DJ=Vu,EJ=jO,NJ=Bm,TJ=rk,FJ=tx,MJ=kq,PJ=uI,UJ=[0,0],GJ=[17,[0,0]],$J=Mf,KJ=AP,OJ="stable-types";function RJ(r){if("number"==typeof r)return 0;switch(r[0]){case 0:return[0,RJ(r[1])];case 1:return[1,RJ(r[1])];case 2:return[2,RJ(r[1])];case 3:return[3,RJ(r[1])];case 4:return[4,RJ(r[1])];case 5:return[5,RJ(r[1])];case 6:return[6,RJ(r[1])];case 7:return[7,RJ(r[1])];case 8:return[8,r[1],RJ(r[2])];case 9:var n=r[1];return[9,n,n,RJ(r[3])];case 10:return[10,RJ(r[1])];case 11:return[11,RJ(r[1])];case 12:return[12,RJ(r[1])];case 13:return[13,RJ(r[1])];default:return[14,RJ(r[1])]}}function QJ(r,n){if("number"==typeof r)return n;switch(r[0]){case 0:return[0,QJ(r[1],n)];case 1:return[1,QJ(r[1],n)];case 2:return[2,QJ(r[1],n)];case 3:return[3,QJ(r[1],n)];case 4:return[4,QJ(r[1],n)];case 5:return[5,QJ(r[1],n)];case 6:return[6,QJ(r[1],n)];case 7:return[7,QJ(r[1],n)];case 8:return[8,r[1],QJ(r[2],n)];case 9:var t=r[2];return[9,r[1],t,QJ(r[3],n)];case 10:return[10,QJ(r[1],n)];case 11:return[11,QJ(r[1],n)];case 12:return[12,QJ(r[1],n)];case 13:return[13,QJ(r[1],n)];default:return[14,QJ(r[1],n)]}}function CJ(r,n){if("number"==typeof r)return n;switch(r[0]){case 0:return[0,CJ(r[1],n)];case 1:return[1,CJ(r[1],n)];case 2:return[2,r[1],CJ(r[2],n)];case 3:return[3,r[1],CJ(r[2],n)];case 4:var t=r[3],e=r[2];return[4,r[1],e,t,CJ(r[4],n)];case 5:var a=r[3],u=r[2];return[5,r[1],u,a,CJ(r[4],n)];case 6:var f=r[3],i=r[2];return[6,r[1],i,f,CJ(r[4],n)];case 7:var c=r[3],v=r[2];return[7,r[1],v,c,CJ(r[4],n)];case 8:var o=r[3],A=r[2];return[8,r[1],A,o,CJ(r[4],n)];case 9:return[9,r[1],CJ(r[2],n)];case 10:return[10,CJ(r[1],n)];case 11:return[11,r[1],CJ(r[2],n)];case 12:return[12,r[1],CJ(r[2],n)];case 13:var s=r[2];return[13,r[1],s,CJ(r[3],n)];case 14:var b=r[2];return[14,r[1],b,CJ(r[3],n)];case 15:return[15,CJ(r[1],n)];case 16:return[16,CJ(r[1],n)];case 17:return[17,r[1],CJ(r[2],n)];case 18:return[18,r[1],CJ(r[2],n)];case 19:return[19,CJ(r[1],n)];case 20:var l=r[2];return[20,r[1],l,CJ(r[3],n)];case 21:return[21,r[1],CJ(r[2],n)];case 22:return[22,CJ(r[1],n)];case 23:return[23,r[1],CJ(r[2],n)];default:var B=r[2];return[24,r[1],B,CJ(r[3],n)]}}function HJ(r,n,t){return r[1]===n?(r[1]=t,1):0}function VJ(r){throw kQ([0,LL,r],1)}function LJ(r){throw kQ([0,zL,r],1)}QV(11,rz,oA),QV(10,YL,he),QV(9,[Ul,Nf,Mv],Nf),QV(8,JL,tv),QV(7,XL,Nd),QV(6,WL,Dg),QV(5,ZL,So),QV(4,SL,bE),QV(3,zL,av),QV(2,LL,Qe),QV(1,VL,mq),QV(0,HL,dv);var zJ=[Ul,"Stdlib.Exit",qH()];function SJ(r,n){return iV(r,n)?r:n}function ZJ(r,n){return IH(r,n)?r:n}function WJ(r){return 0<=r?r:0|-r}var XJ=DF,JJ=bt,YJ=_D;function rY(r,n){return r?[0,r[1],rY(r[2],n)]:n}NV(0);var nY=TV(1),tY=TV(2),eY=[0,0,[0,7,0]],aY=[0,0,[0,6,0]];function uY(r,n){return MV(r,n,0,HH(n))}function fY(r,n,t){var e=NV(EV(t,r,n));return GV(e,t),e}function iY(r){return fY(eY,0,r)}function cY(r){return fY(aY,0,r)}function vY(r,n,t,e){return 0<=t&&0<=e&&(tH(n)-e|0)>=t?yV(r,n,t,e):LJ("input")}function oY(r){function n(r,n,t){for(var e=n,a=t;;){if(!a)return r;var u=a[1],f=tH(u),i=a[2];RQ(u,0,r,e-f|0,f),e=e-f|0,a=i}}for(var t=0,e=0;;){var a=gV(r);if(0===a){if(!t)throw kQ(SL,1);var u=n(OC(e),e,t)}else{if(0>=a){var f=OC(0|-a);yV(r,f,0,0|-a),t=[0,f,t],e=e-a|0;continue}var i=OC(a-1|0);if(yV(r,i,0,a-1|0),wV(r),t){var c=(e+a|0)-1|0;u=n(OC(c),c,[0,i,t])}else u=i}return XV(u)}}function AY(r){return uY(tY,r),PV(tY,10),_V(tY)}var sY=[0,function(r){for(var n=function(){var r=0,n=kV.all();for(var t of n){var e=pV(t);e.opened&&e.out&&(r=[0,t,r])}return r}();;){if(!n)return 0;var t=n[2],e=n[1];try{_V(e),n=t}catch(r){var a=iL(r);if(a[1]!==VL)throw kQ(a,0);n=t}}}];function bY(r){return PL(sY[1],0)}function lY(n){return bY(),function(n){r.quit&&r.quit(n),r.process?.exit&&r.process.exit(n),dQ("Function 'exit' not implemented")}(n)}CV(Vj,bY);var BY=YV,jY=Zb/4|0,kY=2147483643;function pY(r){try{return[0,rL(r)]}catch(r){var n=iL(r);if(n===WL)return 0;throw kQ(n,0)}}var mY=[Ul,"Stdlib.Sys.Break",qH()];function dY(r){return 1-("number"==typeof r?1:0)}function _Y(r,n,t){var e=0<=n?1:0,a=1-(e?n<(r.length-3|0)?1:0:e);return a?LJ(t):a}var hY=[Ul,"CamlinternalLazy.Undefined",qH()],xY=AE,yY=[0,0,0];function wY(r){throw kQ(hY,1)}function gY(r){var n=r[1];r[1]=wY;try{var t=PL(n,0);return function(r,n){r[0]=an,r[1]=n}(r,t),t}catch(n){var e=iL(n);throw r[1]=function(r){throw kQ(e,0)},kQ(e,0)}}function qY(r){return 0}function IY(r,n,t){var e=PL(r,0);if(!e)return PL(n,0);var a=e[2];return[0,e[1],function(r){return IY(a,n,r)}]}function DY(r,n,t){var e=PL(n,0);if(!e)return 0;var a=e[2];return[0,PL(r,e[1]),function(n){return DY(r,a,n)}]}function EY(r,n,t){for(var e=n;;){var a=PL(e,0);if(!a)return 0;var u=a[2],f=PL(r,a[1]);if(f)break;e=u}return[0,f[1],function(n){return EY(r,u,n)}]}function NY(r,n,t){for(var e=n;;){var a=PL(e,0);if(!a)return 0;var u=a[2],f=a[1];if(PL(r,f))break;e=u}return[0,f,function(n){return NY(r,u,n)}]}function TY(r,n,t){var e=PL(n,0);if(!e)return 0;var a=e[2];return IY(PL(r,e[1]),function(n){return TY(r,a,n)})}function FY(r,n,t){var e=PL(r,n);if(!e)return 0;var a=e[1],u=a[2];return[0,a[1],function(n){return FY(r,u,n)}]}function MY(r,n){return r?r[1]:n}function PY(r){return r?r[1]:LJ("option is None")}function UY(r,n){return n?[0,PL(r,n[1])]:0}function GY(r,n){return n?PL(r,n[1]):0}function $Y(r){return r?0:1}function KY(r){return r?1:0}function OY(r){return r?[0,r[1],0]:0}function RY(r){return 0<=r&&GK>=r?r:LJ("Char.chr")}function QY(r){return 25>>0?r:r+32|0}function CY(r){return 25>>0?r:r+lT|0}function HY(r,n){return r-n|0?0:1}function VY(r){var n=0<=r?1:0,t=n?r<=55295?1:0:n;if(t)var e=t;else{var a=He<=r?1:0;e=a?r<=v?1:0:a}return e?r:LJ(wH("%X",r)+" is not an Unicode scalar value")}function LY(r){for(var n=0,t=r;;){if(!t)return n;n=n+1|0,t=t[2]}}function zY(r){return r?r[1]:VJ("hd")}function SY(r){return r?r[2]:VJ("tl")}function ZY(r,n){if(0>n)return LJ(xY);for(var t=r,e=n;;){if(!t)return VJ("nth");var a=t[2],u=t[1];if(0===e)return u;t=a,e=e-1|0}}function WY(r,n){for(var t=r,e=n;;){if(!t)return e;var a=[0,t[1],e];t=t[2],e=a}}function XY(r){return WY(r,0)}function JY(r){return r?rY(r[1],JY(r[2])):0}function YY(r,n){if(!n)return 0;var t=n[2];return[0,PL(r,n[1]),YY(r,t)]}function r0(r,n,t){if(!t)return 0;var e=t[2];return[0,UL(n,r,t[1]),r0(r+1|0,n,e)]}function n0(r,n){return r0(0,r,n)}function t0(r,n){for(var t=n;;){if(!t)return 0;var e=t[2];PL(r,t[1]),t=e}}function e0(r,n,t){for(var e=n,a=t;;){if(!a)return e;var u=a[2];e=UL(r,e,a[1]),a=u}}function a0(r,n,t){return n?UL(r,n[1],a0(r,n[2],t)):t}function u0(r,n,t){if(n){if(t){var e=t[2],a=n[2];return[0,UL(r,n[1],t[1]),u0(r,a,e)]}}else if(!t)return 0;return LJ("List.map2")}function f0(r,n,t,e){if(n){if(t){var a=t[1];return GL(r,n[1],a,f0(r,n[2],t[2],e))}}else if(!t)return e;return LJ("List.fold_right2")}function i0(r,n){for(var t=n;;){if(!t)return 1;var e=t[2],a=PL(r,t[1]);if(!a)return a;t=e}}function c0(r,n){for(var t=n;;){if(!t)return 0;var e=t[2],a=PL(r,t[1]);if(a)return a;t=e}}function v0(r,n){for(var t=n;;){if(!t)return 0;var e=0===KC(t[1],r)?1:0,a=t[2];if(e)return e;t=a}}function o0(r,n){for(var t=n;;){if(!t)throw kQ(WL,1);var e=t[1],a=t[2],u=e[2];if(0===KC(e[1],r))return u;t=a}}function A0(r,n){for(var t=n;;){if(!t)return 0;var e=t[1],a=t[2],u=e[2];if(0===KC(e[1],r))return[0,u];t=a}}function s0(r,n){for(var t=n;;){if(!t)return 0;var e=0===KC(t[1][1],r)?1:0,a=t[2];if(e)return e;t=a}}function b0(r,n){for(var t=n;;){if(!t)return 0;var e=t[2],a=PL(r,t[1]);if(a)return a;t=e}}function l0(r){return function(n){for(var t=0,e=n;;){if(!e)return XY(t);var a=e[2],u=e[1];PL(r,u)?(t=[0,u,t],e=a):e=a}}}function B0(r){return function(n){for(var t=0,e=n;;){if(!e)return XY(t);var a=e[2],u=PL(r,e[1]);u?(t=[0,u[1],t],e=a):e=a}}}function j0(r,n){for(var t=0,e=n;;){if(!e)return XY(t);var a=e[2];t=WY(PL(r,e[1]),t),e=a}}function k0(r,n){for(var t=0,e=0,a=n;;){if(!a){var u=XY(e);return[0,XY(t),u]}var f=a[2],i=PL(r,a[1]);0===i[0]?(t=[0,i[1],t],a=f):(e=[0,i[1],e],a=f)}}function p0(r){if(!r)return yY;var n=r[1],t=n[2],e=n[1],a=p0(r[2]);return[0,[0,e,a[1]],[0,t,a[2]]]}function m0(r,n){if(r){if(n){var t=n[1];return[0,[0,r[1],t],m0(r[2],n[2])]}}else if(!n)return 0;return LJ("List.combine")}function d0(r,n){function t(n,t){if(2===n){if(t){var a=t[2];if(a){var u=a[1],f=t[1],i=a[2];return[0,0>1,B=e(l,t),j=B[1],k=e(n-l|0,B[2]),p=j,m=k[1],d=0,_=k[2];;){if(p){if(m){var h=m[1],x=p[1],y=m[2],w=p[2];if(0>1,B=t(l,e),j=B[1],k=t(n-l|0,B[2]),p=j,m=k[1],d=0,_=k[2];;){if(p){if(m){var h=m[1],x=p[1],y=m[2],w=p[2];if(00)if(0===n&&(t>=r.l||2===r.t&&t>=r.c.length))0===e?(r.c=fQ,r.t=2):(r.c=HQ(t,String.fromCharCode(e)),r.t=t===r.l?0:2);else for(4!==r.t&&OQ(r),t+=n;n=n){var e=OC(t);return RQ(r,n,e,0,t),e}return LJ("String.sub / Bytes.sub")}function F0(r,n,t){return XV(T0(r,n,t))}function M0(r,n,t,e,a){if(!(0<=a&&0<=n&&(tH(r)-a|0)>=n&&0<=e&&(tH(t)-a|0)>=e))return LJ("Bytes.blit");RQ(r,n,t,e,a)}function P0(r,n,t,e,a){if(!(0<=a&&0<=n&&(HH(r)-a|0)>=n&&0<=e&&(tH(t)-a|0)>=e))return LJ("String.blit / Bytes.blit_string");XQ(r,n,t,e,a)}function U0(r){var n=r-9|0;r:{if(4>>0){if(23!==n)break r}else if(2===n)break r;return 1}return 0}function G0(r,n){var t=tH(n);if(0===t)return n;var e=OC(t),a=t-1|0;if(a>=0)for(var u=0;;){eC(e,u,PL(r,YQ(n,u)));var f=u+1|0;if(a===u)break;u=f}return e}function $0(r,n){return XV(q0(r,n))}function K0(r,n,t){return XV(T0(WQ(r),n,t))}function O0(r,n){if(!n)return"";var t=HH(r);r:{for(var e=0,a=n,u=0;;){if(!a){var f=e;break r}var i=a[1];if(!a[2])break;var c=a[2],v=(HH(i)+t|0)+e|0;e<=v?(e=v,a=c):(e=LJ("String.concat"),a=c)}f=HH(i)+e|0}for(var o=OC(f),A=u,s=n;;){if(s){var b=s[1];if(s[2]){var l=s[2];XQ(b,0,o,A,HH(b)),XQ(r,0,o,A+HH(b)|0,t),A=(A+HH(b)|0)+t|0,s=l;continue}XQ(b,0,o,A,HH(b))}return XV(o)}}function R0(r,n){return XV(G0(r,WQ(n)))}function Q0(r){var n=r-9|0;r:{if(4>>0){if(23!==n)break r}else if(2===n)break r;return 1}return 0}function C0(r){if(r===fQ)return r;if(!Q0(VH(r,0))&&!Q0(VH(r,HH(r)-1|0)))return r;for(var n=WQ(r),t=tH(n),e=[0,0];!(e[1]>=t)&&U0(YQ(n,e[1]));)e[1]++;for(var a=[0,t-1|0];;){if(!(e[1]<=a[1]&&U0(YQ(n,a[1]))))return XV(e[1]<=a[1]?T0(n,e[1],1+(a[1]-e[1]|0)|0):I0);a[1]--}}function H0(r){return function(r,n){for(var t=0;;){if(n<=t)return r;var e=VH(r,t)+lT|0;if(59>>0){if(33>>0)break}else if(2===e)break;t=t+1|0}var a=WQ(r),u=[0,0],f=tH(a)-1|0;if(f>=0)for(var i=0;;){var c=YQ(a,i);r:{n:{t:{if(32<=c){var v=c+-34|0;if(58>>0){if(93<=v)break t}else if(56>>0)break n;var o=1;break r}if(11<=c){if(13===c)break n}else if(8<=c)break n}o=4;break r}o=2}u[1]=u[1]+o|0;var A=i+1|0;if(f===i)break;i=A}if(u[1]===tH(a))var s=D0(a);else{var b=OC(u[1]);u[1]=0;var l=tH(a)-1|0;if(l<0)s=b;else for(var B=0;;){var j=YQ(a,B);r:{n:{t:{if(35<=j){if(92!==j){if(oj<=j)break n;break t}}else{if(32>j){if(14<=j)break n;switch(j){case 8:eC(b,u[1],92),u[1]++,eC(b,u[1],98);break r;case 9:eC(b,u[1],92),u[1]++,eC(b,u[1],rM);break r;case 10:eC(b,u[1],92),u[1]++,eC(b,u[1],Wr);break r;case 13:eC(b,u[1],92),u[1]++,eC(b,u[1],Yv);break r;default:break n}}if(34>j)break t}eC(b,u[1],92),u[1]++,eC(b,u[1],j);break r}eC(b,u[1],j);break r}eC(b,u[1],92),u[1]++,eC(b,u[1],48+(j/x$|0)|0),u[1]++,eC(b,u[1],48+((j/10|0)%10|0)|0),u[1]++,eC(b,u[1],48+(j%10|0)|0)}u[1]++;var k=B+1|0;if(l===B){s=b;break}B=k}}return XV(s)}(r,HH(r))}function V0(r,n,t,e){for(var a=t;;){if(n<=a)throw kQ(WL,1);if(VH(r,a)===e)return a;a=a+1|0}}function L0(r,n,t,e){for(var a=t;;){if(n<=a)return 0;if(VH(r,a)===e)return[0,a];a=a+1|0}}function z0(r,n){return L0(r,HH(r),0,n)}function S0(r,n,t){var e=HH(r);return 0<=n&&e>=n?V0(r,e,n,t):LJ("String.index_from / Bytes.index_from")}function Z0(r,n){var t=HH(r),e=0;if(t<0)return LJ("String.contains_from / Bytes.contains_from");try{V0(r,t,0,n);return 1}catch(e){var a=iL(e);if(a===WL)return 0;throw kQ(a,0)}}function W0(r){return XV(G0(CY,WQ(r)))}function X0(r){return XV(G0(QY,WQ(r)))}function J0(r,n){var t=HH(r),e=t<=HH(n)?1:0;if(!e)return e;for(var a=0;;){if(a===t)return 1;if(VH(n,a)!==VH(r,a))return 0;a=a+1|0}}function Y0(r,n){var t=[0,0],e=[0,HH(n)],a=HH(n)-1|0;if(a>=0)for(var u=a;;){if(VH(n,u)===r){var f=t[1];t[1]=[0,K0(n,u+1|0,(e[1]-u|0)-1|0),f],e[1]=u}var i=u-1|0;if(0===u)break;u=i}var c=t[1];return[0,K0(n,0,e[1]),c]}var r1=UC,n1=sD;function t1(r){var n=WQ(r);function t(r,e){if(r===tH(n))return 0;var a=r+1|0;return[0,rC(n,r),function(r){return t(a,r)}]}return function(r){return t(0)}}function e1(r){for(var n=[0,0],t=[0,q0(xv,0)],e=r;;){var a=PL(e,0);if(!a)return XV(T0(t[1],0,n[1]));var u=a[2],f=a[1];if(n[1]===tH(t[1])){var i=w0(2*tH(t[1])|0,kY);tH(t[1])===i&&VJ("Bytes.of_seq: cannot grow bytes");var c=q0(i,0);M0(t[1],0,c,0,n[1]),t[1]=c}aC(t[1],n[1],f),n[1]++,e=u}}function a1(r,n){if(0===r)return[0];if(0>r)return LJ(n1);var t=AV(r,PL(n,0)),e=r-1|0;if(e>=1)for(var a=1;;){t[a+1]=PL(n,a);var u=a+1|0;if(e===a)break;a=u}return t}function u1(r,n){var t=n.length-1;if(0===t)return[0];var e=AV(t,PL(r,n[1])),a=t-1|0;if(a>=1)for(var u=1;;){e[u+1]=PL(r,n[u+1]);var f=u+1|0;if(a===u)break;u=f}return e}function f1(r){for(var n=r.length-2|0,t=0;;){if(0>n)return t;var e=[0,r[n+1],t];n=n-1|0,t=e}}function i1(r,n){for(var t=r,e=n;;){if(!e)return t;t=t+1|0,e=e[2]}}function c1(r){if(!r)return[0];for(var n=r[2],t=r[1],e=AV(i1(0,r),t),a=1,u=n;;){if(!u)return e;var f=u[2];e[a+1]=u[1],a=a+1|0,u=f}}function v1(r){function n(t,e){if(t>=r.length-1)return 0;var a=t+1|0;return[0,r[t+1],function(r){return n(a,r)}]}return function(r){return n(0)}}function o1(r){for(var n=r,t=0;;){var e=PL(n,0);if(!e)break;n=e[2],t=[0,e[1],t]}if(!t)return[0];for(var a=t[2],u=t[1],f=i1(0,t),i=AV(f,u),c=f-2|0,v=a;;){if(!v)return i;var o=v[2];i[c+1]=v[1],c=c-1|0,v=o}}function A1(r){return IH(r,0)?r:0|-r}var s1=XM,b1=DF;function l1(r){return-1^r}function B1(r){return wH(TM,r)}var j1=PC,k1=lC(0,0,0);function p1(r){return IH(r,k1)?r:OH(r)}function m1(r){return nV(r,az)}function d1(r){return RH(TM,r)}function _1(r,n,t){var e=function(r,n,t){r.lex_default||(r.lex_base=vV(r[1]),r.lex_backtrk=vV(r[2]),r.lex_check=vV(r[5]),r.lex_trans=vV(r[4]),r.lex_default=vV(r[3]));var e,a=n,u=t[2];for(a>=0?(t[7]=t[5]=t[6],t[8]=-1):a=-a-1;;){var f=r.lex_base[a];if(f<0)return-f-1;var i=r.lex_backtrk[a];if(i>=0&&(t[7]=t[6],t[8]=i),t[6]>=t[3]){if(0===t[9])return-a-1;e=xv}else e=YQ(u,t[6]),t[6]++;if((a=r.lex_check[f+e]===a?r.lex_trans[f+e]:r.lex_default[a])<0){if(t[6]=t[7],-1!==t[8])return t[8];mC("lexing: empty token")}else e===xv&&(t[9]=0)}}(r,n,t),a=0<=e?1:0;if(a?t[12]!==oz?1:0:a){t[11]=t[12];var u=t[12];t[12]=[0,u[1],u[2],u[3],t[4]+t[6]|0]}return e}function h1(r,n){var t=r?r[1]:1,e=t?Az:oz,a=t?Az:oz,u=OC(BB);return[0,function(r){var t=vY(n,u,0,tH(u)),e=0=0)for(var o=0;;){var A=vC(c,o)[o+1];0<=A&&(vC(c,o)[o+1]=A-i|0);var s=o+1|0;if(v===o)break;o=s}}return M0(u,0,r[2],r[3],e),r[3]=r[3]+e|0,0},OC(ts),0,0,0,0,0,0,0,[0],a,e]}function x1(r,n){var t=r?r[1]:1,e=t?Az:oz,a=t?Az:oz;return[0,function(r){return r[9]=1,0},N0(n),HH(n),0,0,0,0,0,1,[0],a,e]}function y1(r,n,t){return F0(r[2],n,t-n|0)}function w1(r){var n=r[12];n!==oz&&(r[12]=[0,n[1],n[2]+1|0,n[4],n[4]])}var g1=[Ul,"Stdlib.Parsing.Parse_error",qH()];function q1(r,n){function t(n,t){if(2===n){if(t){var a=t[2];if(a){var u=a[1],f=t[1],i=a[2],c=UL(r,f,u);return[0,0===c?[0,f,0]:0<=c?[0,u,[0,f,0]]:[0,f,[0,u,0]],i]}}}else if(3===n&&t){var v=t[2];if(v){var o=v[2];if(o){var A=o[1],s=v[1],b=t[1],l=o[2],B=UL(r,b,s);if(0===B)var j=UL(r,s,A),k=0===j?[0,s,0]:0<=j?[0,A,[0,s,0]]:[0,s,[0,A,0]];else if(0<=B){var p=UL(r,b,A);if(0===p)k=[0,s,[0,b,0]];else if(0<=p){var m=UL(r,s,A);k=0===m?[0,s,[0,b,0]]:0<=m?[0,A,[0,s,[0,b,0]]]:[0,s,[0,A,[0,b,0]]]}else k=[0,s,[0,b,[0,A,0]]]}else{var d=UL(r,s,A);if(0===d)k=[0,b,[0,s,0]];else if(0<=d){var _=UL(r,b,A);k=0===_?[0,b,[0,s,0]]:0<=_?[0,A,[0,b,[0,s,0]]]:[0,b,[0,A,[0,s,0]]]}else k=[0,b,[0,s,[0,A,0]]]}return[0,k,l]}}}for(var h=n>>1,x=e(h,t),y=x[1],w=e(n-h|0,x[2]),g=y,q=w[1],I=0,D=w[2];;){if(g){if(q){var E=q[2],N=q[1],T=g[2],F=g[1],M=UL(r,F,N);if(0===M){g=T,q=E,I=[0,F,I];continue}if(0>1,x=t(h,e),y=x[1],w=t(n-h|0,x[2]),g=y,q=w[1],I=0,D=w[2];;){if(g){if(q){var E=q[2],N=q[1],T=g[2],F=g[1],M=UL(r,F,N);if(0===M){g=T,q=E,I=[0,F,I];continue}if(0<=M){q=E,I=[0,N,I];continue}g=T,I=[0,F,I];continue}var P=WY(g,I)}else P=WY(q,I);return[0,P,D]}}var a=LY(n);return 2<=a?t(a,n)[1]:n}var I1=SK,D1=SK,E1=SK,N1=SK,T1=[0,0,0,0],F1=[0,"set.ml",570,18],M1=jn,P1=jn,U1=jn,G1=jn,$1=[0,0,0,0],K1=[0,"map.ml",400,10];function O1(r){function n(r){return r?r[4]:0}function t(r,n,t){var e=r?r[4]:0,a=t?t[4]:0;return[0,r,n,t,a<=e?e+1|0:a+1|0]}function e(r,e,a){var u=r?r[4]:0,f=a?a[4]:0;if((f+2|0)=f)return[0,r,e,a,f<=u?u+1|0:f+1|0];if(!a)return LJ(N1);var b=a[3],l=a[2],B=a[1];if(n(B)<=n(b))return t(t(r,e,B),l,b);if(!B)return LJ(E1);var j=B[2],k=B[1],p=t(B[3],l,b);return t(t(r,e,k),j,p)}function a(n,t){if(!t)return[0,0,n,0,1];var u=t[3],f=t[2],i=t[1],c=UL(r[1],n,f);if(0===c)return t;if(0<=c){var v=a(n,u);return u===v?t:e(i,f,v)}var o=a(n,i);return i===o?t:e(o,f,u)}function u(r){return[0,0,r,0,1]}function f(r,n){if(!n)return u(r);var t=n[3],a=n[2];return e(f(r,n[1]),a,t)}function i(r,n){if(!n)return u(r);var t=n[2];return e(n[1],t,i(r,n[3]))}function c(r,n,a){if(!r)return f(n,a);if(!a)return i(n,r);var u=a[4],v=r[4],o=a[3],A=a[2],s=a[1],b=r[3],l=r[2],B=r[1];return(u+2|0)=r>>>0)switch(r){case 0:return[0,0,n];case 1:if(n)return[0,[0,0,n[1],0,1],n[2]];break;case 2:if(n){var e=n[2];if(e)return[0,[0,[0,0,n[1],0,1],e[1],0,2],e[2]]}break;default:if(n){var a=n[2];if(a){var u=a[2];if(u)return[0,[0,[0,0,n[1],0,1],a[1],[0,0,u[1],0,1],2],u[2]]}}}var f=r/2|0,i=l(f,n),c=i[2],v=i[1];if(!c)throw kQ([0,YL,F1],1);var o=c[1],A=l((r-f|0)-1|0,c[2]),s=A[2];return[0,t(v,o,A[1]),s]};return l(LY(b),b)[1]}return a(A[1],a(s,a(o,a(c,u(f)))))},,function(r){var n=l(r,0);return function(r){return j(n)}},,,function(r){return function(r,n){for(var t=r,e=n;;){var u=PL(t,0);if(!u)return e;t=u[2],e=a(u[1],e)}}(r,0)}]}function R1(r){function n(r){return r?r[5]:0}function t(r,t,e,a){var u=n(r),f=n(a);return[0,r,t,e,a,f<=u?u+1|0:f+1|0]}function e(r,n){return[0,0,r,n,0,1]}function a(r,e,a,u){var f=r?r[5]:0,i=u?u[5]:0;if((i+2|0)=i)return[0,r,e,a,u,i<=f?f+1|0:i+1|0];if(!u)return LJ(G1);var j=u[4],k=u[3],p=u[2],m=u[1];if(n(m)<=n(j))return t(t(r,e,a,m),p,k,j);if(!m)return LJ(U1);var d=m[3],_=m[2],h=m[1],x=t(m[4],p,k,j);return t(t(r,e,a,h),_,d,x)}function u(n,t,e){if(!e)return[0,0,n,t,0,1];var f=e[4],i=e[3],c=e[2],v=e[1],o=e[5],A=UL(r[1],n,c);if(0===A)return i===t?e:[0,v,n,t,f,o];if(0<=A){var s=u(n,t,f);return f===s?e:a(v,c,i,s)}var b=u(n,t,v);return v===b?e:a(b,c,i,f)}function f(r){for(var n=r;;){if(!n)throw kQ(WL,1);var t=n[1];if(!t)return[0,n[2],n[3]];n=t}}function i(r){if(!r)return LJ("Map.remove_min_elt");var n=r[1];if(!n)return r[4];var t=r[4],e=r[3],u=r[2];return a(i(n),u,e,t)}function c(r,n){if(!r)return n;if(!n)return r;var t=f(n),e=t[2];return a(r,t[1],e,i(n))}function v(r,n,t){if(!t)return e(r,n);var u=t[4],f=t[3],i=t[2];return a(v(r,n,t[1]),i,f,u)}function o(r,n,t){if(!t)return e(r,n);var u=t[3],f=t[2];return a(t[1],f,u,o(r,n,t[4]))}function A(r,n,e,u){if(!r)return v(n,e,u);if(!u)return o(n,e,r);var f=u[5],i=r[5],c=u[4],s=u[3],b=u[2],l=u[1],B=r[4],j=r[3],k=r[2],p=r[1];return(f+2|0)=(t+n|0));)e[1]=2*e[1]|0;kYr[3])throw kQ([0,YL,Z1],1);if(!((t+n|0)<=r[3]))throw kQ([0,YL,S1],1)}function w2(r,n){var t=r[2];return r[3]<=t&&y2(r,1),eC(r[1],t,n),r[2]=t+1|0,0}function g2(r,n,t,e){var a=t<0?1:0;if(a)var u=a;else u=(e<0?1:0)||((HH(n)-e|0)a){if(32!==a){if(43>a)break r;switch(a+-43|0){case 5:if(e>=(t+2|0))break n;if(1>=e)break n;if(HP!==VV(n,1)&&88!==VV(n,1))break n;var u=q0(t+2|0,48);return aC(u,1,VV(n,1)),P0(n,2,u,4+(t-e|0)|0,e-2|0),XV(u);case 0:case 2:break;case 1:case 3:case 4:break r;default:break n}}if(e>=(t+1|0))break r;var f=q0(t+1|0,48);return aC(f,0,a),P0(n,1,f,2+(t-e|0)|0,e-1|0),XV(f)}if(71<=a){if(5>>0)break r}else if(65>a)break r}if(er)return n;var t=[0,0],e=HH(n)-1|0;if(e>=0)for(var a=0;;){9>=VH(n,a)+yv>>>0&&t[1]++;var u=a+1|0;if(e===a)break;a=u}var f=t[1],i=OC(HH(n)+((f-1|0)/3|0)|0),c=[0,0];function v(r){aC(i,c[1],r),c[1]++}var o=[0,1+((f-1|0)%3|0)|0],A=HH(n)-1|0;if(A>=0)for(var s=0;;){var b=VH(n,s);9>>0||(0===o[1]&&(v(95),o[1]=3),o[1]--),v(b);var l=s+1|0;if(A===s)break;s=l}return XV(i)}function _3(r,n){switch(r){case 1:var t="%+d";break;case 2:t="% d";break;case 4:t="%+i";break;case 5:t="% i";break;case 6:t="%x";break;case 7:t="%#x";break;case 8:t="%X";break;case 9:t="%#X";break;case 10:t="%o";break;case 11:t="%#o";break;case 0:case 13:t=sz;break;case 3:case 14:t="%i";break;default:t="%u"}return d3(r,wH(t,n))}function h3(r,n){switch(r){case 1:var t="%+ld";break;case 2:t="% ld";break;case 4:t="%+li";break;case 5:t="% li";break;case 6:t=Z2;break;case 7:t="%#lx";break;case 8:t="%lX";break;case 9:t="%#lX";break;case 10:t="%lo";break;case 11:t="%#lo";break;case 0:case 13:t="%ld";break;case 3:case 14:t="%li";break;default:t="%lu"}return d3(r,wH(t,n))}function x3(r,n){switch(r){case 1:var t="%+nd";break;case 2:t="% nd";break;case 4:t="%+ni";break;case 5:t="% ni";break;case 6:t="%nx";break;case 7:t="%#nx";break;case 8:t="%nX";break;case 9:t="%#nX";break;case 10:t="%no";break;case 11:t="%#no";break;case 0:case 13:t="%nd";break;case 3:case 14:t="%ni";break;default:t="%nu"}return d3(r,wH(t,n))}function y3(r,n){switch(r){case 1:var t="%+Ld";break;case 2:t="% Ld";break;case 4:t="%+Li";break;case 5:t="% Li";break;case 6:t=S2;break;case 7:t="%#Lx";break;case 8:t="%LX";break;case 9:t="%#LX";break;case 10:t="%Lo";break;case 11:t="%#Lo";break;case 0:case 13:t="%Ld";break;case 3:case 14:t="%Li";break;default:t="%Lu"}return d3(r,RH(t,n))}function w3(r,n,t){function e(e){switch(r[1]){case 0:var a=45;break;case 1:a=43;break;default:a=32}return function(r,n,t){if(!Number.isFinite(r))return Number.isNaN(r)?SC(p_):SC(r>0?ow:"-infinity");var e=0===r&&1/r===Number.NEGATIVE_INFINITY?1:r>=0?0:1;e&&(r=-r);var a=0;if(0===r);else if(r<1)for(;r<1&&a>-ko;)r*=2,a--;else for(;r>=2;)r/=2,a++;var u=a<0?fQ:cg,f=fQ;if(e)f=rF;else switch(t){case 43:f=cg;break;case 32:f=zy}if(n>=0&&n<13){var i=Math.pow(2,4*n);r=Math.round(r*i)/i}var c=r.toString(16);if(n>=0){var v=c.indexOf(Qu);if(v<0)c+=Qu+HQ(n,mK);else{var o=v+1+n;c.length>>0){if(55!==c)break n}else if(21>=c-1>>>0)break n;var v=1;break r}f=f+1|0;continue}v=0}return a(v?u:u+Qu)}case 6:return e();case 7:return W0(e());case 8:return a(e());default:return yH(m3(r,n),t)}}function g3(r,n,t,e){r:{n:{t:{e:{a:{u:{f:{i:{c:{v:{o:{var a=n,u=t,f=e;A:for(;;){if("number"==typeof f)return PL(a,u);switch(f[0]){case 0:break r;case 1:break n;case 2:break t;case 3:return N3(a,u,f[2],f[1],p3);case 4:return T3(a,u,f[4],f[2],f[3],_3,f[1]);case 5:return T3(a,u,f[4],f[2],f[3],h3,f[1]);case 6:return T3(a,u,f[4],f[2],f[3],x3,f[1]);case 7:return T3(a,u,f[4],f[2],f[3],y3,f[1]);case 8:break e;case 9:return N3(a,u,f[2],f[1],C2);case 10:u=[7,u],f=f[1];break;case 11:u=[2,u,f[1]],f=f[2];break;case 12:u=[3,u,f[1]],f=f[2];break;case 13:break a;case 14:break u;case 15:break f;case 16:break i;case 17:u=[0,u,f[1]],f=f[2];break;case 18:var i=f[1];if(0===i[0]){let r=u,n=a,t=f[2];a=function(e){return q3(n,[1,r,[0,e]],t)},u=0,f=i[1][1]}else{let r=u,n=a,t=f[2];a=function(e){return q3(n,[1,r,[1,e]],t)},u=0,f=i[1][1]}break;case 19:throw kQ([0,YL,Y2],1);case 20:break c;case 21:break v;case 22:break o;case 23:break A;default:var c=f[3],v=f[1],o=PL(f[2],0);return r<50?F3(r+1|0,a,u,c,v,o):aL(F3,[0,a,u,c,v,o])}}var A=f[2],s=f[1];if("number"==typeof s){if(2===s)throw kQ([0,YL,r3],1);return r<50?E3(r+1|0,a,u,A):aL(E3,[0,a,u,A])}if(9!==s[0])return r<50?E3(r+1|0,a,u,A):aL(E3,[0,a,u,A]);var b=s[2];return r<50?I3(r+1|0,a,u,b,A):aL(I3,[0,a,u,b,A])}var l=f[1];return function(r){return q3(a,[5,u,r],l)}}var B=f[2];return function(r){return q3(a,[4,u,wH("%u",r)],B)}}var j=f[3],k=[8,u,"Printf: bad conversion %["];return function(r){return q3(a,k,j)}}var p=f[1];return function(r){return q3(a,[6,u,r],p)}}var m=f[1];return function(r,n){return q3(a,[6,u,function(t){return UL(r,t,n)}],m)}}var d=f[3],_=f[2];return function(r){var n=b3(r[1],RJ(K2(_)));if("number"==typeof n[2])return q3(a,u,CJ(n[1],d));throw kQ(Q2,1)}}var h=f[3],x=f[2],y=T2(16);$2(y,x);var w=U2(y);return function(r){return q3(a,[4,u,w],h)}}var g=f[4],q=f[3],I=f[2],D=f[1];if("number"==typeof I){if("number"==typeof q)return q?function(r,n){return q3(a,[4,u,w3(D,r,n)],g)}:function(r){return q3(a,[4,u,w3(D,N2(D),r)],g)};var E=q[1];return function(r){return q3(a,[4,u,w3(D,E,r)],g)}}if(0===I[0]){var N=I[2],T=I[1];if("number"==typeof q)return q?function(r,n){return q3(a,[4,u,j3(T,N,w3(D,r,n))],g)}:function(r){return q3(a,[4,u,j3(T,N,w3(D,N2(D),r))],g)};var F=q[1];return function(r){return q3(a,[4,u,j3(T,N,w3(D,F,r))],g)}}var M=I[1];if("number"==typeof q)return q?function(r,n,t){return q3(a,[4,u,j3(M,r,w3(D,n,t))],g)}:function(r,n){return q3(a,[4,u,j3(M,r,w3(D,N2(D),n))],g)};var P=q[1];return function(r,n){return q3(a,[4,u,j3(M,r,w3(D,P,n))],g)}}return N3(a,u,f[2],f[1],function(r){return r})}var U=f[1];return function(r){n:{t:{if(40<=r){if(92===r){var n=H2;break n}if(oj<=r)break t}else{if(32>r){if(14<=r)break t;switch(r){case 8:n="\\b";break n;case 9:n=V2;break n;case 10:n=L2;break n;case 13:n=z2;break n;default:break t}}if(39<=r){n="\\'";break n}}var t=OC(1);eC(t,0,r);n=XV(t);break n}var e=OC(4);eC(e,0,92),eC(e,1,48+(r/x$|0)|0),eC(e,2,48+((r/10|0)%10|0)|0),eC(e,3,48+(r%10|0)|0);n=XV(e)}var f=HH(n),i=q0(f+2|0,39);return XQ(n,0,i,1,f),q3(a,[4,u,XV(i)],U)}}var G=f[1];return function(r){return q3(a,[5,u,r],G)}}function q3(r,n,t){return eL(g3(0,r,n,t))}function I3(r,n,t,e,a){if("number"==typeof e)return r<50?E3(r+1|0,n,t,a):aL(E3,[0,n,t,a]);switch(e[0]){case 0:var u=e[1];return function(r){return D3(n,t,u,a)};case 1:var f=e[1];return function(r){return D3(n,t,f,a)};case 2:var i=e[1];return function(r){return D3(n,t,i,a)};case 3:var c=e[1];return function(r){return D3(n,t,c,a)};case 4:var v=e[1];return function(r){return D3(n,t,v,a)};case 5:var o=e[1];return function(r){return D3(n,t,o,a)};case 6:var A=e[1];return function(r){return D3(n,t,A,a)};case 7:var s=e[1];return function(r){return D3(n,t,s,a)};case 8:var b=e[2];return function(r){return D3(n,t,b,a)};case 9:var l=e[3],B=e[2],j=R2(K2(e[1]),B);return function(r){return D3(n,t,QJ(j,l),a)};case 10:var k=e[1];return function(r,e){return D3(n,t,k,a)};case 11:var p=e[1];return function(r){return D3(n,t,p,a)};case 12:var m=e[1];return function(r){return D3(n,t,m,a)};case 13:throw kQ([0,YL,n3],1);default:throw kQ([0,YL,t3],1)}}function D3(r,n,t,e){return eL(I3(0,r,n,t,e))}function E3(r,n,t,e){var a=[8,t,"Printf: bad conversion %_"];return r<50?g3(r+1|0,n,a,e):aL(g3,[0,n,a,e])}function N3(r,n,t,e,a){if("number"==typeof e)return function(e){return q3(r,[4,n,PL(a,e)],t)};if(0===e[0]){var u=e[2],f=e[1];return function(e){return q3(r,[4,n,j3(f,u,PL(a,e))],t)}}var i=e[1];return function(e,u){return q3(r,[4,n,j3(i,e,PL(a,u))],t)}}function T3(r,n,t,e,a,u,f){if("number"==typeof e){if("number"==typeof a)return a?function(e,a){return q3(r,[4,n,k3(e,UL(u,f,a))],t)}:function(e){return q3(r,[4,n,UL(u,f,e)],t)};var i=a[1];return function(e){return q3(r,[4,n,k3(i,UL(u,f,e))],t)}}if(0===e[0]){var c=e[2],v=e[1];if("number"==typeof a)return a?function(e,a){return q3(r,[4,n,j3(v,c,k3(e,UL(u,f,a)))],t)}:function(e){return q3(r,[4,n,j3(v,c,UL(u,f,e))],t)};var o=a[1];return function(e){return q3(r,[4,n,j3(v,c,k3(o,UL(u,f,e)))],t)}}var A=e[1];if("number"==typeof a)return a?function(e,a,i){return q3(r,[4,n,j3(A,e,k3(a,UL(u,f,i)))],t)}:function(e,a){return q3(r,[4,n,j3(A,e,UL(u,f,a))],t)};var s=a[1];return function(e,a){return q3(r,[4,n,j3(A,e,k3(s,UL(u,f,a)))],t)}}function F3(r,n,t,e,a,u){if(a){var f=a[1];return function(r){return function(r,n,t,e,a){return eL(F3(0,r,n,t,e,a))}(n,t,e,f,PL(u,r))}}var i=[4,t,u];return r<50?g3(r+1|0,n,i,e):aL(g3,[0,n,i,e])}function M3(r,n){for(var t=n;;){if("number"==typeof t)return;switch(t[0]){case 0:var e=t[1],a=G2(t[2]);return M3(r,e),uY(r,a);case 1:var u=t[2],f=t[1];if(0===u[0]){var i=u[1];M3(r,f),uY(r,e3),t=i}else{var c=u[1];M3(r,f),uY(r,a3),t=c}break;case 6:var v=t[2];return M3(r,t[1]),PL(v,r);case 7:return M3(r,t[1]),void _V(r);case 8:var o=t[2];return M3(r,t[1]),LJ(o);case 2:case 4:var A=t[2];return M3(r,t[1]),uY(r,A);default:var s=t[2];return M3(r,t[1]),void PV(r,s)}}}function P3(r,n){for(var t=n;;){if("number"==typeof t)return;switch(t[0]){case 0:var e=t[1],a=G2(t[2]);return P3(r,e),q2(r,a);case 1:var u=t[2],f=t[1];if(0===u[0]){var i=u[1];P3(r,f),q2(r,u3),t=i}else{var c=u[1];P3(r,f),q2(r,f3),t=c}break;case 6:var v=t[2];return P3(r,t[1]),PL(v,r);case 7:t=t[1];break;case 8:var o=t[2];return P3(r,t[1]),LJ(o);case 2:case 4:var A=t[2];return P3(r,t[1]),q2(r,A);default:var s=t[2];return P3(r,t[1]),w2(r,s)}}}function U3(r,n){for(var t=n;;){if("number"==typeof t)return;switch(t[0]){case 0:var e=t[1],a=G2(t[2]);return U3(r,e),q2(r,a);case 1:var u=t[2],f=t[1];if(0===u[0]){var i=u[1];U3(r,f),q2(r,i3),t=i}else{var c=u[1];U3(r,f),q2(r,c3),t=c}break;case 6:var v=t[2];return U3(r,t[1]),q2(r,PL(v,0));case 7:t=t[1];break;case 8:var o=t[2];return U3(r,t[1]),LJ(o);case 2:case 4:var A=t[2];return U3(r,t[1]),q2(r,A);default:var s=t[2];return U3(r,t[1]),w2(r,s)}}}function G3(r){if(r===fQ)return v3;var n=HH(r);function t(n){return PL(function(r){var n=r[1],t=d2(xv);return q3(function(r){return U3(t,r),VJ(_2(t))},0,n)}(o3),r)}function e(t){for(var e=t;;){if(e===n)return e;var a=VV(r,e);if(9!==a&&32!==a)return e;e=e+1|0}}for(var a=e(0),u=a;u!==n&&!(25>>0);)u=u+1|0;for(var f=K0(r,a,u-a|0),i=e(u),c=i;c!==n;){var v=VV(r,c);if(48<=v){if(58<=v)break}else if(45!==v)break;c=c+1|0}if(i===c)var o=0;else try{o=tV(K0(r,i,c-i|0))}catch(n){var A=iL(n);if(A[1]!==LL)throw kQ(A,0);o=t()}e(c)!==n&&t();r:if(f===fQ||f===rv)s=4;else{if("h"===f){var s=0;break r}if("hov"===f){var s=3;break r}if("hv"===f){s=2;break r}if(f!==mv){s=t();break r}s=1}return[0,o,s]}function $3(r,n){return q3(function(n){return M3(r,n),0},0,n[1])}function K3(r,n){return q3(function(n){return P3(r,n),0},0,n[1])}function O3(r,n){return q3(function(n){var t=d2(64);return U3(t,n),PL(r,_2(t))},0,n[1])}function R3(r){return O3(function(r){return r},r)}var Q3=[Ul,"Stdlib.Arg.Bad",qH()],C3=[Ul,"Stdlib.Arg.Help",qH()],H3=[Ul,"Stdlib.Arg.Stop",qH()],V3=[0,lv];function L3(r,n){for(var t=n;;){if(!t)throw kQ(WL,1);var e=t[1],a=e[2];if(dH(e[1],r))return a;t=t[2]}}function z3(r,n,t,e){if(!e)return"";for(var a=e[2],u=r+e[1];;){if(!a)return u+t;var f=u+n+a[1];a=a[2],u=f}}function S3(r){throw kQ([0,H3,V3],1)}function Z3(r){try{return[0,tV(r)]}catch(r){var n=iL(r);if(n[1]===LL)return 0;throw kQ(n,0)}}function W3(r){try{return[0,_H(r)]}catch(r){var n=iL(r);if(n[1]===LL)return 0;throw kQ(n,0)}}function X3(r,n,t){var e=cY(t),a=d2(wE),u=[0,0];function f(n){var t=_2(a);if(r)var e=HH(t),f=0>>0)var d=s6(r,2),_=A6(r,1),h=UL(R3(e6),_,d);else switch(p){case 2:var x=A6(r,1);h=PL(R3(a6),x);break;case 0:h="";break;default:h=""}return m+h}function l6(r,n){function t(n){return n?0===r?"Raised at":"Re-raised at":0===r?"Raised by primitive operation at":"Called from"}if(0===n[0]){var e=n[5],a=n[4],u=n[3],f=n[6]?" (inlined)":"",i=n[2],c=n[7],v=t(n[1]);return[0,RL(R3(u6),v,c,i,f,u,a,e)]}if(n[1])return 0;var o=t(0);return[0,PL(R3(f6),o)]}function B6(r,n){var t=[0,[0]];if(!t)return $3(r,c6);var e=t[1],a=e.length-2|0;if(a>=0)for(var u=0;;){var f=l6(u,vC(e,u)[u+1]);if(f){var i=f[1];PL($3(r,i6),i)}var c=u+1|0;if(a===u)break;u=c}}function j6(r){var n=[0,[0]];if(!n)return o6;var t=n[1],e=d2(ts),a=t.length-2|0;if(a>=0)for(var u=0;;){var f=l6(u,vC(t,u)[u+1]);if(f){var i=f[1];PL(K3(e,v6),i)}var c=u+1|0;if(a===u)break;u=c}return _2(e)}function k6(r){for(;;){var n=J3[1],t=1-HJ(J3,n,[0,r,n]);if(!t)return t}}OV([0,fQ,"(Cannot print locations:\n bytecode executable program file not found)","(Cannot print locations:\n bytecode executable program file appears to be corrupt)","(Cannot print locations:\n bytecode executable program file has wrong magic number)","(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)"]);var p6=[0,[11,Bx,[2,0,[12,10,0]]],xa],m6=[0,[11,Bx,[2,0,[12,10,0]]],xa],d6=[0,[11,"Fatal error in uncaught exception handler: exception ",[2,0,[12,10,0]]],"Fatal error in uncaught exception handler: exception %s\n"];CV(HR,function(r,n){try{try{try{bY()}catch(t){}try{var t=b6(r);PL($3(tY,p6),t),B6(tY);var e=_V(tY)}catch(t){var a=iL(t),u=b6(r);PL($3(tY,m6),u),B6(tY);var f=b6(a);PL($3(tY,d6),f),B6(tY);e=_V(tY)}var i=e}catch(t){var c=iL(t);if(c!==HL)throw kQ(c,0);i=AY("Fatal error: out of memory in uncaught exception handler")}return i}catch(t){return 0}});var _6=[Ul,"Stdlib.Fun.Finally_raised",qH()];k6(function(r){return r[1]===_6?[0,"Fun.Finally_raised: "+b6(r[2])]:0});var h6=ax;function x6(r,n){function t(n){try{return void PL(r,0)}catch(r){var t=iL(r),e=[0,_6,t];throw kQ(e,0)}}try{var e=PL(n,0)}catch(r){var a=iL(r);throw t(),kQ(a,0)}return t(),e}function y6(n){for(var t=function(){if(r.crypto){var n;if(r.crypto.getRandomValues)return[0,(n=r.crypto.getRandomValues(new Int32Array(4)))[0],n[1],n[2],n[3]];if(r.crypto.randomBytes)return[0,(n=new Int32Array(r.crypto.randomBytes(16).buffer))[0],n[1],n[2],n[3]]}return[0,(new Date).getTime()^4294967295*Math.random()]}(),e=[0,AV(55,0),0],a=0==t.length-1?[0,0]:t,u=a.length-1,f=0;;){vC(e[1],f)[f+1]=f;var i=f+1|0;if(54===f)break;f=i}var c=[0,h6],v=54+g0(55,u)|0;if(v>=0)for(var o=0;;){var A=o%55|0,s=$V(o,u),b=vC(a,s)[s+1],l=c[1]+fQ+b;c[1]=BV(l,0,HH(l));var B=c[1],j=VV(B,3)<<24,k=VV(B,2)<<16,p=VV(B,1)<<8,m=((VV(B,0)+p|0)+k|0)+j|0,d=(vC(e[1],A)[A+1]^m)&Mb;vC(e[1],A)[A+1]=d;var _=o+1|0;if(v===o)break;o=_}return e[2]=0,e}function w6(r){r[2]=(r[2]+1|0)%55|0;var n=r[2],t=vC(r[1],n)[n+1],e=(r[2]+24|0)%55|0,a=(vC(r[1],e)[e+1]+(t^t>>>25&31)|0)&Mb,u=r[2];return vC(r[1],u)[u+1]=a,a}function g6(r){return(r.length-1<4?1:0)||(r[4]<0?1:0)}function q6(r){r[4]=0|-r[4]}var I6=[0,1,[0,3,[0,4,[0,7,0]]]],D6=IP,E6=IP,N6=AE,T6=Jk,F6=Jk,M6=rb,P6=rb,U6=zy,G6=[0,[2,0,[11,": unknown option '",[2,0,[11,"'.\n",0]]]],"%s: unknown option '%s'.\n"],$6=[0,[2,0,[11,": wrong argument '",[2,0,[11,"'; option '",[2,0,[11,"' expects ",[2,0,[11,kE,0]]]]]]]],"%s: wrong argument '%s'; option '%s' expects %s.\n"],K6=[0,[2,0,[11,": option '",[2,0,[11,"' needs an argument.\n",0]]]],"%s: option '%s' needs an argument.\n"],O6=[0,[2,0,[11,Ln,[2,0,[11,kE,0]]]],"%s: %s.\n"],R6=[0,lv],Q6=[0,sU],C6=[0,[2,0,[12,10,0]],dT],H6=lv,V6=ut,L6=lv,z6=sU,S6=ut,Z6=sU,W6=[0,[11,LM,[2,0,[12,32,[2,0,[12,10,0]]]]]," %s %s\n"],X6=Ss,J6=By,Y6=[0,[11,LM,[2,0,[12,32,[2,0,[2,0,[12,10,0]]]]]]," %s %s%s\n"],r4=[3,0,3],n4=Qu,t4=ku,e4=[1,"max_indent < 2"],a4=[1,"margin <= max_indent"],u4=[0,0],f4=[0,fQ],i4=[0,EU,72,5],c4=[0,EU,81,2],v4=[0,0],o4=pv,A4=pv,s4=[0,[11,"Optint.to_unsigned_int: ",[5,6,0,0,[11," can not fit into a 31 bits unsigned integer",0]]],"Optint.to_unsigned_int: %lx can not fit into a 31 bits unsigned integer"],b4=[0,[11,"Optint.to_int: ",[5,6,0,0,[11," can not fit into a 31 bits integer",0]]],"Optint.to_int: %lx can not fit into a 31 bits integer"],l4=[0,[11,"Conversion from int64 to int63 failed: ",[7,0,0,0,[11," is out of range",0]]],"Conversion from int64 to int63 failed: %Ld is out of range"],B4=lC($K,$K,Ft),j4=lC(0,0,0),k4=lC(1,0,0),p4=FI,m4=ji,d4=Mm,_4=bg,h4=[0,[2,0,0],JF],x4=[0,[11,"Fatal error (exit ",[4,0,0,0,[12,41,0]]],"Fatal error (exit %d)"],y4=[0,"plain",[0,Zu,[0,Gr,0]]],w4=fh,g4=mB,q4=km,I4=zk,D4=ym,E4=YA,N4=Vg,T4=Zg,F4=kr,M4=Dh,P4=it,U4=zi,G4=pc,$4=Ib,K4=Z$,O4=Zl,R4=Ps,Q4=xd,C4=Kk,H4=Lm,V4=vo,L4=u$,z4=Cr,S4=eh,Z4=Dd,W4=qj,X4=M$,J4=NB,Y4=MO,r5=Uv,n5=Bf,t5=ct,e5=lp,a5=lA,u5=wb,f5=WO,i5=ZA,c5=Qw,v5=kP,o5=aA,A5=oG,s5=ml,b5=At,l5=$y,B5=mw,j5=Se,k5=hy,p5=Lq,m5=RT,d5=fe,_5=bi,h5=Vr,x5=CM,y5=HK,w5=_T,g5=Gm,q5=oa,I5=ER,D5=Dq,E5=Gk,N5=Ia,T5=fI,F5=ET,M5=sA,P5=gv,U5=ve,G5=iy,$5=[0,[11,"EUNKNOWNERR ",[4,0,0,0,0]],"EUNKNOWNERR %d"],K5=[0,[11,"Unix.Unix_error(Unix.",[2,0,[11,Zp,[3,0,[11,Zp,[3,0,[12,41,0]]]]]]],"Unix.Unix_error(Unix.%s, %S, %S)"],O5=nq,R5=nq,Q5=[0,[8,[0,0,6],0,0,0],"%h"],C5=rF,H5=at,V5=at,L5=lC(1,0,0),z5=lC($K,$K,Ft),S5=lC(0,0,65520),Z5=[0,[8,[0,0,3],0,1,0],Yc],W5=lC(0,0,16),X5=lC($K,$K,15),J5=[0,[8,[0,0,3],0,1,0],Yc],Y5=[0,[7,6,0,0,0],$E],r7=[0,"exec/fxx.ml",67,10],n7=[0,[8,[0,0,3],0,[0,17],0],Eb],t7=[0,[5,6,0,0,0],ZU],e7=lC(0,0,32760),a7=lC(0,0,Fu),u7=lC(0,0,32752),f7=[0,[7,6,0,0,0],$E],i7=at,c7=at,v7=at,o7=[0,QO,Cp,4],A7=lC(c,0,0),s7=[0,QO,298,4],b7=[0,QO,294,4],l7=[0,[5,6,0,0,0],ZU],B7=[0,[5,6,0,0,0],ZU],j7=[0,[7,6,0,0,0],$E],k7=[0,[5,6,0,0,0],ZU],p7=lC($K,GK,0),m7=wc,d7=zy,_7=Jq,h7=W_,x7=ku,y7=W_,w7=Jq,g7=[0,[15,[17,2,0]],"%a@?"],q7=xc,I7=bs,D7=[0,1],E7=[0,"Sexplib.Conv.Of_sexp_error"],N7=[0,Jr,410,15],T7=[0,0],F7=he,M7=[0,Jr,Yu,15],P7=[0,"Exit"],U7=[0,Jr,iw,15],G7=[0,bE],$7=[0,Jr,Xt,15],K7=[0,Qe],O7=[0,Jr,lE,15],R7=[0,Dg],Q7=[0,Jr,eo,15],C7=[0,av],H7=[0,Jr,fc,15],V7=Nd,L7=[0,Jr,358,15],z7=[0,"Not_found_s"],S7=[0,Jr,KK,15],Z7=[0,mq],W7=[0,Jr,os,15],X7=[0,"Arg.Help"],J7=[0,Jr,370,15],Y7=[0,"Arg.Bad"],r8=[0,Jr,If,15],n8=[0,"Lazy.Undefined"],t8=[0,Jr,378,15],e8=[0,"Parsing.Parse_error"],a8=[0,Jr,382,15],u8=[0,"Queue.Empty"],f8=[0,Jr,ip,15],i8=[0,"Scanf.Scan_failure"],c8=[0,Jr,KD,15],v8=[0,"Stack.Empty"],o8=[0,Jr,Zm,15],A8=[0,"Sys.Break"],s8=[0,Jr,oe,15],b8=[0,[2,0,[12,32,[2,0,[12,58,[4,0,0,0,[12,58,[4,0,0,0,0]]]]]]],"%s %s:%d:%d"],l8=[0,2],B8=[1,0],j8=[0,[11,uF,[2,0,[11," has been located with a name of different case",0]]],"file %s has been located with a name of different case"],k8=[0,[11,uF,[2,0,[11," has been located with a different name",0]]],"file %s has been located with a different name"],p8=Jf,m8=pv,d8=pv,_8=Qu,h8=pv,x8=pv,y8=io,w8=bn,g8=[0,0,0,0],q8=xc,I8=C_,D8=kc,E8=[0,[11,"\\u{",[4,6,[0,2,2],0,[12,kI,0]]],SI],N8=C_,T8=xc,F8=$h,M8=[0,0,0],P8=[0,0,0],U8=[0,lx,Wr,13],G8=[0,lx,Yo,11],$8=[0,[5,12,0,0,0],"%lu"],K8=[0,[18,[1,[0,[11,Uc,0],Uc]],[15,[17,0,0]]],"@[%a@]"],O8=[0,[17,3,[18,[1,[0,[11,Uc,0],Uc]],[11,LM,[15,[17,0,0]]]]],"@\n@[ %a@]"],R8=[0,[18,[1,[0,0,fQ]],[15,[17,0,0]]],"@[%a@]"],Q8=[0,[8,[0,0,3],0,[0,16],0],ud],C8=[0,[8,[0,0,3],0,[0,17],0],Eb],H8=[0,[8,[0,0,3],0,[0,16],0],ud],V8=[0,[8,[0,0,3],0,[0,17],0],Eb],L8=bt,z8=_D,S8=C_,Z8=xc,W8=$h,X8=kc,J8=[0,[11,"src=",[3,0,[11," start=",[4,3,0,0,[11," len=",[4,3,0,0,[12,10,[10,0]]]]]]]],"src=%S start=%i len=%i\n%!"],Y8=be,r9=mK,n9=[0,Zt,674,60],t9=eq,e9=jF,a9=[0,Zt,665,55],u9=MI,f9=[0,"end_pos"],i9=[0,"start_pos"],c9=[0,Sh],v9=[0,"col"],o9=[0,"line"],A9=[0,TT,46,2],s9=[0,TT,57,2],b9=[0,"parse_error.ml.Parse_error"],l9=[0,"src/parse_error.ml",40,11],B9=[0,MM],j9=[0,"position"],k9=[0,"of_sexp_error.ml.Of_sexp_error"],p9=[0,"src/of_sexp_error.ml",65,11],m9=[0,"location"],d9=[0,"sub_sexp"],_9=[0,"user_exn"],h9=[0,OF,874,13],x9=[0,"buf_pos"],y9=[0,"global_offset"],w9=[0,"text_char"],g9=[0,"text_line"],q9=[0,sy],I9=[0,"Sexplib.Sexp.Parse_error"],D9=[0,OF,DE,11],E9=[0,OF,W,6],N9=[0,OF,qq,13],T9=[0,"containing_sexp"],F9=[0,"invalid_sexp"],M9=[0,[0,"Of_sexp_error"],0],P9=[0,[2,0,[11,Ln,[2,0,0]]],c_],U9=[0,[11,Dr,0],Dr],G9=[0,pU,45,4],$9=[0,pU,39,4],K9=[0,pU,31,4],O9=[0,"lib/core/range.ml",67,2],R9=[0,[11,"range start ",[15,[11," is greater than range stop ",[15,0]]]],"range start %a is greater than range stop %a"],Q9=[0,[11,"range beyond end of source; stop = ",[15,[11," > ",[4,0,0,0,[11," = eos",0]]]]],"range beyond end of source; stop = %a > %d = eos"],C9=si,H9=oI,V9=[0,[11,pB,0],pB],L9=[0,[15,[11," > ",[15,[11,": line index exceeds the last line index",0]]]],"%a > %a: line index exceeds the last line index"],z9=[0,[11,uE,0],uE],S9=[0,lC(0,0,0)],Z9=[0,0,0],W9=[0,[11,"could not open file ",[2,0,0]],"could not open file %s"],X9=[0,[11,"could not read the file ",[2,0,0]],"could not read the file %s"],J9=[0,"src/uutf.ml",HP,9],Y9=[0,[11,"invalid bounds (index ",[4,0,0,0,[11,", length ",[4,0,0,0,[12,41,0]]]]],"invalid bounds (index %d, length %d)"],rrr=[0,[17,4,0],vx],nrr=[0,[12,32,0],zy],trr=[0,[0,lf,vG],0],err=[0,[0,lf,vG],0],arr=[0,[0,lf,vG],0],urr=[0,[0,lf,vG],0],frr=[0,Pu,0],irr=[0,"┌─",Bp,"·",Sq,dm,rF,dm,dm,yb,yb,"╭","─","╰","─",Bp,Bp],crr=[0,E$,Cu,14],vrr=[0,E$,cD,15],orr=[0,E$,tt,4],Arr=[0,1],srr=[0,0],brr=[0,E$,217,8],lrr=[0,E$,RR,8],Brr=[0,E$,Wn,12],jrr=[0,'File "lib/ansi_renderer/snippet.ml", line 149, characters 24-31'],krr=[0,E$,49,4],prr=[0,E$,19,18],mrr=[0,Ie],drr=[0,0,0],_rr=[0,[18,[1,[0,[11,"",0],""]],0],"@["],hrr=[0,[17,0,0],"@]"],xrr=[0,[18,[1,[0,[11,vb,0],vb]],[15,[11,Ln,[15,[17,0,0]]]]],"@[%a: %a@]"],yrr=[0,[2,[1,1],[12,32,[15,[12,32,0]]]],"%*s %a "],wrr=[0,[18,[1,[0,[11,vb,0],vb]],[15,[15,[11,Ln,[15,[17,0,0]]]]]],"@[%a%a: %a@]"],grr=[0,[12,93,0],"]"],qrr=[0,[12,91,0],"["],Irr=[0,[17,4,0],vx],Drr=[0,[18,[1,[0,[11,vb,0],vb]],[2,[1,1],[12,32,[15,[12,32,[15,[17,0,0]]]]]]],bT],Err=[0,[18,[1,[0,[11,vb,0],vb]],[2,0,[12,58,[15,[12,58,[15,[17,0,0]]]]]]],"@[%s:%a:%a@]"],Nrr=[0,0,0],Trr=[0,[18,[1,[0,[11,vb,0],vb]],[2,[1,1],[12,32,[15,[12,32,[15,[17,0,0]]]]]]],bT],Frr=[0,[17,4,[15,0]],"@.%a"],Mrr=[0,UK,iT,8],Prr=[0,UK,cO,8],Urr=[0,[2,0,0],JF],Grr=[0,[15,0],aK],$rr=[0,UK,qm,6],Krr=[0,[12,32,[15,0]]," %a"],Orr=[0,UK,305,14],Rrr=[0,[15,[15,[12,32,0]]],"%a%a "],Qrr=[0,aB,Qj],Crr=[0,[2,[1,1],[12,32,[15,[12,32,[15,0]]]]],"%*s %a %a"],Hrr=[0,[18,[1,[0,[11,vb,0],vb]],[2,0,[2,0,[17,0,0]]]],OD],Vrr=[0,[18,[1,[0,[11,vb,0],vb]],[2,[1,1],[2,0,[17,0,0]]]],"@[%*s%s@]"],Lrr=[0,[15,0],aK],zrr=[0,[18,[1,[0,[11,vb,0],vb]],[2,0,[2,0,[17,0,0]]]],OD],Srr=[0,[15,0],aK],Zrr=[0,fQ,0],Wrr=[0,[18,[1,[0,[11,vb,0],vb]],[2,[1,1],[12,32,[15,[12,32,[15,[17,0,0]]]]]]],bT],Xrr=[0,[18,[1,[0,[11,vb,0],vb]],[15,[12,32,[15,[12,32,[15,[15,[17,0,0]]]]]]]],"@[%a %a %a%a@]"],Jrr=[0,[4,0,[1,1],0,0],"%*d"],Yrr=[0,'File "lib/ansi_renderer/snippet_renderer.ml", line 129, characters 39-46'],rnr=[0,UK,S_,4],nnr=[0,'File "lib/ansi_renderer/snippet_renderer.ml", line 116, characters 26-33'],tnr=ku,enr=[0,[11,qM,[4,6,0,0,0]],"0x%x"],anr=ku,unr=[0,[0,fQ]],fnr=zy,inr=[0,fQ],cnr=zy,vnr=ku,onr=[0,"lang_utils/trivia.ml",9,26],Anr=oV([[0,Os,0,"Case mismatch between import and filename"],[0,fA,0,"Comparing abstract type to itself at supertype"],[0,al,0,"Comparing incompatible type at common supertype"],[0,Yb,0,"Array elements have inconsistent types"],[0,wK,0,"If branches have inconsistent types"],[0,Ee,0,"Redundant ignore"],[0,kA,0,"Switch with inconsistent branch types"],[0,dw,0,"Function with system function name but wrong visibility"],[0,qk,0,"Actor class has non-async return type"],[0,Wi,0,"An imported library should be a module or named actor class"],[0,wu,0,"Pattern does not cover value"],[0,Fr,0,"Pattern is never matched"],[0,lK,[0,"# M0154\n\nYou are using a field (typically a module field) that has a deprecation annotation\nattached to its definition, e.g.\n\n```motoko\nmodule SomeModule {\n\n /// @deprecated The foo function is deprecated and will be removed next release\n public func foo() {}\n\n}\n```\n\nThe warning should include an explanation provided by the author of that code.\n"],"Deprecation annotation"],[0,Ho,[0,"# M0155\n\nThis warning indicates that the type of a subtraction operation had to be deduced from its operands and was inferred to be `Nat`.\nThat implies that it traps when the result is negative, which may be unintentional.\n\nOffending code examples:\n\n```motoko\nfunc f(n : Nat) {\n if (n < 10) { return };\n let m = 2 * (n - 1);\n};\n\nfunc g(n : Nat) {\n if (n - 1 < 10) { return };\n};\n```\n\nIf the subtraction was indeed intended to have a `Nat` result, you can let the compiler know by annotating the intended type explicitly:\n\n```motoko\nfunc f(n : Nat) {\n let m : Nat = 2 * (n - 1);\n};\n```\n\nIf the intended type was `Int`, however, you can either annotate it as such:\n\n```\nfunc f(n : Nat) {\n let m : Int = 2 * (n - 1);\n};\n```\n\nOr you can insert a sign operator `+`, which also forces the expression to be of type `Int`:\n\n```\nfunc f(n : Nat) {\n let m = 2 * (+n - 1);\n};\n```\n\nThis latter possibility is particularly convenient in the case of comparisons, because it is always okay to perform them at type `Int`:\n\n```\nfunc g(n : Nat) {\n if (+n - 1 < 10) { return };\n};\n```\n"],"Inferred type Nat for subtraction"],[0,ja,0,"Type intersection results in abstract type"],[0,N$,0,"Type union results in bottom type"],[0,na,0,"Types inconsistent for alternative pattern variables, losing information"],[0,em,0,"Code requires Wasm features ... to execute"],[0,G_,[0,'# M0194\n\nThis warning means that you defined an identifier without\nreferencing it later, a good indicator of dead code.\n\nDubious code example:\n\n```motoko\nlet nickname = "klutz";\n// code that never uses `nickname`\n```\n\nIf you encounter this warning, you can either delete the definition (if the code has no other side-effect),\n\n```motoko\n// code that never uses `nickname`\n```\n\nreplace it by a wildcard pattern:\n\n```motoko\nlet _ = "klutz";\n// code that never uses `nickname`\n```\n\nor just prefix the identifier with an underscore:\n\n```motoko\nlet _nickname = "klutz";\n// code that never uses `nickname`\n```\n'],"Unused identifier warning"],[0,Af,[0,"# M0195\n\nThis warning means that you called a function that demands elevated (`system`) capabilities,\nwithout manifestly passing the capability.\n\n"],"warn that `system` capability is implicitly supplied"],[0,G$,[0,'# M0198\n\nThis warning means that you specified a field identifier in an object pattern without referencing this identifier later, a good indicator of dead code.\n\nDubious code example:\n\n```motoko\nimport Debug "mo:core/Debug";\n\nlet person = { firstName = "Anna"; secondName = "Smith" };\n\nlet { firstName; secondName } = person;\nDebug.print(firstName);\n\n// secondName is not used\n```\n\nIf you encounter this warning and the identifier is indeed not needed, \nyou can either remove the field identifier from the object pattern,\n\n```motoko\nimport Debug "mo:core/Debug";\n\nlet person = { firstName = "Anna"; secondName = "Smith" };\n\nlet { firstName } = person;\nDebug.print(firstName);\n```\n\nbind the field to a wildcard pattern:\n\n```motoko\nimport Debug "mo:core/Debug";\n\nlet person = { firstName = "Anna"; secondName = "Smith" };\n\nlet { firstName; secondName = _ } = person;\nDebug.print(firstName);\n\n// secondName is not needed\n```\n\nor bind the field to an identifier with an underscore prefix:\n\n```motoko\nimport Debug "mo:core/Debug";\n\nlet person = { firstName = "Anna"; secondName = "Smith" };\n\nlet { firstName; secondName = _secondName } = person;\nDebug.print(firstName);\n\n// secondName is not needed\n```\n'],"Unused field pattern warning"],[0,mx,[0,"# M0199\n\nThis error or warning means that your code is either directly or indirectly using the now deprecated library `ExperimentalStableMemory.mo` (or its supporting compiler primitives).\n\nThe library works as advertised but is a potential hazard as the resource it provides access to is shared between all clients of the library.\nThis means that a library may unintentionally or maliciously read or modify data maintained by your application, or by another library imported by your application.\n\nIf possible, please upgrade your code to use library `Region.mo` instead.\nThis improved library offers a similar abstraction, but instead of a single memory that is implicitly accessible to all callers, it provides multiple memories.\nThese memories, called regions, are isolated from each other and inaccessible unless a region is explicitly shared between libraries.\n\nThe `moc` compiler flag `--experimental-stable-memory ` flag controls the production of this error or warning message, allowing your code to compile as before:\n* n < 0: error on use of stable memory primitives.\n* n = 0: warn on use of stable memory primitives (the default).\n* n > 1: warning-less use of stable memory primitives (for legacy applications).\n\nI.e. if your application cannot easily be upgraded to use `Regions.mo` and still requires access to `ExperimentalStableMemory.mo`, you can opt-in to legacy support for `ExperimentalStableMemory.mo` using the `moc` compiler flag `--experimental-stable-memory 1`.\n"],"Deprecate experimental stable memory"],[0,My,0,"Migration consumes, but does not produce, a declared field"],[0,ue,0,"Migration consumes, but does not produce, an un-declared field"],[0,cG,0,"Parenthetical note must be applied to a message send"],[0,uf,0,"Parenthetical note has no attributes"],[0,zh,[0,"# M0212\n\nThis warning means that you are affixing a parenthetical note to a message send (i.e. either\na canister method call of a self-send with `async`, or `actor`) that contains an attribute not recognised\nby this version of the Motoko compiler.\n\nCurrently, only these attributes are recognized in parenthetical notes:\n\nFor _message_ sends and `async` expressions\n- `cycles : Nat`\n- `timeout : Nat32`\n\nFor `actor` and `actor class` declarations:\n- `migration : {} -> {}`\n"],"Unrecognised attribute in parenthetical note"],[0,IT,0,"Field is lost in record used at supertype"],[0,Yq,0,"Redundant `persistent`"],[0,Bb,0,"Redundant `stable`"],[0,$,0,"Ignored `async*`"],[0,FI,0,"Redundant type instantiation"],[0,ji,0,"Deprecate for caffeine"],[0,Mm,0,"Suggest contextual dot notation"],[0,bg,0,"Suggest redundant explicit arguments"],[0,Rm,0,"Avoid binding a unit `()` result"],[0,sN,0,"Unused identifier in shared pattern warning"],[0,vu,0,"Unused field in shared pattern warning"],[0,tK,0,"Implicit oneway declaration"],[0,Rw,0,"Unreachable else in let-else"],[0,tl,0,"Mutable variable is never reassigned"],[0,Kb,0,"Initial actor requires field"]]),snr=[0,[11,"moc: invalid warning code: ",[2,0,[11,". Run 'moc --warn-help' to see available warning codes.",0]]],"moc: invalid warning code: %s. Run 'moc --warn-help' to see available warning codes."],bnr=[0,1],lnr=[0,iM,kv,2],Bnr=[0,iM,Oo,4],jnr=[0,iM,X,2],knr=[0,iM,98,2],pnr=[0,[2,0,[10,0]],gj],mnr=[0,[2,0,[10,0]],gj],dnr=[0,[2,0,[12,10,[10,0]]],_F],_nr=sw,hnr=MM,xnr=[0,xF,"MachineApplicable"],ynr=OA,wnr=[0,0],gnr=lq,qnr=si,Inr=oI,Dnr=rQ,Enr=[0,[11,"help: remove `",[2,0,[12,96,0]]],"help: remove `%s`"],Nnr=[0,[11,"help: insert `",[2,0,[12,96,0]]],"help: insert `%s`"],Tnr=[0,[11,"help: replace `",[2,0,[11,"` with `",[2,0,[12,96,0]]]]],"help: replace `%s` with `%s`"],Fnr=[0,[2,0,0],JF],Mnr=[0,[11,hM,[2,0,0]],"note: %s"],Pnr=[0,[2,0,0],JF],Unr=[0,[15,[17,4,0]],"%a@."],Gnr=[0,[11," [",[2,0,[12,93,0]]]," [%s]"],$nr=si,Knr=[0,[2,0,[11," error",0]],"%s error"],Onr=rQ,Rnr=ku,Qnr=ku,Cnr=[0,[2,0,[11,Ln,[2,0,[2,0,[11,Zp,[2,0,[2,0,[2,0,[12,10,0]]]]]]]]],"%s: %s%s, %s%s%s\n"],Hnr=_i,Vnr=_i,Lnr=_i,znr=_i,Snr=[0,[11,"Candid method name '",[2,0,[11,"' is not a valid Motoko identifier",0]]],"Candid method name '%s' is not a valid Motoko identifier"],Znr=ap,Wnr=[0,[12,95,[2,0,[12,95,0]]],"_%s_"],Xnr=_i,Jnr=[0,"BlobT"],Ynr=[0,"PrincipalT"],rtr=[0,"PreT"],ntr=Vn,ttr=MD,etr=xw,atr=$F,utr=gD,ftr=Fd,itr=[0,"NoActor"],ctr=be,vtr=KR,otr=bp,Atr=[0,V,oj,14],str=b,btr=qe,ltr=Ej,Btr=Ss,jtr=[0,V,Yn,18],ktr=be,ptr=Ss,mtr=[0,14],dtr=nK,_tr=nK,htr=nK,xtr=CO,ytr=W_,wtr=Jq,gtr=nK,qtr=OR,Itr=OR,Dtr=be,Etr=be,Ntr=be,Ttr=kK,Ftr=nK,Mtr=Ss,Ptr=kK,Utr=nK,Gtr=Ss,$tr=kK,Ktr=nK,Otr=TP,Rtr=[0,V,275,11],Qtr=pl,Ctr=Sq,Htr=bs,Vtr=bs,Ltr=bs,ztr=zf,Str=xR,Ztr=NO,Wtr=Z,Xtr=Ra,Jtr=UT,Ytr=MU,rer=lr,ner=pE,ter=Zf,eer=ln,aer=Yd,uer=xD,fer=ev,ier=yF,cer=Mh,ver=hB,oer=[0,se,is,12],Aer=[0,[11,kn,0],kn],ser=[0,[11,ri,0],ri],ber=[0,[11,mI,0],mI],ler=[0,[11,gA,[2,0,[11," hash collision with field ",[2,0,0]]]],"field name %s hash collision with field %s"],Ber=[0,[2,0,[11," is a non-function type\n ",[2,0,0]]],"%s is a non-function type\n %s"],jer=[0,[11,h,[2,0,[11," in service",0]]],"duplicate binding for %s in service"],ker=[0,[11,h,[2,0,[11," in type definitions",0]]],"duplicate binding for %s in type definitions"],per=[0,se,yd,14],mer=[0,[2,0,[11," is a non-service type\n ",[2,0,0]]],"%s is a non-service type\n %s"],der=[0,[2,0,[11," has a cyclic type definition",0]],"%s has a cyclic type definition"],_er=[0,[11,"unbound type identifier ",[2,0,0]],"unbound type identifier %s"],her=[0,0],xer=[0,0],yer=[0,0],wer=pl,ger=[0,[11,"Internal failure -- please contact the parser generator's developers.\n",[10,0]],"Internal failure -- please contact the parser generator's developers.\n%!"],qer=[0,"idllib/parser.ml",2461,4],Ier=[0,14],Der=zI,Eer=[0,14],Ner=[0,14],Ter=zI,Fer=zI,Mer=zI,Per=zI,Uer=zI,Ger=zI,$er=zI,Ker=[0,"idllib/parser.mly",12,2],Oer=oV([[0,zf,0],[0,xR,1],[0,NO,2],[0,Z,3],[0,Ra,4],[0,UT,5],[0,MU,6],[0,lr,7],[0,pE,8],[0,Zf,9],[0,ln,10],[0,Yd,11],[0,xD,12],[0,ev,13],[0,yF,14],[0,Mh,15],[0,hB,16]]),Rer=C$,Qer=tF,Cer=_A,Her=_,Ver=m,Ler=Yg,zer=m,Ser=[0,10,0],Zer=[0,13,0],Wer=[0,9,0],Xer=pd,Jer=[0,92,0],Yer=[0,39,0],rar=[0,34,0],nar=[0,[11,uF,[2,0,[11,_o,0]]],kw],tar=ap,ear=[0,[11,"conflict type definition for ",[2,0,0]],"conflict type definition for %s"],aar=ap,uar=[0,[11,'cannot open "',[2,0,[12,34,0]]],'cannot open "%s"'],far=lq,iar=DM,car=DM,oar=[0,0,[0,UR]],Aar=[0,[2,0,[2,0,[4,3,0,0,0]]],"%s%s%i"],sar=[0,ex,FA,16],bar=[0,1],lar=[0,0],Bar=[0,1],jar=[0,2],kar=[0,xv],par=[0,ni],mar=[0,2],dar=[0,ex,us,19],_ar=dj,har=[0,ex,1429,4],xar=[0,ex,1466,18],yar=[0,ex,1498,11],war=[0,ex,1513,15],gar=[0,ex,1524,11],qar=[0,ex,1538,15],Iar=[0,ex,1616,2],Dar=[0,ex,1653,23],Ear=[1,0,2],Nar=[0,ex,1693,31],Tar=[0,[18,[1,[0,[11,n$,0],n$]],[15,[17,0,[17,3,0]]]],"@[%a@]@\n"],Far=[0,ex,2635,4],Mar=[0,0],Par=[0,ex,2071,13],Uar=[0,[18,[1,[0,[11,wG,0],wG]],[2,0,[12,UU,[17,[0,Gv,0,0],[15,[17,[0,tb,0,-2],[12,kI,[17,0,0]]]]]]]],"@[%s{@;<0 0>%a@;<0 -2>}@]"],Gar=[0,[18,[1,[0,[11,wG,0],wG]],[12,UU,[17,[0,Gv,0,0],[15,[17,[0,tb,0,-2],[12,kI,[17,0,0]]]]]]],Tq],$ar=[0,[18,[1,[0,[11,wG,0],wG]],[12,UU,[17,[0,Gv,0,0],[15,[17,[0,tb,0,-2],[12,kI,[17,0,0]]]]]]],Tq],Kar=[0,[18,[1,[0,[11,xm,0],xm]],[2,0,[11,I_,[15,[17,0,0]]]]],"@[<1>%s : %a@]"],Oar=Fa,Rar=Rv,Qar=[0,[11,"??? ",[2,0,[12,32,[4,3,0,0,0]]]],"??? %s %i"],Car=[0,[18,[1,[0,0,fQ]],[2,0,[12,60,[18,[1,[0,[11,xm,0],xm]],[15,[17,0,[12,62,[17,0,0]]]]]]]],"@[%s<@[<1>%a@]>@]"],Har=[0,[18,[1,[0,[11,xm,0],xm]],[11,oc,[15,[12,93,[17,0,0]]]]],"@[<1>[var %a]@]"],Var=[0,[18,[1,[0,[11,xm,0],xm]],[12,91,[15,[12,93,[17,0,0]]]]],"@[<1>[%a]@]"],Lar=CO,zar=[0,[18,[1,[0,[11,xm,0],xm]],[12,40,[15,[2,0,[12,41,[17,0,0]]]]]],ox],Sar=[0,[18,[1,[0,[11,xm,0],xm]],[12,40,[2,0,[11,I_,[15,[12,41,[17,0,0]]]]]]],"@[<1>(%s : %a)@]"],Zar=[0,[18,[1,[0,[11,xm,0],xm]],[12,40,[15,[12,41,[17,0,0]]]]],jp],War=[0,[18,[1,[0,[11,xm,0],xm]],[12,63,[15,[17,0,0]]]],zx],Xar=[0,[18,[1,[0,[11,xm,0],xm]],[11,c$,[15,[17,0,0]]]],eO],Jar=[0,[18,[1,[0,[11,bx,0],bx]],[11,ia,[2,0,[17,[0,ub,1,0],[15,[17,0,0]]]]]],Gp],Yar=[0,[18,[1,[0,[11,bx,0],bx]],[11,ia,[2,0,[12,60,[15,[12,62,[17,[0,ub,1,0],[15,[17,0,0]]]]]]]]],"@[<2>async%s<%a>@ %a@]"],rur=[0,[18,[1,[0,[11,bx,0],bx]],[11,ia,[2,0,[17,[0,ub,1,0],[15,[17,0,0]]]]]],Gp],nur=[0,[18,[1,[0,[11,xm,0],xm]],[12,40,[15,[12,41,[17,0,0]]]]],jp],tur=lO,eur=[0,[18,[1,[0,[11,bx,0],bx]],[2,0,[15,[15,[11," ->",[17,[0,ub,1,0],[15,[17,0,0]]]]]]]],"@[<2>%s%a%a ->@ %a@]"],aur=[0,[18,[1,[0,[11,bx,0],bx]],[11,ia,[2,0,[17,[0,ub,1,0],[15,[17,0,0]]]]]],Gp],uur=[0,[18,[1,[0,[11,bx,0],bx]],[11,ia,[17,[0,ub,1,0],[15,[17,0,0]]]]],$v],fur=[0,[18,[1,[0,[11,bx,0],bx]],[11,"replies",[17,[0,ub,1,0],[15,[17,0,0]]]]],"@[<2>replies@ %a@]"],iur=[0,[18,[1,[0,[11,xm,0],xm]],[11,uG,[17,[0,ub,1,0],[15,[17,0,0]]]]],"@[<1>var@ %a@]"],cur=[0,[18,[1,[0,[11,xm,0],xm]],[11,dt,[2,0,[15,[12,32,[2,0,[17,[0,ub,1,0],[15,[17,0,0]]]]]]]]],"@[<1>type %s%a %s@ %a@]"],vur=[0,[18,[1,[0,[11,bx,0],bx]],[11,wi,[2,0,[11,Xq,[17,[0,ub,1,0],[15,[17,0,0]]]]]]],"@[<2>var %s :@ %a@]"],our=[0,[18,[1,[0,[11,bx,0],bx]],[2,0,[11,Xq,[17,[0,ub,1,0],[15,[17,0,0]]]]]],I$],Aur=[0,[18,[1,[0,[11,bx,0],bx]],[11,dt,[2,0,[15,[12,32,[2,0,[17,[0,ub,1,0],[15,[17,0,0]]]]]]]]],"@[<2>type %s%a %s@ %a@]"],sur=[0,[18,[1,[0,[11,bx,0],bx]],[11,"stable var ",[2,0,[11,Xq,[17,[0,ub,1,0],[15,[17,0,0]]]]]]],"@[<2>stable var %s :@ %a@]"],bur=[0,[18,[1,[0,[11,bx,0],bx]],[11,"stable ",[2,0,[11,Xq,[17,[0,ub,1,0],[15,[17,0,0]]]]]]],"@[<2>stable %s :@ %a@]"],lur=Qk,Bur=nx,jur=[0,[18,[1,[0,[11,bx,0],bx]],[2,0,[11," var ",[2,0,[11,Xq,[17,[0,ub,1,0],[15,[17,0,0]]]]]]]],"@[<2>%s var %s :@ %a@]"],kur=[0,[18,[1,[0,[11,bx,0],bx]],[2,0,[12,32,[2,0,[11,Xq,[17,[0,ub,1,0],[15,[17,0,0]]]]]]]],"@[<2>%s %s :@ %a@]"],pur=[0,[12,35,[2,0,0]],Rg],mur=[0,[18,[1,[0,[11,bx,0],bx]],[12,35,[2,0,[11,Xq,[17,[0,ub,1,0],[15,[17,0,0]]]]]]],"@[<2>#%s :@ %a@]"],dur=[0,[2,0,[11,NA,[15,0]]],"%s <: %a"],_ur=[0,[18,[1,[0,[11,xm,0],xm]],[12,60,[15,[12,62,[17,0,0]]]]],"@[<1><%a>@]"],hur=Sq,xur=Dx,yur=[0,[18,[1,[0,[11,bx,0],bx]],[2,0,[11,Xq,[17,[0,ub,1,0],[15,[17,0,0]]]]]],I$],wur=[0,[18,[1,[0,[11,Uc,0],Uc]],[2,0,[12,UU,[17,[0,Gv,0,0],[15,[17,[0,tb,0,-2],[12,kI,[17,0,0]]]]]]]],"@[%s{@;<0 0>%a@;<0 -2>}@]"],gur=[0,[18,[1,[0,[11,Uc,0],Uc]],[2,0,[11,"({",[17,[0,Gv,0,0],[15,[17,[0,tb,0,-2],[11,"}, {",[17,[0,Gv,0,0],[15,[17,gz,[11,"})",[17,0,0]]]]]]]]]]]],"@[%s({@;<0 0>%a@;<0 -2>}, {@;<0 0>%a@;<0 -2>})@]"],qur=[0,[18,[1,[0,[11,Uc,0],Uc]],[12,UU,[17,[0,Gv,0,0],[15,[17,[0,tb,0,-2],[12,kI,[17,[0,"@;<0-2>",0,-2],[2,0,[11," {",[17,Iz,qz]]]]]]]]]],"@[{@;<0 0>%a@;<0 -2>}@;<0-2>%s {@;<0 0>%a@;<0 -2>}@]"],Iur=[0,[18,[1,[0,[11,n$,0],n$]],[15,[15,[15,[12,59,[17,0,0]]]]]],"@[%a%a%a;@]"],Dur=[0,[15,[11,TE,[15,0]]],"%a = %a"],Eur=II,Nur=ia,Tur=GA,Fur=Aq,Mur=mU,Pur=Go,Uur=yI,Gur=Qk,$ur=[0,[11,da,[15,[11,Iy,[15,[2,0,0]]]]],Pg],Kur=Qk,Our=[0,[11,da,[15,[11,Iy,[15,[2,0,0]]]]],Pg],Rur=[0,[11,"type variable ",[15,[11,"\n was promoted to its bound ",[15,[11,"\n and ",[2,0,0]]]]]],"type variable %a\n was promoted to its bound %a\n and %s"],Qur=Sy,Cur=[0,[2,0,[11,"case `#",[2,0,[11,fs,[2,0,[11,dt,[15,[2,0,0]]]]]]]],"%scase `#%s` is missing from %stype %a%s"],Hur=bf,Vur=Yr,Lur=Sy,zur=[0,[2,0,[2,0,[11," `",[2,0,[11,fs,[2,0,[11,dt,[15,[2,0,0]]]]]]]]],"%s%s `%s` is missing from %stype %a%s"],Sur=Qk,Zur=[0,[11,"there are fewer ",[2,0,[11,ov,[2,0,0]]]],"there are fewer %s than expected%s"],Wur=Qk,Xur=[0,[11,"there are more ",[2,0,[11,ov,[2,0,0]]]],"there are more %s than expected%s"],Jur=Qk,Yur=[0,[11,"promoting ",[15,[11,"\n to `Any` loses data",[2,0,0]]]],"promoting %a\n to `Any` loses data%s"],rfr=Qk,nfr=[0,[11,da,[15,[11,Iy,[15,[2,0,0]]]]],Pg],tfr=Qk,efr=[0,[11,"of incompatible object sorts:\n ",[2,0,[11," does not match ",[2,0,[2,0,0]]]]],"of incompatible object sorts:\n %s does not match %s%s"],afr=Qk,ufr=[0,[11,"of incompatible function modifiers: ",[2,0,[11,XE,[2,0,[2,0,0]]]]],"of incompatible function modifiers: %s\n does not match %s%s"],ffr=Qk,ifr=[0,[11,"of incompatible function controls: ",[2,0,[11,XE,[2,0,[2,0,0]]]]],"of incompatible function controls: %s\n does not match %s%s"],cfr=Qk,vfr=[0,[11,"of incompatible function types: ",[15,[11,XE,[15,[2,0,0]]]]],"of incompatible function types: %a\n does not match %a%s"],ofr=Qk,Afr=[0,[11,"of incompatible async sorts: ",[2,0,[11,XE,[2,0,[2,0,0]]]]],"of incompatible async sorts: %s\n does not match %s%s"],sfr=Qk,bfr=[0,[11,"of incompatible async scopes: ",[15,[11,XE,[15,[2,0,0]]]]],"of incompatible async scopes: %a\n does not match %a%s"],lfr=[0,[2,0,[11," (used by ",[2,0,[12,41,0]]]],"%s (used by %s)"],Bfr=[0,[2,0,[12,32,[2,0,[12,32,[2,0,0]]]]],"%s %s %s"],jfr=pl,kfr=[0,dj,Sy],pfr=[0,"arguments",Sy],mfr=[0,"results",Sy],dfr=Qk,_fr=[0,[12,96,[2,0,[12,96,0]]],O$],hfr=Qk,xfr=[0,[11,"`(",[2,0,[11," : _)`",0]]],"`(%s : _)`"],yfr=Sy,wfr=[0,[12,96,[2,0,[12,96,0]]],O$],gfr=Qk,qfr=[0,[12,96,[2,0,[12,96,0]]],O$],Ifr=[0,[2,0,0],JF],Dfr=[0,[2,0,[2,0,[4,0,0,0,0]]],"%s%s%d"],Efr=[0,[12,59,[17,[0,ub,1,0],0]],";@ "],Nfr=[0,[12,44,[17,[0,ub,1,0],0]],",@ "],Tfr=[0,[11,jE,[17,[0,ub,1,0],0]],"...@ "],Ffr=LE,Mfr=aG,Pfr=fv,Ufr=UF,Gfr=AA,$fr=lM,Kfr=Xu,Ofr=MA,Rfr=Nb,Qfr=nF,Cfr=Oq,Hfr=wT,Vfr=BP,Lfr=Wc,zfr=f$,Sfr=CP,Zfr=Ai,Wfr=wc,Xfr=lg,Jfr=J_,Yfr=[0,ex,990,21],rir=[0,ex,973,23],nir=[0,ex,936,23],tir=[0,ex,861,23],eir="lookup_typ_deprecation",air="lookup_typ_field",uir=[0,0,1],fir=[0,0,0],iir=[0,"X",1,0],cir=Og,vir=i$,oir=zm,Air=_M,sir=J$,bir=$x,lir=Mu,Bir=[0,ex,598,2],jir=[1,0,2],kir=Ts,pir=[2,14],mir=Li,dir=oE,_ir=vi,hir=rj,xir=te,yir=Ou,wir=Hl,gir=HI,qir=i,Iir=bk,Dir=ba,Eir=LD,Nir=Vf,Tir=cU,Fir=og,Mir=eu,Pir=xA,Uir=$t,Gir=zN,$ir=mn,Kir=Hj,Oir=u_,Rir=xI,Qir=yh,Cir=xn,Hir=Jg,Vir=FU,Lir=k,zir=_i,Sir=k,Zir=_i,Wir=[0,Qn,oj,27],Xir=RI,Jir=[0,[0,0,uQ],0],Yir=[0,[0,0,PB],0],rcr=[0,Qn,is,11],ncr=[0,Qn,CE,13],tcr=qP,ecr=mv,acr=[0,1,"V"],ucr=[0,1,mv],fcr=[0,1,rr],icr=[0,2,fQ],ccr=[0,[0,0,"u"],0],vcr=qP,ocr=Je,Acr=[0,1,Wd],scr=[0,1,"w"],bcr=[0,Qn,PA,4],lcr=[0,Qn,wA,4],Bcr=CO,jcr=rv,kcr=eq,pcr=MI,mcr=Ui,dcr=[0,ib,41,12],_cr=[0,ib,30,6],hcr=[0,ib,64,19],xcr=_i,ycr=[0,[11,dt,[2,0,[2,0,[12,32,[2,0,[12,32,[2,0,0]]]]]]],"type %s%s %s %s"],wcr=CO,gcr=[0,[2,0,[12,60,[2,0,[12,62,0]]]],bK],qcr=[0,[11,":\n ",[2,0,[11,"\nis expansive, because ",[2,0,[11," occurs as an indirect argument of recursive type ",[2,0,[11,".\n(",[2,0,[11," would be allowed as an immediate argument, but cannot be part of a larger type expression.)",[2,0,0]]]]]]]]]],":\n %s\nis expansive, because %s occurs as an indirect argument of recursive type %s.\n(%s would be allowed as an immediate argument, but cannot be part of a larger type expression.)%s"],Icr=[0,JD,Lu,8],Dcr=[0,JD,ua,4],Ecr=[0,JD,94,6],Ncr=[0,Fa],Tcr=[0,"Non"],Fcr=[0,zR],Mcr=WG,Pcr=Hv,Ucr=Lf,Gcr=nt,$cr=kp,Kcr=s_,Ocr=uR,Rcr=Lh,Qcr=NT,Ccr=M_,Hcr=vI,Vcr=[0,LE],Lcr=[0,aG],zcr=[0,fv],Scr=[0,UF],Zcr=[0,AA],Wcr=[0,lM],Xcr=[0,Xu],Jcr=[0,MA],Ycr=[0,Nb],rvr=[0,nF],nvr=[0,Oq],tvr=[0,wT],evr=[0,BP],avr=[0,Wc],uvr=[0,f$],fvr=[0,CP],ivr=[0,Ai],cvr=[0,wc],vvr=[0,lg],ovr=[0,J_],Avr=sE,svr=gT,bvr=wn,lvr=$B,Bvr=[0,xT],jvr=[0,Fd],kvr=[0,xg],pvr=[0,_a],mvr=[0,Q$],dvr=Jm,_vr=Fx,hvr=oi,xvr=[0,[6,12,0,0,0],"%nu"],yvr=[0,"big_int.ml",879,2],wvr=lC(1,0,0),gvr=I,qvr=I,Ivr=I,Dvr=_O,Evr=lC($K,GK,0),Nvr=lC($K,GK,0),Tvr=lC(0,0,0),Fvr=_O,Mvr=lC(0,0,0),Pvr=_O,Uvr=lC(0,0,0),Gvr=lC(0,0,0),$vr=lC(0,0,0),Kvr=mm,Ovr=mm,Rvr=mm,Qvr=_B,Cvr=[1,"The prim package has no modules"],Hvr=Jf,Vvr=[0,[11,"Package imports mustn't access parent directories: ",[2,0,[11," is invalid.",0]]],"Package imports mustn't access parent directories: %s is invalid."],Lvr=[0,0],zvr=[1,"Unrecognized URL"],Svr=[1,"principal cannot be empty"],Zvr=[1,"principal too short"],Wvr=[0,[11,"invalid principal. Did you mean ",[3,0,[12,63,0]]],"invalid principal. Did you mean %S?"],Xvr=cT,Jvr=kt,Yvr=Vs,ror=Vs,nor=kt,tor=cT,eor=[0,[12,40,[2,0,[4,3,0,0,[12,32,[2,0,[12,32,[4,3,0,0,[12,41,0]]]]]]]],"(%s%i %s %i)"],aor=[0,0,0,1,1],uor=[0,"mo_values/numerics.ml",ck,10],ior=lC(0,0,0),cor=[0,[7,6,0,0,0],$E],vor=Mj,oor=Mj,Aor=[0,1],sor=F,bor=yF,lor=bt,Bor=_D,jor=CO,kor=[0,[18,[1,[0,[11,xm,0],xm]],[12,40,[15,[2,0,[12,41,[17,0,0]]]]]],ox],por=wi,mor=[0,[18,[1,[0,[11,xm,0],xm]],[12,91,[15,[15,[12,93,[17,0,0]]]]]],"@[<1>[%a%a]@]"],dor=[0,[18,[1,[0,[11,wG,0],wG]],[15,[12,UU,[17,[0,Gv,0,0],[15,[17,[0,tb,0,-2],[12,kI,[17,0,0]]]]]]]],"@[%a{@;<0 0>%a@;<0 -2>}@]"],_or=[0,[18,[1,[0,[11,xm,0],xm]],[12,40,[15,[12,41,[17,0,0]]]]],jp],hor=[0,[18,[1,[0,[11,bx,0],bx]],[2,0,[11," =",[17,[0,ub,1,0],[15,[17,0,0]]]]]],"@[<2>%s =@ %a@]"],xor=F,yor=[0,[18,[1,[0,[11,xm,0],xm]],[12,63,[15,[17,0,0]]]],zx],wor=[0,[12,35,[2,0,0]],Rg],gor=[0,[18,[1,[0,0,fQ]],[12,35,[2,0,[17,[0,bh,0,1],[15,[17,0,0]]]]]],"@[#%s@;<0 1>%a@]"],qor=[0,[18,[1,[0,0,fQ]],[12,35,[2,0,[17,[0,bh,0,1],[12,40,[15,[12,41,[17,0,0]]]]]]]],"@[#%s@;<0 1>(%a)@]"],Ior=[0,[18,[1,[0,[11,bx,0],bx]],[11,"async[",[4,0,0,0,[12,93,[17,[0,ub,1,0],[15,[17,0,0]]]]]]],"@[<2>async[%d]@ %a@]"],Dor=[0,[18,[1,[0,[11,bx,0],bx]],[11,ia,[17,[0,ub,1,0],[15,[17,0,0]]]]],$v],Eor=[0,[18,[1,[0,[11,xm,0],xm]],[11,c$,[15,[17,0,0]]]],eO],Nor=[0,[18,[1,[0,0,fQ]],[11,wc,[17,[0,ub,1,0],[15,[17,0,0]]]]],"@[Error@ %a@]"],Tor=_i,For=_i,Mor=[0,[12,59,[17,[0,ub,1,0],0]],";@ "],Por=[0,[12,44,[17,[0,ub,1,0],0]],",@ "],Uor=cg,Gor=[0,[11,"ID:",[4,3,0,0,0]],"ID:%i"],$or=Og,Kor=i$,Oor=zm,Ror=Mu,Qor=_M,Cor=J$,Hor=$x,Vor=yF,Lor=bt,zor=_D,Sor=Sp,Zor=[0,[12,UU,[2,0,[12,kI,0]]],"{%s}"],Wor=[0,[12,35,[2,0,[2,0,0]]],"#%s%s"],Xor=[0,[12,35,[2,0,0]],Rg],Jor=[0,[12,35,[2,0,[12,40,[2,0,[12,41,0]]]]],"#%s(%s)"],Yor=[0,ah,87,11],rAr=Zp,nAr=[0,[11,oc,[2,0,[12,93,0]]],"[var %s]"],tAr=Zp,eAr=[0,[12,91,[2,0,[12,93,0]]],"[%s]"],aAr=yF,uAr=CO,fAr=Zp,iAr=[0,[12,40,[2,0,[2,0,[12,41,0]]]],tu],cAr=[0,[11,"(weak ",[2,0,[12,41,0]]],"(weak %s)"],vAr=[0,[18,[1,[0,0,fQ]],[11,"show_val: ",[15,[11,I_,[15,[17,4,[17,0,0]]]]]]],"@[show_val: %a : %a@.@]"],oAr=[0,ah,93,4],AAr=[0,[2,0,[11,TE,[2,0,0]]],"%s = %s"],sAr=cg,bAr=[0,xh,uP,17],lAr=[14,fQ],BAr=[0,0],jAr=[14,fQ],kAr=[14,fQ],pAr=[13,"0.1"],mAr=[0,xh,ng,12],dAr=[0,0],_Ar=[0,[2,0,[12,10,[10,0]]],_F],hAr=nr,xAr=_d,yAr=[0,xh,An,12],wAr=[0,xh,Yn,12],gAr=[0,xh,pm,12],qAr=[0,xh,wA,12],IAr=[0,xh,yO,12],DAr=[0,24,[0,16,[0,8,[0,0,0]]]],EAr=[0,56,[0,48,[0,40,[0,32,[0,24,[0,16,[0,8,[0,0,0]]]]]]]],NAr=[0,24,[0,16,[0,8,[0,0,0]]]],TAr=[0,56,[0,48,[0,40,[0,32,[0,24,[0,16,[0,8,[0,0,0]]]]]]]],FAr=[0,xh,DE,12],MAr=[13,fQ],PAr=[0,xh,jm,11],UAr=[0,xh,329,11],GAr=[0,xh,zj,11],$Ar=su,KAr=[0,xh,382,11],OAr=Gf,RAr=[0,xh,gR,11],QAr=[0,[8,[0,0,0],0,1,0],"%.*f"],CAr=[0,[8,[0,0,1],0,1,0],"%.*e"],HAr=[0,[8,[0,0,3],0,1,0],Yc],VAr=[0,[8,[0,0,6],0,1,0],"%.*h"],LAr=au,zAr=[0,JT,Hw,41],SAr=[0,JT,212,19],ZAr=[0,1],WAr=[0,JT,202,20],XAr=[0,0],JAr=[0,0],YAr=[0,1],rsr=[0,JT,e,21],nsr=[0,JT,Px,43],tsr=[0,JT,Xm,7],esr=[0,JT,Wn,66],asr=[0,JT,dI,25],usr=au,fsr=Io,isr=Io,csr=Io,vsr=Ye,osr=Ye,Asr=Ye,ssr=[0,qi],bsr=[0,TG],lsr=[0,sO],Bsr=[0,Md],jsr=[0,St],ksr=[0,ys],psr=[0,LN],msr=[0,bU],dsr=[0,Xa],_sr=[0,gh],hsr=[0,XD],xsr=[0,Xg],ysr=[0,lb],wsr=[0,rl],gsr=[0,fD],qsr=[0,OT],Isr=[0,aD],Dsr=[0,Fj],Esr=[0,Bn],Nsr=[0,R$],Tsr=[0,ON],Fsr=[0,Vc],Msr=[0,jM],Psr=[0,Gt],Usr=[0,NU],Gsr=[0,or],$sr=[0,px],Ksr=[6,0],Osr=di,Rsr=hB,Qsr=[0,yN,qs,4],Csr=[0,0,0],Hsr=[0,0,0],Vsr=[0,yN,51,6],Lsr=[0,yN,20,9],zsr=[0,0,0],Ssr=nv,Zsr=QU,Wsr=rn,Xsr=F_,Jsr=iK,Ysr=nB,rbr=gB,nbr=BR,tbr=ZI,ebr=Fw,abr=e$,ubr=Pi,fbr=$s,ibr=bI,cbr=[0,nK],vbr=[0,_i],obr=Mi,Abr=[0,[0,yt],0],sbr=Ec,bbr=Ec,lbr=Be,Bbr=AT,jbr=AO,kbr=Gq,pbr=cA,mbr=Sq,dbr=[0,_i],_br=ay,hbr=Xi,xbr=dG,ybr=Kv,wbr=bb,gbr=Zs,qbr=Qb,Ibr=od,Dbr=GT,Ebr=GT,Nbr=v_,Tbr=hd,Fbr=gI,Mbr=gI,Pbr=Ka,Ubr=jK,Gbr=[0,"mo_def/arrange.ml",Ta,43],$br=ce,Kbr=mP,Obr=xp,Rbr=TU,Qbr=yP,Cbr=uq,Hbr=r$,Vbr=ZN,Lbr=Wu,zbr=AG,Sbr=[0,be],Zbr=$e,Wbr=$e,Xbr=Ij,Jbr=[0,lO],Ybr=[0,AN],rlr=dO,nlr=ju,tlr=WR,elr=P$,alr=fr,ulr=JM,flr=To,ilr=gd,clr=Dy,vlr=wg,olr=[0,lD],Alr=[0,[0,bt],0],slr=ft,blr=[0,[0,_D],0],llr=ft,Blr=Pe,jlr=Tg,klr=H$,plr=In,mlr=Sl,dlr=sK,_lr=K,hlr=oN,xlr=Zy,ylr=Er,wlr=pD,glr=Pm,qlr=fE,Ilr=X_,Dlr=_p,Elr=El,Nlr=yg,Tlr=TK,Flr=Tu,Mlr=Pw,Plr=[0,_i],Ulr=qc,Glr=gT,$lr=aN,Klr=[0,$B],Olr=[0,qc],Rlr=[0,gT],Qlr=[0,aN],Clr=[0,$B],Hlr=[0,WG],Vlr=[0,WF],Llr=[0,vB],zlr=[0,D_],Slr=VE,Zlr=[0,VE],Wlr=[0,PI],Xlr=[0,nD],Jlr=[0,Kg],Ylr=SN,rBr=ly,nBr=Uu,tBr=C,eBr=Xc,aBr=fT,uBr=Vn,fBr=lm,iBr=oT,cBr=xw,vBr=$F,oBr=a_,ABr=MD,sBr=pw,bBr=Un,lBr=ca,BBr=aE,jBr=NG,kBr=ze,pBr=sb,mBr=WP,dBr=WP,_Br=tT,hBr=gD,xBr=[0,_i],yBr=dE,wBr=Ea,gBr=RK,qBr=[0,xT],IBr=[0,Fd],DBr=[0,xg],EBr=[0,_a],NBr=[0,Q$],TBr=[0,qb,3725,4],FBr=[0,qb,3664,8],MBr=[0,qb,3615,4],PBr=[0,qb,3427,4],UBr=[0,qb,3340,4],GBr=[0,qb,3334,4],$Br=[0,qb,3315,4],KBr=[0,qb,2677,6],OBr=TP,RBr=Qu,QBr=[0,qb,1471,4],CBr=[0,qb,1486,4],HBr=[0,qb,1831,8],VBr=[0,qb,2019,6],LBr=[0,qb,1804,4],zBr=[0,[11,"Must be between 0 and 63: ",[4,0,0,0,0]],"Must be between 0 and 63: %d"],SBr=Ah,ZBr=zy,WBr=[0,[11,"opcode not covered: ",[4,0,0,0,0]],"opcode not covered: %d"],XBr=[0,[11,"\\u{",[4,6,[0,2,2],0,[12,kI,0]]],SI],JBr=[0,2],YBr=[0,1],rjr=[0,0],njr=[0,1],tjr=[0,0],ejr=[0,[0,2,1]],ajr=[0,[0,2,0]],ujr=[0,[0,1,1]],fjr=[0,[0,1,0]],ijr=[0,[0,0,1]],cjr=[0,[0,0,0]],vjr=[0,[0,1,1]],ojr=[0,[0,1,0]],Ajr=[0,[0,0,1]],sjr=[0,[0,0,0]],bjr=[19,[0,0]],ljr=[19,[0,1]],Bjr=[19,[0,2]],jjr=[19,[1,0]],kjr=[19,[1,1]],pjr=[19,[1,2]],mjr=[19,[2,0]],djr=[19,[2,1]],_jr=[19,[2,6]],hjr=[19,[2,2]],xjr=[19,[2,3]],yjr=[19,[2,4]],wjr=[19,[2,5]],gjr=[19,[3,0]],qjr=[19,[3,1]],Ijr=[19,[3,6]],Djr=[19,[3,2]],Ejr=[19,[3,3]],Njr=[19,[3,4]],Tjr=[19,[3,5]],Fjr=[20,[0,0]],Mjr=[20,[0,1]],Pjr=[20,[0,2]],Ujr=[20,[0,3]],Gjr=[20,[0,4]],$jr=[20,[0,5]],Kjr=[20,[0,6]],Ojr=[20,[0,7]],Rjr=[20,[0,8]],Qjr=[20,[0,9]],Cjr=[20,[0,10]],Hjr=[20,[0,11]],Vjr=[20,[0,12]],Ljr=[20,[0,13]],zjr=[20,[0,14]],Sjr=[20,[1,0]],Zjr=[20,[1,1]],Wjr=[20,[1,2]],Xjr=[20,[1,3]],Jjr=[20,[1,4]],Yjr=[20,[1,5]],rkr=[20,[1,6]],nkr=[20,[1,7]],tkr=[20,[1,8]],ekr=[20,[1,9]],akr=[20,[1,10]],ukr=[20,[1,11]],fkr=[20,[1,12]],ikr=[20,[1,13]],ckr=[20,[1,14]],vkr=[20,[2,0]],okr=[20,[2,1]],Akr=[20,[2,2]],skr=[20,[2,3]],bkr=[20,[2,4]],lkr=[20,[2,5]],Bkr=[20,[2,6]],jkr=[20,[3,0]],kkr=[20,[3,1]],pkr=[20,[3,2]],mkr=[20,[3,3]],dkr=[20,[3,4]],_kr=[20,[3,5]],hkr=[20,[3,6]],xkr=[17,[0,0]],ykr=[17,[1,0]],wkr=[18,[0,0]],gkr=[18,[0,1]],qkr=[18,[0,2]],Ikr=[18,[0,3]],Dkr=[18,[0,6]],Ekr=[18,[0,7]],Nkr=[18,[0,4]],Tkr=[18,[0,5]],Fkr=[18,[0,8]],Mkr=[18,[0,9]],Pkr=[18,[1,0]],Ukr=[18,[1,1]],Gkr=[18,[1,2]],$kr=[18,[1,3]],Kkr=[18,[1,6]],Okr=[18,[1,7]],Rkr=[18,[1,4]],Qkr=[18,[1,5]],Ckr=[18,[1,8]],Hkr=[18,[1,9]],Vkr=[18,[2,0]],Lkr=[18,[2,1]],zkr=[18,[2,2]],Skr=[18,[2,4]],Zkr=[18,[2,3]],Wkr=[18,[2,5]],Xkr=[18,[3,0]],Jkr=[18,[3,1]],Ykr=[18,[3,2]],rpr=[18,[3,4]],npr=[18,[3,3]],tpr=[18,[3,5]],epr=[19,[0,[0,0]]],apr=[19,[0,[0,1]]],upr=[19,[1,[0,0]]],fpr=[19,[1,[0,1]]],ipr=[19,[1,[0,2]]],cpr=[21,[0,2]],vpr=[21,[0,3]],opr=[21,[0,4]],Apr=[21,[0,5]],spr=[21,[0,6]],bpr=[21,[0,7]],lpr=[21,[0,8]],Bpr=[21,[0,9]],jpr=[21,[0,10]],kpr=[21,[1,0]],ppr=[21,[1,1]],mpr=[21,[1,3]],dpr=[21,[1,4]],_pr=[21,[1,5]],hpr=[21,[1,6]],xpr=[21,[2,0]],ypr=[21,[2,1]],wpr=[21,[2,2]],gpr=[21,[2,3]],qpr=[21,[1,7]],Ipr=[21,[1,8]],Dpr=[21,[1,9]],Epr=[21,[1,10]],Npr=[21,[2,5]],Tpr=[21,[3,0]],Fpr=[21,[3,1]],Mpr=[21,[3,2]],Ppr=[21,[3,3]],Upr=[21,[3,4]],Gpr=[21,[0,11]],$pr=[21,[1,11]],Kpr=[21,[2,6]],Opr=[21,[3,6]],Rpr=[0,"wasm-exts/abbreviation.ml",15,2],Qpr=lC(oj,0,0),Cpr=lC(0,0,0),Hpr=lC(hh,0,0),Vpr=lC(oj,0,0),Lpr=lC(hq,$K,Ft),zpr=lC(64,0,0),Spr=[0,QR,Mx,8],Zpr=[0,QR,Cx,8],Wpr=[0,QR,ph,53],Xpr=[0,QR,Ir,58],Jpr=[0,QR,Kt,24],Ypr=[0,QR,496,24],rmr=[0,QR,539,46],nmr=[0,QR,612,42],tmr=[0,QR,613,42],emr=[0,QR,627,39],amr=[0,QR,642,42],umr=[0,QR,651,41],fmr=[0,QR,ZK,18],imr=[0,[11,"attr: 0x",[4,6,0,0,[11,rK,[4,6,0,0,[11,fy,[4,6,0,0,[11,TA,0]]]]]]],"attr: 0x%x = a: 0x%x (in TAG 0x%x)\n"],cmr=[0,QR,kx,12],vmr=Zr,omr=[0,[11,"DATA1 attr: 0x",[4,6,0,0,[11,rK,[4,6,0,0,[11,fy,[4,6,0,0,[11,") PATH: ",[2,0,[11," ULT: (",[2,0,cS]]]]]]]]]],"DATA1 attr: 0x%x = a: 0x%x (in TAG 0x%x) PATH: %s ULT: (%s, %d)\n"],Amr=[0,QR,Dc,12],smr=[0,QR,1060,45],bmr=[0,QR,1033,18],lmr=[0,QR,1266,6],Bmr=Zr,jmr=oV([0,1,1,1,1,0,0,0,1,0,0,1]),kmr=[0,[1,0,0,0],0],pmr=[0,QR,980,12],mmr=[0,QR,935,8],dmr=[0,QR,Qs,57],_mr=CO,hmr=Zq,xmr=Ip,ymr=Vw,wmr=Sm,gmr=ME,qmr=NR,Imr=_P,Dmr=hE,Emr=Td,Nmr=[0,QR,793,54],Tmr=[0,QR,786,45],Fmr=[0,QR,784,16],Mmr=[0,QR,jh,6],Pmr=lC($K,GK,0),Umr=lC($K,GK,0),Gmr=[0,QR,lk,13],$mr=[0,QR,Xm,25],Kmr=[0,[1,0,0,0],0],Omr=_m,Rmr=cP,Qmr=Zr,Cmr=UR,Hmr=[0,bk,[0,NN,3]],Vmr=BU,Lmr=uu,zmr=BU,Smr=uu,Zmr=[0,5],Wmr=q$,Xmr=q$,Jmr=[0,fi,804,6],Ymr=[0,fi,800,6],rdr=[0,fi,808,2],ndr=Zq,tdr=Ip,edr=Vw,adr=Sm,udr=ME,fdr=NR,idr=m,cdr=_P,vdr=[0,[11,"unknown motoko section subsection id ",[4,0,0,0,0]],"unknown motoko section subsection id %d"],odr=Td,Adr=[0,[11,"unknown name section subsection id ",[4,0,0,0,0]],"unknown name section subsection id %d"],sdr=pi,bdr=[0,1],ldr=[0,0],Bdr=pi,jdr=lC(0,xv,0),kdr=lC(0,0,0),pdr=[1,0],mdr=m,ddr=[0,[4,6,[0,2,2],0,0],"%02x"],_dr=Ip,hdr=Vw,xdr=ME,ydr=[0,el,337,25],wdr=[0,el,nk,18],gdr=[0,[4,0,0,0,[11,Ln,0]],"%d: "],qdr=[0,[11,"Candidate #",[4,0,0,0,[12,10,0]]],"Candidate #%d\n"],Idr=[0,"mo_frontend/variance.ml",52,23],Ddr=Lb,Edr=[0,[12,96,[2,0,[11,"` cannot be inferred.",0]]],"`%s` cannot be inferred."],Ndr=[0,Dt,600,4],Tdr=[0,Dt,607,4],Fdr=[0,0,0],Mdr=[0,[2,0,[11," := ",[2,0,0]]],"%s := %s"],Pdr=[0,0,0],Udr=Zp,Gdr=[0,[11,"bug: inferred bad instantiation\n <",[2,0,[11,">\nplease report this error message and, for now, supply an explicit instantiation instead",0]]],"bug: inferred bad instantiation\n <%s>\nplease report this error message and, for now, supply an explicit instantiation instead"],$dr=Dx,Kdr=[0,[15,[11," (for the expected return type) ",0]],"%a (for the expected return type) "],Odr=Dx,Rdr=[0,[15,[11," (for argument `",[2,0,[11,"`) ",0]]]],"%a (for argument `%s`) "],Qdr=Dx,Cdr=[0,[15,0],aK],Hdr=[0,[11,"there is no way to satisfy subtyping",[2,0,0]],"there is no way to satisfy subtyping%s"],Vdr=Zp,Ldr=[0,[11,"Hint: Add explicit type instantiation, e.g. <",[2,0,[12,62,0]]],"Hint: Add explicit type instantiation, e.g. <%s>"],zdr=[0,Dt,Hw,17],Sdr=[0,Dt,jd,6],Zdr=[0,Dt,l_,6],Wdr=[0,Dt,292,6],Xdr=[0,Dt,pA,8],Jdr=[0,Dt,ng,8],Ydr=[0,Dt,206,6],r_r=[0,Dt,209,6],n_r=[0,[11,"bug: impossible over-constrained type parameter `",[2,0,[11,"` with",[15,[11,"\nwhere",[15,[11,"\nPlease report this bug and supply an explicit instantiation instead.",0]]]]]]],"bug: impossible over-constrained type parameter `%s` with%a\nwhere%a\nPlease report this bug and supply an explicit instantiation instead."],t_r=Je,e_r=Lb,a_r=[0,[11,'there is no "best" choice for type parameter',[2,0,[11," `",[2,0,[11,"`.",0]]]]],'there is no "best" choice for type parameter%s `%s`.'],u_r=[0,[11,"type parameter `",[2,0,[11,"` has a bound ",[15,[11,"\ninvolving another type parameter. Please provide an explicit instantiation.",0]]]]],"type parameter `%s` has a bound %a\ninvolving another type parameter. Please provide an explicit instantiation."],f_r=[0,Dt,ua,9],i_r=[0,Dt,CE,9],c_r=[0,0,0],v_r=xM,o_r=[0,[18,[1,[0,[11,wG,0],wG]],[15,[11,wI,[17,[0,ub,1,0],[18,[1,[0,[11,wG,0],wG]],[2,0,[11,wI,[17,[0,ub,1,0],[15,[17,0,[17,0,0]]]]]]]]]]],"@[%a <: @ @[%s <: @ %a@]@]"],A_r=[0,[18,[1,[0,[11,wG,0],wG]],[15,[11,LM,[2,0,[12,32,[17,[0,ub,1,0],[15,[17,0,0]]]]]]]],"@[%a %s @ %a@]"],s_r=[0,0,0],b_r=[0,0,0],l_r=[0,[4,0],0],B_r=[0,0,0],j_r=[0,oD,rM,10],k_r=[0,0,0],p_r=_i,m_r=Zp,d_r=Sp,__r=[0,oD,Kw,2],h_r=ok,x_r=[0,0],y_r=[0,oD,213,13],w_r=[0,oD,Ga,13],g_r=[0,0],q_r=[0,oD,Sj,13],I_r=[0,oD,jj,11],D_r=[0,oD,nk,4],E_r=[0,oD,qR,4],N_r=[0,0],T_r=[0,0],F_r=[11,0],M_r=[0,oD,DA,16],P_r=[0,0],U_r=[0,0],G_r=[0,vA,Bs,4],$_r=[0,vA,tw,6],K_r=[0,vA,Tx,6],O_r=[0,[11,"cannot upgrade from an actor using enhanced migration to an actor not using enhanced migration. Please see ",[2,0,[12,46,0]]],"cannot upgrade from an actor using enhanced migration to an actor not using enhanced migration. Please see %s."],R_r=[0,[2,0,[11," does not contain the stable variable `",[2,0,[11,"`. The migration function cannot require this variable as input, please see ",[2,0,[12,46,0]]]]]],"%s does not contain the stable variable `%s`. The migration function cannot require this variable as input, please see %s."],Q_r=DO,C_r=[0,[11,Fv,[2,0,[11,"` implicitly drops data of ",[2,0,[11,". \n The previous type",[15,[11,"\n is not a stable subtype of",[15,[11,JI,[2,0,[11,".\n The data can only be dropped by an explicit migration function, please see ",[2,0,[12,46,0]]]]]]]]]]]]],"the new type of stable variable `%s` implicitly drops data of %s. \n The previous type%a\n is not a stable subtype of%a\n because %s.\n The data can only be dropped by an explicit migration function, please see %s."],H_r=[0,[11,Fv,[2,0,[11,"` is not compatible with ",[2,0,[11,".\n The previous type",[15,[11,"\n is not a subtype of",[15,[11,JI,[2,0,[11,".\n Write an explicit migration function, please see ",[2,0,[12,46,0]]]]]]]]]]]]],"the new type of stable variable `%s` is not compatible with %s.\n The previous type%a\n is not a subtype of%a\n because %s.\n Write an explicit migration function, please see %s."],V_r=[0,[11,"the stable variable `",[2,0,[11,"` of ",[2,0,[11," cannot be implicitly discarded. The variable can only be dropped by an explicit migration function, please see ",[2,0,0]]]]]],"the stable variable `%s` of %s cannot be implicitly discarded. The variable can only be dropped by an explicit migration function, please see %s"],L_r=DO,z_r=pl,S_r=pl,Z_r=[0,[11,_B,[2,0,0]],"mo:%s"],W_r=[0,[11,_B,[2,0,[12,47,[2,0,0]]]],"mo:%s/%s"],X_r=[0,[11," after adding `import ",[2,0,[11,' = "mo:',[2,0,[12,47,[2,0,[11,'"`',0]]]]]]],' after adding `import %s = "mo:%s/%s"`'],J_r=Hd,Y_r=wh,rhr=[0,[11,"\nMaybe try conversion:\n ",[2,0,[12,63,0]]],"\nMaybe try conversion:\n %s?"],nhr=[0,[12,96,[2,0,[12,46,[2,0,[11,"(_)`",[2,0,0]]]]]],"`%s.%s(_)`%s"],thr=[0,[11,"The ",[2,0,[12,32,[2,0,[11," is not available. Try something else?",0]]]]],"The %s %s is not available. Try something else?"],ehr=ok,ahr=Zp,uhr=[0,[11,"help: did you mean ",[2,0,[12,32,[2,0,[12,63,0]]]]],"help: did you mean %s %s?"],fhr=[0,[11,"expected module, object, or actor type, but path expression produces type",[15,0]],"expected module, object, or actor type, but path expression produces type%a"],ihr=[0,[11,"cannot infer type of forward variable reference ",[2,0,0]],"cannot infer type of forward variable reference %s"],chr=[0,[11,"unavailable variable ",[2,0,0]],"unavailable variable %s"],vhr=[0,[11,CB,[2,0,[15,0]]],Fb],ohr=Rk,Ahr=[0,[11,fx,[2,0,[11,Wa,[15,0]]]],BN],shr=Yr,bhr=[0,[11,tM,[2,0,0]],BI],lhr=[0,[11,"unbound type ",[2,0,[15,0]]],"unbound type %s%a"],Bhr="M0029",jhr=pl,khr=[0,[11,"type field ",[2,0,[11,Wa,[15,0]]]],"type field %s does not exist in %a"],phr="M0030",mhr=bf,dhr=bf,_hr=[0,[11,RM,[15,0]],Ow],hhr=Xb,xhr=[0,[11,eN,0],eN],yhr="M0040",whr=Yr,ghr=zn,qhr=bf,Ihr=zn,Dhr=ND,Ehr="variant type",Nhr=[0,[11,eU,[15,0]],Or],Thr=DK,Fhr=[0,1],Mhr=[0,[11,Bt,[15,0]],Rh],Phr=Kh,Uhr=[0,[11,"async has non-shared content type",[15,0]],"async has non-shared content type%a"],Ghr=cq,$hr=[0,[11,Om,0],Om],Khr=NP,Ohr=[0,[11,"this intersection results in type",[15,[11,Qp,[15,[11,sR,[15,0]]]]]],"this intersection results in type%a\nbecause operand types are inconsistent,\nleft operand is%a\nright operand is%a"],Rhr=ja,Qhr=[0,[11,sf,0],sf],Chr=NP,Hhr=[0,[11,"this union results in type",[15,[11,Qp,[15,[11,sR,[15,0]]]]]],"this union results in type%a\nbecause operand types are inconsistent,\nleft operand is%a\nright operand is%a"],Vhr=N$,Lhr=[0,[11,nm,[2,0,[11," must have shared function type, but has type\n ",[2,0,0]]]],"actor field %s must have shared function type, but has type\n %s"],zhr=NA,Shr=[0,[11,vg,[2,0,[11,fk,[2,0,0]]]],tE],Zhr=[0,jR,Xe,26],Whr=[0,jR,ko,12],Xhr=[0,[11,"duplicate type name ",[2,0,[11," in type parameter list",0]]],"duplicate type name %s in type parameter list"],Jhr=[1,0,2],Yhr=[0,jR,1032,9],rxr=[0,[11,"type argument",[15,[11,"\ndoes not match parameter bound",[15,0]]]],"type argument%a\ndoes not match parameter bound%a"],nxr=[0,jR,kx,12],txr=[0,[11,"wrong number of type arguments: expected ",[4,0,0,0,[11,pF,[4,0,0,0,0]]]],"wrong number of type arguments: expected %d but got %d"],exr=Zp,axr=[0,[11,"block contains non-productive definition",[2,0,[12,32,[2,0,0]]]],"block contains non-productive definition%s %s"],uxr=[0,[11,"block contains expansive type definitions",[2,0,0]],"block contains expansive type definitions%s"],fxr=[0,jR,LT,4],ixr=[0,[11,Sd,0],Sd],cxr=[0,0],vxr=[0,1],oxr=[0,2],Axr=[0,[11,vc,0],vc],sxr=[0,[11,Eh,0],Eh],bxr=[0,[11,ao,0],ao],lxr=[0,[11,Qh,0],Qh],Bxr=[0,jR,1117,4],jxr=[0,[11,"cannot infer type of expression while trying to infer surrounding class type,\nbecause its type is a forward reference to type",[15,0]],"cannot infer type of expression while trying to infer surrounding class type,\nbecause its type is a forward reference to type%a"],kxr=[0,jR,1716,2],pxr=[0,jR,1718,2],mxr=[0,jR,1722,4],dxr=[0,[11,RM,[15,0]],Ow],_xr=Xb,hxr=[0,[11,ns,0],ns],xxr=[0,[11,Jn,0],Jn],yxr=[0,[11,"cannot infer type of forward variable ",[2,0,0]],"cannot infer type of forward variable %s"],wxr=[0,[11,Fl,[2,0,[11," is in scope but not available in compiled code",0]]],"variable %s is in scope but not available in compiled code"],gxr=[0,1,0],qxr=[0,0,0],Ixr=[0,[11,CB,[2,0,[15,0]]],Fb],Dxr=PD,Exr=ok,Nxr=[0,[11,"help: Did you mean to import ",[2,0,[12,63,0]]],"help: Did you mean to import %s?"],Txr=[0,[11,CB,[2,0,[15,0]]],Fb],Fxr=PD,Mxr=Rk,Pxr=[0,[11,jb,0],jb],Uxr=[0,jR,1790,6],Gxr=[0,[11,jA,[15,0]],Db],$xr=cm,Kxr=[0,jR,1801,6],Oxr=[0,[11,eB,[15,0]],x_],Rxr=Ho,Qxr=[0,jR,1812,6],Cxr=[0,[11,"comparing abstract type",[15,[11,"\nto itself at supertype",[15,0]]]],"comparing abstract type%a\nto itself at supertype%a"],Hxr=fA,Vxr=[0,[11,"comparing incompatible types",[15,[11,uk,[15,[11,"\nat common supertype",[15,0]]]]]],"comparing incompatible types%a\nand%a\nat common supertype%a"],Lxr=al,zxr=[0,[11,lj,[15,0]],"show is not defined for operand type%a"],Sxr=[0,[11,qd,[15,0]],d],Zxr=[2,16],Wxr=[0,[11,mo,0],mo],Xxr=[0,[11,P_,[21,1,[11," is out of bounds for type",[15,0]]]],"tuple projection %n is out of bounds for type%a"],Jxr=[0,[11,"expected tuple type, but expression produces type",[15,0]],"expected tuple type, but expression produces type%a"],Yxr=[2,0],ryr=RI,nyr=RI,tyr=[0,[11,Bg,0],Bg],eyr=i_,ayr=[0,[11,"expected option type before '!', but expression produces type",[15,0]],"expected option type before '!', but expression produces type%a"],uyr=[0,[11,HD,0],HD],fyr=[0,3,[0,0,0]],iyr=[0,[11,Dk,0],Dk],cyr=[0,1,[0,2,0]],vyr=[0,[11,"body of type",[15,[11,RE,[15,[15,0]]]]],"body of type%a\ndoes not match expected type%a%a"],oyr=[0,[11,nu,0],nu],Ayr=[0,[11,"this array has type",[15,[11,"\nbecause elements have inconsistent types",0]]],"this array has type%a\nbecause elements have inconsistent types"],syr=Yb,byr=[2,3],lyr=[0,[11,"expected array type or Blob, but expression produces type",[15,0]],"expected array type or Blob, but expression produces type%a"],Byr=[0,[11,uU,0],uU],jyr=[0,3,[0,0,0]],kyr=[0,[11,TN,0],TN],pyr=ST,myr=[0,1,[0,2,0]],dyr=[0,[11,qI,0],qI],_yr=tK,hyr=[6,0],xyr=[0,[11,XK,0],XK],yyr=[0,[11,eU,[15,0]],Or],wyr=DK,gyr=[0,1],qyr=[0,[11,zK,0],zK],Iyr=[0,[11,wF,0],wF],Dyr=[0,[11,Bt,[15,0]],Rh],Eyr=Kh,Nyr=[0,[11,"this if has type",[15,[11,"\nbecause branches have inconsistent types,\ntrue produces",[15,[11,"\nfalse produces",[15,0]]]]]],"this if has type%a\nbecause branches have inconsistent types,\ntrue produces%a\nfalse produces%a"],Tyr=wK,Fyr=Ge,Myr=[0,Ts,0],Pyr=Ts,Uyr=[0,[11,"expected iterable type, but expression has type",[15,0]],"expected iterable type, but expression has type%a"],Gyr=gg,$yr=[0,[11,Qi,0],Qi],Kyr=ks,Oyr=[0,[11,_R,[2,0,[15,0]]],"unbound label %s%a"],Ryr=OA,Qyr=jo,Cyr=hx,Hyr=[0,[2,0,[11," outside of loop",0]],"%s outside of loop"],Vyr=ks,Lyr=[0,[11,Kl,0],Kl],zyr=[0,[11,Hf,0],Hf],Syr=[0,[11,jc,0],jc],Zyr=lR,Wyr=[0,3,[0,0,0]],Xyr=Ih,Jyr=[0,2],Yyr=[0,[11,"async type has non-shared content type",[15,0]],"async type has non-shared content type%a"],rwr=cq,nwr=[0,[11,"ill-scoped await: expected async type from current scope ",[15,[11,", found async type from other scope ",[15,[15,[15,0]]]]]],"ill-scoped await: expected async type from current scope %a, found async type from other scope %a%a%a"],twr=[0,[11,"expected async",[2,0,[11," type, but expression has type",[15,[2,0,0]]]]],"expected async%s type, but expression has type%a%s"],ewr=IK,awr=tg,uwr=Rb,fwr=[0,[11,qy,0],qy],iwr=Ee,cwr=[0,[11,Hu,0],Hu],vwr=$,owr=Yr,Awr=[0,[11,fx,[2,0,[11,Wa,[15,0]]]],BN],swr=[0,[11,fx,[2,0,[11," does exist in ",[15,[11,"\nbut is not ",[2,0,[12,46,0]]]]]]],"field %s does exist in %a\nbut is not %s."],bwr=Yr,lwr=[0,[11,nM,[15,0]],Fg],Bwr=[0,[11,tM,[2,0,0]],BI],jwr=Yr,kwr=[0,[11,xj,0],xj],pwr=[0,[11,"ambiguous type field in base",[15,0]],"ambiguous type field in base%a"],mwr=Xs,dwr=[0,[11,_N,0],_N],_wr=[0,[11,"base has non-aliasable var field",[15,0]],"base has non-aliasable var field%a"],hwr=[0,[11,IN,0],IN],xwr=[0,[11,"ambiguous field in base",[15,0]],"ambiguous field in base%a"],ywr=Xs,wwr=[0,[11,nM,[15,0]],Fg],gwr=[0,[11,$T,0],$T],qwr=Yr,Iwr=GA,Dwr=[3,0,0,0],Ewr=[0,jR,2396,2],Nwr=[0,jR,2397,2],Twr=[0,jR,2398,2],Fwr=[0,[11,Aw,[15,[11,Ox,[15,[15,0]]]]],"expression of type%a\ncannot produce expected type%a%a"],Mwr=KF,Pwr=[0,[11,"function return type",[15,[11,"\ndoes not match expected return type",[15,[15,0]]]]],"function return type%a\ndoes not match expected return type%a%a"],Uwr="M0095",Gwr=[0,[12,39,[2,0,[12,39,0]]],"'%s'"],$wr=[0,[11,"If you're trying to omit an implicit argument named ",[2,0,[11," you need to have a matching declaration named ",[2,0,[11," in scope.",0]]]]],"If you're trying to omit an implicit argument named %s you need to have a matching declaration named %s in scope."],Kwr=ok,Owr=[0,[11,"Did you mean to import ",[2,0,[12,63,0]]],"Did you mean to import %s?"],Rwr=[0,[11,"Cannot determine implicit argument ",[2,0,[11,SU,[15,0]]]],"Cannot determine implicit argument %s of type%a"],Qwr="M0230",Cwr=[0,[11,Ay,0],Ay],Hwr="M0090",Vwr=[0,[11,eB,[15,0]],x_],Lwr=Ho,zwr=[2,16],Swr=[0,[11,"to_candid produces a Blob that is not a subtype of",[15,0]],"to_candid produces a Blob that is not a subtype of%a"],Zwr="M0172",Wwr=[0,[11,qd,[15,0]],d],Xwr="M0173",Jwr=[2,16],Ywr=[2,16],rgr=[0,[11,"from_candid produces an optional shared type, not type",[15,0]],"from_candid produces an optional shared type, not type%a"],ngr="M0174",tgr=[2,0],egr=RI,agr=RI,ugr=[0,[11,Bg,0],Bg],fgr=i_,igr=Je,cgr=Zp,vgr=[0,[11,"missing field",[2,0,[12,32,[2,0,[11," from expected type",[15,0]]]]]],"missing field%s %s from expected type%a"],ogr="M0151",Agr=[0,[2,0,[11,"mutable array expression cannot produce expected type",[15,0]]],"%smutable array expression cannot produce expected type%a"],sgr="M0091",bgr=Ge,lgr=[0,[11,jc,0],jc],Bgr=lR,jgr=[0,3,[0,0,0]],kgr=Ih,pgr="Use keyword 'async' (not 'async*') to produce the expected type.",mgr="Use keyword 'async*' (not 'async') to produce the expected type.",dgr=[0,[11,"async expression cannot produce expected async type ",[15,[11,kE,[2,0,0]]]],"async expression cannot produce expected async type %a.\n%s"],_gr="M0183",hgr=[0,[11,"async at scope",[15,[11,"\ncannot produce expected scope",[15,[15,[15,0]]]]]],"async at scope%a\ncannot produce expected scope%a%a%a"],xgr="M0092",ygr=tg,wgr=Rb,ggr=[0,[11,Aw,[15,[11,Ox,[15,[15,[2,0,0]]]]]],"expression of type%a\ncannot produce expected type%a%a%s"],qgr=KF,Igr=[0,[11,"expected mutable 'var' field ",[2,0,[11,SU,[15,[11,"\nbut found immutable field (insert 'var'?)",0]]]]],"expected mutable 'var' field %s of type%a\nbut found immutable field (insert 'var'?)"],Dgr=[0,[11,"expected immutable field ",[2,0,[11,SU,[15,[11,"\nbut found mutable 'var' field (delete 'var'?)",0]]]]],"expected immutable field %s of type%a\nbut found mutable 'var' field (delete 'var'?)"],Egr=[0,jR,2664,35],Ngr=[0,[11,TN,0],TN],Tgr=ST,Fgr=[0,1,[0,2,0]],Mgr=Pn,Pgr=Pn,Ugr=[0,[2,0,[11,"shared function does not match expected ",[2,0,[11,"shared function type",0]]]],"%sshared function does not match expected %sshared function type"],Ggr=[0,[11,"field `",[2,0,[11,"` is provided but not expected in record",[2,0,[11,SU,[15,0]]]]]],"field `%s` is provided but not expected in record%s of type%a"],$gr=IT,Kgr=[0,[11,"public type `",[2,0,[11,h$,[15,0]]]],"public type `%s` is provided but not expected in object of type%a"],Ogr=IT,Rgr=[0,[11,"public field `",[2,0,[11,h$,[15,0]]]],"public field `%s` is provided but not expected in object of type%a"],Qgr=IT,Cgr=[0,jR,2703,24],Hgr=[0,jR,2689,24],Vgr=[0,1,0],Lgr=ok,zgr=[0,[11,"\nHint: Did you mean to import ",[2,0,[12,63,0]]],"\nHint: Did you mean to import %s?"],Sgr=[1,"hole"],Zgr=[0,[11,"The `",[2,0,[11,"` argument can be inferred and omitted here (the function parameter is `implicit`).",0]]],"The `%s` argument can be inferred and omitted here (the function parameter is `implicit`)."],Wgr=bg,Xgr=bg,Jgr=[0,[11,"expected function type, but expression produces type",[15,0]],"expected function type, but expression produces type%a"],Ygr=[0,[11,zs,0],zs],rqr=[0,jR,2870,14],nqr=FI,tqr=[0,[11,vD,0],vD],eqr=FI,aqr=[0,[11,"shared function argument contains abstract type",[15,0]],"shared function argument contains abstract type%a"],uqr=[0,[11,"shared function call result contains abstract type",[15,0]],"shared function call result contains abstract type%a"],fqr=[0,[11,Ac,0],Ac],iqr=[0,[11,"this function call implicitly requires `system` capability and may perform undesired actions (please review the call and provide a type instantiation `` to suppress this warning)",0]]],"this function call implicitly requires `system` capability and may perform undesired actions (please review the call and provide a type instantiation `` to suppress this warning)"],cqr=Af,vqr=[0,[11,"wrong number of arguments: expected ",[4,0,0,0,[11,pF,[4,0,0,0,[12,10,[15,[12,10,[15,0]]]]]]]],"wrong number of arguments: expected %d but got %d\n%a\n%a"],oqr=[0,[11,Aw,[15,[11,Ox,[15,0]]]],OI],Aqr=KF,sqr=[0,jR,3063,10],bqr=[0,[11,"function `.",[2,0,[12,96,0]]],"function `.%s`"],lqr=Ok,Bqr=[0,[12,10,[2,0,0]],"\n%s"],jqr=[0,[11,"cannot apply ",[2,0,[11,SU,[15,[11,"\nto argument of type",[15,[11,DG,[2,0,[2,0,0]]]]]]]]],"cannot apply %s of type%a\nto argument of type%a\nbecause %s%s"],kqr=[0,jR,3155,2],pqr=[0,[11,"the switch has type",[15,[11,"\nbecause branches have inconsistent types,\nthis case produces type",[15,[11,"\nthe previous produce type",[15,0]]]]]],"the switch has type%a\nbecause branches have inconsistent types,\nthis case produces type%a\nthe previous produce type%a"],mqr=kA,dqr=[0,jR,3217,2],_qr=[0,[11,f,0],f],hqr="M0102",xqr=[0,[11,kU,0],kU],yqr="M0103",wqr=[0,[11,jA,[15,0]],Db],gqr=cm,qqr=[0,[11,BM,0],BM],Iqr="M0184",Dqr=[0,[11,h,[2,0,[11,rT,0]]],sx],Eqr=Ep,Nqr=[0,[11,h,[2,0,[11,rT,0]]],sx],Tqr=Ep,Fqr=[0,[11,aU,0],aU],Mqr=ZF,Pqr=[0,[11,dN,0],dN],Uqr=[0,3,[0,0,0]],Gqr=[0,[11,lP,0],lP],$qr=[0,[11,Ms,0],Ms],Kqr=[0,3,[0,0,0]],Oqr=[0,[11,eF,0],eF],Rqr=[0,jR,3321,19],Qqr=[0,jR,3334,2],Cqr=[0,[11,"this expression has type `",[15,[12,96,0]]],"this expression has type `%a`"],Hqr=[0,jR,3346,2],Vqr=[0,[11,"literal pattern cannot consume expected type",[15,0]],"literal pattern cannot consume expected type%a"],Lqr="M0110",zqr=[0,[11,"operator pattern cannot consume expected type",[15,0]],"operator pattern cannot consume expected type%a"],Sqr="M0111",Zqr=_i,Wqr=[0,[11,T$,[15,[11,"`, got `(",[2,0,[11,")`",0]]]]],"expected `%a`, got `(%s)`"],Xqr=[0,[11,hs,0],hs],Jqr="M0112",Yqr=[0,[11,T$,[15,[11,"`, got object type",0]]],"expected `%a`, got object type"],rIr=[0,[11,Nt,0],Nt],nIr="M0113",tIr=[0,[11,"object pattern cannot consume values from actor type",[15,0]],"object pattern cannot consume values from actor type%a"],eIr="M0114",aIr=[0,[11,T$,[15,[11,"`, got `?_`",0]]],"expected `%a`, got `?_`"],uIr=[0,[11,SM,0],SM],fIr="M0115",iIr=[0,[11,T$,[15,[11,"`, got `{#",[2,0,[11," : _}`",0]]]]],"expected `%a`, got `{#%s : _}`"],cIr=[0,[11,rh,0],rh],vIr="M0116",oIr=[0,[11,Bh,0],Bh],AIr=aP,sIr=[0,[11,"pattern of type",[15,[11,"\ncannot consume expected type",[15,0]]]],"pattern of type%a\ncannot consume expected type%a"],bIr="M0117",lIr=[0,[11,h,[2,0,[11,rT,0]]],sx],BIr=Ep,jIr=[0,[11,CA,[4,3,0,0,[11,KB,[4,3,0,0,0]]]],Fy],kIr=mp,pIr=[0,[11,"duplicate field ",[2,0,[11,Tj,0]]],"duplicate field %s in object pattern"],mIr=fN,dIr=[0,[11,"object field ",[2,0,[11,AR,[15,0]]]],"object field %s is not contained in expected type%a"],_Ir=mD,hIr=[0,[11,"cannot pattern match mutable field ",[2,0,0]],"cannot pattern match mutable field %s"],xIr="M0120",yIr=Yr,wIr=[0,[11,h,[2,0,[11,rT,0]]],sx],gIr=Ep,qIr=[0,[11,aU,0],aU],IIr=ZF,DIr=[0,[11,"mismatched types for type ",[2,0,[11," in patterns",0]]],"mismatched types for type %s in patterns"],EIr=aP,NIr=[0,[11,GG,0],GG],TIr=aP,FIr=[0,[11,uc,[2,0,[11,rT,0]]],"duplicate binding for type %s in pattern"],MIr=Ep,PIr=[0,[11,CA,[4,3,0,0,[11,KB,[4,3,0,0,0]]]],Fy],UIr=mp,GIr=[0,[11,"object type field ",[2,0,[11,AR,[15,0]]]],"object type field %s is not contained in expected type%a"],$Ir=mD,KIr=[0,[11,"duplicate type field ",[2,0,[11,Tj,0]]],"duplicate type field %s in object pattern"],OIr=fN,RIr=[0,[11,"duplicate type binding for ",[2,0,[11,rT,0]]],"duplicate type binding for %s in pattern"],QIr=Ep,CIr=[0,[11,Pa,[2,0,[11,cr,[2,0,[11,pI,[2,0,[11,"object type have colliding hashes",0]]]]]]],"field names %s and %s in %sobject type have colliding hashes"],HIr=[0,[11,OO,0],OO],VIr=[0,1,[0,2,0]],LIr=[0,[11,cM,0],cM],zIr=[0,[11,"public actor field ",[2,0,[11," has non-shared function type",[15,0]]]],"public actor field %s has non-shared function type%a"],SIr=[0,[11,fx,[2,0,[11," in parenthetical is declared with type",[15,[11,jw,[15,0]]]]]],"field %s in parenthetical is declared with type%a\ninstead of expected type%a"],ZIr=[0,jR,3799,39],WIr=[0,[11,Wl,0],Wl],XIr=cG,JIr=[0,[11,td,0],td],YIr=cG,rDr=[0,jR,3802,25],nDr=[0,[11,vK,0],vK],tDr=uf,eDr=[0,[11,Jj,[2,0,[11," in parenthetical",0]]],"unrecognised attribute %s in parenthetical"],aDr=zh,uDr=[0,[11,"system function ",[2,0,[11," is declared with type",[15,[11,jw,[15,0]]]]]],"system function %s is declared with type%a\ninstead of expected type%a"],fDr=[0,[11,kT,0],kT],iDr=[0,[11,Am,0],Am],cDr=dw,vDr=ok,oDr=[0,[11,"unexpected system method named ",[2,0,[11,", expected ",[2,0,0]]]],"unexpected system method named %s, expected %s"],ADr=[0,[11,gG,0],gG],sDr=[0,jR,3862,9],bDr=Ht,lDr=[0,[11,YU,0],YU],BDr=MT,jDr=[0,[11,Xf,0],Xf],kDr=MT,pDr=[0,[11,fM,0],fM],mDr=MT,dDr=[0,[11,ID,0],ID],_Dr=[0,[11,"expected stable type, but migration expression ",[2,0,[11," non-stable type",[15,0]]]],"expected stable type, but migration expression %s non-stable type%a"],hDr=[0,[11,"expected object type, but migration expression ",[2,0,[11," non-object type",[15,0]]]],"expected object type, but migration expression %s non-object type%a"],xDr=[0,[11,"expected non-generic, local function type, but migration expression produces type",[15,0]],"expected non-generic, local function type, but migration expression produces type%a"],yDr=[0,[11,"initial actor requires field `",[2,0,[11,p$,[15,0]]]],"initial actor requires field `%s` of type%a"],wDr=Kb,gDr=[0,[11,GB,[2,0,[11,p$,[15,[11,"\nbut does not produce it, yet the field is declared in the actor.\n",[2,0,[12,10,[2,0,0]]]]]]]],"migration expression consumes field `%s` of type%a\nbut does not produce it, yet the field is declared in the actor.\n%s\n%s"],qDr=My,IDr=[0,[11,GB,[2,0,[11,p$,[15,[11,"\nbut does not produce it. The field is not declared in the actor.\n",[2,0,[12,10,[2,0,0]]]]]]]],"migration expression consumes field `%s` of type%a\nbut does not produce it. The field is not declared in the actor.\n%s\n%s"],DDr=ue,EDr=[0,[11,"migration expression produces unexpected field `",[2,0,[11,p$,[15,[12,10,[2,0,0]]]]]],"migration expression produces unexpected field `%s` of type%a\n%s"],NDr=Yr,TDr=[0,[11,"migration expression produces field `",[2,0,[11,p$,[15,[11,"\n, not the expected type",[15,[15,0]]]]]]],"migration expression produces field `%s` of type%a\n, not the expected type%a%a"],FDr=[0,[11,"expected expression with field `migration`, but expression has type",[15,0]],"expected expression with field `migration`, but expression has type%a"],MDr=[0,[11,Oi,0],Oi],PDr=yj,UDr=[0,jR,4076,24],GDr=[0,[11,Jj,[2,0,[11," in parenthetical note",0]]],"unrecognised attribute %s in parenthetical note"],$Dr=zh,KDr=[0,[11,nI,0],nI],ODr="M0219",RDr=[0,[11,cd,0],cd],QDr=Bb,CDr=[0,[11,Sf,0],Sf],HDr="M0250",VDr=[0,[11,Ni,0],Ni],LDr=Yq,zDr=[0,[11,nR,0],nR],SDr="M0220",ZDr=[0,[11,xi,0],xi],WDr=[0,[11,gc,[2,0,[11,"stability modifier: allowed on var or simple let declarations only",0]]],"misplaced %sstability modifier: allowed on var or simple let declarations only"],XDr=[0,[11,Fl,[2,0,[11,Zw,[15,0]]]],YD],JDr=ta,YDr=[0,jR,4138,14],rEr=yj,nEr=uG,tEr=Xv,eEr=[0,[11,"Avoid binding a unit `()` result; remove `",[2,0,[11,"` and keep the expression",0]]],"Avoid binding a unit `()` result; remove `%s` and keep the expression"],aEr=Rm,uEr=[0,[11,NK,0],NK],fEr=[0,[11,Qg,0],Qg],iEr=[0,[11,fb,0],fb],cEr=[0,[11,"shared constructor has non-shared parameter type",[15,0]],"shared constructor has non-shared parameter type%a"],vEr=[0,[11,vt,0],vt],oEr=[0,jR,4403,35],AEr=[0,[11,S,0],S],sEr=qk,bEr=[0,[11,"class body of type",[15,[11,RE,[15,0]]]],"class body of type%a\ndoes not match expected type%a"],lEr=[0,[11,cK,0],cK],BEr=[0,[11,MB,0],MB],jEr=[0,[11,uO,[2,0,0]],fB],kEr=Uh,pEr=[0,[11,"empty block cannot produce expected type",[15,0]],"empty block cannot produce expected type%a"],mEr=[0,[11,Aw,[15,[11,Ox,[15,0]]]],OI],dEr=KF,_Er=dt,hEr=[0,[11,uO,[2,0,0]],fB],xEr=Uh,yEr=dt,wEr=dt,gEr=[0,0,2],qEr=[0,[11,uO,[2,0,0]],fB],IEr=Uh,DEr=[0,jR,4692,2],EEr=[0,jR,4695,10],NEr=[0,[11,nd,0],nd],TEr=Rw,FEr=[0,[11,ro,0],ro],MEr=[0,3,[0,0,0]],PEr=[0,[11,Ot,0],Ot],UEr=[0,1,[0,2,0]],GEr=[0,[11,zA,0],zA],$Er=[0,[11,Fl,[2,0,[11,Zw,[15,0]]]],YD],KEr=ta,OEr=[0,jR,5003,28],REr=Yr,QEr=zn,CEr=ND,HEr=[0,[11,Ix,0],Ix],VEr=[0,[11,nT,0],nT],LEr=OB,zEr=[0,[11,ke,0],ke],SEr=[0,[11,IE,0],IE],ZEr=Wi,WEr=[0,[11,Nn,0],Nn],XEr=lO,JEr=[0,jR,4930,26],YEr=[0,jR,4931,23],rNr=[0,[11,up,0],up],nNr=w,tNr=[0,1,[0,2,0]],eNr=[0,[11,uw,0],uw],aNr=w,uNr=[0,[11,"duplicate binding for mixin ",[2,0,[11,VO,0]]],"duplicate binding for mixin %s in imports"],fNr=Ep,iNr=[0,[11,uc,[2,0,[11,VO,0]]],"duplicate binding for type %s in imports"],cNr=Ep,vNr=[0,[11,h,[2,0,[11,VO,0]]],"duplicate binding for %s in imports"],oNr=Ep,ANr=[0,[11,rg,0],rg],sNr=[0,jR,4802,4],bNr=[0,jR,4806,9],lNr=Mm,BNr=jE,jNr=[0,[11,"You can use the dot notation `",[2,0,[12,46,[2,0,[11,"(...)` here",0]]]]],"You can use the dot notation `%s.%s(...)` here"],kNr=Mm,pNr=Zp,mNr=[0,[11,"overlapping resolution for `",[2,0,[11,"` in scope from these modules: ",[2,0,0]]]],"overlapping resolution for `%s` in scope from these modules: %s"],dNr=Zp,_Nr=[0,[11,"The ambiguous implicit candidates are: ",[2,0,[12,46,0]]],"The ambiguous implicit candidates are: %s."],hNr=[0,[11,"ambiguous implicit argument ",[2,0,[11,Qa,[15,[12,46,0]]]]],"ambiguous implicit argument %s of type %a."],xNr=[0,0,0],yNr=[0,[11,"operator is not defined for operand types",[15,[11,uk,[15,0]]]],"operator is not defined for operand types%a\nand%a"],wNr=[0,[11,"duplicate definition for ",[2,0,[2,0,[11,Jw,0]]]],"duplicate definition for %s%s in block"],gNr=[8,0,0,0,0,[0,[2,2],0]],qNr=i,INr=[2,14],DNr=dp,ENr=[2,2],NNr=t_,TNr=[8,0,0,0,0,[0,[2,2],0]],FNr=i,MNr=[2,3],PNr=Vq,UNr=[2,3],GNr=K$,$Nr=[8,0,0,0,[0,[2,2],0],[0,[2,3],0]],KNr=Co,ONr=[2,2],RNr=oP,QNr=Vq,CNr=K$,HNr=[2,2],VNr=t_,LNr=[8,0,0,0,0,[0,[2,2],0]],zNr=i,SNr=[0,[2,2],0],ZNr=Co,WNr=[0,[11,"literal of type",[15,[11,"\ndoes not have expected type",[15,[2,0,0]]]]],"literal of type%a\ndoes not have expected type%a%s"],XNr=[0,jR,1280,4],JNr=[0,[11,'string literal "',[2,0,[11,'": is not valid utf8',0]]],'string literal "%s": is not valid utf8'],YNr=[0,[11,"literal out of range for type ",[2,0,0]],"literal out of range for type %s"],rTr=[0,[11,gc,[2,0,[11,"; try enclosing in an async expression or query function",0]]],"misplaced %s; try enclosing in an async expression or query function"],nTr=qN,tTr=[0,[11,gc,[2,0,0]],wP],eTr=qN,aTr=[0,[11,gc,[2,0,[11,"; try enclosing in an async expression",0]]],"misplaced %s; try enclosing in an async expression"],uTr=XP,fTr=[0,[11,gc,[2,0,0]],wP],iTr=XP,cTr=[0,[11,gc,[2,0,[11,"; a query cannot contain an ",[2,0,0]]]],"misplaced %s; a query cannot contain an %s"],vTr=yB,oTr=[0,[11,gc,[2,0,[11,"; a composite query cannot contain an ",[2,0,0]]]],"misplaced %s; a composite query cannot contain an %s"],ATr=yB,sTr=[0,[11,gc,[2,0,[11,"; try enclosing in an async function",0]]],"misplaced %s; try enclosing in an async function"],bTr=yB,lTr=[0,jR,745,22],BTr=[0,[11,"start of scope ",[2,0,[11,t,[2,0,0]]]],"start of scope %s mentioned in error at %s"],jTr=[0,[11,"end of scope ",[2,0,[11,t,[2,0,0]]]],"end of scope %s mentioned in error at %s"],kTr=[0,[11,Ob,[15,[11," is ",[2,0,0]]]],"\n scope %a is %s"],pTr=[0,[11,Ob,[15,[11," is the global scope",0]]],"\n scope %a is the global scope"],mTr=[0,[11,jt,0],jt],dTr=[0,[11,FR,0],FR],_Tr=[0,jR,680,2],hTr=[0,[11,uv,0],uv],xTr=[0,[11,"\ntype",[15,[11,"\nis or contains non-shared type",[15,0]]]],"\ntype%a\nis or contains non-shared type%a"],yTr=[0,[11,"unresolved import ",[2,0,0]],"unresolved import %s"],wTr=GU,gTr=[0,[11,"cannot infer type of forward import ",[2,0,0]],"cannot infer type of forward import %s"],qTr=[0,[11,"imported file ",[2,0,[11," not loaded",0]]],"imported file %s not loaded"],ITr=Zp,DTr=[0,[11,dt,[2,0,[2,0,[12,32,[2,0,[12,32,[2,0,[11," references type parameter",[2,0,[12,32,[2,0,[11," from an outer scope",0]]]]]]]]]]]],"type %s%s %s %s references type parameter%s %s from an outer scope"],ETr=_n,NTr=fP,TTr=HI,FTr=vn,MTr=Ll,PTr=np,UTr=vp,GTr=jv,$Tr=Zc,KTr=[0,[11,wl,0],wl],OTr=[0,[11,"first use of ",[2,0,0]],"first use of %s"],RTr=[0,[11,"duplicate ",[2,0,[11," name ",[2,0,[11,pI,[2,0,0]]]]]],"duplicate %s name %s in %s"],QTr=[0,[2,0,[11," names ",[2,0,[11,cr,[2,0,[11,pI,[2,0,[11," have colliding hashes",0]]]]]]]],"%s names %s and %s in %s have colliding hashes"],CTr=[0,[11,JE,0],JE],HTr=Fr,VTr=wh,LTr=[0,[11,"this ",[2,0,[11,SU,[15,[11,"\ndoes not cover value\n ",[2,0,0]]]]]],"this %s of type%a\ndoes not cover value\n %s"],zTr=wu,STr=[0,[11,hk,0],hk],ZTr=JR,WTr=[0,[11,"cannot decide equality between type",[15,[11,uk,[15,0]]]],"cannot decide equality between type%a\nand%a"],XTr=JR,JTr=[0,[11,la,[15,[11,uk,[15,0]]]],mM],YTr=JR,rFr=[0,[11,la,[15,[11,uk,[15,0]]]],mM],nFr=JR,tFr=sN,eFr=G_,aFr=[0,[11,"unused identifier: `",[2,0,[12,96,0]]],"unused identifier: `%s`"],uFr=[0,[11,"help: if this is intentional, prefix it with an underscore: `_",[2,0,[12,96,0]]],"help: if this is intentional, prefix it with an underscore: `_%s`"],fFr=vu,iFr=G$,cFr=[0,[11,"unused field in pattern: `",[2,0,[12,96,0]]],"unused field in pattern: `%s`"],vFr=[0,[11,"help: if this is intentional, delete or rewrite as `",[2,0,[11," = _`",0]]],"help: if this is intentional, delete or rewrite as `%s = _`"],oFr=[0,[11,Fl,[2,0,[11," is never reassigned, consider using `let`",0]]],"variable %s is never reassigned, consider using `let`"],AFr=tl,sFr=[0,[11,"pattern variable ",[2,0,[11," has larger type",[15,[11,"\nbecause its types in the pattern alternatives are unrelated smaller types:\ntype in left pattern is",[15,[11,"\ntype in right pattern is",[15,0]]]]]]]],"pattern variable %s has larger type%a\nbecause its types in the pattern alternatives are unrelated smaller types:\ntype in left pattern is%a\ntype in right pattern is%a"],bFr=na,lFr=Je,BFr=[0,[2,0,[11,"\n (This is a limitation of the current version",[2,0,[11,".)",0]]]],"%s\n (This is a limitation of the current version%s.)"],jFr=[0,[2,0,[12,32,[2,0,[11," is deprecated for caffeine",0]]]],"%s %s is deprecated for caffeine"],kFr=[0,[11,nw,0],nw],pFr=[0,[2,0,[12,32,[2,0,[11," is deprecated:\n",[2,0,0]]]]],"%s %s is deprecated:\n%s"],mFr=lK,dFr=[0,[2,0,0],JF],_Fr=pl,hFr=pl,xFr=pl,yFr=[0,[11," in type environment:",[15,0]]," in type environment:%a"],wFr=[0,[11," in label environment:",[15,0]]," in label environment:%a"],gFr=[0,[11," in environment:",[15,0]]," in environment:%a"],qFr=[0,[11,nA,[15,0]],$k],IFr=GA,DFr=Aq,EFr=mU,NFr=Go,TFr=yI,FFr=[0,[2,0,[12,46,0]],"%s."],MFr=[0,[11,nA,[15,0]],$k],PFr=[0,[11,rG,0],rG],UFr=[0,[11,"But got ",[4,0,0,0,[11,FE,[2,0,[11,Mn,[15,0]]]]]],"But got %d argument%s of type:%a"],GFr=[0,[11,Bl,0],Bl],$Fr=[0,[11,"Expected ",[4,0,0,0,[11,FE,[2,0,[11,Mn,[15,0]]]]]],"Expected %d argument%s of type:%a"],KFr=Je,OFr=[0,[11,DG,[2,0,0]],"\nbecause %s"],RFr=[0,1],QFr=[0,[0,0]],CFr=[0,Kc,27159,12],HFr=[0,[1,0]],VFr=[0,[1,1]],LFr=[0,[1,2]],zFr=[0,[1,3]],SFr=[0,[1,4]],ZFr=[0,[1,5]],WFr=[0,[1,6]],XFr=[0,[1,7]],JFr=[0,[1,8]],YFr=[0,[1,9]],rMr=[0,[1,10]],nMr=[0,[1,11]],tMr=[0,[1,12]],eMr=[0,[1,13]],aMr=[0,[1,14]],uMr=[0,[1,15]],fMr=[0,[1,16]],iMr=[0,[1,17]],cMr=[0,[1,18]],vMr=[0,[1,19]],oMr=[0,[1,20]],AMr=[0,[1,21]],sMr=[0,[1,22]],bMr=[0,[1,23]],lMr=[0,[1,24]],BMr=[0,[1,25]],jMr=[0,[1,26]],kMr=[0,[1,27]],pMr=[0,[1,28]],mMr=[0,[1,29]],dMr=[0,[1,30]],_Mr=[0,[1,31]],hMr=[0,[1,32]],xMr=[0,[1,33]],yMr=[0,[1,34]],wMr=[0,[1,35]],gMr=[0,[1,36]],qMr=[0,[1,37]],IMr=[0,[1,38]],DMr=[0,[1,39]],EMr=[0,[1,40]],NMr=[0,[1,41]],TMr=[0,[1,42]],FMr=[0,[1,43]],MMr=[0,[1,44]],PMr=[0,[1,45]],UMr=[0,[1,46]],GMr=[0,[1,47]],$Mr=[0,[1,48]],KMr=[0,[1,49]],OMr=[0,[1,50]],RMr=[0,[1,51]],QMr=[0,[1,52]],CMr=[0,[1,53]],HMr=[0,[1,54]],VMr=[0,[1,55]],LMr=[0,[1,56]],zMr=[0,[1,57]],SMr=[0,[1,58]],ZMr=[0,[1,59]],WMr=[0,[1,60]],XMr=[0,[1,61]],JMr=[0,[1,62]],YMr=[0,[1,63]],rPr=[0,[1,64]],nPr=[0,[1,65]],tPr=[0,[1,66]],ePr=[0,[1,67]],aPr=[0,[1,68]],uPr=[0,[1,69]],fPr=[0,[1,70]],iPr=[0,[1,71]],cPr=[0,[1,72]],vPr=[0,[1,73]],oPr=[0,[1,74]],APr=[0,[1,75]],sPr=[0,[1,76]],bPr=[0,[1,77]],lPr=[0,[1,78]],BPr=[0,[1,79]],jPr=[0,[1,80]],kPr=[0,[1,81]],pPr=[0,[1,82]],mPr=[0,[1,83]],dPr=[0,[1,84]],_Pr=[0,[1,85]],hPr=[0,[1,86]],xPr=[0,[1,87]],yPr=[0,[1,88]],wPr=[0,[1,89]],gPr=[0,[1,90]],qPr=[0,[1,91]],IPr=[0,[1,92]],DPr=[0,[1,93]],EPr=[0,[1,94]],NPr=[0,[1,95]],TPr=[0,[1,96]],FPr=[0,[1,97]],MPr=[0,[1,98]],PPr=[0,[1,99]],UPr=[0,[1,x$]],GPr=[0,[1,_q]],$Pr=[0,Kc,26949,12],KPr=[0,[0,0]],OPr=[0,[0,1]],RPr=[0,[0,2]],QPr=[0,[0,3]],CPr=[0,[0,4]],HPr=[0,[0,5]],VPr=[0,[0,6]],LPr=[0,[0,7]],zPr=[0,[0,8]],SPr=[0,[0,9]],ZPr=[0,[0,10]],WPr=[0,[0,11]],XPr=[0,[0,12]],JPr=[0,[0,13]],YPr=[0,[0,14]],rUr=[0,[0,15]],nUr=[0,[0,16]],tUr=[0,[0,17]],eUr=[0,[0,18]],aUr=[0,[0,19]],uUr=[0,[0,20]],fUr=[0,[0,21]],iUr=[0,[0,22]],cUr=[0,[0,23]],vUr=[0,[0,24]],oUr=[0,[0,25]],AUr=[0,[0,26]],sUr=[0,[0,27]],bUr=[0,[0,28]],lUr=[0,[0,29]],BUr=[0,[0,30]],jUr=[0,[0,31]],kUr=[0,[0,32]],pUr=[0,[0,33]],mUr=[0,[0,34]],dUr=[0,[0,35]],_Ur=[0,[0,36]],hUr=[0,[0,37]],xUr=[0,[0,38]],yUr=[0,[0,39]],wUr=[0,[0,40]],gUr=[0,[0,41]],qUr=[0,[0,42]],IUr=[0,[0,43]],DUr=[0,[0,44]],EUr=[0,[0,45]],NUr=[0,[0,46]],TUr=[0,[0,47]],FUr=[0,[0,48]],MUr=[0,[0,49]],PUr=[0,[0,50]],UUr=[0,[0,51]],GUr=[0,[0,52]],$Ur=[0,[0,53]],KUr=[0,[0,54]],OUr=[0,[0,55]],RUr=[0,[0,56]],QUr=[0,[0,57]],CUr=[0,[0,58]],HUr=[0,[0,59]],VUr=[0,[0,60]],LUr=[0,[0,61]],zUr=[0,[0,62]],SUr=[0,[0,63]],ZUr=[0,[0,64]],WUr=[0,[0,65]],XUr=[0,[0,66]],JUr=[0,[0,67]],YUr=[0,[0,68]],rGr=[0,[0,69]],nGr=[0,[0,70]],tGr=[0,[0,71]],eGr=[0,[0,72]],aGr=[0,[0,73]],uGr=[0,[0,74]],fGr=[0,[0,75]],iGr=[0,[0,76]],cGr=[0,[0,77]],vGr=[0,[0,78]],oGr=[0,[0,79]],AGr=[0,[0,80]],sGr=[0,[0,81]],bGr=[0,[0,82]],lGr=[0,[0,83]],BGr=[0,[0,84]],jGr=[0,[0,85]],kGr=[0,[0,86]],pGr=[0,[0,87]],mGr=[0,[0,88]],dGr=[0,[0,89]],_Gr=[0,[0,90]],hGr=[0,[0,91]],xGr=[0,[0,92]],yGr=[0,[0,93]],wGr=[0,[0,94]],gGr=[0,[0,95]],qGr=[0,[0,96]],IGr=[0,[0,97]],DGr=[0,[0,98]],EGr=[0,[0,99]],NGr=[0,[0,x$]],TGr=[0,[0,_q]],FGr=[0,[0,Pl]],MGr=[0,[0,_$]],PGr=[0,[0,Yo]],UGr=[0,[0,Bs]],GGr=[0,[0,ck]],$Gr=[0,[0,db]],KGr=[0,[0,QN]],OGr=[0,[0,qT]],RGr=[0,[0,Wr]],QGr=[0,[0,S_]],CGr=[0,[0,Jt]],HGr=[0,[0,W$]],VGr=[0,[0,Yv]],LGr=[0,[0,pp]],zGr=[0,[0,rM]],SGr=[0,[0,t$]],ZGr=[0,[0,OP]],WGr=[0,[0,tw]],XGr=[0,[0,HP]],JGr=[0,[0,KP]],YGr=[0,[0,Tx]],r$r=[0,[0,UU]],n$r=[0,[0,yy]],t$r=[0,[0,kI]],e$r=[0,[0,Yn]],a$r=[0,[0,oj]],u$r=[0,[0,hh]],f$r=[0,[0,qs]],i$r=[0,[0,An]],c$r=[1,"dummy"],v$r=GA,o$r=GA,A$r=[1,_i],s$r=b,b$r=b,l$r=b,B$r=b,j$r=[1,_i],k$r=_i,p$r=_i,m$r=_i,d$r=[11,0],_$r=ia,h$r=ia,x$r=II,y$r=[0,0],w$r=[0,1],g$r=[6,0],q$r=[11,0],I$r=[11,0],D$r=[11,0],E$r=[11,0],N$r=[11,0],T$r=ia,F$r=ia,M$r=II,P$r=[0,0],U$r=[0,1],G$r=[6,0],$$r=[11,0],K$r=[11,0],O$r=[11,0],R$r=[11,0],Q$r=_i,C$r=_i,H$r=lO,V$r=lO,L$r=[11,0],z$r=[11,0],S$r=[0,Ny,LP,30],Z$r=ia,W$r=[0,0],X$r=GA,J$r=Aq,Y$r=Go,rKr=[0,Ny,LP,30],nKr=ia,tKr=[0,0],eKr=[0,Ny,LP,30],aKr=ia,uKr=[0,0],fKr=GA,iKr=Aq,cKr=Go,vKr=[0,Ny,LP,30],oKr=ia,AKr=[0,0],sKr=[0,Ny,LP,30],bKr=ia,lKr=[0,0],BKr=GA,jKr=Aq,kKr=Go,pKr=[0,Ny,LP,30],mKr=ia,dKr=[0,0],_Kr=[0,Ny,LP,30],hKr=ia,xKr=[0,0],yKr=GA,wKr=Aq,gKr=Go,qKr=[0,Ny,LP,30],IKr=ia,DKr=[0,0],EKr=sq,NKr=sq,TKr=sq,FKr=sq,MKr=sq,PKr=sq,UKr=sq,GKr=sq,$Kr=sq,KKr=sq,OKr=sq,RKr=sq,QKr=sq,CKr=sq,HKr=sq,VKr=sq,LKr=sq,zKr=sq,SKr=sq,ZKr=sq,WKr=[3,0],XKr=[1,Fa],JKr=lc,YKr=[6,0],rOr=[0,1],nOr=qa,tOr=[1,Fa],eOr=DM,aOr=[0,[0,16,'\0\x009†WB\0\0\0\0\0\0\0\0\\¨R\0\0\0\0\0\0\0\0R\0\0WB3/è\0\x006žZxZxZx[°X¾\0\x002\0\x001V3ê+¶3ê/fZx2X3Æ+¶2Zx0<*,ŒZx/6\0\x0020^WàWàWàWà\0\0WàWà=f>^WàKP3¢6ž5R5²\0\0\0\0\0\0\0\0\0\x004/†WB>^5²>^\0\0>^2Ì8ŽX¾WB\0\x004p3¦2FH3à+¶2FWB\0\x002.WB\0\0Vä3ˆ+¶2WB\0\x001þWB\0\0\0\0\0\x006ž/R7–\0\0\0\0\0\0;v\0\0\0\0\0\0:~RWB3(0Ö0øFH6ž/R/R/R\0\0\0\0\0\0\0\0,FH6ž/R\0\0,¶FH6ž/R\0\0FH6ž>^:~,”/Ò6ž.˜/R\0\0FH6ž/R\0\0.˜/R\0\0.\\6ž.˜/R\0\0FH6ž/R\0\0.˜/R\0\0/z6ž.˜/R\0\0FH6ž/R\0\0.˜/R\0\0WB/R\0\0=fYš=f>^>^5²/T/†/¸\0\x001Ô/†\0\0/†\0\0WàB>8ŽWBB¨R/‚6ž>^6/„R>^Wà/Æ5²\0\0WàWàWà5²\0\0\0\0/ºZx8ŽZx8Ž\0\0/Ü\0\0/Þ\0\0R5²>^0l\0\0Wà\0\0\0\0\0\0Wà\0\0Wà\0\x008ŽZ\f8ŽFH6ž>^R0WB0R+p>^\0\0\0\0>^>^AF8ŽZ\0\0\0\x000‚WB2ô00NFH6ž/R\0\x000dFH6ž/R\0\x000zFH6ž/R\0\0FH6ž>^\0\0\0\0FH6ž/R\0\x000˜FH6ž/R\0\0FH6ž/R\0\0\nY&\0\0\0\0>^0æ6ž>^>^5²>^\0\x000è4°\0\0Wà\0\x001"WB1R>^,t>^\0\0\0\0\0\0Wà\0\0>^Z\0\0:Y&\0\0>^>^>^>^>^>^Wà\0\0Z6ž.˜/R\0\0FH6ž/R\0\0\0\0.˜/R\0\0\0\0\0\x001¾R>^\0\0\0\0\0\0\0\0\0\0zWà\0\0^Wà\0\0WàCBWà\0\0WàFHWàGJWàINR>^\0\0\0\0\0\0\0\0\0\0\0\0>^\0\0>^\0\0Z\0\0\0\0FWà\f.R\0\0\0\0\0\0Wà>Wà$ŽWà\0WàWà)¢WàWàNR\0\0R\0\0R\0\0WàR\0\0Wà&–R\0\0R\0\0R\0\0R\0\0R\0\0R\0\0WàVWà!‚WàQ^WàWà(žWàOZWàR`WàSbWàTdWàUfWà\t"R\0\0R\0\0R\0\0R\0\0R\0\0Zx\0\0R\0\0R\0\0R\0\0\0\0WàZR\0\0Wà\0\0R\0\0Wà ~R\0\0Wà\bR\0\0WàJWàJPR\0\0WàEFR\0\0WàDDR\0\0WàHLR\0\0Wà\0\0R\0\0R\0\0WàjWàvR\0\0WàBWàP\\WànR\0\0WàrR\0\0R\0\0WàVhWàLTWàbWàKRWàMVWàNXWàfR\0\0Zx\0\0R\0\0R\0\0Wà\r2R\0\0Wà%’Wà\v*3Z\0\0\0\x003\f\0\0\0\0EF\0\x003Ž\0\x008Ž3š\0\0/V8Ž\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x003Â>^\0\0"†>^\0\0\0\0\0\0\0\x003Â\0\0.ª8Ž\0\x003Ð\0\0\n&>^\0\0\0\x003ú>^\0\0\0\0\0\x004\0\0DD3Â\\\n\0\x004X16ž2R\0\x004,Z\fX¾WB4p3œFH6ž/R\0\x003ÊFH6ž/R\0\0FH6ž/R\0\x001šFH6ž/R\0\0WB3(FH6ž/R\0\x003ðFH6ž/R\0\x003ŒWB2ô>^\0\0Z\0\x001¾EF0¼31\0\x001\0\0/º\0\x002â\0\0\0\0EF\0\0\'š>^\0\x003"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x003\0\x002f\0\0\0\0\0\0#Š>^\0\0CB4\\\0\x002þ13\0Yš>^\0\0/ºEF2ÀWB0ÒR3¤>^\0\x004z\0\0\0\0\0\0\0\0/ž:~\0\0:~\0\0\0\0\0\0\0\x002\0\x004’7–\0\x007–\0\0\0\0FH6ž>^\0\x004Œ\0\0-,>^\0\0WB>^\0\0>^\0\0\0\0\0\x002T\0\0\0\0X@2>\0\x002v12,\0\x004Æ1\0\x001\0\0[2Yš.&\0\0ZüYš\0\0\0\0\0\x004Â12Yš\0\0\0\0\0\0\0\0\0\0\0\0,’>^\0\0>^\0\0\0\0>^\0\x002\b\0\0\0\0\0\x001r\0\0\0\0\0\x009†:~4œ\0\0+œ:~\0\0@N9†\0\0\0\0\0\0/N1-L3ê484@ZxKªZx.|.¬/N\0\0/N\0\0*Ê,D\0\0*ˆ*@*ü,,,,4/ÄZx1/øZx;v2Ö,\0\0,\0\0,¶\0\0,tZx8Ž.¾,D\0\0,D\0\0*F-40ü*ä-8-vZx4\n-Zx6* -ð.˜Zx56-êZx2.x..ª,.¢.\0\x001`0ü\0\x000ü\0\0,0†\0\0\0\0'],[0,16,'\nMMM\t’MMMMMMMMMMMMMMMMMMMMM\tšM\tªMMMMM\t²M\tºMMMMMMMMM\t¢MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n2MMMM\nIII\t’IIIIIIIIIIIIIIIIIIIII\tšI\tªIIIII\t²I\tºIIIIIIIII\t¢IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII\n111\t’111111111111111111111\tš1\tª11111\t²1\tº111111111\t¢1111\n*1111111111111111111111111111111111111111111111111111111111111111111111111\n21111åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå\b~ååååååååååååååååååååååååååååååååååååååååååååååå99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999Ò9999999999999999999999999999999999999\n999\t’9\n"9999999999999999999\tš9\tª99999\t²9\tº999999999\t¢9999\n*99999999\n:99\nB999999999999999999999999999999999999\nJ999999999999999999999999\n29999\neee\t’e\n"eeeeeeeeeeeeeeeeeee\tše\tªeeeee\t²e\tºeeeeeeeee\t¢eeee\n*eeeeeeee\n:ee\nBeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\nJeeeeeeeeeeeeeeeeeeeeeeee\n2eeeeùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùzùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùù\n\0Å\0Å\0Å\t’\0Å\n"\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\tš\0Å\tª\0Å\0Å\0Å\0Å\0Å\t²\0Å\tº\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\t¢\0Å\0Å\0Å\0Å\n*\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\n:\0Å\0Å\nB\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\nJ\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\n2\0Å\0Å\0Å\0Å\n\n\t’\n"\nj\nz\tš\tª\t²\tº\t¢\n*\n\n:\nB\nځ\n⁁\nÊ\nê\nò\nú\nJ\n2\nҁQQQQQQQQQQQ\rrQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ\n\0­\0­\0­\t’\0­\n"\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\tš\0­\tª\0­\0­\0­\0­\0­\t²\0­\tº\0­\0­\0­\0­\0­\0­\0­\0­\0­\t¢\0­\0­\0­\0­\n*\0­\0­\0­\0­\0­\0­\0­\0­\n:\0­\0­\nB\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\nJ\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\n2\0­\0­\0­\0­QQQQ\t’QQQQQQQQQQQQQQQQQQQQQ\tšQ\tªQQQQQ\t²Q\tºQQQQQQQQQ\t¢QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ\n\0Õ\0Õ\0Õ\t’\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\tš\0Õ\tª\0Õ\0Õ\0Õ\0Õ\0Õ\t²\0Õ\tº\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\t¢\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õùùùùùùùùù*ù:Rvù"š\0ù¶~ùùùùùùöùùùùùùùŠùù‚Žùù.ùù†ùúùùù.Š\0Žù\0ùù^ùùŽ’ùùš¦âù¢Úîþùùù^ºùùùšª\0&ùùùùùùùùºùùùÊÚæùù\bj\0*ùùù\bz\0.ù\bŠ\bÎ\tj\tÆ\tâù\têùùùù"\tò%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\bþ%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n===\t’=\n"===================\tš=\tª=====\t²=\tº=========\t¢====\n*========\n:==\nB====================================\nJ========================\n2====\n\n\t’\n"\nj\nz\tš\tª\t²\tº\t¢\n*\nÂ\n:\nB\nÚ\nâ\nÊ\nê\nò\nú\nJ\n2\v\nÒ\n\n\n\n\nR\t’\nZ\n"\nb\nj\nriiiiiiiiiiiii\nzii\tš\n‚\tª\nŠiiii\t²\n’\tº\nšiiiiiiii\t¢\n¢\nª\n²i\n*\v\n\nºiiii\nÂi\n:\vi\nB\vi\v"\nÚiiii\nâiiiiiiiiii\nÊ\nêi\nòiiiiii\núiiiiii\nJ\v*iiiiii\v2iii\v:iiiiiiiii\vBii\n2\vJ\v\nÒi\n\0±\0±\0±\t’\0±\n"\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\tš\0±\tª\0±\0±\0±\0±\0±\t²\0±\tº\0±\0±\0±\0±\0±\0±\0±\0±\0±\t¢\0±\0±\0±\0±\n*\0±\0±\0±\0±\0±\0±\0±\0±\n:\0±\0±\nB\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\nJ\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\n2\0±\0±\0±\0±\n---\t’---------------------\tš-\tª-----\t²-\tº---------\t¢----\n*-------------------------------------------------------------------------\n2----¹¹¹¹¹¹¹¹¹*¹:Rv¹"š\0¹¶~¹¹¹¹¹¹ö¹¹¹¹¹¹¹Š¹¹‚޹¹.¹¹†¹ú¹¹¹.Š\0޹\0¹¹^¹¹Ž’¹¹š¦â¹¢Úîþ¹¹¹^º¹¹¹šª\0&¹¹¹¹¹¹¹¹º¹¹¹ÊÚæ¹¹\bj\0*¹¹¹\bz\0.¹\bŠ\bÎ\tj\tÆ\tâ¹\tê¹¹¹¹"\tò\n\n\t’\n"\nj\nz\tš\tª\t²\tº\t¢\n*\nº\n\n:\nB\nڍ\n⍍\nÊ\nê\nò\nú\nJ\n2\v\nҍ\n\0É\0É\0É\t’\0É\n"\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\tš\0É\tª\0É\0É\0É\0É\0É\t²\0É\tº\0É\0É\0É\0É\0É\0É\0É\0É\0É\t¢\0É\0É\0É\0É\n*\0É\0É\0É\0É\0É\0É\0É\0É\n:\0É\0É\nB\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\nJ\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\n2\0É\0É\0É\0É\0Ý\0Ý\0Ý\0Ý\t’\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\tš\0Ý\tª\0Ý\0Ý\0Ý\0Ý\0Ý\t²\0Ý\tº\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\t¢\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\n\0ñ\0ñ\0ñ\t’\0ñ\n"\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\tš\0ñ\tª\0ñ\0ñ\0ñ\0ñ\0ñ\t²\0ñ\tº\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\t¢\0ñ\0ñ\0ñ\0ñ\n*\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\n:\0ñ\0ñ\nB\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\nJ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\n2\0ñ\0ñ\0ñ\0ñ\n\0¹\0¹\0¹\t’\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\tš\0¹\tª\0¹\0¹\0¹\0¹\0¹\t²\0¹\tº\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\t¢\0¹\0¹\0¹\0¹\n*\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\n2\0¹\0¹\0¹\0¹\n\n\t’\n"\nj\nz\tš\tª\t²\tº\t¢\n*\nº\nÂ\n:\nB\nÚ\nâ\nÊ\nê\nò\nú\nJ\n2\v\nÒ\n\0µ\0µ\0µ\t’\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\tš\0µ\tª\0µ\0µ\0µ\0µ\0µ\t²\0µ\tº\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\t¢\0µ\0µ\0µ\0µ\n*\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\n2\0µ\0µ\0µ\0µ\n\0½\0½\0½\t’\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\tš\0½\tª\0½\0½\0½\0½\0½\t²\0½\tº\0½\0½\0½\0½\0½\0½\0½\0½\0½\t¢\0½\0½\0½\0½\n*\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\n2\0½\0½\0½\0½\n\0Ù\0Ù\0Ù\t’\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\tš\0Ù\tª\0Ù\0Ù\0Ù\0Ù\0Ù\t²\0Ù\tº\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\t¢\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\n2\0Ù\0Ù\0Ù\0Ù\t†\tÂ\vV\v^\vf\vn\vv\v~\v†\vŽ©©©©©©©©©©©©©\v–©©\vž\v¦\v®\v¶©©©©\v¾\vÆ\vÎ\vÖ©©©©©©©©\vÞ\væ\vî\vö©\vþ\f\f©©©©\f©\f\f&©\f.\f6©\f>\fF©©©©\fN©©©©©©©©©©\fV\f^©\ff©©©©©©\fn©©©©©©\fv\f~©©©©©©\f†©©©\fŽ©©©©©©©©©\f–©©\fž\f¦\f®\f¶©\n\0Í\0Í\0Í\t’\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\tš\0Í\tª\0Í\0Í\0Í\0Í\0Í\t²\0Í\tº\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\t¢\0Í\0Í\0Í\0Í\n*\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\n2\0Í\0Í\0Í\0Í\n…\n…\t’…\n"…\nj……………………………………\nz……\tš…\tª……………\t²…\tº………………………\t¢…………\n*………………\nÂ…\n:……\nB………\nÚ…………\nâ…………………………\nÊ\nê…\nò………………\nú………………\nJ………………………………………………………………\n2…\v\nÒ…111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r>111111111111111111111111111111111ö\nAAA\t’AAAAAAAAAAAAAAAAAAAAA\tšA\tªAAAAA\t²A\tºAAAAAAAAA\t¢AAAA\n*AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n2AAAA\n\r\n\r\t’\r\n"\r\nj\r\r\r\r\r\r\r\r\r\r\r\r\r\r\nz\r\r\tš\r\tª\r\r\r\r\r\t²\r\tº\r\r\r\r\r\r\r\r\r\t¢\r\r\r\r\n*\r\r\r\r\r\r\nÂ\r\n:\r\r\nB\r\r\r\nÚ\r\r\r\r\nâ\r\r\r\r\r\r\r\r\r\r\nÊ\nê\r\nò\r\r\r\r\r\r\nú\r\r\r\r\r\r\nJ\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\n2\r\r\nÒ\r\n%%%\t’%\n"%%%%%%%%%%%%%%%%%%%\tš%\tª%%%%%\t²%\tº%%%%%%%%%\t¢%%%%\n*%%%%%%%%\n:%%\nB%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\nJ%%%%%%%%%%%%%%%%%%%%%%%%\n2%%%%ññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññªñññññññññññññññññññññññññññññññññ\n!!!\t’!\n"!!!!!!!!!!!!!!!!!!!\tš!\tª!!!!!\t²!\tº!!!!!!!!!\t¢!!!!\n*!!!!!!!!\n:!!\nB!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\nJ!!!!!!!!!!!!!!!!!!!!!!!!\n2!!!!\n)))\t’)))))))))))))))))))))\tš)\tª)))))\t²)\tº)))))))))\t¢))))\n*)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))\n2))))ÑÑÑÑÑÑÑÑÑÑÂÑ\0¦ÑÑÑÑ\0ÆÑÑÑ–ÑÑ*ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑú¢ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ.ÒÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑrÅÑÑÑÑÑÑÑÑÑÑÑÑÑѲÑÑ2ÑÑÑÑÑÑÑÑÑÑÑÑÑÕÕÕÕÕÕÕÕÕÕvÕ¾ÕÕÕÕ’ÕÕÕÁÕÕùÂÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ\0ÎöÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ:îÕÕÕÕÕÕÕÕÕÕՁÕÕÕÕÕ"ÉÕÕÕÕÕÕÕÕÕÕÕÕÕÕ\0~ÕÕeÕÕÕÕÕÕÕÕÕÕÕÕÕMMMMMMMMMM6M\bÖMMMMJMMM>MM¡ÆMMMMMMMMMMMMMMMMMoöMMMMMMMMMMMMMMMMMMMMMMMFMMMMMMMMMnvMMMMMMMMMMM\0ªMMMMMÂõMMMMMMMMMMMMMMÚMMþMMMMMMMMMMMMMÙÙÙÙÙÙÙÙÙÙšÙ†ÙÙÙÙêÙÙÙ¦ÙÙíºÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙþÂÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙáÙÙÙÙÙÙÙÙÙª÷ÙÙÙÙÙÙÙÙÙÙÙ¶ÙÙÙÙÙ*:ÙÙÙÙÙÙÙÙÙÙÙÙÙÙÆÙÙZÙÙÙÙÙÙÙNÙÙÙÙÙAAQQy!Ö\0â}}AnAAAA}AAABAAvæ\n\0òAAAAA‚Š2AAAAAiQA\0^A\0A\0ž\0úAAAAA!A\nA\0RBAAêÍAAA^AAAAAyÚAAAA\0²A6AAAAâAÊAAA~AQ\r^AAAAAAAAAA\0†%AAAAAAA\0‚Aͽy~AA5&åm.ŽbjÉmf¶\0®¾\0ªMBmbòm\föm\0M6mΖmZÉ\0Rr\0¢Ñ\0¾m\0Ö\0VmbŽ’ÑNVÙ\0J\0jmBÑmš\0Ú\0Z®\0R¶\0ÞÉÉÉÉÉÉÉÉÉÉNÉê‘Å\0^n‘\0ž\0úÉÑ.ÉÉÉÉÉÉÉÉÉÉÉöÉÉÑ\0M\0MÑ‘ÉÉÉÉ\0MÉÉÉú¦‘žÉ‘ÉÉ®ÉÉ\bÉÉ‘‘¶‘É‘‘-\b"11u\0î-‘ÉÉ1ÉÂÊ\0V‘\bZÉÉÖÉÉ‘‘vÉÉ\0ö\b’\b®:\0MÉɾ‘ÉÉþ‘‘æ\0Zî\b•É\bÊ\r²ÉÉÉÉÅÅÅÅÅÅÅÅÅÅžÅ\0‚šm½\0v\0^öm\0ž\0úÅu\nÅÅÅÅÅÅÅÅÅÅÅ\nÅÅÆÎ~mÅÅÅÅéÅÅÅNVm£ÅmÅÅÝÅÅ"ÅÅ6m’ÚÅm\tfNÕÕ‘‘‘mÅÅÕÅ‘J\0VmÅÅÅÅ\fÆ\fÊvÅÅþöj‚¢ÅÅ&mÅÅæm\fÒN\0Z\0šB\0ºÅ¦æÅÅÅÅ\t\t\t\t\t\t\t\t\t\t¾\t*\rº¹‚\0Ž\0^\0nƹ\0ž\0ú\t\t\t\t\t\t\t\t\t\t\t\tâ\t\tZb~¹\t\t\t\t¥\t\t\tŽ–¹\0F\t¹\t\tù\t\t\t\t¹¹ïª\t¹¹òòz‚1\b\n¹\t\t1\tÞ\b¶¹&\t\tf\t\t¹¹–\t\t–2jÂ\t\t>¹\t\t\b2Ö¹¹\fÂ\0\0\fÎ:\t\fâ\0N\t\t\t\t\0N\0\0\0\0\bF\0\0\0ê\0\0\fîVR\0I\0Ib\0\0\0\0\0’\0If\bV\0\0Ê\0\0*\r2\0\0‚\0½\0\rV\0zv\0\0\0\0\rj\0®¶\0:\0‚\0\0½…\0\0\0\r‚\0\0\0\0ªÑÑ\0\0\0\0\r–µÑ\0\0\0\0\0IB\r¢\0\0‚\r®\rƽ\0v\rÚ\0\0\0\0\0†\0‚\0\0½’\0‚\0\0½\0\0\0\0\0Ò\0\rî\n~\0\0ÍÍÍÍÍÍÍÍÍͲÍN>²Š’F\0»\rÖÍòÍÍÍÍ\rêÍÍÍÍÍÍÍöÍÍæ~.ÍÍÍÍÍÍÍ\0\0ž\0\0\0Í\0ÍÍ\0\0ÍÍ\0\0ÍÍ\0\06\0\0\0\0Í¢\0\0\0\0\0\0\rþ\0\0•••ºÍÍ\0\0Í•\0\0\0\0\0&\0\0ÍÍ\0\0ÍÍÙÙÍÍ\0\0\0\0\0\0\0\0ÙÍÍ\0\0\0*ÍÍ\0\0\0\0\0.\0\0\0\0\0\0\0\0v\0\0Í\0\0\0\0ÍÍÍÍ\r\r\r\r\r\r\r\r\r\r\0\0\r\0\0²\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\r\0\0\0\0\r\r\r\r\0\0\r\r\r\r\r\r\r\0\0\r\r\0\0\0\0\0\0\0\0.\r\r\r\r\0\0\r\r\r\0\0\0\0\0\0\0\r\0\r\r\0\0\r\r~\r\r\0\06\0\0\0\0\r¢\0\0\0\0\0\0\0\0\0\0\0\0Íͺ\r\r\0\0\r\0\0Í\0\0\0&\0\0\r\r\0\0\r\r\0\0\0\0\0\0\r\rv\0\0\0\0\0\0\0\0\r\r\0\0\0*\r\rqq\0.\0\0\0\0\0\0\0\0q\r\0\0\0\0\r\r\r\r\0\0\0\0\0\0\0v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\r\b\r]]\0\0\0\0\0\0\0\0\0\0]\b\r\0\0\b\r\b\r\b\r\b\r\b\r\b\r\b\r\b\rj\b\r\b\rv\b\r\0\0\0\0\0\0\0\0\b\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\r\0\0\b\r\b\rnr\b\r\0\0\0\0\b\r\0\0\b\r\0\0\0\0\0\0\b\r\b\r\b\r\b\r\0\0\b\r\0\0\0\0\b\r\0\0\0\0\b\r\b\r\0\0\0\0\b\r\b\r\b\r\0\0\b\r\b\r\b\r\b\r\0\0\0\0\0\0\b\r\b\r\b\r\b\r\0\0\0\0\0\0\b\r\b\r\b\r\b\r\b\r\0\0\0\0\0\0\0\0\0\0\0\0~\b\rmm\0\0\b\r\b\r\b\r\b\r\0\0m\b\r\b\r\0\0\0\0\0\0\b\r\b\r\0\0\b\r\b\r\b\r\b\r\b\rv\b\r\0\0\0\0\b\r\b\r\0\0\0\0\0\0\0\01*\0\0:Rv\0\0"š\0’¶~\0\0\0\0\0\0\0\0\0\0\0\0ö¡¡!\0\0\0\0aaŠ¡=‚Ž\0\0a.\0\0\0\0†\0\0ú\0\0\0\0v.Š\0Žv\0\0\0\0\0^\0\0\0\0Ž’\0\0\0\0š¦â~¢Úîþ\0\0\0\0\0\0^º\0\0y\0\0šª\0&\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ºii\0\0ÊÚæ>i\bj\0*\0\0\0\0\0\0\bz\0.\0\0\bŠ\bÎ\tj\tÆ\tâv\têII\0\0~"\tò\0\0\0\0~\0\0\0\0I\0\0IIII\0\0III\0\0II\0\0\0\0\0\0\0\0\0\0\0\0II\0\0\0\0\0\0\0\0YYI\0\0\0\0II\0\0YI\0\0\0\0I\0\0I\0\0\0\0\0\0IIIIvI\0\0\0\0I\0\0\0\0II\0\0\0\0III~IIII\0\0\0\n\0\0IIII\0\0\0\0\0\0IIII\0\0\0\0\0\0\0\0U\0\0\0\0\0\0Iee\0\0IIII\0\0eII\0\0\0\0\0\0II\0\0IIIIIvI\0\0\0\0II\0\0\0\0~\0\0\0\0*\0\0:Rv\0\0"š\0\0\0¶~\0\0\0\0\0\0\0\0\0\0\0\0öõ\0\0\0\0\0\0\0\0\0\0\0\0Š\0\0‚Ž\0\0\0\0.\0\0\0\0†\0\0ú\0\0\0\0\0\0.Š\0Ž\0\0\0\0\0\0\0^\0\0\0\0Ž’\0\0\0\0š¦2~¢Úîþ\0\0\0\0\0\0^º\0\0\0\0\0\0šª\0&\0\0\0\0\0\0\0\0\0\0\0\0\0\0º\0\0\0\0\0\0ÊÚæ\0\0\0\0\bj\0*\0\0\0\0\0\0\bz\0.\0\0\bŠ\bÎ\tj\tÆ\tâ\0\0\tê\0\0\0\0"\tò\0\0\0\0\0\0\0\0\0\0\0\0z\0\0\0\0~\0\0\0\0\0\0\0\0--\0\0\0\0\0\0\0\0\0\0-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\0\0‚\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\0\0\0\0\0\0\0\0\0\0\0\0YY\0\0~\0\0\0\0\0\0\0\0\0\0Y\0\0YYYY\0\0YYY\0\0YY\0\0\0\0\0\0\0\0\0\0\0\0Yöþ\0\0\0\0\0\0\0\0\0\0Y\0\0\0\0YY\0\0\0\0Y\0\0\0\0Y\0\0Y\0\0\0\0\0\0YYYY\0\0Y\0\0\0\0Y\0\0\0\0YY\0\0\0\0YYY\0\0YYYY\0\0\0\0\0\0YYYY\0\0\0\0\0\0YYYY\0\0\0\0\0\0\0\0Y\0\0\0\0\0\0Y\0\0\0\0\0\0YYYY\0\0\0\0YY\0\0\0\0\0\0YY\0\0YYYYY\0\0Y\0\0\0\0YY\0\0\0\0\0\0\0\01*\0\0:Rv\0\0"š\0ž¶~\0\0\0\0\0\0\0\0\0\0\0\0ö\0\0\0\0!\0\0\0\0\0\0\0\0Š\0\0\0\0‚Ž\0\0\0\0.\0\0\0\0†\0\0ú\0\0\0\0\0\0.Š\0Ž\0\0\0\0\0\0\0^\0\0\0\0Ž’\0\0\0\0š¦â\0\0¢Úîþ\0\0\0\0\0\0^º\0\0\0\0\0\0šª\0&\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0º\0\0\0\0\0\0ÊÚæ\0\0\0\0\bj\0*\0\0\0\0\0\0\bz\0.\0\0\bŠ\bÎ\tj\tÆ\tâ\0\0\têzž\0\0\0\0"\tò\0\0\0\0\0\0\0\0\0\0Þ\0\0:æRê\0\0îª\0\0\0®Ö\0\0\0\0\0\0\0\0\0\0\0\0ö\0\0\0\0\0\0\0\0\0\0\0\0\0\0ú\0\0\0\0\nŽ\0\0\0\0f\0\0\0\0n\0\0ú\0\0\0\0\0\0.z\0~\0\0\0\0\0\0\0^\0\0\0\0ކ\0\0\0\0ŽÎâ\0\0öÒ\bŽþ\0\0\0\0\0\0\bš\bž\b¦\bª\0\0\0\0\0\0š\b¶\b¾\0&\0\0\0\0\0\0¦\0\0\0\0\0\0\0\0\bÒ\0\0\0\0\bâ\bæ\bî\bòæ\0\0\0\0\bj\0*\0\0\0\0\0\0\bú\0.\0\0\t\t\n\t\t\t\0\0\tUU\0\0\0\0\t\t&\0\0\0\0\0\0\0\0\0\0U\0\0UUUU\0\0UUU\0\0UU\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0UU\0\0\0\0U\0\0\0\0U\0\0U\0\0\0\0\0\0UUUU\0\0U\0\0\0\0U\0\0\0\0UU\0\0\0\0UUU\0\0UUUU\0\0\0\n\0\0UUUU\0\0\0\0\0\0UUUU\0\0\0\0\0\0\0\0U\0\0\0\0\0\0U\0\0\0\0\0\0UUUU\0\0\0\0UU\0\0\0\0\0\0UU\0\0UUUUU\0\0UMM\0\0\0\0UU\0\0\0\0\0\0\0\0\0\0M\0\0MMMM\0\0MMM\0\0MM\0\0\0\0\0\0\0\0\0\0\0\0MMÎ\0\0\0\0\0\0\0\0\0\0M\0\0\0\0MM\0\0\0\0M\0\0\0\0M\0\0M\0\0\0\0\0\0MMMM\0\0M\0\0\0\0M\0\0\0\0MM\0\0\0\0MMM\0\0MMMM\0\0\0\0\0\0MMMM\0\0\0\0\0\0MMMM\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0M\0\0\0\0\0\0MMMM\0\0\0\0MM\0\0\0\0\0\0MM\0\0MMMMM\0\0M\0\0\0\0MM\0\0\0\0\0\0\0\0\0\0*\0\0ÖRv\0\0"š\0\0\0¶~\0\0\0\0\0\0\0\0\0\0\0\0ö\0\0\0\0\0\0\0\0\0\0\0\0\0\0Š\0\0=‚Ž\0\0\0\0.\0\0\0\0†\0\0ú\0\0\0\0\0\0.Š\0Ž\0\0\0\0\0\0\0^\0\0\0\0Ž’\0\0\0\0š¦â\0\0¢Úîþ\0\0\0\0\0\0^º\0\0\0\0\0\0šª\0&\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0º\0\0\0\0\0\0ÊÚæ\0\0\0\0\bj\0*\0\0\0\0\0\0\bz\0.\0\0\bŠ\bÎ\tj\tÆ\tâ\0\0\tê\0\0\0\0"\tò\0\0\0\0\0\0\0\0\0\0*\0\0ÞRv\0\0"š\0\0\0¶~\0\0\0\0\0\0\0\0\0\0\0\0ö\0\0\0\0\0\0\0\0\0\0\0\0\0\0Š\0\0=‚Ž\0\0\0\0.\0\0\0\0†\0\0ú\0\0\0\0\0\0.Š\0Ž\0\0\0\0\0\0\0^\0\0\0MŽ’\0\0\0\0š¦â\0\0¢Úîþ\0\0\0\0\0\0^º\0M\0M\0Mšª\0&\0\0\0M\0M\0\0\0\0\0\0\0\0\0\0º\0\0\0\0\0\0ÊÚæ\0\0\0\0\bj\0*\0\0\0\0\0\0\bz\0.\0\0\bŠ\bÎ\tj\tÆ\tâ\0\0\tê\0\0\0\0\0\0\0\0"\tòYYYY\t’YYYYY\0\0Y\0\0\0\0m\0M\0\0ê\0M\0Mm\0\0\0\0Y\0\0\0\0\0\0Y\0\0Y\0MYYY\0MY\0\0Y\0\0YY\0\0\0\0\0\0\0\0m\t¢YYY\0\0YYY\0\0\0\0m\0\0YmYY\0\0YY\0\0YY6m\0\0\0\0YmZ\0\0\0\0\0\0\0\0\0\0\0\0\0\0mYY\0\0Y\0\0\0\0\0\0m\0\0YY\0\0YYŽ\0\0YY\0\0\0\0\0\0\0\0\0\0YY\0\0mYY\0\0\0\0mš\0\0\0\0\0\0\0\0\0\0Y\0\0\0\0YYYY\0í\0í\0í\0í\t’\0í\0í\0í\0í\0í\0\0\0í\0\0\0\0m\0\0\0\0\0\0\0\0\0\0m\0\0\0\0\0í\0\0\0\0\0\0\0í\0\0\0í\0\0\0í\0í\0í\0\0\0í\0\0\0í\0\0\0í\0í\0\0\0\0\0\0\0\0m\t¢\0í\0í\0í\0\0\0í\0í\0í\0\0\0\0m\0\0\0ím\0í\0í\0\0\0í\0í\0\0\0í\0í6m\0\0\0\0\0ím\tf\0\0\0\0\0\0\0\0\0\0\0\0\0\0m\0í\0í\0\0\0í\0\0\0\0\0\0m\0\0\0í\0í\0\0\0í\0í\fÆ\rž\0\0\0í\0í\0\0\0\0\0\0\0\0\0\0\0í\0í\0\0m\0í\0í\0\0\0\0m\fÒ\0\0\0\0\0\0\0\0\0\0\0í\0\0\0\0\0í\0í\0í\0í\0á\0á\0á\0á\t’\0á\0á\0á\0á\0á\0\0\0á\0\0\0\0\fÚ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0á\0\0\0\0\0\0\0á\0\0\0á\0\0\0á\0á\0á\0\0\0á\0\0\0á\0\0\0á\0á\0\0\0\0\0\0\0\0\fÞ\t¢\0á\0á\0á\0\0\0á\0á\0á\0\0\0\0\0\0\0\0á\0\0á\0á\0\0\0á\0á\0\0\0á\0á\0\0\fæ\0\0\0\0\0á¢\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\fþ\0á\0á\0\0\0á\0\0\0\0\0\0\0&\0\0\0á\0á\0\0\0á\0á\0\0\0\0\0\0\0á\0á\0\0\0\0\0\0\0\0\0\0\0á\0á\0\0\0*\0á\0á\0\0\0\0\0.\0\0\0\0\0\0\0\0\0\0\0\0\0á\0\0\0\0\0á\0á\0á\0áUUUU\t’UUUUU\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0\0\0U\0\0U\0\0UUU\0\0U\0\0U\0\0UU\0\0\0\0\0\0\0\0\0\0\t¢UUU\0\0UUU\0\0\0\0\0\0\0U\0UU\0\0UU\0\0UU\0\0\0\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\02UU\0\0U\0\0\0\0\0\0\0&\0\0UU\0\0UU\0\0\0\0\0\0UU\0\0\0\0\0\0\0\0\0\0UU\0\0\0*UU\0\0\0\0\0.\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0UUUUaaaa\t’aaaaa\0\0a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\0\0\0\0\0\0a\0\0a\0\0aaa\0\0a\0\0a\0\0aa\0\0\0\0\0\0\0\0\0\0\t¢aaa\0\0aaa\0\0\0\0\0\0\0\0a\0\0aa\0\0aa\0\0aa\0\0\0\0\0\0\0\0a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aa\0\0a\0\0\0\0\0\0\0\0\0\0aa\0\0aa\0\0\0\0\0\0aa\0\0\0\0\0\0\0\0\0\0aa\0\0\0\0aa\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\0\0\0\0aaaa\0é\0é\0é\0é\t’\0é\0é\0é\0é\0é\0\0\0é\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0é\0\0\0\0\0\0\0é\0\0\0é\0\0\0é\0é\0é\0\0\0é\0\0\0é\0\0\0é\0é\0\0\0\0\0\0\0\0\0\0\t¢\0é\0é\0é\0\0\0é\0é\0é\0\0\0\0\0\0\0\0\0é\0\0\0é\0é\0\0\0é\0é\0\0\0é\0é\0\0\0\0\0\0\0\0\0é\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0é\0é\0\0\0é\0\0\0\0\0\0\0\0\0\0\0é\0é\0\0\0é\0é\0\0\0\0\0\0\0é\0é\0\0\0\0\0\0\0\0\0\0\0é\0é\0\0\0\0\0é\0é\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0é\0\0\0\0\0é\0é\0é\0é]]]]\t’]]]]]\0\0]\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0]\0\0\0\0\0\0]\0\0]\0\0]]]\0\0]\0\0]\0\0]]\0\0\0\0\0\0\0\0\0\0\t¢]]]\0\0]]]\0\0\0\0\0\0\0\0]\0\0]]\0\0]]\0\0]]\0\0\0\0\0\0\0\0]\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0]]\0\0]\0\0\0\0\0\0\0\0\0\0]]\0\0]]\0\0\0\0\0\0]]\0\0\0\0\0\0\0\0\0\0]]\0\0\0\0]]\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0]\0\0\0\0]]]]\0å\0å\0å\0å\t’\0å\0å\0å\0å\0å\0\0\0å\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0å\0\0\0\0\0\0\0å\0\0\0å\0\0\0å\0å\0å\0\0\0å\0\0\0å\0\0\0å\0å\0\0\0\0\0\0\0\0\0\0\t¢\0å\0å\0å\0\0\0å\0å\0å\0\0\0\0\0\0\0\0\0å\0\0\0å\0å\0\0\0å\0å\0\0\0å\0å\0\0\0\0\0\0\0\0\0å\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0å\0å\0\0\0å\0\0\0\0\0\0\0\0\0\0\0å\0å\0\0\0å\0å\0\0\0\0\0\0\0å\0å\0\0\0\0\0\0\0\0\0\0\0å\0å\0\0\0\0\0å\0å\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0å\0\0\0\0\0å\0å\0å\0å\n\n\t’\n"\nj\0\0¦\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tš\tª\0\0\t²\tº-\0\0\0\0\0\0.\0\0\t¢\0\0\n*Š\0\0\0\0\0\0\0\0\n:\0\0\nB\0\0\0\0¢\0\0\0\0\0\0¢Ú\0\0UU}\0\0\0\0\0\0î\0\0\nÊÒ\0\0\0\0\0\0\0\0\0&\0\0\0\0\0\0\0\0v\0\0\0\0\nJ\0\0\0\0\0\0\0\0\0\0\0*\0\0\0\0\0.\0\0\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\n2\nÒ\n\n\t’\n"\nj\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\nz\0\0\0\0\tš\tª\0\0\t²\tº\0\0\0\0~\0\0U\0\0\t¢\0\0\n*\0\0\0\0\0\0\0\0\0\0\0\0\n:\0\0\nB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nJ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n2\nÒ\n\t\n\t\t’\t\n"\t\nj\t\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tš\t\tª\t\0\0\t\t\t\t²\t\tº\t\0\0\t\t\0\0\0\0\0\0\0\0\0\0\t¢\t\t\t\0\0\n*\t\t\0\0\0\0\0\0\0\0\0\0\0\0\n:\t\0\0\nB\t\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\t\t\0\0\0\0\0\0\nJ\t\0\0\0\0\0\0\0\0\0\0\t\t\0\0\0\0\t\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\n2\t\t\nÒ\n\0õ\n\0õ\t’\0õ\n"\0õ\nj\0õ\0\0\0õ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tš\0õ\tª\0õ\0\0\0õ\0õ\0õ\t²\0õ\tº\0õ\0\0\0õ\0õ\0\0\0\0\0\0\0\0\0\0\t¢\0õ\0õ\0õ\0\0\n*\0õ\0õ\0\0\0\0\0\0\0\0\0\0\0\0\n:\0õ\0\0\nB\0õ\0\0\0õ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0õ\0\0\0\0\0õ\0õ\0\0\0\0\0\0\nJ\0õ\0\0\0\0\0\0\0\0\0\0\0õ\0õ\0\0\0\0\0õ\0õ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0õ\0\0\0\0\n2\0õ\0õ\nÒ\nq\nq\t’q\n"q\njq\0\0q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tšq\tªq\0\0qqq\t²q\tºq\0\0qq\0\0\0\0\0\0\0\0\0\0\t¢qqq\0\0\n*qq\0\0\0\0\0\0\0\0\0\0\0\0\n:q\0\0\nBq\0\0q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0q\0\0\0\0qq\0\0\0\0\0\0\nJq\0\0\0\0\0\0\0\0\0\0qq\0\0\0\0qq\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0q\0\0\0\0\n2qq\nÒ\n\0ù\n\0ù\t’\0ù\n"\0ù\nj\0ù\0\0\0ù\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tš\0ù\tª\0ù\0\0\0ù\0ù\0ù\t²\0ù\tº\0ù\0\0\0ù\0ù\0\0\0\0\0\0\0\0\0\0\t¢\0ù\0ù\0ù\0\0\n*\0ù\0ù\0\0\0\0\0\0\0\0\0\0\0\0\n:\0ù\0\0\nB\0ù\0\0\0ù\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ù\0\0\0\0\0ù\0ù\0\0\0\0\0\0\nJ\0ù\0\0\0\0\0\0\0\0\0\0\0ù\0ù\0\0\0\0\0ù\0ù\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ù\0\0\0\0\n2\0ù\0ù\nÒ\nm\nm\t’m\n"m\njm\0\0m\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tšm\tªm\0\0mmm\t²m\tºm\0\0mm\0\0\0\0\0\0\0\0\0\0\t¢mmm\0\0\n*mm\0\0\0\0\0\0\0\0\0\0\0\0\n:m\0\0\nBm\0\0m\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0m\0\0\0\0mm\0\0\0\0\0\0\nJm\0\0\0\0\0\0\0\0\0\0mm\0\0\0\0mm\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0m\0\0\0\0\n2mm\nÒ\nu\nu\t’u\n"u\nju\0\0u\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tšu\tªu\0\0uuu\t²u\tºu\0\0uu\0\0\0\0\0\0\0\0\0\0\t¢uuu\0\0\n*uu\0\0\0\0\0\0\0\0\0\0\0\0\n:u\0\0\nBu\0\0u\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0u\0\0\0\0uu\0\0\0\0\0\0\nJu\0\0\0\0\0\0\0\0\0\0uu\0\0\0\0uu\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0u\0\0\0\0\n2uu\nÒ\ny\ny\t’y\n"y\njy\0\0y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tšy\tªy\0\0yyy\t²y\tºy\0\0yy\0\0\0\0\0\0\0\0\0\0\t¢yyy\0\0\n*yy\0\0\0\0\0\0\0\0\0\0\0\0\n:y\0\0\nBy\0\0y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0y\0\0\0\0yy\0\0\0\0\0\0\nJy\0\0\0\0\0\0\0\0\0\0yy\0\0\0\0yy\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0y\0\0\0\0\n2yy\nÒ\n}\n}\t’}\n"}\nj}\0\0}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tš}\tª}\0\0}}}\t²}\tº}\0\0}}\0\0\0\0\0\0\0\0\0\0\t¢}}}\0\0\n*}}\0\0\0\0\0\0\0\0\0\0\0\0\n:}\0\0\nB}\0\0}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0\0\0\0}}\0\0\0\0\0\0\nJ}\0\0\0\0\0\0\0\0\0\0}}\0\0\0\0}}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0\0\0\0\n2}}\nÒ\ni\ni\t’i\n"i\nji\0\0i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tši\tªi\0\0iii\t²i\tºi\0\0ii\0\0\0\0\0\0\0\0\0\0\t¢iii\0\0\n*ii\0\0\0\0\0\0\0\0\0\0\0\0\n:i\0\0\nBi\0\0i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\0\0\0\0ii\0\0\0\0\0\0\nJi\0\0\0\0\0\0\0\0\0\0ii\0\0\0\0ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\0\0\0\0\n2ii\nÒ\n\0ý\n\0ý\t’\0ý\n"\0ý\nj\0ý\0\0\0ý\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tš\0ý\tª\0ý\0\0\0ý\0ý\0ý\t²\0ý\tº\0ý\0\0\0ý\0ý\0\0\0\0\0\0\0\0\0\0\t¢\0ý\0ý\0ý\0\0\n*\0ý\0ý\0\0\0\0\0\0\0\0\0\0\0\0\n:\0ý\0\0\nB\0ý\0\0\0ý\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ý\0\0\0\0\0ý\0ý\0\0\0\0\0\0\nJ\0ý\0\0\0\0\0\0\0\0\0\0\0ý\0ý\0"\0\0\0ý\0ý\0\0\0\0\0\0\0\0\0\0\0\0\0­\0\0ý\0\0\0\n2\0ý\0ý\nÒ\06\0\x006\0\0\0\0\0\0\0\0\0\0\0\0­­­\0\0b\0\0\0\0\0\0­­\0>\0\0\0&\0\0\0\0\0\0\0\0\0\0•\0\0\0\0­•\0\0\0\0\0\0\0\0\0\0•\0*\0\0\0\0\0\0\0\0\0.\0\0\0\0\0\0\0\0B\0\0\0\0\0\0­\0\0\0\0bf\0\0\0\0\0\0•\0\0\0\0\0&\0\0­­­­"\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\0­­•\0*­\0\0\0\0\0\0\0.\0\0\0\0\0\0\0\0‚\0\0\0\0\0\0.\0\0\0\0†z•\0\0\0\0\0\0\0\0Š\0ŽU\0\0\0\0\0U\0\0\0\0\0\0’\0\0U–\0\0\0\0\0\0¢Ú\0\0\0\0\0\0\0\0\0\0\0\0º\0\0\0\0\0\0\0\0\0\0&\0\0\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0U\0\0\0\0\0*\0\0\0\0\0\0\0\0\0.UU\0\0\0\0\0\0UUA\0\0A\0\0\0\0"&UA\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0\0\0\0\0\0\0\0UU\0\0\0\0\0\0\0\0\0\0A\0f\0\0\0\0\0R\0\0U\0\0\0\0A\0\0UUA\0\0A\0\0\0\0A\0\0\0\0A)U\0\0\0\0AA\0\0\0\0\0AA\0\0\0\0\0\0\0\0\0\0\0\0\0\0A)))\0\0A\0\0\0\0A))\0\0\0\0\0\0\0\0.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0j\0\0\0AA\0\0\0\0\0\0\0A\0\0\0\0\0\0\0\0\0\06\0\0\0\0¢\0\0\0\0\0\0A\0\0\0\0\0\0\0º\0\0\0\0\0\0\0\0\0\0\rÊ\0\0\0&\0\0)\0\0\0\0))\0\0\0\0\0\0"\0\0\0\0.\0\0\0\0\0\0)ú\0\0\0*).Š\0\0.\0\0\0\0\0\0\0^\0\09\0\0\0\0\0\0\0\0¢\0\0æ\0\0¢Ú\0\0\0\0\0\0\0\0\0\0\0\0º\0\0999\rÊ\0\0\0\0\0&\0\099\0\0\0\0\0\0\0\0\0\0"\0\0\0\0f\0\0\0\0\0\0Nú\0\0\bj\0*.z\0\0\0\0.\0\0\0\0^\0\0\0\0V\0þ\0\0–\0\0\0\0b6Ò:\0\0\0Þ\0\0\0\0\0\0\b¦\0\0\0b\0\0\t*\0\09\0\0\0&99\0\0\0&\0Z\0Š\0\0\0\0®\0\0\0\0\bâ9\0\0\0\0N9\0¶\bj\0*\0\0\0R\t:\0*\0.\0â\0\0\0\0\0.\0\0Z\0ê\0^\0\0\0\0\0\0\0ž\0úbÝ\0\0\0\0\0\0m\0\0\0\0\0\0±m\0\0y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ý\0\0Ýmyyym\0\0m\0\0\0\0yy\0\0\0\0*.m\0\0\0\0m\0\0\0\0\0\02v\0\0\0\0\0\06m\0\0\0\0mmZ\0\0\0\0\0\0\0\0\0\0\0\0\0\0mm\0\0\0\0m\0\0y\0\0m\0\0\0\0\0\0\0\06mŽ’\0\0mZ\0Vy\0\0yyy\0\0mm\0\0\0\0\0\0\0\0mšmyy\0b\0\0y鎒\0\02\0\0\0\0\0\0\0Z\0Š\0\0\0\0\0®\0\0m~\0\0\0\0\0\0mš\0¶\0\0\0\0±\0\0‰\0\0\0\0\0â±"‰\0\0\0\0\0ê\0^\0\0\0\0\0\0\0ž\0ú\0\0\n\0\0\r¦\0\0\0\0*\0\0\0\0\0\0\0\0\0\0±\0\0‰\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0±\0\0‰±\0\0‰\0\0\0\0\0\0\0\0\0\0±±‰‰\0\0±±‰‰*.\0\0\0\0\0"±\0\0‰\0\02\0\0\0\0\0\0±\0\0‰\0\0\0\0\0\0\0±±‰‰\0\0\0m\x006\0\0\0\0\0\0\0\0\0\0±\0\0‰\0\0u±±‰‰\0\0\0\0\0\0\0>mmm\0\0\0\0\0\0\0\0\0\0mm\0\0\0\0\0\0\0\0\0\0}\0\0\0\0\0\0\0\0\0\0\0Ž\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0B\0\0\0\0\0\0\0}\0}\0}\0\0\0\0bf\0\0\0}\0}\0\0m\0\0\0&\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0v\0\0\0\0\0\0m\0Ummm\0\0\0\0\0*\0\0\0\0\0\0\0\0\0.\0\0\0\0m–\0\0\0\0m\0\0\0U\0U\0U\0Qz\0\0\0\0\0\0\0U\0U\0\0\0\0\0\0\0\0\0}\0\0\0\0}\0}\0\0\0\0\0\0v\0Q\0Q\0Q\0\0\0\0\0\0\0}\0\0\0Q\0Q\0}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0v\0\0\0\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0\0U\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0\0\0\0U\0\0\0\0\0\0\0Q\0\0\0\0\0Q\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0Q\0\0\0\0\0\0\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~']],uOr=[0,16,"\0\0\0'\0 \0 \0,\0t\0z\0Ž\0\0¸\0à\0ê\0‹\x002\0‹\0V\0–\0\"\0¨\0¨\0Ü\0\0V\0Ž\0@\0X\0Ø\0X\0w\0Œ\0.\0Ú\0¨\x004\0X\0Œ\0.\0\0®\0–\0\0¨\0Ü\0^\0,\0p\0–\0\"\0¨\0Œ\0!\0Ú\x009\x009\0®\0À\0€\0\0Œ\0.\0\0®\0˜\0\0¨\0Ø\0X\0Œ\0.\0\0®\0\v\0\r\0ü\0ô\0ö\0\0\r\0\0\0Œ\0\r\0ü\0\0\0\0\0]\0È\0¨\0\0%\0n\0%\0%\0Ú\0;\0;\0®\0#\0u\0\0\x009\0®\0\r\0ü\0\0\r\0ü\0\0%\0T\0%\0T\0\r\0ü\0\x009\0®\0\r\0ü\0\0%\0À\0%\0¨\0Œ\0.\0\0®\0\0Ü\0%\x009\0®\0\0Ü\0%\0Ü\0%\0\0Ü\0%\0\0B\x005\0D\x005\x005\0R\0\0%\0ª\0R\0¨\0Ó\0\0B\0ª\0\0B\x001\0D\x001\x001\0D\x001\0-\0R\0\r\0ü\0\x009\0®\0\r\0ü\0\0\r\0ü\0\0%\0!\0\0\0®\0\r\0ü\0\x009\0®\0\r\0ü\0\0\r\0ü\0\0¢\0Ü\0%\0¨\0Ü\0%\0\0Ú\0%\x003\x003\0F\0\r\0\r\0%\0Ó\0À\0¨\0ª\0¨\0a\0e\0‹\0‹\0_\0e\0i\0n\0i\0Ü\0%\0k\0A\0R\0g\0B\0A\0D\0A\0_\0C\0F\0i\0Ú\0C\0e\0À\0\0,\0G\0“\0Â\0•\0B\0G\0D\0G\0s\0\0\0'\0G\0\0\0 \0(\0Ž\0\0^\0,\0Ž\0\0¨\0Ü\0%\0Ó\0À\0\"\0¨\0Œ\x009\0®\0À\0%\0À\0%\0$\0\x002\0V\0d\0r\0v\0ˆ\0Ž\0*\0\0–\0\0¨\0Ó\0À\x000\0¨\0…\0‹\0£\0¥\0§\0–\0æ\0e\0\0§\0 \0$\0(\0Ž\0@\0w\0a\0c\0h\0Þ\0Œ\0.\0\0®\0a\x009\0®\0a\0¨\0Œ\0.\0\0®\0a\x009\0®\0a\0a\0a\0—\0Ó\0–\0.\0Z\0\\\0\t\0&\x006\0º\0+\0P\0X\0c\0h\0Þ\0—\0Ó\0À\0¨\0ƒ\0ƒ\0ƒ\0É\0p\0Þ\0—\0Ó\0É\0€\0Þ\0—\0Ó\0É\0²\0—\0Ó\0–\0h\0¨\0Ó\0\0ƒ\0Þ\0—\0Ó\0É\0Ó\0\0ƒ\0p\0¨\0Ó\0\0ƒ\0Þ\0—\0Ó\0É\0Ó\0\0ƒ\0€\0¨\0Ó\0\0ƒ\0Þ\0—\0Ó\0É\0Ó\0\0ƒ\0†\0a\0ƒ\0Ž\0.\0Ž\0\0*\x000\0§\0–\0W\0R\0Í\0B\0W\0D\0W\x002\0˜\0\0’\0k\0À\0š\0¨\0Ó\0P\0œ\0¨\0¤\0V\0ª\0¨\0§\0´\0Ò\0£\0›\0Ÿ\0Œ\0.\0Ú\0%\0\0\0®\0;\0®\0˜\0¦\0§\0^\0,\0d\0›\0§\0r\0v\0›\0ˆ\0›\0Ž\0.\0Ž\0²\0—\0Ó\0À\0¶\0Ž\0k\0ž\0Ê\0V\0Ï\0Ï\0Ô\0\0˜\0\0Ö\0¨\0y\0Ø\0X\0c\0h\0Þ\0—\0Ó\0É\0p\0Þ\0—\0Ó\0É\0€\0Þ\0—\0Ó\0É\0²\0—\0Ó\0™\0Ï\0Þ\0—\0Ó\0É\0Þ\0—\0Ó\0É\0Þ\0—\0Ó\0É\0è\0¨\0}\0§\0î\0š\0¨\0Ó\0¤\0¦\0§\0¨\0ª\0¨\0§\0´\0›\0¶\0Ž\0k\0ž\0ð\0Ê\0V\0Ï\0Ï\0Ð\0Ò\0›\0Ô\0Ö\0y\0è\0¨\0}\0î\0ð\0ò\0ô\0ö\0ú\0›\0¨\0Ó\0\0ƒ\0Þ\0—\0Ó\0É\0£\0Ó\0\0ƒ\0\0\0¡\0˜\0ò\0£\0©\0­\0±\0³\0¹\0\0›\0·\0\0·\0\b\0·\0\f\0·\0\0·\0\0·\x002\0·\x008\0·\0<\0·\0H\0·\0L\0·\0`\0·\0f\0·\0j\0·\0n\0·\0x\0·\0|\0·\0‚\0·\0Š\0·\0”\0·\0ª\0·\0¬\0·\0°\0·\0¾\0·\0Ì\0·\0Ü\0\0þ\0·\0·\0·\0\0ô\0³\0¿\0Á\0Ã\0Ï\0Ñ\0ö\0³\0ú\0³\0«\0¯\0·\0\0½\0Á\0Ã\0\n\0½\0\0½\0\0½\0\0½\0:\0½\0>\0½\0J\0½\0N\0½\0b\0½\0d\0½\0l\0½\0~\0½\0„\0½\0ˆ\0½\0Î\0½\0ä\0½\0ø\0½\0\0½\0½\0\b\0·\0\n\0½\0\f\0·\0\0½\0\0·\0\0½\0\0·\0\0½\x002\0·\x008\0·\0:\0½\0<\0·\0>\0½\0H\0·\0J\0½\0L\0·\0N\0½\0`\0·\0b\0½\0d\0½\0f\0·\0j\0·\0l\0½\0n\0·\0x\0·\0|\0·\0~\0½\0‚\0·\0„\0½\0ˆ\0½\0Š\0·\0”\0·\0ª\0·\0¬\0·\0°\0·\0¾\0·\0Ì\0·\0Î\0½\0Ü\0\0ä\0½\0ø\0½\0þ\0·\0\0½\0·\0·\0½\0T\0Æ\0È\0¨\0ì\0‘\0 \0^\0,\0Ž\0O\0F\0½\0Ú\0O\0¨\0…\0‹\0»\0³\0³\0³\0³\0³\0³\0³\0³\0½\0F\0³\0³\0Ä\0³\0³\0³\0³\0K\0T\0«\0Ú\0K\0K\0T\0³\0\0³\0³\0½\0F\0³\0½\0™\0O\0F\0¡\0È\0¨\0F\0{\0\0¨\0Ó\0À\0½\0M\0F\0@\0w\0c\0p\0Þ\0—\0Ó\0É\0€\0Þ\0—\0Ó\0É\0Þ\0—\0Ó\0É\0Þ\0—\0Ó\0É\0X\0c\0Þ\0—\0Ó\0É\0Þ\0—\0Ó\0É\0Ø\0X\0c\0ö\0³\0\0¡\0‘\0»\0µ\0B\0M\0D\0M\0Ÿ\0Æ\0È\0¨\0ì\0‘\0»\0³\0Ä\0³\0½\0T\0›\0›\0›\0³\0½\0½\0³\0½\0K\0T\0K\0T\0›\0³\0³\0\0³\0Ÿ\0È\0¨\0F\0{\0\0M\0F\0ö\0³\0Ÿ\0‘\0»\0’\0k\0À\0½\0Ä\0³\0S\0R\0¯\0Á\0Ã\0Ç\0B\0S\0D\0S\0™\0½\0Ç\0Q\0R\0Å\0B\0Q\0D\0Q\0É\0²\0—\0Ó\0™\0O\0F\0³\0¼\0³\0â\0e\0³\0Ë\0¼\0³\0³\0³\0W\0R\0½\0¨\0M\0R\0Y\0\0/\0R\0µ\0B\0M\0D\0M\0Ÿ\0Y\0R\0Ÿ\0Y\0›\0³\0{\0\0M\0F\0›\0›\0›\0›\0›\0›\0³\0¼\0³\0Ë\0¼\0³\0½\0§\0³\0O\0F\0›\0›\0S\0Â\0q\0\0\0'\0I\0U\0B\0Ç\0D\0U\0•\0D\0I\0o\0\0\0'\0\"\0¨\0Œ\x009\0®\0À\0%\0À\0%\0\0B\x007\0D\x007\x007\0–\0,\0E\0R\0–\x006\0\0¨\0Ü\0%\0¨\0Ü\0%\0)\0B\0=\0D\0=\0=\0R\0‡\0Ü\0%\0‰\0B\0E\0D\0E\0Ž\0–\x006\0\0¨\0Ü\0%\0¨\0Ü\0%\0ž\0\0¨\0Ü\0%\0¨\0Ü\0%\0?\0R\0Ú\0–\0=\0R\0F\0[\0B\0?\0D\0?\0–\0=\0R\0m"],fOr=[0,[0,16,'\0s\0q\0o\0m\0Ü\0%\0Ð\0–\0S\0R\0æ\0e\0³\0â\0e\0³\0À\0¨\0ƒ\0À\0ƒ\0ƒ\0Á\0Ã\0¯\0’\0k\0À\0½\0Ä\0³\0\t\0+\0Ç\0’\0k\0À\0½\0’\0k\0"\0¨\0À\0%\0"\0¨\0Œ\x009\0®\0À\0%\0²\0—\0Ó\0™\0@\0w\0c\0²\0—\0Ó\0™\0X\0c\0²\0—\0Ó\0™\0Ø\0X\0c\0²\0—\0Ó\0™\0Ž\0{\0\0M\0F\0\0\0†\0a\0ƒ\0œ\0¨\0½\0\0¨\0Ó\0À\0½\0\0¨\0Ü\0%\0­\0Á\0«\0Á\0…\0‹\0Ž\0O\0F\0¨\0^\0,\0 \0\0¹\0·\0¹\x002\0·\0¹\0|\0·\0¹\0Ì\0·\0¹\0‚\0·\0¹\0`\0·\0¹\0\0·\0¹\0\b\0·\0¹\0\0·\0¹\0\f\0·\0¹\0þ\0·\0¹\0j\0·\0¹\0\0·\0¹\0<\0·\0¹\x008\0·\0¹\0L\0·\0¹\0H\0·\0¹\0ª\0·\0¹\0¾\0·\0¹\0x\0·\0¹\0Š\0·\0¹\0”\0·\0¹\0¬\0·\0¹\0°\0·\0¹\0·\0¹\0n\0·\0¹\0Ü\0\0¹\0f\0·\0›\0·\0·\0·\x002\0·\0·\0|\0·\0·\0Ì\0·\0·\0‚\0·\0·\0`\0·\0·\0\0·\0·\0\b\0·\0·\0\0·\0·\0\f\0·\0·\0þ\0·\0·\0j\0·\0·\0\0·\0·\0<\0·\0·\x008\0·\0·\0L\0·\0·\0H\0·\0·\0ª\0·\0·\0¾\0·\0·\0x\0·\0·\0Š\0·\0·\0”\0·\0·\0¬\0·\0·\0°\0·\0·\0·\0·\0n\0·\0·\0Ü\0\0·\0f\0·\0¨\0Ó\0\0¨\0Ó\0¨\0Ó\0À\0½\0\0¨\0Ó\0À\0½\0Ï\0¿\0¹\0¹\0ø\0½\0¹\0d\0½\0¹\0ˆ\0½\0¹\0~\0½\0¹\0Î\0½\0¹\0„\0½\0¹\0b\0½\0¹\0\0½\0¹\0\n\0½\0¹\0\0½\0¹\0\0½\0¹\0\0½\0¹\0l\0½\0¹\0\0½\0¹\0>\0½\0¹\0:\0½\0¹\0N\0½\0¹\0J\0½\0¹\0ä\0½\0P\0P\0½\0Ž\0{\0\0M\0F\0ö\0³\0ö\0³\0ô\0³\0ò\0³\0ð\0³\0î\0³\0ú\0³\0š\0¨\0Ó\0³\0è\0¨\0}\0è\0Ö\0y\0Ô\0³\0¦\0§\0³\0¦\0§\0³\0Ä\0³\0$\0³\0Ë\0$\0³\0Ë\0¼\0³\0$\0³\0¼\0³\0*\0³\x000\0§\0–\0W\0R\0\0§\0³\0\0³\0\0³\0\0³\0¶\0Ž\0k\0ž\0½\0F\0³\0¤\0³\0Ê\0Ï\0Ê\0V\0Ï\0·\0·\0ø\0½\0·\0d\0½\0·\0ˆ\0½\0·\0~\0½\0·\0Î\0½\0·\0„\0½\0·\0b\0½\0·\0\0½\0·\0\n\0½\0·\0\0½\0·\0\0½\0·\0\0½\0·\0l\0½\0·\0\0½\0·\0>\0½\0·\0:\0½\0·\0N\0½\0·\0J\0½\0·\0ä\0½\0P\0P\0½\0Ž\0{\0\0M\0F\0ö\0³\0ö\0³\0ô\0³\0ò\0³\0ð\0³\0î\0³\0ú\0³\0š\0¨\0Ó\0³\0è\0¨\0}\0è\0Ö\0y\0Ô\0³\0¦\0§\0³\0¦\0§\0³\0Ä\0³\0$\0³\0Ë\0$\0³\0Ë\0¼\0³\0$\0³\0¼\0³\0*\0³\x000\0§\0–\0W\0R\0\0§\0³\0\0³\0\0³\0\0³\0¶\0Ž\0k\0ž\0½\0F\0³\0¤\0³\0Ê\0Ï\0Ê\0V\0Ï\0±\0Ã\0¯\0Ã\0Ñ\0£\0¨\0^\0,\0 \0…\0£\0¨\0^\0,\0 \0–\0M\0R\0–\0Ÿ\0Y\0R\0–\0Y\0\0/\0R\0‹\0Ž\0O\0F\0©\0˜\0K\0T\0˜\0\0K\0T\0¡\0˜\0½\0T\0¡\0Æ\0¡\0È\0¨\0r\0¡\0‘\0»\0¡\0ì\0Ž\0.\0¡\0È\0¨\0F\0§\0˜\0K\0T\0˜\0\0K\0T\0Ÿ\0˜\0½\0T\0Ÿ\0Æ\0Ÿ\0È\0¨\0r\0Ÿ\0‘\0»\0Ÿ\0ì\0Ž\0.\0Ÿ\0È\0¨\0F\0¡\0Ž\0{\0\0M\0F\0¡\0‘\0»\0ª\0¨\0ª\0¨\0§\0V\0›\0›\x002\0›\0\0›\0d\0›\0ˆ\0›\0\0›\0£\0v\0›\0Ò\0›\0(\0Ž\0O\0F\0´\0›\0Ÿ\0Ž\0{\0\0M\0F\0Ÿ\0‘\0»\0ª\0¨\0ª\0¨\0§\0V\0›\0›\x002\0›\0\0›\0d\0›\0ˆ\0›\0\0›\0£\0v\0›\0Ò\0›\0(\0Ž\0O\0F\0´\0›\0À\0½\0Ï\0¨\0a\0¨\0Œ\x009\0®\0a\0¨\0Œ\0.\0\0®\0a\0a\0Œ\x009\0®\0a\0Œ\0.\0\0®\0a\0 \0e\0\0,\0G\0Œ\0;\0®\0Œ\0.\0\0®\0Ú\0%\0\0Ú\0!\0\0t\0ê\0z\0¸\0à\0,\0‡\0Ü\0%\0,\0¥\0–\0Q\0R\0p\0¨\0Ó\0\0ƒ\0p\0Ó\0\0ƒ\0¨\0Ó\0\0ƒ\0Ó\0\0ƒ\0h\0¨\0Ó\0\0ƒ\0h\0Ó\0\0ƒ\0€\0¨\0Ó\0\0ƒ\0€\0Ó\0\0ƒ\0p\0Þ\0—\0Ó\0É\0Þ\0—\0Ó\0É\0h\0Þ\0—\0Ó\0É\0€\0Þ\0—\0Ó\0É\0Þ\0—\0Ó\0É\0@\0w\0c\0p\0Þ\0—\0Ó\0É\0@\0w\0c\0Þ\0—\0Ó\0É\0@\0w\0c\0h\0Þ\0—\0Ó\0É\0@\0w\0c\0€\0Þ\0—\0Ó\0É\0@\0w\0c\0Þ\0—\0Ó\0É\0X\0c\0p\0Þ\0—\0Ó\0É\0X\0c\0Þ\0—\0Ó\0É\0X\0c\0h\0Þ\0—\0Ó\0É\0X\0c\0€\0Þ\0—\0Ó\0É\0X\0c\0Þ\0—\0Ó\0É\0Ø\0X\0c\0p\0Þ\0—\0Ó\0É\0Ø\0X\0c\0Þ\0—\0Ó\0É\0Ø\0X\0c\0h\0Þ\0—\0Ó\0É\0Ø\0X\0c\0€\0Þ\0—\0Ó\0É\0Ø\0X\0c\0Þ\0—\0Ó\0É\0À\0§\0Ÿ\0¨\0X\0Ø\0X\0#\0\'\0“\0Â\0\'\0G\0S\0Â\0\'\0I\0U\0B\0\'\x007\0–\0=\0R\0\'\x007\0Ž\0–\0?\0R\0Ú\0–\0=\0R\0F\0\'\x007\0–\0E\0R\0–\0=\0R\0i\0_\0i\0n\0i\0i\0Ü\0%\0¨\0Ó\0¨\0Ó\0À\0k\0"\0¨\0a\0–\0A\0R\0a\0 \0¨\0‹\0Ž\0C\0F\0e\0ª\0¨\0ª\0¨\0e\0V\0_\0‹\x002\0‹\0\0‹\0¨\0]\0È\0¨\x006\0¨\0Ü\0%\x006\0\0¨\0Ü\0%\0ž\0¨\0Ü\0%\0ž\0\0¨\0Ü\0%\0Ÿ\0Ÿ\0Y\0Í\0Í\0D\0W\0Í\0B\0W\0Ç\0Ç\0D\0U\0Ç\0Ç\0D\0S\0Ç\0B\0S\0Å\0Å\0D\0Q\0Å\0B\0Q\0½\0½\0Ú\0O\0µ\0µ\0D\0M\0µ\0B\0M\0«\0«\0Ú\0K\0•\0•\0D\0I\0•\0•\0D\0G\0•\0B\0G\0‰\0‰\0D\0E\0‰\0B\0E\0i\0i\0Ú\0C\0g\0g\0D\0A\0g\0B\0A\0[\0[\0D\0?\0[\0B\0?\0)\0)\0D\0=\0)\0B\0=\0%\0%\0Ú\0;\0!\0!\0Ú\x009\0\0\0D\x007\0\0B\x007\0\0\0D\x005\0\0B\x005\0\0\0Ú\x003\0\0\0D\x001\0\0B\x001\0µ\0µ\0D\0M\0µ\0B\0M\0\0\0D\x001\0\0B\x001\0º\x006\0&\x006\0¨\0Ü\0%\x006\0\0¨\0Ü\0%\0\0%\0%\0%\0n\0%\0Œ\0;\0®\0¨\x004\0%\0¨\0"\0¨\0À\0%\0"\0¨\0Œ\x009\0®\0À\0%\0"\0¨\0À\0%\0"\0¨\0Œ\x009\0®\0À\0%\0¨\0Ü\0%\0\0¨\0Ü\0%\0¨\0\0Ü\0%\0¨\0Œ\x009\0®\0\0Ü\0%\0¨\0Œ\0.\0\0®\0\0Ü\0%\0¢\0Ü\0%\0¨\0Ü\0%\0%\0\0\r\0ü\0\0Œ\x009\0®\0\r\0ü\0\0Œ\0.\0\0®\0\r\0ü\0\0@\0w\0\r\0ü\0\0@\0w\0Œ\x009\0®\0\r\0ü\0\0@\0w\0Œ\0.\0\0®\0\r\0ü\0\0X\0\r\0ü\0\0X\0Œ\x009\0®\0\r\0ü\0\0X\0Œ\0.\0\0®\0\r\0ü\0\0Ø\0X\0\r\0ü\0\0Ø\0X\0Œ\x009\0®\0\r\0ü\0\0Ø\0X\0Œ\0.\0\0®\0\r\0ü\0\0Ž\x003\0F\0\0u\0˜\0%\0T\0˜\0\0%\0T\0\0\v\0–\x005\0R\0¨\0]\0È\0¨\0\r\0^\0,\0ö\0\0ô\0\0p\0\0\0€\0\0ª\0¨\0Ó\0\0V\0\r\0\0\r\0–\0ª\0R\0–\0-\0R\0\\\0Z\0.'],[0,16,"\0\0\0\0\0\0\0\0\0\0\n\0\r\0\0\0\0\0\0\0\0\0\"\0&\0(\0,\x003\x007\0>\0D\0K\0Q\0R\0U\0X\0]\0a\0b\0c\0d\0e\0f\0g\0j\0k\0m\0n\0o\0r\0u\0x\0{\0~\0\0„\0‡\0Š\0\0\0“\0–\0™\0œ\0Ÿ\0¢\0¥\0¨\0«\0®\0±\0´\0·\0º\0½\0À\0Ã\0Ä\0Ç\0Ê\0Í\0Ð\0Ó\0Ö\0Ù\0Ü\0ß\0â\0å\0è\0ë\0î\0ñ\0ô\0÷\0ú\0ý\0\t\f!&'(),/258;>ADGJMPSVY\\_bcelnprtvx|€‚„‡Œ”˜šŸ¢¤¨¯±³¶·º½ÀÃÆÉÌÏÒÕØÛÞáäçêíðñóúüþ\0\n\r\"&(-026=?ADEFGHIJKMNOPQSTW\\abefimqsvwz|‚ƒ†ŠŽ“”—™Ÿ ¨ª­¯±³µ·¹»½¿ÁÅÇÈÐÒÕ×ÙÛÝßáãåçéíïñòôùÿ\0\t\r !$%&).27;AFKOTY_dhpx‰—ž¦­³»ÃÌÔÛÛÜÜÝÝÞÞßßàââãæêîô\0\t\n\v !$%'*,.0236:?CHILLMPSSTWWX[^^_beefiijmppqttuxxy|€ƒ††‡ŠŠ‹Ž‘‘’•˜˜™œŸŸ ££¤§§¨«®®¯²µµ¶¹¹º½ÀÁÄÇÈËÎÎÏÐÑÕÚÚÛÞáäçèìó÷þ\t #)05=FJQY^fortw{|}€„…‡‰‹‘”•—™œŸŸ ¡¢"]],iOr=[0,[0,32,"\0\0\0\0\0T\0d\0˜\0œ\0ˆ\0\0¤\0À\0”\0˜\0Œ\0À\0¼\0¼\0´\0Œ\0„\0„\0€\0|\0\0\0\b\0\0ü\0´\0˜\0”\0\0D\0H\0H\0˜\0”\0\0˜\0”\0˜\0„\0L\0H\0H\0¤\0 \0œ\0¤\0 \0¤\0¤\0¤\0\b\b\0\b\0Ì\0d\0d\0d\0Ü\0Ü\0è\0Ì\0\\\0X\0\\\0X\0\\\0Ä\0À\0Ä\0Ä\0\\\0\\\0\\\0ð\0ð\0Œ\0ˆ\0Œ\0Œ\0Œ\0À\0¼\0À\0Ð\0Ä\0°\0¬\0¨\0°\0¬\0¨\0°\0¬\0°\0°\0°\0È\0°\0°\b\0ä\0à\0ì\0ì\0Ø\0à\0¸\0D\0Ø\0„\0„\0€\0Ä\0ø\0„\0Ô\0È\0Ô\0È\0Ô\0È\08\0@\0<\0¸\0´\0@\0@\0@\0<\0<\0@\0<\0<\0¸\0¸\0D\0D\0P\0¸\0ä\0°\t\0¬\0¬\0¬\0¬\0¬\b\0¨\0¨\0¨\0À\0@\0<\0À\0¼\0@\0<\0¼\0Œ\0Œ\0Œ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0\\\0@\0<\0X\0X\0@\0<\0p\0l\0h\0`\0p\0l\0p\0p\0p\0p\0p\0p\b\0@\0<\0l\0l\0l\0l\0l\0@\0<\0`\0`\0@\0<\0h\0h\0h\0@\0<\0ä\0à\0Ü\0ä\0ä\0à\0à\0Ì\0Ì\0è\0d\0@\0<\0\b\0ô\0\b\0ô\0ô\0\0\0\0\0ô\0\0\0ü\0ø\0\0\0\0\0ü\0ü\0\0\0\0\b\b\0\b\b\0¤\0¤\0¤\b\0 \0 \0 \0 \0 \0œ\0œ\0œ\0H\0@\0<\0„\0„\0˜\0˜\0˜\0˜\b\0˜\t\0”\0”\0”\0”\0”\b\0\0\0\0t\0t\0t\0@\0<\0Ð\0x\0Ä\0x\0x\0@\0<\0ð\0ì\0ð\0|\0@\0<\0ð\0´\0´\0ü\0\b\0\0@\0<\0\0\0€\0|\0€\0œ\0°\0¬\0°\0¬\0ˆ\0°\0 \0¸\0¸\0p\0¨\0x\0t\0l\0t\0x\0t\0t\0x\0@\0<\0x\0€\0Œ\0Œ\0Œ\0ˆ\0„\0Œ\0Œ\0ˆ\0ˆ\0´\0¤\0¤\0|\0x\0x\0t\0|\0|\0d\0$\0d\0d\0h\0T\0T\0`\0\\\0X\0`\0`\0\\\0\\\0\0\0\0\0\0\0X\0X\0 \0,\0\\\0<\0<\0\f\0X\0X\0p\0\0|\0\0x\0\0|\0\0x\0\0|\0\0\0@\0<\0\0|\0\0\0\0x\0\0x\0\0T\0\0P\0\0T\0\0P\0\0T\0\0T\0\0T\0\0T\0@\0<\0\0T\0\0P\0@\0<\0\0P\0\0\0ü\0ø\0à\0\0\0$\0´\04\0(\0\b\0À\0p\0\0ì\0h\0d\0`\0œ\0”\0œ\0”\0œ\0”\0œ\0\b\0T\0L\0l\0P\0¨\0\b\0\b\0\0 \0\0 \0L\0L\0H\0@\0<\08\0ü\0ü\0ô\0ð\0ì\0è\0ä\0\0\\\0ô\0ð\0ì\0è\0ä\0\0\\\0\0ô\0ð\0ì\0è\0ä\0\0\\\0ì\0ì\0ì\0`\0\\\0`\0`\0`\0`\0\\\0\\\0\\\0œ\0T\0P\0L\0T\0P\0T\0T\0T\0T\0P\0P\0P\0L\0X\0ì\0ì\b\0¬\0\b\0\b\0\b\0\0D\0(\0$\0 \0\0D\0¼\0¸\0\b\0\0\0\0ü\0ø\0\0`\0\b\0\0\0\0ü\0ø\0\0`\0\0\0\0\0\0\0\0\0\0\0\0,\0\0(\0\0(\0\0(\0\0,\0\x000\0\0\b\0ø\0ø\0ø\0ø\0ø\0\0\0\0\0\0\0`\0\0`\0\0`\0\0\0Ø\0Ä\0À\0Ø\0Ä\0À\0À\0À\0À\0À\0Ø\0Ø\0Ø\0Ø\0Ä\0Ä\0Ä\0Ð\0´\0°\0°\0°\0°\0°\0Ð\0Ð\0Ð\0Ð\0´\0´\0´\0Ü\0Ì\0È\0È\0È\0È\0È\0Ü\0Ü\0Ü\0Ü\0Ì\0Ì\0Ì\0\0p\0\0p\0\0p\0\b\0À\0p\0À\0\0h\0À\0À\0p\0\0\0D\0H\0H\0H\0H\0H\0ð\0ì\0è\0ð\0ð\0ì\0ì\0Ü\0¤\0 \0¤\0\0L\0\0H\0\0L\0\0H\0\0H\0Ü\0Ü\0Ü\0ü\0ø\0\0t\0\0t\0\0Ô\0\0\f\0\0\f\0\0@\08\0\00\00\0\0\0¼\0¸\0°\0¬\0¨\0t\0p\0t\0|\0@\0<\0|\0|\0t\0t\0p\0p\0¨\0ô\0ð\0ô\0ð\0D\0D\0ä\0ä\0œ\0Œ\0ô\0ô\0è\0è\0È\0˜\0p\0\0\0\0h\0˜\0˜\0p\0\0X\0\0X\0\0X\0D\0\0\0\0\0$\0 \0$\0$\0 \0ì\0T\0P\0|\0x\0|\0è\0<\0è\0\0\0\0\0\f\0\0d\0\0\0\0\0\f\0\0d\0\0\0\0\0\f\0\0d\0\0\0\0\0\b\0\t\0\f\0\f\0\f\0\f\0\f\b\0\0\0\0\0\b\0\0d\0\0d\0\0d\0\0d\0H\0\0\0\0\0\0\0\0\0\b\0à\0à\0à\0à\0ä\0à\0à\0à\0,\0Ô\0\0\0\0\\\04\00\04\00\0@\0Ð\0Ì\0Ð\0Ì\0Ð\0\0\0\0\0X\0X\0X\0X\0Ð\0d\0`\0d\0d\0`\0\0\0ø\0ø\0,\0(\0(\0$\0 \0 \0 \0\0\0\f\0\b\0\0\0Ø\0Ø\0Ô\0¼\0¸\0ð\0¸\0¸\0¸\0¸\0Ô\0Ô\0Ô\0Ô\0ð\0¼\0¼\0¼\0\0l\0\0¨\0Ä\0”\0\0ˆ\0„\0€\0€\0Ì\0<\0t\0\0€\0(\0Ì\0ô\0ð\0ì\0è\0ä\0à\0Ü\0Ø\0Ô\0Ð\0Ì\0È\0Ä\0À\0¼\0¸\0´\0°\0¬\0¨\0\0\0\0\f\0\b\0\0\0\0\0ü\0\0ø\0\0ô\0\0ð\0\0ì\0\0è\0\0ä\0\0à\0\0Ü\0\0Ø\0\0Ô\0\0Ð\0\0Ì\0\0È\0\0Ä\0\0À\0\0¼\0\0¸\0\0´\0\0°\0\0¬\0\0Ü\0\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0Ü\0P\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0<\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\0<\08\04\00\0,\0(\0$\0 \0D\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0D\0@\0<\08\04\00\0,\0(\0$\0 \0@\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0@\0<\08\04\00\0,\0(\0$\0 \08\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\08\04\00\0,\0(\0$\0 \0$\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0$\0 \0X\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0T\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0`\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\\\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \04\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\04\00\0,\0(\0$\0 \0Œ\0Œ\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0L\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0„\0Œ\0ˆ\0„\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0l\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0(\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0(\0$\0 \00\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\00\0,\0(\0$\0 \0p\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0t\0Œ\0ˆ\0„\0€\0|\0x\0t\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0d\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0x\0Œ\0ˆ\0„\0€\0|\0x\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0|\0Œ\0ˆ\0„\0€\0|\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0h\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0,\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0,\0(\0$\0 \0ˆ\0ˆ\0H\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0€\0Œ\0ˆ\0„\0€\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0 \0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0 \0à\0È\0È\0¤\0\0„\0,\0 \08\0Ä\0Ä\0Ø\0Ø\0Ô\0¼\0¸\00\0\0ˆ\00\0´\0°\0¬\0¨\0¤\0 \0œ\0˜\0”\0\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0 \0 \0\0Œ\04\0Œ\0Œ\0”\0”\0\0\0ˆ\0ˆ\0¨\0¨\0¤\0¤\0°\0°\0¬\0¬\0„\0„\0p\0p\0œ\0œ\0x\0x\0€\0€\0t\0t\0|\0|\0´\0´\0l\0l\0˜\0˜\0à\0\0È\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0È\0Ì\0Ì\0\0Ð\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0Ð\0Ô\0Ô\0\0Ì\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0Ì\0Ð\0Ð\0\0Ä\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0Ä\0È\0È\0\0°\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0°\0\0ä\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0ä\0è\0è\0\0à\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0à\0ä\0ä\0\0ì\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0ì\0ð\0ð\0\0è\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0è\0ì\0ì\0\0À\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0À\0Ä\0Ä\0°\0°\0\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0\0Ø\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0Ø\0Ü\0Ü\0\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0\0ø\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0ø\0\0´\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0´\0¸\0¸\0\0¼\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0¼\0À\0À\0´\0´\0\0ü\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0ü\0\0\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0\0\0ð\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0ð\0\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0\b\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\b\0\0ô\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0ô\0\0¸\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0¸\0¼\0¼\0\0\0ô\0ô\0¬\0¬\0\0Ô\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0Ô\0Ø\0Ø\0\f\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\f\0\0¬\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0¬\0€\0€\0„\0ˆ\0ˆ\0”\0\0\0¤\0\0 \0\0 \0\0˜\0\0˜\0\0˜\0(\0$\0(\0(\0\0œ\0\0\0\0”\0\0\0\0\b\0\f\0\0\0,\0Ð\0X\0X\0X\04\00\04\04\0\\\0\0Ô\0|\0|\0D\0@\0D\0D\0x\0x\0T\0P\0T\0T\0ì\0\0\0\0D\0\0X\0p\0p\0˜\0”\0\0ˆ\0„\0€\0˜\0ˆ\0˜\0ˆ\0˜\0È\0\0\0\0h\0È\0\0\0\0h\0˜\0\0˜\0\0˜\0˜\0È\0\0\0\0h\0È\0\0\0\0h\0ô\0ð\0ì\0è\0ä\0ô\0ð\0ì\0è\0ä\0ô\0ð\0ì\0è\0ä\0ä\0ä\0ä\0ä\0ä\b\0ð\0ð\0ð\0ð\0ð\b\0ô\0ô\0ô\0ô\0è\0è\0è\0è\0è\b\0\b\0\0\0\0ü\0ø\0\b\0\0\0\0ü\0ø\0\b\0\b\0\b\0\b\0ü\0ü\0ü\0ü\0ü\0\0\0\0\0\f\0\0\0\0\0\f\0\0\0\0\0\f\0\0\0\0\0Ô\0¼\0¸\0\0h\0È\0”\0\0ˆ\0„\0€\0È\0\0È\b\0\08\04\00\08\08\04\04\04\0\0¼\0¸\0°\0¬\0¨\0¬\0°\0°\0¼\0¸\0¸\0ô\0ð\0ô\0ô\0¨\0¨\08\0@\0Ô\0\0\0t\0ü\0Ü\0\0H\0¤\0¤\0 \0 \0Ü\0D\0\0\0\0\0À\0¼\0¸\0°\0¬\0¨\0À\0°\0À\0°\0À\0\b\0À\0\0h\0\b\0À\0\0h\0\b\0À\0\0h\0\b\0À\0\0h\0À\0À\0\b\0¼\0¸\0°\0¬\0¨\0\b\0¸\0\b\b\0¸\0\0L\0\0H\0\0@\0\0L\0\0H\0\0@\0\0H\0\0@\0\0H\0\0@\0\0@\0\0@\0\0\0\0\0\0<\0\x004\0\x008\0\f\0\b\0\0\f\0\f\0\b\0\b\0\0`\0¼\0\0D\0¬\0¬\0\0\0\0\0\0\0\0ì\t\0\0\\\0\0\\\0\0\\\0\0\\\0ü\0ü\0@\0<\08\0@\0@\0\0$\0\0$\0\0$\0<\08\0<\0<\0L\0\0 \0\b\0\b\0œ\0T\0˜\0\0`\0`\0h\0h\0h\0h\0\f\0\b\0\0\f\0\f\0\b\0\b\0à\0Ü\0¼\0¸\0°\0¬\0¨\0d\0à\0d\0à\0d\0d\0à\0Ü\0¼\0¸\0°\0¬\0¨\0à\0à\0ì\0\0\b\0\b\0\b\0\b\0(\04\0$\0\0\0à\0\0\0ü\0ø\0\0\0\0\0ü\0ø\0ü\0ü\0\0x\0\f\0\f\0<\0<\0,\0 \0X\0X\0\0\0\0\b\0\0\\\0\\\0\\\0\\\0ü\0ø\0ü\0ü\0P\0L\0P\0P\0\0\b\0\0\f\0\0h\0d\0`\0T\0P\0T\0P\0T\0T\0T\0T\0T\0@\0<\0P\0P\0@\0<\0Ô\0Ð\0Ì\0Ô\0Ô\0Ð\0Ð\0h\0d\0`\0h\0¤\0h\0h\0h\0h\00\0,\00\00\00\0@\0<\00\0,\0,\0@\0<\0,\0¬\0¨\0¤\0¬\0¬\0¨\0¨\0h\b\0h\t\0 \0 \0@\0<\0 \0p\0l\0h\0p\0p\0l\0l\0d\0`\0d\0d\0Ð\0Ì\0Ð\0Ð\0Ð\0@\0<\0Ð\0Ì\0Ì\0@\0<\0Ì\0Ø\0Ô\0Ø\0Ø\0Ø\0@\0<\0Ø\0Ô\0Ô\0@\0<\0Ô\0d\0d\0d\b\0d\t\0d\n\0d\v\0d\f\0œ\0˜\0”\0œ\0œ\0˜\0˜\0`\0`\0`\0\0\f"],[0,16,'\0\0\0\0\0\0\0\0\0\0\b\0\t\0\n\0\v\0\f\0\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"\0$\0%\0&\0(\0)\0,\0.\0/\x000\x001\x004\x005\x006\x007\x008\x009\0:\0;\0=\0?\0@\0B\0C\0D\0E\0F\0G\0H\0I\0K\0L\0M\0N\0P\0Q\0S\0V\0Y\0[\0\\\0]\0^\0_\0`\0a\0b\0c\0d\0e\0f\0g\0h\0i\0k\0l\0m\0n\0o\0p\0r\0t\0v\0w\0{\0|\0\0€\0ƒ\0„\0…\0†\0‡\0ˆ\0‰\0Š\0‹\0Œ\0\0Ž\0\0\0‘\0’\0“\0–\0—\0š\0›\0œ\0\0ž\0Ÿ\0 \0¡\0¢\0£\0¦\0§\0ª\0®\0°\0±\0²\0³\0´\0µ\0¸\0¹\0º\0»\0¼\0¿\0À\0Ã\0Ä\0Å\0È\0Ë\0Ì\0Í\0Î\0Ï\0Ð\0Ñ\0Ò\0Õ\0×\0Ø\0Ù\0Ú\0Ý\0Þ\0ß\0â\0ã\0ä\0å\0æ\0ç\0è\0é\0ê\0ë\0ì\0í\0î\0ï\0ð\0ñ\0ò\0ó\0ô\0õ\0ö\0ù\0ú\0û\0ü\0ý\0þ\0ÿ\0\b\t\n\r"$%&(*+,-./014589<=>?BCDEFGHIMNOPQRSTUVYZ[\\]^_`abcdefghijlnptuvxz{|}~‚…ˆ‰Š‹ŒŽ’“”—™›žŸ ¡¢£¤¥¦§¨©ª«®¯°¶¼½ÃÄÅÆÈÉÊËÌÍÎÏÓÕÖרÙÚÛÜÝÞßàáâãäåæçèéëñ÷øùúûüþÿ\0\b\t\n\v\f\r !"%&\'()*+,-./03456789:;<=>?@AFGIKLMNOPQTUVWXY[\\^`abcdfghijlnopqrstu{}~‚ƒ„…†‡ˆŠŒŽ‘’“”•–›œžŸ ¡¢£¤¥¦¨©ª«¬®°±²³´ºÀÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèêëìíîïðñòôö÷ùûüýþÿ\0\b\t\n\v\f\r !"#$%&\'()*+,23456789ijkˆ‰¦§ÄÅâã\0<=Z[xy–—´µÒÓðñ,-JKhi†‡¤¥ÂÃàáþÿ:;XYZ[xy–—´µ¶·¸¹º»¼½¾¿ÀÄÅÆö÷øùúûüýþÿ\0\b\t\n\v\f\r =>?@]^_`}~€žŸ ½¾ÛÜÝÞûüýþ\b\b\b\b\b;\b<\b=\b>\b[\b\\\b]\b^\b_\b`\b}\b~\b›\bœ\b\bž\b»\b¼\bÙ\bÚ\b÷\bø\bù\bú\t\t\t\t\t\t\t9\t:\tW\tX\tu\tv\t“\t”\t±\t²\tÏ\tÐ\tí\tî\tï\tð\tñ\tò\tó\tô\tõ\tö\n\n\n\n\n3\n4\nQ\nR\nS\nT\nU\nV\nW\nX\nY\nZ\n[\n\\\n]\n^\n`\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\ns\nt\nu\nv\nw\nx\ny\nz\n|\n}\n~\n\n€\n‚\nƒ\n„\n…\n†\n‡\nˆ\n‰\nŠ\n‹\nŒ\n’\n”\n–\n—\nš\n\nŸ\n¡\n¢\n£\n¦\n©\n®\n³\n¸\n¹\nº\n»\n¼\n½\n¾\n¿\nÀ\nÁ\nÂ\nÃ\nÄ\nÅ\nÆ\nÇ\nÈ\nÉ\nÊ\nË\nÐ\nÕ\nÖ\n×\nØ\nÙ\nÚ\nÛ\nÜ\nÝ\nÞ\nã\nè\ní\nî\nï\nò\nó\nù\nû\ný\v\0\v\v\v\v\v\v\v\f\v\r\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v \v!\v"\v#\v$\v%\v\'\v(\v)\v/\v1\v3\v4\v7\v:\v=\v@\vA\vB\vH\vJ\vL\vO\vR\vT\vV\vW\vX\vY\vZ\v[\v\\\v]\v`\va\vb\vc\vd\ve\vf\vg\vh\vi\vl\vm\vn\vo\vp\vq\vr\vs\vt\vu\vv\vw\vz\v{\v|\v}\v~\v\v\v‚\vƒ\v„\v…\v†\v‡\vˆ\v‹\vŒ\v\vŽ\v\v\v‘\v”\v•\v–\v—\v˜\v \v¢\v¤\v¥\v¬\v­\v®\v¯\v°\v±\v²\v³\v´\vµ\v¶\v·\v¸\v¹\vº\v½\v¾\v¿\vÁ\vÂ\vÃ\vÄ\vÅ\vÆ\vÇ\vÈ\vÉ\vÊ\vË\vÌ\vÍ\vÎ\vÏ\vÐ\vÑ\vÒ\vÔ\vÕ\vÖ\vØ\vÙ\vÚ\vÛ\vÜ\vß\vá\vã\vä\vå\væ\vç\vê\vë\vî\vñ\vò\vó\vô\võ\vø\vù\vú\vû\vü\vý\vþ\f\0\f\f\f\f\f\f\b\f\v\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f \f"\f#\f$\f&\f\'\f(\f)\f,\f-\f.\f1\f3\f4\f5\f6\f9\f:\f;\f>\f?\f@\fA\fB\fC\fD\fE\fH\fI\fJ\fK\fL\fM\fN\fO\fP']],cOr=[0,YI,'\0\0€\0\0\0\0\0\0 \0\0\0\0\0\0,{°0&J=&w¯c}\r€/vÉG¤ÎõãÂ#Ìo¡€\0\0\0\0\0\0\0\0\0€\0@\0\0\0\0\0\0 \0\0À\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\b\0\0\0Œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"0\0\0\0\0` \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0@\0 c\0\0\0\0\b\0\0d\fa \0\0 \0À@\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0ÈÀ@\0\0@€€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0€\0 @ Æ\0\0\0\f\0\n\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0d\f` \0\0 \0À@\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\b\0 \0\0\t\0D\0\0!\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À»d£Ògxñàæ7ÐÀ\0€\0\0\0\0\0\0\0\0\0\0\0\0\0^ì\b\t’IãǀG˜ßC`\vÿ¡>Qé3¼xø\bóèl{° &J=&wc}\r€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0 \f€#\0\0€\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b$\0\0@\0À€\0\b@\0\0\0\0\0H\0\0\b\0\0\0 €\0\0\0\t\0@\0\0!\0\0\0\0\0\0 \b€@@\0 \0\0\0@\0\0\0\0\0\0\0\b\0\0\0\0\0\0H\0\0€"\0\0€€\t\0\0@\0@0 \0\0€\0 \0\0\0\0\0\0\b\0\0\0\0\0\0\v\0^ì\f\t’IëǀG˜ßC`\v݁2Qé3½xðˆóè`\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0` \0\0\0\0A\0\0\0€\0ˆ\0\0B\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‚\0\0\0\0$\0\b\b\0\0„\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À)\0\0DÐ$`0 \0Ø\0E \0\b:„\0`B\0\0\b \0\0@€€€\0\b@\0\0\0\0\0È\b\0\0\0\0€\0\0\0\t\0@\0\0\0!\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0‚\0\0\0$\b\b\0\0„\0\0\0@\0\0 € \0€\0À»d£Ògxñàæ7ÐØw`@L”zLç<|Æú\0Jì\0\t@™ÃÀG\bßC`\t]€"@èxp\táèl{° &J=&w>c}\f\0\b\0\0\0\0\0\0\0\0@\0\0\0\0\x000\0Š@\0 t\t\f(\0@„\x006\0H\0$!…\0€\0\b\0\0\0@ \0\0÷`@L”zLï<<Æú\0^ì\b\t’IœãǀO˜ßC\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0  $P€\0@\0€/þ„ùG¤Îñãà#Ìo¡°îÀ€™(ô™Þ",'"text"'],R5r=[0,hg,mK],Q5r=[0,".",".1"],C5r=[0,"","'c'"],H5r=[0,"",jf],V5r=ul,L5r=[0,me,Rn],z5r=[0,"",zg],S5r=on,Z5r=ui,W5r=iO,X5r=Ks,J5r=[0,"",fQ],Y5r=ul,r7r=on,n7r=Fo,t7r=ui,e7r=iO,a7r=Ks,u7r=Fo,f7r=Fo,i7r=Ty,c7r=Rx,v7r=ak,o7r=ak,A7r=qU,s7r=re,b7r=dK,l7r=Nk,B7r=iI,j7r=iI,k7r=Tt,p7r=[0,me,Rn],m7r=Ty,d7r=[0,"?",l$],_7r=[0,"?",ax],h7r=[0,"=?","=?"],x7r=[0,"",zg],y7r=[0,"",py],w7r=Rx,g7r=[0,"",bt],q7r=ak,I7r=[0,"","f(x : Int)"],D7r=[0,"",zg],E7r=[0,"",bt],N7r=zp,T7r=qU,F7r=re,M7r=zp,P7r=dK,U7r=[0,"","var x : Int = 0"],G7r=Nk,$7r=iI,K7r=[0,"","= {}"],O7r=Tt,R7r=[0,"",zg],Q7r=[0,lU,lU],C7r=[0,Ss,0],H7r=By,V7r=zy,L7r=Sq,z7r=pl,S7r=zy,Z7r=nx,W7r=zy,X7r=Qk,J7r=zy,Y7r=[0,"mo_frontend/error_reporting.ml",11,19],r8r=[0,jE],n8r=[1,[0,Pf,JG]],t8r=[2,hg],e8r=[3,JG],a8r=[4,jN],u8r=[5,Pf],f8r=[6,0],i8r=[7,0],c8r=[0,rN,97,8],v8r=[0,rN,x$,8],o8r=[0,rN,yn,21],A8r=[0,rN,82,4],s8r=[0,rN,71,4],b8r=[0,_y,48,9],l8r=[0,_y,Kf,13],B8r=[0,[11,$f,[2,0,0]],"unexpected %s"],j8r=[0,[11,$f,[2,0,[11,", expected one of token or :\n ",[2,0,0]]]],"unexpected %s, expected one of token or :\n %s"],k8r=[0,[11,$f,[2,0,[11,HO,[2,0,0]]]],Xw],p8r=[0,[11,$f,[2,0,[11," in position marked . of partially parsed item(s):\n",[2,0,0]]]],"unexpected %s in position marked . of partially parsed item(s):\n%s"],m8r=[0,[11,$f,[2,0,[11,HO,[2,0,0]]]],Xw],d8r=DM,_8r=LM,h8r=JP,x8r=JP,y8r=zy,w8r=zy,g8r=zy,q8r=JP,I8r=[0,[11,"cannot use ",[2,0,[11," before ",[2,0,[11," has been defined",0]]]]],"cannot use %s before %s has been defined"],D8r=[0,0],E8r=[0,0],N8r=[0,15],T8r=[0,16],F8r=[0,wp,93,20],M8r=[0,15],P8r=[0,16],U8r=[0,wp,ck,16],G8r=[0,wp,qT,16],$8r=[0,wp,Yn,15],K8r=[0,wp,CE,27],O8r=[0,14],R8r=[0,wp,Kw,14],Q8r=[0,wp,gN,13],C8r=[0,1,0],H8r=[0,1,0],V8r=[0,wp,qF,15],L8r=[0,wp,241,11],z8r=[0,14],S8r=[0,12],Z8r=[0,0],W8r=[0,1],X8r=[0,2],J8r=[0,3],Y8r=[0,4],r9r=[0,5],n9r=[0,6],t9r=[0,7],e9r=[0,8],a9r=[0,9],u9r=[0,11],f9r=[0,10],i9r=[0,3],c9r=[0,13],v9r=[0,wp,86,15],o9r=[0,wp,57,35],A9r=[0,[2,0,[11,k,[4,0,0,0,[12,95,[4,0,0,0,0]]]]],"%s__%d_%d"],s9r=[0,[2,0,[11,k,[4,0,0,0,0]]],"%s__%d"],b9r=[0,[2,0,[12,95,[4,0,0,0,0]]],"%s_%d"],l9r=[0,wp,63,11],B9r=[2,16],j9r=[2,18],k9r=[0,hR,85,12],p9r=[1,0,2],m9r=ap,d9r=[7,0],_9r=[0,hR,hh,14],h9r=ap,x9r=[0,hR,t$,15],y9r=[0,hR,tw,14],w9r=[0,hR,HP,11],g9r=[0,1,0],q9r=[0,0,1],I9r=[0,2,1],D9r=[0,1,1],E9r=[0,hR,34,9],N9r=[2,2],T9r=[2,3],F9r=[2,4],M9r=[2,5],P9r=[2,6],U9r=[2,7],G9r=[2,8],$9r=[2,9],K9r=[2,10],O9r=[2,11],R9r=[2,13],Q9r=[2,12],C9r=[2,1],H9r=[2,15],V9r=[2,0],L9r=[0,[11,Ey,0],Ey],z9r=[0,_g,726,17],S9r=[0,[11,Xp,[2,0,[11,xo,0]]],IO],Z9r=Ts,W9r=[0,[2,0,0],JF],X9r=[0,_g,574,17],J9r=[0,_g,582,17],Y9r=[0,_g,568,17],rrn=[0,_g,584,13],nrn=[0,_g,540,82],trn=[0,_g,529,13],ern=RI,arn=mk,urn=[0,[11,En,0],En],frn=[0,[2,0,0],JF],irn=[0,[11,Oe,0],Oe],crn=[0,[11,"could not parse ",[3,0,[11," as an actor reference: ",[2,0,0]]]],"could not parse %S as an actor reference: %s"],vrn=[0,[2,0,0],JF],orn=[0,[11,YR,0],YR],Arn=RI,srn=[3,1,0,0],brn=[0,_g,753,4],lrn=[0,_g,Cx,20],Brn=GU,jrn=[0,[11,yM,0],yM],krn=[0,[11,v$,0],v$],prn=[2,16],mrn=[0,_g,ph,8],drn=[0,[11,"switch value ",[2,0,[11," does not match any case",0]]],"switch value %s does not match any case"],_rn=[0,_g,897,19],hrn=[0,_g,ZD,11],xrn=[0,_g,943,9],yrn=[0,[11,"context value ",[2,0,[11," does not match context pattern",0]]],"context value %s does not match context pattern"],wrn=[0,_g,wd,4],grn=[0,_g,1046,56],qrn=[0,[11,Xp,[2,0,[11,xo,0]]],IO],Irn=[0,[11,Ki,0],Ki],Drn=[0,[11,"<= ",[2,0,0]],Me],Ern=[0,[2,0,[2,0,0]],"%s%s"],Nrn=HI,Trn=[0,[11,"argument value ",[2,0,[11," does not match parameter list",0]]],"argument value %s does not match parameter list"],Frn=Jg,Mrn=[0,[11,Y,0],Y],Prn=lO,Urn=[0,_g,1190,9],Grn=[0,[11,S$,0],S$],$rn=[0,[11,"cancelled: ",[2,0,[12,10,0]]],"cancelled: %s\n"],Krn=[0,[11,oR,[2,0,[11,SP,[2,0,[11," cannot handle non-tuple value ",[2,0,0]]]]]],"call %s: calling convention %s cannot handle non-tuple value %s"],Orn=[0,[11,oR,[2,0,[11,SP,[2,0,[11," got tuple of wrong length ",[2,0,0]]]]]],"call %s: calling convention %s got tuple of wrong length %s"],Rrn=[0,[11,"call_conv mismatch: function ",[2,0,[11,Qa,[2,0,[11," expecting ",[2,0,[11,", found ",[2,0,0]]]]]]]],"call_conv mismatch: function %s of type %s expecting %s, found %s"],Qrn=Ts,Crn=Ts,Hrn=[0,[11,Ns,0],Ns],Vrn=Ts,Lrn=Ts,zrn=Ts,Srn=[15,0],Zrn=[0,[11,tn,0],tn],Wrn=[0,[11,tn,0],tn],Xrn=[0,_g,qf,16],Jrn=[0,[11,"actorfield: ",[2,0,[12,32,[2,0,0]]]],"actorfield: %s %s"],Yrn=[0,[11,fn,[2,0,[12,32,[2,0,[2,0,0]]]]],"<- await%s %s%s"],rnn=[0,[11,fn,[2,0,[12,32,[2,0,[11," threw ",[2,0,0]]]]]],"<- await%s %s threw %s"],nnn=rr,tnn=[0,[11,"=> await",[2,0,[12,32,[2,0,0]]]],"=> await%s %s"],enn=[0,[11,"<= ",[2,0,0]],Me],ann=[0,[11,"<- async ",[2,0,0]],"<- async %s"],unn=[0,[11,"-> async ",[2,0,0]],"-> async %s"],fnn=Li,inn=[0,_g,wo,9],cnn=[0,[2,0,[11,": execution error, ",[2,0,[12,10,0]]]],"%s: execution error, %s\n"],vnn=[0,[2,0,[11,TE,[2,0,[12,10,0]]]],"%s = %s\n"],onn=[0,[10,0],"%!"],Ann=[0,[2,0,[11,": internal error, ",[2,0,[12,10,0]]]],"%s: internal error, %s\n"],snn=[0,[11,Ym,0],Ym],bnn=[0,[12,10,0],ku],lnn=[0,[2,0,0],JF],Bnn=[0,[10,0],"%!"],jnn=[0,[2,0,[2,0,[12,10,[10,0]]]],"%s%s\n%!"],knn=[0,[11,'Actor "',[2,0,[11,'" has no method "',[2,0,[12,34,0]]]]],'Actor "%s" has no method "%s"'],pnn=[0,[11,'Unknown actor "',[2,0,[12,34,0]]],'Unknown actor "%s"'],mnn=zy,dnn=[0,[11,"unbound identifier ",[2,0,[11," in domain ",[2,0,0]]]],"unbound identifier %s in domain %s"],_nn=[0,1,1,1,1,1],hnn=[0,0,1],xnn=[0,1,0],ynn=[0,"ir_def/ir_effect.ml",Bs,22],wnn=[0,Au,825,19],gnn=nl,qnn=nl,Inn=nl,Dnn=[0,Au,717,9],Enn=[0,Au,710,8],Nnn=fU,Tnn=fU,Fnn=[0,Au,671,9],Mnn=[0,Au,636,2],Pnn=[0,Au,635,11],Unn=Le,Gnn=[0,Au,608,11],$nn=mv,Knn=[0,Au,552,2],Onn=[0,Au,547,2],Rnn=[0,Au,498,2],Qnn=[1,0],Cnn=[2,0],Hnn=[2,0],Vnn=[0,Au,SB,11],Lnn=[0,Au,xb,11],znn=[0,Au,qq,9],Snn=[0,Au,CD,9],Znn=[0,Au,ua,11],Wnn=[0,[2,0,[4,3,0,0,0]],"%s%i"],Xnn=[0,[12,36,[2,0,[12,47,[4,3,0,0,0]]]],"$%s/%i"],Jnn=[0,"ir_def/rename.ml",142,4],Ynn=[0,"ir_def/subst_var.ml",82,4],rtn=nv,ntn=QU,ttn=rn,etn=AO,atn=dG,utn=Zs,ftn=Qb,itn=GT,ctn=hd,vtn=ce,otn=mP,Atn=ay,stn=Pc,btn=[0,be],ltn=$e,Btn=$e,jtn=zR,ktn=vB,ptn=[0,"TupPrim"],mtn=[0,"OptPrim"],dtn=[0,"IdxPrim"],_tn=[0,"IdxBlobPrim"],htn=[0,"RetPrim"],xtn=[0,"AssertPrim"],ytn=[0,"ThrowPrim"],wtn=[0,"DecodeUtf8"],gtn=[0,"EncodeUtf8"],qtn=[0,"BlobOfIcUrl"],Itn=[0,"IcUrlOfBlob"],Dtn=[0,"SystemTimePrim"],Etn=[0,"NextArrayOffset"],Ntn=[0,"EqArrayOffset"],Ttn=[0,"DerefArrayOffset"],Ftn=[0,"GetLastArrayOffset"],Mtn=[0,"SystemCyclesAddPrim"],Ptn=[0,"SystemCyclesAcceptPrim"],Utn=[0,"SystemCyclesAvailablePrim"],Gtn=[0,"SystemCyclesBalancePrim"],$tn=[0,"SystemCyclesRefundedPrim"],Ktn=[0,"SystemCyclesBurnPrim"],Otn=[0,"SystemTimeoutSetPrim"],Rtn=[0,"SetCertifiedData"],Qtn=[0,"GetCertificate"],Ctn=[0,"ICPerformGC"],Htn=[0,"ICRejectPrim"],Vtn=[0,"ICCallerPrim"],Ltn=[0,"ICCallPrim"],ztn=[0,"ICCallRawPrim"],Stn=[0,"ICMethodNamePrim"],Ztn=[0,"ICReplyDeadlinePrim"],Wtn=[0,"ICArgDataPrim"],Xtn=Be,Jtn=[0,"AwaitPrim?"],Ytn=[0,"AwaitPrim"],ren=[0,"AwaitPrim*"],nen=[0,WG],ten=[0,WF],een=[0,AN],aen=dO,uen=ju,fen=P$,ien=fr,cen=JM,ven=To,oen=gd,Aen=[0,lD],sen=bt,ben=_D,len=ft,Ben=Pe,jen=Tg,ken=H$,pen=In,men=Sl,den=sK,_en=K,hen=oN,xen=Zy,yen=Er,wen=pD,gen=Pm,qen=fE,Ien=X_,Den=[0,[3,0,0],"%S"],Een=_p,Nen=yg,Ten=WP,Fen=tT,Men=sh,Pen=sh,Uen=[0,[11,Ex,0],Ex],Gen=[0,[11,"free type variable ",[2,0,[11,", index ",[4,3,0,0,0]]]],"free type variable %s, index %i"],$en=[0,[11,"free type constructor ",[2,0,[12,32,0]]],"free type constructor %s "],Ken=GA,Oen=[0,[11,"object type's fields are not distinct and sorted ",[2,0,0]],"object type's fields are not distinct and sorted %s"],Ren=Ej,Qen=[0,[11,"variant type's fields are not distinct and sorted ",[2,0,0]],"variant type's fields are not distinct and sorted %s"],Cen=[0,1],Hen=[0,[11,"one-shot function cannot have non-unit return types:\n ",[2,0,0]],"one-shot function cannot have non-unit return types:\n %s"],Ven=[0,[11,yA,[2,0,0]],lh],Len=[0,[11,Cv,[2,0,0]],Es],zen=[0,[11,"replying function cannot be local:\n ",[2,0,0]],"replying function cannot be local:\n %s"],Sen=[0,[11,Cv,[2,0,0]],Es],Zen=[0,[11,yA,[2,0,0]],lh],Wen=[0,[11,"unexpected T.Mut ",[2,0,0]],"unexpected T.Mut %s"],Xen=[0,[11,nm,[2,0,[11," must have shared function type, found ",[2,0,0]]]],"actor field %s must have shared function type, found %s"],Jen=NA,Yen=[0,[11,vg,[2,0,[11,fk,[2,0,0]]]],tE],ran=[0,QF,MK,56],nan=[0,[11,ep,0],ep],tan=[0,[11,Fe,0],Fe],ean=Pc,aan=ay,uan=[0,[11,"const ",[2,0,[11," with non-const variable ",[2,0,0]]]],"const %s with non-const variable %s"],fan=[0,[11,"IR has aliasing (or Check_ir visits nodes twice):\n",[2,0,0]],"IR has aliasing (or Check_ir visits nodes twice):\n%s"],ian=[2,3],can=[0,QF,557,21],van=[0,[11,Kl,0],Kl],oan=[0,[11,im,[2,0,0]],un],Aan=[0,[11,l,[2,0,0]],kF],san=[0,[11,l,[2,0,0]],kF],ban=[0,[11,"expected tuple type, but expression produces type\n ",[2,0,0]],"expected tuple type, but expression produces type\n %s"],lan=[0,[11,P_,[21,1,[11," is out of bounds for type\n ",[2,0,0]]]],"tuple projection %n is out of bounds for type\n %s"],Ban=[0,[11,_R,[2,0,0]],"unbound label %s"],jan=[0,[11,Rj,0],Rj],kan=[0,[11,"expected async type, but expression has type\n ",[2,0,0]],"expected async type, but expression has type\n %s"],pan=lj,man=[0,[11,"ActorOfIdBlob cast to actor object type, not\n ",[2,0,0]],"ActorOfIdBlob cast to actor object type, not\n %s"],dan=[0,[11,"CPSAwait expect async arg, found ",[2,0,0]],"CPSAwait expect async arg, found %s"],_an=[0,[11,ge,0],ge],han=[0,[11,Of,0],Of],xan=[0,[11,Uq,0],Uq],yan=[0,[11,_x,[2,0,0]],CN],wan=yU,gan=[0,[11,gA,[2,0,[11,dg,[2,0,0]]]],$q],qan=[0,[11,im,[2,0,0]],un],Ian=[0,[11,"PrimE ",[2,0,[11," does not work with ",[4,0,0,0,[11," arguments",0]]]]],"PrimE %s does not work with %d arguments"],Dan=[0,[11,CB,[2,0,0]],gU],Ean=[0,QF,qh,7],Nan=[0,QF,432,7],Tan=[0,[11,nu,0],nu],Fan=[0,QF,790,4],Man=[0,[11,"expected mutable ",[2,0,0]],"expected mutable %s"],Pan=[0,[11,CB,[2,0,0]],gU],Uan=wN,Gan=wN,$an=QU,Kan=[0,[11,JN,0],JN],Oan=[0,[11,CB,[2,0,0]],gU],Ran=[0,[11,im,[2,0,0]],un],Qan=[0,[11,_x,[2,0,0]],CN],Can=yU,Han=[0,[11,gA,[2,0,[11,dg,[2,0,0]]]],$q],Van=[0,[11,h,[2,0,[11," in argument list",0]]],"duplicate binding for %s in argument list"],Lan=[0,[11,h,[2,0,[11,Jw,0]]],"duplicate binding for %s in block"],zan=[0,QF,dq,2],San=[6,0],Zan=[0,[11,WN,0],WN],Wan=[0,[11,h,[2,0,[11,rT,0]]],sx],Xan=[0,[11,"cannot match mutable field ",[2,0,0]],"cannot match mutable field %s"],Jan=[0,[11,"field typing for ",[2,0,[11," not found",0]]],"field typing for %s not found"],Yan=[0,QF,1132,2],run=[0,QF,1150,9],nun=PP,tun=PP,eun=[0,[11,yK,[2,0,[11,":\n",0]]],"Ill-typed intermediate code after %s:\n"],aun=[0,[2,0,0],JF],uun=[0,[2,0,0],JF],fun=[0,[2,0,0],JF],iun=[0,[11,yK,[2,0,[11," (use -v to see dumped IR):\n",0]]],"Ill-typed intermediate code after %s (use -v to see dumped IR):\n"],cun=[0,[2,0,0],JF],vun=[0,[2,0,0],JF],oun=wN,Aun=[0,[11,Pa,[2,0,[11,cr,[2,0,[11,pI,[2,0,[11," type have colliding hashes",0]]]]]]],"field names %s and %s in %s type have colliding hashes"],sun=[0,[11,"message argument is not concrete:\n ",[2,0,0]],"message argument is not concrete:\n %s"],bun=[0,[11,"message argument is not sharable:\n ",[2,0,0]],"message argument is not sharable:\n %s"],lun=[0,[11,"subtype violation:\n ",[2,0,[11,JP,[2,0,[12,10,0]]]]],"subtype violation:\n %s\n %s\n"],Bun=[0,[2,0,0],JF],jun=[0,0],kun=[0,0],pun=[0,0],mun=OB,dun=[0,QF,26,2],_un=[20,Nh],hun=[0,H,Tx,11],xun=RI,yun=mv,wun=RI,gun=[20,lu],qun=[20,wx],Iun=[20,Ux],Dun=su,Eun=[0,H,dI,11],Nun=Gf,Tun=[0,H,gk,11],Fun=[0,H,EB,4],Mun=[0,[0,20,0]],Pun=[0,H,225,4],Uun=[0,[0,19,0]],Gun=[0,H,Qt,4],$un=[0,[0,18,0]],Kun=[0,H,qq,11],Oun=[0,[0,27,0]],Run=[0,H,gt,12],Qun=[11,0],Cun=[0,H,UP,4],Hun=[0,[0,11,0]],Vun=[0,H,204,11],Lun=[0,H,Uk,4],zun=[0,[0,24,0]],Sun=[0,H,Va,11],Zun=[11,0],Wun=[0,H,yd,4],Xun=[0,[0,31,0]],Jun=[0,H,331,30],Yun=[0,H,335,23],rfn=[0,[11,"Import expression found in unit body: ",[2,0,0]],"Import expression found in unit body: %s"],nfn=[0,H,uN,4],tfn=wm,efn=wm,afn=[0,0,0],ufn=[0,H,442,11],ffn=bn,ifn=nl,cfn=[0,H,qK,26],vfn=[0,H,SE,11],ofn=[0,H,536,25],Afn=[0,0,0],sfn=HI,bfn=fP,lfn=_n,Bfn=_n,jfn=fP,kfn=HI,pfn=qe,mfn=[20,Nh],dfn=[20,Nh],_fn=_n,hfn=fP,xfn=HI,yfn=[0,0,0],wfn=i,gfn=De,qfn=[1,0,0],Ifn=kb,Dfn=i,Efn=HI,Nfn=i,Tfn=[20,AP],Ffn=[0,0],Mfn=De,Pfn=[1,0,0],Ufn=kb,Gfn=jG,$fn=_b,Kfn=Te,Ofn=pf,Rfn=[0,[2,0,[11," force",0]],"%s force"],Qfn=Mp,Cfn=bk,Hfn=CF,Vfn=xI,Lfn=bP,zfn=yh,Sfn=eb,Zfn=xA,Wfn=hl,Xfn=zN,Jfn=Ev,Yfn=LD,rin=yu,nin=$t,tin=Oc,ein=og,ain=iA,uin=ba,fin=Kj,iin=mn,cin=jP,vin=eu,oin=Vf,Ain=R,sin=cU,bin=Hj,lin=u_,Bin=HI,jin=[20,Nh],kin=[20,AP],pin=[0,0],min=[0,H,685,9],din=[0,H,693,9],_in=[0,H,697,14],hin=Le,xin=De,yin=[1,0,0],win=kb,gin=HI,qin=[20,AP],Iin=[20,Nh],Din=[0,0],Ein=[0,0,0,0],Nin=[0,H,732,18],Tin=mv,Fin=vp,Min=[0,[11,fw,[2,0,[11,Qx,[2,0,[11,"` expected but not found",0]]]]],"stable variable `%s` of type `%s` expected but not found"],Pin=[20,Nh],Uin=[0,[11,"migration ",[2,0,[11,": field `",[2,0,[11,"` expected but not found in state",0]]]]],"migration %s: field `%s` expected but not found in state"],Gin=[20,Nh],$in=hw,Kin=ru,Oin=jr,Rin=Ht,Qin=hw,Cin=[0,H,808,6],Hin=[0,1],Vin=mv,Lin=ru,zin=jr,Sin=VK,Zin=[20,Nh],Win=[20,Ba],Xin=VK,Jin=[20,Nh],Yin=mv,rcn=Ll,ncn=vn,tcn=jv,ecn=Zc,acn=np,ucn=[0,[11,fw,[2,0,[11,Qx,[2,0,[11,dd,0]]]]],Zx],fcn=[20,Nh],icn=[0,[11,fw,[2,0,[11,Qx,[2,0,[11,dd,0]]]]],Zx],ccn=[20,Nh],vcn=[0,H,V_,4],ocn=[0,H,1045,30],Acn=[0,0,0,0],scn=[0,0,0,0],bcn=[0,H,1094,4],lcn=[0,H,1104,4],Bcn=[0,H,1131,26],jcn=[0,H,1151,11],kcn=[0,jF,1,0],pcn=[0,H,1180,14],mcn=[0,[2,3],0],dcn=[0,H,1192,12],_cn=[2,3],hcn=[0,H,1202,12],xcn=ax,ycn=[0,H,1265,29],wcn=[0,H,1272,8],gcn=[0,H,1274,13],qcn=[0,H,1342,18],Icn=[0,H,1467,13],Dcn=HI,Ecn=HI,Ncn=Le,Tcn=Le,Fcn=[0,H,1389,31],Mcn=[0,H,1357,14],Pcn=[0,H,1405,36],Ucn=[0,H,1416,6],Gcn=Le,$cn=Ht,Kcn=[0,H,1475,2],Ocn=[8,0,0,0,[0,[2,15],0],[0,[2,16],0]],Rcn=v$,Qcn=[2,16],Ccn=[0,H,1494,9],Hcn=[20,Nh],Vcn=Jg,Lcn=FU,zcn=[0,H,1653,2],Scn=[0,H,1664,13],Zcn=[0,H,1673,13],Wcn=vw,Xcn=lO,Jcn=Jg,Ycn=FU,rvn=[0,H,1630,11],nvn=[0,H,1604,8],tvn=[0,H,1621,11],evn=[0,H,1609,13],avn=[0,H,1581,11],uvn=Le,fvn=bp,ivn=[0,H,1525,41],cvn=[0,H,1513,11],vvn=[0,H,1523,11],ovn=vw,Avn=Jg,svn=FU,bvn=lO,lvn=[20,Mp],Bvn=[20,Mp],jvn=[20,TO],kvn=[20,Mp],pvn=[11,0],mvn=pq,dvn=[0,1,0],_vn=[0,1,0],hvn=[0,1,0],xvn=BF,yvn=[0,"ir_passes/tailcall.ml",207,17],wvn=BA,gvn=BA,qvn=[0,rp,JK,2],Ivn=Zp,Dvn=Sp,Evn=yF,Nvn=Ss,Tvn=By,Fvn=Jq,Mvn=W_,Pvn=b,Uvn=[20,hO],Gvn=c$,$vn=[0,rp,hP,9],Kvn=[0,[5,[10,[0,xy,0]]],0],Ovn=[0,xy,0],Rvn=[0,[0,xy,1,0],0],Qvn=[0,[5,[0,xy,0]],0],Cvn=[0,xy,0],Hvn=[0,[0,xy,1,0],0],Vvn=[0,[0,xy,0],0],Lvn=[0,xy,0],zvn=[0,[0,xy,1,0],0],Svn=[0,[6,[0,xy,0]],0],Zvn=[0,xy,0],Wvn=[0,[0,xy,1,0],0],Xvn=[1,0,2],Jvn=[0,"ir_passes/erase_typ_field.ml",yc,21],Yvn=BA,ron=BA,non=[0,Tv,332,2],ton=[0,Tv,wM,17],eon=[0,[5,[0,xy,0]],[0,[5,[0,xy,0]],0]],aon=[0,xy,0],uon=[0,[0,xy,1,0],0],fon=BA,ion=[0,[11,"Unbound var: ",[2,0,[12,10,0]]],"Unbound var: %s\n"],con=[0,md,Bs,9],von=[0,md,qT,2],oon=[0,md,iU,16],Aon=[0,md,is,16],son=[0,md,wo,4],bon=[0,md,NI,5],lon=[0,md,Sb,4],Bon=[0,md,Cf,4],jon=[0,md,qq,19],kon=[0,md,wA,14],pon=[0,md,EB,4],mon=mv,don=[0,md,Ul,4],_on=mv,hon=y$,xon=mv,yon=[0,md,Hx,4],won=[0,md,Cp,14],gon=mv,qon=PB,Ion=[0,md,If,4],Don=[0,md,mE,70],Eon=[0,md,vh,4],Non=[0,md,429,13],Ton=[0,md,qh,13],Fon=[0,md,zl,13],Mon=[0,md,$M,13],Pon=[0,md,M,13],Uon=[0,md,Xo,4],Gon=[0,md,451,13],$on=[0,md,pj,19],Kon=[0,md,xP,4],Oon=[0,md,528,30],Ron=mv,Qon=[0,md,598,4],Con=[0,md,599,4],Hon=[0,md,622,4],Von=[0,md,623,4],Lon=BA,zon=SD,Son=PB,Zon=SD,Won=PB,Xon=[20,Sg],Jon=[0,md,77,18],Yon=[0,md,67,11],rAn=mv,nAn=mv,tAn=[0,md,25,4],eAn=qP,aAn=Xx,uAn=[0,MP,Va,17],fAn=[1,0,2],iAn=[8,0,0,0,0,0],cAn=hc,vAn=hc,oAn=iD,AAn=[0,MP,333,15],sAn=[0,MP,l_,15],bAn=[0,MP,vk,13],lAn=Ui,BAn=PB,jAn=mv,kAn=[0,MP,vh,15],pAn=mv,mAn=PB,dAn=SD,_An=[0,MP,nk,15],hAn=mv,xAn=PB,yAn=SD,wAn=[0,MP,439,23],gAn=[0,MP,432,23],qAn=mv,IAn=PB,DAn=SD,EAn=[0,MP,iT,23],NAn=[0,MP,cO,23],TAn=[0,MP,Mx,40],FAn=[0,MP,$M,21],MAn=[0,MP,383,16],PAn=BA,UAn=mv,GAn=ax,$An=ax,KAn=ax,OAn=mv,RAn=Xx,QAn=qP,CAn=rv,HAn=ia,VAn=ia,LAn=[0,[0,hc,[8,0,0,0,0,0]],0],zAn=iD,SAn=[0,[0,xy,1,0],0],ZAn=zB,WAn=[0,Ri,1134,6],XAn=zB,JAn=[0,0,0],YAn=Si,rsn=[0,[11,"The Wasm data segment size exceeds the supported maxmimum of ",[21,1,[11,"MB.",0]]],"The Wasm data segment size exceeds the supported maxmimum of %nMB."],nsn=zr,tsn=zr,esn=[0,Ri,1030,2],asn=[0,Ri,Hy,4],usn=[0,[0,0,0],0],fsn=[0,[0,0,0],0],isn=Ji,csn=YN,vsn=Ji,osn=YN,Asn=lC(0,0,0),ssn=[0,Ri,856,18],bsn=[0,[20,[1,0]],0],lsn=[0,[20,[0,0]],0],Bsn=[0,Ri,818,11],jsn=vs,ksn=eM,psn=[0,1,0,0],msn=[0,[11,"Can't find export for GOT.mem import ",[2,0,0]],"Can't find export for GOT.mem import %s"],dsn=[0,[11,"Can't find export for GOT.func import ",[2,0,0]],"Can't find export for GOT.func import %s"],_sn=[0,1,0],hsn=[0,0,0],xsn=vs,ysn=eM,wsn=[0,[11,pe,[2,0,[11," is not global",0]]],"Export %s is not global"],gsn=[0,[11,pe,[2,0,[11," is not a function",0]]],"Export %s is not a function"],qsn=[0,[11,"Type mismatch when linking ",[2,0,[12,46,[2,0,[11,":\nimport type: ",[2,0,[11,"\nexport type: ",[2,0,0]]]]]]]],"Type mismatch when linking %s.%s:\nimport type: %s\nexport type: %s"],Isn=[0,0,0],Dsn=zr,Esn=zr,Nsn=[0,Ri,636,39],Tsn=[0,Ri,614,14],Fsn=[0,Ri,600,28],Msn=[0,Ri,592,28],Psn=[0,Ri,584,28],Usn=Lt,Gsn=lC(1,0,0),$sn=b_,Ksn=b_,Osn=Lt,Rsn=[0,1,0],Qsn=[0,Ri,531,4],Csn=[0,0,0],Hsn=[0,Ri,534,4],Vsn=[0,Ri,536,9],Lsn=[0,Ri,qh,40],zsn=[0,1,0],Ssn=[0,Ri,hF,9],Zsn=[0,0,0],Wsn=[0,Ri,de,9],Xsn=[0,Ri,Hh,12],Jsn=[0,Ri,Hw,11],Ysn=[0,Ri,UO,13],rbn=[0,Ri,CE,12],nbn=[1,0],tbn=[19,[0,1]],ebn=lC(1,0,0),abn=[19,[1,1]],ubn=[18,[0,1]],fbn=[18,[0,0]],ibn=[18,[1,1]],cbn=[18,[1,0]],vbn=[18,[2,1]],obn=[18,[2,0]],Abn=[18,[3,1]],sbn=[18,[3,0]],bbn=lC(0,0,0),lbn=[17,[0,0]],Bbn=lC(0,0,0),jbn=[17,[1,0]],kbn=lC(0,0,0),pbn=[17,[0,0]],mbn=[18,[0,1]],dbn=[19,[0,0]],_bn=[19,[0,0]],hbn=[18,[0,0]],xbn=lC(0,0,0),ybn=lC(0,0,0),wbn=lC(1,0,0),gbn=lC(1,0,0),qbn=[0,Tm,wA,10],Ibn=[0,Tm,OG,6],Dbn=[0,[11,"Function import not declared: ",[2,0,[12,10,0]]],"Function import not declared: %s\n"],Ebn=[0,Tm,oj,4],Nbn=[0,[2,0,[11,Ln,[2,0,0]]],c_],Tbn=[0,[2,0,[12,60,[2,0,[12,62,0]]]],bK],Fbn=lC(1,0,0),Mbn=lC($K,$K,Ft),Pbn=lC(56,0,0),Ubn=lC(0,0,0),Gbn=lC(56,0,0),$bn=tQ,Kbn=tQ,Obn=tQ,Rbn=tQ,Qbn=[0,[11,fP,[4,3,0,0,0]],Ig],Cbn=za,Hbn=zc,Vbn=[1,6],Lbn=lC(1,0,0),zbn=[20,[1,0]],Sbn=lC(3,0,0),Zbn=[0,Nv,11721,4],Wbn=lC(1,0,0),Xbn=HF,Jbn=[21,[0,2]],Ybn=[1,5],rln=IR,nln=fP,tln=Xx,eln=qP,aln=Ui,uln=IR,fln=fP,iln=Xx,cln=qP,vln=Ui,oln=[1,6],Aln=[0,Nv,11554,25],sln=[0,Nv,11571,9],bln=[0,Nv,11583,11],lln=LG,Bln=[0,Nv,11590,9],jln=[0,Nv,11611,9],kln=IR,pln=fP,mln=hU,dln=[0,[11,Lx,[4,3,0,0,[11,eG,0]]],oO],_ln=[0,1,0],hln=qa,xln=[0,1,0],yln=[0,Ke,1],wln=CU,gln=[1,6],qln=[0,1,0],Iln=[0,Ke,1],Dln=Ck,Eln=[1,5],Nln=[1,14],Tln=[1,6],Fln=[0,1,0],Mln=[0,Ke,1],Pln=cs,Uln=[1,11],Gln=rv,$ln=Ov,Kln=zc,Oln=[21,[3,2]],Rln=[0,3,0],Qln=[0,1,0],Cln=[0,Ke,1],Hln=Cl,Vln=[1,11],Lln=[21,[3,2]],zln=[1,11],Sln=B$,Zln=zc,Wln=[21,[1,5]],Xln=[1,11],Jln=[21,[2,5]],Yln=[21,[3,4]],rBn=uj,nBn=U,tBn=tQ,eBn=U,aBn=tQ,uBn=[1,5],fBn=uj,iBn=KR,cBn=Oe,vBn=lC(29,0,0),oBn=GM,ABn=zc,sBn=lC(0,0,0),bBn=lC(6,0,0),lBn=[21,[3,4]],BBn=GM,jBn=zc,kBn=lC(0,0,0),pBn=lC(6,0,0),mBn=Sc,dBn=zc,_Bn=[1,3],hBn=[1,8],xBn=[1,3],yBn=[1,6],wBn=[1,5],gBn=[1,4],qBn=[1,5],IBn=[1,8],DBn=[1,11],EBn=[1,10],NBn=CG,TBn=Zd,FBn=K_,MBn=[1,6],PBn=[19,[1,0]],UBn=[1,6],GBn=[1,6],$Bn=[1,5],KBn=[1,5],OBn=[1,4],RBn=[1,4],QBn=cx,CBn=Ng,HBn=[1,8],VBn=[1,8],LBn=[19,[1,0]],zBn=[1,11],SBn=[1,11],ZBn=[1,10],WBn=[1,10],XBn=[1,9],JBn=[1,9],YBn=[1,3],rjn=[1,3],njn=Yy,tjn=[1,9],ejn=[21,[1,1]],ajn=KA,ujn=zc,fjn=[1,5],ijn=[21,[0,2]],cjn=[1,5],vjn=[0,2],ojn=[21,[0,2]],Ajn=[1,5],sjn=[0,2],bjn=[1,6],ljn=[1,6],Bjn=[1,10],jjn=[1,10],kjn=[1,9],pjn=[1,9],mjn=[1,3],djn=[1,3],_jn=[19,[1,1]],hjn=[1,6],xjn=[1,6],yjn=[1,5],wjn=[1,5],gjn=[1,4],qjn=[1,4],Ijn=[1,8],Djn=[1,8],Ejn=[19,[3,1]],Njn=[19,[1,1]],Tjn=[1,11],Fjn=[1,11],Mjn=[20,[3,6]],Pjn=[19,[3,2]],Ujn=gw,Gjn=zc,$jn=$D,Kjn=zc,Ojn=sr,Rjn=zc,Qjn=[20,[3,4]],Cjn=[20,[3,5]],Hjn=$n,Vjn=zc,Ljn=[19,[3,3]],zjn=Ro,Sjn=zc,Zjn=Fi,Wjn=zc,Xjn=[19,[3,4]],Jjn=Eu,Yjn=zc,rkn=[19,[3,6]],nkn=As,tkn=zc,ekn=[19,[3,5]],akn=Sg,ukn=[1,6],fkn=[1,6],ikn=Mp,ckn=zc,vkn=Up,okn=zc,Akn=[0,2],skn=[0,3],bkn=GM,lkn=zc,Bkn=Wx,jkn=zc,kkn=[1,6],pkn=[1,6],mkn=[19,[1,2]],dkn=[1,5],_kn=[1,5],hkn=[19,[1,2]],xkn=[1,4],ykn=[1,4],wkn=[1,5],gkn=[1,6],qkn=[1,5],Ikn=bp,Dkn=[19,[1,2]],Ekn=[1,8],Nkn=[1,8],Tkn=[19,[1,2]],Fkn=[1,11],Mkn=[1,11],Pkn=[19,[1,2]],Ukn=[1,10],Gkn=[1,10],$kn=[19,[1,2]],Kkn=[1,9],Okn=[1,9],Rkn=[19,[1,2]],Qkn=[1,3],Ckn=[1,3],Hkn=[19,[1,2]],Vkn=[1,6],Lkn=[1,6],zkn=qv,Skn=[1,6],Zkn=[1,6],Wkn=[1,6],Xkn=[1,6],Jkn=[1,6],Ykn=[1,6],rpn=[1,6],npn=[1,5],tpn=[0,Nv,12295,4],epn=[1,5],apn=[1,5],upn=[1,5],fpn=lo,ipn=[1,5],cpn=[1,5],vpn=bk,opn=zc,Apn=[1,6],spn=qv,bpn=[1,6],lpn=[1,6],Bpn=[1,6],jpn=TO,kpn=zc,ppn=La,mpn=zc,dpn=[1,6],_pn=[1,6],hpn=[1,6],xpn=[1,14],ypn=fp,wpn=zc,gpn=[1,8],qpn=Ew,Ipn=zc,Dpn=ha,Epn=PB,Npn=lC(8,0,0),Tpn=lC(0,0,UA),Fpn=[0,2],Mpn=PB,Ppn=lC(32,0,0),Upn=lC(40,0,0),Gpn=lC(48,0,0),$pn=lC(0,0,UA),Kpn=[0,4],Opn=PB,Rpn=lC(0,0,0),Qpn=lC(8,0,0),Cpn=lC(16,0,0),Hpn=lC(24,0,0),Vpn=lC(32,0,0),Lpn=lC(40,0,0),zpn=lC(48,0,0),Spn=lC(0,0,UA),Zpn=[0,8],Wpn=[1,6],Xpn=[21,[0,2]],Jpn=[1,6],Ypn=[1,6],rmn=[21,[0,2]],nmn=[1,6],tmn=[1,6],emn=[21,[0,2]],amn=[1,6],umn=[1,6],fmn=[1,6],imn=[1,6],cmn=[21,[0,2]],vmn=[1,6],omn=[1,6],Amn=[21,[0,2]],smn=[1,6],bmn=[1,6],lmn=[21,[0,2]],Bmn=[1,6],jmn=[1,6],kmn=[1,6],pmn=XA,mmn=[1,6],dmn=CK,_mn=zc,hmn=uj,xmn=[0,Nv,13113,24],ymn=Pp,wmn=[0,Nv,13177,25],gmn=oE,qmn=Xx,Imn=qP,Dmn=Ui,Emn=[0,[11,Wv,0],Wv],Nmn=w_,Tmn=[21,[1,1]],Fmn=zc,Mmn=[21,[0,2]],Pmn=[1,14],Umn=[1,14],Gmn=zc,$mn=[21,[0,2]],Kmn=[1,14],Omn=[2,3],Rmn=[2,4],Qmn=[2,6],Cmn=[1,6],Hmn=[2,8],Vmn=[2,9],Lmn=[2,10],zmn=[2,11],Smn=[1,11],Zmn=[2,14],Wmn=[0,0],Xmn=Lc,Jmn=lC(1,0,0),Ymn=[0,Nv,13356,13],rdn=N,ndn=lC(0,0,0),tdn=xN,edn=Ti,adn=tq,udn=oq,fdn=[0,0],idn=[0,Nv,13510,13],cdn=[0,Nv,13531,4],vdn=[0,Nv,13554,14],odn=[0,[11,Cg,[2,0,[11,cc,0]]],hf],Adn=[0,[11,rU,[2,0,[11,Rq,[2,0,[11,jy,0]]]]],QP],sdn=[0,[11,mb,0],mb],bdn=[0,[11,Jv,0],Jv],ldn=[0,[11,uM,0],uM],Bdn=[0,[11,Yi,[2,0,[11,cc,0]]],tr],jdn=[0,Nv,13604,25],kdn=[0,Nv,13668,9],pdn=[0,Nv,13683,2],mdn=[0,Nv,13696,19],ddn=[0,Nv,13703,77],_dn=[0,Nv,13691,56],hdn=[0,Nv,13717,13],xdn=[0,Nv,13723,12],ydn=[0,Nv,13734,77],wdn=[0,[11,Hq,0],Hq],gdn=[0,Nv,13739,2],qdn=[0,Nv,13740,2],Idn=[0,Nv,13741,2],Ddn=[0,Nv,13742,2],Edn=[0,Nv,13743,2],Ndn=[0,[11,es,0],es],Tdn=jU,Fdn=[0,Nv,13761,11],Mdn=[0,Nv,13775,13],Pdn=[0,Nv,13774,15],Udn=BO,Gdn=OM,$dn=On,Kdn=_c,Odn=aa,Rdn=VT,Qdn=[0,1,0],Cdn=Sg,Hdn=[0,Nv,13867,8],Vdn=lC(0,0,0),Ldn=ME,zdn=Ip,Sdn=Vw,Zdn=jU,Wdn=HE,Xdn=zc,Jdn=Si,Ydn=Si,r_n=Hc,n_n=[0,[0,0,"64-bit, layout version 1"]],t_n=NR,e_n=zc,a_n=[0,Nv,14013,2],u_n=[0,Nv,14014,2],f_n=jU,i_n=go,c_n=XN,v_n=ad,o_n=[0,Nv,11464,13],A_n=[0,0,3,2],s_n=[0,3,5,4],b_n=[0,1,7,6],l_n=[0,2,9,8],B_n=[21,[1,1]],j_n=[18,[2,0]],k_n=ii,p_n=[0,0],m_n=fl,d_n=[0,Nv,11314,23],__n=[20,[1,2]],h_n=lC(64,0,0),x_n=lC(1,0,0),y_n=fl,w_n=[0,1,0],g_n=lC($K,$K,Ft),q_n=[0,1,0],I_n=lC(0,0,AM),D_n=[20,[1,3]],E_n=fl,N_n=[0,Nv,11367,23],T_n=[20,[1,2]],F_n=lC(64,0,0),M_n=[20,[1,7]],P_n=[20,[1,7]],U_n=lC($K,$K,Ft),G_n=tO,$_n=[20,[1,1]],K_n=[20,[1,2]],O_n=lC(8,0,0),R_n=zE,Q_n=zE,C_n=UG,H_n=Sk,V_n=zE,L_n=[20,[1,0]],z_n=UG,S_n=Sk,Z_n=[20,[1,2]],W_n=zE,X_n=[20,[1,4]],J_n=[20,[1,6]],Y_n=oy,rhn=[20,[1,12]],nhn=Ke,thn=Ro,ehn=tO,ahn=[20,[1,2]],uhn=lC(8,0,0),fhn=zE,ihn=zE,chn=UG,vhn=Sk,ohn=zE,Ahn=[20,[1,0]],shn=UG,bhn=[20,[1,1]],lhn=Sk,Bhn=[20,[1,2]],jhn=zE,khn=[20,[1,3]],phn=[20,[1,5]],mhn=Ro,dhn=oy,_hn=tO,hhn=lC(0,0,0),xhn=[20,[1,11]],yhn=[20,[3,0]],whn=[20,[3,1]],ghn=[20,[3,2]],qhn=[20,[3,3]],Ihn=It,Dhn=zc,Ehn=oy,Nhn=zc,Thn=[20,[2,0]],Fhn=[20,[2,1]],Mhn=[20,[2,2]],Phn=[20,[2,3]],Uhn=Nr,Ghn=zc,$hn=LF,Khn=zc,Ohn=[20,[1,10]],Rhn=[20,[1,13]],Qhn=[20,[1,14]],Chn=[20,[1,0]],Hhn=[20,[1,1]],Vhn=[20,[1,2]],Lhn=[20,[1,10]],zhn=[20,[1,0]],Shn=[20,[1,1]],Zhn=Sk,Whn=UG,Xhn=Sk,Jhn=UG,Yhn=[20,[1,5]],rxn=[0,1,0],nxn=[0,[0,Ke,1],[0,Ro,1]],txn=oy,exn=[20,[1,11]],axn=[0,1,0],uxn=[0,[0,uQ,1],[0,rv,1]],fxn=[20,[1,6]],ixn=[0,1,0],cxn=[0,[0,Ke,1],[0,Ro,1]],vxn=oy,oxn=[20,[1,12]],Axn=[20,[1,4]],sxn=[20,[1,7]],bxn=[20,[1,8]],lxn=[20,[1,9]],Bxn=du,jxn=pK,kxn=fl,pxn=lC(48,0,0),mxn=lC(48,0,0),dxn=lC(48,0,0),_xn=[0,1,0],hxn=[0,[0,uQ,1],[0,rv,1]],xxn=fl,yxn=lC(48,0,0),wxn=lC(48,0,0),gxn=lC(48,0,0),qxn=[0,1,0],Ixn=[0,[0,uQ,1],[0,rv,1]],Dxn=[20,[1,9]],Exn=lC(1,0,0),Nxn=fl,Txn=lC(32,0,0),Fxn=lC(32,0,0),Mxn=lC(32,0,0),Pxn=[0,1,0],Uxn=[0,[0,uQ,1],[0,rv,1]],Gxn=fl,$xn=lC(32,0,0),Kxn=lC(32,0,0),Oxn=lC(32,0,0),Rxn=[0,1,0],Qxn=[0,[0,uQ,1],[0,rv,1]],Cxn=[20,[1,9]],Hxn=lC(1,0,0),Vxn=lC(0,mj,Ft),Lxn=fl,zxn=[0,1,0],Sxn=[0,[0,uQ,1],[0,rv,1]],Zxn=lC(hq,$K,Ft),Wxn=[20,[1,2]],Xxn=lC(64,0,0),Jxn=[19,[1,0]],Yxn=lC(64,0,0),ryn=lC(1,0,0),nyn=lC(64,0,0),tyn=[20,[1,0]],eyn=[19,[1,0]],ayn=[19,[1,0]],uyn=[20,[1,8]],fyn=lC(62,0,0),iyn=lC(62,0,0),cyn=fl,vyn=[0,1,0],oyn=[0,[0,uQ,1],[0,rv,1]],Ayn=lC(Do,$K,Ft),syn=[20,[1,2]],byn=lC(63,0,0),lyn=[19,[1,0]],Byn=[20,[1,9]],jyn=lC(1,0,0),kyn=lC(64,0,0),pyn=lC(1,0,0),myn=[20,[1,7]],dyn=lC($K,$K,Ft),_yn=lC(65,0,0),hyn=[20,[1,0]],xyn=[19,[1,0]],yyn=[20,[1,9]],wyn=lC(1,0,0),gyn=[19,[1,0]],qyn=[20,[1,9]],Iyn=lC(1,0,0),Dyn=[20,[1,8]],Eyn=lC(63,0,0),Nyn=[20,[1,9]],Tyn=lC(1,0,0),Fyn=lC(63,0,0),Myn=[20,[1,9]],Pyn=lC(1,0,0),Uyn=[20,[1,1]],Gyn=lC(0,0,AM),$yn=[19,[3,0]],Kyn=[19,[2,0]],Oyn=[0,1,0],Ryn=[0,Ke,1],Qyn=YG,Cyn=lC($K,$K,Ft),Hyn=[20,[1,9]],Vyn=id,Lyn=du,zyn=Ao,Syn=[1,5],Zyn=[21,[1,1]],Wyn=ho,Xyn=lC(2,0,0),Jyn=nO,Yyn=[0,1,0],rwn=[0,w$,0],nwn=$O,twn=ho,ewn=[1,5],awn=[21,[1,1]],uwn=ou,fwn=lC(2,0,0),iwn=nO,cwn=[0,1,0],vwn=[0,Re,0],own=$O,Awn=ou,swn=s$,bwn=lC(2,0,0),lwn=nO,Bwn=[0,[0,EN,1],[0,J,1]],jwn=s$,kwn=pT,pwn=lC(2,0,0),mwn=nO,dwn=[0,1,0],_wn=pT,hwn=Ue,xwn=lC(2,0,0),ywn=nO,wwn=[0,[0,UN,1],[0,Jo,1]],gwn=Ue,qwn=[0,Nv,10803,11],Iwn=[0,Nv,10775,6],Dwn=[1,0],Ewn=[0,[11,gs,0],gs],Nwn=[0,[11,Ud,[2,0,0]],cy],Twn=D,Fwn=D,Mwn=b$,Pwn=zc,Uwn=[20,[1,8]],Gwn=[20,[1,8]],$wn=ab,Kwn=ab,Own=A$,Rwn=A$,Qwn=lC(0,0,0),Cwn=A$,Hwn=lC(0,0,0),Vwn=ab,Lwn=yG,zwn=[0,[0,zr,1],0],Swn=[0,[0,zr,1],0],Zwn=dr,Wwn=zc,Xwn=[21,[1,1]],Jwn=vj,Ywn=Jc,rgn=lC(0,0,0),ngn=lC(0,0,0),tgn=QG,egn=zc,agn=yG,ugn=[0,[0,zr,1],0],fgn=[0,[0,zr,1],0],ign=[21,[1,1]],cgn=vj,vgn=Jc,ogn=lC(0,0,0),Agn=lC(0,0,0),sgn=ql,bgn=ql,lgn=Dj,Bgn=Dj,jgn=lC(0,0,0),kgn=Dj,pgn=lC(0,0,0),mgn=ql,dgn=[0,1,0],_gn=Wb,hgn=Wb,xgn=[0,1,0],ygn=WK,wgn=WK,ggn=[0,1],qgn=my,Ign=[0,1],Dgn=[0,1],Egn=ff,Ngn=ss,Tgn=[0,0],Fgn=lC(1,0,0),Mgn=lC(1,0,0),Pgn=[0,0],Ugn=lC(0,0,0),Ggn=lC(0,0,0),$gn=[0,Nv,10066,11],Kgn=mu,Ogn=[21,[1,1]],Rgn=vj,Qgn=Kq,Cgn=Jc,Hgn=lC(0,0,0),Vgn=lC(0,0,0),Lgn=lC(1,0,0),zgn=lC(0,0,0),Sgn=Fp,Zgn=QA,Wgn=ih,Xgn=[0,[11,po,[2,0,[11,yE,0]]],uh],Jgn=[0,[11,TF,[2,0,0]],mN],Ygn=Ww,rqn=lC(0,0,0),nqn=[21,[1,1]],tqn=vj,eqn=Kq,aqn=xl,uqn=Jc,fqn=lC(1,0,0),iqn=lC(0,0,0),cqn=my,vqn=lC(2,0,0),oqn=[0,[0,zr,1],0],Aqn=Ww,sqn=my,bqn=lC(1,0,0),lqn=my,Bqn=lC(0,0,0),jqn=lt,kqn=$i,pqn=lC(0,0,0),mqn=VN,dqn=[0,[0,zr,1],0],_qn=[0,[0,zr,1],0],hqn=y_,xqn=[0,Nv,9827,42],yqn=[0,Nv,9790,13],wqn=[0,Nv,9822,11],gqn=[0,Nv,9748,6],qqn=[0,1],Iqn=[0,1],Dqn=[20,[1,8]],Eqn=[0,Nv,9700,13],Nqn=[0,Nv,9677,13],Tqn=[0,[0,hU,1],0],Fqn=Hk,Mqn=zc,Pqn=[0,[11,"alloc_",[4,3,0,0,0]],"alloc_%i"],Uqn=sa,Gqn=zc,$qn=xO,Kqn=zc,Oqn=UI,Rqn=zc,Qqn=Gl,Cqn=zc,Hqn=Aa,Vqn=zc,Lqn=_f,zqn=zc,Sqn=nj,Zqn=zc,Wqn=[6,0],Xqn=wt,Jqn=zc,Yqn=yw,rIn=zc,nIn=[0,0,0],tIn=[0,Nv,9525,4],eIn=mA,aIn=zc,uIn=XR,fIn=zc,iIn=DD,cIn=zc,vIn=VB,oIn=zc,AIn=hn,sIn=lC(0,0,0),bIn=[0,[11,"unsupported stable memory version (expected ",[2,0,[11,ok,[2,0,[12,41,0]]]]],"unsupported stable memory version (expected %s or %s)"],lIn=[20,[1,8]],BIn=[21,[1,1]],jIn=lC(0,0,0),kIn=hn,pIn=[21,[0,2]],mIn=lC(0,0,0),dIn=lC(0,0,0),_In=[0,Nv,9399,11],hIn=lC(0,0,0),xIn=[0,Nv,9392,11],yIn=[0,Nv,9384,11],wIn=YF,gIn=lC(12,0,0),qIn=ND,IIn=lC(9,0,0),DIn=lC(5,0,0),EIn=zM,NIn=[20,[1,8]],TIn=[20,[1,8]],FIn=[0,1],MIn=[20,[1,8]],PIn=[20,[1,8]],UIn=[20,[1,0]],GIn=$j,$In=[20,[1,0]],KIn=zv,OIn=Bc,RIn=BF,QIn=[0,1],CIn=[20,[1,7]],HIn=[20,[1,7]],VIn=fg,LIn=lC(32,0,0),zIn=YE,SIn=Od,ZIn=Od,WIn=lC(2,0,0),XIn=lC(4,0,0),JIn=lC(8,0,0),YIn=a,rDn=[2,15],nDn=lC(1,0,0),tDn=[3,1,0,0],eDn=lC(0,0,0),aDn=ZO,uDn=lC(0,0,0),fDn=lC(0,0,0),iDn=[0,1,[0,1,0]],cDn=[0,ax,1],vDn=[14,[0,1,0,lC(0,0,0),0]],oDn=lC(8,0,0),ADn=ND,sDn=Sh,bDn=lC(0,mj,Ft),lDn=Lw,BDn=lC(0,0,0),jDn=[20,[1,1]],kDn=KG,pDn=gl,mDn=[0,1],dDn=mG,_Dn=lC(0,0,0),hDn=lC(0,0,0),xDn=lC(0,0,0),yDn=vF,wDn=[14,[0,3,0,lC(0,0,0),0]],gDn=lC(8,0,0),qDn=[14,[0,2,0,lC(0,0,0),0]],IDn=lC(4,0,0),DDn=[14,[0,1,0,lC(0,0,0),0]],EDn=lC(8,0,0),NDn=[14,[0,0,0,lC(0,0,0),[0,1]]],TDn=[21,[0,2]],FDn=lC(2,0,0),MDn=Ly,PDn=lC(0,0,0),UDn=[2,15],GDn=lC(1,0,0),$Dn=[3,1,0,0],KDn=lC(0,0,0),ODn=bv,RDn=ki,QDn=[0,1,[0,1,0]],CDn=[0,[0,ax,1],[0,LI,1],[0,QM,1]],HDn=Km,VDn=Km,LDn=Aq,zDn=b,SDn=$w,ZDn=LK,WDn=qt,XDn=zc,JDn=qa,YDn=bc,rEn=zc,nEn=Od,tEn=ax,eEn=qa,aEn=qu,uEn=dx,fEn=zc,iEn=dx,cEn=zc,vEn=Od,oEn=Mq,AEn=ND,sEn=qu,bEn=uB,lEn=Gd,BEn=[0,[11,IF,[2,0,[11,eK,0]]],Fh],jEn=qt,kEn=zc,pEn=qa,mEn=bc,dEn=zc,_En=jk,hEn=lC(0,0,0),xEn=lC(0,0,0),yEn=XF,wEn=[2,19],gEn=lC(4,0,0),qEn=ic,IEn=Km,DEn=qD,EEn=qu,NEn=[0,0],TEn=tf,FEn=lC(0,0,0),MEn=lC(0,0,0),PEn=Sh,UEn=lC(wv,$K,Ft),GEn=Lw,$En=lC(0,0,0),KEn=qp,OEn=lC(0,0,0),REn=qp,QEn=lC($K,GK,0),CEn=oh,HEn=lC(hj,$K,Ft),VEn=lC(1,0,0),LEn=Vi,zEn=qG,SEn=[2,19],ZEn=lC(0,0,0),WEn=[20,[1,0]],XEn=lC(0,0,0),JEn=[20,[1,0]],YEn=lC(0,0,0),rNn=lC(0,0,0),nNn=V$,tNn=Od,eNn=ax,aNn=SO,uNn=zc,fNn=Od,iNn=ax,cNn=MG,vNn=lC(29,0,0),oNn=Od,ANn=ax,sNn=rv,bNn=$R,lNn=lC(1,0,0),BNn=lC(0,0,0),jNn=[0,Nv,8146,15],kNn=Sn,pNn=zc,mNn=[21,[0,2]],dNn=lC(2,0,0),_Nn=lC(0,0,0),hNn=lC(1,0,0),xNn=lC(1,0,0),yNn=lC(3,0,0),wNn=ZP,gNn=dM,qNn=[14,[0,0,0,lC(0,0,0),0]],INn=[21,[0,2]],DNn=yR,ENn=[2,2],NNn=KR,TNn=LU,FNn=[2,19],MNn=fo,PNn=qa,UNn=Od,GNn=ax,$Nn=qa,KNn=qu,ONn=qa,RNn=qu,QNn=qa,CNn=[2,0],HNn=oK,VNn=g,LNn=BD,zNn=lC(2,0,0),SNn=lC(1,0,0),ZNn=[0,1,0],WNn=lC(0,0,0),XNn=Gc,JNn=lC(1,0,0),YNn=lC(3,0,0),rTn=lC(0,0,0),nTn=lC(1,0,0),tTn=Sn,eTn=zc,aTn=[21,[0,2]],uTn=lC(0,0,0),fTn=[20,[1,0]],iTn=[20,[1,2]],cTn=BE,vTn=zc,oTn=Gw,ATn=zc,sTn=lC(1,0,0),bTn=lC(1,0,0),lTn=lC(1,0,0),BTn=lC(1,0,0),jTn=gn,kTn=lC(1,0,0),pTn=Mw,mTn=zv,dTn=Kp,_Tn=ec,hTn=tG,xTn=Wq,yTn=qa,wTn=lC(1,0,0),gTn=er,qTn=lC(0,0,0),ITn=[0,[0,KR,1],[0,ek,1]],DTn=zv,ETn=Kp,NTn=ec,TTn=tG,FTn=sn,MTn=lC(0,0,0),PTn=Po,UTn=[20,[1,0]],GTn=jT,$Tn=bv,KTn=[0,1,[0,1,0]],OTn=[0,ax,1],RTn=[21,[1,1]],QTn=TB,CTn=zc,HTn=[21,[0,2]],VTn=[21,[0,2]],LTn=fq,zTn=[0,1,0],STn=[0,[0,hv,1],[0,Nc,1]],ZTn=TB,WTn=Vv,XTn=zc,JTn=lC(0,0,0),YTn=yp,rFn=j,nFn=zc,tFn=[0,[11,bo,[2,0,[12,10,0]]],qE],eFn=[0,Nv,7435,12],aFn=[0,Nv,7488,15],uFn=[0,Nv,7494,18],fFn=[0,Nv,7490,8],iFn=[5,[2,3]],cFn=[0,Nv,7525,8],vFn=[0,Nv,7540,17],oFn=[0,Nv,7554,13],AFn=[0,Nv,7459,6],sFn=O,bFn=[0,16],lFn=[0,17],BFn=[0,2],jFn=[0,3],kFn=[0,5],pFn=[0,6],mFn=[0,8],dFn=[0,4],_Fn=[0,9],hFn=[0,10],xFn=[0,11],yFn=[0,12],wFn=[0,14],gFn=[0,13],qFn=[0,15],IFn=[0,qs],DFn=[0,24],EFn=[0,hh],NFn=[0,7],TFn=[0,1],FFn=mi,MFn=[20,[1,1]],PFn=Fn,UFn=[0,[0,Ct,0],[0,[0,et,1],0]],GFn=mi,$Fn=_s,KFn=_s,OFn=d_,RFn=d_,QFn=rw,CFn=Od,HFn=lC($K,$K,Ft),VFn=[20,[1,0]],LFn=lC($K,$K,Ft),zFn=[20,[1,4]],SFn=lC($K,$K,Ft),ZFn=[20,[1,4]],WFn=[20,[1,2]],XFn=Cj,JFn=Cj,YFn=Lp,rMn=Lp,nMn=VP,tMn=VP,eMn=YK,aMn=YK,uMn=lC(0,0,0),fMn=lC(0,0,0),iMn=lC(0,0,0),cMn=lC(0,0,0),vMn=lC(0,0,0),oMn=lC(0,0,0),AMn=lC(0,0,0),sMn=lC(0,0,0),bMn=lC(0,0,0),lMn=ed,BMn=ed,jMn=Al,kMn=Al,pMn=tp,mMn=tp,dMn=kN,_Mn=kN,hMn=ye,xMn=ye,yMn=Qm,wMn=Qm,gMn=nN,qMn=nN,IMn=$c,DMn=$c,EMn=cB,NMn=cB,TMn=lC(0,0,0),FMn=cB,MMn=lC(0,0,0),PMn=$c,UMn=lC(0,0,0),GMn=nN,$Mn=lC(0,0,0),KMn=Qm,OMn=lC(0,0,0),RMn=ye,QMn=lC(0,0,0),CMn=kN,HMn=lC(0,0,0),VMn=tp,LMn=lC(0,0,0),zMn=Al,SMn=lC(0,0,0),ZMn=ed,WMn=Lp,XMn=VP,JMn=Cj,YMn=lC(0,0,0),rPn=YK,nPn=d_,tPn=_s,ePn=[0,Nv,7123,14],aPn=ir,uPn=ef,fPn=bl,iPn=ir,cPn=ef,vPn=bl,oPn=Od,APn=Od,sPn=[14,[0,0,0,lC(0,0,0),[0,0]]],bPn=[21,[0,2]],lPn=lC(4,0,0),BPn=[14,[0,0,0,lC(0,0,0),0]],jPn=[21,[0,2]],kPn=$j,pPn=[20,[1,0]],mPn=ch,dPn=[20,[1,0]],_Pn=[0,Nv,6980,11],hPn=Jx,xPn=Rp,yPn=[0,Nv,6970,11],wPn=[0,Nv,6956,11],gPn=[0,Nv,6951,11],qPn=[0,Nv,6939,11],IPn=[0,Nv,6911,14],DPn=Wh,EPn=[0,[11,nf,[2,0,[11,Qd,0]]],Ko],NPn=[0,[11,nf,[2,0,[11,MN,0]]],Gj],TPn=[0,[11,nf,[2,0,[11,Qc,0]]],fF],FPn=[0,[11,Yw,[2,0,[12,10,0]]],RN],MPn=[0,Nv,6769,14],PPn=[0,[11,Yw,[2,0,[12,10,0]]],RN],UPn=[0,Nv,6617,23],GPn=[21,[2,6]],$Pn=[21,[0,2]],KPn=[21,[1,1]],OPn=[21,[0,11]],RPn=[0,Nv,6685,6],QPn=[0,[11,h_,[2,0,[11,TP,[2,0,[12,10,0]]]]],vd],CPn=[0,Nv,6690,6],HPn=[0,[11,pg,[2,0,[11,Zp,[2,0,[11,TA,0]]]]],Um],VPn=iB,LPn=vR,zPn=Vm,SPn=Ql,ZPn=[0,[11,O_,[4,0,0,0,0]],ei],WPn=eA,XPn=WF,JPn=[0,1,0],YPn=[0,3,0],rUn=[0,2,0],nUn=[0,1,0],tUn=rD,eUn=lC(0,0,0),aUn=[20,[1,8]],uUn=[21,[1,1]],fUn=[20,[1,8]],iUn=Jl,cUn=[0,1,0],vUn=[0,[0,mv,1],0],oUn=rx,AUn=rx,sUn=ie,bUn=ie,lUn=[0,0,0],BUn=n_,jUn=n_,kUn=[0,[0,by,1],[0,[0,Od,0],0]],pUn=_E,mUn=_E,dUn=[0,1,0],_Un=[0,[0,"number",0],0],hUn=bj,xUn=Tf,yUn=B_,wUn=bj,gUn=[0,0,0],qUn=n_,IUn=n_,DUn=[0,[0,Sh,1],[0,[0,sg,1],[0,[0,i,1],0]]],EUn=vO,NUn=FN,TUn=B_,FUn=vO,MUn=[0,[0,nO,1],[0,[0,Sh,1],[0,[0,i,1],0]]],PUn=rf,UUn=EO,GUn=B_,$Un=rf,KUn=[0,1,0],OUn=gE,RUn=YF,QUn=B_,CUn=gE,HUn=[0,1,0],VUn=[0,[0,zt,1],0],LUn=Mc,zUn=Wk,SUn=B_,ZUn=Mc,WUn=[0,1,0],XUn=[0,[0,zt,1],0],JUn=RB,YUn=RB,rGn=[0,1,0],nGn=uD,tGn=uD,eGn=[0,[0,CR,1],0],aGn=Pb,uGn=Pb,fGn=[0,1,0],iGn=j_,cGn=j_,vGn=[0,[0,bk,1],0],oGn=Ze,AGn=Ze,sGn=mi,bGn=mi,lGn=[20,[1,0]],BGn=pt,jGn=zc,kGn=hp,pGn=zc,mGn=[0,[0,Sh,1],[0,cI,3]],dGn=th,_Gn=[0,3,0],hGn=[0,3,0],xGn=[0,Sh,1],yGn=p,wGn=[0,[0,Sh,1],[0,cI,1]],gGn=gF,qGn=[0,1,0],IGn=[0,1,0],DGn=[0,Sh,1],EGn=ar,NGn=[0,[0,Sh,1],[0,cI,0]],TGn=U$,FGn=[0,0,0],MGn=[0,0,0],PGn=[0,Sh,1],UGn=wB,GGn=[0,[0,Sh,1],[0,cI,0]],$Gn=$r,KGn=[0,0,0],OGn=[0,0,0],RGn=[0,Sh,1],QGn=hG,CGn=[0,[0,Sh,1],[0,cI,0]],HGn=sc,VGn=[0,0,0],LGn=[0,0,0],zGn=[0,Sh,1],SGn=Fc,ZGn=[0,[0,Sh,1],[0,KR,1]],WGn=gM,XGn=[0,1,0],JGn=[0,1,0],YGn=[0,[0,Sh,1],[0,Od,1]],r$n=fj,n$n=[0,1,0],t$n=[0,1,0],e$n=[0,CR,1],a$n=kB,u$n=[0,1,0],f$n=[0,1,0],i$n=Cn,c$n=T,v$n=zc,o$n=Od,A$n=[0,[0,Sh,1],[0,KR,1]],s$n=cF,b$n=KR,l$n=[0,1,0],B$n=[0,[0,Sh,1],[0,Od,1]],j$n=tP,k$n=[14,[0,3,0,lC(0,0,0),0]],p$n=lC(8,0,0),m$n=Yd,d$n=[13,[0,3,0,lC(0,0,0),0]],_$n=lC(8,0,0),h$n=Yd,x$n=lC(8,0,0),y$n=hi,w$n=lC(8,0,0),g$n=hi,q$n=[14,[0,0,0,lC(0,0,0),0]],I$n=lC(2,0,0),D$n=Wt,E$n=[13,[0,0,0,lC(0,0,0),[0,[0,1,1]]]],N$n=lC(2,0,0),T$n=Wt,F$n=[14,[0,0,0,lC(0,0,0),0]],M$n=lC(1,0,0),P$n=aF,U$n=[13,[0,0,0,lC(0,0,0),[0,[0,0,1]]]],G$n=lC(1,0,0),$$n=aF,K$n=[14,[0,0,0,lC(0,0,0),0]],O$n=lC(4,0,0),R$n=Mk,Q$n=[13,[0,0,0,lC(0,0,0),0]],C$n=lC(4,0,0),H$n=Mk,V$n=i,L$n=dU,z$n=e_,S$n=lC(0,0,0),Z$n=[20,[1,0]],W$n=lC($K,$K,Ft),X$n=[20,[1,0]],J$n=[0,1,0],Y$n=[0,CR,1],rKn=Ap,nKn=sj,tKn=lC(0,0,0),eKn=lC(1,0,0),aKn=[20,[1,12]],uKn=YM,fKn=[20,[1,0]],iKn=[0,[0,Sh,1],[0,i,1]],cKn=xr,vKn=i,oKn=of,AKn=lC(0,0,0),sKn=[20,[1,1]],bKn=[0,1,0],lKn=[0,CR,1],BKn=Rl,jKn=lC(8,0,0),kKn=hi,pKn=lC(4,0,0),mKn=Mk,dKn=lC(8,0,0),_Kn=hi,hKn=lC(4,0,0),xKn=Mk,yKn=lC(4,0,0),wKn=lC(3,0,0),gKn=Jb,qKn=cI,IKn=[0,Sh,1],DKn=eE,EKn=[0,[11,Il,[2,0,[11,lw,[2,0,0]]]],$u],NKn=lC(4,0,0),TKn=lC(3,0,0),FKn=Jb,MKn=[0,Sh,1],PKn=eE,UKn=[0,[11,Il,[2,0,[11,_l,[2,0,0]]]],bM],GKn=lC(1,0,0),$Kn=Vh,KKn=[20,[1,10]],OKn=[20,[1,0]],RKn=sM,QKn=[20,[1,1]],CKn=[0,[0,Sh,1],[0,i,1]],HKn=IG,VKn=vr,LKn=[20,[1,10]],zKn=NE,SKn=zc,ZKn=lC(0,0,0),WKn=$g,XKn=$g,JKn=xs,YKn=xs,rOn=lC(0,0,0),nOn=xs,tOn=$g,eOn=[0,[0,Sh,1],[0,sg,1],[0,i,1]],aOn=FN,uOn=FN,fOn=[0,[0,nO,1],[0,Sh,1],[0,i,1]],iOn=EO,cOn=EO,vOn=[0,1,0],oOn=YF,AOn=YF,sOn=pk,bOn=lC($K,$K,Ft),lOn=lC($K,$K,Ft),BOn=[0,1,0],jOn=[0,CR,1],kOn=Wk,pOn=Wk,mOn=lC(2,0,0),dOn=nO,_On=[0,1,0],hOn=[0,va,1],xOn=sB,yOn=lC(2,0,0),wOn=nO,gOn=[0,1,0],qOn=Pk,IOn=lC(2,0,0),DOn=nO,EOn=[0,1,0],NOn=xu,TOn=lC(2,0,0),FOn=nO,MOn=[0,1,0],POn=[0,va,1],UOn=Nq,GOn=[0,va,1],$On=Vk,KOn=lC(2,0,0),OOn=nO,ROn=[0,1,0],QOn=CT,COn=va,HOn=lC(64,0,0),VOn=Zo,LOn=pb,zOn=lC(64,0,0),SOn=[13,[0,1,0,lC(8,0,0),0]],ZOn=[13,[0,1,0,lC(8,0,0),0]],WOn=[13,[0,1,0,lC(0,0,0),0]],XOn=[0,1,0],JOn=[0,Vx,1],YOn=Lj,rRn=xk,nRn=ht,tRn=lC(0,0,0),eRn=PN,aRn=bD,uRn=Ak,fRn=XB,iRn=qO,cRn=Yk,vRn=rE,oRn=OU,ARn=gp,sRn=kM,bRn=OE,lRn=aq,BRn=OE,jRn=Gb,kRn=Uw,pRn=Lk,mRn=sF,dRn=[20,[1,8]],_Rn=yT,hRn=lC(0,0,0),xRn=GO,yRn=dc,wRn=QD,gRn=iG,qRn=lC(0,0,0),IRn=E_,DRn=lC(0,0,0),ERn=yT,NRn=lC(0,0,0),TRn=dc,FRn=Uj,MRn=GO,PRn=lC(0,0,0),URn=Hs,GRn=QD,$Rn=hK,KRn=[0,[11,lI,[2,0,0]],dA],ORn=[0,1,0],RRn=[0,[0,Aq,1],[0,b,1]],QRn=DN,CRn=wD,HRn=EA,VRn=qB,LRn=[0,[0,Mo,1],[0,i,1]],zRn=vT,SRn=[0,1,0],ZRn=gu,WRn=Xh,XRn=zb,JRn=lC(0,0,0),YRn=[0,1,0],rQn=gq,nQn=sw,tQn=oE,eQn=[0,[0,Hl,lC(1,0,0)],[0,[0,Ou,lC(2,0,0)],[0,[0,te,lC(3,0,0)],[0,[0,Li,lC(4,0,0)],[0,[0,rj,lC(5,0,0)],[0,[0,vi,lC(6,0,0)],0]]]]]],aQn=[21,[1,1]],uQn=nU,fQn=[0,1,0],iQn=LA,cQn=_r,vQn=yG,oQn=Mr,AQn=Nw,sQn=lt,bQn=$i,lQn=lC(0,0,0),BQn=as,jQn=TR,kQn=Op,pQn=lC(0,0,0),mQn=Gg,dQn=QD,_Qn=yT,hQn=lC(0,0,0),xQn=cf,yQn=iP,wQn=cn,gQn=cI,qQn=Br,IQn=st,DQn=Gx,EQn=VD,NQn=Td,TQn=rc,FQn=iP,MQn=Td,PQn=HU,UQn=Wo,GQn=Od,$Qn=sm,KQn=JB,OQn=Em,RQn=bR,QQn=jI,CQn=nh,HQn=ey,VQn=Uf,LQn=lC(0,0,0),zQn=Ku,SQn=bw,ZQn=je,WQn=bm,XQn=lC(0,0,0),JQn=zD,YQn=[0,1,0],rCn=Kr,nCn=hK,tCn=E_,eCn=lC(0,0,0),aCn=cp,uCn=[0,1,0],fCn=Cd,iCn=jU,cCn=BO,vCn=HN,oCn=XT,ACn=R_,sCn=Yf,bCn=Jh,lCn=ZT,BCn=jU,jCn=[0,Nv,5202,4],kCn=Hi,pCn=Hi,mCn=OM,dCn=VT,_Cn=[0,Nv,5173,4],hCn=X$,xCn=X$,yCn=RO,wCn=aa,gCn=[0,Nv,5160,4],qCn=G,ICn=G,DCn=_c,ECn=[0,Nv,5148,4],NCn=cj,TCn=cj,FCn=On,MCn=[0,Nv,5135,4],PCn=mF,UCn=mF,GCn=jU,$Cn=[0,Nv,5120,4],KCn=Ar,OCn=Ar,RCn=yI,QCn=FK,CCn=Nh,HCn=[0,[0,Vx,1],[0,Od,1]],VCn=KR,LCn=[0,by,1],zCn=KE,SCn=kk,ZCn=Tp,WCn=[21,[1,1]],XCn=vm,JCn=[21,[1,1]],YCn=AP,rHn=Tf,nHn=[21,[0,2]],tHn=[0,[11,bB,[2,0,[11,yE,0]]],oF],eHn=EI,aHn=zc,uHn=Bu,fHn=df,iHn=Bu,cHn=df,vHn=[14,[0,0,0,lC(16,0,0),[0,0]]],oHn=[14,[0,0,2,lC(12,0,0),0]],AHn=[14,[0,0,2,lC(8,0,0),0]],sHn=[14,[0,0,2,lC(4,0,0),0]],bHn=[14,[0,0,2,lC(0,0,0),0]],lHn=lC(6,0,0),BHn=Ry,jHn=EK,kHn=[0,[0,Vx,1],[0,[0,Od,1],0]],pHn=kk,mHn=kk,dHn=kk,_Hn=B_,hHn=[0,0,0],xHn=[0,0,[0,0,[0,0,[0,0,0]]]],yHn=Bu,wHn=df,gHn=RO,qHn=B_,IHn=Kq,DHn=B_,EHn=Gb,NHn=B_,THn=[0,0,0],FHn=HF,MHn=B_,PHn=Jc,UHn=B_,GHn=[0,0,0],$Hn=vj,KHn=B_,OHn=xl,RHn=B_,QHn=Lk,CHn=B_,HHn=E_,VHn=B_,LHn=hK,zHn=B_,SHn=[0,0,0],ZHn=XT,WHn=B_,XHn=[0,1,0],JHn=Tp,YHn=B_,rVn=Uf,nVn=B_,tVn=ey,eVn=B_,aVn=[0,0,0],uVn=vm,fVn=B_,iVn=[0,0,0],cVn=AP,vVn=B_,oVn=bm,AVn=B_,sVn=je,bVn=B_,lVn=EK,BVn=B_,jVn=$i,kVn=B_,pVn=lt,mVn=B_,dVn=yT,_Vn=B_,hVn=QD,xVn=B_,yVn=kM,wVn=B_,gVn=OU,qVn=B_,IVn=aq,DVn=B_,EVn=Yk,NVn=B_,TVn=Ue,FVn=B_,MVn=pT,PVn=B_,UVn=s$,GVn=B_,$Vn=[0,0,0],KVn=ou,OVn=B_,RVn=[0,0,0],QVn=ho,CVn=B_,HVn=XB,VVn=B_,LVn=[0,0,0],zVn=bD,SVn=B_,ZVn=xk,WVn=B_,XVn=ht,JVn=B_,YVn=TR,rLn=B_,nLn=Op,tLn=B_,eLn=[0,0,0],aLn=nU,uLn=B_,fLn=Xh,iLn=B_,cLn=zb,vLn=B_,oLn=yG,ALn=B_,sLn=qB,bLn=B_,lLn=EA,BLn=B_,jLn=[0,1,0],kLn=Nw,pLn=B_,mLn=[0,1,0],dLn=[0,0,0],_Ln=Tf,hLn=B_,xLn=Nh,yLn=B_,wLn=FN,gLn=B_,qLn=EO,ILn=B_,DLn=[0,1,0],ELn=YF,NLn=B_,TLn=[0,1,0],FLn=[0,1,0],MLn=Wk,PLn=B_,ULn=JB,GLn=B_,$Ln=Wo,KLn=B_,OLn=HU,RLn=B_,QLn=[0,0,0],CLn=Gx,HLn=B_,VLn=st,LLn=B_,zLn=Br,SLn=B_,ZLn=[0,1,0],WLn=nh,XLn=B_,JLn=[0,1,0],YLn=[0,1,0],rzn=Sg,nzn=B_,tzn=ll,ezn=ll,azn=HA,uzn=HA,fzn=dh,izn=dh,czn=lC(0,0,0),vzn=dh,ozn=lC(0,0,0),Azn=HA,szn=lC(0,0,0),bzn=ll,lzn=[20,[1,8]],Bzn=[0,0,0],jzn=[0,1,[0,3,[0,8,[0,9,[0,11,0]]]]],kzn=[0,2,0],pzn=[0,2,0],mzn=[0,4,0],dzn=[0,2,[0,10,0]],_zn=[0,6,0],hzn=[0,1,[0,11,0]],xzn=[0,2,[0,9,0]],yzn=[0,2,[0,10,0]],wzn=[0,1,0],gzn=lC(0,0,0),qzn=lC(3,0,0),Izn=lC(4,0,0),Dzn=lC(5,0,0),Ezn=lC(6,0,0),Nzn=lC(7,0,0),Tzn=lC(8,0,0),Fzn=lC(9,0,0),Mzn=lC(10,0,0),Pzn=lC(11,0,0),Uzn=lC(12,0,0),Gzn=lC(13,0,0),$zn=Nu,Kzn=Zn,Ozn=ps,Rzn=eT,Qzn=ux,Czn=g$,Hzn=FD,Vzn=Kn,Lzn=Pt,zzn=ya,Szn=[0,[11,AU,[4,3,0,0,[11,eG,0]]],Eo],Zzn=[0,pq,1],Wzn=[0,[11,fP,[4,3,0,0,0]],Ig],Xzn=[0,[11,"to_",[4,3,0,0,[11,eG,0]]],Z_],Jzn=[0,1,0],Yzn=[14,[0,1,0,lC(0,0,0),[0,0]]],rSn=[20,[1,0]],nSn=Od,tSn=qP,eSn=[0,1,0],aSn=[0,sm,1],uSn=Et,fSn=[13,[0,1,0,lC(0,0,0),[0,[0,0,1]]]],iSn=[20,[1,0]],cSn=Od,vSn=qP,oSn=[0,Nv,4636,87],ASn=Zk,sSn=sl,bSn=[0,1,0],lSn=[0,KR,1],BSn=lC(1,0,0),jSn=MI,kSn=qP,pSn=uA,mSn=lC(0,0,0),dSn=ax,_Sn=qP,hSn=yD,xSn=qp,ySn=[20,[1,0]],wSn=[20,[1,0]],gSn=zu,qSn=zc,ISn=[0,Nv,4515,12],DSn=_K,ESn=[0,1,0],NSn=[0,[0,sm,1],[0,KU,1]],TSn=EP,FSn=[20,[1,0]],MSn=_K,PSn=[0,1,0],USn=[0,[0,sm,1],[0,KU,1]],GSn=ds,$Sn=[20,[1,0]],KSn=[0,1,0],OSn=[0,[0,sm,1],[0,KU,1]],RSn=Tk,QSn=[0,Nv,4439,19],CSn=lC(0,0,0),HSn=fp,VSn=zc,LSn=Xy,zSn=[0,Nv,4427,19],SSn=PM,ZSn=hD,WSn=Ik,XSn=jl,JSn=[0,1,0],YSn=[0,[0,ax,1],[0,Tb,1]],rZn=DT,nZn=zc,tZn=$b,eZn=zc,aZn=ob,uZn=zc,fZn=KR,iZn=Gi,cZn=zc,vZn=Ab,oZn=zc,AZn=Jp,sZn=zc,bZn=Iv,lZn=zc,BZn=yx,jZn=zc,kZn=[21,[0,2]],pZn=wx,mZn=zc,dZn=[0,1,0],_Zn=[0,ev,1],hZn=wx,xZn=ZR,yZn=zc,wZn=Tn,gZn=zc,qZn=E,IZn=zc,DZn=vv,EZn=zc,NZn=Gh,TZn=zc,FZn=gO,MZn=zc,PZn=Yp,UZn=zc,GZn=We,$Zn=zc,KZn=Bj,OZn=zc,RZn=qo,QZn=zc,CZn=qA,HZn=zc,VZn=wO,LZn=zc,zZn=PR,SZn=zc,ZZn=o_,WZn=zc,XZn=Nx,JZn=zc,YZn=Cq,rWn=zc,nWn=ww,tWn=zc,eWn=cE,aWn=zc,uWn=Im,fWn=zc,iWn=rs,cWn=zc,vWn=en,oWn=zc,AWn=Jd,sWn=zc,bWn=pa,lWn=zc,BWn=HG,jWn=zc,kWn=[0,Nv,4248,11],pWn=[0,[11,$p,[4,0,0,0,[12,62,0]]],DI],mWn=[0,1,0],dWn=[0,[0,ax,1],[0,Tl,1]],_Wn=Tr,hWn=[0,[11,P,[4,0,0,0,[12,62,0]]],ne],xWn=[0,1,0],yWn=[0,[0,ax,1],[0,Tl,1]],wWn=Eq,gWn=zc,qWn=[0,Nv,3999,19],IWn=[13,[0,1,0,lC(0,0,0),[0,[0,0,1]]]],DWn=[20,[1,0]],EWn=[13,[0,1,0,lC(0,0,0),[0,[0,0,1]]]],NWn=[20,[1,0]],TWn=[0,0],FWn=[0,5],MWn=[0,4],PWn=GD,UWn=ti,GWn=Od,$Wn=uQ,KWn=rv,OWn=[0,Nv,4015,15],RWn=[0,0],QWn=lC($K,$K,Ft),CWn=lC(0,0,0),HWn=pG,VWn=YT,LWn=ma,zWn=pO,SWn=MF,ZWn=Vp,WWn=rA,XWn=[0,1,0],JWn=[0,[0,ax,1],[0,Tb,1]],YWn=Od,rXn=eQ,nXn=[0,1,0],tXn=[0,[0,KR,1],[0,KU,1]],eXn=sG,aXn=[13,[0,1,0,lC(0,0,0),[0,[0,0,1]]]],uXn=[20,[1,0]],fXn=eQ,iXn=[0,1,0],cXn=[0,[0,KR,1],[0,KU,1]],vXn=_h,oXn=xE,AXn=zc,sXn=jq,bXn=zc,lXn=sp,BXn=zc,jXn=Od,kXn=KR,pXn=nO,mXn=[0,[11,Np,[2,0,[12,95,[2,0,0]]]],_U],dXn=[0,1,0],_Xn=[0,sg,1],hXn=ax,xXn=[0,1,0],yXn=[0,[0,Vx,1],[0,i,1]],wXn=Ae,gXn=to,qXn=[21,[0,2]],IXn=[0,1,[0,1,0]],DXn=[0,ax,1],EXn=Df,NXn=to,TXn=[21,[0,2]],FXn=am,MXn=zc,PXn=[0,1,0],UXn=[0,ev,1],GXn=TD,$Xn=bG,KXn=zc,OXn=Ca,RXn=zc,QXn=sP,CXn=zc,HXn=dP,VXn=zc,LXn=Ur,zXn=zc,SXn=vM,ZXn=zc,WXn=qn,XXn=zc,JXn=sT,YXn=zc,rJn=Iq,nJn=zc,tJn=hu,eJn=zc,aJn=wU,uJn=zc,fJn=xe,iJn=zc,cJn=li,vJn=zc,oJn=tB,AJn=zc,sJn=li,bJn=zc,lJn=xe,BJn=zc,jJn=tB,kJn=zc,pJn=eD,mJn=zc,dJn=D$,_Jn=zc,hJn=LO,xJn=zc,yJn=Sx,wJn=zc,gJn=PU,qJn=qn,IJn=zc,DJn=[0,1,0],EJn=[0,Ke,1],NJn=Ei,TJn=[0,[0,0],[0,[1,lC(0,0,0)],0]],FJn=rI,MJn=zc,PJn=Ff,UJn=zc,GJn=Ds,$Jn=Ke,KJn=pR,OJn=zc,RJn=Cb,QJn=zc,CJn=Ds,HJn=Ke,VJn=co,LJn=zc,zJn=Eg,SJn=zc,ZJn=pR,WJn=zc,XJn=co,JJn=zc,YJn=LR,rYn=zc,nYn=zd,tYn=zc,eYn=pn,aYn=zc,uYn=[21,[1,1]],fYn=$$,iYn=zc,cYn=IA,vYn=zc,oYn=ls,AYn=zc,sYn=uQ,bYn=[0,1,0],lYn=uQ,BYn=[0,1,0],jYn=uQ,kYn=[0,1,0],pYn=uQ,mYn=[0,1,0],dYn=uQ,_Yn=[0,1,0],hYn=uQ,xYn=[0,1,0],yYn=ax,wYn=ax,gYn=ax,qYn=Ds,IYn=ax,DYn=Ds,EYn=uQ,NYn=[19,[1,1]],TYn=lC(VM,VM,32896),FYn=lC($K,$K,Ft),MYn=nG,PYn=zc,UYn=oB,GYn=zc,$Yn=uQ,KYn=[20,[1,1]],OYn=lC(0,0,0),RYn=lC(0,0,0),QYn=lC(1,0,0),CYn=[0,Nv,3479,15],HYn=[20,[1,9]],VYn=lC(1,0,0),LYn=uQ,zYn=[0,Nv,3439,15],SYn=uQ,ZYn=[0,1,0],WYn=[0,1,0],XYn=[0,1,0],JYn=[0,1,0],YYn=[0,[0,uQ,1],[0,rv,1]],r0n=kg,n0n=[0,1,0],t0n=[0,1,0],e0n=[0,1,0],a0n=[0,1,0],u0n=[0,[0,uQ,1],[0,rv,1]],f0n=[20,[1,1]],i0n=lC(0,0,0),c0n=[0,1,0],v0n=lC(1,0,0),o0n=[0,1,0],A0n=[0,Ke,1],s0n=Qq,b0n=Ke,l0n=lC(0,0,0),B0n=[0,1,0],j0n=fl,k0n=[20,[1,2]],p0n=[20,[1,12]],m0n=[0,1,0],d0n=[0,1,0],_0n=[0,[0,Ke,1],[0,Ma,1]],h0n=WM,x0n=[20,[1,10]],y0n=[20,[1,7]],w0n=lC(32,0,0),g0n=lC(0,0,0),q0n=lC(0,mj,Ft),I0n=[0,1,0],D0n=[0,1,0],E0n=[0,[0,Ke,1],[0,Ma,1]],N0n=_w,T0n=fl,F0n=[0,1,0],M0n=[0,1,0],P0n=[0,1,0],U0n=[0,1,0],G0n=[0,[0,uQ,1],[0,rv,1]],$0n=jB,K0n=fl,O0n=[0,1,0],R0n=[0,1,0],Q0n=[0,1,0],C0n=[0,1,0],H0n=[0,[0,uQ,1],[0,rv,1]],V0n=lC(64,0,0),L0n=lC(0,0,0),z0n=lC(1,mj,Ft),S0n=[20,[1,8]],Z0n=lC(64,0,0),W0n=Pr,X0n=Bv,J0n=Bw,Y0n=DP,r1n=fG,n1n=zc,t1n=bN,e1n=zc,a1n=lC(7,0,0),u1n=[20,[1,1]],f1n=[19,[1,0]],i1n=[20,[1,9]],c1n=lC(1,0,0),v1n=[19,[1,0]],o1n=Rf,A1n=eR,s1n=T_,b1n=d$,l1n=lC(4,0,0),B1n=[13,[0,2,0,lC(0,0,0),0]],j1n=lC(4,0,0),k1n=lC(8,0,0),p1n=[13,[0,3,0,lC(0,0,0),0]],m1n=lC(8,0,0),d1n=lC(8,0,0),_1n=[13,[0,1,0,lC(0,0,0),0]],h1n=lC(8,0,0),x1n=[13,[0,1,0,lC(0,0,0),0]],y1n=lC($K,$K,Ft),w1n=lC(8,0,0),g1n=lC(4,0,0),q1n=[21,[1,0]],I1n=[13,[0,0,0,lC(0,0,0),0]],D1n=lC(4,0,0),E1n=lC(4,0,0),N1n=[21,[1,1]],T1n=[13,[0,0,0,lC(0,0,0),0]],F1n=lC(4,0,0),M1n=lC(2,0,0),P1n=[21,[1,1]],U1n=[13,[0,0,0,lC(0,0,0),[0,[0,1,1]]]],G1n=lC(2,0,0),$1n=[21,[1,1]],K1n=[13,[0,0,0,lC(0,0,0),[0,[0,0,1]]]],O1n=lC(16,0,0),R1n=lC(Ft,0,0),Q1n=IB,C1n=[20,[1,1]],H1n=_u,V1n=zc,L1n=FT,z1n=zc,S1n=[20,[1,0]],Z1n=[20,[1,0]],W1n=[14,[0,1,3,lC(0,0,0),0]],X1n=[13,[0,1,3,lC(0,0,0),0]],J1n=kj,Y1n=[1,2],r2n=[0,1,0],n2n=[0,MI,3],t2n=B,e2n=[0,Nv,2828,11],a2n=[0,Nv,2819,11],u2n=[20,[1,14]],f2n=[20,[1,8]],i2n=[0,1,0],c2n=[0,[0,Ke,1],[0,oM,1]],v2n=zF,o2n=[20,[1,13]],A2n=[20,[1,8]],s2n=[0,1,0],b2n=[0,[0,Ke,1],[0,oM,1]],l2n=Xj,B2n=tO,j2n=lC(0,0,0),k2n=eg,p2n=[0,1,0],m2n=[0,[0,Ke,1],[0,Ro,1]],d2n=UE,_2n=[20,[1,2]],h2n=lC(1,0,0),x2n=[20,[1,2]],y2n=[20,[1,2]],w2n=lC(63,0,0),g2n=lC(1,0,0),q2n=fa,I2n=[0,1,0],D2n=[0,[0,Ke,1],[0,Ro,1]],E2n=[20,[1,2]],N2n=gb,T2n=[20,[1,8]],F2n=lC(v,0,0),M2n=[20,[1,7]],P2n=lC(He,0,0),U2n=lC(Xn,0,0),G2n=[0,1,0],$2n=[0,Ke,1],K2n=mg,O2n=rv,R2n=[20,[1,7]],Q2n=[20,[1,10]],C2n=[19,[1,1]],H2n=[19,[1,0]],V2n=[0,Nv,2668,11],L2n=lC(1,0,0),z2n=lC(0,0,0),S2n=SR,Z2n=[0,Nv,2639,11],W2n=lC(0,0,0),X2n=[0,Nv,2629,12],J2n=[0,Nv,2620,11],Y2n=rv,r3n=[20,[1,7]],n3n=[20,[1,10]],t3n=tO,e3n=lC(0,0,0),a3n=[0,1,0],u3n=[0,[0,Ke,1],[0,Ro,1]],f3n=Rd,i3n=UE,c3n=[20,[1,2]],v3n=lC(1,0,0),o3n=[20,[1,2]],A3n=[20,[1,2]],s3n=lC(63,0,0),b3n=fa,l3n=[0,1,0],B3n=[0,[0,Ke,1],[0,Ro,1]],j3n=[20,[1,1]],k3n=PU,p3n=[0,1,0],m3n=[0,[0,"n1",1],[0,"n2",1]],d3n=Cy,_3n=[20,[1,6]],h3n=[20,[1,4]],x3n=[20,[1,5]],y3n=[20,[1,3]],w3n=[20,[1,2]],g3n=[20,[1,1]],q3n=[20,[1,0]],I3n=[0,1,0],D3n=[0,1,0],E3n=[0,Ke,1],N3n=Hm,T3n=[0,1,0],F3n=[0,1,0],M3n=[0,Ke,1],P3n=BT,U3n=zP,G3n=lC(4,0,0),$3n=[0,Nv,2491,11],K3n=[1,1],O3n=[1,0],R3n=lC(0,0,0),Q3n=EG,C3n=[1,2],H3n=[1,1],V3n=[1,0],L3n=[0,1,0],z3n=[0,1,0],S3n=[0,1,0],Z3n=[0,1,0],W3n=[0,1,0],X3n=[0,ax,1],J3n=[0,1,0],Y3n=[0,1,0],r6n=[0,1,0],n6n=[0,1,0],t6n=[0,ax,1],e6n=GN,a6n=[0,1,0],u6n=[0,1,0],f6n=[0,1,0],i6n=[0,1,0],c6n=[0,1,0],v6n=[0,ax,1],o6n=ot,A6n=z,s6n=uT,b6n=IM,l6n=iu,B6n=RD,j6n=zc,k6n=Bk,p6n=zc,m6n=OK,d6n=zc,_6n=ND,h6n=uT,x6n=lC(1,0,0),y6n=[0,Nv,2029,4],w6n=[0,[11,hb,[4,0,0,0,[11,Hb,[4,0,0,0,[12,62,0]]]]],Nj],g6n=[0,1,0],q6n=lC(1,0,0),I6n=lC(17,0,0),D6n=lC(19,0,0),E6n=lC(21,0,0),N6n=lC(23,0,0),T6n=lC(33,0,0),F6n=lC(35,0,0),M6n=lC(37,0,0),P6n=lC(41,0,0),U6n=lC(43,0,0),G6n=lC(39,0,0),$6n=lC(45,0,0),K6n=lC(46,0,0),O6n=lC($K,$K,Ft),R6n=lC(16777214,$K,Ft),Q6n=lC(3,0,0),C6n=lC(5,0,0),H6n=lC(7,0,0),V6n=lC(9,0,0),L6n=lC(11,0,0),z6n=lC(13,0,0),S6n=lC(15,0,0),Z6n=lC(25,0,0),W6n=lC(27,0,0),X6n=lC(29,0,0),J6n=lC(31,0,0),Y6n=lC(0,0,0),r4n=[0,Nv,1896,11],n4n=lC(64,0,0),t4n=lC(64,0,0),e4n=lC(64,0,0),a4n=[20,[1,9]],u4n=[0,1,0],f4n=[0,ax,1],i4n=br,c4n=[0,Nv,1851,12],v4n=[0,1,0],o4n=[0,ax,1],A4n=br,s4n=[0,Nv,1795,11],b4n=[0,Nv,1786,11],l4n=lC(1,0,0),B4n=lC(1,0,0),j4n=lC(1,0,0),k4n=lC(0,0,0),p4n=lC(1,0,0),m4n=[20,[1,8]],d4n=lC(1,0,0),_4n=lC(1,0,0),h4n=lC(0,0,0),x4n=_t,y4n=zc,w4n=Iw,g4n=zc,q4n=KT,I4n=zc,D4n=Dv,E4n=zc,N4n=Ve,T4n=zc,F4n=lC(1,0,0),M4n=[0,qa,1],P4n=lC(1,0,0),U4n=[13,[0,1,3,lC(0,0,0),0]],G4n=lC(1,0,0),$4n=lC(1,0,0),K4n=[13,[0,1,3,lC(0,0,0),0]],O4n=s,R4n=[14,[0,1,3,lC(0,0,0),0]],Q4n=lC(1,0,0),C4n=Gy,H4n=Gy,V4n=Ke,L4n=[20,[1,0]],z4n=[20,[1,1]],S4n=[20,[1,0]],Z4n=[0,Nv,1512,4],W4n=[19,[1,0]],X4n=[20,[1,1]],J4n=[13,[0,1,3,lC(0,0,0),0]],Y4n=lC(wv,$K,Ft),r5n=Y_,n5n=VR,t5n=VR,e5n=VR,a5n=Gy,u5n=VR,f5n=nQ,i5n=zc,c5n=VI,v5n=zc,o5n=[0,1,0],A5n=Ut,s5n=Ut,b5n=[21,[1,1]],l5n=YO,B5n=zc,j5n=Vt,k5n=zc,p5n=rd,m5n=zc,d5n=um,_5n=zc,h5n=mc,x5n=zc,y5n=Si,w5n=[20,[1,0]],g5n=[20,[1,0]],q5n=[20,[1,1]],I5n=Su,D5n=Su,E5n=EM,N5n=EM,T5n=__,F5n=__,M5n=lC(0,0,0),P5n=__,U5n=lC(0,0,0),G5n=EM,$5n=lC(0,0,0),K5n=Su,O5n=Tf,R5n=B_,Q5n=HE,C5n=zc,H5n=ur,V5n=zc,L5n=WA,z5n=zc,S5n=[0,1,[0,1,0]],Z5n=RD,W5n=zc,X5n=[0,1,0],J5n=[0,1,0],Y5n=OK,r7n=zc,n7n=[0,0,0],t7n=Bk,e7n=zc,a7n=[0,1,[0,1,0]],u7n=yw,f7n=zc,i7n=[0,1,[0,1,0]],c7n=wt,v7n=zc,o7n=[0,0,0],A7n=VB,s7n=zc,b7n=[0,1,0],l7n=DD,B7n=zc,j7n=[0,1,0],k7n=XR,p7n=zc,m7n=mA,d7n=zc,_7n=[0,0,0],h7n=[0,1,[0,1,0]],x7n=Eq,y7n=zc,w7n=[0,1,0],g7n=sa,q7n=zc,I7n=[0,1,0],D7n=[0,1,0],E7n=nQ,N7n=zc,T7n=[0,1,[0,1,0]],F7n=Hk,M7n=zc,P7n=[0,1,0],U7n=pt,G7n=zc,$7n=[0,1,0],K7n=hp,O7n=zc,R7n=[0,0,0],Q7n=[0,1,[0,1,[0,1,0]]],C7n=YO,H7n=zc,V7n=[0,1,0],L7n=bk,z7n=zc,S7n=[0,0,[0,1,[0,1,[0,1,[0,1,[0,1,0]]]]]],Z7n=Gw,W7n=zc,X7n=[0,1,[0,1,[0,1,[0,1,[0,1,0]]]]],J7n=BE,Y7n=zc,r8n=[0,1,0],n8n=[0,1,[0,1,0]],t8n=j,e8n=zc,a8n=[0,1,[0,1,[0,1,0]]],u8n=Vv,f8n=zc,i8n=[0,0,0],c8n=[0,1,[0,1,[0,1,[0,1,[0,1,[0,1,[0,1,[0,0,[0,0,0]]]]]]]]],v8n=TB,o8n=zc,A8n=[0,1,0],s8n=[0,1,0],b8n=FT,l8n=zc,B8n=[0,1,0],j8n=[0,1,0],k8n=_u,p8n=zc,m8n=[0,0,0],d8n=[0,1,0],_8n=$$,h8n=zc,x8n=[0,1,0],y8n=[0,1,0],w8n=zd,g8n=zc,q8n=[0,1,0],I8n=[0,1,0],D8n=LR,E8n=zc,N8n=[0,1,0],T8n=[0,3,0],F8n=B$,M8n=zc,P8n=[0,3,0],U8n=[0,1,0],G8n=Ov,$8n=zc,K8n=[0,1,0],O8n=[0,1,0],R8n=pn,Q8n=zc,C8n=[0,1,0],H8n=[0,1,0],V8n=ls,L8n=zc,z8n=[0,1,0],S8n=[0,1,[0,1,0]],Z8n=IA,W8n=zc,X8n=[0,0,0],J8n=[0,1,[0,1,0]],Y8n=sT,r9n=zc,n9n=[0,0,0],t9n=[0,1,0],e9n=qn,a9n=zc,u9n=[0,1,0],f9n=[0,1,0],i9n=bG,c9n=zc,v9n=[0,1,0],o9n=[0,1,0],A9n=Ca,s9n=zc,b9n=[0,0,0],l9n=[0,1,[0,1,0]],B9n=sP,j9n=zc,k9n=[0,0,0],p9n=[0,1,[0,1,0]],m9n=vM,d9n=zc,_9n=[0,0,0],h9n=[0,1,[0,1,0]],x9n=dP,y9n=zc,w9n=[0,0,0],g9n=[0,1,[0,1,0]],q9n=Ur,I9n=zc,D9n=[0,1,0],E9n=[0,1,[0,1,0]],N9n=D$,T9n=zc,F9n=[0,1,0],M9n=[0,1,[0,1,0]],P9n=tB,U9n=zc,G9n=[0,1,0],$9n=[0,1,[0,1,0]],K9n=eD,O9n=zc,R9n=[0,1,0],Q9n=[0,1,[0,1,0]],C9n=li,H9n=zc,V9n=[0,1,0],L9n=[0,1,[0,1,0]],z9n=xe,S9n=zc,Z9n=[0,1,0],W9n=[0,1,[0,1,0]],X9n=wU,J9n=zc,Y9n=[0,1,0],rrt=[0,1,0],nrt=LO,trt=zc,ert=[0,1,0],art=[0,1,[0,1,0]],urt=hu,frt=zc,irt=[0,1,0],crt=[0,1,[0,1,0]],vrt=Iq,ort=zc,Art=[0,1,0],srt=[0,1,0],brt=Sx,lrt=zc,Brt=[0,1,0],jrt=[0,1,0],krt=co,prt=zc,mrt=[0,1,[0,1,0]],drt=Eg,_rt=zc,hrt=[0,1,0],xrt=[0,1,0],yrt=Ff,wrt=zc,grt=[0,1,0],qrt=[0,1,[0,1,[0,1,0]]],Irt=oB,Drt=zc,Ert=[0,1,0],Nrt=[0,1,0],Trt=pR,Frt=zc,Mrt=[0,1,[0,1,0]],Prt=Cb,Urt=zc,Grt=[0,1,0],$rt=[0,1,0],Krt=rI,Ort=zc,Rrt=[0,1,0],Qrt=[0,1,[0,1,[0,1,0]]],Crt=nG,Hrt=zc,Vrt=[0,1,[0,1,0]],Lrt=bN,zrt=zc,Srt=[0,1,[0,1,0]],Zrt=fG,Wrt=zc,Xrt=[0,0,0],Jrt=[0,1,[0,1,0]],Yrt=Gi,rnt=zc,nnt=[0,1,[0,1,0]],tnt=SO,ent=zc,ant=[0,1,0],unt=dx,fnt=zc,int=[0,1,[0,1,[0,0,[0,0,0]]]],cnt=Sn,vnt=zc,ont=[0,0,0],Ant=[0,1,[0,1,[0,1,[0,0,[0,1,0]]]]],snt=qt,bnt=zc,lnt=[0,1,[0,1,[0,1,[0,1,0]]]],Bnt=bc,jnt=zc,knt=[0,1,0],pnt=[0,1,0],mnt=Ve,dnt=zc,_nt=[0,1,0],hnt=[0,1,0],xnt=Dv,ynt=zc,wnt=[0,1,0],gnt=[0,1,0],qnt=KT,Int=zc,Dnt=[0,1,0],Ent=Iw,Nnt=zc,Tnt=[0,1,0],Fnt=_t,Mnt=zc,Pnt=[0,1,0],Unt=[0,1,0],Gnt=Iv,$nt=zc,Knt=[0,1,0],Ont=[0,1,[0,1,0]],Rnt=fp,Qnt=zc,Cnt=[0,1,0],Hnt=[0,1,[0,1,0]],Vnt=E,Lnt=zc,znt=[0,1,0],Snt=[0,1,0],Znt=$b,Wnt=zc,Xnt=[0,1,0],Jnt=[0,1,0],Ynt=ob,rtt=zc,ntt=[0,0,0],ttt=[0,1,0],ett=DT,att=zc,utt=[0,1,0],ftt=[0,1,0],itt=wx,ctt=zc,vtt=[0,1,0],ott=[0,1,[0,1,0]],Att=vv,stt=zc,btt=[0,1,0],ltt=[0,0,0],Btt=yx,jtt=zc,ktt=[0,1,0],ptt=[0,1,0],mtt=Tn,dtt=zc,_tt=[0,1,[0,1,0]],htt=ZR,xtt=zc,ytt=[0,1,0],wtt=[0,1,0],gtt=Jp,qtt=zc,Itt=[0,1,0],Dtt=[0,1,0],Ett=Ab,Ntt=zc,Ttt=[0,1,0],Ftt=NE,Mtt=zc,Ptt=[0,1,0],Utt=[0,1,[0,1,[0,1,0]]],Gtt=HG,$tt=zc,Ktt=[0,1,[0,1,[0,1,[0,1,0]]]],Ott=pa,Rtt=zc,Qtt=[0,1,0],Ctt=Im,Htt=zc,Vtt=[0,1,0],Ltt=[0,1,0],ztt=Jd,Stt=zc,Ztt=[0,1,0],Wtt=[0,1,0],Xtt=en,Jtt=zc,Ytt=[0,1,0],ret=[0,1,0],net=rs,tet=zc,eet=[0,1,0],aet=[0,1,0],uet=cE,fet=zc,iet=[0,1,0],cet=[0,1,[0,1,0]],vet=ww,oet=zc,Aet=[0,1,0],set=[0,1,[0,1,[0,1,0]]],bet=Cq,Bet=zc,jet=[0,1,[0,1,[0,1,0]]],ket=Nx,pet=zc,met=[0,0,0],det=[0,1,[0,1,0]],_et=o_,het=zc,xet=[0,1,[0,1,[0,0,0]]],yet=PR,wet=zc,get=[0,0,0],qet=[0,1,[0,1,0]],Iet=wO,Det=zc,Eet=[0,1,[0,1,[0,0,0]]],Net=qA,Tet=zc,Fet=[0,0,0],Met=[0,1,[0,1,0]],Pet=qo,Uet=zc,Get=[0,1,[0,1,[0,0,0]]],$et=Bj,Ket=zc,Oet=[0,1,0],Ret=[0,1,[0,1,0]],Qet=We,Cet=zc,Het=[0,1,[0,1,[0,1,0]]],Vet=Yp,Let=zc,zet=[0,3,0],Set=[0,1,[0,1,0]],Zet=gO,Wet=zc,Xet=[0,1,[0,1,[0,3,0]]],Jet=Gh,Yet=zc,rat=[0,1,0],nat=T,tat=zc,eat=[0,1,0],aat=[0,1,0],uat=CK,fat=zc,iat=[0,1,0],cat=[0,1,0],vat=za,oat=zc,Aat=[0,0,0],sat=[0,1,0],bat=KA,lat=zc,Bat=[0,1,0],jat=[0,1,0],kat=jq,pat=zc,mat=[0,1,0],dat=[0,1,0],_at=sp,hat=zc,xat=[0,1,0],yat=[0,1,0],wat=xE,gat=zc,qat=[0,3,0],Iat=[0,3,[0,3,0]],Dat=oy,Eat=zc,Nat=[0,2,0],Tat=[0,2,[0,2,0]],Fat=LF,Mat=zc,Pat=[0,3,0],Uat=[0,3,0],Gat=As,$at=zc,Kat=[0,3,0],Oat=[0,3,0],Rat=Fi,Qat=zc,Cat=[0,3,0],Hat=[0,3,0],Vat=Eu,Lat=zc,zat=[0,3,0],Sat=[0,3,0],Zat=sr,Wat=zc,Xat=[0,3,0],Jat=[0,3,0],Yat=Wx,rut=zc,nut=[0,3,0],tut=[0,3,0],eut=$D,aut=zc,uut=[0,3,0],fut=[0,3,[0,3,0]],iut=gw,cut=zc,vut=[0,3,0],out=[0,3,0],Aut=Ro,sut=zc,but=[0,3,0],lut=[0,3,0],But=$n,jut=zc,kut=[0,3,0],put=[0,3,[0,3,0]],mut=It,dut=zc,_ut=[0,2,0],hut=[0,2,[0,2,0]],xut=Nr,yut=zc,wut=[0,1,0],gut=[0,3,[0,1,[0,1,0]]],qut=GM,Iut=zc,Dut=[0,0,0],Eut=[0,0,0],Nut=cx,Tut=zc,Fut=[0,0,0],Mut=[0,0,0],Put=Ng,Uut=zc,Gut=[0,0,0],$ut=[0,0,0],Kut=Yy,Out=zc,Rut=[0,0,0],Qut=[0,0,0],Cut=Zd,Hut=zc,Vut=[0,0,0],Lut=[0,0,0],zut=CG,Sut=zc,Zut=[0,0,0],Wut=[0,0,0],Xut=K_,Jut=zc,Yut=[0,1,0],rft=rd,nft=zc,tft=[0,1,0],eft=um,aft=zc,uft=[0,1,0],fft=[0,1,0],ift=Vt,cft=zc,vft=[0,1,0],oft=mc,Aft=zc,sft=[0,1,0],bft=VI,lft=zc,Bft=[0,1,0],jft=[0,1,[0,1,0]],kft=am,pft=zc,mft=[0,1,0],dft=[0,1,[0,1,0]],_ft=zu,hft=zc,xft=[0,1,0],yft=b$,wft=zc,gft=QG,qft=zc,Ift=dr,Dft=zc,Eft=[0,0,0],Nft=nj,Tft=zc,Fft=[0,1,[0,1,[0,1,0]]],Mft=_f,Pft=zc,Uft=[0,0,0],Gft=Aa,$ft=zc,Kft=[0,1,[0,1,0]],Oft=Gl,Rft=zc,Qft=[0,0,0],Cft=UI,Hft=zc,Vft=[0,1,0],Lft=xO,zft=zc,Sft=[0,1,0],Zft=EI,Wft=zc,Xft=[0,1,0],Jft=[0,1,0],Yft=Sc,rit=zc,nit=[0,0,0],tit=[0,1,0],eit=Ew,ait=zc,uit=[0,1,0],fit=Up,iit=zc,cit=[0,1,0],vit=La,oit=zc,Ait=[0,1,0],sit=Mp,bit=zc,lit=[0,1,0],Bit=TO,jit=zc,kit=[0,Nv,1089,60],pit=[0,Nv,1084,56],mit=[0,Nv,LT,52],dit=[0,Nv,WI,50],_it=[0,Nv,V_,6],hit=[0,Nv,1002,6],xit=[0,Nv,Xe,6],yit=lC(0,0,0),wit=[0,[11,Gn,[4,0,0,0,0]],bu],git=[21,[0,2]],qit=lC($K,GK,0),Iit=lC(0,0,0),Dit=Ke,Eit=uA,Nit=lC(1,0,0),Tit=lC(0,0,0),Fit=lC(0,0,0),Mit=lC(0,0,0),Pit=lC(0,0,0),Uit=lC(0,0,0),Git=lC(0,0,0),$it=lC(0,0,0),Kit=lC(0,0,0),Oit=lC(1,0,0),Rit=lC(0,0,0),Qit=lC(1,0,0),Cit=[21,[1,1]],Hit=[21,[1,1]],Vit=[21,[1,1]],Lit=[21,[1,1]],zit=[21,[1,1]],Sit=[0,Nv,817,14],Zit=MR,Wit=UM,Xit=zc,Jit=[0,Nv,722,9],Yit=[0,Nv,718,4],rct=[1,0],nct=[0,[11,yi,[2,0,[11,Ce,0]]],pM],tct=[0,Nv,583,4],ect=[0,[11,hT,0],hT],act=[0,[11,Id,0],Id],uct=[0,[11,VU,0],VU],fct=[0,Nv,Fq,6],ict=[0,Nv,$o,13],cct=[0,Nv,Kw,13],vct=lC(0,0,64),oct=lC(0,Ld,0),Act=lC(0,64,0),sct=lC(4,0,0),bct=lC(0,0,WT),lct=lC(0,dD,0),Bct=lC(0,WT,0),jct=lC(12,0,0),kct=lC(0,32,0),pct=lC(0,131072,0),mct=[0,Nv,Jt,12],dct=lC(2,0,0),_ct=lC(0,0,0),hct=[0,Nv,hh,12],xct=lC(0,0,c),yct=lC(0,0,0),wct=lC(0,0,0),gct=lC(1,0,0),qct=lC(0,0,0),Ict=[13,[0,0,0,lC(0,0,0),0]],Dct=[14,[0,0,0,lC(0,0,0),0]],Ect=lC(8,0,0),Nct=lC(1,0,0),Tct=lC(1,0,0),Fct=lC(ts,0,0),Mct=lC(16,0,0),Pct=lC(ts,0,0),Uct=Yr,Gct=wq,$ct=zc,Kct=Yr,Oct=wq,Rct=zc,Qct=tQ,Cct=tQ,Hct=tQ,Vct=tQ,Lct=[0,[11,fP,[4,3,0,0,0]],Ig],zct=za,Sct=zc,Zct=[1,6],Wct=[18,[0,0]],Xct=[20,[0,0]],Jct=[0,dl,11379,4],Yct=HF,rvt=[2,5],nvt=IR,tvt=fP,evt=Xx,avt=qP,uvt=Ui,fvt=IR,ivt=fP,cvt=Xx,vvt=qP,ovt=Ui,Avt=[1,6],svt=[0,dl,11213,25],bvt=[0,dl,11230,9],lvt=[0,dl,11242,11],Bvt=LG,jvt=[0,dl,11249,9],kvt=[0,dl,11270,9],pvt=IR,mvt=fP,dvt=hU,_vt=[17,[0,0]],hvt=[0,[11,Lx,[4,3,0,0,[11,eG,0]]],oO],xvt=[0,0,0],yvt=qa,wvt=[0,1,0],gvt=[0,Ke,0],qvt=CU,Ivt=[1,6],Dvt=[0,0,0],Evt=[0,Ke,0],Nvt=Ck,Tvt=[2,3],Fvt=[2,4],Mvt=U,Pvt=tQ,Uvt=[2,4],Gvt=[2,3],$vt=[2,4],Kvt=[2,5],Ovt=[2,5],Rvt=U,Qvt=tQ,Cvt=[2,5],Hvt=[21,[1,1]],Vvt=[2,5],Lvt=[1,6],zvt=[2,5],Svt=[2,14],Zvt=U,Wvt=[21,[0,2]],Xvt=tQ,Jvt=[21,[0,2]],Yvt=[1,6],rot=[1,6],not=[0,1,0],tot=[0,Ke,0],eot=cs,aot=[1,11],uot=rv,fot=Ov,iot=zc,cot=[21,[3,2]],vot=[21,[1,0]],oot=[0,3,0],Aot=[0,0,0],sot=[0,Ke,0],bot=Cl,lot=[2,8],Bot=[2,9],jot=U,kot=tQ,pot=[2,9],mot=[2,9],dot=[2,8],_ot=[2,9],hot=[2,10],xot=[2,10],yot=U,wot=tQ,got=[2,10],qot=[2,9],Iot=[21,[1,0]],Dot=[2,10],Eot=[1,11],Not=[1,11],Tot=U,Fot=[21,[0,2]],Mot=tQ,Pot=[2,6],Uot=[1,11],Got=[21,[3,2]],$ot=[1,11],Kot=B$,Oot=zc,Rot=[21,[1,5]],Qot=[1,11],Cot=[21,[2,5]],Hot=[21,[3,4]],Vot=uj,Lot=[2,5],zot=uj,Sot=KR,Zot=Oe,Wot=[18,[0,7]],Xot=GM,Jot=zc,Yot=[21,[3,4]],rAt=GM,nAt=zc,tAt=$G,eAt=Nm,aAt=Sc,uAt=[2,3],fAt=[2,3],iAt=[1,6],cAt=[2,5],vAt=[2,4],oAt=[2,5],AAt=[2,8],sAt=[1,11],bAt=[2,10],lAt=CG,BAt=Zd,jAt=K_,kAt=[1,6],pAt=[19,[1,0]],mAt=[1,6],dAt=[1,6],_At=[19,[0,0]],hAt=[2,5],xAt=[2,5],yAt=[2,4],wAt=[2,4],gAt=cx,qAt=Ng,IAt=[2,8],DAt=[2,8],EAt=[19,[1,0]],NAt=[1,11],TAt=[1,11],FAt=[19,[0,0]],MAt=[2,10],PAt=[2,10],UAt=[2,9],GAt=[2,9],$At=[2,3],KAt=[2,3],OAt=Yy,RAt=[2,9],QAt=[2,5],CAt=[0,2],HAt=[2,5],VAt=[0,2],LAt=[1,6],zAt=[1,6],SAt=[1,6],ZAt=[1,6],WAt=[2,9],XAt=[2,9],JAt=[2,3],YAt=[2,3],rst=[19,[1,1]],nst=[1,6],tst=[1,6],est=[19,[0,1]],ast=[2,5],ust=[2,5],fst=[2,4],ist=[2,4],cst=KA,vst=zc,ost=[2,5],Ast=[2,8],sst=[2,8],bst=[19,[1,1]],lst=[1,11],Bst=[1,11],jst=[19,[0,1]],kst=[2,10],pst=[2,10],mst=[19,[3,2]],dst=gw,_st=zc,hst=$D,xst=zc,yst=sr,wst=zc,gst=Wx,qst=zc,Ist=[20,[3,5]],Dst=$n,Est=zc,Nst=[19,[3,3]],Tst=Ro,Fst=zc,Mst=Fi,Pst=zc,Ust=[20,[3,6]],Gst=Eu,$st=zc,Kst=[19,[3,6]],Ost=As,Rst=zc,Qst=[19,[3,5]],Cst=GM,Hst=zc,Vst=Sg,Lst=[1,6],zst=[1,6],Sst=[0,2],Zst=[0,3],Wst=[19,[3,4]],Xst=[20,[3,4]],Jst=[19,[3,1]],Yst=[19,[0,2]],rbt=[2,5],nbt=[2,5],tbt=[19,[0,2]],ebt=[2,4],abt=[2,4],ubt=[2,5],fbt=[1,6],ibt=[2,5],cbt=bp,vbt=[19,[0,2]],obt=[2,8],Abt=[2,8],sbt=[19,[1,2]],bbt=[1,11],lbt=[1,11],Bbt=[19,[0,2]],jbt=[2,10],kbt=[2,10],pbt=[19,[0,2]],mbt=[2,9],dbt=[2,9],_bt=[19,[0,2]],hbt=[2,3],xbt=[2,3],ybt=[19,[1,2]],wbt=[1,6],gbt=[1,6],qbt=qv,Ibt=[1,6],Dbt=[1,6],Ebt=[1,6],Nbt=[1,6],Tbt=[1,6],Fbt=[1,6],Mbt=[1,6],Pbt=[2,5],Ubt=[0,dl,12035,4],Gbt=[17,[1,0]],$bt=[2,5],Kbt=lo,Obt=[2,5],Rbt=[2,5],Qbt=bk,Cbt=zc,Hbt=[1,6],Vbt=qv,Lbt=[1,6],zbt=[1,6],Sbt=[1,6],Zbt=[2,5],Wbt=[2,5],Xbt=[1,6],Jbt=[1,6],Ybt=[1,6],rlt=[2,14],nlt=fp,tlt=zc,elt=[2,8],alt=$G,ult=Nm,flt=Ew,ilt=$G,clt=Nm,vlt=hO,olt=ha,Alt=PB,slt=[0,2],blt=PB,llt=[0,4],Blt=PB,jlt=[21,[0,2]],klt=[21,[0,2]],plt=lC(32,0,0),mlt=[0,8],dlt=[1,6],_lt=[1,6],hlt=[1,6],xlt=[1,6],ylt=[1,6],wlt=[1,6],glt=[1,6],qlt=[1,6],Ilt=[1,6],Dlt=[1,6],Elt=[1,6],Nlt=[1,6],Tlt=[1,6],Flt=[1,6],Mlt=[1,6],Plt=[1,6],Ult=XA,Glt=NE,$lt=zc,Klt=[21,[1,1]],Olt=[1,6],Rlt=CK,Qlt=zc,Clt=uj,Hlt=[0,dl,12815,24],Vlt=Pp,Llt=[0,dl,12879,25],zlt=oE,Slt=Xx,Zlt=qP,Wlt=Ui,Xlt=[0,[11,Wv,0],Wv],Jlt=w_,Ylt=zc,rBt=[2,14],nBt=[2,14],tBt=zc,eBt=[2,14],aBt=[18,[0,0]],uBt=[17,[0,0]],fBt=[2,3],iBt=[2,4],cBt=[2,5],vBt=[2,6],oBt=[1,6],ABt=[2,8],sBt=[2,9],bBt=[2,10],lBt=[2,10],BBt=[2,11],jBt=[1,11],kBt=[2,14],pBt=[0,0],mBt=Lc,dBt=[0,dl,13056,13],_Bt=N,hBt=xN,xBt=Ti,yBt=tq,wBt=oq,gBt=[0,0],qBt=[0,dl,13210,13],IBt=[0,dl,13231,4],DBt=[0,dl,13254,14],EBt=[0,[11,Cg,[2,0,[11,cc,0]]],hf],NBt=[0,[11,rU,[2,0,[11,Rq,[2,0,[11,jy,0]]]]],QP],TBt=[0,[11,mb,0],mb],FBt=[0,[11,Jv,0],Jv],MBt=[0,[11,uM,0],uM],PBt=[0,[11,Yi,[2,0,[11,cc,0]]],tr],UBt=[0,dl,13304,25],GBt=[0,dl,13368,9],$Bt=[0,dl,13383,2],KBt=[0,dl,13396,19],OBt=[0,dl,13403,87],RBt=[0,dl,13391,61],QBt=[0,dl,13417,13],CBt=[0,dl,13423,12],HBt=[0,dl,13434,77],VBt=[0,[11,Hq,0],Hq],LBt=[0,dl,13439,2],zBt=[0,dl,13440,2],SBt=[0,dl,13441,2],ZBt=[0,dl,13442,2],WBt=[0,dl,13443,2],XBt=[0,[11,es,0],es],JBt=jU,YBt=[0,dl,13459,11],rjt=[0,dl,13473,13],njt=[0,dl,13472,15],tjt=BO,ejt=OM,ajt=On,ujt=_c,fjt=aa,ijt=VT,cjt=[0,0,0],vjt=ME,ojt=Ip,Ajt=Vw,sjt=Sg,bjt=lC(1,0,0),ljt=[0,dl,13562,8],Bjt=lt,jjt=jU,kjt=zc,pjt=Si,mjt=Si,djt=Hc,_jt=NR,hjt=zc,xjt=jU,yjt=go,wjt=XN,gjt=ad,qjt=[0,dl,11097,13],Ijt=[0,0,3,2,3,2],Djt=[0,3,5,4,5,4],Ejt=[0,1,7,6,7,6],Njt=[0,2,9,8,9,8],Tjt=[18,[3,0]],Fjt=[18,[2,0]],Mjt=[18,[1,0]],Pjt=[18,[0,0]],Ujt=ii,Gjt=[0,0],$jt=fl,Kjt=[18,[0,2]],Ojt=[20,[0,2]],Rjt=fl,Qjt=[18,[0,2]],Cjt=[20,[0,2]],Hjt=tO,Vjt=[18,[0,2]],Ljt=fl,zjt=[2,10],Sjt=[20,[0,3]],Zjt=fl,Wjt=[21,[0,2]],Xjt=[21,[1,0]],Jjt=[21,[1,0]],Yjt=[18,[0,2]],rkt=[20,[0,2]],nkt=[18,[0,9]],tkt=[20,[0,7]],ekt=[18,[0,2]],akt=[20,[0,7]],ukt=[18,[0,8]],fkt=[18,[0,6]],ikt=tO,ckt=[18,[0,2]],vkt=[20,[1,1]],okt=[18,[1,9]],Akt=fl,skt=[21,[0,2]],bkt=[21,[1,1]],lkt=[21,[1,1]],Bkt=[18,[0,2]],jkt=[20,[0,2]],kkt=[18,[0,9]],pkt=[20,[0,2]],mkt=zE,dkt=zE,_kt=UG,hkt=Sk,xkt=zE,ykt=[0,0,0],wkt=[0,[0,Ke,0],[0,Ro,0]],gkt=oy,qkt=[20,[1,0]],Ikt=UG,Dkt=Sk,Ekt=[20,[1,2]],Nkt=zE,Tkt=[20,[1,4]],Fkt=[20,[1,6]],Mkt=oy,Pkt=[20,[1,12]],Ukt=Ke,Gkt=Ro,$kt=tO,Kkt=[20,[0,2]],Okt=zE,Rkt=zE,Qkt=UG,Ckt=Sk,Hkt=zE,Vkt=[20,[0,3]],Lkt=[0,0,0],zkt=[0,[0,Ke,0],[0,Ro,0]],Skt=oy,Zkt=[20,[1,0]],Wkt=UG,Xkt=[20,[1,1]],Jkt=Sk,Ykt=[20,[1,2]],rpt=zE,npt=[20,[1,3]],tpt=[20,[1,5]],ept=Ro,apt=oy,upt=tO,fpt=[18,[1,2]],ipt=lC(0,0,0),cpt=[20,[1,11]],vpt=[20,[3,0]],opt=[20,[3,1]],Apt=[20,[3,2]],spt=[20,[3,3]],bpt=It,lpt=zc,Bpt=oy,jpt=zc,kpt=[20,[2,0]],ppt=[20,[2,1]],mpt=[20,[2,2]],dpt=[20,[2,3]],_pt=Nr,hpt=zc,xpt=LF,ypt=zc,wpt=[20,[1,7]],gpt=[20,[1,8]],qpt=[20,[1,9]],Ipt=[20,[1,10]],Dpt=[20,[1,13]],Ept=[20,[1,14]],Npt=[20,[1,0]],Tpt=[20,[1,1]],Fpt=[20,[1,2]],Mpt=[20,[0,7]],Ppt=[20,[0,8]],Upt=[20,[0,9]],Gpt=[20,[0,10]],$pt=[20,[0,0]],Kpt=[20,[0,1]],Opt=Sk,Rpt=[0,0,0],Qpt=[0,[0,uQ,0],[0,rv,0]],Cpt=[0,0,0],Hpt=[0,[0,Ke,0],[0,Ro,0]],Vpt=oy,Lpt=UG,zpt=Sk,Spt=[0,0,0],Zpt=[0,[0,Ke,0],[0,Ro,0]],Wpt=oy,Xpt=UG,Jpt=[20,[0,13]],Ypt=[20,[0,14]],rmt=[20,[0,11]],nmt=[20,[0,5]],tmt=[20,[0,12]],emt=[20,[0,6]],amt=[20,[0,4]],umt=du,fmt=pK,imt=fl,cmt=[0,0,0],vmt=[0,[0,uQ,0],[0,rv,0]],omt=fl,Amt=[0,0,0],smt=[0,[0,uQ,0],[0,rv,0]],bmt=[20,[0,9]],lmt=fl,Bmt=[21,[0,2]],jmt=[21,[1,1]],kmt=[21,[1,1]],pmt=[0,0,0],mmt=[0,[0,uQ,0],[0,rv,0]],dmt=fl,_mt=[21,[0,2]],hmt=[21,[1,0]],xmt=[21,[1,0]],ymt=[0,0,0],wmt=[0,[0,uQ,0],[0,rv,0]],gmt=[20,[1,9]],qmt=lC(1,0,0),Imt=[17,[1,0]],Dmt=lC(0,mj,Ft),Emt=fl,Nmt=[0,1,0],Tmt=[0,[0,uQ,1],[0,rv,1]],Fmt=[18,[1,8]],Mmt=lC(hq,$K,Ft),Pmt=[20,[1,2]],Umt=lC(64,0,0),Gmt=[19,[1,0]],$mt=[18,[1,9]],Kmt=lC(64,0,0),Omt=[17,[1,0]],Rmt=lC(1,0,0),Qmt=lC(1,0,0),Cmt=[17,[1,0]],Hmt=[18,[1,9]],Vmt=lC(64,0,0),Lmt=[20,[1,0]],zmt=[19,[1,0]],Smt=[19,[1,0]],Zmt=[17,[1,0]],Wmt=[20,[1,8]],Xmt=lC(62,0,0),Jmt=lC(62,0,0),Ymt=fl,rdt=[0,1,0],ndt=[0,[0,uQ,1],[0,rv,1]],tdt=[18,[1,8]],edt=lC(Do,$K,Ft),adt=[20,[1,2]],udt=lC(63,0,0),fdt=[19,[1,0]],idt=[20,[1,9]],cdt=lC(1,0,0),vdt=[18,[1,9]],odt=lC(64,0,0),Adt=[17,[1,0]],sdt=lC(1,0,0),bdt=lC(1,0,0),ldt=[17,[1,0]],Bdt=[20,[1,7]],jdt=lC(1,0,0),kdt=[18,[1,0]],pdt=lC($K,$K,Ft),mdt=lC(1,0,0),ddt=[17,[1,0]],_dt=[18,[1,9]],hdt=lC(65,0,0),xdt=[20,[1,0]],ydt=[19,[1,0]],wdt=[20,[1,9]],gdt=lC(1,0,0),qdt=[19,[1,0]],Idt=[20,[1,9]],Ddt=lC(1,0,0),Edt=[17,[1,0]],Ndt=[20,[1,8]],Tdt=lC(63,0,0),Fdt=[20,[1,9]],Mdt=lC(1,0,0),Pdt=lC(63,0,0),Udt=[20,[1,9]],Gdt=lC(1,0,0),$dt=[20,[0,1]],Kdt=[20,[1,1]],Odt=lC(0,0,0),Rdt=lC(0,0,AM),Qdt=[0,1,0],Cdt=[0,Ke,1],Hdt=YG,Vdt=[1,11],Ldt=[1,11],zdt=[19,[3,0]],Sdt=[19,[2,0]],Zdt=[0,0,0],Wdt=[0,Ke,0],Xdt=lC($K,$K,Ft),Jdt=[20,[0,9]],Ydt=id,r_t=du,n_t=Ao,t_t=[2,10],e_t=ho,a_t=nO,u_t=[0,0,0],f_t=[0,w$,0],i_t=$O,c_t=ho,v_t=[2,10],o_t=ou,A_t=nO,s_t=[0,0,0],b_t=[0,Re,0],l_t=$O,B_t=ou,j_t=s$,k_t=nO,p_t=[0,[0,EN,1],[0,J,1]],m_t=s$,d_t=pT,__t=nO,h_t=pT,x_t=Ue,y_t=nO,w_t=[0,[0,UN,1],[0,Jo,1]],g_t=Ue,q_t=[0,dl,10394,11],I_t=[0,dl,10366,6],D_t=[1,0],E_t=[0,[11,gs,0],gs],N_t=[0,[11,Ud,[2,0,0]],cy],T_t=wD,F_t=[0,1],M_t=my,P_t=[0,1],U_t=[0,1],G_t=ff,$_t=ss,K_t=[0,0],O_t=[0,0],R_t=[0,dl,10059,11],Q_t=mu,C_t=vj,H_t=Kq,V_t=Jc,L_t=Fp,z_t=QA,S_t=ih,Z_t=[0,[11,po,[2,0,[11,yE,0]]],uh],W_t=[0,[11,TF,[2,0,0]],mN],X_t=Ww,J_t=vj,Y_t=Kq,rht=xl,nht=Jc,tht=my,eht=[0,[0,zr,0],0],aht=Ww,uht=my,fht=my,iht=lt,cht=$i,vht=VN,oht=[0,[0,zr,0],0],Aht=[0,[0,zr,0],0],sht=y_,bht=[0,dl,9827,42],lht=[0,dl,9790,13],Bht=[0,dl,9822,11],jht=[0,dl,9749,6],kht=[0,1],pht=[0,1],mht=[0,dl,9701,13],dht=[0,dl,9687,13],_ht=[0,[0,hU,0],0],hht=Jx,xht=Rp,yht=[0,dl,9641,11],wht=[0,dl,9627,11],ght=[0,dl,9622,11],qht=[0,dl,9610,11],Iht=[0,dl,9582,14],Dht=Wh,Eht=wq,Nht=zc,Tht=wq,Fht=zc,Mht=[0,[11,nf,[2,0,[11,Qd,0]]],Ko],Pht=[0,[11,nf,[2,0,[11,MN,0]]],Gj],Uht=[0,[11,nf,[2,0,[11,Qc,0]]],fF],Ght=[0,[11,Yw,[2,0,[12,10,0]]],RN],$ht=[0,dl,9424,14],Kht=[0,[11,Yw,[2,0,[12,10,0]]],RN],Oht=[0,dl,9263,26],Rht=[0,dl,9302,7],Qht=[21,[2,5]],Cht=[21,[3,4]],Hht=[0,dl,9299,7],Vht=[0,dl,9313,7],Lht=[0,dl,9340,6],zht=[0,[11,h_,[2,0,[11,TP,[2,0,[12,10,0]]]]],vd],Sht=[0,dl,9345,6],Zht=[0,[11,pg,[2,0,[11,Zp,[2,0,[11,TA,0]]]]],Um],Wht=iB,Xht=vR,Jht=Vm,Yht=Ql,rxt=[0,[11,O_,[4,0,0,0,0]],ei],nxt=eA,txt=WF,ext=[0,0,0],axt=[0,3,0],uxt=[0,2,0],fxt=[0,1,0],ixt=[0,0,0],cxt=rD,vxt=[0,0,0],oxt=gK,Axt=gK,sxt=[0,dl,9141,11],bxt=lC($K,$K,Ft),lxt=lC(0,0,0),Bxt=CR,jxt=[20,[1,0]],kxt=lC($K,$K,Ft),pxt=Od,mxt=Sh,dxt=KR,_xt=qa,hxt=Wd,xxt=[20,[1,0]],yxt=[18,[1,7]],wxt=lC(8,0,0),gxt=[20,[1,0]],qxt=lC(4,0,0),Ixt=[17,[1,0]],Dxt=Wd,Ext=bk,Nxt=eq,Txt=[18,[1,7]],Fxt=[20,[1,0]],Mxt=lC(4,0,0),Pxt=lC(0,0,0),Uxt=[0,[11,"higher stable memory version (expected 1..",[2,0,[12,41,0]]],"higher stable memory version (expected 1..%s)"],Gxt=[18,[0,5]],$xt=lC(1,0,0),Kxt=[17,[0,0]],Oxt=lC(0,0,0),Rxt=[17,[1,0]],Qxt=[17,[1,0]],Cxt=lC(0,0,0),Hxt=nO,Vxt=Od,Lxt=eq,zxt=Wd,Sxt=lC(0,0,0),Zxt=[21,[0,2]],Wxt=lC(1,0,0),Xxt=lC(4,0,0),Jxt=lC(24,0,0),Yxt=lC(4,0,0),ryt=lC(4,0,0),nyt=lC(0,0,0),tyt=lC(12,0,0),eyt=lC(0,0,0),ayt=[17,[1,0]],uyt=k$,fyt=zc,iyt=[20,[0,0]],cyt=[21,[0,2]],vyt=[20,[1,1]],oyt=[21,[0,2]],Ayt=lC(4,0,0),syt=[20,[1,1]],byt=ty,lyt=zc,Byt=Od,jyt=nO,kyt=FP,pyt=zc,myt=[20,[1,0]],dyt=lC(4,0,0),_yt=[21,[1,1]],hyt=Uy,xyt=zc,yyt=Od,wyt=Ed,gyt=zc,qyt=cw,Iyt=zc,Dyt=[14,[0,0,0,lC(0,0,0),0]],Eyt=$j,Nyt=hN,Tyt=zc,Fyt=hN,Myt=zc,Pyt=Uy,Uyt=zc,Gyt=Ad,$yt=zc,Kyt=ND,Oyt=zM,Ryt=[20,[0,8]],Qyt=[20,[0,8]],Cyt=[0,1],Hyt=[20,[0,8]],Vyt=[20,[0,0]],Lyt=$j,zyt=[20,[1,0]],Syt=[21,[1,1]],Zyt=zv,Wyt=Bc,Xyt=BF,Jyt=[0,1],Yyt=[20,[0,7]],rwt=[18,[0,9]],nwt=[20,[0,7]],twt=[18,[0,1]],ewt=[18,[0,1]],awt=[21,[0,2]],uwt=fg,fwt=[17,[1,0]],iwt=lC(32,0,0),cwt=YE,vwt=Od,owt=Od,Awt=a,swt=[2,15],bwt=[3,1,0,0],lwt=ZO,Bwt=lC(0,0,0),jwt=[0,0,[0,0,0]],kwt=[0,ax,0],pwt=[14,[0,1,0,lC(0,0,0),0]],mwt=ND,dwt=Sh,_wt=Lw,hwt=[18,[0,2]],xwt=[20,[0,1]],ywt=KG,wwt=gl,gwt=[0,1],qwt=mG,Iwt=vF,Dwt=[14,[0,3,0,lC(0,0,0),0]],Ewt=[14,[0,2,0,lC(0,0,0),0]],Nwt=[14,[0,1,0,lC(0,0,0),0]],Twt=[14,[0,0,0,lC(0,0,0),[0,1]]],Fwt=Ly,Mwt=[2,15],Pwt=[3,1,0,0],Uwt=bv,Gwt=ki,$wt=[0,0,[0,0,0]],Kwt=[0,[0,ax,0],[0,LI,0],[0,QM,0]],Owt=Km,Rwt=Aq,Qwt=b,Cwt=$w,Hwt=LK,Vwt=qt,Lwt=zc,zwt=qa,Swt=bc,Zwt=zc,Wwt=[21,[1,1]],Xwt=Od,Jwt=ax,Ywt=qa,rgt=qu,ngt=dx,tgt=zc,egt=dx,agt=zc,ugt=Od,fgt=Mq,igt=ND,cgt=qu,vgt=uB,ogt=Gd,Agt=[18,[0,3]],sgt=[0,[11,IF,[2,0,[11,eK,0]]],Fh],bgt=qt,lgt=zc,Bgt=qa,jgt=bc,kgt=zc,pgt=jk,mgt=lC(0,0,0),dgt=XF,_gt=[2,19],hgt=ic,xgt=Km,ygt=qD,wgt=qu,ggt=[18,[0,0]],qgt=tf,Igt=Sh,Dgt=Lw,Egt=[18,[0,2]],Ngt=oh,Tgt=Vi,Fgt=qG,Mgt=[2,19],Pgt=[18,[0,8]],Ugt=[20,[0,0]],Ggt=[18,[0,8]],$gt=[20,[0,0]],Kgt=[18,[0,8]],Ogt=V$,Rgt=Od,Qgt=ax,Cgt=SO,Hgt=zc,Vgt=Od,Lgt=ax,zgt=MG,Sgt=[18,[0,7]],Zgt=Od,Wgt=ax,Xgt=rv,Jgt=$R,Ygt=[0,dl,7746,15],rqt=Sn,nqt=zc,tqt=[18,[0,0]],eqt=ZP,aqt=dM,uqt=yR,fqt=[2,2],iqt=LU,cqt=[2,19],vqt=fo,oqt=qa,Aqt=Od,sqt=ax,bqt=qa,lqt=qu,Bqt=qa,jqt=qu,kqt=qa,pqt=[2,0],mqt=oK,dqt=g,_qt=BD,hqt=[18,[0,7]],xqt=lC(1,0,0),yqt=[0,0,0],wqt=Gc,gqt=Sn,qqt=zc,Iqt=[20,[0,0]],Dqt=[20,[0,2]],Eqt=Gw,Nqt=zc,Tqt=gn,Fqt=Mw,Mqt=zv,Pqt=Kp,Uqt=ec,Gqt=tG,$qt=Wq,Kqt=qa,Oqt=er,Rqt=om,Qqt=[0,[0,KR,0],[0,ek,0]],Cqt=zv,Hqt=Kp,Vqt=ec,Lqt=tG,zqt=sn,Sqt=Po,Zqt=[18,[0,0]],Wqt=[20,[0,0]],Xqt=jT,Jqt=[18,[0,3]],Yqt=bv,rIt=[0,0,[0,0,0]],nIt=[0,ax,0],tIt=TB,eIt=zc,aIt=fq,uIt=[0,0,0],fIt=[0,[0,yp,0],[0,"typtbl1",0],[0,"typtbl_end1",0],[0,"typtbl_size1",0],[0,hv,0],[0,Nc,0]],iIt=TB,cIt=Vv,vIt=zc,oIt=yp,AIt=j,sIt=zc,bIt=[0,[11,bo,[2,0,[12,10,0]]],qE],lIt=[0,dl,7069,12],BIt=[0,dl,7122,15],jIt=[0,dl,7127,18],kIt=[5,[2,3]],pIt=[0,dl,7156,8],mIt=[0,dl,7171,17],dIt=[0,dl,7183,13],_It=[0,dl,7093,6],hIt=O,xIt=[0,16],yIt=[0,17],wIt=[0,2],gIt=[0,3],qIt=[0,5],IIt=[0,6],DIt=[0,8],EIt=[0,4],NIt=[0,9],TIt=[0,10],FIt=[0,11],MIt=[0,12],PIt=[0,14],UIt=[0,13],GIt=[0,15],$It=[0,24],KIt=[0,hh],OIt=[0,7],RIt=[0,1],QIt=mi,CIt=[20,[1,1]],HIt=Fn,VIt=[18,[1,3]],LIt=[0,[0,Ct,0],[0,[0,et,1],0]],zIt=mi,SIt=rw,ZIt=lC($K,$K,Ft),WIt=[18,[1,3]],XIt=[20,[1,0]],JIt=[21,[1,1]],YIt=[20,[1,4]],rDt=[21,[1,1]],nDt=[20,[1,2]],tDt=[21,[1,1]],eDt=[21,[1,1]],aDt=_s,uDt=_s,fDt=d_,iDt=d_,cDt=Cj,vDt=Cj,oDt=Lp,ADt=Lp,sDt=VP,bDt=VP,lDt=YK,BDt=YK,jDt=kN,kDt=kN,pDt=ye,mDt=ye,dDt=Qm,_Dt=Qm,hDt=nN,xDt=nN,yDt=$c,wDt=$c,gDt=cB,qDt=cB,IDt=cB,DDt=$c,EDt=nN,NDt=Qm,TDt=ye,FDt=kN,MDt=Lp,PDt=VP,UDt=Cj,GDt=lC(0,0,0),$Dt=YK,KDt=d_,ODt=_s,RDt=YP,QDt=lG,CDt=Fm,HDt=iE,VDt=YP,LDt=Fm,zDt=lG,SDt=iE,ZDt=Od,WDt=Od,XDt=[14,[0,0,0,lC(0,0,0),[0,0]]],JDt=[14,[0,0,0,lC(0,0,0),0]],YDt=$j,rEt=[20,[0,0]],nEt=ch,tEt=[18,[0,0]],eEt=[20,[0,0]],aEt=[20,[0,8]],uEt=Jl,fEt=[0,0,0],iEt=[0,[0,mv,0],0],cEt=Pq,vEt=Pq,oEt=ie,AEt=ie,sEt=[0,[0,by,0],[0,[0,Od,0],0]],bEt=_E,lEt=_E,BEt=[0,0,0],jEt=n_,kEt=n_,pEt=[0,[0,"new_hp",0],0],mEt=[0,0,0],dEt=[0,[0,Sh,1],[0,[0,sg,1],[0,[0,i,1],0]]],_Et=vO,hEt=FN,xEt=B_,yEt=vO,wEt=[0,[0,nO,1],[0,[0,Sh,1],[0,[0,i,1],0]]],gEt=rf,qEt=EO,IEt=B_,DEt=rf,EEt=[0,1,0],NEt=[0,[0,zt,1],0],TEt=RB,FEt=RB,MEt=[0,1,0],PEt=uD,UEt=uD,GEt=[0,0,0],$Et=j_,KEt=j_,OEt=[0,[0,bk,0],0],REt=Ze,QEt=Ze,CEt=mi,HEt=mi,VEt=Zh,LEt=Zh,zEt=lC(0,0,0),SEt=Zh,ZEt=[0,[0,Sh,1],[0,cI,3]],WEt=th,XEt=[0,3,0],JEt=[0,3,0],YEt=[0,Sh,1],rNt=p,nNt=[0,[0,Sh,1],[0,cI,1]],tNt=gF,eNt=[0,1,0],aNt=[0,1,0],uNt=[0,Sh,1],fNt=ar,iNt=[0,[0,Sh,1],[0,cI,0]],cNt=U$,vNt=[0,0,0],oNt=[0,0,0],ANt=[0,Sh,1],sNt=wB,bNt=[0,[0,Sh,1],[0,cI,0]],lNt=$r,BNt=[0,0,0],jNt=[0,0,0],kNt=[0,Sh,1],pNt=hG,mNt=[0,[0,Sh,1],[0,cI,0]],dNt=sc,_Nt=[0,0,0],hNt=[0,0,0],xNt=[0,Sh,1],yNt=Fc,wNt=[0,[0,Sh,1],[0,KR,0]],gNt=gM,qNt=[0,0,0],INt=[0,0,0],DNt=[0,[0,Sh,1],[0,Od,0]],ENt=fj,NNt=i,TNt=[20,[0,7]],FNt=[18,[1,5]],MNt=lC(0,0,0),PNt=[0,1,0],UNt=[0,1,0],GNt=[0,CR,1],$Nt=kB,KNt=[0,1,0],ONt=[0,1,0],RNt=Cn,QNt=[18,[0,0]],CNt=T,HNt=zc,VNt=Od,LNt=[21,[1,1]],zNt=[21,[1,1]],SNt=[0,[0,Sh,1],[0,KR,0]],ZNt=cF,WNt=KR,XNt=[21,[1,1]],JNt=[21,[1,1]],YNt=[0,0,0],rTt=[0,[0,Sh,1],[0,Od,0]],nTt=tP,tTt=[14,[0,3,0,lC(0,0,0),0]],eTt=Yd,aTt=[13,[0,3,0,lC(0,0,0),0]],uTt=Yd,fTt=[14,[0,1,0,lC(0,0,0),0]],iTt=hi,cTt=[13,[0,1,0,lC(0,0,0),0]],vTt=hi,oTt=Wt,ATt=[13,[0,0,0,lC(0,0,0),[0,[0,1,1]]]],sTt=Wt,bTt=aF,lTt=[13,[0,0,0,lC(0,0,0),[0,[0,0,1]]]],BTt=aF,jTt=Mk,kTt=Mk,pTt=i,mTt=dU,dTt=e_,_Tt=[18,[1,2]],hTt=lC(0,0,0),xTt=[20,[1,0]],yTt=lC($K,$K,Ft),wTt=[18,[1,5]],gTt=[20,[1,0]],qTt=[0,1,0],ITt=[0,CR,1],DTt=Ap,ETt=sj,NTt=[18,[1,2]],TTt=lC(0,0,0),FTt=lC(1,0,0),MTt=[20,[1,12]],PTt=YM,UTt=[18,[1,3]],GTt=[20,[1,0]],$Tt=[0,[0,Sh,1],[0,i,1]],KTt=xr,OTt=i,RTt=of,QTt=[18,[1,4]],CTt=lC(0,0,0),HTt=[20,[1,1]],VTt=[0,1,0],LTt=[0,CR,1],zTt=Rl,STt=[14,[0,1,2,lC(0,0,0),0]],ZTt=[13,[0,1,2,lC(0,0,0),0]],WTt=lC(0,0,0),XTt=hi,JTt=Mk,YTt=$j,rFt=[21,[1,1]],nFt=[21,[1,1]],tFt=Jb,eFt=[0,Sh,1],aFt=[0,[11,"__stablemem_read_and_clear_",[2,0,0]],"__stablemem_read_and_clear_%s"],uFt=[14,[0,1,2,lC(0,0,0),0]],fFt=hi,iFt=Mk,cFt=[21,[1,1]],vFt=Jb,oFt=cI,AFt=[0,Sh,1],sFt=eE,bFt=[0,[11,Il,[2,0,[11,lw,[2,0,0]]]],$u],lFt=[21,[1,1]],BFt=Jb,jFt=[0,Sh,1],kFt=eE,pFt=[0,[11,Il,[2,0,[11,_l,[2,0,0]]]],bM],mFt=Vh,dFt=[18,[1,5]],_Ft=[20,[1,10]],hFt=[20,[1,0]],xFt=[21,[1,1]],yFt=sM,wFt=[18,[1,3]],gFt=[20,[1,1]],qFt=[21,[1,1]],IFt=[18,[0,7]],DFt=[0,[0,Sh,1],[0,i,0]],EFt=IG,NFt=vr,TFt=[18,[1,9]],FFt=[20,[1,10]],MFt=$g,PFt=$g,UFt=xs,GFt=xs,$Ft=lC(0,0,0),KFt=xs,OFt=$g,RFt=[0,[0,Sh,1],[0,sg,1],[0,i,1]],QFt=FN,CFt=FN,HFt=[0,[0,nO,1],[0,Sh,1],[0,i,1]],VFt=EO,LFt=EO,zFt=[21,[1,1]],SFt=[0,1,0],ZFt=YF,WFt=YF,XFt=pk,JFt=[21,[1,1]],YFt=lC($K,$K,Ft),rMt=[18,[0,0]],nMt=[0,1,0],tMt=[0,CR,1],eMt=Wk,aMt=Wk,uMt=[21,[0,2]],fMt=[21,[0,2]],iMt=lC(32,0,0),cMt=nO,vMt=[0,0,0],oMt=[0,va,0],AMt=sB,sMt=nO,bMt=[0,0,0],lMt=Pk,BMt=nO,jMt=[0,0,0],kMt=xu,pMt=nO,mMt=[0,0,0],dMt=[0,va,0],_Mt=Nq,hMt=[0,va,0],xMt=Vk,yMt=nO,wMt=[0,0,0],gMt=CT,qMt=va,IMt=Zo,DMt=pb,EMt=[13,[0,1,0,lC(8,0,0),0]],NMt=[17,[1,0]],TMt=[13,[0,1,0,lC(8,0,0),0]],FMt=[13,[0,1,0,lC(0,0,0),0]],MMt=[0,0,0],PMt=[0,Vx,0],UMt=Lj,GMt=xk,$Mt=ht,KMt=PN,OMt=bD,RMt=Ak,QMt=XB,CMt=qO,HMt=Yk,VMt=rE,LMt=OU,zMt=gp,SMt=kM,ZMt=OE,WMt=aq,XMt=OE,JMt=Gb,YMt=Uw,rPt=Lk,nPt=sF,tPt=[20,[0,8]],ePt=yT,aPt=GO,uPt=dc,fPt=QD,iPt=iG,cPt=E_,vPt=yT,oPt=dc,APt=Uj,sPt=GO,bPt=Hs,lPt=[18,[0,0]],BPt=QD,jPt=hK,kPt=[0,[11,lI,[2,0,0]],dA],pPt=[0,0,0],mPt=[0,[0,Aq,0],[0,b,0]],dPt=DN,_Pt=EA,hPt=qB,xPt=[0,[0,Mo,0],[0,i,0]],yPt=vT,wPt=[0,0,0],gPt=gu,qPt=Xh,IPt=zb,DPt=[0,0,0],EPt=gq,NPt=[18,[0,0]],TPt=sw,FPt=oE,MPt=[0,[0,Hl,1],[0,[0,Ou,2],[0,[0,te,3],[0,[0,Li,4],[0,[0,rj,5],[0,[0,vi,6],0]]]]]],PPt=nU,UPt=[0,0,0],GPt=LA,$Pt=_r,KPt=yG,OPt=Mr,RPt=Nw,QPt=lt,CPt=$i,HPt=as,VPt=TR,LPt=Op,zPt=Gg,SPt=QD,ZPt=yT,WPt=cf,XPt=iP,JPt=cn,YPt=cI,rUt=Br,nUt=st,tUt=Gx,eUt=VD,aUt=Td,uUt=rc,fUt=iP,iUt=Td,cUt=HU,vUt=Wo,oUt=Od,AUt=sm,sUt=JB,bUt=Em,lUt=bR,BUt=jI,jUt=nh,kUt=ey,pUt=Uf,mUt=Ku,dUt=bw,_Ut=je,hUt=bm,xUt=zD,yUt=[0,0,0],wUt=Kr,gUt=hK,qUt=E_,IUt=cp,DUt=[0,0,0],EUt=Cd,NUt=OM,TUt=jU,FUt=BO,MUt=HN,PUt=XT,UUt=R_,GUt=Yf,$Ut=Jh,KUt=ZT,OUt=jU,RUt=[0,dl,5388,4],QUt=Hi,CUt=Hi,HUt=VT,VUt=[0,dl,5376,4],LUt=X$,zUt=X$,SUt=RO,ZUt=aa,WUt=[0,dl,5363,4],XUt=G,JUt=G,YUt=_c,rGt=[0,dl,5351,4],nGt=cj,tGt=cj,eGt=On,aGt=[0,dl,5338,4],uGt=mF,fGt=mF,iGt=jU,cGt=[0,dl,5323,4],vGt=Ar,oGt=Ar,AGt=yI,sGt=FK,bGt=Nh,lGt=KR,BGt=[0,by,0],jGt=KE,kGt=kk,pGt=[0,[11,bB,[2,0,[11,yE,0]]],oF],mGt=Bu,dGt=df,_Gt=Bu,hGt=df,xGt=[14,[0,0,0,lC(16,0,0),[0,0]]],yGt=[14,[0,0,2,lC(12,0,0),0]],wGt=[14,[0,0,2,lC(8,0,0),0]],gGt=[14,[0,0,2,lC(4,0,0),0]],qGt=[14,[0,0,2,lC(0,0,0),0]],IGt=Ry,DGt=EK,EGt=[0,[0,Vx,0],[0,[0,Od,0],0]],NGt=kk,TGt=kk,FGt=kk,MGt=B_,PGt=[0,0,0],UGt=[0,0,[0,0,[0,0,[0,0,0]]]],GGt=Bu,$Gt=df,KGt=RO,OGt=B_,RGt=Kq,QGt=B_,CGt=Gb,HGt=B_,VGt=[0,0,0],LGt=HF,zGt=B_,SGt=Jc,ZGt=B_,WGt=[0,0,0],XGt=vj,JGt=B_,YGt=xl,r$t=B_,n$t=Lk,t$t=B_,e$t=E_,a$t=B_,u$t=hK,f$t=B_,i$t=[0,0,0],c$t=XT,v$t=B_,o$t=[0,1,0],A$t=Tp,s$t=B_,b$t=Uf,l$t=B_,B$t=ey,j$t=B_,k$t=[0,0,0],p$t=vm,m$t=B_,d$t=[0,0,0],_$t=AP,h$t=B_,x$t=bm,y$t=B_,w$t=je,g$t=B_,q$t=EK,I$t=B_,D$t=$i,E$t=B_,N$t=lt,T$t=B_,F$t=yT,M$t=B_,P$t=QD,U$t=B_,G$t=kM,$$t=B_,K$t=OU,O$t=B_,R$t=aq,Q$t=B_,C$t=Yk,H$t=B_,V$t=Ue,L$t=B_,z$t=pT,S$t=B_,Z$t=s$,W$t=B_,X$t=[0,0,0],J$t=ou,Y$t=B_,rKt=[0,0,0],nKt=ho,tKt=B_,eKt=XB,aKt=B_,uKt=[0,0,0],fKt=bD,iKt=B_,cKt=xk,vKt=B_,oKt=ht,AKt=B_,sKt=TR,bKt=B_,lKt=Op,BKt=B_,jKt=[0,0,0],kKt=nU,pKt=B_,mKt=Xh,dKt=B_,_Kt=zb,hKt=B_,xKt=yG,yKt=B_,wKt=qB,gKt=B_,qKt=EA,IKt=B_,DKt=[0,1,0],EKt=Nw,NKt=B_,TKt=[0,1,0],FKt=[0,0,0],MKt=Tf,PKt=B_,UKt=Nh,GKt=B_,$Kt=FN,KKt=B_,OKt=EO,RKt=B_,QKt=[0,1,0],CKt=YF,HKt=B_,VKt=[0,1,0],LKt=[0,1,0],zKt=Wk,SKt=B_,ZKt=JB,WKt=B_,XKt=Wo,JKt=B_,YKt=HU,rOt=B_,nOt=[0,0,0],tOt=Gx,eOt=B_,aOt=st,uOt=B_,fOt=Br,iOt=B_,cOt=[0,1,0],vOt=nh,oOt=B_,AOt=[0,1,0],sOt=[0,1,0],bOt=Sg,lOt=B_,BOt=HA,jOt=HA,kOt=dh,pOt=dh,mOt=dh,dOt=HA,_Ot=[0,0,0],hOt=[0,1,[0,3,[0,8,[0,9,0]]]],xOt=[0,2,0],yOt=[0,2,0],wOt=[0,4,0],gOt=[0,2,0],qOt=[0,6,0],IOt=[0,1,0],DOt=[0,2,[0,9,0]],EOt=Nu,NOt=Zn,TOt=ps,FOt=eT,MOt=ux,POt=g$,UOt=FD,GOt=Kn,$Ot=Pt,KOt=ya,OOt=[0,[11,AU,[4,3,0,0,[11,eG,0]]],Eo],ROt=[0,pq,0],QOt=[0,[11,fP,[4,3,0,0,0]],Ig],COt=[0,[11,"to_",[4,3,0,0,[11,eG,0]]],Z_],HOt=[0,0,0],VOt=[14,[0,0,0,lC(0,0,0),[0,0]]],LOt=[20,[0,0]],zOt=Od,SOt=qP,ZOt=[0,0,0],WOt=[0,sm,0],XOt=Et,JOt=[13,[0,0,0,lC(0,0,0),[0,[0,0,1]]]],YOt=[20,[0,0]],rRt=Od,nRt=qP,tRt=[0,dl,4900,87],eRt=Zk,aRt=sl,uRt=[0,0,0],fRt=[0,KR,0],iRt=MI,cRt=qP,vRt=uA,oRt=ax,ARt=qP,sRt=yD,bRt=qp,lRt=[18,[0,3]],BRt=[20,[0,0]],jRt=[20,[0,0]],kRt=zu,pRt=zc,mRt=[0,dl,4780,12],dRt=_K,_Rt=[0,0,0],hRt=[0,[0,sm,0],[0,KU,0]],xRt=EP,yRt=[20,[0,0]],wRt=_K,gRt=[18,[0,3]],qRt=[0,0,0],IRt=[0,[0,sm,0],[0,KU,0]],DRt=ds,ERt=[20,[0,0]],NRt=[0,0,0],TRt=[0,[0,sm,0],[0,KU,0]],FRt=Tk,MRt=[18,[0,0]],PRt=[0,dl,4702,19],URt=[18,[0,2]],GRt=[18,[0,4]],$Rt=[18,[0,6]],KRt=[18,[0,8]],ORt=fp,RRt=zc,QRt=Xy,CRt=[0,dl,4690,19],HRt=PM,VRt=hD,LRt=Ik,zRt=jl,SRt=[0,0,0],ZRt=[0,[0,ax,0],[0,Tb,0]],WRt=DT,XRt=zc,JRt=$b,YRt=zc,rQt=ob,nQt=zc,tQt=KR,eQt=Gi,aQt=zc,uQt=Ab,fQt=zc,iQt=Jp,cQt=zc,vQt=Iv,oQt=zc,AQt=yx,sQt=zc,bQt=wx,lQt=zc,BQt=[0,0,0],jQt=[0,ev,0],kQt=wx,pQt=ZR,mQt=zc,dQt=Tn,_Qt=zc,hQt=E,xQt=zc,yQt=vv,wQt=zc,gQt=Gh,qQt=zc,IQt=gO,DQt=zc,EQt=Yp,NQt=zc,TQt=We,FQt=zc,MQt=Bj,PQt=zc,UQt=qo,GQt=zc,$Qt=qA,KQt=zc,OQt=wO,RQt=zc,QQt=PR,CQt=zc,HQt=o_,VQt=zc,LQt=Nx,zQt=zc,SQt=Cq,ZQt=zc,WQt=ww,XQt=zc,JQt=cE,YQt=zc,rCt=Im,nCt=zc,tCt=rs,eCt=zc,aCt=en,uCt=zc,fCt=Jd,iCt=zc,cCt=pa,vCt=zc,oCt=HG,ACt=zc,sCt=[18,[0,7]],bCt=[18,[0,9]],lCt=[18,[0,3]],BCt=[0,dl,4445,19],jCt=[18,[0,0]],kCt=[13,[0,0,0,lC(0,0,0),[0,[0,0,1]]]],pCt=[20,[0,0]],mCt=[13,[0,0,0,lC(0,0,0),[0,[0,0,1]]]],dCt=[20,[0,0]],_Ct=[0,0],hCt=[0,5],xCt=[0,4],yCt=GD,wCt=ti,gCt=Od,qCt=uQ,ICt=rv,DCt=[18,[0,7]],ECt=[18,[0,9]],NCt=[18,[0,5]],TCt=[18,[0,3]],FCt=[0,dl,4461,15],MCt=[0,0],PCt=[18,[0,0]],UCt=[18,[0,7]],GCt=pG,$Ct=YT,KCt=ma,OCt=pO,RCt=MF,QCt=Vp,CCt=rA,HCt=[0,0,0],VCt=[0,[0,ax,0],[0,Tb,0]],LCt=Vx,zCt=Od,SCt=[0,ax,0],ZCt=Od,WCt=eQ,XCt=[0,0,0],JCt=[0,[0,KR,0],[0,KU,0]],YCt=sG,rHt=[13,[0,0,0,lC(0,0,0),[0,[0,0,1]]]],nHt=[20,[0,0]],tHt=eQ,eHt=[18,[0,3]],aHt=[0,0,0],uHt=[0,[0,KR,0],[0,KU,0]],fHt=_h,iHt=xE,cHt=zc,vHt=jq,oHt=zc,AHt=sp,sHt=zc,bHt=Od,lHt=KR,BHt=nO,jHt=[0,[11,Np,[2,0,[12,95,[2,0,0]]]],_U],kHt=[0,0,0],pHt=[0,sg,0],mHt=ax,dHt=[0,0,0],_Ht=[0,[0,Vx,0],[0,i,0]],hHt=Ae,xHt=[0,0,[0,0,0]],yHt=[0,ax,0],wHt=Df,gHt=am,qHt=zc,IHt=[0,0,0],DHt=[0,ev,0],EHt=TD,NHt=[0,dl,4239,11],THt=[0,[11,$p,[4,0,0,0,[12,62,0]]],DI],FHt=[0,0,0],MHt=[0,[0,ax,0],[0,Tl,0]],PHt=Tr,UHt=[18,[0,0]],GHt=[0,[11,P,[4,0,0,0,[12,62,0]]],ne],$Ht=[0,0,0],KHt=[0,[0,ax,0],[0,Tl,0]],OHt=[18,[0,7]],RHt=bG,QHt=zc,CHt=[18,[0,7]],HHt=Ca,VHt=zc,LHt=sP,zHt=zc,SHt=dP,ZHt=zc,WHt=Ur,XHt=zc,JHt=vM,YHt=zc,rVt=qn,nVt=zc,tVt=sT,eVt=zc,aVt=Iq,uVt=zc,fVt=hu,iVt=zc,cVt=wU,vVt=zc,oVt=xe,AVt=zc,sVt=li,bVt=zc,lVt=tB,BVt=zc,jVt=li,kVt=zc,pVt=xe,mVt=zc,dVt=tB,_Vt=zc,hVt=eD,xVt=zc,yVt=D$,wVt=zc,gVt=LO,qVt=zc,IVt=Sx,DVt=zc,EVt=PU,NVt=qn,TVt=zc,FVt=[0,0,0],MVt=[0,Ke,0],PVt=Ei,UVt=[0,0],GVt=rI,$Vt=zc,KVt=Ff,OVt=zc,RVt=vl,QVt=zc,CVt=Ds,HVt=Ke,VVt=pR,LVt=zc,zVt=Cb,SVt=zc,ZVt=Ws,WVt=zc,XVt=Ds,JVt=Ke,YVt=co,rLt=zc,nLt=Eg,tLt=zc,eLt=pR,aLt=zc,uLt=co,fLt=zc,iLt=LR,cLt=zc,vLt=QT,oLt=zc,ALt=zd,sLt=zc,bLt=Di,lLt=zc,BLt=QT,jLt=zc,kLt=pn,pLt=zc,mLt=$$,dLt=zc,_Lt=Y$,hLt=zc,xLt=cl,yLt=zc,wLt=uQ,gLt=sy,qLt=[0,0,0],ILt=uQ,DLt=[0,0,0],ELt=uQ,NLt=[0,0,0],TLt=uQ,FLt=[0,1,0],MLt=uQ,PLt=[0,0,0],ULt=uQ,GLt=[21,[1,1]],$Lt=[0,0,0],KLt=uQ,OLt=[0,0,0],RLt=uQ,QLt=[0,0,0],CLt=ax,HLt=ax,VLt=hN,LLt=zc,zLt=ax,SLt=QK,ZLt=hN,WLt=zc,XLt=ax,JLt=QK,YLt=ax,rzt=Ds,nzt=ax,tzt=Ds,ezt=uQ,azt=[19,[1,1]],uzt=[17,[1,0]],fzt=lC(VM,32896,0),izt=lC($K,$K,Ft),czt=nG,vzt=zc,ozt=oB,Azt=zc,szt=uQ,bzt=[20,[0,1]],lzt=[18,[0,2]],Bzt=[0,dl,3685,15],jzt=[17,[0,0]],kzt=[20,[0,9]],pzt=uQ,mzt=[0,dl,3644,15],dzt=[17,[0,0]],_zt=uQ,hzt=[0,0,0],xzt=[0,0,0],yzt=[0,0,0],wzt=[18,[0,0]],gzt=[0,0,0],qzt=[0,[0,uQ,0],[0,rv,0]],Izt=kg,Dzt=[0,0,0],Ezt=[0,0,0],Nzt=[0,0,0],Tzt=[0,0,0],Fzt=[0,[0,uQ,0],[0,rv,0]],Mzt=[20,[0,1]],Pzt=[0,0,0],Uzt=[0,0,0],Gzt=[0,Ke,0],$zt=Qq,Kzt=Ke,Ozt=[18,[0,2]],Rzt=[0,0,0],Qzt=fl,Czt=[20,[0,2]],Hzt=[20,[0,12]],Vzt=[0,0,0],Lzt=[0,0,0],zzt=[0,[0,Ke,0],[0,Ma,0]],Szt=WM,Zzt=fl,Wzt=[20,[0,7]],Xzt=[18,[1,0]],Jzt=[21,[1,0]],Yzt=[21,[0,2]],rSt=[20,[1,10]],nSt=[21,[1,1]],tSt=[21,[1,0]],eSt=[0,0,0],aSt=[0,0,0],uSt=[0,[0,Ke,0],[0,Ma,0]],fSt=_w,iSt=fl,cSt=Yh,vSt=[0,0,0],oSt=[0,0,0],ASt=[0,0,0],sSt=[18,[1,7]],bSt=lC(64,0,0),lSt=[20,[1,2]],BSt=[20,[1,1]],jSt=[19,[1,0]],kSt=lC(64,0,0),pSt=[0,0,0],mSt=[0,0,0],dSt=[0,[0,uQ,0],[0,rv,0]],_St=jB,hSt=fl,xSt=Yh,ySt=[0,0,0],wSt=[0,0,0],gSt=[0,0,0],qSt=[0,0,0],ISt=[0,0,0],DSt=[0,[0,uQ,0],[0,rv,0]],ESt=lC(32,0,0),NSt=[21,[0,2]],TSt=lC(32,0,0),FSt=[21,[1,0]],MSt=Pr,PSt=Bv,USt=Bw,GSt=DP,$St=fG,KSt=zc,OSt=bN,RSt=zc,QSt=[20,[0,1]],CSt=[19,[0,0]],HSt=[20,[0,9]],VSt=[19,[0,0]],LSt=Rf,zSt=eR,SSt=T_,ZSt=d$,WSt=[13,[0,2,0,lC(0,0,0),0]],XSt=[13,[0,3,0,lC(0,0,0),0]],JSt=[13,[0,1,0,lC(0,0,0),0]],YSt=[13,[0,1,0,lC(0,0,0),0]],rZt=lC($K,$K,Ft),nZt=[13,[0,0,0,lC(0,0,0),0]],tZt=[13,[0,0,0,lC(0,0,0),[0,[0,1,1]]]],eZt=[13,[0,0,0,lC(0,0,0),[0,[0,0,1]]]],aZt=[18,[0,0]],uZt=IB,fZt=[18,[0,7]],iZt=[20,[0,1]],cZt=_u,vZt=zc,oZt=FT,AZt=zc,sZt=[20,[0,0]],bZt=Ds,lZt=[20,[0,0]],BZt=[14,[0,0,2,lC(0,0,0),0]],jZt=[13,[0,0,2,lC(0,0,0),0]],kZt=[3,2],pZt=[0,0,0],mZt=[0,MI,2],dZt=[3,2],_Zt=kj,hZt=[1,2],xZt=[0,0,0],yZt=[0,MI,3],wZt=B,gZt=[1,2],qZt=[0,dl,2972,11],IZt=[0,dl,2963,11],DZt=[20,[0,14]],EZt=[20,[0,8]],NZt=[0,0,0],TZt=[0,[0,Ke,0],[0,oM,0]],FZt=zF,MZt=[20,[0,13]],PZt=[20,[0,8]],UZt=[0,0,0],GZt=[0,[0,Ke,0],[0,oM,0]],$Zt=Xj,KZt=tO,OZt=[18,[0,8]],RZt=eg,QZt=[0,0,0],CZt=[0,[0,Ke,0],[0,Ro,0]],HZt=UE,VZt=[20,[0,2]],LZt=[20,[0,2]],zZt=[20,[0,2]],SZt=[17,[0,0]],ZZt=[18,[0,7]],WZt=[17,[0,0]],XZt=fa,JZt=[0,0,0],YZt=[0,[0,Ke,0],[0,Ro,0]],rWt=[20,[0,2]],nWt=gb,tWt=[20,[0,8]],eWt=[18,[0,5]],aWt=[20,[0,7]],uWt=[18,[0,3]],fWt=[18,[0,9]],iWt=[0,0,0],cWt=[0,Ke,0],vWt=mg,oWt=rv,AWt=[20,[0,7]],sWt=[20,[0,10]],bWt=[19,[0,1]],lWt=[19,[0,0]],BWt=[0,dl,2813,11],jWt=SR,kWt=[0,dl,2785,11],pWt=[0,dl,2776,12],mWt=[0,dl,2768,11],dWt=[0,0,0],_Wt=[0,0,0],hWt=[0,Ke,0],xWt=[0,0,0],yWt=[0,0,0],wWt=[0,Ke,0],gWt=[0,dl,2710,11],qWt=[3,1],IWt=[3,0],DWt=rv,EWt=[20,[1,7]],NWt=[20,[1,10]],TWt=lC(1,0,0),FWt=tO,MWt=[18,[1,8]],PWt=lC(0,0,0),UWt=[0,1,0],GWt=[0,[0,Ke,1],[0,Ro,1]],$Wt=Rd,KWt=UE,OWt=[20,[1,2]],RWt=lC(1,0,0),QWt=[20,[1,2]],CWt=[20,[1,2]],HWt=[17,[1,0]],VWt=lC(63,0,0),LWt=[18,[1,7]],zWt=lC(1,0,0),SWt=[17,[1,0]],ZWt=lC(1,0,0),WWt=fa,XWt=[0,1,0],JWt=[0,[0,Ke,1],[0,Ro,1]],YWt=[20,[1,1]],rXt=PU,nXt=[18,[1,3]],tXt=[0,1,0],eXt=[0,[0,"n1",1],[0,"n2",1]],aXt=Cy,uXt=[20,[1,6]],fXt=[20,[1,4]],iXt=[20,[1,5]],cXt=[20,[1,3]],vXt=[20,[1,2]],oXt=[20,[1,1]],AXt=[20,[1,0]],sXt=[0,1,0],bXt=[0,1,0],lXt=[0,Ke,0],BXt=Hm,jXt=[0,0,0],kXt=[0,0,0],pXt=[0,Ke,1],mXt=BT,dXt=zP,_Xt=[0,dl,2573,11],hXt=[1,1],xXt=[1,0],yXt=[0,[0,0],0],wXt=EG,gXt=[0,0,0],qXt=[0,0,0],IXt=[0,0,0],DXt=[0,0,0],EXt=[0,ax,0],NXt=GN,TXt=[0,0,0],FXt=[0,0,0],MXt=[0,0,0],PXt=[0,0,0],UXt=[0,ax,0],GXt=ot,$Xt=[18,[0,1]],KXt=z,OXt=[0,[0,0],0],RXt=uT,QXt=IM,CXt=iu,HXt=RD,VXt=zc,LXt=Bk,zXt=zc,SXt=OK,ZXt=zc,WXt=ND,XXt=uT,JXt=[0,dl,2070,6],YXt=[0,dl,2064,4],rJt=[0,[11,hb,[4,0,0,0,[11,Hb,[4,0,0,0,[12,62,0]]]]],Nj],nJt=[0,0,0],tJt=[0,dl,2059,4],eJt=[0,dl,1930,11],aJt=[17,[0,0]],uJt=[17,[0,0]],fJt=[20,[0,9]],iJt=[0,dl,1899,11],cJt=[0,0,0],vJt=[0,ax,0],oJt=le,AJt=[0,0,0],sJt=[0,ax,0],bJt=le,lJt=[0,dl,1841,11],BJt=[21,[1,0]],jJt=[21,[1,1]],kJt=[21,[0,2]],pJt=[17,[1,0]],mJt=[17,[1,0]],dJt=[17,[1,0]],_Jt=[20,[1,9]],hJt=[0,dl,1793,12],xJt=[0,0,0],yJt=[0,ax,1],wJt=br,gJt=[0,0,0],qJt=[0,ax,1],IJt=br,DJt=[0,dl,1737,11],EJt=[0,dl,1728,11],NJt=lC(1,0,0),TJt=lC(1,0,0),FJt=lC(1,0,0),MJt=lC(0,0,0),PJt=[20,[0,8]],UJt=_t,GJt=zc,$Jt=Iw,KJt=zc,OJt=KT,RJt=zc,QJt=Dv,CJt=zc,HJt=Ve,VJt=zc,LJt=[0,qa,0],zJt=[13,[0,0,2,lC(0,0,0),0]],SJt=[13,[0,0,2,lC(0,0,0),0]],ZJt=s,WJt=[18,[0,0]],XJt=[14,[0,0,2,lC(0,0,0),0]],JJt=Gy,YJt=Gy,rYt=Ke,nYt=[20,[0,0]],tYt=[20,[0,1]],eYt=[18,[0,3]],aYt=[20,[0,0]],uYt=[0,dl,1465,4],fYt=[19,[0,0]],iYt=[20,[0,1]],cYt=[13,[0,0,2,lC(0,0,0),0]],vYt=Y_,oYt=VR,AYt=VR,sYt=VR,bYt=Gy,lYt=VR,BYt=[0,dl,1409,12],jYt=VI,kYt=zc,pYt=[0,0,0],mYt=Ut,dYt=Ut,_Yt=YO,hYt=zc,xYt=Vt,yYt=zc,wYt=rd,gYt=zc,qYt=um,IYt=zc,DYt=mc,EYt=zc,NYt=Si,TYt=[20,[1,0]],FYt=[20,[1,0]],MYt=[20,[1,1]],PYt=Kd,UYt=[0,dl,L_,6],GYt=Kd,$Yt=[0,dl,Hn,6],KYt=Su,OYt=Su,RYt=EM,QYt=EM,CYt=__,HYt=__,VYt=lC(0,0,0),LYt=__,zYt=lC(0,0,0),SYt=EM,ZYt=lC(0,0,0),WYt=Su,XYt=Kd,JYt=Tf,YYt=B_,r0t=[0,0,0],n0t=[0,0,[0,0,[0,0,0]]],t0t=YO,e0t=zc,a0t=[0,0,0],u0t=bk,f0t=zc,i0t=[0,0,[0,0,[0,0,[0,0,[0,0,[0,0,0]]]]]],c0t=Gw,v0t=zc,o0t=[0,0,0],A0t=[0,0,[0,0,0]],s0t=j,b0t=zc,l0t=[0,0,[0,0,[0,0,0]]],B0t=Vv,j0t=zc,k0t=[0,0,0],p0t=[0,0,[0,0,[0,0,[0,0,[0,0,[0,0,[0,0,[0,0,[0,0,0]]]]]]]]],m0t=TB,d0t=zc,_0t=[0,0,0],h0t=[0,0,0],x0t=FT,y0t=zc,w0t=[0,0,0],g0t=[0,0,0],q0t=_u,I0t=zc,D0t=[0,0,0],E0t=[0,0,0],N0t=Di,T0t=zc,F0t=[0,0,0],M0t=[0,0,0],P0t=QT,U0t=zc,G0t=[0,0,0],$0t=[0,0,0],K0t=$$,O0t=zc,R0t=[0,0,0],Q0t=[0,0,0],C0t=cl,H0t=zc,V0t=[0,0,0],L0t=[0,0,[0,0,0]],z0t=Y$,S0t=zc,Z0t=[0,0,0],W0t=[0,1,0],X0t=zd,J0t=zc,Y0t=[0,0,0],r1t=[0,1,0],n1t=LR,t1t=zc,e1t=[0,0,0],a1t=[0,3,0],u1t=B$,f1t=zc,i1t=[0,3,0],c1t=[0,0,0],v1t=Ov,o1t=zc,A1t=[0,1,0],s1t=[0,0,0],b1t=pn,l1t=zc,B1t=[0,1,0],j1t=[0,0,0],k1t=ls,p1t=zc,m1t=[0,0,0],d1t=[0,0,[0,0,0]],_1t=sT,h1t=zc,x1t=[0,0,0],y1t=[0,0,0],w1t=qn,g1t=zc,q1t=[0,0,0],I1t=[0,0,0],D1t=bG,E1t=zc,N1t=[0,0,0],T1t=[0,0,0],F1t=Ca,M1t=zc,P1t=[0,0,0],U1t=[0,0,[0,0,0]],G1t=sP,$1t=zc,K1t=[0,0,0],O1t=[0,0,[0,0,0]],R1t=vM,Q1t=zc,C1t=[0,0,0],H1t=[0,0,[0,0,0]],V1t=dP,L1t=zc,z1t=[0,0,0],S1t=[0,0,[0,0,0]],Z1t=Ur,W1t=zc,X1t=[0,0,0],J1t=[0,0,[0,0,0]],Y1t=D$,r2t=zc,n2t=[0,0,0],t2t=[0,0,[0,0,0]],e2t=tB,a2t=zc,u2t=[0,0,0],f2t=[0,0,[0,0,0]],i2t=eD,c2t=zc,v2t=[0,0,0],o2t=[0,0,[0,0,0]],A2t=li,s2t=zc,b2t=[0,0,0],l2t=[0,0,[0,0,0]],B2t=xe,j2t=zc,k2t=[0,0,0],p2t=[0,0,[0,0,0]],m2t=wU,d2t=zc,_2t=[0,0,0],h2t=[0,0,0],x2t=LO,y2t=zc,w2t=[0,0,0],g2t=[0,0,[0,0,0]],q2t=hu,I2t=zc,D2t=[0,0,0],E2t=[0,0,[0,0,0]],N2t=Iq,T2t=zc,F2t=[0,0,0],M2t=[0,0,0],P2t=Sx,U2t=zc,G2t=[0,0,0],$2t=[0,0,0],K2t=co,O2t=zc,R2t=[0,0,[0,0,0]],Q2t=Eg,C2t=zc,H2t=[0,0,[0,0,0]],V2t=Ws,L2t=zc,z2t=[0,0,0],S2t=[0,0,0],Z2t=Ff,W2t=zc,X2t=[0,0,0],J2t=[0,1,[0,1,[0,0,0]]],Y2t=oB,r3t=zc,n3t=[0,0,0],t3t=[0,0,0],e3t=pR,a3t=zc,u3t=[0,0,[0,0,0]],f3t=Cb,i3t=zc,c3t=[0,0,[0,0,0]],v3t=vl,o3t=zc,A3t=[0,0,0],s3t=[0,0,0],b3t=rI,l3t=zc,B3t=[0,0,0],j3t=[0,1,[0,1,[0,0,0]]],k3t=nG,p3t=zc,m3t=[0,0,[0,0,0]],d3t=bN,_3t=zc,h3t=[0,0,[0,0,0]],x3t=fG,y3t=zc,w3t=[0,0,0],g3t=[0,0,[0,0,0]],q3t=Gi,I3t=zc,D3t=[0,0,[0,0,0]],E3t=SO,N3t=zc,T3t=[0,0,0],F3t=dx,M3t=zc,P3t=[0,0,[0,0,[0,0,[0,0,0]]]],U3t=Sn,G3t=zc,$3t=[0,0,0],K3t=[0,0,[0,0,[0,0,[0,0,[0,0,0]]]]],O3t=qt,R3t=zc,Q3t=[0,0,[0,0,[0,0,[0,0,0]]]],C3t=bc,H3t=zc,V3t=[0,0,0],L3t=[0,0,0],z3t=Ve,S3t=zc,Z3t=[0,0,0],W3t=[0,0,0],X3t=Dv,J3t=zc,Y3t=[0,0,0],r6t=[0,0,0],n6t=KT,t6t=zc,e6t=[0,0,0],a6t=Iw,u6t=zc,f6t=[0,0,0],i6t=_t,c6t=zc,v6t=[0,0,0],o6t=[0,0,0],A6t=Iv,s6t=zc,b6t=[0,0,0],l6t=[0,0,[0,0,0]],B6t=fp,j6t=zc,k6t=[0,0,0],p6t=[0,0,[0,0,0]],m6t=E,d6t=zc,_6t=[0,0,0],h6t=[0,0,0],x6t=$b,y6t=zc,w6t=[0,0,0],g6t=[0,0,0],q6t=ob,I6t=zc,D6t=[0,0,0],E6t=[0,0,0],N6t=DT,T6t=zc,F6t=[0,0,0],M6t=[0,0,0],P6t=wx,U6t=zc,G6t=[0,0,0],$6t=[0,0,[0,0,0]],K6t=vv,O6t=zc,R6t=[0,0,0],Q6t=[0,0,0],C6t=yx,H6t=zc,V6t=[0,0,0],L6t=[0,0,0],z6t=Tn,S6t=zc,Z6t=[0,0,[0,0,0]],W6t=ZR,X6t=zc,J6t=[0,0,0],Y6t=[0,0,0],r4t=Jp,n4t=zc,t4t=[0,0,0],e4t=[0,0,0],a4t=Ab,u4t=zc,f4t=[0,0,0],i4t=NE,c4t=zc,v4t=[0,0,0],o4t=[0,1,[0,0,[0,0,0]]],A4t=HG,s4t=zc,b4t=[0,0,[0,1,[0,0,[0,0,0]]]],l4t=pa,B4t=zc,j4t=[0,0,0],k4t=Im,p4t=zc,m4t=[0,1,0],d4t=[0,0,0],_4t=Jd,h4t=zc,x4t=[0,0,0],y4t=[0,0,0],w4t=en,g4t=zc,q4t=[0,0,0],I4t=[0,0,0],D4t=rs,E4t=zc,N4t=[0,1,0],T4t=[0,0,0],F4t=cE,M4t=zc,P4t=[0,1,0],U4t=[0,0,[0,1,0]],G4t=ww,$4t=zc,K4t=[0,0,0],O4t=[0,0,[0,1,[0,0,0]]],R4t=Cq,Q4t=zc,C4t=[0,0,[0,1,[0,0,0]]],H4t=Nx,V4t=zc,L4t=[0,0,0],z4t=[0,0,[0,1,0]],S4t=o_,Z4t=zc,W4t=[0,0,[0,1,[0,0,0]]],X4t=PR,J4t=zc,Y4t=[0,0,0],r5t=[0,0,[0,1,0]],n5t=wO,t5t=zc,e5t=[0,0,[0,1,[0,0,0]]],a5t=qA,u5t=zc,f5t=[0,0,0],i5t=[0,0,[0,1,0]],c5t=qo,v5t=zc,o5t=[0,0,[0,1,[0,0,0]]],A5t=Bj,s5t=zc,b5t=[0,1,0],l5t=[0,0,[0,1,0]],B5t=We,j5t=zc,k5t=[0,0,[0,1,[0,1,0]]],p5t=Yp,m5t=zc,d5t=[0,3,0],_5t=[0,0,[0,1,0]],h5t=gO,x5t=zc,y5t=[0,0,[0,1,[0,3,0]]],w5t=Gh,g5t=zc,q5t=[0,0,0],I5t=T,D5t=zc,E5t=[0,0,0],N5t=[0,0,0],T5t=CK,F5t=zc,M5t=[0,0,0],P5t=[0,0,0],U5t=za,G5t=zc,$5t=[0,0,0],K5t=[0,0,0],O5t=KA,R5t=zc,Q5t=[0,0,0],C5t=[0,0,0],H5t=jq,V5t=zc,L5t=[0,0,0],z5t=[0,0,0],S5t=sp,Z5t=zc,W5t=[0,0,0],X5t=[0,0,0],J5t=xE,Y5t=zc,r7t=[0,3,0],n7t=[0,3,[0,3,0]],t7t=oy,e7t=zc,a7t=[0,2,0],u7t=[0,2,[0,2,0]],f7t=LF,i7t=zc,c7t=[0,3,0],v7t=[0,3,0],o7t=As,A7t=zc,s7t=[0,3,0],b7t=[0,3,0],l7t=Fi,B7t=zc,j7t=[0,3,0],k7t=[0,3,0],p7t=Eu,m7t=zc,d7t=[0,3,0],_7t=[0,3,0],h7t=sr,x7t=zc,y7t=[0,3,0],w7t=[0,3,0],g7t=Wx,q7t=zc,I7t=[0,3,0],D7t=[0,3,0],E7t=$D,N7t=zc,T7t=[0,3,0],F7t=[0,3,[0,3,0]],M7t=gw,P7t=zc,U7t=[0,3,0],G7t=[0,3,0],$7t=Ro,K7t=zc,O7t=[0,3,0],R7t=[0,3,0],Q7t=$n,C7t=zc,H7t=[0,3,0],V7t=[0,3,[0,3,0]],L7t=It,z7t=zc,S7t=[0,2,0],Z7t=[0,2,[0,2,0]],W7t=Nr,X7t=zc,J7t=[0,0,0],Y7t=[0,3,[0,0,[0,0,0]]],r8t=GM,n8t=zc,t8t=[0,0,0],e8t=[0,0,0],a8t=cx,u8t=zc,f8t=[0,0,0],i8t=[0,0,0],c8t=Ng,v8t=zc,o8t=[0,0,0],A8t=[0,0,0],s8t=Yy,b8t=zc,l8t=[0,0,0],B8t=[0,0,0],j8t=Zd,k8t=zc,p8t=[0,0,0],m8t=[0,0,0],d8t=CG,_8t=zc,h8t=[0,0,0],x8t=[0,0,0],y8t=K_,w8t=zc,g8t=[0,0,0],q8t=rd,I8t=zc,D8t=[0,1,0],E8t=um,N8t=zc,T8t=[0,0,0],F8t=[0,0,0],M8t=Vt,P8t=zc,U8t=[0,1,0],G8t=mc,$8t=zc,K8t=[0,0,0],O8t=VI,R8t=zc,Q8t=[0,0,0],C8t=[0,0,[0,0,0]],H8t=am,V8t=zc,L8t=[0,0,0],z8t=[0,0,[0,0,0]],S8t=zu,Z8t=zc,W8t=[0,0,0],X8t=[0,0,0],J8t=Ad,Y8t=zc,r9t=[0,0,[0,0,[0,0,0]]],n9t=Ed,t9t=zc,e9t=[0,0,[0,0,0]],a9t=cw,u9t=zc,f9t=[0,0,[0,0,0]],i9t=Uy,c9t=zc,v9t=[0,0,0],o9t=[0,0,0],A9t=zc,s9t=[0,0,0],b9t=ty,l9t=zc,B9t=[0,0,0],j9t=[0,0,[0,0,0]],k9t=hN,p9t=zc,m9t=[0,0,[0,1,[0,1,0]]],d9t=FP,_9t=zc,h9t=[0,0,0],x9t=Mp,y9t=zc,w9t=zc,g9t=zc,q9t=zc,I9t=zc,D9t=zc,E9t=zc,N9t=zc,T9t=zc,F9t=zc,M9t=[0,0,0],P9t=wq,U9t=zc,G9t=HE,$9t=zc,K9t=ur,O9t=zc,R9t=WA,Q9t=zc,C9t=[0,0,[0,0,0]],H9t=RD,V9t=zc,L9t=[0,0,0],z9t=[0,0,0],S9t=OK,Z9t=zc,W9t=k$,X9t=zc,J9t=[0,0,0],Y9t=Bk,rre=zc,nre=[0,dl,1007,72],tre=[0,dl,Xe,60],ere=[0,dl,989,56],are=[0,dl,985,52],ure=[0,dl,983,50],fre=[0,dl,968,6],ire=[0,dl,907,6],cre=[0,dl,899,6],vre=[0,[11,Gn,[4,0,0,0,0]],bu],ore=Ke,Are=uA,sre=[18,[0,3]],bre=[18,[1,0]],lre=lC(0,0,0),Bre=lC(0,0,0),jre=lC(1,0,0),kre=lC(0,0,0),pre=lC(0,0,0),mre=lC(0,0,0),dre=[17,[0,0]],_re=MR,hre=UM,xre=zc,yre=[0,dl,700,23],wre=jG,gre=_b,qre=Te,Ire=pf,Dre=[1,0],Ere=[0,[11,yi,[2,0,[11,Ce,0]]],pM],Nre=[0,dl,517,4],Tre=[0,[11,hT,0],hT],Fre=[0,[11,Id,0],Id],Mre=[0,[11,VU,0],VU],Pre=[0,dl,Ne,13],Ure=[0,dl,Js,13],Gre=[0,dl,Yv,14],$re=[0,dl,qs,14],Kre=[21,[1,1]],Ore=Tf,Rre=vm,Qre=Tp,Cre=[0,[11,'invalid UTF-8 in environment variable name for actor alias "',[2,0,[12,34,0]]],'invalid UTF-8 in environment variable name for actor alias "%s"'],Hre=RG,Vre=yo,Lre=fm,zre=cR,Sre=[0,[11,"enhanced migration path '",[2,0,[11,"' is not a directory",0]]],"enhanced migration path '%s' is not a directory"],Zre=ap,Wre=fm,Xre=Na,Jre=pv,Yre=nP,rne=[0,[11,Pj,[2,0,[11,'" (for package `',[2,0,[11,"`) does not exist",0]]]]],'file "%s" (for package `%s`) does not exist'],nne=nP,tne=[0,[11,'canister alias "',[2,0,[11,gP,0]]],'canister alias "%s" not defined'],ene=ap,ane=[0,[11,'package "',[2,0,[11,gP,0]]],'package "%s" not defined'],une=ap,fne=[0,[11,Pj,[2,0,[11,'" does not exist',0]]],'file "%s" does not exist'],ine=ap,cne=[0,[11,kO,0],kO],vne=ap,one=[0,[11,'cannot parse principal "',[2,0,[11,'" for actor alias "',[2,0,[11,'": ',[2,0,0]]]]]],'cannot parse principal "%s" for actor alias "%s": %s'],Ane=RG,sne=yo,bne=[0,[11,'cannot parse import URL "',[2,0,[11,'": ',[2,0,0]]]],'cannot parse import URL "%s": %s'],lne=ap,Bne=CO,jne=[0,[11,"code requires Wasm features ",[2,0,[11," to execute",0]]],"code requires Wasm features %s to execute"],kne=sk,pne=em,mne=[0,1],dne=[0,[11,"Invalid compiler flag combination: ",[2,0,0]],"Invalid compiler flag combination: %s"],_ne=sk,hne=[0,Fs,814,11],xne=_m,yne=sk,wne=[0,1],gne=[0,""],qne=[0,[11,uF,[2,0,[11," does not define a service",0]]],"file %s does not define a service"],Ine=ap,Dne=[0,[11,uF,[2,0,[11," uses Candid types without corresponding Motoko type",0]]],"file %s uses Candid types without corresponding Motoko type"],Ene=ap,Nne=[0,Fs,L$,27],Tne=GU,Fne=[0,[11,uF,[2,0,[11,_o,0]]],kw],Mne=ap,Pne=GU,Une=GU,Gne=Fk,$ne=L,Kne=[0,[2,0,[11," prim failed\n",0]],"%s prim failed\n"],One=[0,Fs,zj,14],Rne=[0,0,0],Qne=[0,0,0],Cne=Fk,Hne=L,Vne=[0,[2,0,[12,32,[2,0,[11," failed\n",0]]]],"%s %s failed\n"],Lne=[0,Fs,$_,17],zne=[0,[2,0,[12,32,[2,0,[12,10,0]]]],"%s %s\n"],Sne=[0,[2,0,[12,10,0]],dT],Zne=ap,Wne=Os,Xne=DM,Jne=[0,[18,[1,[0,[11,wG,0],wG]],[15,[11,Xq,[17,[0,ub,1,0],[15,[17,0,[17,4,0]]]]]]],"@[%a :@ %a@]@."],Yne=[0,1],rte=[0,1],nte=UR,tte=cP,ete=Zr,ate=yr,ute=WG,fte=Hv,ite=Lf,cte=nt,vte=kp,ote=s_,Ate=uR,ste=Lh,bte=NT,lte=nK,Bte=nK,jte=Xc,kte=nv,pte=QU,mte=rn,dte=F_,_te=iK,hte=nB,xte=gB,yte=BR,wte=ZI,gte=Fw,qte=e$,Ite=Pi,Dte=$s,Ete=bI,Nte=Mi,Tte=Ec,Fte=Ec,Mte=Be,Pte=AT,Ute=AO,Gte=Gq,$te=cA,Kte=Sq,Ote=ay,Rte=Xi,Qte=dG,Cte=Kv,Hte=bb,Vte=Zs,Lte=Qb,zte=od,Ste=GT,Zte=GT,Wte=v_,Xte=hd,Jte=gI,Yte=gI,ree=Ka,nee=jK,tee=[0,"js/astjs.ml",Cu,42],eee=ce,aee=mP,uee=xp,fee=TU,iee=yP,cee=uq,vee=r$,oee=ZN,Aee=Wu,see=AG,bee=$e,lee=$e,Bee=Ij,jee=fT,kee=Vn,pee=lm,mee=oT,dee=xw,_ee=$F,hee=a_,xee=MD,yee=pw,wee=Un,gee=ca,qee=aE,Iee=NG,Dee=ze,Eee=SN,Nee=ly,Tee=Uu,Fee=sb,Mee=WP,Pee=WP,Uee=tT,Gee=gD,$ee=dE,Kee=Ea,Oee=RK,Ree=dO,Qee=ju,Cee=WR,Hee=P$,Vee=fr,Lee=JM,zee=To,See=gd,Zee=Dy,Wee=wg,Xee=Tu,Jee=Pw,Yee=qc,rae=gT,nae=aN,tae=VE,eae=C,aae=yg,uae=TK,fae=qi,iae=TG,cae=sO,vae=Md,oae=St,Aae=ys,sae=LN,bae=bU,lae=Xa,Bae=gh,jae=XD,kae=Xg,pae=lb,mae=rl,dae=fD,_ae=OT,hae=aD,xae=Fj,yae=Bn,wae=R$,gae=ON,qae=Vc,Iae=jM,Dae=Gt,Eae=NU,Nae=or,Tae=px,Fae=ft,Mae=ft,Pae=Pe,Uae=Tg,Gae=H$,$ae=In,Kae=Sl,Oae=sK,Rae=K,Qae=oN,Cae=Zy,Hae=Er,Vae=pD,Lae=Pm,zae=fE,Sae=X_,Zae=_p,Wae=El,Xae=Hd,Jae=WG,Yae=WF,rue=M_,nue=Jm,tue=Fx,eue=oi,aue=sE,uue=gT,fue=wn,iue=$B,cue=xT,vue=Fd,oue=xg,Aue=_a,sue=Q$,bue=LE,lue=aG,Bue=fv,jue=UF,kue=AA,pue=lM,mue=Xu,due=MA,_ue=Nb,hue=nF,xue=Oq,yue=wT,wue=BP,gue=Wc,que=f$,Iue=CP,Due=Ai,Eue=wc,Nue=lg,Tue=J_,Fue=vI,Mue=vI,Pue=[0,1],Uue=XM;var Gue=function(r){return function(r){return r<0&&(r=Math.ceil(r)),new DQ(r&k_,Math.floor(r*gQ)&k_,Math.floor(r*gQ*gQ)&ci)}(pV(r).file.length())};var $ue=XM;var Kue=[0,OV([0,987910699,495797812,364182224,414272206,318284740,990407751,383018966,270373319,840823159,24560019,536292337,512266505,189156120,730249596,143776328,51606627,140166561,366354223,1003410265,700563762,981890670,913149062,526082594,1021425055,784300257,667753350,630144451,949649812,48546892,415514493,258888527,511570777,89983870,283659902,308386020,242688715,482270760,865188196,1027664170,207196989,193777847,619708188,671350186,149669678,257044018,87658204,558145612,183450813,28133145,901332182,710253903,510646120,652377910,409934019,801085050]),0];try{var Oue=rL(xq)}catch(lC){var Rue=iL(lC);if(Rue!==WL)throw kQ(Rue,0);try{Oue=rL("CAMLRUNPARAM")}catch(lC){var Que=iL(lC);if(Que!==WL)throw kQ(Que,0);Oue=""}}var Cue=[W,function(r){return y6()}],Hue=Z0(Oue,82);function Vue(r,n){for(var t=r?r[1]:Hue,e=16;!(n<=e)&&!(jY<(2*e|0));)e=2*e|0;if(t)var a=RV(Cue),u=w6(an===a?Cue[1]:W===a?gY(Cue):Cue);else u=0;return[0,0,AV(e,0),u,e]}function Lue(r,n){var t=n[2],e=2*(t.length-1)|0,a=e=0){var A=0;r:for(;;)for(var s=vC(t,A)[A+1];;){if(!s){var b=A+1|0;if(v===A)break r;A=b;break}var l=s[1],B=s[2],j=s[3],k=f?s:[0,l,B,0],p=PL(o,l),m=vC(c,p)[p+1];m?m[3]=k:vC(u,p)[p+1]=k,vC(c,p)[p+1]=k,s=j}}if(f){var d=i-1|0;if(d>=0)for(var _=0;;){var h=vC(c,_)[_+1];h&&(h[3]=0);var x=_+1|0;if(d===_)break;_=x}var y=0}else y=f;return y}function zue(r){var n=r[2];function t(r,e,a){for(var u=r,f=e;!f;){if(u===n.length-1)return 0;var i=vC(n,u)[u+1];u=u+1|0,f=i}var c=f[3];return[0,[0,f[1],f[2]],function(r){return t(u,c,r)}]}return function(r){return t(0,0)}}function Sue(r){var n=r[1];function t(n,t){var e=n[2].length-2|0;return PL(r[2],t)&e}function e(r,e,a){for(var u=t(r,e),f=vC(r[2],u)[u+1],i=f;;){if(i){var c=i[3];if(!UL(n,i[1],e)){i=c;continue}i[1]=e,i[2]=a;var v=0}else v=1;if(v){vC(r[2],u)[u+1]=[0,e,a,f],r[1]=r[1]+1|0;var o=r[2].length-1<<1=O-1>>>0&&vfe(r,Bz,K)}else ffe(r)}var R=r[9]-U|0;return H1([0,1===P?1:r[9]=r[14])return r[13]=afe,sfe(r),n&&ffe(r),yfe(r);mfe(r)}}function gfe(r,n,t){var e=r[14]=t)return GL(r[17],Qfe,0,t);GL(r[17],Qfe,0,80),t=t-80|0}}function Hfe(r){return r[1]===tfe?om+r[2]+f_:""}function Vfe(r){return r[1]===tfe?"=t?MV(r,n,t,e):LJ("output_substring")},function(n){return _V(r)})}function Wfe(r){return Sfe(function(n,t,e){return g2(r,n,t,e)},function(r){return 0})}var Xfe=BB,Jfe=d2(Xfe),Yfe=Zfe(nY),rie=Zfe(tY);function nie(r,n){wfe(n,0);var t=_2(r);return x2(r),t}function tie(r,n,t,e){for(var a=r,u=e;;){var f=a?a[1]:$fe;if(!u)return 0;var i=u[1];if(!u[2])return UL(n,t,i);var c=u[2];UL(n,t,i),UL(f,t,0),a=[0,f],u=c}}function eie(r,n){var t=d2(16),e=Wfe(t);UL(r,e,n),Mfe(e);var a=t[2];if(2>a)return _2(t);var u=a-2|0;return 0<=u&&(t[2]-u|0)>=1?F0(t[1],1,u):LJ("Buffer.sub")}function aie(r,n){if("number"==typeof n)switch(n){case 0:return mfe(r);case 1:return _fe(r);case 2:return Mfe(r);case 3:return Pfe(r);case 4:return wfe(r,1),PL(r[18],0);case 5:return Dfe(r,64);default:return Dfe(r,37)}switch(n[0]){case 0:return Ufe(r,n[2],n[3]);case 1:return 0;default:var t=n[1];return Dfe(r,64),Dfe(r,t)}}function uie(r,n){if("number"==typeof n)return 0;r:{n:{t:{switch(n[0]){case 0:var t=n[2];return uie(r,n[1]),aie(r,t);case 1:var e=n[2],a=n[1];if(0===e[0]){var u=e[1];return uie(r,a),dfe(r,[0,tfe,eie(uie,u)])}var f=e[1];uie(r,a);var i=G3(eie(uie,f));return pfe(r,i[1],i[2]);case 2:var c=n[1];if("number"!=typeof c&&0===c[0]){var v=c[2];if("number"!=typeof v&&1===v[0]){var o=n[2],A=v[2],s=c[1];break r}}var b=n[2],l=c;break n;case 3:var B=n[1];if("number"!=typeof B&&0===B[0]){var j=B[2];if("number"!=typeof j&&1===j[0]){var k=n[2],p=j[2],m=B[1];break t}}var d=n[2],_=B;break;case 4:var h=n[1];if("number"!=typeof h&&0===h[0]){var x=h[2];if("number"!=typeof x&&1===x[0]){o=n[2],A=x[2],s=h[1];break r}}b=n[2],l=h;break n;case 5:var y=n[1];if("number"!=typeof y&&0===y[0]){var w=y[2];if("number"!=typeof w&&1===w[0]){k=n[2],p=w[2],m=y[1];break t}}d=n[2],_=y;break;case 6:var g=n[2];return uie(r,n[1]),PL(g,r);case 7:return uie(r,n[1]),Mfe(r);default:var q=n[2];return uie(r,n[1]),LJ(q)}return uie(r,_),Dfe(r,d)}return uie(r,m),gfe(r,p,$0(1,k))}return uie(r,l),qfe(r,b)}return uie(r,s),gfe(r,A,o)}function fie(r,n){if("number"==typeof n)return 0;r:{n:{t:{switch(n[0]){case 0:var t=n[2];return fie(r,n[1]),aie(r,t);case 1:var e=n[2],a=n[1];if(0===e[0]){var u=e[1];return fie(r,a),dfe(r,[0,tfe,eie(fie,u)])}var f=e[1];fie(r,a);var i=G3(eie(fie,f));return pfe(r,i[1],i[2]);case 2:var c=n[1];if("number"!=typeof c&&0===c[0]){var v=c[2];if("number"!=typeof v&&1===v[0]){var o=n[2],A=v[2],s=c[1];break r}}var b=n[2],l=c;break n;case 3:var B=n[1];if("number"!=typeof B&&0===B[0]){var j=B[2];if("number"!=typeof j&&1===j[0]){var k=n[2],p=j[2],m=B[1];break t}}var d=n[2],_=B;break;case 4:var h=n[1];if("number"!=typeof h&&0===h[0]){var x=h[2];if("number"!=typeof x&&1===x[0]){o=n[2],A=x[2],s=h[1];break r}}b=n[2],l=h;break n;case 5:var y=n[1];if("number"!=typeof y&&0===y[0]){var w=y[2];if("number"!=typeof w&&1===w[0]){k=n[2],p=w[2],m=y[1];break t}}d=n[2],_=y;break;case 6:var g=n[1];if("number"!=typeof g&&0===g[0]){var q=g[2];if("number"!=typeof q&&1===q[0]){var I=n[2],D=q[2];return fie(r,g[1]),gfe(r,D,PL(I,0))}}var E=n[2];return fie(r,g),qfe(r,PL(E,0));case 7:return fie(r,n[1]),Mfe(r);default:var N=n[2];return fie(r,n[1]),LJ(N)}return fie(r,_),Dfe(r,d)}return fie(r,m),gfe(r,p,$0(1,k))}return fie(r,l),qfe(r,b)}return fie(r,s),gfe(r,A,o)}function iie(r,n,t){return q3(function(t){return uie(n,t),PL(r,n)},0,t[1])}function cie(r){function n(r){return 0}return function(t){return iie(n,r,t)}}function vie(r,n){return q3(function(n){return PL(r,function(r){return uie(r,n)})},0,n[1])}function oie(r){return vie(function(r){return r},r)}function Aie(r){var n=r[1],t=d2(Xfe),e=Wfe(t);return q3(function(r){return fie(e,r),nie(t,e)},0,n)}function sie(r,n){var t=n[1],e=d2(Xfe),a=Wfe(e);return q3(function(n){return uie(a,n),PL(r,nie(e,a))},0,t)}function bie(r){return sie(nfe,r)}Wfe(Jfe),function(r){for(;;){var n=sY[1];let e=n,a=[0,1];var t=1-HJ(sY,n,function(n){return HJ(a,1,0)&&PL(r,0),PL(e,0)});if(!t)return t}}(function(r){return Mfe(Yfe),Mfe(rie)});var lie=[Ul,"Stdlib.Scanf.Scan_failure",qH()];function Bie(r,n){CV(r,RV(n)===Ul?n:n[1])}function jie(r,n){var t=n.length-1,e=function(r,n){var t=new Array(n+1);t[0]=r;for(var e=1;e<=n;e++)t[e]=0;return t}(0,t),a=t-1|0;if(a>=0)for(var u=0;;){var f=vC(n,u)[u+1];if("number"==typeof f)switch(f){case 0:let n=u;var i=function(a){var u=e[n+1];if(t===u)throw kQ([0,rz,r],1);return PL(u,a)};let t=i;var c=i;break;case 1:var v=[];let a=v,f=u;fL(v,[W,function(n){var t=e[f+1];if(a===t)throw kQ([0,rz,r],1);var u=RV(t);return an===u?t[1]:W===u?gY(t):t}]);c=v;break;default:var o=function(n){throw kQ([0,rz,r],1)};c=[0,o,o,o,0]}else c=0===f[0]?jie(r,f[1]):f[1];e[u+1]=c;var A=u+1|0;if(a===u)break;u=A}return e}function kie(r,n){return"number"!=typeof n&&0===n[0]?jie(r,n[1]):VJ("CamlinternalMod.init_mod: not a module")}function pie(r,n,t){if(!(0===RV(t)&&r.length-1<=t.length-1))throw kQ([0,YL,c4],1);var e=r.length-2|0;if(e>=0)for(var a=0;;){var u=t[a+1],f=vC(r,a)[a+1];r:if("number"==typeof f){if(2===f){if(0===RV(u)&&4==u.length-1)for(var i=0,c=n[a+1];;){c[i+1]=u[i+1];var v=i+1|0;if(3===i)break r;i=v}throw kQ([0,YL,i4],1)}n[a+1]=u}else 0===f[0]&&pie(f[1],n[a+1],u);var o=a+1|0;if(e===a)break;a=o}}function mie(r,n,t){return"number"!=typeof r&&0===r[0]?pie(r[1],n,t):VJ("CamlinternalMod.update_mod: not a module")}function die(r,n,t){if(t===fQ)return n;for(var e=HH(t)-1|0;;){if(0>e)return K0(t,0,1);if(!UL(r,t,e))break;e=e-1|0}for(var a=e+1|0,u=e;;){if(0>u)return K0(t,0,a);if(UL(r,t,u))return K0(t,u+1|0,(a-u|0)-1|0);u=u-1|0}}function _ie(r,n,t){if(t===fQ)return n;for(var e=HH(t)-1|0;;){if(0>e)return K0(t,0,1);if(!UL(r,t,e)){var a=e;break}e=e-1|0}for(;;){if(0>a)return n;if(UL(r,t,a)){var u=a;break}a=a-1|0}for(;;){if(0>u)return K0(t,0,1);if(!UL(r,t,u))return K0(t,0,u+1|0);u=u-1|0}}function hie(r,n){return 47===VV(r,n)?1:0}try{rL("TMPDIR")}catch(lC){var xie=iL(lC);if(xie!==WL)throw kQ(xie,0)}function yie(r,n){var t=VV(r,n),e=47===t?1:0;if(e)var a=e;else a=(92===t?1:0)||(58===t?1:0);return a}function wie(r){var n=(HH(r)<1?1:0)||(47!==VV(r,0)?1:0);if(n){var t=(HH(r)<1?1:0)||(92!==VV(r,0)?1:0);if(t)var e=(HH(r)<2?1:0)||(58!==VV(r,1)?1:0);else e=t}else e=n;return e}function gie(r,n){var t=HH(n)<=HH(r)?1:0;if(t)var e=K0(r,HH(r)-HH(n)|0,HH(n)),a=X0(n),u=X0(e)===a?1:0;else u=t;return u}var qie=[0,,,,o4,hie,function(r){return(HH(r)<1?1:0)||(47!==VV(r,0)?1:0)},,function(r,n){var t=HH(n),e=HH(r)-t|0,a=0<=e?1:0;if(!a)return a;for(var u=0;;){if(u===t)return 1;if(VH(r,e+u|0)!==VH(n,u))return 0;u=u+1|0}},,,,,function(r){return die(hie,jz,r)},function(r){return _ie(hie,jz,r)}];try{rL("TEMP")}catch(lC){var Iie=iL(lC);if(Iie!==WL)throw kQ(Iie,0)}function Die(r){var n=2<=HH(r)?1:0;if(n){var t=VV(r,0);r:{n:{if(91<=t){if(25>>0)break n}else if(65>t)break n;var e=1;break r}e=0}var a=e?58===VV(r,1)?1:0:e}else a=n;if(!a)return[0,"",r];var u=K0(r,2,HH(r)-2|0);return[0,K0(r,0,2),u]}var Eie=[0,,,,"\\",yie,wie,,gie,,,,,function(r){return die(yie,kz,Die(r)[2])},function(r){var n=Die(r);return n[1]+_ie(yie,kz,n[2])}],Nie=[0,,,,A4,yie,wie,,gie,,,,,function(r){return die(yie,pz,r)},function(r){return _ie(yie,pz,r)}],Tie="Cygwin"!==BY?BY!==Dw?qie:Eie:Nie,Fie=Tie[5],Mie=Tie[6],Pie=Tie[13],Uie=Tie[14],Gie=Tie[4];function $ie(r,n){var t=HH(r);return 0===t||Fie(r,t-1|0)?r+n:r+Gie+n}function Kie(r){for(var n=HH(r)-1|0;;){if(!(0<=n)||Fie(r,n))return 0;if(46===VV(r,n))break;n=n-1|0}for(var t=n-1|0;;){if(!(0<=t)||Fie(r,t))return 0;if(46!==VV(r,t))return HH(r)-n|0;t=t-1|0}}function Oie(r){var n=Kie(r);return 0===n?LJ("Filename.chop_extension"):K0(r,0,HH(r)-n|0)}function Rie(r,n,t){return function(r,n,t){var e=GQ(t);return UQ(r,n,e,hQ(r,xQ(e)))}(r,n,[0,t])}function Qie(r,n){var t=cY(r);return x6(function(r){try{return hV(t)}catch(r){return 0}},function(r){return PL(n,t)})}function Cie(r,n,t,e){for(var a=t,u=e;;){if(0!==u){var f=vY(r,n,a,u);if(0!==f){a=a+f|0,u=u-f|0;continue}}return a-t|0}}function Hie(r,n,t){var e=tH(r);if((n+t|0)<=e)return r;for(var a=[0,e];;){if(a[1]>=(n+t|0)){var u=a[1],f=OC(u<=kY?u:n>>n|0},,,,function(r){return r},,,,,,,,,,,,,,,function(r){return r},function(r){return 0>=PC(0,r)&&0>=PC(r,DF)?function(r){return 0>=PC(0,r)&&0>=PC(r,DF)?r:0=n)for(var f=n;;){var i=VV(r,f),c=a[1],v=(fce(rce(c,cce))^i)&GK,o=uce(c,8);a[1]=rce(nce(vC(vce,v)[v+1],o),ice);var A=f+1|0;if(u===f)break;f=A}return nce(a[1],ice)}ace(16777216),ace($K),ace(25578747),ace(11994318),ece(65521);var Ace=R1([0,r1]),sce=[0,0],bce=[0,0],lce=[0,0],Bce=[0,1],jce=[0,0],kce=[0,0],pce=[0,0],mce=[0,1],dce=[0,Ace[1]],_ce=[0,0],hce=[0,Ace[1]],xce=[0,0],yce=[0,1],wce=[0,0],gce=[0,0],qce=[0,2],Ice=[0,0],Dce=[0,0],Ece=[0,0],Nce=[0,0],Tce=[0,0],Fce=[0,0],Mce=[0,1],Pce=[0,0],Uce=lC(0,64,0),Gce=lC(0,XO,0),$ce=[0,Gce,Uce],Kce=[0,0],Oce=[0,0],Rce=Ace[4],Qce=PL(function(r){return Rce(p4,0,r)},Ace[1]),Cce=Ace[4],Hce=PL(function(r){return Cce(m4,0,r)},Qce),Vce=Ace[4],Lce=PL(function(r){return Vce(d4,0,r)},Hce),zce=Ace[4],Sce=[0,PL(function(r){return zce(_4,0,r)},Lce)];function Zce(r){var n=Ace[29].call(null,r,Sce[1]);return n?n[1]:1}function Wce(r){return 0===Zce(r)?1:0}var Xce=[Ul,"Mo_config__Exit.Exit",qH()];function Jce(r){if(Nce[1])throw kQ([0,Xce,PL(R3(x4),r)],1);return lY(r)}var Yce=[Ul,O5,qH()];function rve(r,n,t){for(var e=t;;){if(e===HH(n))return 0;if(PL(r,VV(n,e)))return[0,e];e=e+1|0}}function nve(r,n){return r?r[1]:n}function tve(r){if(52>>0?-1===y?0:3:2<=y?2:1;x=PL(R3(Y5),WH(h,w))}}else x=UL(R3(Z5),HH(o),A);var g=W0(o),q=W0(x),I=k(q,0),D=k(g,0),E=I;r:for(;;){var N=j(g,D),T=j(q,E),F=B(d,g,N),M=B(d,q,T);if(F)var P=M||B(d,q,k(q,T))?0:-1;else if(M)P=B(d,g,k(g,N))?0:1;else{var U=VV(q,T),G=PC(VV(g,N),U);if(0===G){D=N+1|0,E=T+1|0;continue}P=G}var $=P+1|0;if(2>=$>>>0)switch($){case 0:s=A-m;break r;case 2:s=A+m;break r;default:s=A;break r}s=A;break}}}var K=PL(u,s);return i(K)?VJ(V5):K}function m(r){var n=48<=r?1:0;return n?r<=57?1:0:n}function d(r){var n=m(r);if(n)var t=n;else{var e=97<=r?1:0;t=e?r<=Pl?1:0:e}return t}function _(r,n,t,e,a,u){for(var f=t,i=a;;){var c=f=a)&&mC(NF);for(var o=$H(v);;)if(95!==(c=VH(r,++t))){if((v=SH(c))<0||v>=a)break;LH(i,o)&&mC(NF),v=$H(v),LH(o=MH(CH(f,o),v),v)&&mC(NF)}return t!==HH(r)&&mC(NF),u&&LH(e<0?DQ.SIGNED_MIN:DQ.SIGNED_MAX,o)&&mC(NF),e<0&&(o=OH(o)),o},d1,R3(f7),m1,PH,ZH,nV]),cve=ive[5],vve=ive[10],ove=ive[11],Ave=[0,ive[1],ive[2],ive[3],ive[4],cve,ive[6],ive[7],ive[8],ive[9],vve,ove,ive[12],ive[13],ive[14],ive[15],ive[16],ive[17],ive[18],ive[19],ive[20],ive[21],ive[22],ive[23],ive[24],ive[25],ive[26],ive[27],ive[28],ive[29],ive[30],ive[31],ive[32]],sve=[Ul,"Wasm.Ixx.DivideByZero",qH()],bve=[Ul,"Wasm.Ixx.Overflow",qH()];function lve(r){function n(n,t){if(dH(t,r[1]))throw kQ(sve,1);var e=UL(r[18],t,r[26]-1|0),a=PL(r[14],e),u=UL(r[13],n,a),f=UL(r[19],u,1),i=UL(r[11],f,t),c=UL(r[17],i,1),v=UL(r[10],c,t),o=UL(r[9],n,v),A=UL(r[8],t,r[5]);if(cV(UL(r[8],o,r[5]),A))return[0,c,o];var s=UL(r[9],o,t);return[0,UL(r[8],c,r[2]),s]}var t=r[1],e=r[2],a=PL(r[20],10);function u(n){var t=64-r[26]|0,e=XH(WH(PL(r[23],n),t),t);return PL(r[22],e)}var f=r[14],i=r[6],c=UL(r[17],r[3],r[26]-1|0),v=UL(r[16],c,r[3]);function o(r,t){return n(r,t)[1]}function A(r,t){return n(r,t)[2]}var s=r[13],b=r[15];function l(n,t,e){var a=PL(r[20],r[26]-1|0),u=UL(r[13],e,a);return UL(n,t,PL(r[21],u))}function B(n,t){return u(l(r[17],n,t))}var j=r[16],k=r[5],p=KV(B(e,PL(r[20],r[26]-1|0)),k);function m(n){if(!p)return n;var t=UL(r[19],r[3],32-r[26]|0);return UL(r[13],n,t)}function d(n,t){var e=m(n);return u(l(r[19],e,t))}function _(n){var t=PL(r[20],r[26]-1|0),e=UL(r[13],n,t);return PL(r[21],e)}function h(n,t){var e=UL(r[8],t,r[5]);return cV(UL(r[8],n,r[5]),e)}function x(n,t){var e=UL(r[8],t,r[5]);return iV(UL(r[8],n,r[5]),e)}function y(r){return u(SJ(ZJ(r,c),v))}function w(n){var t=m(r[3]);return u(SJ(ZJ(n,r[1]),t))}function g(n,t){if(32<=r[26])throw kQ([0,YL,b7],1);var e=PL(r[21],t),a=PL(r[21],n)+e|0;return PL(r[20],a)}function q(n,t){if(32<=r[26])throw kQ([0,YL,s7],1);var e=PL(r[21],t),a=PL(r[21],n)-e|0;return PL(r[20],a)}function I(r){var n=1-r;return n?VJ(v7):n}var D=r[21],E=r[20],N=n(r[3],a),T=N[1],F=N[2];function M(n){var t=HH(n);function e(e){if(I(0<(t-e|0)?1:0),(e+2|0)<=t&&48===VV(n,e)&&HP===VV(n,e+1|0))for(var u=e+2|0,f=r[1];;){if(u===t)return f;if(95===VV(n,u))u=u+1|0;else{var i=VV(n,u);r:{if(65<=i){if(97<=i){if(_$>i){var c=(10+i|0)-97|0;break r}}else if(71>i){c=(10+i|0)-65|0;break r}}else if(9>=i+yv>>>0){c=i-48|0;break r}c=VJ(i7)}var v=PL(r[20],c),o=PL(r[20],4);I(x(f,d(r[3],o)));var A=UL(r[17],f,4);u=u+1|0,f=UL(r[15],A,v)}}for(var s=e,b=r[1];;){if(s===t)return b;if(95===VV(n,s))s=s+1|0;else{var l=VV(n,s),B=9>>0?VJ(c7):l-48|0,j=PL(r[20],B),k=h(b,T);if(k)var p=k;else{var m=dH(b,T);p=m?x(j,F):m}I(p);var _=UL(r[10],b,a);s=s+1|0,b=UL(r[8],_,j)}}}I(0=u>>>0)switch(u){case 0:var f=e(1);break r;case 2:var i=e(1),o=r[3];I(IH(UL(r[9],i,r[2]),o));f=PL(r[7],i);break r}f=e(0)}if(p){var A=PL(r[20],1<=t)return _2(a);0===f&&w2(a,95),w2(a,VV(n,u)),u=u+1|0,f=$V((f+r|0)-1|0,r)}}return[0,function(r){return r},function(r){return r},t,f,i,,function(n,t){return u(UL(r[8],n,t))},function(n,t){return u(UL(r[9],n,t))},function(n,t){return u(UL(r[10],n,t))},function(n,t){if(dH(t,r[1]))throw kQ(sve,1);if(dH(n,c)&&dH(t,r[3]))throw kQ(bve,1);return UL(r[11],n,t)},o,function(n,t){if(dH(t,r[1]))throw kQ(sve,1);return UL(r[12],n,t)},A,function(n,t){var e=JH(iz,64-r[26]|0),a=UH(MH(MH(PH(e,PL(r[23],n)),PH(e,PL(r[23],t))),fz),lC(2,0,0));return PL(r[22],a)},s,b,j,B,function(n,t){return l(r[18],n,t)},d,function(n,t){var e=_(t),a=d(n,PL(r[20],r[26]-e|0));return UL(b,B(n,PL(r[20],e)),a)},function(n,t){var e=_(t),a=B(n,PL(r[20],r[26]-e|0));return UL(b,d(n,PL(r[20],e)),a)},function(n){for(var e=0,a=n;;){if(dH(a,r[1]))var u=r[26];else{if(dH(UL(s,a,UL(r[17],r[2],r[26]-1|0)),t)){e=1+e|0,a=UL(r[17],a,1);continue}u=e}return PL(r[20],u)}},function(n){for(var t=0,e=n;;){if(dH(e,r[1]))var a=r[26];else{var u=r[2];if(!dH(UL(s,e,r[2]),u)){t=1+t|0,e=UL(r[19],e,1);continue}a=t}return PL(r[20],a)}},function(n){for(var t=0,e=r[26],a=n;;){if(0===e)return PL(r[20],t);var u=r[2];t=dH(UL(s,a,r[2]),u)?t+1|0:t,e=e-1|0,a=UL(r[19],a,1)}},function(n,t){var e=r[26]-n|0,a=UL(r[17],t,e);return UL(r[18],a,e)},function(n){return dH(n,r[1])},dH,KV,cV,h,iV,x,DH,function(n,t){var e=UL(r[8],t,r[5]);return DH(UL(r[8],n,r[5]),e)},IH,function(n,t){var e=UL(r[8],t,r[5]);return IH(UL(r[8],n,r[5]),e)},m,y,w,function(r,n){return y(g(r,n))},function(r,n){var t=m(n);return w(g(m(r),t))},function(r,n){return y(q(r,n))},function(r,n){var t=m(n);return w(q(m(r),t))},function(n,t){if(32<=r[26])throw kQ([0,YL,o7],1);var e=XH(MH(CH(PL(r[23],n),PL(r[23],t)),A7),15);return y(PL(r[22],e))},E,function(n){var t=UL(b,B(PL(r[20],XJ),e),e);return UL(s,PL(r[20],n),t)},function(n){var t=M(n);return I((45===VV(n,0)?1:0)||IH(t,r[1])),t},function(r){var n=M(r),t=43!==VV(r,0)?1:0;return I(t?45!==VV(r,0)?1:0:t),n},M,D,function(n){var t=PL(r[21],r[4])<<1|1;return PL(r[21],n)&t},function(n){return P(3,PL(r[24],n))},function(n){if(IH(n,r[1]))return P(3,PL(r[24],n));var t=A(n,a),e=PL(r[24],t),u=o(n,a);return P(3,PL(r[24],u)+e)},function(n){return qM+P(4,PL(r[25],n))}]}lve([0,0,1,-1,b1,s1,A1,function(r){return 0|-r},function(r,n){return r+n|0},function(r,n){return r-n|0},hC,AH,$V,function(r,n){return r&n},l1,function(r,n){return r|n},function(r,n){return r^n},function(r,n){return r<>n},function(r,n){return r>>>n|0},function(r){return r},function(r){return r},KH,$H,B1,function(r){return PL(R3(l7),r&Ft)},16]);var Bve=lve([0,0,1,-1,b1,s1,A1,function(r){return 0|-r},function(r,n){return r+n|0},function(r,n){return r-n|0},hC,AH,$V,function(r,n){return r&n},l1,function(r,n){return r|n},function(r,n){return r^n},function(r,n){return r<>n},function(r,n){return r>>>n|0},function(r){return r},function(r){return r},KH,$H,B1,R3(B7),32]),jve=Bve[7],kve=Bve[33],pve=Bve[47],mve=lve([0,uz,fz,iz,vz,cz,p1,OH,MH,YH,CH,UH,QH,PH,m1,ZH,nV,WH,XH,JH,$H,KH,function(r){return r},function(r){return r},d1,R3(j7),64]),dve=mve[47],_ve=mve[7],hve=mve[31];function xve(r){return PH($H(r),p7)}function yve(r,n){PL(r[5],NaN)}lve([0,0,1,-1,b1,s1,A1,function(r){return 0|-r},function(r,n){return r+n|0},function(r,n){return r-n|0},hC,AH,$V,function(r,n){return r&n},l1,function(r,n){return r|n},function(r,n){return r^n},function(r,n){return r<>n},function(r,n){return r>>>n|0},function(r){return r},function(r){return r},KH,$H,B1,function(r){return PL(R3(k7),r&GK)},8]),$0(16,0),yve(fve),yve(Ave);var wve=[0,_z,_z],gve=[Ul,"Wasm.Utf8.Utf8",qH()];function qve(r){var n=[Ul,m7,qH()];return[0,n,,function(r,t){throw kQ([0,n,r,t],1)}]}function Ive(r,n){return[1,[0,[0,r],[0,n,0]]]}function Dve(r,n){return[1,[0,r,[0,[0,n],0]]]}function Eve(r,n){if(0===n[0])return PL(r,n[1]);for(var t=n[1];;){if(!t)return;var e=t[2];Eve(r,t[1]),t=e}}function Nve(r){return 0===r[0]?r[1]:O0("",YY(Nve,r[1]))}function Tve(r,n,t){if(0===t[0]){var e=t[1];return[0,HH(e),[0,e]]}for(var a=t[1],u=r+2|0,f=p0(YY(function(r){return Tve(u,n,r)},t[2])),i=f[2],c=f[1],v=2;c;){var o=v+c[1]|0;c=c[2],v=o}var A=(HH(a)+LY(i)|0)+v|0;if((r+A|0)<=n)var s="",b=d7;else{var l=$0(r,32);s=ku+l,b=JP+l}return[0,A,Ive(h7,Ive(a,Dve(Dve([1,YY(function(r){return Ive(b,r)},i)],s),_7)))]}function Fve(r,n){return Nve(Tve(0,r,n)[2])+ku}O1([0,j1])[5].call(null,0);var Mve=[Ul,"Sexplib0__Sexp.Not_found_s",qH()],Pve=[Ul,"Sexplib0__Sexp.Of_sexp_error",qH()];function Uve(r){var n=HH(r),t=0===n?1:0;if(t)return t;for(var e=n-1|0;;){var a=VV(r,e);r:{n:{if(92<=a){var u=a-93|0;if(33>>0){if(0<=u)break n;break r}if(31===u){var f=0a)break n;switch(a+-33|0){case 2:var o=0=0)for(var e=0;;){var a=VH(r,e);r:{n:{t:{if(32<=a){var u=a+-34|0;if(58>>0){if(93<=u)break t}else if(56>>0)break n;var f=1;break r}if(11<=a){if(13===a)break n}else if(8<=a)break n}f=4;break r}f=2}n[1]=n[1]+f|0;var i=e+1|0;if(t===e)break;e=i}if(n[1]===HH(r))return r;var c=OC(n[1]);n[1]=0;var v=HH(r)-1|0;if(v>=0)for(var o=0;;){var A=VH(r,o);r:{n:{t:{if(35<=A){if(92!==A){if(oj<=A)break n;break t}}else{if(32>A){if(14<=A)break n;switch(A){case 8:eC(c,n[1],92),n[1]++,eC(c,n[1],98);break r;case 9:eC(c,n[1],92),n[1]++,eC(c,n[1],rM);break r;case 10:eC(c,n[1],92),n[1]++,eC(c,n[1],Wr);break r;case 13:eC(c,n[1],92),n[1]++,eC(c,n[1],Yv);break r;default:break n}}if(34>A)break t}eC(c,n[1],92),n[1]++,eC(c,n[1],A);break r}eC(c,n[1],A);break r}eC(c,n[1],92),n[1]++;var s=RY(48+(A/x$|0)|0);eC(c,n[1],s),n[1]++;var b=RY(48+((A/10|0)%10|0)|0);eC(c,n[1],b),n[1]++;var l=RY(48+(A%10|0)|0);eC(c,n[1],l)}n[1]++;var B=o+1|0;if(v===o)break;o=B}return XV(c)}function $ve(r){var n=Gve(r),t=HH(n),e=OC(t+2|0);return P0(n,0,e,1,t),eC(e,0,34),eC(e,t+1|0,34),XV(e)}function Kve(r,n){var t=HH(r);return 0<=n&&t>=n?L0(r,t,n,10):LJ("String.index_from_opt / Bytes.index_from_opt")}function Ove(r,n,t){if(0===t[0]){var e=t[1];if(!Uve(e))return qfe(n,e);var a=Kve(e,0);if(a?(a[1]+1|0)===HH(e)?1:0:1)return qfe(n,$ve(e));Ffe(n,0),qfe(n,' "');for(var u=0;;){var f=Kve(e,u);if(qfe(n,Gve(K0(e,u,(f?f[1]:HH(e))-u|0))),!f)return qfe(n,I7),mfe(n);var i=f[1];qfe(n,"\\"),Pfe(n),qfe(n,q7),u=i+1|0}}else{var c=t[1];if(!c)return qfe(n,"()");var v=c[2],o=c[1];Ffe(n,r),qfe(n,y7),Ove(r,n,o);for(var A=v;;){if(!A)return qfe(n,w7),mfe(n);var s=A[2],b=A[1];Gfe(n),Ove(r,n,b),A=s}}}function Rve(r){return[0,fQ+r]}function Qve(r,n){return n[2]}var Cve=[W,function(r){return y6()}];function Hve(r,n){return n&(r[2].length-2|0)}var Vve=function(){for(var r=v4[1],n=16;!(17<=n)&&!(jY<(2*n|0));)n=2*n|0;if(r)var t=RV(Cve),e=w6(an===t?Cve[1]:W===t?gY(Cve):Cve);else e=0;return[0,0,AV(n,0),e,n]}();function Lve(r,n){if(0===n[0]){var t=n[1];if(Kve(t,0)?0:1)return Uve(t)?$ve(t):t}var e=d2(ts),a=r?r[1]:1;return UL(cie(Wfe(e))(g7),function(r,n){return Ove(a,r,n)},n),_2(e)}function zve(r,n,t,e){var a=r?r[1]:1,u=Qve(Vve[3],t),f=Hve(Vve,u),i=[0,e,a];var c=function(r){return lH(r)}(1);kH(c,i),_Y(c,0,"Obj.Ephemeron.set_key"),mH(c,0,t);var v=[0,u,c,vC(Vve[2],f)[f+1]];vC(Vve[2],f)[f+1]=v,Vve[1]=Vve[1]+1|0;var o=Vve[2].length-1<<1=0)for(var k=0;;){B[k+1]=l(vC(B,k)[k+1]);var p=k+1|0;if(j===k)break;k=p}var m=b>>1|0)<=Vve[1]?1:0:m){var d=AV(b,0);Vve[2]=d;var _=function(r){if(r){var n=r[1],t=r[2];_(r[3]);var e=Hve(Vve,n);d[e+1]=[0,n,t,vC(d,e)[e+1]]}},h=s-1|0;if(h>=0)for(var x=0;;){_(vC(A,x)[x+1]);var y=x+1|0;if(h===x)break;x=y}}}function Sve(r,n){var t=dY(n)&&RV(n)!==Ul&&1<=n.length-1?n[1]:n;if(dY(t)&&RV(t)===Ul)var e=t[1];else e=LJ(D6);for(var a=RV(e)===sv?t:LJ(E6),u=Qve(Vve[3],a),f=Hve(Vve,u),i=vC(Vve[2],f)[f+1];;){if(i){var c=i[3],v=i[2];if(u!==i[1]){i=i[3];continue}_Y(v,0,"Obj.Ephemeron.get_key");var o=jH(v,0);if(0!==(o?a===o[1]?0:1:2)){i=c;continue}var A=BH(v);if(!A){i=c;continue}var s=A}else s=0;if(!s)return 0;var b=s[1],l=b[2],B=b[1];return r&&!l?0:[0,PL(B,n)]}}function Zve(r){var n=Sve(0,r);return n?n[1]:[1,[0,[0,b6(r)],0]]}function Wve(r,n){var t=n[3],e=n[2],a=n[1];return[0,$L(R3(b8),r,a,e,t)]}k6(function(r){var n=Sve(1,r);return n?[0,Lve(l8,n[1])]:0});for(var Xve=[0,[0,YL,function(r){if(r[1]===YL)return Wve(F7,r[2]);throw kQ([0,YL,M7],1)}],[0,[0,zJ,function(r){if(r===zJ)return P7;throw kQ([0,YL,U7],1)}],[0,[0,SL,function(r){if(r===SL)return G7;throw kQ([0,YL,$7],1)}],[0,[0,LL,function(r){if(r[1]===LL)return[1,[0,K7,[0,[0,r[2]],0]]];throw kQ([0,YL,O7],1)}],[0,[0,WL,function(r){if(r===WL)return R7;throw kQ([0,YL,Q7],1)}],[0,[0,zL,function(r){if(r[1]===zL)return[1,[0,C7,[0,[0,r[2]],0]]];throw kQ([0,YL,H7],1)}],[0,[0,XL,function(r){if(r[1]===XL)return Wve(V7,r[2]);throw kQ([0,YL,L7],1)}],[0,[0,Mve,function(r){if(r[1]===Mve)return[1,[0,z7,[0,r[2],0]]];throw kQ([0,YL,S7],1)}],[0,[0,VL,function(r){if(r[1]===VL)return[1,[0,Z7,[0,[0,r[2]],0]]];throw kQ([0,YL,W7],1)}],[0,[0,C3,function(r){if(r[1]===C3)return[1,[0,X7,[0,[0,r[2]],0]]];throw kQ([0,YL,J7],1)}],[0,[0,Q3,function(r){if(r[1]===Q3)return[1,[0,Y7,[0,[0,r[2]],0]]];throw kQ([0,YL,r8],1)}],[0,[0,hY,function(r){if(r===hY)return n8;throw kQ([0,YL,t8],1)}],[0,[0,g1,function(r){if(r===g1)return e8;throw kQ([0,YL,a8],1)}],[0,[0,z1,function(r){if(r===z1)return u8;throw kQ([0,YL,f8],1)}],[0,[0,lie,function(r){if(r[1]===lie)return[1,[0,i8,[0,[0,r[2]],0]]];throw kQ([0,YL,c8],1)}],[0,[0,Q1,function(r){if(r===Q1)return v8;throw kQ([0,YL,o8],1)}],[0,[0,mY,function(r){if(r===mY)return A8;throw kQ([0,YL,s8],1)}],0]]]]]]]]]]]]]]]]],Jve=[0,[0,"--error-detail",[7,qce]," set error message detail for syntax errors, n in [0..3] (default 2)"],[0,[0,"--error-recovery",[2,Ice]," report multiple syntax errors"],[0,[0,"--error-format",[11,y4,function(r){var n=r!==Zu?r!==Gr?0:2:1;return sce[1]=n,0}]," set error output format"],0]]],Yve=[0,[0,"--args",[14,function(r){return X3(1,10,r)}]," read additional newline separated command line arguments \n from "],[0,[0,"--args0",[14,function(r){return X3(0,0,r)}]," read additional NUL separated command line arguments from \n "],0]],roe=[0,[0,"--ai-errors",[2,bce]," emit AI tailored errors"],[0,[0,"--all-libs",[2,lce]," load all library files from all packages, enabling better diagnostics, e.g. hinting at non-imported items (increases compilation time)"],[0,[0,"--implicit-package",[4,function(r){return _ce[1]=[0,r],0}],""],0]]],noe=[0,[0,"--enhanced-migration",[4,function(r){return Pce[1]=[0,r],0}]," enable enhanced migration system: requires initializers for all stable variables, disallows side-effects in actor bodies; only available with enhanced orthogonal persistence."],0],toe=[0,[0,"--default-persistent-actors",[0,function(r){return yce[1]=2,0}],""],[0,[0,"--require-persistent-actors",[0,function(r){return yce[1]=1,0}],""],[0,[0,"--legacy-actors",[0,function(r){return yce[1]=0,0}],""],0]]];Xve;){var eoe=Xve[1],aoe=Xve[2];zve(T7,0,eoe[1],eoe[2]),Xve=aoe}for(var uoe=[0,[0,Pve,function(r){if(r[1]!==Pve)throw kQ([0,YL,N7],1);var n=[0,r[3],0];return[1,[0,E7,[0,Zve(r[2]),n]]]}],0];uoe;){var foe=uoe[1],ioe=uoe[2];zve(D7,0,foe[1],foe[2]),uoe=ioe}function coe(r,n){var t=d2(16),e=Wfe(t);return Rfe(e,2,N_),UL(cie(e)(R8),r,n),Mfe(e),_2(t)}function voe(r,n,t){return UL(cie(n)(O8),r,t)}function ooe(r){return tV("0u"+r)}function Aoe(r){return PL(R3($8),r)}function soe(r,n){return cV(r,0)&&IH(n,0)?1:IH(r,0)&&cV(n,0)?-1:PC(r,n)}function boe(r){if(0<=r&&9>=r)return RY(48+r|0);if(10<=r&&15>=r)return RY(65+(r+Mv|0)|0);throw kQ([0,YL,G8],1)}function loe(r){var n=[0,0],t=HH(r)-1|0;if(t>=0)for(var e=t;;){var a=n[1];n[1]=[0,VV(r,e),a];var u=e-1|0;if(0===e)break;e=u}return n[1]}function Boe(r,n){var t=[0,0],e=HH(n)-1|0;if(e>=0)for(var a=e;;){var u=t[1];t[1]=[0,PL(r,VV(n,a)),u];var f=a-1|0;if(0===a)break;a=f}return t[1]}function joe(r,n){var t=HH(r);return function e(a){if(te)return 0;if(t){var a=t[2],u=t[1];if(ms>e){var f=hh===(u&WT)?1:0;if(!f)return f;n=a;continue}if(a){var i=a[2],c=a[1];if(Sj>e){var v=hh===(u&WT)?1:0;if(v){var o=hh===(c&WT)?1:0;if(o){n=i;continue}var A=o}else A=v;return A}if(i){var s=i[2],b=i[1];if(Ul>e){var l=hh===(u&WT)?1:0;if(l){var B=hh===(c&WT)?1:0;if(B){var j=hh===(b&WT)?1:0;if(j){n=s;continue}var k=j}else k=B}else k=l;return k}}}}return 0}n=t}}function _oe(r){if(hh===(r&WT))return 63&r;throw kQ(gve,1)}function hoe(r,n){r:if(n>=r){if(Xn<=n&&He>n)break r;if(Gs>n)return n}throw kQ(gve,1)}function xoe(r){for(var n=0,t=Boe(function(r){return r},r);;){if(!t)return XY(n);var e=t[2],a=t[1];if(hh<=a){if(WT>a)throw kQ(gve,1);if(e){var u=e[2],f=e[1];if(ms>a){n=[0,hoe(hh,((31&a)<<6)+_oe(f)|0),n],t=u;continue}if(u){var i=u[2],c=u[1];if(Sj>a){var v=_oe(c);n=[0,hoe(2048,(((15&a)<<12)+(_oe(f)<<6)|0)+v|0),n],t=i;continue}if(i){var o=i[2],A=i[1];if(Ul>a){var s=_oe(A),b=_oe(c)<<6;n=[0,hoe(ni,((((7&a)<<18)+(_oe(f)<<12)|0)+b|0)+s|0),n],t=o;continue}}}}throw kQ(gve,1)}n=[0,hoe(0,a),n],t=e}}function yoe(r){return hh|63&r}function woe(r){for(var n=0,t=r;t;){var e=t[1],a=t[2];if(0>e)throw kQ(gve,1);if(hh<=e)if(2048<=e)if(ni<=e){var u=t[2];if(Gs<=e)throw kQ(gve,1);var f=[0,yoe(e>>>12|0),[0,Sj|e>>>18,n]],i=[0,yoe(e>>>6|0),f];n=[0,yoe(e),i],t=u}else{var c=[0,yoe(e>>>6|0),[0,ms|e>>>12,n]];n=[0,yoe(e),c],t=a}else n=[0,yoe(e),[0,WT|e>>>6,n]],t=a;else n=[0,e,n],t=a}for(var v=XY(n),o=d2(80),A=v;;){if(!A)return _2(o);var s=A[2];w2(o,RY(A[1])),A=s}}function goe(r,n,t){var e=d2(xv);w2(e,r);for(var a=n;;){if(!a)return w2(e,t),_2(e);var u=a[2],f=a[1];if(35<=f){if(39===f){q2(e,"\\'"),a=u;continue}if(92===f){q2(e,D8),a=u;continue}}else{var i=f-9|0;if(1>=i>>>0){if(i){q2(e,q8),a=u;continue}q2(e,I8),a=u;continue}if(25<=i){q2(e,'\\"'),a=u;continue}}32<=f&&oj>f?(w2(e,RY(f)),a=u):(PL(K3(e,E8),f),a=u)}}function qoe(r,n){for(var t=r,e=0;;){if(0===t)return e;t=t-1|0,e=[0,n,e]}}function Ioe(r,n){if(0>=r)return 0;if(n){var t=n[2],e=n[1];if(0=c>>>0)switch(c){case 0:return[0,[0,[0,u],[0,a,t]]];case 2:return[0,[0,[1,i],[0,e,f]]]}return[0,[0,[2,u,i],[0,a,f]]]}var a=[0,n,t];return function(r){return FY(e,a)}}function Goe(r){for(var n=r,t=0;;){if(!n)return t;var e=n[2];if(!cV(t,DF))return VJ(y8);n=e,t=t+1|0}}function $oe(r,n){for(var t=r,e=n;;){if(KV(e,0)){if(t){var a=t[2];if(DH(e,0)){t=a,e=e-1|0;continue}}}else if(t)return t[1];return VJ("nth")}}var Koe=[Ul,"Lib.Promise.Promise",qH()];function Ooe(r){return[0,[0,r]]}function Roe(r,n){if(0!==r[1])throw kQ(Koe,1);return r[1]=[0,n],0}function Qoe(r){return 0!==r[1]?1:0}function Coe(r){var n=r[1];if(n)return n[1];throw kQ(Koe,1)}function Hoe(r){return[0,[0,r]]}function Voe(r,n){var t=r[1];switch(t[0]){case 0:return r[1]=[2,t[1],n],0;case 1:var e=t[2];r[1]=[3,t[1]];var a=RV(n);return PL(e,an===a?n[1]:W===a?gY(n):n);default:return 0}}function Loe(r){var n=r[1];switch(n[0]){case 0:var t=PL(n[1],0),e=t[1];return r[1]=[1,e,t[2]],e;case 2:var a=n[2],u=PL(n[1],0),f=u[1],i=u[2];r[1]=[3,f];var c=RV(a);return PL(i,an===c?a[1]:W===c?gY(a):a),f;default:return n[1]}}function zoe(r){if(r===fQ)return"";for(var n=KY(moe(m8,r)),t=1-Mie(r),e=[0,0,0],a=joe(r,47);a;){var u=a[2],f=a[1];if(f!==fQ&&f!==Qu)if(f!==Jf)H1(f,e),a=u;else{if(0!==e[1]){var i=e[1];if(!i)throw kQ(Q1,1);if(i[1]!==Jf){var c=e[1];if(!c)throw kQ(Q1,1);e[1]=c[2],e[2]=e[2]-1|0,a=u;continue}}H1(p8,e),a=u}else a=u}for(var v=e[1],o="";;){if(!v){if(o===fQ)return t?d8:n?"./":_8;var A=n?o:PY(moe(h8,o));return(t?x8:"")+A}var s=v[1]+pv+o;v=v[2],o=s}}function Soe(r,n){var t=zoe(n);return poe(zoe(r+pv),t)}var Zoe=[Ul,"Yojson__Common.Json_error",qH()];function Woe(r){throw kQ([0,Zoe,r],1)}function Xoe(r){return RY(10<=r?r+87|0:r+48|0)}function Joe(r,n,t,e,a){g2(e,r,n[1],t-n[1]|0),q2(e,a),n[1]=t+1|0}function Yoe(r,n){w2(r,34);var t=[0,0],e=HH(n)-1|0;if(e>=0)for(var a=0;;){var u=VV(n,a);r:if(92===u)Joe(n,t,a,r,X8);else{if(35<=u){if(oj!==u)break r}else if(8<=u)switch(u-8|0){case 0:Joe(n,t,a,r,"\\b");break r;case 1:Joe(n,t,a,r,S8);break r;case 2:Joe(n,t,a,r,Z8);break r;case 4:Joe(n,t,a,r,"\\f");break r;case 5:Joe(n,t,a,r,W8);break r;case 26:Joe(n,t,a,r,'\\"');break r;case 24:case 25:break r}g2(r,n,t[1],a-t[1]|0),q2(r,"\\u00"),w2(r,Xoe(u>>>4|0)),w2(r,Xoe(15&u)),t[1]=a+1|0}var f=a+1|0;if(e===a)break;a=f}try{g2(r,n,t[1],HH(n)-t[1]|0)}catch(e){var i=iL(e),c=HH(n)-t[1]|0,v=t[1];throw GL($3(tY,J8),n,v,c),kQ(i,0)}return w2(r,34)}function rAe(r,n){return q2(r,n?L8:z8)}function nAe(r,n){return 0===n?0:(nAe(r,n/10|0),w2(r,RY(WJ(n%10|0)+48|0)))}function tAe(r,n){return 0=0)for(var e=0;;){var a=VV(r,e);r:{if(48<=a){if(58<=a)break r}else if(45!==a)break r;var u=e+1|0;if(n===e)break;e=u;continue}throw kQ(zJ,1)}return 1}catch(t){var f=iL(t);if(f===zJ)return 0;throw kQ(f,0)}}function aAe(r,n,t,e){if(e){var a=e[2];UL(r,t,e[1]);for(var u=a;;){if(!u)return;var f=u[2],i=u[1];PL(n,t),UL(r,t,i),u=f}}}function uAe(r){return w2(r,44)}function fAe(r,n){if("number"==typeof n)return q2(r,hz);var t=n[1];if(AF>t)return NN<=t?tAe(r,n[2]):Yoe(r,n[2]);if(ej<=t){if(rO<=t){var e=n[2];return w2(r,UU),aAe(function(r,n){var t=n[2];return Yoe(r,n[1]),w2(r,58),fAe(r,t)},uAe,r,e),w2(r,kI)}var a=n[2];return w2(r,91),aAe(fAe,uAe,r,a),w2(r,93)}if(uy<=t)return rAe(r,n[2]);var u=n[2],f=oC(u);if(3===f)return q2(r,0t)return NN<=t?tAe(r,n[2]):Yoe(r,n[2]);if(ej<=t){if(rO<=t){var e=n[2];return w2(r,UU),aAe(function(r,n){var t=n[2];return Yoe(r,n[1]),w2(r,58),iAe(r,t)},uAe,r,e),w2(r,kI)}var a=n[2];return w2(r,91),aAe(iAe,uAe,r,a),w2(r,93)}if(uy<=t)return rAe(r,n[2]);var u=n[2],f=oC(u);if(3===f)return Woe(0=n)for(var u=n;;){w2(e,wse(r,u));var f=u+1|0;if(a===u)break;u=f}return _2(e)}function qse(r,n){return PL(r[1],n)}function Ise(r,n){for(var t=0,e=r[2];;){if(e<=t){var a=t-1|0;return GAe(0,0<=a?[0,a]:0)}var u=t+((e-t|0)/2|0)|0;UL(rse,qse(r,u),n)<=0?t=u+1|0:e=u}}var Dse=[Ul,"Grace_source_reader.Error",qH()],Ese=[0,0];function Nse(r){var n=Ese[1];if(n)return n[1];throw kQ([0,Dse,103044232],1)}function Tse(r){var n=Nse(),t=n[1];try{var e;return Xue(t,r)}catch(e){var a=iL(e);if(a!==WL)throw kQ(a,0);var u=PL(n[3],r);return Wue(t,r,u),u}}function Fse(r){return r[2][1]}function Mse(r){return r[2][2]}function Pse(r,n){var t=Tse(r),e=cse(t[2]);return dse(ise,n)&&ose(n,e)?qse(t,n):pse(n,e)?tse(yse(r)):$L(sie(LJ,L9),vse,n,vse,e)}function Use(r,n){var t=Pse(r,n),e=Pse(r,fse(n,1));return[0,n,Ase(r[2],t,e)]}function Gse(r,n){var t=r[2];1-LAe(n[2],t[3])&&sie(LJ,z9);var e=sse(t),a=e[2],u=e[1],f=d2(ese(a,u)),i=a-1|0;if(i>=u)for(var c=u;;){w2(f,wse(n,c));var v=c+1|0;if(i===c)break;c=v}return _2(f)}function $se(r,n,t){eC(r,n,t)}function Kse(r,n,t){return[0,g_,F0(r,n,t)]}function Ose(r,n,t,e,a){var u=T0(t,e,a),f=OC(2);if(r)var i=1,c=0;else i=0,c=1;$se(f,c,n>>>8|0),$se(f,i,n&GK);var v=tH(f),o=tH(u),A=OC(v+o|0);return RQ(f,0,A,0,v),RQ(u,0,A,v,o),[0,g_,XV(A)]}var Rse=OV([0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0]);function Qse(r,n,t){function e(r){return[0,Lr,r]}var a=t-1|0;if(3>>0)throw kQ([0,YL,J9],1);switch(a){case 0:return e(YQ(r,n));case 1:var u=YQ(r,n+1|0),f=YQ(r,n);return 2==(u>>>6|0)?e((31&f)<<6|63&u):Kse(r,n,t);case 2:var i=YQ(r,n),c=YQ(r,n+1|0),v=YQ(r,n+2|0),o=(15&i)<<12|(63&c)<<6|63&v;return 2!=(v>>>6|0)?Kse(r,n,t):ms===i?X<=c&&ij>=c?e(o):Kse(r,n,t):237!==i?2==(c>>>6|0)?e(o):Kse(r,n,t):hh<=c&&Hg>=c?e(o):Kse(r,n,t);default:var A=YQ(r,n),s=YQ(r,n+1|0),b=YQ(r,n+2|0),l=YQ(r,n+3|0),B=(7&A)<<18|(63&s)<<12|(63&b)<<6|63&l;return 2==(l>>>6|0)&&2==(b>>>6|0)?Sj===A?$A<=s&&ij>=s?e(B):Kse(r,n,t):244!==A?2==(s>>>6|0)?e(B):Kse(r,n,t):hh<=s&&ua>=s?e(B):Kse(r,n,t):Kse(r,n,t)}}function Cse(r,n,t){var e=YQ(r,n)<<8|YQ(r,t);return Xn<=e&&57343>=e?56319=a?[0,Lr,((r&wd)<<10|a&wd)+ni|0]:Ose(tt[1])return Lse(n),PL(r,n);var e=vY(t[2],n[5],0,tH(n[5])),a=n[5];r:if(0<=e&&tH(a)>=(0|e)){if(0===e){Lse(n);break r}n[5]=a,n[6]=0,n[7]=(0|e)-1|0}else LJ(UL(R3(Y9),0,e));return PL(r,n)}function Sse(r,n){r[9]=0,r[10]=n}function Zse(r,n){function t(r,n){RQ(r[5],r[6],r[8],r[9],n),r[6]=r[6]+n|0,r[9]=r[9]+n|0}var e=Vse(n);if(0>e)return PL(r,n);var a=n[10]-n[9]|0;return e=n)return 0<=n?zse(Xse,r):lF;var t=r[6];r[6]=r[6]+1|0;var e=r[5],a=YQ(e,t);return Wse(Xse,oj=n)return 0<=n?zse(Jse,r):lF;var t=r[6];return r[6]=r[6]+1|0,Wse(Jse,[0,Lr,YQ(r[5],t)],1,r)}function Yse(r){if(r[9]=n)return 0<=n?zse(rbe,r):lF;var t=Rse[YQ(r[5],r[6])+1];if(n=r[10])return tbe(Cse(r[8],0,1),r);var n=r[9];return Wse(ebe,Kse(r[8],0,r[9]),n,r)}function tbe(r,n){if(g_<=r[1])return Wse(ebe,r,2,n);var t=r[2];if(2<=Vse(n)){var e=n[6];return n[6]=n[6]+2|0,Wse(ebe,Hse(t,n[5],e,e+1|0),4,n)}return Sse(n,2),Zse(function(r){var n=r[9]+2|0;return r[9]=n)return 0<=n?zse(ebe,r):lF;if(2<=n){var t=r[6];return r[6]=r[6]+2|0,tbe(Cse(r[5],t,t+1|0),r)}return Sse(r,2),Zse(nbe,r)}function abe(r){if(r[9]>=r[10])return ube(Cse(r[8],1,0),r);var n=r[9];return Wse(fbe,Kse(r[8],0,r[9]),n,r)}function ube(r,n){if(g_<=r[1])return Wse(fbe,r,2,n);var t=r[2];if(2<=Vse(n)){var e=n[6];return n[6]=n[6]+2|0,Wse(fbe,Hse(t,n[5],e+1|0,e),4,n)}return Sse(n,2),Zse(function(r){var n=r[9]+2|0;return r[9]=n)return 0<=n?zse(fbe,r):lF;if(2<=n){var t=r[6];return r[6]=r[6]+2|0,ube(Cse(r[5],t+1|0,t),r)}return Sse(r,2),Zse(abe,r)}function ibe(r){r[14]=0,r[13]=r[13]+1|0}function cbe(r){r[14]=r[14]+1|0}function vbe(r){r[16]=r[16]+1|0}function obe(r,n){r[12]=n}function Abe(r,n){if(Lr>n[1])return obe(r,0),vbe(r),cbe(r),n;var t=n[2]-133|0;r:{if(8100>>0){var e=t+UU|0;if(3>>0)break r;switch(e){case 0:var a=r[12];return obe(r,0),vbe(r),a||ibe(r),n;case 3:return obe(r,1),vbe(r),ibe(r),n;case 1:break r}}else if(8097>=t-1>>>0)break r;return obe(r,0),vbe(r),ibe(r),n}return obe(r,0),vbe(r),cbe(r),n}function sbe(r,n){return cie(r)(nrr)}function bbe(r,n,t){return UL(a0(wAe,r,t),n,0)}function lbe(r,n){return cie(r)(rrr)}var Bbe=l0(function(r){r:{if(698610925<=r){if(Pu!==r&&iN!==r&&HB!==r)break r}else if(kd!==r&&Vb!==r&&Pd>r)break r;return 1}return 0});function jbe(r){return[0,Pu,[0,[0,lf,[0,16161,r]],0]]}function kbe(r){return[0,[0,lf,r],0]}var pbe=kbe(vG),mbe=kbe(gf),dbe=kbe(oU),_be=kbe(fu),hbe=kbe(fu),xbe=jbe(vG),ybe=jbe(gf),wbe=jbe(oU),gbe=jbe(fu),qbe=[0,jbe(fu),gbe,wbe,ybe,xbe,frr,hbe,_be,dbe,mbe,pbe,urr,arr,err,trr];function Ibe(r,n){switch(n){case 0:return r[5];case 1:return r[4];case 2:return r[3];case 3:return r[2];default:return r[1]}}function Dbe(r,n,t){if(n)switch(t){case 0:return r[11];case 1:return r[10];case 2:return r[9];case 3:return r[8];default:return r[7]}return r[12]}r:{var Ebe=function(r){return R0(function(r){return 32<=r?r:32},r)},Nbe=function(r,n){var t=HH(r),e=HH(n);if(e=1)for(var v=1;;){var o=AV(u+1|0,0);vC(o,0)[1]=v;if(u>=1)for(var A=1;;){var s=VV(f,v-1|0),b=VV(i,A-1|0)===s?0:1,l=A-1|0,B=A-1|0,j=vC(c,l)[l+1]+b|0,k=vC(o,B)[B+1]+1|0,p=SJ(SJ(vC(c,A)[A+1]+1|0,k),j);vC(o,A)[A+1]=p;var m=A+1|0;if(u===A)break;A=m}var d=u+1|0;0<=d&&(o.length-1-d|0)>=0&&(c.length-1-d|0)>=0?oQ(o,0,c,0,d):LJ("Array.blit");var _=v+1|0;if(a===v)break;v=_}return vC(c,u)[u+1]},Tbe=function(r,n){for(var t=r,e=0;;){if(0===t)return e;var a=[0,PL(n,t-1|0),e];t=t-1|0,e=a}},Fbe=function(r){n:{if(14<=r){if(32!==r)break n}else if(12>r)switch(r){case 1:case 9:case 10:break;default:break n}return 1}return 0},Mbe=function(r,n,t){return vie(function(t){return[0,r,n,t]},t)},Pbe=function(r){var n=[0,[0,jse,0]],t=yse(r)-1|0;if(t>=0)for(var e=0;;){if(10===wse(r,e)){var a=n[1];n[1]=[0,tse(e+1|0),a]}var u=e+1|0;if(t===e)break;e=u}var f=c1(XY(n[1]));return[0,function(r){return f[r+1]},f.length-1]},Ube=function(r){var n=Ese[1];if(!n)return 0;var t=n[1][2];return function(r,n){var t=g6(n);1-t&&q6(n);try{var e=n[2],a=e.length-2|0;if(a>=0){var u=0;n:for(;;)for(var f=vC(e,u)[u+1];;){if(!f){var i=u+1|0;if(a===u)break n;u=i;break}var c=f[3];UL(r,f[1],f[2]),f=c}}return void(1-t&&q6(n))}catch(e){var v=iL(e);if(t)throw kQ(v,0);throw q6(n),kQ(v,0)}}(function(r,n){return uL(n[1])},t),function(r){var n=0=0))return LJ("Array.fill");!function(r,n,t,e){for(var a=0;an[1])return r[11]=0,r[17]=Abe,UL(r[17],r,n);var t=n[2];return 65279===t?(c&&(r[2]=-211558048,r[18]=ebe),r[11]=1,r[17]=Abe,PL(r[18],r)):65534===t&&c?(r[2]=r_,r[18]=fbe,r[11]=1,r[17]=Abe,PL(r[18],r)):(r[11]=0,r[17]=Abe,UL(r[17],r,n))},e],o=0;;){var A=PL(v[18],v);if("number"==typeof A){if(tD<=A)throw kQ([0,YL,prr],1);return o}if(Lr>A[1])throw kQ([0,zL,"invalid UTF-8"],1);o=o+1|0}}var ule=PAe([0,QAe]),fle=ule[2],ile=ule[1];function cle(r,n){var t=r+n|0;if(ile(t,1))return t;throw kQ([0,YL,krr],1)}function vle(r,n,t){return ale(gse(n,Fse(t),r))+1|0}function ole(r,n){var t=YY(function(r){return[0,r[2],r[1][1]]},n);if(t)for(var e=t[2],a=t[1];;){if(!e){var u=[0,a];break}var f=e[2],i=e[1],c=i[2],v=a[2],o=UL(_se,a[1],i[1]);0<=(0===o?UL(rse,v,c):o)?e=f:(e=f,a=i)}else u=0;var A=GAe(jrr,u)[2],s=Use(r,cse(Ise(Tse(r),A))),b=vle(A,r,s);return[0,s[1]+1|0,b]}function Ale(r,n){var t=Use(r,n),e=Gse(t,r),a=ele(e),u=[0,[0,[0,e,ale(e),0],0],0,a];return[0,t[1],u]}function sle(r,n){return n?[0,r[1]+1|0,r[2]]:[0,r[1],r[2]+1|0]}function ble(r,n){if(n){if(0=o)for(var s=o;;){var b=Use(r,cse(s)),l=f[1],B=l[2],j=l[1],k=sse(b[2]),p=k[2],m=k[1],d=[0,0,0];let n=d,t=p,e=m,a=b;var _=l0(function(u){var f=u[2],i=u[1],c=sse(f[1]),v=c[2],o=c[1];if(XAe(e,o)&&XAe(v,t))return n[1]=[0,f,n[1]],0;if(XAe(e,o)&&YAe(o,t)){var A=f[2];return ple(n,[0,i,vle(o,r,a),A]),1}if(YAe(o,e)&&YAe(t,v))return 1;if(YAe(o,e)&&XAe(v,t)){var s=f[3],b=f[2];return ple(n,[1,i,vle(v,r,a),b,s]),0}return 1})(j);if($Ae(d[1])&&$Ae(d[2]))var h=B;else h=[0,lle(r,b,d[1],d[2]),B];f[1]=[0,_,h];var x=s+1|0;if(A===s)break;s=x}return XY(f[1][2])}function dle(r){function n(r){return r[1][3]}function t(r,t){var e=n(t);return UL(SAe,n(r),e)}var e=r[5],a=r[3],u=r[2],f=r[1];function i(r,n){return 0!==t(r,n)?1:0}var c=[0,d0(t,r[4])];function v(r){var n=c[1];if(n){var t=n[2];if(t){var e=n[1],a=t[1];if(c[1]=t,i(e,a))return[0,e,0];for(var u=[0,e,cN],f=u,v=1;;){var o=c[1];r:{if(o){var A=o[2];if(A){var s=o[1],b=A[1];if(c[1]=A,i(s,b)){f[v+1]=[0,s,0];break r}var l=[0,s,cN];f[v+1]=l,f=l,v=1;continue}}c[1]=0,f[v+1]=o}return u}}}return c[1]=0,n}if($Ae(c[1]))var o=0;else for(var A=[0,v(),cN],s=A,b=1;;){if($Ae(c[1])){s[b+1]=0;o=A;break}var l=[0,v(),cN];s[b+1]=l,s=l,b=1}return[0,f,u,a,[0,YY(function(r){var n=r[2],t=r[1],e=t[1];if(LB===e){var a=t[2],u=Nse()[2];try{var f=Xue(u,a)}catch(p){var i=iL(p);if(i!==WL)throw kQ(i,0);try{var c=function(r,n,t){for(var e={};n;){switch(n[1]){case 0:e.rdonly=1;break;case 1:e.wronly=1;break;case 2:e.rdwr=1;break;case 3:e.nonblock=1;break;case 4:e.append=1;break;case 5:e.create=1;break;case 6:e.truncate=1;break;case 7:e.excl=1;break;case 8:e.noctty=1;break;case 9:e.dsync=1;break;case 10:e.sync=1}n=n[2]}var a=oH(r),u=a.device.open(a.rest,e,t,!0),f=dV.length,i=new jV(f);return dV[f]={file:u,chanid:i},0|f}(a,Z9,wa),v=c}catch(p){var o=iL(p);if(o[1]!==Yce)throw kQ(o,0);v=PL(xse(W9),a)}try{var A=ML(v,12,0,0,[0,-1],S9[1]),s=1===function(r){return r.dims.length}(A)?A:LJ("Bigarray.array1_of_genarray"),b=s}catch(p){uL(v);b=PL(xse(X9),a)}var l=[0,v,b];Wue(u,a,l);f=l}var B=[0,f]}else B=ga<=e?[2,t[2]]:[1,t[2][2]];var j=[0,B,t],k=Ble(j,mle(j,n));if(k)var p=kle(k),m=p[3],d=[0,jle(p[1],p[2]),m];else d=0;return[0,t,ole(j,n),d]},YY(function(r){return[0,zY(r)[1][3],r]},o))],e]}function _le(r,n,t){return a0(wAe,Dbe(r[2],t,n),qfe)}function hle(r,n,t){var e=r[1][2];return UL(a0(wAe,r[2][14],qfe),n,e)}function xle(r,n,t,e,a){return UL(a0(wAe,Dbe(r[2],t,n),hse),e,a)}function yle(r,n,t,e,a){var u=r[2],f=Zue(u,n);r:{for(var i=vC(u[2],f)[f+1];i;){var c=0===KC(i[1],n)?1:0,v=i[3];if(c){var o=c;break r}i=v}o=0}if(o)throw kQ([0,YL,rnr],1);for(var A=r[1],s=0;;){if(s===A.length-1)var b=0;else{if(!$Y(A[s+1])){s=s+1|0;continue}b=[0,s]}var l=GAe(nnr,b);return Wue(r[2],n,l),vC(r[1],l)[l+1]=[0,[0,e,[0,aB,t]]],PL(a,0),vC(r[1],l)[l+1]=[0,[0,e,-1010337642]],0}}function wle(r,n,t,e,a){if("number"==typeof a){if(dk>a)return sbe(e);var u=r[1][14];return UL(_le(r,n,t),e,u)}if(Mt<=a[2])return sbe(e);var f=r[1][12];return UL(_le(r,n,t),e,f)}function gle(r,n,t,e){var a=[0,sbe];function u(r){return UL(a[1],t,0)}var f=e[1].length-2|0;if(f>=0)for(var i=0;;){var c=vC(e[1],i)[i+1];if(c){var v=c[1],o=v[2],A=v[1];let e=o,f=A;a[1]=function(t,a){return wle(r,n,f,t,e)};var s="number"==typeof o?dk<=o?r[1][13]:r[1][15]:r[1][11];UL(_le(r,n,A),t,s),u()}else u(),u();var b=i+1|0;if(f===i)break;i=b}return u()}function qle(r,n,t,e,a,u){var f=u[1],i=sAe([0,vAe],function(t,e){var a=e[1];r:{n:{for(var u=HH(a)-1|0,f=function(r){return 10!==r&&13!==r?0:1};;){if(0>u)break n;if(1-f(VH(a,u)))break;u=u-1|0}var i=[0,u];break r}i=0}if(i){var c=i[1];if(c===(HH(a)-1|0))var v=a;else{var o=c+1|0;v=HH(a)t[1]){var u=a[1];return[0,K0(r,0,e[1]),u]}if(10===VH(r,t[1])){var f=t[1]+1|0,i=a[1];a[1]=[0,K0(r,f,e[1]-f|0),i],UAe(r,t,e)}else t[1]--}}function Ele(r,n,t,e){for(var a=Dle(UL(hAe(t,Srr),n,e)),u=a,f=0,i=LY(a);;){if(!u)return 0;var c=u[2],v=u[1];UL(cie(t)(zrr),r,v),f!==(i-1|0)&&lbe(t),u=c,f=f+1|0}}function Nle(r,n,t,e){for(var a=Dle(UL(hAe(t,Lrr),n,e)),u=a,f=0,i=LY(a),c=HH(r);;){if(!u)return 0;var v=u[1],o=u[2];0===f?UL(cie(t)(Hrr),r,v):GL(cie(t)(Vrr),c,"",v),f!==(i-1|0)&&lbe(t),u=o,f=f+1|0}}function Tle(r,n,t,e){return function(a,u){if(e>=1)for(var f=1;;){wle(r,n,t,a,u);var i=f+1|0;if(e===f)break;f=i}return 0}}function Fle(r,n,t,e,a){if(0===a[0]){var u=a[3],f=a[2];return yle(t[2],a[1],Qj,u,function(a){gle(r,n,e,t[2]),Tle(r,n,u,f-1|0)(e,Qrr);var i=u?r[1][7]:r[1][9];return UL(_le(r,n,u),e,i)})}var i=a[1],c=t[2],v=a[4],o=a[3],A=a[2],s=Xue(c[2],i),b=[0,[0,GAe(Yrr,vC(c[1],s)[s+1])[1],dk]];vC(c[1],s)[s+1]=b,gle(r,n,e,t[2]),function(r,n,t,e){var a=e[2],u=e[3],f=Tle(r,n,a,e[1]);Nle($L(hAe(t,Rrr),f,dk,function(t,e){var u=a?r[1][8]:r[1][10];return UL(_le(r,n,a),t,u)},0),function(t,e){return xle(r,n,a,t,e)},t,u)}(r,n,e,[0,A-2|0,o,v]),vC(c[1],s)[s+1]=0;for(var l=c[2],B=Zue(l,i),j=0,k=vC(l[2],B)[B+1];;){if(!k)return 0;var p=k[3];if(0===KC(k[1],i))return l[1]=l[1]-1|0,j?(j[3]=p,0):(vC(l[2],B)[B+1]=p,0);j=k,k=p}}function Mle(r,n,t,e){function a(e){return UL(hAe(t,Grr),function(t,a){var u=r[1][16];return UL(_le(r,n,e),t,u)},0)}return function e(u,f,i){for(var c=u,v=f,o=i;;){if(!o)return PL(cie(t)(Urr),v);var A=o[1],s=A[4],b=A[3],l=A[2],B=A[1];if(s)break;var j=o[2];if(!fle(c,B))throw kQ([0,YL,Prr],1);var k=v+$0(cle(B,l)-c|0,32);c=cle(B,l),v=k,o=j}var p=o[2];if(!fle(c,B))throw kQ([0,YL,Mrr],1);var m=v+$0(B-c|0,32),d=m+a(b);e(cle(B,1),d,p),lbe(t);var _=sAe([0,lbe],function(t,e){return Efe(t),xle(r,n,b,t,e),mfe(t)});return Ele(m,function(r,n){return Nfe(r,0),_(r,n),mfe(r)},t,s)}(1,"",e)}function Ple(r,n,t,e,a,u){for(var f=u[1],i=[0,0,1,0];;){var c=i[3],v=i[2],o=i[1];if(!f)break;var A=f[1],s=A[3],b=A[2];if(s){var l=s[1],B=f[2],j=[0,[0,v,b,l[1],YY(function(r){return r[2]},d0(function(r,n){return UL(_se,n[1],r[1])},l[2]))]],k=cle(v,b);f=B,i=[0,rY(OY(c),o),k,j]}else{f=f[2],i=[0,o,cle(v,b),c]}}r:if(c){var p=c[1],m=p[4],d=p[3],_=p[2],h=p[1];if(m&&!m[2]){var x=[0,[0,h,_,d,m[1]]];break r}x=0}else x=0;if(x)var y=[0,[0,x[1]],XY(o)];else y=[0,0,XY(rY(OY(c),o))];var w=a0(function(r,n){var t=n[2],e=n[1];return 0===r[0]&&(r[2]-1|0)<=u[3]?t?[0,[0,r,[0,t[1],e]],0]:[0,e,[0,r]]:[0,[0,r,e],t]},u[2],Nrr),g=w[2],q=w[1];if(g){var I=g[1];if(0!==I[0])throw kQ([0,YL,Orr],1);yle(t[2],I[1],Mt,I[3],function(f){return qle(r,n,t,e,a,u)})}else qle(r,n,t,e,a,u);var D=y[1],E=$Ae(y[2]);if(1-(E?$Y(D):E)){lbe(a);var N=t[2],T=t[1];Ele(OL(hAe(a,Crr),T,"",function(n,t){return hle(r,n)},0,function(t,e){return gle(r,n,t,e)},N),function(t,e){return function(r,n,t,e){var a=e[1],u=[0,1];function f(e){var a=e[3],f=e[2],i=e[1];if(!fle(u[1],i))throw kQ([0,YL,$rr],1);var c=i-u[1]|0;if(c>=1)for(var v=1;;){sbe(t);var o=v+1|0;if(c===v)break;v=o}var A=ZJ(1,f);if(A>=1)for(var s=1;;){var b=a?r[1][5]:r[1][6];UL(_le(r,n,a),t,b);var l=s+1|0;if(A===s)break;s=l}u[1]=cle(i,f)}for(var i=e[2];i;){var c=i[1],v=i[2];f([0,c[1],c[2],c[3]]),i=v}if(a){var o=a[1];f([0,o[1],o[2],o[3]])}var A=e[1];if(A){var s=A[1],b=s[3],l=s[4];UL(cie(t)(Krr),function(t,e){return xle(r,n,b,t,e)},l)}var B=1-$Ae(e[2]);if(!B)return B;var j=e[2];return UL(cie(t)(Frr),function(t,e){return Mle(r,n,t,e)},j)}(r,n,t,e)},a,y);var F=q}else F=q;for(;;){if(!F)return;var M=F[2],P=F[1];lbe(a);var U=t[1];OL(cie(a)(Trr),U,"",function(n,t){return hle(r,n)},0,function(e,a){return Fle(r,n,t,e,a)},P),F=M}}function Ule(r,n,t){var e=r[1],a=t[2],u=t[1];if(LB===e)var f=[0,r[2]];else if(ga<=e){var i=r[2];f=[0,MY(i[2],fQ+i[1])]}else f=r[2][1];var c=MY(f,"unknown");return KL(cie(n)(Err),c,Ife,u,Ife,a)}function Gle(r,n,t,e,a,u){var f=u[3],i=u[2],c=u[1],v=[0,t,[0,AV(e,0),Vue(0,8)]],o=v[1];OL(cie(a)(Drr),o,"",function(n,t){var e=r[1][1];return UL(a0(wAe,r[2][14],qfe),n,e)},0,function(r,n){return Ule(c,r,n)},i),1-$Ae(f)&&cie(a)(Irr);for(var A=f,s=0;;){if(!A)return 0;var b=A[1],l=A[2];0!==s&&(lbe(a),Ile(r,n,v,a));for(var B=b[2],j=0,k=b[1];;){if(!B){A=l,s=s+1|0;break}var p=B[2],m=B[1];0!==j&&lbe(a),Ple(r,n,v,fse(k,j)+1|0,a,m),B=p,j=j+1|0}}}function $le(r,n,t,e,a,u){var f=a0(wAe,r[2][6],hse);return OL(cie(a)(wrr),function(n,t){return function(r,n,t){return bbe(Ibe(r[2],t),n,function(r,n){switch(t){case 0:var e="help";break;case 1:e="note";break;case 2:e=C9;break;case 3:e=H9;break;default:e="bug"}return qfe(r,e)})}(r,n,t)},t,function(e,a){return function(r,n,t,e,a){return bbe(Ibe(r[2],t),e,function(r,t){if(!a)return 0;var e=a[1];return oAe(qrr,r),qfe(r,PL(n,e)),oAe(grr,r)})}(r,n,t,e,a)},e,f,u)}function Kle(r,n,t,e){return Nle($L(hAe(t,yrr),n,"",function(n,t){var e=r[1][4];return UL(a0(wAe,r[2][15],qfe),n,e)},0),hse,t,e)}function Ole(r){return"E????"}function Rle(r,n){var t=UC(r[1],n[1]);if(0!==t)return t;var e=PC(r[2],n[2]);return 0===e?PC(r[3],n[3]):e}var Qle=[0,function(r,n){var t=Rle(r[1],n[1]);return 0===t?Rle(r[2],n[2]):t}],Cle=O1(Qle),Hle=R1(Qle);function Vle(r,n){return[0,n,r,0]}var Lle=[0,yz,yz];function zle(r){var n=r[1]===fQ?1:0;if(n)var t=0===r[2]?1:0,e=t?0===r[3]?1:0:t;else e=n;return e}function Sle(r,n){return[0,r[1],n[2]]}function Zle(r){if(-1!==r[2])return fQ+r[2]+Qu+fQ+(r[3]+1|0);var n=r[3];return PL(R3(enr),n)}function Wle(r){if(r[1][1]===fQ)return"(unknown location)";var n=dH(r[2],r[1])?"":rF+Zle(r[2]),t=nK+Zle(r[1])+n;return r[1][1]+t}function Xle(r,n,t){var e=MY(n,0);return K0(r,e,MY(t,HH(r))-e|0)}var Jle=[Ul,"Source.ParseError",qH()],Yle=Sue([0,dH,function(r){return(20|r[2])&r[1]}]),rBe=Yle[1].call(null,0);function nBe(r,n){return Yle[7].call(null,r,[0,n[1][2],n[1][3]])}function tBe(r){var n=r[1],t=B0(function(r){if(0!==r[0])return 0;var n=poe("/// @deprecated",r[1]);if(!n)return 0;var t=n[1];return t!==fQ?poe(cnr,t):inr})(n);return 0===t?0:[0,O0(vnr,t)]}function eBe(r){var n=r[1];return B0(function(r){if(0!==r[0])return 0;var n=r[1],t=poe("///",n);if(!t){var e=poe("/**",n),a=UY(C0,e?moe("*/",e[1]):0);return a?[0,[1,a[1]]]:0}var u=t[1];if(u===fQ)return unr;var f=poe(fnr,u);return f?[0,[0,f[1]]]:0})(n)}function aBe(r){var n=R1(r),t=n[1],e=n[4],a=n[6],u=n[9],f=n[20],i=n[29],c=n[2],v=n[3],o=n[5],A=n[7],s=n[8],b=n[10],l=n[11],B=n[12],j=n[13],k=n[14],p=n[16],m=n[17],d=n[19],_=n[28],h=n[34],x=n[35],y=n[36],w=O1(r),g=w[3],q=w[4],I=w[16],D=[Ul,"Dom.Make(X).Clash",qH()];function E(r,n){if(g(r,n))throw kQ([0,D,r],1);return q(r,n)}var N=[0,w[1],w[2],g,q,w[5],,w[7],w[8],w[9],w[10],,,,w[14],,I,,,w[19],,,w[22],w[23],,,,,,,,,,,,,,w[37],,,,,,,E,function(r,n){return I(function(r,n){return E(r,n)},n,r)}],T=[Ul,"Env.Make(X).Clash",qH()];function F(r,n){return u(function(r,n,t){throw kQ([0,T,r],1)},r,n)}return[0,t,c,v,e,o,a,A,s,u,b,l,B,j,k,,p,m,,d,f,,,,,,,,_,i,,,,,h,x,y,,,,,N,T,function(r){for(var n=f(r),t=N[1];;){if(!n)return t;var e=n[2],a=N[4].call(null,n[1][1],t);n=e,t=a}},function(r,n){return N[16].call(null,function(r,t){var a=i(r,n);return a?e(r,a[1],t):t},r,t)},function(r){return YY(function(r){return r[1]},f(r))},function(r){for(var n=r,a=t;;){if(!n)return a;var u=n[1];n=n[2],a=e(u[1],u[2],a)}},,function(r,n){return u(function(r,n,t){return[0,t]},r,n)},function(r,n,t){return F(t,a(r,n))},F,function(r){return e0(F,t,r)}]}var uBe=aBe([0,r1]),fBe=O1([0,r1]),iBe=uBe[1];function cBe(r){return uBe[13].call(null,function(r,n,t){return fBe[22].call(null,n)+t|0},r,0)}function vBe(r,n,t){return[0,fBe[7].call(null,n,t)]}var oBe=uBe[9];function ABe(r,n){return oBe(vBe,r,n)}function sBe(r,n){return fBe[16].call(null,function(n){var t=PL(r,n),e=fBe[7];return function(r){return e(t,r)}},n,fBe[1])}function bBe(r,n){for(var t=fBe[16].call(null,function(r,n){var t=fBe[5].call(null,r);return uBe[4].call(null,r,t,n)},r,iBe);;){var e=function(r){var t=uBe[29].call(null,r,n);return t?t[1]:fBe[1]};let r=e;var a=UL(ABe,t,uBe[34].call(null,function(n){return sBe(r,n)},t)),u=cBe(a);if(cBe(t)===u)return t;t=a}}function lBe(r,n){for(var t=Y0(44,n);;){if(!t)return 0;var e=t[2],a=t[1],u=a!==fQ?1:0;if(u)for(var f=Anr;;){if(!f){var i=0;break}var c=f[1][1]===a?1:0,v=f[2];if(c){i=c;break}f=v}else i=u;i?(Sce[1]=Ace[4].call(null,a,r,Sce[1]),t=e):(PL(O3(function(r){if(Nce[1])throw kQ([0,Xce,r],1);return PL($3(tY,h4),r),lY(1)},snr),a),t=e)}}function BBe(r,n){var t=r[1];if("number"!=typeof t){var e=t[1];return r[1]=[0,[W,function(r){var t=RV(n);an!==t&&W===t&&gY(n);var a=RV(e);return an===a?e[1]:W===a?gY(e):e}]],0}if(!t)return 0;var a=RV(n);return an===a?n[1]:W===a?gY(n):n}var jBe=[0,0],kBe=[0,1];function pBe(r,n){return BBe(r,[W,function(r){var t=n[1];if("number"!=typeof t){var e=t[1];n[1]=1;var a=RV(e);return an===a?e[1]:W===a?gY(e):e}if(t)return 0;throw kQ([0,zL,"Lbool.set_false() on surely true variable"],1)}])}function mBe(r){if(0===r)return jBe;for(var n=[0,[0,0]],t=r;;){if(!t)return n;var e=t[2];pBe(t[1],n),t=e}}var dBe=R1([0,y0]),_Be=O1([0,y0]);function hBe(r,n,t,e){var a=r?r[1]:tle,u=n?n[1]:Ole,f=x6(Ube,function(r){if(KY(Ese[1]))throw kQ([0,Dse,87013005],1);var n=Vue(0,4);return Ese[1]=[0,[0,Vue(0,pA),n,Pbe]],dle(e)});dAe(_Ae,MY(Obe(a),iN),t);var i=f[5],c=f[4],v=f[3],o=f[2],A=f[1];dAe(_Ae,MY(Obe(a),Cc),t),Rfe(t,2,2147483646);var s=0===c[0]?CAe(MY(OAe(YY(function(r){var n=KAe(r[3]);if(!n)return 0;var t=n[1],e=t[1];return HH(fQ+(fse(e,LY(t[2]))+1|0))},c[1]),QAe),0),3):0;function b(r){if(!r)return 0;for(var n=r[1],t=b(r[2]),e=n[2],a=0;;){if(!e)return a+t|0;var u=e[2];(0===e[1][0]?1:0)?(e=u,a=a+1|0):e=u}}var l=0===c[0]?MY(OAe(YY(function(r){return function r(n){if(!n)return 0;var t=n[1][2],e=r(n[2]);return b(t)+e|0}(r[3])},c[1]),QAe),0):0;if(cie(t)(_rr),0===c[0]){var B=c[1];$le(a,u,A,v,t,o),1-$Ae(B)&&lbe(t),sAe([0,lbe],function(r,n){return Gle(a,A,s,l,r,n)})(t,B)}else{var j=c[1];j?sAe([0,lbe],function(r,n){var t=n[1],e=n[2];return $L(cie(r)(xrr),function(r,n){return Ule(t,r,n)},e,function(r,n){return $le(a,u,A,v,r,n)},o)})(t,j):$le(a,u,A,v,t,o)}return 1-$Ae(i)&&lbe(t),sAe([0,lbe],function(r,n){return Kle(a,s,r,n)})(t,i),cie(t)(hrr)}function xBe(r){var n=[0,r];return function(r){var t=n[1];return n[1]=n[1]+1|0,t}}function yBe(r,n){var t=dBe[36].call(null,n);function e(n){var t=n[2],e=t[1],a=n[1],u=[0,e,YY(r,t[2])];return[0,PL(r,a),u]}return dBe[40].call(null,function(r){return DY(e,t)})}function wBe(r,n,t,e,a,u,f){return[0,0,n,r,t,f,e?e[1]:0,a?a[1]:0,u?u[1]:0]}function gBe(r,n,t,e,a,u,f){return[0,1,n,r,t,f,e?e[1]:0,a?a[1]:0,u?u[1]:0]}function qBe(r){return[0,[0,r,0]]}function IBe(r,n,t,e){return[0,[0,0,[0,wBe(r,n,t,0,0,0,e),0]]]}function DBe(r,n,t,e){return[1,[0,gBe(r,n,t,0,0,0,e),0]]}function EBe(r,n){if(0!==r[0])return[1,r[1]];var t=r[1],e=t[2],a=PL(n,t[1]);if(0!==a[0])return[1,rY(e,a[1])];var u=a[1];return[0,[0,u[1],rY(e,u[2])]]}function NBe(r,n){if(!n)return qBe(0);var t=n[2];return EBe(PL(r,n[1]),function(n){var e=NBe(r,t);if(0!==e[0])return[1,e[1]];var a=e[1];return[0,[0,[0,n,a[1]],a[2]]]})}function TBe(r,n){if(!n)return qBe(0);var t=n[2];return EBe(PL(r,n[1]),function(n){return TBe(r,t)})}function FBe(r,n,t){if(!t)return qBe(n);var e=t[2];return EBe(UL(r,n,t[1]),function(n){return FBe(r,n,e)})}function MBe(r,n){return 0===n[1]&&Wce(n[2])||(r[1]=[0,n,r[1]]),0}function PBe(r){return XY(r[1])}function UBe(r){for(var n=r;;){if(!n)return 0;var t=1===n[1][1]?1:0,e=n[2];if(t)return t;n=e}}function GBe(r){var n=r[2],t=2<=r[1]?"":n!==fQ?PL(R3(Gnr),n):"";switch(r[1]){case 1:var e=r[4],a=PL(R3(Knr),e);break;case 0:a=$nr;break;default:a=Onr}var u=r[6],f=l0(function(r){return 0===r[1]?1:0})(u),i=0===f?"":ku+O0(Rnr,YY(function(r){return r[3]},f)),c=0===r[7]?"":ku+O0(Qnr,YY(function(r){return hM+r},r[7])),v=r[5],o=Wle(r[3]);return OL(R3(Cnr),o,a,t,v,i,c)}function $Be(r,n){var t=[0,-1],e=n[2]-1|0;if(e>=1)for(var a=1;;){t[1]=S0(r,t[1]+1|0,10);var u=a+1|0;if(e===a)break;a=u}return 1+(t[1]+n[3]|0)|0}function KBe(r){for(var n=r[6];;){if(n){var t=0===n[1][1]?1:0,e=n[2];if(!t){n=e;continue}var a=t}else a=0;return a?r[6]:[0,[0,0,r[3],""],r[6]]}}function OBe(r,n,t,e){var a=e[1],u=e[2],f=a[3],i=a[2],c=a[1],v=u[3],o=u[2],A=[0,[0,"suggestion_applicability",t?xnr:Q],0],s=[0,[0,"suggested_replacement",t?[0,xF,t[1]]:Q],A],b=n?[0,xF,n[1]]:Q;return[0,rO,[0,[0,gnr,[0,xF,c]],[0,[0,"line_start",[0,NN,i]],[0,[0,"column_start",[0,NN,f+1|0]],[0,[0,"line_end",[0,NN,o]],[0,[0,"column_end",[0,NN,v+1|0]],[0,[0,"is_primary",[0,uy,dH(r,wnr)]],[0,[0,ynr,b],s]]]]]]]]}function RBe(r){var n=0===r[1]?1:0;return n?2===Zce(r[2])?1:0:n}function QBe(r){for(var n=r;;){if(!n)return;var t=n[2],e=n[1],a=RBe(e)?[0,1,e[2],e[3],e[4],e[5],e[6],e[7],e[8]]:e;if(1===a[1]||Bce[1])switch(sce[1]){case 0:var u=GBe(a);PL($3(tY,pnr),u),n=t;break;case 1:var f=a[3],i=zle(f[1]);if(i?zle(f[2]):i)var c=GBe(a);else{var v=a[3][1][1],o=Qie(v,Vie);let r=o,n=[0,xF,[0,[0,v],o]];var A=YY(function(t){var e=t[1]?0:1,a=t[2],u=t[3],f=tse($Be(r,a[2]));return PL(Mbe(Ase(n,tse($Be(r,a[1])),f),e,Fnr),u)},KBe(a)),s=function(n){var t=n[1],e=$Be(r,t[1]),a=C0(Ebe(K0(r,e,$Be(r,t[2])-e|0)));if(n[2]===fQ)return PL(oie(Enr),a);if(a===fQ){var u=n[2];return PL(oie(Nnr),u)}var f=n[2];return UL(oie(Tnr),a,f)};switch(a[1]){case 0:var b=2;break;case 1:b=3;break;default:b=0}var l=YY(s,a[8]),B=a[7],j=rY(YY(oie(Mnr),B),l),k=a[2]===fQ?0:[0,a[2]];let t=A,e=b,u=j,f=k;var p=a[5];let i=[0,function(r){return r}],d=[0,tle];var m=PL(vie(function(r){return[0,e,r,f,t,u]},Pnr),p);c=UL(sie(nfe,Unr),function(r,n){return hBe(d,i,r,n)},m)}PL($3(tY,mnr),c),n=t;break;default:var d=YY(function(r){return OBe([0,r[1]],[0,r[3]],0,r[2])},KBe(a)),_=YY(function(r){return OBe(0,0,[0,r[2]],r[1])},a[8]),h=[0,[0,"notes",[0,ej,YY(function(r){return[0,xF,r]},a[7])]],0],x=[0,[0,"spans",[0,ej,rY(d,_)]],h];switch(a[1]){case 0:var y=qnr;break;case 1:y=Inr;break;default:y=Dnr}var w=cAe(0,0,0,0,[0,rO,[0,[0,hnr,[0,xF,a[5]]],[0,[0,_nr,[0,xF,a[2]]],[0,[0,"level",[0,xF,y]],x]]]]);PL($3(nY,dnr),w),n=t}else n=t}}function CBe(r){return 1-UBe(PBe(r))}function HBe(r,n){var t=r?r[1]:0,e=[0,0],a=PL(n,e),u=PBe(e);r:if(a){var f=a[1];if(!t&&UBe(u))break r;return[0,[0,f,u]]}return[1,u]}function VBe(r){if(0!==r[0])return QBe(r[1]),0;var n=r[1],t=n[2],e=n[1];return QBe(t),jce[1]&&0!==t||c0(RBe,t)?0:[0,e]}function LBe(r){var n=VBe(r);return n?n[1]:Jce(1)}var zBe=[Ul,"Idllib.Exception.UnsupportedCandidFeature",qH()];function SBe(r){for(var n=loe(r),t=0;;){if(!n)return t;var e=hC(t,Ga)+n[1]|0;n=n[2],t=e}}function ZBe(r){var n=97<=r?1:0,t=n?r<=Tx?1:0:n;if(t)var e=t;else{var a=65<=r?1:0;e=a?r<=90?1:0:a}return e}function WBe(r){var n=48<=r?1:0;return n?r<=57?1:0:n}function XBe(r){var n=loe(r);if(!n)return 0;var t=n[1],e=95===t?1:0,a=n[2],u=e||ZBe(t);if(!u)return u;for(var f=a;;){if(!f)return 1;var i=f[1],c=95===i?1:0,v=f[2];if(c)var o=c;else o=ZBe(i)||WBe(i);if(!o)return o;f=v}}function JBe(r){return 0!==moe(Xnr,r)?1:0}function YBe(r){var n=UC(r,PE);r:{if(0<=n){if(0=0)for(var a=0;;){var u=VV(n,a);r:{n:{if(35<=u){if(39!==u&&92!==u)break n}else{if(14>u){if(9<=u)switch(u-9|0){case 0:q2(t,N8);break r;case 1:q2(t,T8);break r;case 4:q2(t,F8);break r;default:break n}break n}if(34>u)break n}w2(t,92),w2(t,u);break r}w2(t,u)}var f=a+1|0;if(e===a)break;a=f}return qfe(r,_2(t)),qfe(r,Ltr),mfe(r)}(r,n):qfe(r,n)}function e(r,t){Tfe(r,1);var u=t[2];if("number"==typeof u)switch(u){case 0:qfe(r,vtr);break;case 1:qfe(r,otr);break;default:throw kQ([0,YL,Atr],1)}else switch(u[0]){case 0:qfe(r,aje(u[1]));break;case 1:qfe(r,u[1][2]);break;case 2:var i=u[3],v=u[2],o=u[1];n(r,str),f(r,[0,o,v,i]);break;case 3:var A=u[1];n(r,"opt"),e(r,A);break;case 4:var s=u[1];n(r,"vec"),e(r,s);break;case 5:a(r,btr,u[1]);break;case 6:a(r,ltr,u[1]);break;case 7:var b=u[1];Nfe(r,2),qfe(r,"service {");for(var l=b;;){if(!l){Ufe(r,0,-2),qfe(r,Btr),mfe(r);break}var B=l[2],j=l[1];$fe(r),c(r,j),qfe(r,ctr),l=B}break;default:throw kQ([0,YL,jtr],1)}return mfe(r)}function a(r,n,t){var e=n===Ej?1:0;1"),i(r,e);for(var u=a;;){if(!u)return;var f=u[2];qfe(r,uje(u[1])),u=f}}function i(r,a){var u=LY(a);qfe(r,ytr);for(var f=a,i=0;;){if(!f)return qfe(r,wtr);var c=f[1],v=c[2][1],o=f[2];v&&(t(r,v[1][2]),n(r,htr)),e(r,c[2][2]),i<(u-1|0)&&n(r,xtr),f=o,i=i+1|0}}function c(r,a){v(r,a[1]),Tfe(r,1),t(r,a[2][1][2]),n(r,gtr);var u=a[2][2][2];return"number"==typeof u||2!==u[0]?e(r,a[2][2]):f(r,[0,u[1],u[2],u[3]]),mfe(r)}function v(n,t){var e=r[1];if(e){var a=Yle[8].call(null,e[1],[0,t[1][2],t[1][3]]);if(a)for(var u=eBe(a[1]);;){if(!u)return;var f=u[2],i=u[1];if(0===i[0]){var c=i[1];qfe(n,Itr),qfe(n,c),Pfe(n),u=f}else for(var v=Y0(10,i[1]);;){if(!v){u=f;break}var o=v[2],A=v[1];0 {"),Nfe(r,2);for(var j=B;;){if(!j){Ufe(r,0,-2),qfe(r,Gtr),mfe(r),mfe(r);break r}var k=j[2],p=j[1];$fe(r),c(r,p),qfe(r,Etr),j=k}}var m=a[2];Efe(r),n(r,$tr),n(r,Ktr),i(r,b),qfe(r,Otr),e(r,m),mfe(r);break r}throw kQ([0,YL,Rtr],1)}return $fe(r)}return[0,,,,,,,,,,,,,,,,,function(r){var n=d2(x$),t=Wfe(n);return e(t,r),Mfe(t),_2(n)},function(r){var n=d2(x$),t=Wfe(n);return function(r,n){Nfe(r,0);for(var t=n[2][1];;){if(!t)return v(r,n[1]),A(r,n[2][2]),mfe(r);var e=t[2];o(r,t[1]),qfe(r,Dtr),$fe(r),t=e}}(t,r),Mfe(t),_2(n)},function(r){var n=d2(x$),t=Wfe(n);return i(t,r),Mfe(t),_2(n)}]}var bje=sje([0,0]),lje=bje[17],Bje=bje[18],jje=aBe([0,soe]),kje=aBe([0,r1]),pje=O1([0,r1]),mje=[Ul,"Idllib.Typing.Recover",qH()],dje=kje[1];function _je(r,n){return[0,n,r,0]}function hje(r,n,t){return O3(function(t){var e=function(r){return function(n){return gBe(r,"",wer,yer,xer,her,n)}}(n)(t);throw MBe(r[2],e),kQ(mje,1)},t)}function xje(r,n){var t=r[3],e=r[2];return[0,kje[48].call(null,r[1],n),e,t]}function yje(r){var n=r[2][1][2];return 1===n[0]?SBe(n[1]):n[1]}function wje(r,n){var t=yje(n);return soe(yje(r),t)}function gje(r,n){return KC(r[2][1],n[2][1])}function qje(r,n){var t=kje[29].call(null,n[2],r[1]);if(t)return t[1];var e=n[2];return PL(hje(r,n[1],_er),e)}function Ije(r,n){var t=n[2];if("number"==typeof t)switch(t){case 0:return Vle(0,n[1]);case 1:return n;default:throw kQ([0,YL,oer],1)}switch(t[0]){case 0:return n;case 1:return qje(r,t[1]),n;case 2:var e=t[3],a=t[1],u=YY(function(n){return Dje(r,n)},t[2]),f=YY(function(n){return Dje(r,n)},e);if(1=f>>>0)switch(f){case 0:return Zje(r,n,a,u);case 2:return Sje(r,n,a,u);case 3:return zje(r,n,a,u)}return Qje()}function Xje(r,n,t,e,a,u,f){var i=[0,r,u,a];if("number"==typeof f){if(4===f)return Wje(i,n,t,43);if(22===f)return zje(i,n,e,f)}return $je()}function Jje(r,n,t,e,a){var u=[0,n,a,t[11]],f=PL(e,t);if("number"!=typeof f&&2===f[0]){var i=[0,u,f[1],t[11],t[12]],c=PL(e,t);if("number"==typeof c&&21===c){var v=16,o=PL(e,t);if("number"==typeof o)switch(o){case 0:return r<50?Yje(r+1|0,i,t,e,v):aL(Yje,[0,i,t,e,v]);case 1:return r<50?rke(r+1|0,i,t,e,v):aL(rke,[0,i,t,e,v]);case 3:return r<50?eke(r+1|0,i,t,e,v):aL(eke,[0,i,t,e,v]);case 6:return r<50?cke(r+1|0,i,t,e,v):aL(cke,[0,i,t,e,v]);case 9:return r<50?oke(r+1|0,i,t,e,v):aL(oke,[0,i,t,e,v]);case 11:return r<50?bke(r+1|0,i,t,e,v):aL(bke,[0,i,t,e,v]);case 19:return r<50?jke(r+1|0,i,t,e,v):aL(jke,[0,i,t,e,v]);case 26:return r<50?kke(r+1|0,i,t,e,v):aL(kke,[0,i,t,e,v])}else if(2===o[0]){var A=o[1];return r<50?lke(r+1|0,i,t,e,A,v):aL(lke,[0,i,t,e,A,v])}return $je()}return $je()}return $je()}function Yje(r,n,t,e,a){for(var u=n,f=a;;){var i=[0,u,f,t[11]],c=17,v=PL(e,t);if("number"==typeof v)switch(v){case 1:return r<50?rke(r+1|0,i,t,e,c):aL(rke,[0,i,t,e,c]);case 3:return r<50?eke(r+1|0,i,t,e,c):aL(eke,[0,i,t,e,c]);case 6:return r<50?cke(r+1|0,i,t,e,c):aL(cke,[0,i,t,e,c]);case 9:return r<50?oke(r+1|0,i,t,e,c):aL(oke,[0,i,t,e,c]);case 11:return r<50?bke(r+1|0,i,t,e,c):aL(bke,[0,i,t,e,c]);case 19:return r<50?jke(r+1|0,i,t,e,c):aL(jke,[0,i,t,e,c]);case 26:return r<50?kke(r+1|0,i,t,e,c):aL(kke,[0,i,t,e,c]);case 0:u=i,f=c;continue}else if(2===v[0]){var o=v[1];return r<50?lke(r+1|0,i,t,e,o,c):aL(lke,[0,i,t,e,o,c])}return $je()}}function rke(r,n,t,e,a){var u=[0,n,a,t[11]],f=PL(e,t);if("number"==typeof f&&17===f){var i=[0,u,t[11]],c=PL(e,t);if("number"!=typeof c)switch(c[0]){case 0:var v=c[1];return r<50?nke(r+1|0,i,t,e,v,18):aL(nke,[0,i,t,e,v,18]);case 1:var o=c[1];return r<50?Kke(r+1|0,i,t,e,o,18):aL(Kke,[0,i,t,e,o,18]);default:var A=c[1];return r<50?Rke(r+1|0,i,t,e,A,18):aL(Rke,[0,i,t,e,A,18])}if(7!==c)return $je();return r<50?Vke(r+1|0,i,t,e,0):aL(Vke,[0,i,t,e,0])}return $je()}function nke(r,n,t,e,a,u){var f=t[11],i=t[12],c=PL(e,t);if("number"==typeof c){var v=c-4|0;if(3>>0){if(21===v){var o=[0,n,u,a,f,i];return r<50?tke(r+1|0,o,t,e):aL(tke,[0,o,t,e])}}else if(1>>0){var A=[0,f,i];try{xoe(a)}catch(u){var s=iL(u);if(s===gve)throw kQ([0,Jle,Oje(A),Der],1);throw kQ(s,0)}var b=Vle(a,Oje([0,f,i])),l=Oje([0,f,i]),B=Vle(Eer,Lle),j=Oje([0,f,i]),k=Vle([0,Vle([1,b[2]],j),B],l);return r<50?$ke(r+1|0,n,t,e,k,u,c):aL($ke,[0,n,t,e,k,u,c])}}return $je()}function tke(r,n,t,e){var a=19,u=PL(e,t);if("number"==typeof u)switch(u){case 0:return r<50?Yje(r+1|0,n,t,e,a):aL(Yje,[0,n,t,e,a]);case 1:return r<50?rke(r+1|0,n,t,e,a):aL(rke,[0,n,t,e,a]);case 3:return r<50?eke(r+1|0,n,t,e,a):aL(eke,[0,n,t,e,a]);case 6:return r<50?cke(r+1|0,n,t,e,a):aL(cke,[0,n,t,e,a]);case 9:return r<50?oke(r+1|0,n,t,e,a):aL(oke,[0,n,t,e,a]);case 11:return r<50?bke(r+1|0,n,t,e,a):aL(bke,[0,n,t,e,a]);case 19:return r<50?jke(r+1|0,n,t,e,a):aL(jke,[0,n,t,e,a]);case 26:return r<50?kke(r+1|0,n,t,e,a):aL(kke,[0,n,t,e,a])}else if(2===u[0]){var f=u[1];return r<50?lke(r+1|0,n,t,e,f,a):aL(lke,[0,n,t,e,f,a])}return $je()}function eke(r,n,t,e,a){var u=[0,n,a,t[11]],f=PL(e,t);return"number"==typeof f&&17===f?r<50?ake(r+1|0,u,t,e,20):aL(ake,[0,u,t,e,20]):$je()}function ake(r,n,t,e,a){var u=[0,n,a,t[11]],f=PL(e,t);if("number"==typeof f){if(7===f){return r<50?bpe(r+1|0,u,t,e,0):aL(bpe,[0,u,t,e,0])}}else switch(f[0]){case 0:var i=f[1];return r<50?uke(r+1|0,u,t,e,i,21):aL(uke,[0,u,t,e,i,21]);case 2:var c=f[1];return r<50?ope(r+1|0,u,t,e,c,21):aL(ope,[0,u,t,e,c,21])}return $je()}function uke(r,n,t,e,a,u){var f=t[11],i=t[12],c=PL(e,t);if("number"==typeof c&&25===c){var v=PL(e,t);if("number"==typeof v){if(16===v){var o=[0,n,u,a,f,i];return r<50?fke(r+1|0,o,t,e,22):aL(fke,[0,o,t,e,22])}}else if(2===v[0]){var A=t[12],s=v[1],b=t[11],l=PL(e,t),B=Vle(s,Oje([0,b,A])),j=[0,f,i];try{xoe(a)}catch(u){var k=iL(u);if(k===gve)throw kQ([0,Jle,Oje(j),Mer],1);throw kQ(k,0)}var p=[0,f,A],m=Vle(a,Oje([0,f,i])),d=Oje(p),_=Vle([0,m,Vle([1,B],Oje(p))],d);return r<50?vpe(r+1|0,n,t,e,_,u,l):aL(vpe,[0,n,t,e,_,u,l])}return $je()}return $je()}function fke(r,n,t,e,a){var u=[0,n,a,t[11]],f=PL(e,t);if("number"==typeof f)switch(f){case 0:return r<50?Yje(r+1|0,u,t,e,23):aL(Yje,[0,u,t,e,23]);case 1:return r<50?rke(r+1|0,u,t,e,23):aL(rke,[0,u,t,e,23]);case 3:return r<50?eke(r+1|0,u,t,e,23):aL(eke,[0,u,t,e,23]);case 5:return r<50?epe(r+1|0,u,t,e,0):aL(epe,[0,u,t,e,0]);case 6:return r<50?cke(r+1|0,u,t,e,23):aL(cke,[0,u,t,e,23]);case 9:return r<50?oke(r+1|0,u,t,e,23):aL(oke,[0,u,t,e,23]);case 11:return r<50?bke(r+1|0,u,t,e,23):aL(bke,[0,u,t,e,23]);case 19:return r<50?jke(r+1|0,u,t,e,23):aL(jke,[0,u,t,e,23]);case 26:return r<50?kke(r+1|0,u,t,e,23):aL(kke,[0,u,t,e,23])}else switch(f[0]){case 0:var i=f[1];return r<50?ike(r+1|0,u,t,e,i,23):aL(ike,[0,u,t,e,i,23]);case 2:var c=f[1];return r<50?rpe(r+1|0,u,t,e,c,23):aL(rpe,[0,u,t,e,c,23])}return $je()}function ike(r,n,t,e,a,u){var f=[0,n,u,a,t[11],t[12]],i=PL(e,t);if("number"==typeof i&&25===i){var c=24,v=PL(e,t);if("number"==typeof v)switch(v){case 0:return r<50?Yje(r+1|0,f,t,e,c):aL(Yje,[0,f,t,e,c]);case 1:return r<50?rke(r+1|0,f,t,e,c):aL(rke,[0,f,t,e,c]);case 3:return r<50?eke(r+1|0,f,t,e,c):aL(eke,[0,f,t,e,c]);case 6:return r<50?cke(r+1|0,f,t,e,c):aL(cke,[0,f,t,e,c]);case 9:return r<50?oke(r+1|0,f,t,e,c):aL(oke,[0,f,t,e,c]);case 11:return r<50?bke(r+1|0,f,t,e,c):aL(bke,[0,f,t,e,c]);case 19:return r<50?jke(r+1|0,f,t,e,c):aL(jke,[0,f,t,e,c]);case 26:return r<50?kke(r+1|0,f,t,e,c):aL(kke,[0,f,t,e,c])}else if(2===v[0]){var o=v[1];return r<50?lke(r+1|0,f,t,e,o,c):aL(lke,[0,f,t,e,o,c])}return $je()}return $je()}function cke(r,n,t,e,a){for(var u=n,f=a;;){var i=[0,u,f,t[11]],c=PL(e,t);if("number"==typeof c&&17===c){var v=[0,i,t[11]],o=PL(e,t);if("number"==typeof o)switch(o){case 0:return r<50?Yje(r+1|0,v,t,e,25):aL(Yje,[0,v,t,e,25]);case 1:return r<50?rke(r+1|0,v,t,e,25):aL(rke,[0,v,t,e,25]);case 3:return r<50?eke(r+1|0,v,t,e,25):aL(eke,[0,v,t,e,25]);case 6:u=v,f=25;continue;case 7:return r<50?Jke(r+1|0,v,t,e,0):aL(Jke,[0,v,t,e,0]);case 9:return r<50?oke(r+1|0,v,t,e,25):aL(oke,[0,v,t,e,25]);case 11:return r<50?bke(r+1|0,v,t,e,25):aL(bke,[0,v,t,e,25]);case 19:return r<50?jke(r+1|0,v,t,e,25):aL(jke,[0,v,t,e,25]);case 26:return r<50?kke(r+1|0,v,t,e,25):aL(kke,[0,v,t,e,25]);default:return $je()}break}return $je()}switch(o[0]){case 0:var A=o[1];return r<50?vke(r+1|0,v,t,e,A,25):aL(vke,[0,v,t,e,A,25]);case 1:var s=o[1];return r<50?Ske(r+1|0,v,t,e,s,25):aL(Ske,[0,v,t,e,s,25]);default:var b=o[1];return r<50?Zke(r+1|0,v,t,e,b,25):aL(Zke,[0,v,t,e,b,25])}}function vke(r,n,t,e,a,u){var f=[0,n,u,a,t[11],t[12]],i=PL(e,t);return"number"==typeof i&&25===i?r<50?tke(r+1|0,f,t,e):aL(tke,[0,f,t,e]):$je()}function oke(r,n,t,e,a){var u=t[11],f=t[12],i=PL(e,t),c=Vle(1,Oje([0,u,f]));return r<50?Ake(r+1|0,n,t,e,f,u,c,a,i):aL(Ake,[0,n,t,e,f,u,c,a,i])}function Ake(r,n,t,e,a,u,f,i,c){return r<50?ske(r+1|0,n,t,e,a,u,f,i,c):aL(ske,[0,n,t,e,a,u,f,i,c])}function ske(r,n,t,e,a,u,f,i,c){switch(i){case 16:var v=n[1],o=v[3],A=v[2],s=v[1],b=Vle(n[2],Oje([0,n[3],n[4]])),l=Vle([0,b,f],Oje([0,o,a]));return r<50?Ike(r+1|0,s,t,e,a,o,l,A,c):aL(Ike,[0,s,t,e,a,o,l,A,c]);case 17:var B=n[3],j=n[2],k=n[1],p=Vle([4,f],Oje([0,B,a]));return r<50?pke(r+1|0,k,t,e,a,B,p,j,c):aL(pke,[0,k,t,e,a,B,p,j,c]);case 19:var m=n[5],d=n[4],_=n[3],h=n[2],x=n[1],y=[0,d,m];try{xoe(_)}catch(u){var w=iL(u);if(w===gve)throw kQ([0,Jle,Oje(y),Ger],1);throw kQ(w,0)}var g=Vle(_,Oje([0,d,m])),q=Oje([0,d,a]),I=Oje([0,d,m]),D=Vle([0,Vle([1,g[2]],I),f],q);return r<50?Uke(r+1|0,x,t,e,D,h,c):aL(Uke,[0,x,t,e,D,h,c]);case 24:var E=n[5],N=n[4],T=n[3],F=n[2],M=n[1],P=[0,N,E];try{xoe(T)}catch(u){var U=iL(u);if(U===gve)throw kQ([0,Jle,Oje(P),Ter],1);throw kQ(U,0)}var G=Vle(T,Oje([0,N,E])),$=Vle([0,[0,G],f],Oje([0,N,a]));return r<50?Yke(r+1|0,M,t,e,$,F,c):aL(Yke,[0,M,t,e,$,F,c]);case 26:var K=n[3],O=n[2],R=n[1],Q=Vle([3,f],Oje([0,K,a]));return r<50?pke(r+1|0,R,t,e,a,K,Q,O,c):aL(pke,[0,R,t,e,a,K,Q,O,c]);case 31:var C=n[4],H=n[2],V=n[1],L=n[3],z=[0,C,n[5]],S=Oje([0,C,a]),Z=Oje(z),W=Vle([0,Vle([0,ooe(L)],Z),f],S);return r<50?Uke(r+1|0,V,t,e,W,H,c):aL(Uke,[0,V,t,e,W,H,c]);case 32:var X=n[5],J=n[4],Y=n[2],rr=n[1],nr=Vle(n[3],Oje([0,J,X])),tr=Oje([0,J,a]),er=Oje([0,J,X]),ar=Vle([0,Vle([1,nr[2]],er),f],tr);return r<50?Uke(r+1|0,rr,t,e,ar,Y,c):aL(Uke,[0,rr,t,e,ar,Y,c]);case 34:var ur=n[4],fr=n[2],ir=n[1],cr=Vle(n[3],Oje([0,ur,n[5]])),vr=Vle([0,[0,cr],f],Oje([0,ur,a]));return r<50?Yke(r+1|0,ir,t,e,vr,fr,c):aL(Yke,[0,ir,t,e,vr,fr,c]);case 23:case 35:var or=Vle([0,0,f],Oje([0,u,a]));return r<50?Yke(r+1|0,n,t,e,or,i,c):aL(Yke,[0,n,t,e,or,i,c]);case 25:case 33:var Ar=[0,u,a],sr=function(r){var n=Oje(Ar);return Vle([0,Vle([2,r],Lle),f],n)};return r<50?zke(r+1|0,n,t,e,sr,i,c):aL(zke,[0,n,t,e,sr,i,c]);case 50:case 51:if("number"==typeof c){if(5===c){var br=[0,f,0];return r<50?dke(r+1|0,n,t,e,br,i):aL(dke,[0,n,t,e,br,i])}if(24===c){var lr=[0,n,i,f,u,a],Br=PL(e,t);if("number"==typeof Br)switch(Br){case 0:return r<50?Yje(r+1|0,lr,t,e,51):aL(Yje,[0,lr,t,e,51]);case 1:return r<50?rke(r+1|0,lr,t,e,51):aL(rke,[0,lr,t,e,51]);case 3:return r<50?eke(r+1|0,lr,t,e,51):aL(eke,[0,lr,t,e,51]);case 5:return r<50?mke(r+1|0,lr,t,e,0):aL(mke,[0,lr,t,e,0]);case 6:return r<50?cke(r+1|0,lr,t,e,51):aL(cke,[0,lr,t,e,51]);case 9:return r<50?oke(r+1|0,lr,t,e,51):aL(oke,[0,lr,t,e,51]);case 11:return r<50?bke(r+1|0,lr,t,e,51):aL(bke,[0,lr,t,e,51]);case 19:return r<50?jke(r+1|0,lr,t,e,51):aL(jke,[0,lr,t,e,51]);case 26:return r<50?kke(r+1|0,lr,t,e,51):aL(kke,[0,lr,t,e,51])}else if(2===Br[0]){var jr=Br[1];return r<50?lke(r+1|0,lr,t,e,jr,51):aL(lke,[0,lr,t,e,jr,51])}return $je()}}return $je();default:return Qje()}}function bke(r,n,t,e,a){for(var u=n,f=a;;){var i=[0,u,f,t[11]],c=26,v=PL(e,t);if("number"==typeof v)switch(v){case 0:return r<50?Yje(r+1|0,i,t,e,c):aL(Yje,[0,i,t,e,c]);case 1:return r<50?rke(r+1|0,i,t,e,c):aL(rke,[0,i,t,e,c]);case 3:return r<50?eke(r+1|0,i,t,e,c):aL(eke,[0,i,t,e,c]);case 6:return r<50?cke(r+1|0,i,t,e,c):aL(cke,[0,i,t,e,c]);case 9:return r<50?oke(r+1|0,i,t,e,c):aL(oke,[0,i,t,e,c]);case 19:return r<50?jke(r+1|0,i,t,e,c):aL(jke,[0,i,t,e,c]);case 26:return r<50?kke(r+1|0,i,t,e,c):aL(kke,[0,i,t,e,c]);case 11:u=i,f=c;continue}else if(2===v[0]){var o=v[1];return r<50?lke(r+1|0,i,t,e,o,c):aL(lke,[0,i,t,e,o,c])}return $je()}}function lke(r,n,t,e,a,u){var f=t[11],i=t[12],c=PL(e,t),v=Rje(i,f,a);return r<50?Bke(r+1|0,n,t,e,i,f,v,u,c):aL(Bke,[0,n,t,e,i,f,v,u,c])}function Bke(r,n,t,e,a,u,f,i,c){return r<50?ske(r+1|0,n,t,e,a,u,f,i,c):aL(ske,[0,n,t,e,a,u,f,i,c])}function jke(r,n,t,e,a){var u=[0,n,a,t[11]],f=PL(e,t);return"number"==typeof f&&16===f?r<50?fke(r+1|0,u,t,e,27):aL(fke,[0,u,t,e,27]):$je()}function kke(r,n,t,e,a){var u=t[11],f=t[12],i=PL(e,t),c=Vle(0,Oje([0,u,f]));return r<50?pke(r+1|0,n,t,e,f,u,c,a,i):aL(pke,[0,n,t,e,f,u,c,a,i])}function pke(r,n,t,e,a,u,f,i,c){return r<50?ske(r+1|0,n,t,e,a,u,f,i,c):aL(ske,[0,n,t,e,a,u,f,i,c])}function mke(r,n,t,e,a){var u=n[2],f=n[1],i=[0,n[3],a];return r<50?dke(r+1|0,f,t,e,i,u):aL(dke,[0,f,t,e,i,u])}function dke(r,n,t,e,a,u){return 50===u?r<50?_ke(r+1|0,n,t,e,a):aL(_ke,[0,n,t,e,a]):51===u?r<50?mke(r+1|0,n,t,e,a):aL(mke,[0,n,t,e,a]):Qje()}function _ke(r,n,t,e,a){var u=t[12],f=PL(e,t),i=[0,n[1],a];if("number"==typeof f)switch(f){case 4:case 22:return r<50?hke(r+1|0,i,t,e,u,0,f):aL(hke,[0,i,t,e,u,0,f])}else if(0===f[0]){var c=f[1],v=t[12],o=t[11],A=PL(e,t),s=[0,o,v];try{xoe(c)}catch(f){var b=iL(f);if(b===gve)throw kQ([0,Jle,Oje(s),Fer],1);throw kQ(b,0)}var l=[0,c];return r<50?hke(r+1|0,i,t,e,v,l,A):aL(hke,[0,i,t,e,v,l,A])}return $je()}function hke(r,n,t,e,a,u,f){var i=n[1],c=i[1],v=c[5],o=c[4],A=c[2],s=c[1],b=n[2],l=i[3],B=Vle(c[3],Oje([0,o,v])),j=[0,o,v],k=[0,o,a];if(B[2]!==AB){var p=B[2];throw kQ([0,Jle,Oje(j),p],1)}var m=Vle([0,l,b,u],Oje(k));if("number"==typeof f){if(4===f){var d=t[12],_=[0,[0,s,A,m,o,a],d],h=PL(e,t);if("number"==typeof h){if(22===h)return function(r,n,t,e){return eL(Hje(0,r,n,t,e))}(_,t,d,0)}else if(2===h[0]){var x=h[1];return r<50?xke(r+1|0,_,t,e,x,52):aL(xke,[0,_,t,e,x,52])}return $je()}if(22===f)return function(r,n,t,e,a,u){return eL(Vje(0,r,n,t,e,a,u))}(s,t,a,o,[0,m,0],A)}return $je()}function xke(r,n,t,e,a,u){var f=[0,n,u,a,t[11],t[12]],i=PL(e,t);if("number"==typeof i){if(26===i)return r<50?qke(r+1|0,f,t,e,47):aL(qke,[0,f,t,e,47])}else if(0===i[0]){var c=i[1];return r<50?yke(r+1|0,f,t,e,c,47):aL(yke,[0,f,t,e,c,47])}return $je()}function yke(r,n,t,e,a,u){var f=t[11],i=t[12],c=PL(e,t),v=[0,f,i];try{xoe(a)}catch(u){var o=iL(u);if(o===gve)throw kQ([0,Jle,Oje(v),Uer],1);throw kQ(o,0)}var A=[1,a];return r<50?wke(r+1|0,n,t,e,A,u,c):aL(wke,[0,n,t,e,A,u,c])}function wke(r,n,t,e,a,u,f){if(47<=u)switch(u-47|0){case 0:if("number"==typeof f&&13<=f)switch(f-13|0){case 0:var i=[0,n,u,a],c=PL(e,t);if("number"==typeof c){if(26===c)return r<50?qke(r+1|0,i,t,e,48):aL(qke,[0,i,t,e,48])}else if(0===c[0]){var v=c[1];return r<50?yke(r+1|0,i,t,e,v,48):aL(yke,[0,i,t,e,v,48])}return $je();case 1:var o=PL(e,t),A=[0,[0,0,a]];return r<50?gke(r+1|0,n,t,e,A,u,o):aL(gke,[0,n,t,e,A,u,o]);case 7:var s=[0,n,u,a],b=PL(e,t);if("number"==typeof b){if(26===b)return r<50?qke(r+1|0,s,t,e,49):aL(qke,[0,s,t,e,49])}else if(0===b[0]){var l=b[1];return r<50?yke(r+1|0,s,t,e,l,49):aL(yke,[0,s,t,e,l,49])}return $je();case 12:var B=PL(e,t),j=[0,[0,1,a]];return r<50?gke(r+1|0,n,t,e,j,u,B):aL(gke,[0,n,t,e,j,u,B])}return $je();case 1:if("number"==typeof f&&25===f){var k=PL(e,t),p=n[2],m=n[1],d=[1,[0,0,n[3],a]];return r<50?gke(r+1|0,m,t,e,d,p,k):aL(gke,[0,m,t,e,d,p,k])}return $je();case 2:if("number"==typeof f&&25===f){var _=PL(e,t),h=n[2],x=n[1],y=[1,[0,1,n[3],a]];return r<50?gke(r+1|0,x,t,e,y,h,_):aL(gke,[0,x,t,e,y,h,_])}return $je()}return Qje()}function gke(r,n,t,e,a,u,f){if("number"==typeof f&&16===f){var i=[0,[0,n,u,a],t[11]],c=PL(e,t);if("number"==typeof c)switch(c){case 0:return r<50?Yje(r+1|0,i,t,e,50):aL(Yje,[0,i,t,e,50]);case 1:return r<50?rke(r+1|0,i,t,e,50):aL(rke,[0,i,t,e,50]);case 3:return r<50?eke(r+1|0,i,t,e,50):aL(eke,[0,i,t,e,50]);case 5:return r<50?_ke(r+1|0,i,t,e,0):aL(_ke,[0,i,t,e,0]);case 6:return r<50?cke(r+1|0,i,t,e,50):aL(cke,[0,i,t,e,50]);case 9:return r<50?oke(r+1|0,i,t,e,50):aL(oke,[0,i,t,e,50]);case 11:return r<50?bke(r+1|0,i,t,e,50):aL(bke,[0,i,t,e,50]);case 19:return r<50?jke(r+1|0,i,t,e,50):aL(jke,[0,i,t,e,50]);case 26:return r<50?kke(r+1|0,i,t,e,50):aL(kke,[0,i,t,e,50])}else if(2===c[0]){var v=c[1];return r<50?lke(r+1|0,i,t,e,v,50):aL(lke,[0,i,t,e,v,50])}return $je()}return $je()}function qke(r,n,t,e,a){var u=PL(e,t);if("number"!=typeof u&&0===u[0]){var f=u[1],i=PL(e,t),c=[0,f];return r<50?wke(r+1|0,n,t,e,c,a,i):aL(wke,[0,n,t,e,c,a,i])}return $je()}function Ike(r,n,t,e,a,u,f,i,c){if(15===i)return r<50?Nke(r+1|0,n,t,e,a,u,f,i,c):aL(Nke,[0,n,t,e,a,u,f,i,c]);if(44<=i)switch(i-44|0){case 1:var v=[0,n,i,f,u,a];if("number"==typeof c&&4===c){var o=t[12],A=[0,v,o],s=PL(e,t);r:{if("number"==typeof s)switch(s){case 2:return r<50?Jje(r+1|0,A,t,e,53):aL(Jje,[0,A,t,e,53]);case 18:return r<50?Dke(r+1|0,A,t,e,53):aL(Dke,[0,A,t,e,53]);case 22:break;default:break r}else if(2!==s[0])break r;return r<50?Eke(r+1|0,A,t,e,o,0,s):aL(Eke,[0,A,t,e,o,0,s])}return $je()}return $je();case 0:case 9:return r<50?Nke(r+1|0,n,t,e,a,u,f,i,c):aL(Nke,[0,n,t,e,a,u,f,i,c])}return Qje()}function Dke(r,n,t,e,a){var u=t[11],f=PL(e,t);if("number"!=typeof f&&0===f[0]){var i=f[1],c=t[12],v=t[11],o=PL(e,t),A=[0,v,c];try{xoe(i)}catch(c){var s=iL(c);if(s===gve)throw kQ([0,Jle,Oje(A),$er],1);throw kQ(s,0)}var b=Vle([1,i,[0,""]],Oje([0,u,c]));return r<50?Ike(r+1|0,n,t,e,c,u,b,a,o):aL(Ike,[0,n,t,e,c,u,b,a,o])}return $je()}function Eke(r,n,t,e,a,u,f){var i=n[1],c=[0,i[1],i[2],[0,i[3],u],i[4],a];if("number"==typeof f){if(22===f)return Cje(c,t,a,a,0)}else if(2===f[0]){var v=f[1];return r<50?xke(r+1|0,c,t,e,v,46):aL(xke,[0,c,t,e,v,46])}return $je()}function Nke(r,n,t,e,a,u,f,i,c){r:{if("number"==typeof c)switch(c){case 4:var v=t[12],o=[0,[0,n,i,f,u,a],v],A=PL(e,t);n:{if("number"==typeof A)switch(A){case 2:return r<50?Jje(r+1|0,o,t,e,44):aL(Jje,[0,o,t,e,44]);case 18:return r<50?Dke(r+1|0,o,t,e,44):aL(Dke,[0,o,t,e,44]);case 3:case 22:break;default:break n}else if(2!==A[0])break n;return r<50?Tke(r+1|0,o,t,e,v,0,A):aL(Tke,[0,o,t,e,v,0,A])}return $je();case 3:case 22:break;default:break r}else if(2!==c[0])break r;var s=[0,f,0];return r<50?Fke(r+1|0,n,t,e,a,u,s,i,c):aL(Fke,[0,n,t,e,a,u,s,i,c])}return $je()}function Tke(r,n,t,e,a,u,f){var i=n[1],c=i[4],v=i[2],o=i[1],A=[0,i[3],u];return r<50?Fke(r+1|0,o,t,e,a,c,A,v,f):aL(Fke,[0,o,t,e,a,c,A,v,f])}function Fke(r,n,t,e,a,u,f,i,c){return 15===i?r<50?Mke(r+1|0,n,t,e,a,u,f,i,c):aL(Mke,[0,n,t,e,a,u,f,i,c]):44===i?r<50?Tke(r+1|0,n,t,e,a,f,c):aL(Tke,[0,n,t,e,a,f,c]):53<=i?r<50?Eke(r+1|0,n,t,e,a,f,c):aL(Eke,[0,n,t,e,a,f,c]):Qje()}function Mke(r,n,t,e,a,u,f,i,c){var v=[0,n,i,f,u,a];if("number"==typeof c){if(3===c){var o=[0,v,t[11]],A=PL(e,t);if("number"==typeof A){if(25===A){return r<50?Pke(r+1|0,o,t,e,0,A):aL(Pke,[0,o,t,e,0,A])}}else if(2===A[0]){var s=t[11],b=t[12],l=PL(e,t);Oje([0,s,b]);return r<50?Pke(r+1|0,o,t,e,0,l):aL(Pke,[0,o,t,e,0,l])}return $je()}if(22===c)return Lje(v,t,a,a,0,c)}return $je()}function Pke(r,n,t,e,a,u){var f=[0,n,a];if("number"==typeof u&&25===u){var i=PL(e,t);if("number"==typeof i)switch(i){case 16:return r<50?fke(r+1|0,f,t,e,39):aL(fke,[0,f,t,e,39]);case 17:return r<50?ake(r+1|0,f,t,e,39):aL(ake,[0,f,t,e,39])}else if(2===i[0]){var c=t[12],v=[0,f,39,i[1],t[11],c],o=PL(e,t);if("number"==typeof o){if(4===o)return Wje(v,t,e,40);if(22===o)return Zje(v,t,c,o)}return $je()}return $je()}return $je()}function Uke(r,n,t,e,a,u,f){if(26<=u){if(33===u)return r<50?Lke(r+1|0,n,t,e,a,u,f):aL(Lke,[0,n,t,e,a,u,f]);if(38===u)return r<50?Gke(r+1|0,n,t,e,a,u,f):aL(Gke,[0,n,t,e,a,u,f])}else{if(18===u)return r<50?Gke(r+1|0,n,t,e,a,u,f):aL(Gke,[0,n,t,e,a,u,f]);if(25<=u)return r<50?Lke(r+1|0,n,t,e,a,u,f):aL(Lke,[0,n,t,e,a,u,f])}return Qje()}function Gke(r,n,t,e,a,u,f){return r<50?$ke(r+1|0,n,t,e,a,u,f):aL($ke,[0,n,t,e,a,u,f])}function $ke(r,n,t,e,a,u,f){if("number"==typeof f){if(4===f){var i=[0,[0,n,u,a],t[12]],c=PL(e,t);if("number"!=typeof c)switch(c[0]){case 0:var v=c[1];return r<50?nke(r+1|0,i,t,e,v,38):aL(nke,[0,i,t,e,v,38]);case 1:var o=c[1];return r<50?Kke(r+1|0,i,t,e,o,38):aL(Kke,[0,i,t,e,o,38]);default:var A=c[1];return r<50?Rke(r+1|0,i,t,e,A,38):aL(Rke,[0,i,t,e,A,38])}if(7!==c)return $je();return r<50?Cke(r+1|0,i,t,e,0):aL(Cke,[0,i,t,e,0])}if(7===f){var s=[0,a,0];return r<50?Hke(r+1|0,n,t,e,s,u):aL(Hke,[0,n,t,e,s,u])}}return $je()}function Kke(r,n,t,e,a,u){var f=t[11],i=t[12],c=PL(e,t);if("number"==typeof c){var v=c-4|0;if(3>>0){if(21===v){var o=[0,n,u,a,f,i];return r<50?Oke(r+1|0,o,t,e):aL(Oke,[0,o,t,e])}}else if(1>>0){var A=Oje([0,f,i]),s=Vle(Ier,Lle),b=Oje([0,f,i]),l=Vle([0,Vle([0,ooe(a)],b),s],A);return r<50?$ke(r+1|0,n,t,e,l,u,c):aL($ke,[0,n,t,e,l,u,c])}}return $je()}function Oke(r,n,t,e){var a=31,u=PL(e,t);if("number"==typeof u)switch(u){case 0:return r<50?Yje(r+1|0,n,t,e,a):aL(Yje,[0,n,t,e,a]);case 1:return r<50?rke(r+1|0,n,t,e,a):aL(rke,[0,n,t,e,a]);case 3:return r<50?eke(r+1|0,n,t,e,a):aL(eke,[0,n,t,e,a]);case 6:return r<50?cke(r+1|0,n,t,e,a):aL(cke,[0,n,t,e,a]);case 9:return r<50?oke(r+1|0,n,t,e,a):aL(oke,[0,n,t,e,a]);case 11:return r<50?bke(r+1|0,n,t,e,a):aL(bke,[0,n,t,e,a]);case 19:return r<50?jke(r+1|0,n,t,e,a):aL(jke,[0,n,t,e,a]);case 26:return r<50?kke(r+1|0,n,t,e,a):aL(kke,[0,n,t,e,a])}else if(2===u[0]){var f=u[1];return r<50?lke(r+1|0,n,t,e,f,a):aL(lke,[0,n,t,e,f,a])}return $je()}function Rke(r,n,t,e,a,u){var f=t[11],i=t[12],c=PL(e,t);if("number"==typeof c){var v=c-4|0;if(3>>0){if(21===v){var o=[0,n,u,a,f,i];return r<50?Qke(r+1|0,o,t,e):aL(Qke,[0,o,t,e])}}else if(1>>0){var A=Vle(a,Oje([0,f,i])),s=Oje([0,f,i]),b=Vle(Ner,Lle),l=Oje([0,f,i]),B=Vle([0,Vle([1,A[2]],l),b],s);return r<50?$ke(r+1|0,n,t,e,B,u,c):aL($ke,[0,n,t,e,B,u,c])}}return $je()}function Qke(r,n,t,e){var a=32,u=PL(e,t);if("number"==typeof u)switch(u){case 0:return r<50?Yje(r+1|0,n,t,e,a):aL(Yje,[0,n,t,e,a]);case 1:return r<50?rke(r+1|0,n,t,e,a):aL(rke,[0,n,t,e,a]);case 3:return r<50?eke(r+1|0,n,t,e,a):aL(eke,[0,n,t,e,a]);case 6:return r<50?cke(r+1|0,n,t,e,a):aL(cke,[0,n,t,e,a]);case 9:return r<50?oke(r+1|0,n,t,e,a):aL(oke,[0,n,t,e,a]);case 11:return r<50?bke(r+1|0,n,t,e,a):aL(bke,[0,n,t,e,a]);case 19:return r<50?jke(r+1|0,n,t,e,a):aL(jke,[0,n,t,e,a]);case 26:return r<50?kke(r+1|0,n,t,e,a):aL(kke,[0,n,t,e,a])}else if(2===u[0]){var f=u[1];return r<50?lke(r+1|0,n,t,e,f,a):aL(lke,[0,n,t,e,f,a])}return $je()}function Cke(r,n,t,e,a){var u=n[1],f=u[2],i=u[1],c=[0,u[3],a];return r<50?Hke(r+1|0,i,t,e,c,f):aL(Hke,[0,i,t,e,c,f])}function Hke(r,n,t,e,a,u){return 18===u?r<50?Vke(r+1|0,n,t,e,a):aL(Vke,[0,n,t,e,a]):38===u?r<50?Cke(r+1|0,n,t,e,a):aL(Cke,[0,n,t,e,a]):Qje()}function Vke(r,n,t,e,a){var u=t[12],f=PL(e,t),i=n[1],c=i[3],v=i[2],o=i[1],A=Vle([6,a],Oje([0,c,u]));return r<50?pke(r+1|0,o,t,e,u,c,A,v,f):aL(pke,[0,o,t,e,u,c,A,v,f])}function Lke(r,n,t,e,a,u,f){function i(r){return a}return r<50?zke(r+1|0,n,t,e,i,u,f):aL(zke,[0,n,t,e,i,u,f])}function zke(r,n,t,e,a,u,f){if("number"==typeof f){if(4===f){var i=[0,[0,n,u,a],t[12]],c=PL(e,t);if("number"==typeof c)switch(c){case 0:return r<50?Yje(r+1|0,i,t,e,33):aL(Yje,[0,i,t,e,33]);case 1:return r<50?rke(r+1|0,i,t,e,33):aL(rke,[0,i,t,e,33]);case 3:return r<50?eke(r+1|0,i,t,e,33):aL(eke,[0,i,t,e,33]);case 6:return r<50?cke(r+1|0,i,t,e,33):aL(cke,[0,i,t,e,33]);case 7:return r<50?Wke(r+1|0,i,t,e,0):aL(Wke,[0,i,t,e,0]);case 9:return r<50?oke(r+1|0,i,t,e,33):aL(oke,[0,i,t,e,33]);case 11:return r<50?bke(r+1|0,i,t,e,33):aL(bke,[0,i,t,e,33]);case 19:return r<50?jke(r+1|0,i,t,e,33):aL(jke,[0,i,t,e,33]);case 26:return r<50?kke(r+1|0,i,t,e,33):aL(kke,[0,i,t,e,33]);default:return $je()}switch(c[0]){case 0:var v=c[1];return r<50?vke(r+1|0,i,t,e,v,33):aL(vke,[0,i,t,e,v,33]);case 1:var o=c[1];return r<50?Ske(r+1|0,i,t,e,o,33):aL(Ske,[0,i,t,e,o,33]);default:var A=c[1];return r<50?Zke(r+1|0,i,t,e,A,33):aL(Zke,[0,i,t,e,A,33])}}if(7===f){var s=[0,a,0];return r<50?Xke(r+1|0,n,t,e,s,u):aL(Xke,[0,n,t,e,s,u])}}return $je()}function Ske(r,n,t,e,a,u){var f=[0,n,u,a,t[11],t[12]],i=PL(e,t);return"number"==typeof i&&25===i?r<50?Oke(r+1|0,f,t,e):aL(Oke,[0,f,t,e]):$je()}function Zke(r,n,t,e,a,u){var f=t[11],i=t[12],c=PL(e,t);if("number"==typeof c){var v=c-4|0;if(3>>0){if(21===v){var o=[0,n,u,a,f,i];return r<50?Qke(r+1|0,o,t,e):aL(Qke,[0,o,t,e])}}else if(1>>0){var A=Rje(i,f,a);return r<50?Bke(r+1|0,n,t,e,i,f,A,u,c):aL(Bke,[0,n,t,e,i,f,A,u,c])}}return $je()}function Wke(r,n,t,e,a){var u=n[1],f=u[2],i=u[1],c=[0,u[3],a];return r<50?Xke(r+1|0,i,t,e,c,f):aL(Xke,[0,i,t,e,c,f])}function Xke(r,n,t,e,a,u){return 25===u?r<50?Jke(r+1|0,n,t,e,a):aL(Jke,[0,n,t,e,a]):33===u?r<50?Wke(r+1|0,n,t,e,a):aL(Wke,[0,n,t,e,a]):Qje()}function Jke(r,n,t,e,a){var u=t[12],f=PL(e,t),i=n[1];var c=function r(n,t){if(!t)return 0;var e=t[2],a=PL(t[1],n),u=a[2][1][2];return[0,a,r(1===u[0]?SBe(u[1])+1|0:u[1]+1|0,e)]}(0,a),v=i[3],o=i[2],A=i[1],s=Vle([5,c],Oje([0,v,u]));return r<50?pke(r+1|0,A,t,e,u,v,s,o,f):aL(pke,[0,A,t,e,u,v,s,o,f])}function Yke(r,n,t,e,a,u,f){if("number"==typeof f){if(5===f){var i=[0,a,0];return r<50?tpe(r+1|0,n,t,e,i,u):aL(tpe,[0,n,t,e,i,u])}if(24===f){var c=[0,n,u,a],v=PL(e,t);if("number"==typeof v)switch(v){case 0:return r<50?Yje(r+1|0,c,t,e,35):aL(Yje,[0,c,t,e,35]);case 1:return r<50?rke(r+1|0,c,t,e,35):aL(rke,[0,c,t,e,35]);case 3:return r<50?eke(r+1|0,c,t,e,35):aL(eke,[0,c,t,e,35]);case 5:return r<50?npe(r+1|0,c,t,e,0):aL(npe,[0,c,t,e,0]);case 6:return r<50?cke(r+1|0,c,t,e,35):aL(cke,[0,c,t,e,35]);case 9:return r<50?oke(r+1|0,c,t,e,35):aL(oke,[0,c,t,e,35]);case 11:return r<50?bke(r+1|0,c,t,e,35):aL(bke,[0,c,t,e,35]);case 19:return r<50?jke(r+1|0,c,t,e,35):aL(jke,[0,c,t,e,35]);case 26:return r<50?kke(r+1|0,c,t,e,35):aL(kke,[0,c,t,e,35])}else switch(v[0]){case 0:var o=v[1];return r<50?ike(r+1|0,c,t,e,o,35):aL(ike,[0,c,t,e,o,35]);case 2:var A=v[1];return r<50?rpe(r+1|0,c,t,e,A,35):aL(rpe,[0,c,t,e,A,35])}return $je()}}return $je()}function rpe(r,n,t,e,a,u){var f=t[11],i=t[12],c=PL(e,t);r:if("number"==typeof c){var v=c+-24|0;if(1>>0){if(-19!==v)break r}else if(v){var o=[0,n,u,a,f,i],A=34,s=PL(e,t);if("number"==typeof s)switch(s){case 0:return r<50?Yje(r+1|0,o,t,e,A):aL(Yje,[0,o,t,e,A]);case 1:return r<50?rke(r+1|0,o,t,e,A):aL(rke,[0,o,t,e,A]);case 3:return r<50?eke(r+1|0,o,t,e,A):aL(eke,[0,o,t,e,A]);case 6:return r<50?cke(r+1|0,o,t,e,A):aL(cke,[0,o,t,e,A]);case 9:return r<50?oke(r+1|0,o,t,e,A):aL(oke,[0,o,t,e,A]);case 11:return r<50?bke(r+1|0,o,t,e,A):aL(bke,[0,o,t,e,A]);case 19:return r<50?jke(r+1|0,o,t,e,A):aL(jke,[0,o,t,e,A]);case 26:return r<50?kke(r+1|0,o,t,e,A):aL(kke,[0,o,t,e,A])}else if(2===s[0]){var b=s[1];return r<50?lke(r+1|0,o,t,e,b,A):aL(lke,[0,o,t,e,b,A])}return $je()}var l=Rje(i,f,a);return r<50?Bke(r+1|0,n,t,e,i,f,l,u,c):aL(Bke,[0,n,t,e,i,f,l,u,c])}return $je()}function npe(r,n,t,e,a){var u=n[2],f=n[1],i=[0,n[3],a];return r<50?tpe(r+1|0,f,t,e,i,u):aL(tpe,[0,f,t,e,i,u])}function tpe(r,n,t,e,a,u){return 23===u?r<50?epe(r+1|0,n,t,e,a):aL(epe,[0,n,t,e,a]):35===u?r<50?npe(r+1|0,n,t,e,a):aL(npe,[0,n,t,e,a]):Qje()}function epe(r,n,t,e,a){var u=t[12],f=PL(e,t),i=n[3],c=n[2],v=n[1],o=c+-22|0;if(17>=o>>>0)switch(o){case 6:var A=[0,v,c,a,i];r:{if("number"==typeof f)switch(f){case 8:return r<50?ape(r+1|0,A,t,e,29):aL(ape,[0,A,t,e,29]);case 12:return r<50?fpe(r+1|0,A,t,e,29):aL(fpe,[0,A,t,e,29]);case 23:return r<50?ipe(r+1|0,A,t,e,29):aL(ipe,[0,A,t,e,29]);case 3:case 4:case 5:case 7:case 22:case 24:break;default:break r}else if(2!==f[0])break r;return r<50?cpe(r+1|0,A,t,e,u,0,f):aL(cpe,[0,A,t,e,u,0,f])}return $je();case 17:if("number"==typeof f&&27<=f){var s=PL(e,t);if("number"==typeof s){if(17===s){var b=[0,v,c,a,i];return r<50?ake(r+1|0,b,t,e,41):aL(ake,[0,b,t,e,41])}}else if(2===s[0]){var l=t[12],B=s[1],j=t[11],k=PL(e,t),p=Vle(B,Oje([0,j,l])),m=Oje([0,i,l]);return Xje(v,t,e,l,Vle([8,a,Vle([1,p],p[1])],m),c,k)}return $je()}return $je();case 0:case 5:case 14:var d=[0,v,c,a,i];if("number"==typeof f&&27<=f){var _=PL(e,t);return"number"==typeof _&&16===_?r<50?fke(r+1|0,d,t,e,28):aL(fke,[0,d,t,e,28]):$je()}return $je()}return Qje()}function ape(r,n,t,e,a){var u=t[12],f=t[11],i=PL(e,t),c=Vle(1,Oje([0,f,u]));return r<50?upe(r+1|0,n,t,e,u,c,a,i):aL(upe,[0,n,t,e,u,c,a,i])}function upe(r,n,t,e,a,u,f,i){var c=[0,n,f,u];r:{if("number"==typeof i)switch(i){case 8:return r<50?ape(r+1|0,c,t,e,30):aL(ape,[0,c,t,e,30]);case 12:return r<50?fpe(r+1|0,c,t,e,30):aL(fpe,[0,c,t,e,30]);case 23:return r<50?ipe(r+1|0,c,t,e,30):aL(ipe,[0,c,t,e,30]);case 3:case 4:case 5:case 7:case 22:case 24:break;default:break r}else if(2!==i[0])break r;for(var v=c,o=0;;){var A=v[2],s=v[1],b=[0,v[3],o];if(29===A)return r<50?cpe(r+1|0,s,t,e,a,b,i):aL(cpe,[0,s,t,e,a,b,i]);if(30!==A)return Qje();v=s,o=b}}return $je()}function fpe(r,n,t,e,a){var u=t[12],f=t[11],i=PL(e,t),c=Vle(0,Oje([0,f,u]));return r<50?upe(r+1|0,n,t,e,u,c,a,i):aL(upe,[0,n,t,e,u,c,a,i])}function ipe(r,n,t,e,a){var u=t[12],f=t[11],i=PL(e,t),c=Vle(2,Oje([0,f,u]));return r<50?upe(r+1|0,n,t,e,u,c,a,i):aL(upe,[0,n,t,e,u,c,a,i])}function cpe(r,n,t,e,a,u,f){var i=n[1],c=i[2],v=i[1],o=n[3],A=Vle([2,u,i[3],o],Oje([0,i[4],a]));if(22===c){var s=v[5],b=v[4],l=v[3],B=v[2],j=v[1],k=[0,b,s];try{xoe(l)}catch(u){var p=iL(u);if(p===gve)throw kQ([0,Jle,Oje(k),Per],1);throw kQ(p,0)}var m=Vle(l,Oje([0,b,s])),d=Vle([0,m,A],Oje([0,b,a]));return r<50?vpe(r+1|0,j,t,e,d,B,f):aL(vpe,[0,j,t,e,d,B,f])}if(27===c){var _=v[3],h=v[2],x=v[1];return r<50?Ake(r+1|0,x,t,e,a,_,A,h,f):aL(Ake,[0,x,t,e,a,_,A,h,f])}if(36!==c)return Qje();var y=v[4],w=v[2],g=v[1],q=Vle(v[3],Oje([0,y,v[5]])),I=Vle([0,q,A],Oje([0,y,a]));return r<50?vpe(r+1|0,g,t,e,I,w,f):aL(vpe,[0,g,t,e,I,w,f])}function vpe(r,n,t,e,a,u,f){if("number"==typeof f){if(4===f){var i=[0,[0,n,u,a],t[12]],c=PL(e,t);if("number"==typeof c){if(7===c){return r<50?Ape(r+1|0,i,t,e,0):aL(Ape,[0,i,t,e,0])}}else switch(c[0]){case 0:var v=c[1];return r<50?uke(r+1|0,i,t,e,v,37):aL(uke,[0,i,t,e,v,37]);case 2:var o=c[1];return r<50?ope(r+1|0,i,t,e,o,37):aL(ope,[0,i,t,e,o,37])}return $je()}if(7===f){var A=[0,a,0];return r<50?spe(r+1|0,n,t,e,A,u):aL(spe,[0,n,t,e,A,u])}}return $je()}function ope(r,n,t,e,a,u){var f=t[11],i=t[12],c=PL(e,t);if("number"==typeof c&&25===c){var v=PL(e,t);if("number"==typeof v){if(16===v){var o=[0,n,u,a,f,i];return r<50?fke(r+1|0,o,t,e,36):aL(fke,[0,o,t,e,36])}}else if(2===v[0]){var A=t[12],s=v[1],b=t[11],l=PL(e,t),B=Vle(s,Oje([0,b,A])),j=[0,f,A],k=Vle(a,Oje([0,f,i])),p=Oje(j),m=Vle([0,k,Vle([1,B],Oje(j))],p);return r<50?vpe(r+1|0,n,t,e,m,u,l):aL(vpe,[0,n,t,e,m,u,l])}return $je()}return $je()}function Ape(r,n,t,e,a){var u=n[1],f=u[2],i=u[1],c=[0,u[3],a];return r<50?spe(r+1|0,i,t,e,c,f):aL(spe,[0,i,t,e,c,f])}function spe(r,n,t,e,a,u){return 21===u?r<50?bpe(r+1|0,n,t,e,a):aL(bpe,[0,n,t,e,a]):37===u?r<50?Ape(r+1|0,n,t,e,a):aL(Ape,[0,n,t,e,a]):Qje()}function bpe(r,n,t,e,a){var u=t[12],f=PL(e,t),i=n[3],c=n[2],v=n[1];if(39<=c){if(42>c)switch(c-39|0){case 0:var o=[0,v,c,a,i,u];if("number"==typeof f){if(4===f)return Wje(o,t,e,42);if(22===f)return Sje(o,t,u,f)}return $je();case 2:var A=v[3],s=v[2],b=v[1],l=Oje([0,v[4],u]);return Xje(b,t,e,u,Vle([8,A,Vle([7,a],Oje([0,i,u]))],l),s,f)}}else if(20===c){var B=v[3],j=v[2],k=v[1],p=Vle([7,a],Oje([0,B,u]));return r<50?Ake(r+1|0,k,t,e,u,B,p,j,f):aL(Ake,[0,k,t,e,u,B,p,j,f])}return Qje()}function lpe(r,n){var t=n[12],e=PL(r,n);r:if("number"==typeof e){if(18<=e){if(22!==e){if(19<=e)break r;return function(r,n,t,e){return eL(Dke(0,r,n,t,e))}(0,n,r,15)}}else{if(2===e)return function(r,n,t,e){return eL(Jje(0,r,n,t,e))}(0,n,r,15);if(3!==e)break r}return function(r,n,t,e,a,u,f,i){return eL(Mke(0,r,n,t,e,a,u,f,i))}(0,n,r,t,t,0,15,e)}return $je()}function Bpe(r){return[0,r[1],r[2],r[4]-r[3]|0]}function jpe(r){return[0,Bpe(r[11]),Bpe(r[12])]}function kpe(r,n){throw kQ([0,Jle,jpe(r),n],1)}function ppe(r,n,t){return n[11]=r,kpe(n,t)}function mpe(r,n){return r<50?_pe(r+1|0,n,0):aL(_pe,[0,n,0])}function dpe(r){return eL(mpe(0,r))}function _pe(r,n,t){for(var e=t;;){var a=_1(wz,e,n);if(41>=a>>>0)break;PL(n[1],n),e=a}switch(a){case 0:return 16;case 1:return 5;case 2:return 17;case 3:return 7;case 4:return 4;case 5:return 24;case 6:return 10;case 7:return 25;case 8:return 21;case 9:return 20;case 10:return 14;case 11:return 13;case 12:return 27;case 13:return 15;case 14:return[1,y1(n,n[5],n[6])];case 15:for(var u=y1(n,n[5],n[6]),f=d2(HH(u)),i=[0,1];;){if(i[1]>=(HH(u)-1|0))return[0,_2(f)];r:if(hh<=VV(u,i[1])){var c=ms<=VV(u,i[1])?Sj<=VV(u,i[1])?3:2:1;i[1]=i[1]+c|0;var v=woe([0,zY(xoe(K0(u,i[1]-c|0,1+c|0))),0])}else if(92===VV(u,i[1])){i[1]++;var o=VV(u,i[1]);if(40<=o){if(Wr<=o){if(OP>o)switch(o+-110|0){case 0:v=woe(Ser);break r;case 4:v=woe(Zer);break r;case 6:v=woe(Wer);break r;case 7:var A=i[1]+2|0;i[1]=S0(u,A,kI);try{var s=tV(qM+K0(u,A,i[1]-A|0));if(!(0<=s&&Xn>s||He<=s&&Gs>s))throw kQ([0,LL,""],1);var b=s}catch(v){var l=iL(v);if(l[1]!==LL)throw kQ(l,0);b=kpe(n,Xer)}v=woe([0,b,0]);break r}}else if(92===o){v=woe(Jer);break r}}else{if(34===o){v=woe(rar);break r}if(39<=o){v=woe(Yer);break r}}i[1]++;var B=$0(1,VV(u,i[1]));let r=RY(tV(qM+$0(1,o)+B));v=e1(function(n){return[0,r,qY]})}else v=woe([0,VV(u,i[1]),0]);i[1]++,g2(f,v,0,HH(v))}break;case 16:return kpe(n,Rer);case 17:return kpe(n,Qer);case 18:return ppe(n[12],n,Cer);case 19:return 18;case 20:return 3;case 21:return 19;case 22:return 2;case 23:return 11;case 24:return 0;case 25:return 6;case 26:return 1;case 27:return 26;case 28:return 9;case 29:return 12;case 30:return 8;case 31:return 23;case 32:return[2,y1(n,n[5],n[6])];case 36:return hpe(n[11],n),r<50?mpe(r+1|0,n):aL(mpe,[0,n]);case 40:return kpe(n,Her);case 41:return kpe(n,Ver);case 33:case 39:return 22;case 34:case 38:return w1(n),r<50?mpe(r+1|0,n):aL(mpe,[0,n]);default:return r<50?mpe(r+1|0,n):aL(mpe,[0,n])}}function hpe(r,n){for(;;){var t=ag;r:for(;;){var e=_1(wz,t,n);if(5>=e>>>0)switch(e){case 4:break r;case 0:return;case 1:hpe(n[11],n);break r;case 2:w1(n);break r;case 3:return ppe(r,n,Ler);default:return kpe(n,zer)}PL(n[1],n),t=e}}}function xpe(r,n,t){return[1,[0,gBe(r,"",n,0,0,0,t),0]]}function ype(r,n,t){try{var e,a=r[12];return r[12]=[0,t,a[2],a[3],a[4]],[0,GL(n,dpe,r,t)]}catch(e){var u=iL(e);if(u[1]===Jle)return xpe(u[2],iar,u[3]);if(u===Uje)return xpe(jpe(r),car,"unexpected token");throw kQ(u,0)}}function wpe(r){try{var n,t=iY(r),e=ype(h1(0,t),lpe,Pie(r));return hV(t),0===e[0]?qBe([0,e[1],r]):[1,e[1]]}catch(n){var a=iL(n);if(a[1]===VL)return xpe(Lle,far,PL(R3(uar),r));throw kQ(a,0)}}function gpe(r,n){return HBe(0,function(t){try{var e,a=function(r,n){for(var t=n,e=r[1];t;){var a=t[2],u=t[1][2];if(0===u[0]){var f=u[1],i=Vle(2,f[1]),c=kje[6].call(null,f[2],i),v=f[1];try{var o=kje[50].call(null,e,c);t=a,e=o}catch(f){var A=iL(f);if(A[1]!==kje[42])throw kQ(A,0);var s=A[2];t=a,e=PL(hje(r,v,ker),s)}}else t=a}var b=xje(r,e),l=Tje([0,b[1],b[2],1],n),B=_je(r[2],l);return kje[12].call(null,function(r,n){for(var t=pje[1],e=n;;){var a=e[2];r:{if("number"!=typeof a&&1===a[0]){var u=a[1],f=pje[3].call(null,u[2],t);if(f){var i=f;break r}t=pje[4].call(null,u[2],t),e=qje(B,u);continue}i=0}return i?PL(hje(B,n[1],der),r):i}},B[1]),Tje([0,B[1],B[2],0],n)}(_je(t,r),n[2][1]),u=n[2][2];return[0,[0,a,Gje(_je(t,a),u)]]}catch(e){var f=iL(e);if(f===mje)return 0;throw kQ(f,0)}})}var qpe=aBe([0,r1]);function Ipe(r,n,t){return FBe(function(r,n){try{var t=qBe(kje[9].call(null,function(r,n,t){if(dH(n,t))return[0,n];throw kQ([0,kje[42],r],1)},r,n));return t}catch(r){var e=iL(r);if(e[1]!==kje[42])throw kQ(e,0);var a=e[2];return xpe(Lle,aar,PL(R3(ear),a))}},n,YY(function(r){return qpe[28].call(null,r,t)},r))}var Dpe=aBe([0,KC]),Epe=[0,[0,Dpe[1],0]];function Npe(r,n){var t=Epe[1];return Epe[1]=[0,Epe[1][1],r],x6(function(r){return Epe[1]=t,0},n)}function Tpe(r){var n=Epe[1][2],t=MY(Dpe[29].call(null,[0,r,n],Epe[1][1]),0),e=Epe[1][2];return Epe[1]=[0,Dpe[4].call(null,[0,r,n],t+1|0,Epe[1][1]),e],[0,t,n]}function Fpe(r,n){return FH(10,x$,0,[0,r,n])}function Mpe(r,n){var t=Tpe(r);return[0,r,t,Fpe(r,t),[0,n]]}function Ppe(r,n){var t=r[1],e=Tpe(r[1]);return[0,t,e,Fpe(t,e),[0,n]]}function Upe(r){return r[4][1]}function Gpe(r){return r[1]}function $pe(r,n){var t=PC(r[3],n[3]);if(0!==t)return t;var e=PC(r[2][1],n[2][1]);if(0!==e)return e;var a=n[2][2],u=r[2][2];if(u)var f=u[1],i=a?UC(f,a[1]):1;else i=a?-1:0;return 0===i?UC(r[1],n[1]):i}function Kpe(r,n){return 0===$pe(r,n)?1:0}function Ope(r){var n=[0,0],t=HH(r)-1|0;if(t>=0)for(var e=0;;){var a=VV(r,e);n[1]=hC(n[1],Ga)+a|0;var u=e+1|0;if(t===e)break;e=u}return DF&n[1]}var Rpe=Sue([0,function(r,n){function t(r,n){var t=r[2]===n[2]?1:0;if(t)var e=r[3]===n[3]?1:0,a=e?r[1]===n[1]?1:0:e;else a=t;return a}var e=t(r[1],n[1]);return e?t(r[2],n[2]):e},function(r){function n(r,n){return(65521*r|0)^n}function t(r){var t=r[3];return n(r[2],n(t,Ope(r[1])))}var e=t(r[2]);return n(t(r[1]),e)}]),Qpe=Hle[9];function Cpe(r,n,t){return[0,Cle[7].call(null,n,t)]}function Hpe(r){var n=Kce[1]?wd:0;return Rpe[1].call(null,n)}function Vpe(r,n){if(!Kce[1])return Cle[1];var t=Cle[5].call(null,n);return MY(Rpe[8].call(null,r,n),t)}function Lpe(r,n){var t=Kce[1];if(!t)return t;var e=Rpe[8].call(null,r,n),a=e?Cle[4].call(null,n,e[1]):Cle[5].call(null,n);return Rpe[10].call(null,r,n,a)}function zpe(r){var n=Rpe[17].call(null,r);return Hle[40].call(null,n)}var Spe=[0,0,Lle,Lle];function Zpe(r){switch(r){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;case 4:return 4;case 5:return 5;case 6:return 6;case 7:return 7;case 8:return 8;case 9:return 9;case 10:return 10;case 11:return 11;case 12:return 12;case 13:return 19;case 14:return 13;case 15:return 14;case 16:return 15;case 17:return 16;case 18:return 17;default:return 18}}function Wpe(r){if(r)switch(r[1]){case 0:return 2;case 1:return 1;default:return 3}return 0}function Xpe(r){switch(r){case 0:return 0;case 1:return 2;case 2:return 4;case 3:return 1;default:return 3}}function Jpe(r){switch(r){case 0:return 0;case 1:return 1;default:return 2}}function Ype(r){if("number"==typeof r)switch(r){case 0:return 11;case 1:return 12;default:return 13}switch(r[0]){case 0:return 1;case 1:return 2;case 2:return 0;case 3:return 8;case 4:return 9;case 5:return 3;case 6:return 6;case 7:return 4;case 8:return 5;case 9:return 7;case 10:return 10;case 11:return 14;default:return 15}}function rme(r,n){var t=r[1],e=n[1];return t?e?UC(t[1],e[1]):1:e?-1:0}function nme(r,n){r:{n:{t:{var t=r,e=n;e:for(;;){if(t===e)return 0;if("number"==typeof t)break n;switch(t[0]){case 0:if("number"==typeof e)break r;if(0!==e[0])break r;var a=PC(t[2],e[2]),u=e[1],f=t[1];return 0===a?UC(f,u):a;case 1:if("number"==typeof e)break r;if(1!==e[0])break r;var i=e[2],c=t[2],v=$pe(t[1],e[1]);return 0===v?ame(c,i):v;case 2:if("number"==typeof e)break r;if(2!==e[0])break r;var o=t[1],A=Zpe(e[1]),s=Zpe(o)-A|0;return 0e)break r}return 0}var ur=Ype(e);return PC(Ype(t),ur)}function tme(r,n){var t=UC(r[1],n[1]);if(0!==t)return t;var e=$pe(r[2],n[2]);return 0===e?rme(r[3],n[3]):e}function eme(r,n){for(var t=r,e=n;;){if(!t)return e?-1:0;var a=t[1],u=t[2];if(!e)return 1;var f=e[1],i=UC(a[1],f[1]),c=e[2];if(0===i)var v=nme(a[2],f[2]),o=0===v?rme(a[3],f[3]):v;else o=i;if(0!==o)return o;t=u,e=c}}function ame(r,n){for(var t=r,e=n;;){if(!t)return e?-1:0;if(!e)return 1;var a=e[2],u=t[2],f=nme(t[1],e[1]);if(0!==f)return f;t=u,e=a}}var ume=[0,nme],fme=[0,function(r,n){var t=n[2],e=r[2],a=nme(r[1],n[1]);return 0===a?nme(e,t):a}];function ime(r,n){var t=Upe(r);if(0!==t[0]){var e=t[2];if("number"==typeof e&&2<=e)return void(r[4][1]=n)}throw kQ([0,zL,"set_kind"],1)}var cme=Hle[1],vme=Hle[29],ome=aBe([0,$pe]);function Ame(r,n){return UC(r[1],n[1])}var sme=Mpe("TextList",[1,0,2]);ime(sme,[0,0,[6,[7,[0,Uz,[0,[1,sme,0],0]]]]]);var bme=[1,sme,0];function lme(r){return d0(Ame,YY(function(r){return[0,r[1],r[2],Spe]},r))}function Bme(r,n){return[3,r,lme(n),0]}function jme(r,n,t){var e=lme(t);return[3,r,lme(n),e]}function kme(r){return[4,lme(r)]}var pme=d0(Ame,[0,[0,mir,Ez,Spe],0]),mme=d0(Ame,rY(pme,[0,[0,wir,Ez,Spe],[0,[0,yir,Ez,Spe],[0,[0,xir,Ez,Spe],[0,[0,hir,Ez,Spe],[0,[0,_ir,Ez,Spe],[0,[0,dir,[2,5],Spe],[0,[0,"call_error",Bme(0,[0,[0,"err_code",[2,5]],0]),Spe],0]]]]]]])),dme=Bme(0,[0,[0,gir,Kz],0]);function _me(r){var n=UC(r,Nb);if(0<=n){if(0>=n)return 8;if(r===fv)return 2;if(r===AA)return 4;if(r===lM)return 5;if(r===Xu)return 6;if(r===UF)return 3;if(r===LE)return 0;if(r===lg)return 18;if(r===J_)return 19;if(r===CP)return 15}else{var t=UC(r,Wc);if(0<=t){if(0>=t)return 13;if(r===MA)return 7;if(r===nF)return 9;if(r===Oq)return 10;if(r===wT)return 11}else{if(r===Ai)return 16;if(r===aG)return 1;if(r===f$)return 14;if(r===wc)return 17;if(r===BP)return 12}}throw kQ([0,zL,"Type.prim: "+r],1)}function hme(r){return r&&!r[2]?r[1]:[7,r]}function xme(r){return Bme(0,[0,[0,kir,[8,0,0,0,0,[0,[6,r],0]]],0])}function yme(r,n,t){if("number"==typeof t)switch(t){case 0:return 0;case 1:return 1;default:return 2}switch(t[0]){case 0:var e=t[2];return[0,t[1],e>>0&&!a[3])for(var u=a[2];;){if(!u)return 1;var f=u[2],i=w_e(n,u[1]);if(!i)return i;u=f}return 0;case 4:var c=a[1];if(c&&!c[2]){var v=c[1];return r<50?y_e(r+1|0,n,v):aL(y_e,[0,n,v])}return 0;case 7:for(var o=a[1];;){if(!o)return 1;var A=o[2],s=x_e(n,o[1]);if(!s)return s;o=A}break;case 11:throw kQ([0,YL,qar],1);case 0:case 1:return 0;case 10:case 12:var b=0;break r}return 0}switch(a){case 1:return 0;case 2:throw kQ([0,YL,gar],1)}}return 1}b=e}return b}function x_e(r,n){return eL(h_e(0,r,n))}function y_e(r,n,t){var e=t[2];return r<50?h_e(r+1|0,n,e):aL(h_e,[0,n,e])}function w_e(r,n){return eL(y_e(0,r,n))}function g_e(r){return x_e([0,Ede[1]],r)}function q_e(r,n,t){r:{var e=t;n:for(;;){if("number"!=typeof e)switch(e[0]){case 1:var a=e[2],u=Upe(e[1]);if(0!==u[0]){var f=0===r?1:0,i=u[2];return f||(0===i?1:0)}var c=n[1],v=u[2],o=u[1],A=Ede[3].call(null,e,c[1]);if(A)return A;c[1]=Ede[4].call(null,e,c[1]),e=Mme(o,v,a);continue;case 2:var s=e[1];if(8>s)switch(s){case 7:return 1===r?1:0;case 0:case 2:return 0===r?1:0}return 1;case 6:var b=1===r?1:0,l=e[1];if(!b)return b;e=l;continue;case 7:break r;case 8:break n;case 9:e=e[3];continue;case 10:return 1;case 11:e=e[2];continue;case 5:case 12:e=e[1];continue}return 0}var B=e[5],j=e[4],k=[0,n[2],n[1]],p=r?0:1;n:{for(var m=j;m;){var d=m[2],_=q_e(p,k,m[1]);if(!_){var h=_;break n}m=d}h=1}if(!h)return h;for(var x=B;;){if(!x)return 1;var y=x[2],w=q_e(r,n,x[1]);if(!w)return w;x=y}}for(var g=e[1];;){if(!g)return 1;var q=g[2],I=q_e(r,n,g[1]);if(!I)return I;g=q}}var I_e=R1(fme),D_e=[Ul,"Mo_types.Type.Mismatch",qH()];function E_e(r,n,t,e,a){r:{n:{t:{e:{a:{u:{var u=e,f=a;f:for(;;){if(r!==n&&r!==t)throw kQ([0,YL,Iar],1);if(u===f)return u;var i=I_e[29].call(null,[0,u,f],r[1]);if(i)return i[1];if(b_e(0,u,f))break r;i:{c:{v:{o:{A:{s:{b:{l:{if("number"!=typeof u){B:switch(u[0]){case 2:var c=u[1];if(8<=c)break l;switch(c){case 0:if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break o}switch(f[0]){case 10:break l;case 1:break o;case 11:break i;case 6:var v=u,o=f;break B;default:break n}case 2:if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break o}switch(f[0]){case 2:if(7!==f[1])break n;break;case 10:break l;case 1:break o;case 11:break i;default:break n}break;case 7:if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break o}switch(f[0]){case 2:if(2!==f[1])break n;break;case 10:break l;case 1:break o;case 11:break i;default:break n}break;default:break l}return[2,r===n?7:2];case 3:var A=u[1],s=u[3],b=u[2];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break o}switch(f[0]){case 3:break e;case 10:break l;case 1:break o;case 11:break i;default:break n}case 4:var l=u[1];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break o}switch(f[0]){case 4:break a;case 10:break l;case 1:break o;case 11:break i;default:break n}case 5:var B=u[1];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break o}switch(f[0]){case 5:var j=f[1];try{return[5,E_e(r,n,t,B,j)]}catch(vr){var k=iL(vr);if(k===D_e)return r===n?0:1;throw kQ(k,0)}case 10:break l;case 1:break o;case 11:break i;default:break n}case 6:var p=u[1];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break o}switch(f[0]){case 2:if(f[1])break n;v=f,o=u;break;case 6:return[6,E_e(r,n,t,p,f[1])];case 10:break l;case 1:break o;case 11:break i;default:break n}break;case 7:var m=u[1];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break o}switch(f[0]){case 7:break u;case 10:break l;case 1:break o;case 11:break i;default:break n}case 8:var d=u[5],_=u[4],h=u[3],x=u[2],y=u[1];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break o}switch(f[0]){case 8:break f;case 10:break l;case 1:break o;case 11:break i;default:break n}case 9:var w=u[2],g=u[1],q=u[3];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break o}switch(f[0]){case 9:var I=f[3],D=f[2];if(g!==f[1])break n;if(b_e(0,w,D))return[9,g,w,E_e(r,n,t,q,I)];break n;case 10:break l;case 1:break o;case 11:break i;default:break n}case 11:var E=u[2],N=u[1];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break o}switch(f[0]){case 11:var T=f[2];if(N===f[1])return[11,N,E_e(r,n,t,E,T)];u=E,f=T;continue;case 10:break l;case 1:break o;default:break c}case 12:var F=u[1];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break o}switch(f[0]){case 12:return[12,E_e(r,n,t,F,f[1])];case 10:break l;case 1:break o;case 11:break i;default:break n}default:break l}return r===n?o:v}if(2===u)break b}l:{if("number"==typeof f){if(2===f)break b}else if(10===f[0])break l;if("number"==typeof u){if(0!==u)break s;var M=f;break A}if(10!==u[0])break s}throw kQ(D_e,1)}throw kQ(Lde,1)}if("number"!=typeof f||f){if("number"!=typeof u)break o;var P=f;break v}M=u}return r===n?0:M}if("number"!=typeof f){if(1===f[0])break t;break c}if(1!==f)break c;P=u}return r===n?P:1}if("number"!=typeof u)switch(u[0]){case 11:u=u[2];continue;case 1:break t}}if("number"==typeof f)break n;if(11!==f[0])break n;f=f[2]}var U=f[5],G=f[4],$=f[3],K=f[2];if(!dH(y,f[1]))break n;if(x!==K)break n;if(!Cde(Hpe(),function(r){var n=[0,Sde[1]];return 0!==c_e(Zde(0),n,n,h,$)?1:0}))break n;var O=LY(G);if(LY(_)!==O)break n;var R=LY(U);if(LY(d)!==R)break n;var Q=Fme(h),C=YY(function(r){return ade(r)[1]},Q),H=function(r){return Tme(Q,r)},V=function(r){return Ime(C,r)},L=r===n?t:n,z=YY(H,U),S=YY(V,u0(function(e,a){return E_e(r,n,t,e,a)},YY(H,d),z)),Z=YY(H,G);return[8,y,x,h,YY(V,u0(function(r,e){return E_e(L,n,t,r,e)},YY(H,_),Z)),S]}var W=f[1],X=LY(W);if(LY(m)===X)return[7,u0(function(e,a){return E_e(r,n,t,e,a)},m,W)];break n}for(var J=Uoe(Ame,l,f[1]),Y=0;;){var rr=J(0);if(!rr)return[4,XY(Y)];var nr=rr[2],tr=rr[1];if(2===tr[0]){var er=tr[2],ar=tr[1],ur=E_e(r,n,t,ar[2],er[2]);Hde(r,n,0,ar,er),J=nr,Y=[0,[0,ar[1],ur,[0,Spe[1],ar[3][2],Spe[3]]],Y]}else J=nr,Y=N_e(r===n?1:0,tr[1],Y)}}var fr=f[3],ir=f[2];if(A!==f[1])break n;try{for(var cr=Uoe(Ame,s,fr),vr=0;;){var or=cr(0);if(!or)break;var Ar=or[2],sr=or[1];if(2===sr[0]){var br=sr[1];if(l_e(0,br[2],sr[2][2]))cr=Ar,vr=[0,br,vr];else{if(r===t)throw kQ(D_e,1);cr=Ar}}else{var lr=sr[1];r===t?(cr=Ar,vr=[0,lr,vr]):cr=Ar}}for(var Br=XY(vr),jr=Uoe(Ame,b,ir),kr=0;;){var pr=jr(0);if(!pr)return[3,A,XY(kr),Br];var mr=pr[2],dr=pr[1];if(2===dr[0]){var _r=dr[2],hr=dr[1];try{var xr=E_e(r,n,t,hr[2],_r[2])}catch(vr){var yr=iL(vr);if(yr===D_e&&r===n){jr=mr;continue}throw kQ(yr,0)}Hde(r,n,0,hr,_r),jr=mr,kr=[0,[0,hr[1],xr,[0,Spe[1],hr[3][2],Spe[3]]],kr]}else jr=mr,kr=N_e(r===t?1:0,dr[1],kr)}}catch(vr){var wr=iL(vr);if(wr!==D_e)throw kQ(wr,0);if(r===t)return 1;throw kQ([0,YL,Dar],1)}}if(j_e(0,u,f)){var gr=r===t?u:f,qr=I_e[4].call(null,[0,u,f],gr,r[1]);return r[1]=I_e[4].call(null,[0,f,u],gr,qr),gr}if(j_e(0,f,u)){var Ir=r===n?u:f,Dr=I_e[4].call(null,[0,u,f],Ir,r[1]);return r[1]=I_e[4].call(null,[0,f,u],Ir,Dr),Ir}if(r===n)var Er=Ume,Nr="lub";else Er=Pme,Nr="glb";var Tr=Zp+PL($de[1],f)+f_,Fr=Mpe(Nr+om+PL($de[1],u)+Tr,Ear),Mr=[1,Fr,0],Pr=I_e[4].call(null,[0,u,f],Mr,r[1]);r[1]=I_e[4].call(null,[0,f,u],Mr,Pr);var Ur=Er(f),Gr=E_e(r,n,t,Er(u),Ur);if(Gr===Mr){if(r!==t)throw kQ([0,YL,Nar],1);var $r=1}else $r=Gr;return ime(Fr,[0,0,$r]),$r}return r===n?0:1}if("number"==typeof f||1!==f[0])Kr=0;else var Kr=1;var Or=Kr?f:u,Rr=I_e[4].call(null,[0,u,f],Or,r[1]);return r[1]=I_e[4].call(null,[0,f,u],Or,Rr),Or}function N_e(r,n,t){return r?[0,n,t]:t}function T_e(r,n,t){return Rde(r?r[1]:Hpe(),function(r){var e=[0,I_e[1]];return E_e(e,e,[0,I_e[1]],n,t)})}function F_e(r,n,t){return Rde(r?r[1]:Hpe(),function(r){var e=[0,I_e[1]];return E_e(e,[0,I_e[1]],e,n,t)})}var M_e=aBe([0,r1]),P_e="$",U_e=[0,P_e,0,0],G_e=[8,0,0,[0,U_e,0],0,[0,[9,0,[0,P_e,0],Ez],0]],$_e=[8,[0,0],1,[0,U_e,0],0,[0,Bme(0,[0,[0,qir,Mz],0]),0]],K_e=Bme(0,[0,[0,Qir,Tz],[0,[0,Rir,Tz],[0,[0,Oir,Uz],[0,[0,Kir,Uz],[0,[0,$ir,Tz],[0,[0,Gir,Tz],[0,[0,Uir,Tz],[0,[0,Pir,Tz],[0,[0,Mir,Tz],[0,[0,Fir,Tz],[0,[0,Tir,Uz],[0,[0,Nir,Nz],[0,[0,Eir,Tz],[0,[0,Dir,Tz],[0,[0,Iir,bme],0]]]]]]]]]]]]]]]),O_e=[8,[0,0],1,[0,U_e,0],0,[0,K_e,0]];function R_e(r){return[4,d0(Ame,B0(function(r){var n=Pme(r[2]);if("number"!=typeof n&&8===n[0]){var t=n[1];if(t&&2>t[1]){var e=n[4],a=YY(function(r){return 1},n[3]),u=[8,0,0,0,0,YY(function(r){return Tme(a,r)},e)];return[0,[0,r[1],u,Spe]]}}return 0})(r))]}var Q_e=Bme(0,[0,[0,Hir,[6,Bme(0,[0,[0,"controllers",[6,[5,Kz]]],[0,[0,"compute_allocation",[6,Tz]],[0,[0,"memory_allocation",[6,Tz]],[0,[0,"freezing_threshold",[6,Tz]],0]]]])]],0]),C_e=[0,[0,"upgrade_with_persistence",Bme(0,[0,[0,"wasm_memory_persistence",kme([0,[0,"keep",Ez],[0,[0,"replace",Ez],0]])],[0,[0,"canister",Bme(1,0)],0]])],0],H_e=[0,[0,"upgrade",Bme(1,0)],C_e],V_e=kme([0,[0,Vir,Q_e],[0,[0,"install",Kz],[0,[0,"reinstall",Bme(1,0)],H_e]]]),L_e=[0,Lz,Tz,Spe],z_e=[0,Sz,Fz,Spe];function S_e(r){return r?"*":""}function Z_e(r){switch(r){case 0:return Ffr;case 1:return Mfr;case 2:return Pfr;case 3:return Ufr;case 4:return Gfr;case 5:return $fr;case 6:return Kfr;case 7:return Ofr;case 8:return Rfr;case 9:return Qfr;case 10:return Cfr;case 11:return Hfr;case 12:return Vfr;case 13:return Lfr;case 14:return zfr;case 15:return Sfr;case 16:return Zfr;case 17:return Wfr;case 18:return Xfr;default:return Jfr}}function W_e(r){switch(r){case 0:return"";case 1:return"actor ";case 2:return"mixin ";case 3:return"module ";default:return"memory "}}function X_e(r){if(r)switch(r[1]){case 0:return"shared query ";case 1:return"shared ";default:return"shared composite query "}return""}var J_e=[0,0,1,1,Lir,zir,0];function Y_e(r){var n=[0,ome[1]];function t(n,t,e,a){var u=n?n[1]:$fe,f=r[6];if(!f)return tie([0,u],t,e,a);var i=f[1],c=LY(a);if(c=VV(r,t)){t=t-1|0;continue}var e=t}else e=t;else e=-1;return 0<=e&&e<(n-1|0)&&1<=e&&95===VV(r,e)&&95===VV(r,e-1|0)?K0(r,0,e-1|0):r}}(i)}function o(r,n){return function n(t,e){r:{n:{t:{e:{a:{var a=e;u:for(;;){if("number"==typeof a){if(2===a)throw kQ([0,YL,Par],1)}else switch(a[0]){case 0:return t!==a[2]?1:0;case 1:break r;case 3:break t;case 4:break e;case 7:break a;case 8:break u;case 9:var u=a[2];if("number"!=typeof u&&0===u[0]){var f=a[3];if(u[2]===t&&t<=r){a=f;continue}}var i=a[3],c=n(t,a[2]);if(!c)return c;a=i;continue;case 11:a=a[2];continue;case 2:break;default:a=a[1];continue}return 1}var v=a[3],o=a[5],A=a[4],s=t+LY(v)|0;u:{for(var b=v;b;){var l=b[2],B=n(s,b[1][3]);if(!B){var j=B;break u}b=l}j=1}u:{f:{if(!j){var k=j;break u}for(var p=A;p;){var m=p[2],d=n(s,p[1]);if(!d){var _=d;break f}p=m}_=1}if(_)for(var h=o;;){if(!h)return 1;var x=h[2],y=n(s,h[1]);if(!y)return y;h=x}else k=_}return k}for(var w=a[1];;){if(!w)return 1;var g=w[2],q=n(t,w[1]);if(!q)return q;w=g}}var I=a[1];break n}I=a[2]}for(;;){if(!I)return 1;var D=I[2],E=n(t,I[1][2]);if(!E)return E;I=D}}for(var N=a[2];;){if(!N)return 1;var T=N[2],F=n(t,N[1]);if(!F)return F;N=T}}(r,n)}function A(r,n,e){var u=e[1];if(u){var f=e[3],i=YY(function(r){return[0,r]},e[2]),c=function(n,t){return 0===t[0]?d(r,n,t[1]):_(r,n,t[1])},v=[0,a],o=rY(YY(function(r){return[1,r]},f),i),A=W_e(u);return GL(cie(n)(Uar),A,function(r,n){return t(v,c,r,n)},o)}var s=e[3],b=YY(function(r){return[0,r]},e[2]);function l(n,t){return 0===t[0]?d(r,n,t[1]):_(r,n,t[1])}var B=[0,a],j=rY(YY(function(r){return[1,r]},s),b);return UL(cie(n)(Gar),function(r,n){return t(B,l,r,n)},j)}function s(r,n,e){if(!e)return qfe(n,"{#}");function u(n,t){return y(r,n,t)}var f=[0,a];return UL(cie(n)($ar),function(r,n){return t(f,u,r,n)},e)}function b(r,n,a){if("number"==typeof a)switch(a){case 0:return qfe(n,Oar);case 1:return qfe(n,Rar);default:return qfe(n,"???")}switch(a[0]){case 0:var u=a[2],f=a[1];try{var c=i(ZY(r,u))}catch(r){c=UL(R3(Qar),f,u)}return qfe(n,c);case 1:var o=a[1];if(!a[2])return qfe(n,v(o));var b=function(n,t){return m(r,n,t)},l=[0,e],B=a[2],j=v(o);return GL(cie(n)(Car),j,function(r,n){return t(l,b,r,n)},B);case 2:return qfe(n,Z_e(a[1]));case 3:if(!a[1])return A(r,n,[0,0,a[2],a[3]]);break;case 4:return s(r,n,a[1]);case 5:var k=a[1];if("number"!=typeof k&&10===k[0]){var p=k[1];return UL(cie(n)(Har),function(n,t){return m(r,n,t)},p)}return UL(cie(n)(Var),function(n,t){return m(r,n,t)},k);case 7:var d=a[1],_=1===LY(d)?Lar:"",h=function(n,t){return function(r,n,t){if("number"!=typeof t&&11===t[0]){var e=t[2],a=t[1];return GL(cie(n)(Kar),a,function(n,t){return m(r,n,t)},e)}return m(r,n,t)}(r,n,t)},x=[0,e];return GL(cie(n)(zar),function(r,n){return t(x,h,r,n)},d,_);case 11:var y=a[2],w=a[1];return GL(cie(n)(Sar),w,function(n,t){return m(r,n,t)},y)}return UL(cie(n)(Zar),function(n,t){return m(r,n,t)},a)}function l(r,n,t){if("number"!=typeof t)switch(t[0]){case 6:var e=t[1];return UL(cie(n)(War),function(n,t){return l(r,n,t)},e);case 12:var a=t[1];return UL(cie(n)(Xar),function(n,t){return l(r,n,t)},a)}return b(r,n,t)}function B(n,t,e){if("number"!=typeof e)switch(e[0]){case 3:var a=e[1];if(a)return A(n,t,[0,a,e[2],e[3]]);break;case 9:var u=e[3],f=e[2],i=e[1];if(!r[2]){var c=S_e(i);return GL(cie(t)(rur),c,function(r,t){return B(n,r,t)},u)}if("number"!=typeof f&&0===f[0]&&ZY(n,f[2])[1]===fQ){var v=S_e(i);return GL(cie(t)(Jar),v,function(r,t){return B(n,r,t)},u)}var o=S_e(i);return KL(cie(t)(Yar),o,function(r,t){return m(n,r,t)},f,function(r,t){return B(n,r,t)},u)}return l(n,t,e)}function j(r,n,t){if(t){var e=t[1];if("number"!=typeof e&&7===e[0]&&!t[2]){var a=hme(t);return UL(cie(n)(nur),r,a)}}return UL(r,n,hme(t))}function k(r,n,t){if("number"!=typeof t&&8===t[0]){var e=t[3],a=t[5],u=t[4],f=t[2],i=t[1],c=function(r){r:if("number"!=typeof r&&8===r[0]){var n=r[1];switch(r[2]){case 0:var t=r[3];if(t){var e=r[5];if(e){var a=e[1];if("number"==typeof a)break r;if(9!==a[0])break r;var u=a[2];if("number"==typeof u)break r;if(0!==u[0])break r;if(0!==u[2])break r;if(e[2])break r;var f=e,i=r[4],c=t;break}}if(!n)break r;var v=r[5];if(v)break r;f=v,i=r[4],c=r[3];break;case 1:f=r[5],i=r[4],c=r[3];break;default:break r}n:{for(var A=c;A;){var s=A[2],b=o(0,A[1][3]);if(!b){var l=b;break n}A=s}l=1}if(l){n:{for(var B=i;B;){var j=B[2],k=o(0,B[1]);if(!k){var p=k;break n}B=j}p=1}if(p)for(var m=f;;){if(!m)return 1;var d=m[2],_=o(0,m[1]);if(!_)return _;m=d}else var h=p}else h=l;return h}return 0}(t),v=w(r,e);if(c)var A=SY(e),s=SY(v);else if(e&&!e[1][2]){var b=SY(v);A=e,s=[0,[0,tur,zY(v)[2]],b]}else A=e,s=v;var k=rY(v,r),m=function(r,n){return l(k,r,n)},d=X_e(i);return RL(cie(n)(eur),d,function(r,n){return q(k,s,r,n)},A,function(r,n){return j(m,r,n)},u,function(r,n){return p(c,f,k,r,n)},a)}return B(r,n,t)}function p(r,n,t,e,a){switch(n){case 0:if(a){var u=a[1];if("number"!=typeof u&&9===u[0]&&!a[2]){var f=u[3],i=u[1];if(r){var c=S_e(i);return GL(cie(e)(aur),c,function(r,n){return B(t,r,n)},f)}}}return j(function(r,n){return k(t,r,n)},e,a);case 1:var v=function(r,n){return B(t,r,n)};return UL(cie(e)(uur),function(r,n){return j(v,r,n)},a);default:var o=function(r,n){return k(t,r,n)};return UL(cie(e)(fur),function(r,n){return j(o,r,n)},a)}}function m(r,n,t){if("number"!=typeof t&&10===t[0]){var e=t[1];return UL(cie(n)(iur),function(n,t){return l(r,n,t)},e)}return k(r,n,t)}function d(r,n,t){var e=t[2],a=t[1];if("number"!=typeof e&&10===e[0]){var u=e[1];return GL(cie(n)(vur),a,function(n,t){return m(r,n,t)},u)}return GL(cie(n)(our),a,function(n,t){return m(r,n,t)},e)}function _(r,n,t){var e=t[1],a=I(r,Upe(t[2])),u=a[3],f=a[2],i=a[1];return OL(cie(n)(Aur),e,f,0,i,u,0)}function h(r,n,t){var e=t[2],a=t[1];if("number"!=typeof e&&10===e[0]){var u=e[1];return GL(cie(n)(sur),a,function(n,t){return m(r,n,t)},u)}return GL(cie(n)(bur),a,function(n,t){return m(r,n,t)},e)}function x(r,n,t){var e=t[2],a=e[2],u=e[1],f=t[1]?lur:Bur;if("number"!=typeof a&&10===a[0]){var i=a[1];return $L(cie(n)(jur),f,u,function(n,t){return m(r,n,t)},i)}return $L(cie(n)(kur),f,u,function(n,t){return m(r,n,t)},a)}function y(r,n,t){var e=t[2],a=t[1];return"number"==typeof e||7!==e[0]||e[1]?GL(cie(n)(mur),a,function(n,t){return m(r,n,t)},e):PL(cie(n)(pur),a)}function w(r,n){return YY(function(n){return function(r,n){for(var t=r,e=n;;){if(!t)return e;var a=t[2];e[1]===t[1][1]?(t=a,e=[0,e[1],e[2]+1|0]):t=a}}(r,[0,n[1],0])},n)}function g(r,n,t){var e=t[2][3],a=t[1];if(0===e)return qfe(n,i(a));var u=i(a);return GL(cie(n)(dur),u,function(n,t){return m(r,n,t)},e)}function q(r,n,a,u){if(!u)return 0;function f(n,t){return g(r,n,t)}var i=[0,e],c=m0(n,u);return UL(cie(a)(_ur),function(r,n){return t(i,f,r,n)},c)}function I(r,n){if(0===n[0])var t=n[2],e=n[1],a=hur;else t=n[2],e=n[1],a=xur;var u=w(r,e),f=rY(u,r);return[0,a,function(r,n){return q(f,u,r,e)},function(r,n){return m(f,r,t)}]}function D(r){return I(f(Ide(r)),r)}function E(r,n,t){var e=t[2],a=goe(34,xoe(t[1]),34);return GL(cie(n)(yur),a,function(n,t){return m(r,n,t)},e)}function N(r,n,t){if("number"!=typeof t&&1===t[0]){if(0!==Upe(t[1])[0])return m(r,n,t);var e=Pme(t);r:{if("number"==typeof e){if(2===e)break r}else if(2!==e[0])break r;return m(r,n,t)}return $L(cie(n)(Dur),function(n,t){return m(r,n,t)},t,function(n,t){return N(r,n,t)},e)}return m(r,n,t)}function T(r,n){return m(f(qde(n)),r,n)}function F(r,n){return function(r,n,t){var e=I(r,Upe(t)),a=e[3],u=e[2],f=e[1],i=t[1];return OL(cie(n)(cur),i,u,0,f,a,0)}(f(xde(1,n,ome[41][1])),r,n)}function M(r,n){return N(f(qde(n)),r,n)}function P(r,n){var t=l0(function(r){if("number"!=typeof r&&0===r[0]){var n=r[1],t=Upe(n);if(0===t[0]&&!t[1]){var e=t[2];if("number"==typeof e)switch(e){case 0:if(v(n)===Fa)return 0;break;case 1:if(v(n)===Rv)return 0}else if(2===e[0]){var a=Z_e(e[1]);if(v(n)===a)return 0}}return 1}return 1})(n);if(0===t)return"";function e(r,n){if("number"==typeof r)switch(r){case 0:return kfr;case 1:return pfr;default:return mfr}switch(r[0]){case 0:var t=v(r[1]);return[0,PL(R3(_fr),t),dfr];case 1:var e=r[1];return[0,PL(R3(xfr),e),hfr];case 2:var a=r[1];return[0,PL(R3(wfr),a),yfr];default:var u=r[1];return[0,PL(R3(qfr),u),gfr]}}return"\n "+r+zy+function r(n,t){if(!t)return jfr;var a=t[1],u=t[2];if(!u)return e(a)[1];if(n){var f=t[2],i=e(a),c=i[2],v=i[1],o=r(1,f);return GL(R3(Bfr),v,c,o)}var A=e(a)[1],s=r(1,u);return UL(R3(lfr),A,s)}(0,t)}function U(r){return r?0:1}function G(r){return r?"expected ":""}return[0,,function(r){n[1]=r},function(r){n[1]=ome[1]},,,,,,,,,,v,,,,,,,,,,,,,,,,,,,,,,,,D,,,,function(r,n){switch(n[0]){case 0:var e=n[1];break;case 1:var u=n[2];e=rY(YY(function(r){return r[2]},n[1]),u);break;default:e=rY(n[1],n[2])}var i=a0(function(r,n){return wde(0,r,n)},e,ome[41][1]),c=f(i),o=ome[41][19].call(null,function(r){var n=Upe(r);if(0!==n[0])return 0;if(!n[1]){var t=n[2];if("number"==typeof t)switch(t){case 0:if(v(r)===Fa)return 0;break;case 1:if(v(r)===Rv)return 0}else if(2===t[0]){var e=Z_e(t[1]);if(v(r)===e)return 0}}return 1},i),A=d0(Ame,YY(function(r){return[0,v(r),r,Spe]},ome[41][23].call(null,o)));var s=0===A?function(r,n){return 0}:a;function b(r,n){return _(c,r,n)}var l=[0,a];return OL(cie(r)(Iur),function(r,n){return t(l,b,r,n)},A,s,0,function(r,n){switch(n[0]){case 0:var e=function(r,n){return h(c,r,n)},u=[0,a],f=n[1],i=W_e(1);return GL(cie(r)(wur),i,function(r,n){return t(u,e,r,n)},f);case 1:var v=function(r,n){return h(c,r,n)},o=[0,a],A=function(r,n){return x(c,r,n)},s=[0,a],b=n[2],l=n[1],B=W_e(1);return KL(cie(r)(gur),B,function(r,n){return t(s,A,r,n)},l,function(r,n){return t(o,v,r,n)},b);default:var j=function(r,n){return h(c,r,n)},k=[0,a],p=n[2],m=n[1],d=function(r,n){return E(c,r,n)},_=[0,a],y=W_e(1);return KL(cie(r)(qur),function(r,n){return t(_,d,r,n)},m,y,function(r,n){return t(k,j,r,n)},p)}},n)},,qfe,T,,M,function(r){return coe(function(r){return function(n){return T(r,n)}},r)},,function(r){var n=D(r),t=n[2],e=n[1],a=coe(n[3],0);return[0,e,coe(t,0),a]},function(r){return coe(function(r){return function(n){return M(r,n)}},r)},,,,function r(n){function t(r,n){return voe(T,r,n)}function e(r,n){return voe(F,r,n)}switch(n[0]){case 0:var a=n[3],u=n[2],f=P(Gur,n[1]);return KL(sie(nfe,$ur),t,u,t,a,f);case 1:var i=n[3],c=n[2],v=P(Kur,n[1]);return KL(sie(nfe,Our),e,c,e,i,v);case 2:var o=n[2],A=n[1],s=r(n[3]);return KL(sie(nfe,Rur),t,A,t,o,s);case 3:var b=n[2],l=n[4],B=n[3],j=P(Qur,n[1]),k=G(U(b)),p=G(b);return OL(sie(nfe,Cur),p,B,k,t,l,j);case 4:var m=n[2],d=n[4],_=n[3],h=n[1],x=n[5]?Hur:Vur,y=P(Lur,h),w=G(U(m)),g=G(m);return RL(sie(nfe,zur),g,x,_,w,t,d,y);case 5:var q=n[2],I=P(Sur,n[1]);return UL(sie(nfe,Zur),q,I);case 6:var D=n[2],E=P(Wur,n[1]);return UL(sie(nfe,Xur),D,E);case 7:var N=n[2],M=P(Jur,n[1]);return GL(sie(nfe,Yur),t,N,M);case 8:var $=n[1],K=n[3],O=n[2],R=$?$[2]:$,Q=P(rfr,R);return KL(sie(nfe,nfr),t,O,t,K,Q);case 9:var C=function(r){switch(r){case 0:return Tur;case 1:return Fur;case 2:return Mur;case 3:return Pur;default:return Uur}},H=n[3],V=n[2],L=P(tfr,n[1]),z=C(H),S=C(V);return GL(sie(nfe,efr),S,z,L);case 10:var Z=n[3],W=n[2],X=P(afr,n[1]),J=X_e(Z),Y=X_e(W);return GL(sie(nfe,ufr),Y,J,X);case 11:var rr=function(r){switch(r){case 0:return"regular function or one-shot shared function";case 1:return"shared function that returns a future";default:return"compiler-internal reply function"}},nr=n[3],tr=n[2],er=P(ffr,n[1]),ar=rr(nr),ur=rr(tr);return GL(sie(nfe,ifr),ur,ar,er);case 12:var fr=n[3],ir=n[2],cr=P(cfr,n[1]);return KL(sie(nfe,vfr),t,ir,t,fr,cr);case 13:var vr=function(r){return r?Eur:Nur},or=n[3],Ar=n[2],sr=P(ofr,n[1]),br=vr(or),lr=vr(Ar);return GL(sie(nfe,Afr),lr,br,sr);default:var Br=n[3],jr=n[2],kr=P(sfr,n[1]);return KL(sie(nfe,bfr),t,jr,t,Br,kr)}},function(r,n,t){switch(t[0]){case 0:case 8:case 12:var e=t[3],a=b_e(0,r,t[2]);return a?b_e(0,n,e):a;default:return 0}}]}var rhe=J_e[1],nhe=J_e[2],the=J_e[4],ehe=J_e[5],ahe=Y_e(J_e),uhe=ahe[13],fhe=ahe[44],ihe=ahe[46],che=ahe[47],vhe=ahe[50],ohe=ahe[2],Ahe=ahe[3],she=ahe[43],bhe=ahe[49],lhe=ahe[54],Bhe=ahe[55];function jhe(r,n,t,e){return Qde(r?r[1]:Hpe(),function(r){var a=Wde(n);if(i_e(a,[0,Sde[1]],[0,Sde[1]],t,e))return 0;var u=Yde(a);return u?[0,u[1]]:[0,[0,n,t,e]]},function(r){return 0===r?1:0})}function khe(r){var n=lde(r),t=n[2];return[0,Zme(Pme(n[1]))[2],Zme(Ume(t))[2]]}function phe(r){return Oie(Pie(r))}function mhe(r,n,t){var e=n?n[1]:1,a=khe(r),u=a[1],f=a[2],i=B0(function(r){var n=pde(r[1],u),t=pde(r[1],f);return n||t?0:[0,[0,1-e,r]]})(t);return d0(function(r,n){return Ame(r[2],n[2])},rY(YY(function(r){return[0,1,r]},u),i))}function dhe(r,n,t){for(var e=XY(n),a=YY(function(r){return[0,0,r]},t),u=[0,a,0],f=e,i=a;;){if(!f)return[0,i,u];var c=f[1],v=f[2];if(dH([0,c[1]],r))return[0,i,u];var o=YY(function(r){return r[2]},i),A=mhe(c[2],Mar,o);u=[0,A,u],f=v,i=A}}function _he(r,n){switch(n[0]){case 0:return YY(function(r){return[0,0,r]},n[1]);case 1:return n[1];default:return dhe(r,n[1],n[2])[1]}}function hhe(r){switch(r[0]){case 0:return[0,r[1],0];case 1:return[0,r[2],0];default:var n=r[1],t=r[2];if(0===n)throw kQ([0,YL,Far],1);return[0,t,[0,Noe(n)[1]]]}}function xhe(r){return[3,4,YY(function(r){var n=r[2],t=n[3],e=[6,ede(n[2])];return[0,n[1],e,t]},r),0]}function yhe(r,n){if(2===r[0]&&2!==n[0])return 0;var t=hhe(r);return whe(t[1],_he(t[2],n))}function whe(r,n){for(var t=Uoe(function(r,n){return Ame(r,n[2])},r,n);;){var e=t(0);if(!e)return 1;var a=e[1],u=e[2];switch(a[0]){case 0:var f=0;break;case 1:f=1-a[1][1];break;default:var i=a[1],c=ede(a[2][2][2]),v=ede(i[2]),o=Hpe();let r=c,n=v;f=Cde(o,function(t){var e=[0,Sde[1]],a=[0,Sde[1]];return i_e(Wde(0),a,e,n,r)})}if(!f)return f;t=u}}function ghe(r){var n=Y_e(r);return[0,,,,,n[46],,,n[47],,n[49],,n[54]]}function qhe(r){r:{n:{var n=r;t:for(;;){if("number"==typeof n)switch(n){case 0:return Jir;case 1:return Yir;default:throw kQ([0,YL,rcr],1)}switch(n[0]){case 0:throw kQ([0,YL,ncr],1);case 2:switch(n[1]){case 0:var t="z";break;case 1:t=jcr;break;case 2:t=kcr;break;case 3:t="n8";break;case 4:t="n16";break;case 5:t="n32";break;case 6:t="n64";break;case 7:t="I";break;case 8:t="i8";break;case 9:t="i16";break;case 10:t="i32";break;case 11:t="i64";break;case 12:t=pcr;break;case 13:t="h";break;case 14:t=mcr;break;case 15:t="t";break;case 16:t="B";break;case 17:t="E";break;case 18:t="P";break;default:t="R"}return[0,[0,0,t],0];case 3:break r;case 4:break n;case 5:var e=n[1];return"number"!=typeof e&&10===e[0]?[0,acr,[0,e[1],0]]:[0,ucr,[0,e,0]];case 6:return[0,fcr,[0,n[1],0]];case 7:var a=n[1];return a?[0,icr,a]:ccr;case 8:break t;case 9:throw kQ([0,zL,"typ_hash: Only supports serializable data"],1);case 10:return[0,Acr,[0,n[1],0]];case 12:return[0,scr,[0,n[1],0]];default:n=Pme(n)}}for(var u=n[4],f=n[1],i=n[3],c=n[5],v=n[2];;){if(!i){var o=rY(u,c);switch(v){case 0:var A="";break;case 1:A="p";break;default:A=vcr}if(f)switch(f[1]){case 0:var s="q";break;case 1:s=ocr;break;default:s="C"}else s="";return[0,[0,[1,LY(u)],"F"+s+A],o]}var b=i[2];if(0!==i[1][2])throw kQ([0,YL,Wir],1);i=b}}var l=n[1],B=YY(function(r){return r[2]},l);return[0,[0,[0,YY(function(r){return r[1]},l)],ecr],B]}var j=n[2],k=n[3],p=n[1],m=YY(function(r){return ede(r[2])},j);switch(p){case 0:var d=tcr;break;case 1:d="ra";break;case 2:d="rx";break;case 3:d="rm";break;default:d="rs"}var _=YY(function(r){var n=zme(r[2])?Xir:"";return r[1]+n},j);return[0,[0,[0,rY(YY(function(r){return r[1]},k),_)],d],m]}function Ihe(r){return W_+O0("",r)+Jq}function Dhe(r,n){var t=r[2],e=r[1];if("number"==typeof e)switch(e){case 0:if(0===n)return t;throw kQ([0,YL,bcr],1);case 1:if(n&&!n[2])return t+n[1];throw kQ([0,YL,lcr],1);default:return t+Ihe(n)}if(0===e[0])return t+W_+O0(Bcr,u0(function(r,n){return r+nK+n},e[1],n))+Jq;var a=e[1];if(a<=LY(n))var u=Doe(a,n),f=[0,Ioe(a,n),u];else f=[0,n,0];var i=f[1],c=Ihe(f[2]);return t+Ihe(i)+c}function Ehe(r,n){return fQ+r+Sq+n}function Nhe(r){return"!"+r}function The(r){var n=R1([0,KC]),t=[0,n[1]],e=xBe(0),a=[0,dBe[1]];if(0!==function r(u){var f=n[29].call(null,u,t[1]);if(f)return f[1];var i=e(0);t[1]=n[4].call(null,u,i,t[1]);var c=qhe(u),v=c[1],o=YY(r,c[2]);return a[1]=dBe[4].call(null,i,[0,v,o],a[1]),i}(r))throw kQ([0,YL,knr],1);var u=a[1],f=[0,dBe[1]];function i(r){return dBe[28].call(null,r,f[1])}dBe[12].call(null,function(r,n){return f[1]=dBe[4].call(null,r,0,f[1]),0},u);for(var c=[0,1],v=[0,0];!v[1];){let r=dBe[36].call(null,u);var o=function(r){var n=r[2],t=r[1],e=n[1],a=YY(i,n[2]);return[0,t,[0,i(t),e,a]]};let n=o;var A=R1([0,KC]),s=[0,A[1]],b=xBe(0);let t=A,e=s,a=b,k=function(t){return DY(n,r)};var l=function(r){var n=r[2],u=r[1],f=t[29].call(null,n,e[1]);if(f)return[0,u,f[1]];var i=a(0);return e[1]=t[4].call(null,n,i,e[1]),[0,u,i]};let p=l;var B=dBe[40].call(null,function(r){return DY(p,k)}),j=b(0);if(c[1]>j)throw kQ([0,YL,Bnr],1);v[1]=j===c[1]?1:0,c[1]=j,f[1]=B}if(0!==i(0))throw kQ([0,YL,jnr],1);var k=yBe(i,u),p=[0,dBe[1]];function m(r){return dBe[28].call(null,r,p[1])}var d=xBe(0);if(function r(n){if(dBe[29].call(null,n,p[1]))return 0;var t=p[1],e=d(0);return p[1]=dBe[4].call(null,n,e,t),t0(r,dBe[28].call(null,n,k)[2])}(0),0!==m(0))throw kQ([0,YL,lnr],1);var _=yBe(m,k),h=[0,dBe[1]];function x(r){return r?[0,r[1]+1|0]:bnr}function y(r){return h[1]=dBe[5].call(null,r,x,h[1]),0}y(0),dBe[12].call(null,function(r,n){return t0(y,n[2])},_);var w=h[1],g=dBe[36].call(null,_);function q(r){var n=r[1];return 0!==r[2][2]&&1>>1|0)+1|0}function exe(r){return txe(WJ(r))}function axe(r){return 0===r?0:0r)return LJ("make_nat");var n=AL(r);return pL(n,0,r),n}function ixe(r,n,t){var e=AL(t);return vQ(e,0,r,n,t),e}function cxe(r,n,t){var e=cL(r,n,t);return 0===vL(fxe(1),0,1,r,n,e)?1:0}function vxe(r){if(0>r)return LJ("nat_of_int");var n=fxe(1);return 0===r||EL(n,0,r),n}DC._nat={deserialize:xL,serialize:hL,hash:yL};var oxe=fxe(2);function Axe(r,n){var t=DL(r,n);return PL(R3(xvr),t)}function sxe(r,n){var t=[0,0],e=[0,0];for(EL(n,0,r);t[1]++,gL(n,t[1]);)dL(n,t[1],2,n,t[1]-1|0,1,n,0);for(;;){if(!(e[1]<(t[1]-1|0)&&wL(n,e[1])))return[0,t[1]-2|0,e[1]];e[1]++}}function bxe(r){var n=cL(r,0,qL(r));if(1===n)var t=Axe(r,0);else{var e=[0,n+1|0],a=AL(e[1]),u=fxe(e[1]),f=fxe(2);if(214748364=0)for(var b=0;;){if(48!==VV(t,b))throw A[1]=b,kQ(zJ,1);var l=b+1|0;if(s===b)break;b=l}}catch(b){var B=iL(b);if(B!==zJ)throw kQ(B,0)}return K0(t,A[1],HH(t)-A[1]|0)}EL(oxe,0,1e9);var lxe=[0,0,fxe(1)],Bxe=[0,1,vxe(1)];function jxe(r){var n=qL(r[2]);return cL(r[2],0,n)}function kxe(r){var n=qL(r[2]),t=cL(r[2],0,n);return(32*t|0)-BL(r[2],t-1|0)|0}function pxe(r){var n=jxe(r),t=ixe(r[2],0,n);return[0,0|-r[1],t]}function mxe(r){var n=jxe(r),t=ixe(r[2],0,n);return[0,0===r[1]?0:1,t]}function dxe(r,n){if(0===r[1]&&0===n[1])return 0;if(r[1]>>0)+1,c=AL(u+1),v=t-1;v>=u;v--){var o=i===af?r.data[n+v]>>>0:bL(r.data[n+v]>>>0,r.data[n+v-1]>>>0,i)[0];for(pL(c,0,u+1),dL(c,0,u+1,e,a,u,mL([o]),0),_L(r,n+v-u,u+1,c,0,u+1,1);0!==r.data[n+v]||vL(r,n+v-u,u,e,a,u)>=0;)o+=1,_L(r,n+v-u,u+1,e,a,u,1);r.data[n+v]=o}kL(r,n,u,mL([0]),0,f),kL(e,a,u,mL([0]),0,f)}(A,0,v,n[2],0,e),vQ(o,0,A,e,v-e|0);var s=1-cxe(A,0,e);if(i&&s){var b=ixe(n[2],0,e);return _L(b,0,e,A,0,e,1),EL(o,c-1|0,0),iQ(o,0,c,1),[0,[0,0|-n[1],o],[0,1,b]]}i&&EL(o,c-1|0,0);var l=[0,s?1:0,ixe(A,0,e)];return[0,[0,cxe(o,0,c)?0:hC(r[1],n[1]),o],l]}var Exe=qxe(uxe),Nxe=Exe[2];function Txe(r){var n=1===jxe(r)?1:0;if(n){var t=vL(r[2],0,1,Nxe,0,1);if(-1!==t)return 0===t&&-1===r[1]?1:0;var e=1}else e=n;return e}function Fxe(r){try{var n,t=r[2],e=1===cL(t,0,qL(t))?1:0,a=(e?wL(t,0):e)?function(r,n){return r.data[n]}(t,0):VJ("int_of_nat");return-1===r[1]?0|-a:a}catch(n){var u=iL(n);if(u[1]===LL)return _xe(r,Exe)?uxe:VJ("int_of_big_int");throw kQ(u,0)}}function Mxe(r){var n=r;if(dH(n,0))return lxe;if(DH(n,0)){var t=AL(1);return NL(t,0,n),[0,1,t]}var e=AL(1);return NL(e,0,0|-n),[0,-1,e]}function Pxe(r){1=n)for(var j=n;;){var k=VV(r,j);r:{if(32<=k){if(93<=k){if(95===k&&n>>0)break r}else if(11<=k){if(13===k)break r}else if(9<=k)break r;if(48<=k&&k<=(47+SJ(a,10)|0))var p=k+yv|0;else if(65<=k&&k<=((65+a|0)-11|0))p=k+-55|0;else if(97<=k&&k<=((97+a|0)-11|0))p=k-87|0;else p=VJ("invalid digit");B[1]=hC(B[1],a)+p|0,b[1]++}var m=(b[1]===i?1:0)||(j===l?1:0);if(m?1-(0===b[1]?1:0):m){EL(A,0,B[1]);var d=c===v[1]?v[1]-1|0:v[1];if(d>=1)for(var _=1;;){EL(A,_,0);var h=_+1|0;if(d===_)break;_=h}dL(A,0,o[1],s,0,v[1],u,b[1]-1|0),vQ(s,0,A,0,o[1]),v[1]=cL(A,0,o[1]),o[1]=SJ(c,v[1]+1|0),B[1]=0,b[1]=0}var x=j+1|0;if(l===j)break;j=x}var y=AL(v[1]);return vQ(y,0,A,0,v[1]),cxe(y,0,qL(y))?lxe:[0,e,y]}function Kxe(r,n,t,e){if(t<1&&VJ(qvr),2>t)return $xe(r,n,t,e,10);var a=VV(r,n),u=VV(r,n+1|0);r:if(48===a){n:{t:{if(89<=u){if(98!==u){if(S_===u)break t;if(HP===u)break n;break r}}else if(66!==u){if(79===u)break t;if(88<=u)break n;break r}return $xe(r,n+2|0,t-2|0,e,2)}return $xe(r,n+2|0,t-2|0,e,8)}return $xe(r,n+2|0,t-2|0,e,16)}return $xe(r,n,t,e,10)}function Oxe(r,n){var t=axe(n);if(-1===t)return LJ("power_int_positive_int");if(0===t)return Bxe;var e=WJ(r);r:if(0===n||1===e)a=vxe(1);else{if(0===e){var a=vxe(0);break r}if(0>n){var a=LJ("power_base_int");break r}var u=fxe(33),f=sxe(e,u)[1],i=AH(n,f+1|0),c=$V(n,f+1|0);if(0>=i){a=ixe(u,c-1|0,1);break r}var v=n===DF?i:i+1|0,o=fxe(v),A=fxe(v),s=exe(i)-2|0;if(vQ(o,0,u,f,1),s>=0)for(var b=s;;){var l=cL(o,0,v),B=SJ(i,2*l|0);TL(A,0,B,o,0,l);var j=B+1|0;0<(i&1<n)return LJ("shift_left_big_int");if(0===n)return r;if(0===r[1])return r;var t=jxe(r),e=AL(t+(((n+32|0)-1|0)/32|0)|0),a=n/32|0;pL(e,0,a),vQ(e,a,r[2],0,t);var u=n%32|0;return 0n)return LJ("shift_right_towards_zero_big_int");if(0===n)return r;if(0===r[1])return r;var t=jxe(r),e=n/32|0,a=n%32|0;if(t<=e)return lxe;var u=t-e|0,f=AL(u);return vQ(f,0,r[2],e,u),0n)return LJ("shift_right_big_int");if(0<=r[1])return Qxe(r,n);if(0<=n)if(0===n)var t=lxe;else{var e=n/32|0,a=e+1|0,u=fxe(a);NL(u,e,1<=HH(r))return r;var n=rF+Hxe(K0(r,5,HH(r)-5|0));return K0(r,0,5)+n}function Vxe(r){var n=d2(4);D2(n,function(r){return(255&r)<<24|(65280&r)<<8|(16711680&r)>>>8|(4278190080&r)>>>24}(tce(oce(r,0,HH(r),Yie))));var t=_2(n)+r,e=d2(2*HH(t)|0);function a(r){for(var n=r;;){var t=n[2],a=n[1];if(5>t)return n;var u=t-5|0,f=a>>>u|0;I2(e,25=o)var l=A<<5|o+-65;else if(50<=o&&55>=o)l=A<<5|o+-24;else{if(61!==o)throw kQ([0,zL,"Char out of base32 alphabet"],1);l=A}for(var B=[0,l,b];;){var j=B[2],k=B[1];if(8>j){f=s,i=B;break}var p=j-8|0;I2(u,k>>>p|0),B=[0,k&((1<HH(d))return Zvr;var _=K0(d,4,HH(d)-4|0),h=Vxe(_);return r!==h?[1,PL(R3(Wvr),h)]:[0,_]}function zxe(r){var n=poe(Qvr,r);if(!n){var t=poe("ic:",r);if(t){var e=Lxe(t[1]);return 0===e[0]?[0,[2,e[1]]]:[1,e[1]]}var a=poe("canister:",r);if(a)return[0,[3,a[1]]];var u=poe("blob:file:",r);return u?[0,[4,u[1]]]:z0(r,58)?zvr:[0,[1,zoe(r)]]}var f=n[1],i=z0(f,47);if(!i)return f!==Zr&&"⛔"!==f?[0,[0,[0,f,""]]]:Lvr;var c=i[1];if(f!==Zr&&"⛔"!==f){var v=K0(f,0,c),o=K0(f,c+1|0,HH(f)-(c+1|0)|0);return KY(poe(Hvr,zoe(o)))?[1,PL(R3(Vvr),o)]:[0,[0,[0,v,o]]]}return Cvr}qxe(DF),qxe(-2147483647);var Sxe=[0];function Zxe(r,n){var t=r[2][1+(n>>>12|0)];if(t===Sxe)return r[1];var e=t[1+(n>>>8&15)];if(e===fQ)return r[1];var a=n&GK;return 0<(VH(e,a>>>3|0)&1<<(7&a))?1:0}var Wxe=[0];function Xxe(r,n){var t=r[2][1+(n>>>12|0)];if(t===Wxe)var e=r[1];else{var a=t[1+((n>>>4|0)&GK)];e=a===Wxe?r[1]:a[1+(15&n)]}return e?[0,,e]:925480876}function Jxe(r){var n=Ume(r);if("number"==typeof n){if(1===n)return aor}else if(8===n[0]){var t=n[4],e=n[2],a=n[1],u=LY(n[5]);return[0,a,e,LY(t),u]}throw kQ([0,zL,"call_conv_of_typ "+che(r)],1)}function Yxe(r){var n=r[4],t=r[3],e=r[1];switch(r[2]){case 0:var a="->";break;case 1:a="@>";break;default:a="#>"}var u=X_e(e);return $L(R3(eor),u,t,a,n)}function rye(r,n,t,e,a){for(var u=t,f=a;;){var i=u=r[26])throw kQ([0,YL,uor],1);var t=r[26]-n[1]|0;function e(n){return UL(r[17],n,t)}function a(n){return UL(r[19],n,t)}var u=n[1];return[0,e(r[1]),e(r[2]),e(r[3]),e(UL(r[19],r[4],t)),e(UL(r[19],r[5],t)),function(n){var t=a(n);return e(PL(r[6],t))},function(n){var t=a(n);return e(PL(r[7],t))},function(n,t){var u=a(t),f=a(n);return e(UL(r[8],f,u))},function(n,t){var u=a(t),f=a(n);return e(UL(r[9],f,u))},function(n,t){var u=a(t),f=a(n);return e(UL(r[10],f,u))},function(n,t){var u=a(t),f=a(n);return e(UL(r[11],f,u))},function(n,t){var u=a(t),f=a(n);return e(UL(r[12],f,u))},r[13],function(n){var t=a(n);return e(PL(r[14],t))},r[15],function(n,t){var u=a(t),f=a(n);return e(UL(r[16],f,u))},function(n,t){return UL(r[17],n,t)},function(n,t){return e(a(UL(r[18],n,t)))},function(n,t){return e(a(UL(r[19],n,t)))},function(n){return e(PL(r[20],n))},function(n){var t=a(n);return PL(r[21],t)},function(n){return e(PL(r[22],n))},function(n){var t=a(n);return PL(r[23],t)},function(n){var t=a(n);return eye(PL(r[24],t))},function(n){var t=a(n);return eye(PL(r[25],t))},u,function(n){return e(PL(r[27],n))},function(n){var t=a(n);return PL(r[28],t)}]}var iye=fye(uye,[0,8]),cye=fye(uye,[0,16]);function vye(r){var n=lve([0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26]]),t=n[3],e=n[8],a=n[9],u=n[15],f=n[17],i=n[20],c=n[46],v=n[47],o=n[1],A=n[2],s=n[4],b=n[5],l=n[7],B=n[10],j=n[11],k=n[12],p=n[13],m=n[14],d=n[16],_=n[18],h=n[19],x=n[21],y=n[22],w=n[23],g=n[24],q=n[25],I=n[26],D=n[27],E=n[28],N=n[29],T=n[30],F=n[31],M=n[32],P=n[33],U=n[34],G=n[35],$=n[36],K=n[37],O=n[38],R=n[39],Q=n[40],C=n[41],H=n[42],V=n[43],L=n[44],z=n[45],S=n[48],Z=n[49],W=n[50],X=n[51],J=n[52],Y=n[53],rr=n[54],nr=n[55],tr=v(1);return[0,o,A,t,s,b,l,e,a,B,j,k,p,m,u,d,f,_,h,i,x,y,w,g,q,I,D,E,N,T,F,M,P,U,G,$,K,O,R,Q,C,H,V,L,z,c,v,S,Z,W,X,J,Y,rr,nr,function(r){return e(t,r)},function(r){return UL(f,r,PL(c,-1))},function r(n,f){for(var c=n,v=f;;){if(dH(v,t))return tr;if(!dH(UL(u,v,tr),t))return a(c,r(c,e(v,tr)));var o=i(v,tr);c=a(c,c),v=o}},r[26],r[27],r[28]]}var oye=fye(uye,[0,32]),Aye=vye(iye),sye=vye(cye),bye=vye(oye),lye=vye(uye);function Bye(r){var n=r[5],t=r[6];function e(n){return eye(PL(r[8],n))}return[0,,,,,n,t,r[7],,,,r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31],,function(r,e){var a=PL(t,e);return PL(n,PL(t,r)%a)},function(r,e){var a=PL(t,e);return PL(n,Math.pow(PL(t,r),a))},e,e]}var jye=Bye(Ave),kye=Bye(fve);function pye(r){return eye(-1===r[1]?rF+bxe(r[2]):bxe(r[2]))}var mye=qxe(XJ),dye=[0,1,lxe,Bxe,mxe,pxe,gxe,Ixe,function(r,n){var t=jxe(r),e=jxe(n),a=t+e|0,u=fxe(a);return t=0)for(var v=c;;){var o=cL(f,0,u),A=SJ(u,2*o|0);if(pL(i,0,A),TL(i,0,A,f,0,o),0<(t&1<=e>>>0)switch(e){case 0:return Kxe(n,1,t-1|0,1);case 2:return Kxe(n,1,t-1|0,-1)}return Kxe(n,0,t,1)},pye,pye],_ye=dye[2],hye=dye[17],xye=[0,0,_ye,dye[3],dye[4],dye[5],dye[6],function(r,n){var t=UL(dye[7],r,n);if(UL(hye,t,_ye))return t;throw kQ([0,zL,"Nat.sub"],1)},dye[8],dye[9],dye[10],dye[11],dye[12],dye[13],dye[14],dye[15],dye[16],hye,dye[18],dye[19],dye[20],dye[21],dye[22],dye[23],dye[24],dye[25],function(r){if(UL(hye,r,_ye))return r;throw kQ([0,zL,"Nat.of_big_int"],1)},dye[27],dye[28],dye[29]];function yye(r,n){function t(t){var e=PL(r[25],t);return PL(n[59],e)}function e(t){var e=PL(n[60],t),a=r[1]&&hxe(Oxe(2,n[58]-1|0),e)?Ixe(e,Oxe(2,n[58])):e;return PL(r[26],a)}function a(n){var a=e(t(n));if(UL(r[12],a,n))return n;throw kQ([0,zL,"value out of bounds"],1)}function u(r,n){return e(PL(r,t(n)))}function f(r,n,a){var u=t(a);return e(UL(r,t(n),u))}var i=n[56],c=n[24],v=n[22],o=n[23],A=n[14],s=n[15],b=n[16],l=n[17],B=r[1],j=r[2],k=r[3],p=r[10],m=r[12],d=r[13],_=r[14],h=r[15],x=r[16],y=r[17],w=r[18],g=r[19],q=r[21],I=r[23],D=r[25],E=r[28],N=r[29];var T=r[1]?n[18]:n[19],F=n[20],M=n[21],P=n[6],U=n[7],G=n[8];return[0,B,j,k,function(n){return a(PL(r[4],n))},function(n){return a(PL(r[5],n))},function(n,t){return a(UL(r[6],n,t))},function(n,t){return a(UL(r[7],n,t))},function(n,t){return a(UL(r[8],n,t))},function(n,t){return a(UL(r[9],n,t))},p,function(n,t){return a(UL(r[11],n,t))},m,d,_,h,x,y,w,g,function(n){return a(PL(r[20],n))},q,function(n){return a(PL(r[22],n))},I,function(n){return a(PL(r[24],n))},D,function(n){return a(PL(r[26],n))},function(n){return a(PL(r[27],n))},E,N,function(r){return u(i,r)},function(r){return u(c,r)},function(r){return u(v,r)},function(r){return u(o,r)},function(r,n){return f(A,r,n)},function(r,n){return f(s,r,n)},function(r,n){return f(b,r,n)},function(r,n){return f(l,r,n)},function(r,n){return f(T,r,n)},function(r,n){return f(F,r,n)},function(r,n){return f(M,r,n)},function(r){return e(PL(n[59],r))},function(r,n){return f(P,r,n)},function(r,n){return f(U,r,n)},function(r,n){return f(G,r,n)},function(t,e){if(UL(r[17],e,r[2]))return f(n[57],t,e);throw kQ([0,zL,"negative exponent"],1)}]}var wye=yye(xye,Aye),gye=yye(xye,sye),qye=yye(xye,bye),Iye=yye(xye,lye),Dye=yye(dye,Aye),Eye=yye(dye,sye),Nye=yye(dye,bye),Tye=yye(dye,lye),Fye=kye[34],Mye=kye[35],Pye=kye[6],Uye=jye[34],Gye=jye[25],$ye=jye[35],Kye=jye[6],Oye=jye[5],Rye=kye[33],Qye=kye[32],Cye=kye[23],Hye=kye[14],Vye=kye[13],Lye=kye[12],zye=kye[11],Sye=kye[7],Zye=kye[5],Wye=jye[33],Xye=jye[32],Jye=jye[30],Yye=jye[29],rwe=jye[28],nwe=jye[27],twe=jye[26],ewe=jye[24],awe=jye[23],uwe=jye[22],fwe=jye[21],iwe=jye[20],cwe=jye[19],vwe=jye[18],owe=jye[17],Awe=jye[16],swe=jye[15],bwe=jye[14],lwe=jye[13],Bwe=jye[12],jwe=jye[11],kwe=jye[7],pwe=aBe([0,r1]);function mwe(r){var n=t1(r);function t(r){for(var n=OC(2),t=0;;){if(0===t)var e=boe(r/16|0);else{if(1!==t)throw kQ([0,YL,U8],1);e=boe(r%16|0)}eC(n,t,e);var a=t+1|0;if(1===t)return"\\"+XV(n);t=a}}return O0("",x0(function(r){return DY(t,n)}))}function dwe(r,n,t){return[20,[0,0,0,r,n],t]}function _we(r,n,t,e){return[20,[0,[0,r],1,n,t],e]}function hwe(r){throw kQ([0,zL,"Value."+r],1)}function xwe(r){return"number"==typeof r?0:hwe("as_null")}function ywe(r){return"number"!=typeof r&&0===r[0]?r[1]:hwe("as_bool")}function wwe(r){return"number"!=typeof r&&1===r[0]?r[1]:hwe("as_int")}function gwe(r){return"number"!=typeof r&&2===r[0]?r[1]:hwe("as_int8")}function qwe(r){return"number"!=typeof r&&3===r[0]?r[1]:hwe("as_int16")}function Iwe(r){return"number"!=typeof r&&4===r[0]?r[1]:hwe("as_int32")}function Dwe(r){return"number"!=typeof r&&5===r[0]?r[1]:hwe("as_int64")}function Ewe(r){return"number"!=typeof r&&6===r[0]?r[1]:hwe("as_nat8")}function Nwe(r){return"number"!=typeof r&&7===r[0]?r[1]:hwe("as_nat16")}function Twe(r){return"number"!=typeof r&&8===r[0]?r[1]:hwe("as_nat32")}function Fwe(r){return"number"!=typeof r&&9===r[0]?r[1]:hwe("as_nat64")}function Mwe(r){return"number"!=typeof r&&10===r[0]?r[1]:hwe("as_float")}function Pwe(r){return"number"!=typeof r&&11===r[0]?r[1]:hwe("as_float32")}function Uwe(r){return"number"!=typeof r&&12===r[0]?r[1]:hwe("as_char")}function Gwe(r){return"number"!=typeof r&&13===r[0]?r[1]:hwe("as_text")}function $we(r){return"number"!=typeof r&&14===r[0]?r[1]:hwe("as_blob")}function Kwe(r){return"number"!=typeof r&&24===r[0]?r[1]:hwe("as_iter")}function Owe(r){return"number"!=typeof r&&18===r[0]?r[1]:hwe(Hor)}function Rwe(r){return"number"!=typeof r&&17===r[0]?[0,r[1],r[2]]:hwe(Cor)}function Qwe(r){return"number"!=typeof r&&15===r[0]?r[1]:hwe(Qor)}function Cwe(r){if("number"==typeof r||15!==r[0]||r[1])return hwe("as_unit")}function Hwe(r){if("number"!=typeof r&&15===r[0]){var n=r[1];if(n){var t=n[2];if(t&&!t[2])return[0,n[1],t[1]]}}return hwe("as_pair")}function Vwe(r){return"number"!=typeof r&&19===r[0]?r[1]:hwe(Ror)}function Lwe(r){return"number"!=typeof r&&20===r[0]?[0,r[1],r[2]]:hwe(Oor)}function zwe(r){return"number"!=typeof r&&23===r[0]?r[1]:hwe($or)}function Swe(r){return"number"!=typeof r&&25===r[0]?r[1]:hwe("as_weak")}function Zwe(r,n){r:{n:{var t=r,e=n;t:for(;;){if(t===e)return 0;if("number"==typeof t)break r;switch(t[0]){case 1:if("number"==typeof e)break r;if(1===e[0])return UL(dye[18],t[1],e[1]);break r;case 2:if("number"==typeof e)break r;if(2===e[0])return UL(Dye[18],t[1],e[1]);break r;case 3:if("number"==typeof e)break r;if(3===e[0])return UL(Eye[18],t[1],e[1]);break r;case 4:if("number"==typeof e)break r;if(4===e[0])return UL(Nye[18],t[1],e[1]);break r;case 5:if("number"==typeof e)break r;if(5===e[0])return UL(Tye[18],t[1],e[1]);break r;case 6:if("number"==typeof e)break r;if(6===e[0])return UL(wye[18],t[1],e[1]);break r;case 7:if("number"==typeof e)break r;if(7===e[0])return UL(gye[18],t[1],e[1]);break r;case 8:if("number"==typeof e)break r;if(8===e[0])return UL(qye[18],t[1],e[1]);break r;case 9:if("number"==typeof e)break r;if(9===e[0])return UL(Iye[18],t[1],e[1]);break r;case 15:break n;case 16:if("number"==typeof e)break r;if(16!==e[0])break r;t=t[1],e=e[1];break;case 17:if("number"==typeof e)break r;if(17!==e[0])break r;var a=UC(t[1],e[1]),u=e[2],f=t[2];if(0!==a)return a;t=f,e=u;break;case 18:break t;case 19:if("number"==typeof e)break r;if(19===e[0])return pwe[10].call(null,Zwe,t[1],e[1]);break r;case 21:if("number"==typeof e)break r;if(21===e[0])throw kQ([0,zL,vor],1);break r;case 22:if("number"==typeof e)break r;if(22===e[0])throw kQ([0,zL,oor],1);break r;case 23:if("number"==typeof e)break r;if(23!==e[0])break r;t=t[1][1],e=e[1][1];break;default:break r}}if("number"==typeof e)break r;if(18!==e[0])break r;for(var i=e[1],c=t[1],v=0;;){var o=v===i.length-1?1:0;if(v===c.length-1)return o?0:-1;if(o)return 1;var A=vC(i,v)[v+1],s=Zwe(vC(c,v)[v+1],A);if(0!==s)return s;v=v+1|0}}if("number"!=typeof e&&15===e[0])for(var b=t[1],l=e[1];;){if(!b)return l?-1:0;if(!l)return 1;var B=l[2],j=b[2],k=Zwe(b[1],l[1]);if(0!==k)return k;b=j,l=B}}return KC(t,e)}var Wwe=[0,0];function Xwe(r){var n=Wwe[1],t=PL(R3(Gor),n);return Wwe[1]=Wwe[1]+1|0,t}function Jwe(r){return r?Uor:""}function Ywe(r,n){return cie(r)(Por)}function rge(r,n){return cie(r)(Mor)}function nge(r,n,t){var e=t[2],a=Pme(t[1]);if("number"==typeof a&&!a)return qfe(n,sor);if("number"==typeof e)return qfe(n,bor);switch(e[0]){case 0:return qfe(n,e[1]?lor:Bor);case 1:var u=e[1];if(UL(dye[17],u,dye[2]))return qfe(n,PL(dye[29],u));break;case 2:var f=e[1];if(dH(f,Dye[2]))return qfe(n,PL(Dye[29],f));break;case 3:var i=e[1];if(dH(i,Eye[2]))return qfe(n,PL(Eye[29],i));break;case 4:var c=e[1];if(dH(c,Nye[2]))return qfe(n,PL(Nye[29],c));break;case 5:var v=e[1];if(dH(v,Tye[2]))return qfe(n,PL(Tye[29],v));break;case 6:return qfe(n,PL(wye[29],e[1]));case 7:return qfe(n,PL(gye[29],e[1]));case 8:return qfe(n,PL(qye[29],e[1]));case 9:return qfe(n,PL(Iye[29],e[1]));case 10:return qfe(n,Uye(e[1]));case 11:return qfe(n,Fye(e[1]));case 12:return qfe(n,goe(39,[0,e[1],0],39));case 13:return qfe(n,goe(34,xoe(e[1]),34));case 14:var o=e[1];return"number"!=typeof a&&3===a[0]&&1===a[1]?qfe(n,goe(96,xoe(Vxe(o)),96)):qfe(n,bs+mwe(o)+bs);case 15:var A=e[1];if("number"==typeof a||7!==a[0])s=YY(function(r){return[0,1,r]},A);else var s=m0(a[1],A);var b=1===LY(A)?jor:"",l=function(n,t){return tge(r,n,t)},B=[0,Ywe];return GL(cie(n)(kor),function(r,n){return tie(B,l,r,n)},s,b);case 18:var j=e[1];if("number"==typeof a||5!==a[0])k=1;else var k=a[1];var p=function(n,t){return tge(r,n,t)},m=[0,Ywe],d=YY(function(r){return[0,k,r]},f1(j)),_="number"==typeof k?"":10===k[0]?por:"";return $L(cie(n)(mor),qfe,_,function(r,n){return tie(m,p,r,n)},d);case 19:var h=e[1];if(0===r)return qfe(n,"{...}");if("number"==typeof a||3!==a[0])y=function(r){return Aor},w="";else var x=a[2],y=function(r){return pde(r,x)},w=W_e(a[1]);var g=pwe[20].call(null,h),q=function(n,t){return function(r,n,t){var e=t[1],a=[0,t[2],t[3]];return GL(cie(n)(hor),e,function(n,t){return tge(r,n,t)},a)}(r,n,t)},I=[0,rge],D=B0(function(r){var n=r[1],t=r[2],e=y(n);return e?[0,[0,n,e[1],t]]:0})(g);return $L(cie(n)(dor),qfe,w,function(r,n){return tie(I,q,r,n)},D);case 20:return qfe(n,"");case 22:return qfe(n,"")}return UL(cie(n)(_or),function(n,t){return tge(r,n,t)},[0,a,e])}function tge(r,n,t){r:{n:{t:{var e=t;e:for(;;){var a=e[2],u=Pme(e[1]);if("number"==typeof u&&!u)return qfe(n,xor);if("number"!=typeof a)switch(a[0]){case 1:return qfe(n,PL(dye[29],a[1]));case 2:var f=a[1],i=PL(Dye[29],f);return qfe(n,Jwe(UL(Dye[15],f,Dye[2]))+i);case 3:var c=a[1],v=PL(Eye[29],c);return qfe(n,Jwe(UL(Eye[15],c,Eye[2]))+v);case 4:var o=a[1],A=PL(Nye[29],o);return qfe(n,Jwe(UL(Nye[15],o,Nye[2]))+A);case 5:var s=a[1],b=PL(Tye[29],s);return qfe(n,Jwe(UL(Tye[15],s,Tye[2]))+b);case 16:break r;case 17:break n;case 21:break t;case 23:var l=a[1];if("number"==typeof u||10!==u[0])B=1;else var B=u[1];e=[0,B,l[1]];continue;case 25:break e}return nge(r,n,[0,u,a])}var j=a[1];if("number"==typeof u||12!==u[0])k=1;else var k=u[1];var p=rfe(j,0),m=p?[16,p[1]]:0;return UL(cie(n)(Eor),function(n,t){return nge(r,n,t)},[0,[6,k],m])}var d=a[1],_=d[1];if(d[2]){var h=d[2];if("number"==typeof u||9!==u[0])x=1;else var x=u[3];var y=LY(h);return GL(cie(n)(Ior),y,function(n,t){return ege(r,n,t)},[0,x,_])}if("number"==typeof u||9!==u[0])w=1;else var w=u[3];return UL(cie(n)(Dor),function(n,t){return ege(r,n,t)},[0,w,_])}var g=a[1],q=a[2];if("number"!=typeof q&&15===q[0]&&!q[1])return PL(cie(n)(wor),g);var I=a[2];if("number"==typeof u||4!==u[0])D=1;else var D=dde(g,u[1]);if("number"!=typeof I&&15===I[0]){var E=[0,D,[15,I[1]]];return GL(cie(n)(gor),g,function(n,t){return tge(r,n,t)},E)}return GL(cie(n)(qor),g,function(n,t){return tge(r,n,t)},[0,D,I])}var N=a[1];if("number"==typeof u||6!==u[0])T=1;else var T=u[1];return UL(cie(n)(yor),function(n,t){return nge(r,n,t)},[0,T,N])}function ege(r,n,t){var e=t[1],a=t[2][1];if(!a)return qfe(n,Tor);var u=a[1];if(0===u[0])return nge(r,n,[0,e,u[1]]);var f=[0,e,u[1]];return UL(cie(n)(Nor),function(n,t){return nge(r,n,t)},f)}function age(r,n,t){return coe(function(n){return function(t){return tge(r,n,t)}},[0,n,t])}function uge(r){var n=[0,Ede[1]];return function r(t){r:{n:{var e=t;t:for(;;){var a=Ede[3].call(null,e,n[1]);if(a)var u=a;else{n[1]=Ede[4].call(null,e,n[1]);var f=Pme(e);if("number"==typeof f){if(1===f)return 1;break r}switch(f[0]){case 2:switch(f[1]){case 12:case 13:case 0:case 1:case 2:case 7:case 14:case 15:case 16:case 18:return 1;case 17:case 19:break r;default:u=1}break;case 3:break n;case 4:break t;case 5:e=ede(f[1]);continue;case 7:return i0(r,f[1]);case 6:case 12:e=f[1];continue;default:break r}}return u}for(var i=f[1];;){if(!i)return 1;var c=i[2],v=r(i[1][2]);if(!v)return v;i=c}}if(!f[1])for(var o=f[2];;){if(!o)return 1;var A=o[2],s=r(ede(o[1][2]));if(!s)return s;o=A}}return 0}(r)}function fge(r){var n=43===VV(r,0)?1:0;if(n)var t=n;else{var e=45===VV(r,0)?1:0;if(e)t=e;else t=(63===VV(r,0)?1:0)||(35===VV(r,0)?1:0)}return t?W_+r+Jq:r}function ige(r,n){return(r?sAr:"")+n}function cge(r,n){var t=Pme(r);if("number"!=typeof t)switch(t[0]){case 2:switch(t[1]){case 0:if("number"==typeof n)return Vor;break;case 1:if("number"!=typeof n&&0===n[0])return n[1]?Lor:zor;break;case 2:if("number"!=typeof n&&1===n[0])return PL(dye[28],n[1]);break;case 3:if("number"!=typeof n&&6===n[0])return PL(wye[28],n[1]);break;case 4:if("number"!=typeof n&&7===n[0])return PL(gye[28],n[1]);break;case 5:if("number"!=typeof n&&8===n[0])return PL(qye[28],n[1]);break;case 6:if("number"!=typeof n&&9===n[0])return PL(Iye[28],n[1]);break;case 7:if("number"!=typeof n&&1===n[0]){var e=n[1],a=PL(dye[28],e);return ige(UL(dye[15],e,dye[2]),a)}break;case 8:if("number"!=typeof n&&2===n[0]){var u=n[1],f=PL(Dye[28],u);return ige(UL(Dye[15],u,Dye[2]),f)}break;case 9:if("number"!=typeof n&&3===n[0]){var i=n[1],c=PL(Eye[28],i);return ige(UL(Eye[15],i,Eye[2]),c)}break;case 10:if("number"!=typeof n&&4===n[0]){var v=n[1],o=PL(Nye[28],v);return ige(UL(Nye[15],v,Nye[2]),o)}break;case 11:if("number"!=typeof n&&5===n[0]){var A=n[1],s=PL(Tye[28],A);return ige(UL(Tye[15],A,Tye[2]),s)}break;case 12:if("number"!=typeof n&&10===n[0])return $ye(n[1]);break;case 13:if("number"!=typeof n&&11===n[0])return Mye(n[1]);break;case 14:if("number"!=typeof n&&12===n[0])return yb+woe([0,n[1],0])+yb;break;case 15:if("number"!=typeof n&&13===n[0])return bs+n[1]+bs;break;case 16:if("number"!=typeof n&&14===n[0])return bs+mwe(n[1])+bs;break;case 18:if("number"!=typeof n&&14===n[0])return Vxe(n[1])}break;case 3:if("number"!=typeof n&&19===n[0]){var b=n[1],l=O0(Sor,YY(function(r){var n=pwe[28].call(null,r[1],b),t=r[2];if("number"==typeof t||10!==t[0])var e=n,a=t;else{var u=t[1];e=zwe(n)[1],a=u}var f=cge(a,e),i=r[1];return UL(R3(AAr),i,f)},t[2]));return PL(R3(Zor),l)}break;case 4:if("number"!=typeof n&&17===n[0]){var B=n[2],j=n[1];r:{n:{for(var k=t[1];;){if(!k)break n;var p=k[1],m=k[2];if(j===p[1])break;k=m}var d=[0,p];break r}d=0}if(!d)throw kQ([0,YL,Yor],1);var _=d[1],h=_[2];if("number"!=typeof h&&7===h[0]){if(!h[1])return PL(R3(Xor),j);var x=cge(h,B);return UL(R3(Wor),j,x)}var y=cge(_[2],B);return UL(R3(Jor),j,y)}break;case 5:var w=t[1];if("number"!=typeof w&&10===w[0]){if("number"==typeof n)break;if(18!==n[0])break;var g=n[1],q=w[1];if(dH(g,[0]))return"[var]";var I=O0(rAr,YY(function(r){return cge(q,zwe(r)[1])},f1(g)));return PL(R3(nAr),I)}if("number"!=typeof n&&18===n[0]){var D=O0(tAr,YY(function(r){return cge(w,r)},f1(n[1])));return PL(R3(eAr),D)}break;case 6:var E=t[1];if("number"==typeof n)return aAr;if(16===n[0])return rr+fge(cge(E,n[1]));break;case 7:if("number"!=typeof n&&15===n[0]){var N=n[1],T=t[1],F=1===LY(N)?uAr:"",M=O0(fAr,u0(cge,T,N));return UL(R3(iAr),M,F)}break;case 12:if("number"!=typeof n&&25===n[0]){var P=t[1],U=rfe(n[1],0);if(!U)return"(weak _)";var G=fge(cge(P,U[1]));return PL(R3(cAr),G)}}throw $L(cie(rie)(vAr),function(r,n){return tge(2,r,n)},[0,t,n],fhe,t),kQ([0,YL,oAr],1)}function vge(r){switch(r){case 2:return function(r){var n=wwe(r);return PL(xye[25],n)};case 3:return function(r){var n=Ewe(r);return PL(wye[25],n)};case 4:return function(r){var n=Nwe(r);return PL(gye[25],n)};case 5:return function(r){var n=Twe(r);return PL(qye[25],n)};case 6:return function(r){var n=Fwe(r);return PL(Iye[25],n)};case 7:return function(r){var n=wwe(r);return PL(dye[25],n)};case 8:return function(r){var n=gwe(r);return PL(Dye[25],n)};case 9:return function(r){var n=qwe(r);return PL(Eye[25],n)};case 10:return function(r){var n=Iwe(r);return PL(Nye[25],n)};case 11:return function(r){var n=Dwe(r);return PL(Tye[25],n)};case 14:return function(r){return qxe(Uwe(r))};default:throw kQ([0,zL,"Value.as_big_int: "+che([2,r])],1)}}function oge(r){throw kQ([0,zL,"operator called for None"],1)}function Age(r,n,t,e,a){var u=n[4],f=n[3],i=n[2],c=n[1];switch(a){case 7:return function(n){return[1,PL(r,wwe(n))]};case 8:return function(r){return[2,PL(c,gwe(r))]};case 9:return function(r){return[3,PL(i,qwe(r))]};case 10:return function(r){return[4,PL(f,Iwe(r))]};case 11:return function(r){return[5,PL(u,Dwe(r))]};case 12:return function(r){return[10,PL(t,Mwe(r))]};case 13:return function(r){return[11,PL(e,Pwe(r))]};default:throw kQ([0,zL,osr],1)}}function sge(r,n){if("number"==typeof n){if(1===n)return oge}else if(2===n[0]){var t=n[1];switch(r){case 0:return Age(function(r){return r},[0,function(r){return r},function(r){return r},function(r){return r},function(r){return r}],function(r){return r},function(r){return r},t);case 1:return Age(dye[5],[0,Dye[5],Eye[5],Nye[5],Tye[5]],awe,Cye,t);default:var e=Tye[30],a=Nye[30],u=Eye[30],f=Dye[30],i=Iye[30],c=qye[30],v=gye[30],o=wye[30];switch(t){case 3:return function(r){return[6,o(Ewe(r))]};case 4:return function(r){return[7,v(Nwe(r))]};case 5:return function(r){return[8,c(Twe(r))]};case 6:return function(r){return[9,i(Fwe(r))]};case 8:return function(r){return[2,f(gwe(r))]};case 9:return function(r){return[3,u(qwe(r))]};case 10:return function(r){return[4,a(Iwe(r))]};case 11:return function(r){return[5,e(Dwe(r))]};default:throw kQ([0,zL,Asr],1)}}}throw kQ([0,zL,vsr],1)}function bge(r,n){var t=r[8],e=r[7],a=r[6],u=r[5],f=r[4],i=r[3],c=r[2],v=r[1];switch(n){case 3:return function(r,n){var t=Ewe(n);return[6,UL(v,Ewe(r),t)]};case 4:return function(r,n){var t=Nwe(n);return[7,UL(c,Nwe(r),t)]};case 5:return function(r,n){var t=Twe(n);return[8,UL(i,Twe(r),t)]};case 6:return function(r,n){var t=Fwe(n);return[9,UL(f,Fwe(r),t)]};case 8:return function(r,n){var t=gwe(n);return[2,UL(u,gwe(r),t)]};case 9:return function(r,n){var t=qwe(n);return[3,UL(a,qwe(r),t)]};case 10:return function(r,n){var t=Iwe(n);return[4,UL(e,Iwe(r),t)]};case 11:return function(r,n){var e=Dwe(n);return[5,UL(t,Dwe(r),e)]};default:throw kQ([0,zL,isr],1)}}function lge(r,n,t,e,a,u){switch(u){case 2:return function(n,t){var e=wwe(t);return[1,UL(r,wwe(n),e)]};case 7:return function(r,t){var e=wwe(t);return[1,UL(n,wwe(r),e)]};case 12:return function(r,n){var t=Mwe(n);return[10,UL(e,Mwe(r),t)]};case 13:return function(r,n){var t=Pwe(n);return[11,UL(a,Pwe(r),t)]};default:return bge(t,u)}}function Bge(r,n){if("number"==typeof n){if(1===n)return oge}else if(2===n[0]){var t=n[1];switch(r){case 0:return lge(xye[6],dye[6],[0,wye[6],gye[6],qye[6],Iye[6],Dye[6],Eye[6],Nye[6],Tye[6]],jwe,zye,t);case 1:return lge(xye[7],dye[7],[0,wye[7],gye[7],qye[7],Iye[7],Dye[7],Eye[7],Nye[7],Tye[7]],Bwe,Lye,t);case 2:return lge(xye[8],dye[8],[0,wye[8],gye[8],qye[8],Iye[8],Dye[8],Eye[8],Nye[8],Tye[8]],lwe,Vye,t);case 3:return lge(xye[9],dye[9],[0,wye[9],gye[9],qye[9],Iye[9],Dye[9],Eye[9],Nye[9],Tye[9]],bwe,Hye,t);case 4:return lge(xye[10],dye[10],[0,wye[10],gye[10],qye[10],Iye[10],Dye[10],Eye[10],Nye[10],Tye[10]],Xye,Qye,t);case 5:return lge(xye[11],dye[11],[0,wye[11],gye[11],qye[11],Iye[11],Dye[11],Eye[11],Nye[11],Tye[11]],Wye,Rye,t);case 6:return bge([0,wye[34],gye[34],qye[34],Iye[34],Dye[34],Eye[34],Nye[34],Tye[34]],t);case 7:return bge([0,wye[35],gye[35],qye[35],Iye[35],Dye[35],Eye[35],Nye[35],Tye[35]],t);case 8:return bge([0,wye[36],gye[36],qye[36],Iye[36],Dye[36],Eye[36],Nye[36],Tye[36]],t);case 9:return bge([0,wye[37],gye[37],qye[37],Iye[37],Dye[37],Eye[37],Nye[37],Tye[37]],t);case 10:return bge([0,wye[38],gye[38],qye[38],Iye[38],Dye[38],Eye[38],Nye[38],Tye[38]],t);case 11:return bge([0,wye[39],gye[39],qye[39],Iye[39],Dye[39],Eye[39],Nye[39],Tye[39]],t);case 12:return bge([0,wye[40],gye[40],qye[40],Iye[40],Dye[40],Eye[40],Nye[40],Tye[40]],t);case 13:return bge([0,wye[42],gye[42],qye[42],Iye[42],Dye[42],Eye[42],Nye[42],Tye[42]],t);case 14:return bge([0,wye[43],gye[43],qye[43],Iye[43],Dye[43],Eye[43],Nye[43],Tye[43]],t);case 15:return bge([0,wye[44],gye[44],qye[44],Iye[44],Dye[44],Eye[44],Nye[44],Tye[44]],t);case 16:return bge([0,wye[45],gye[45],qye[45],Iye[45],Dye[45],Eye[45],Nye[45],Tye[45]],t);default:if(15===t)return function(r,n){var t=Gwe(n);return[13,Gwe(r)+t]};throw kQ([0,zL,csr],1)}}throw kQ([0,zL,fsr],1)}function jge(r,n,t,e,a,u,f,i){if(14<=i)switch(i-14|0){case 0:return function(r,n){var t=Uwe(n);return[0,UL(a,Uwe(r),t)]};case 1:return function(r,n){var t=Gwe(n);return[0,UL(u,Gwe(r),t)]};case 3:case 5:break;default:return function(r,n){var t=$we(n);return[0,UL(u,$we(r),t)]}}var c=t[8],v=t[7],o=t[6],A=t[5],s=t[4],b=t[3],l=t[2],B=t[1];switch(i){case 2:return function(n,t){var e=wwe(t);return[0,UL(r,wwe(n),e)]};case 3:return function(r,n){var t=Ewe(n);return[0,UL(B,Ewe(r),t)]};case 4:return function(r,n){var t=Nwe(n);return[0,UL(l,Nwe(r),t)]};case 5:return function(r,n){var t=Twe(n);return[0,UL(b,Twe(r),t)]};case 6:return function(r,n){var t=Fwe(n);return[0,UL(s,Fwe(r),t)]};case 7:return function(r,t){var e=wwe(t);return[0,UL(n,wwe(r),e)]};case 8:return function(r,n){var t=gwe(n);return[0,UL(A,gwe(r),t)]};case 9:return function(r,n){var t=qwe(n);return[0,UL(o,qwe(r),t)]};case 10:return function(r,n){var t=Iwe(n);return[0,UL(v,Iwe(r),t)]};case 11:return function(r,n){var t=Dwe(n);return[0,UL(c,Dwe(r),t)]};case 12:return function(r,n){var t=Mwe(n);return[0,UL(e,Mwe(r),t)]};case 13:return function(r,n){var t=PL(Oye,PL(Pye,Pwe(n)));return[0,UL(e,PL(Oye,PL(Pye,Pwe(r))),t)]};default:throw kQ([0,zL,usr],1)}}function kge(r,n,t,e,a,u,f,i,c,v){return 1===v?function(r,n){var t=ywe(n);return[0,UL(c,ywe(r),t)]}:v?jge(r,n,t,e,a,u,0,v):function(r,n){var t=xwe(n);return[0,UL(i,xwe(r),t)]}}function pge(r,n){return r===n?1:0}function mge(r,n){return r===n?1:0}var dge=HV;function _ge(r,n){return r===n?1:0}var hge=Xwe(),xge=[0,wye[12],gye[12],qye[12],Iye[12],Dye[12],Eye[12],Nye[12],Tye[12]],yge=dye[12],wge=xye[12];function gge(r){return function r(n){r:{n:{t:{e:{a:{u:{f:{var t=n;i:for(;;){if("number"==typeof t)break n;switch(t[0]){case 1:var e=t[2],a=Upe(t[1]);if(0!==a[0])throw kQ([0,YL,rsr],1);t=Tme(e,a[2]);break;case 2:var u=t[1];if(17!==u&&19>u)return kge(wge,yge,xge,Gye,_ge,dge,0,mge,pge,u);throw kQ([0,YL,asr],1);case 3:break t;case 4:break e;case 5:break a;case 6:break u;case 7:break f;case 8:break i;case 11:t=t[2];break;default:break r}}if(0!==t[1])return function(r,n){i:if("number"!=typeof r){switch(r[0]){case 15:var t=r[1];if(!t)break i;var e=t[1];if("number"==typeof e)break i;if(14!==e[0])break i;var a=t[2];if(!a)break i;var u=a[1];if("number"==typeof u)break i;if(13!==u[0])break i;if(a[2])break i;if("number"==typeof n)break i;switch(n[0]){case 15:var f=n[1];if(!f)break i;var i=f[1];if("number"==typeof i)break i;if(14!==i[0])break i;var c=f[2];if(!c)break i;var v=c[1];if("number"==typeof v)break i;if(13!==v[0])break i;if(c[2])break i;return[0,dH(r,n)];case 20:break;default:break i}break;case 20:if("number"==typeof n)break i;switch(n[0]){case 15:var o=n[1];if(!o)break i;var A=o[1];if("number"==typeof A)break i;if(14!==A[0])break i;var s=o[2];if(!s)break i;var b=s[1];if("number"==typeof b||13!==b[0]||s[2])break i;break;case 20:return[0,r===n?1:0];default:break i}break;default:break i}throw kQ([0,YL,zAr],1)}return VJ("illegal shared function")};throw kQ([0,YL,tsr],1)}var f=t[1];return function(n,t){for(var e=Qwe(n),a=f,u=e,i=Qwe(t);;){f:{if(a){if(u&&i){var c=i[2],v=i[1],o=u[2],A=u[1],s=a[2],b=ywe(r(a[1])(A,v));if(b){a=s,u=o,i=c;continue}var l=b;break f}}else if(!u&&!i){l=1;break f}throw kQ([0,YL,SAr],1)}return[0,l]}}}var i=t[1];return function(n,t){u:{if("number"==typeof n){if("number"==typeof t)return ZAr;if(16!==t[0])break u}else{if(16!==n[0])break u;var e=n[1];if("number"!=typeof t){if(16!==t[0])break u;var a=t[1];return r(i)(e,a)}}return XAr}throw kQ([0,YL,WAr],1)}}var c=t[1];return function(n,t){var e=r(c),a=Owe(n),u=Owe(t),f=a.length-1==u.length-1?1:0;if(f)if(a.length-1!=u.length-1)var i=VJ("for_all2");else for(var v=0;;){var o=v===a.length-1?1:0;if(o){i=o;break}var A=vC(u,v)[v+1],s=ywe(e(vC(a,v)[v+1],A));if(!s){i=s;break}v=v+1|0}else i=f;return[0,i]}}var v=t[1];return function(n,t){var e=Rwe(n),a=e[1],u=e[2],f=Rwe(t),i=f[2];if(a!==f[1])return JAr;for(var c=v;;){if(!c)throw kQ(WL,1);var o=c[1],A=c[2];if(o[1]===a)return r(o[2])(u,i);c=A}}}var o=t[1],A=t[2];if(1===o)return function(r,n){return"number"!=typeof r&&14===r[0]&&"number"!=typeof n&&14===n[0]?[0,r[1]===n[1]?1:0]:[0,r===n?1:0]};if(o)throw kQ([0,YL,nsr],1);return function(n,t){for(var e=Vwe(n),a=A,u=Vwe(t);;){if(a){var f=a[1],i=a[2],c=pwe[28].call(null,f[1],u),v=pwe[28].call(null,f[1],e),o=ywe(r(f[2])(v,c));if(o){a=i;continue}var s=o}else s=1;return[0,s]}}}if(0===t)return function(r,n){return YAr}}throw kQ([0,YL,esr],1)}(r)}function qge(r,n){if("number"==typeof n){if(1===n)return oge}else if(2===n[0]){var t=n[1];switch(r){case 0:return kge(wge,yge,xge,Gye,_ge,dge,0,mge,pge,t);case 1:return kge(xye[13],dye[13],[0,wye[13],gye[13],qye[13],Iye[13],Dye[13],Eye[13],Nye[13],Tye[13]],twe,function(r,n){return r!==n?1:0},WV,0,function(r,n){return r!==n?1:0},function(r,n){return r!==n?1:0},t);case 2:return jge(xye[14],dye[14],[0,wye[14],gye[14],qye[14],Iye[14],Dye[14],Eye[14],Nye[14],Tye[14]],nwe,function(r,n){return r>>3|0)>>>(7&~n)&1}function mqe(r,n){var t=r[2],e=r[1],a=e-1|0;if(15>=a>>>0)switch(a){case 0:return pqe(t,n);case 1:return VH(t,n>>>2|0)>>>(2*(3&~n)|0)&3;case 3:return VH(t,n>>>1|0)>>>(4*(1&~n)|0)&15;case 7:return VH(t,n);case 15:var u=2*n|0;return(VH(t,u)<<8)+VH(t,u+1|0)|0}if(32!==e)throw kQ([0,YL,KBr],1);var f=4*n|0;return(((VH(t,f)<<8)+VH(t,f+1|0)<<8)+VH(t,f+2|0)<<8)+VH(t,f+3|0)|0}function dqe(r,n,t){return pqe(r[2],hC(r[1],n)+t|0)}function _qe(r,n,t){if(n===t)return 0;var e=_qe(r,n+1|0,t);return[0,PL(r,n),e]}function hqe(r,n){var t=n[3];var e=t?t[1]:function(t){var e=[0,PL(r[29],t[1])];return PL(n[2],e)};function a(t){var u=PL(r[13],t),f=PL(r[21],t);if(u&&f){var i=u[1];return a(f[1]),PL(n[1],eS),PL(e,i)}}function u(r){return a(r),PL(n[1],aS)}function f(t){var e=t[1],a=t[2],u=PL(r[31],e);return PL(n[2],u),PL(n[1],OBr),function(r,t){for(var e=r,a=t;;)if(0===e)PL(n[1],RBr),PL(n[1],eS),e=-1;else{if(!a)return;var u=a[2];PL(n[2],a[1]),PL(n[1],eS),e=e-1|0,a=u}}(a,PL(r[32],e)),PL(n[1],aS)}function i(t){PL(n[1],"Current LR(1) state: ");var e=PL(r[13],t);if(e){var a=e[1][1],u=fQ+PL(r[9],a);return PL(n[1],u),PL(n[1],aS),t0(f,PL(r[30],a))}return PL(n[1],""),PL(n[1],aS)}return[0,,,,f,,i,function(r){return u(r),i(r),PL(n[1],aS)}]}function xqe(r){return 0<=r&&r<64?VV("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r):VJ(PL(R3(zBr),r))}function yqe(r,n){for(var t=0<=n?n<<1:1+(-n<<1)|0;;){var e=31&t,a=t>>>5|0;if(0===a)return w2(r,xqe(e));w2(r,xqe(32|e)),t=a}}function wqe(r){return r?Ah+"// Timer-related\n\nlet setTimer = @setTimer;\nlet cancelTimer = @cancelTimer;\n":SBr}function gqe(r){switch(r){case 0:return"i32";case 1:return"i64";case 2:return"f32";default:return"f64"}}function qqe(r){var n=r[1];return r[2]?"(mut "+gqe(n)+Jq:gqe(n)}function Iqe(r){return"["+O0(ZBr,YY(gqe,r))+"]"}function Dqe(r){var n=r[1],t=TP+Iqe(r[2]);return Iqe(n)+t}var Eqe=73,Nqe=db,Tqe=11,Fqe=14,Mqe=21,Pqe=25,Uqe=[0,0,[0,1,1,0],0,1,0,1];function Gqe(r,n){if(n[1]a){var u=RY(a);((34===u?1:0)||(92===u?1:0))&&w2(n,92),w2(n,u),t=e}else q2(n,PL(R3(XBr),a)),t=e}}function Kqe(r){if("number"!=typeof r)switch(r[0]){case 5:return c0(Kqe,r[1]);case 0:case 6:return 0}return 1}function Oqe(r){return"number"!=typeof r&&22===r[0]?Kqe(r[1]):0}function Rqe(r,n){var t=PL(r,n[2]);return[0,n[1],t]}function Qqe(r,n){function t(n){var t=n[2];if("number"==typeof t)var a=t;else switch(t[0]){case 0:a=[0,t[1],e(t[2])];break;case 1:a=[1,t[1],e(t[2])];break;case 2:var u=t[2],f=t[1],i=e(t[3]);a=[2,f,e(u),i];break;case 6:a=[6,Rqe(r,t[1])];break;default:a=t}return[0,n[1],a]}function e(r){return Poe(t,r)}var a=Poe(function(n){var t=n[2],e=t[2],a=e[2],u=0===a[0]?[0,Rqe(r,a[1])]:a;return[0,n[1],[0,t[1],[0,e[1],u]]]},n[10]);function u(n){return Rqe(r,n)}var f=n[9],i=n[8],c=Poe(function(r){var n=r[2],t=Poe(u,n[3]);return[0,r[1],[0,n[1],n[2],t]]},n[7]),v=n[6];var o=v?[0,Rqe(r,v[1])]:0,A=Poe(function(r){var n=r[2],t=e(n[3]);return[0,r[1],[0,n[1],n[2],t]]},n[5]);return[0,n[1],n[2],n[3],n[4],A,o,c,i,f,a]}function Cqe(r,n){if(0=0)for(var v=0,o=i;;){if(0>=o)break r;var A=yV(f,c,v,o);if(0===A)throw kQ(SL,1);v=v+A|0,o=o-A|0}LJ("really_input")}hV(f);e=E0(c)}var s=e}catch(A){s=""}return u[1]=rY(u[1],[0,s,0]),0}var l=[0,0],B=O1([0,KC]),j=[0,B[1]],k=O1([0,KC]),p=[0,k[1]],m=[0,Kmr];function d(r){for(var n=Yqe;;){if(!n)throw kQ(WL,1);var t=n[1],e=n[2];if(r===t[1])return 1-(0!==t[2]?1:0);n=e}}var _=[0,0];function h(r){var n=m[1];if(n){var t=n[1];if("number"!=typeof t&&1===t[0])return void(m[1]=[0,[1,t[1],t[2],[0,r,t[3]]],n[2]])}throw kQ([0,YL,$mr],1)}var x=[0,0],y=[0,0],w=[0,0],g=[0,0];function q(r,t){if(11===t)var e=_[1],a=[0,[3,17,rIe(n)-e|0],0];else a=0;var u=m[1];r:{if(u){var f=u[1];if("number"!=typeof f&&1===f[0]){var i=u[2],c=f[2],v=f[3],o=f[1];if(i){var A=i[1];if("number"!=typeof A&&1===A[0]){var s=i[2],b=A[3],l=A[2],B=A[1];if(d(c)){var j=[0,[1,r,t,a],[0,[1,B,l,[0,f,b]],s]];break r}}}else if(17===t&&0===c){j=[0,[1,o,t,v],0];break r}}}j=[0,[1,r,t,a],u]}return m[1]=j,function(r){for(var n=r;;){if(!n)return;var e=n[2],a=n[1];if("number"!=typeof a)switch(a[0]){case 2:var u=a[1];if(17===u&&17===t){h([3,u,0]),n=e;continue}if(17===u&&46===(t&GK)){h([3,u,x[1]]),n=e;continue}if(18===u&&46===(t&GK)){var f=x[1];let r=u,t=f;h([6,function(n){return[3,r,vC(Coe(y),t)[t+1]]}]),n=e;continue}if(85===u){let r=u;h([6,function(n){return[3,r,Coe(w)]}]),n=e;continue}break;case 3:case 4:h(a),n=e;continue}throw kQ([0,YL,Gmr],1)}}}function I(r){var t=RY(r&GK);return w2(n[1],t)}function D(r){return I(r&GK),I(r>>>8|0)}function E(r){return D(r&Ft),D(r>>16)}function N(r){for(var n=r;;){var t=KH(PH(n,Qpr));if(iV(Cpr,n)&&cV(n,Hpr))return I(t);I(t|hh),n=JH(n,7)}}function T(r){for(var n=r;;){var t=KH(PH(n,Vpr));if(iV(Lpr,n)&&cV(n,zpr))return I(t);I(t|hh),n=XH(n,7)}}function F(r){return N(PH($H(r),Pmr))}function M(r){return T($H(r))}function P(r,n){return r?1<>>7|0|hh)),tIe(n,r+2|0,e(t>>>14|0|hh)),tIe(n,r+3|0,e(t>>>21|0|hh)),tIe(n,r+4|0,e(t>>>28|0))}function C(r){switch(r){case 0:return M(-1);case 1:return M(-2);case 2:return M(-3);default:return M(-4)}}function H(r){return M(-16)}function V(r,n,t){var e=n[2],a=n[1],u=P(1===t?1:0,2);return I(P(0!==e?1:0,0)+u|0),PL(r,a),GY(r,e)}function L(r){if(0===r[0]){var n=r[1];return H(r[2]),V(F,n,0)}var t=r[1];return H(r[2]),V(N,t,1)}function z(r){return V(N,r[1],r[2])}function S(r){var n=r[2];return C(r[1]),I(n?1:0)}function Z(r){return I(11)}function W(r){var n=r[3];return F(r[2]),N(n)}function J(r){return F(r[2])}function Y(r){if(0===r[0])return T($H(r[1][2]));var n=r[1];return n?C(n[1]):M(-64)}function rr(r,u){if(KV(u[1],wve)){var o=rIe(n),l=u[1][1][3],k=u[1][1][2]-1|0,p=b(u[1][1][1],a[1]);0!==i[1]&&w2(t,59),yqe(t,o-c[1]|0),yqe(t,p-f[1]|0),yqe(t,k-v[1]|0),yqe(t,l-A[1]|0),w2(t,44),f[1]=p,i[1]=0,c[1]=o,v[1]=k,A[1]=l,g[1]++}function h(n){return rr(r,n)}PL(r,u);var x=u[2];if("number"==typeof x)switch(x){case 0:return I(0);case 1:return I(1);case 2:return I(26);case 3:return I(27);case 4:return I(15);case 5:return I(63),I(0);case 6:return I(64),I(0);case 7:return I(sv),F(11),I(0);case 8:return I(sv),F(10),I(0),I(0);case 9:return I(63),I(1);case 10:return I(64),I(1);case 11:return I(sv),F(10),I(0),I(1);default:return I(sv),F(10),I(1),I(0)}switch(x[0]){case 0:var y=x[2],w=x[1];return I(2),Y(w),t0(h,y),Z();case 1:var D=x[2],N=x[1];return I(3),Y(N),t0(h,D),Z();case 2:var M=x[3],P=x[2],G=x[1];return I(4),Y(G),t0(h,P),0!==M&&I(5),t0(h,M),Z();case 3:var $=x[1];return I(12),J($);case 4:var O=x[1];return I(13),J(O);case 5:var R=x[2],Q=x[1];return I(14),K(U,J,Q),J(R);case 6:var C=x[1];return I(16),J(C);case 7:var H=x[2],V=x[1];return I(17),J(H),J(V);case 8:var L=x[1];return I(32),J(L);case 9:var z=x[1];return I(33),J(z);case 10:var S=x[1];return I(34),J(S);case 11:var nr=x[1];return I(35),J(nr);case 12:var tr=x[1];return I(36),J(tr);case 13:var er=x[1];switch(er[1]){case 0:var ar=er[4];if(ar){var ur=ar[1];switch(ur[1]){case 0:return ur[2]?(I(45),W(er)):(I(44),W(er));case 1:return ur[2]?(I(47),W(er)):(I(46),W(er));default:throw kQ([0,YL,Spr],1)}}return I(40),W(er);case 1:var fr=er[4];if(fr){var ir=fr[1];switch(ir[1]){case 0:return ir[2]?(I(49),W(er)):(I(48),W(er));case 1:return ir[2]?(I(51),W(er)):(I(50),W(er));default:return ir[2]?(I(53),W(er)):(I(52),W(er))}}return I(41),W(er);case 2:if(!er[4])return I(42),W(er);break;default:if(!er[4])return I(43),W(er)}throw kQ([0,YL,Zpr],1);case 14:var cr=x[1];switch(cr[1]){case 0:var vr=cr[4];if(vr)switch(vr[1]){case 0:return I(58),W(cr);case 1:return I(59),W(cr);default:throw kQ([0,YL,Wpr],1)}return I(54),W(cr);case 1:var or=cr[4];if(or)switch(or[1]){case 0:return I(60),W(cr);case 1:return I(61),W(cr);default:return I(62),W(cr)}return I(55),W(cr);case 2:if(!cr[4])return I(56),W(cr);break;default:if(!cr[4])return I(57),W(cr)}throw kQ([0,YL,Xpr],1);case 15:var Ar=x[1];return I(sv),F(8),J(Ar),I(0);case 16:var sr=x[1][2];switch(sr[0]){case 0:var br=sr[1];return I(65),T($H(br));case 1:var lr=sr[1];return I(66),T(lr);case 2:var Br=sr[1];return I(67),E(uve(Br));default:var jr=sr[1];I(68);var kr=ove(jr);return E(KH(PH(kr,Umr))),E(KH(XH(kr,32)))}case 17:switch(x[1][0]){case 0:return I(69);case 1:return I(80);case 2:throw kQ([0,YL,Jpr],1);default:throw kQ([0,YL,Ypr],1)}case 18:var pr=x[1];switch(pr[0]){case 0:switch(pr[1]){case 0:return I(70);case 1:return I(71);case 2:return I(72);case 3:return I(73);case 4:return I(74);case 5:return I(75);case 6:return I(76);case 7:return I(77);case 8:return I(78);default:return I(79)}case 1:switch(pr[1]){case 0:return I(81);case 1:return I(82);case 2:return I(83);case 3:return I(84);case 4:return I(85);case 5:return I(86);case 6:return I(87);case 7:return I(88);case 8:return I(89);default:return I(90)}case 2:switch(pr[1]){case 0:return I(91);case 1:return I(92);case 2:return I(93);case 3:return I(94);case 4:return I(95);default:return I(96)}default:switch(pr[1]){case 0:return I(97);case 1:return I(98);case 2:return I(99);case 3:return I(x$);case 4:return I(_q);default:return I(Pl)}}case 19:var mr=x[1];switch(mr[0]){case 0:var dr=mr[1];if("number"==typeof dr)switch(dr){case 0:return I(_$);case 1:return I(Yo);default:return I(Bs)}switch(dr[1]){case 0:return I(WT);case 1:return I(CD);default:throw kQ([0,YL,rmr],1)}case 1:var _r=mr[1];if("number"==typeof _r)switch(_r){case 0:return I(KP);case 1:return I(Tx);default:return I(UU)}switch(_r[1]){case 0:return I($_);case 1:return I(kR);default:return I(mR)}case 2:switch(mr[1]){case 0:return I(yn);case 1:return I(CE);case 2:return I(pm);case 3:return I(142);case 4:return I(ua);case 5:return I($A);default:return I(iU)}default:switch(mr[1]){case 0:return I(Oo);case 1:return I(153);case 2:return I(Lu);case 3:return I(156);case 4:return I(Kw);case 5:return I(Js);default:return I(Hg)}}case 20:var hr=x[1];switch(hr[0]){case 0:switch(hr[1]){case 0:return I(ck);case 1:return I(db);case 2:return I(QN);case 3:return I(qT);case 4:return I(Wr);case 5:return I(S_);case 6:return I(Jt);case 7:return I(W$);case 8:return I(Yv);case 9:return I(pp);case 10:return I(rM);case 11:return I(t$);case 12:return I(OP);case 13:return I(tw);default:return I(HP)}case 1:switch(hr[1]){case 0:return I(yy);case 1:return I(kI);case 2:return I(Yn);case 3:return I(oj);case 4:return I(hh);case 5:return I(qs);case 6:return I(An);case 7:return I(YI);case 8:return I(wM);case 9:return I(Ta);case 10:return I(yO);case 11:return I(135);case 12:return I(136);case 13:return I(137);default:return I(is)}case 2:switch(hr[1]){case 0:return I(PA);case 1:return I(yc);case 2:return I($o);case 3:return I(Ne);case 4:return I(NI);case 5:return I(wA);default:return I(152)}default:switch(hr[1]){case 0:return I(X);case 1:return I(161);case 2:return I(OG);case 3:return I(163);case 4:return I(164);case 5:return I(gN);default:return I(166)}}case 21:var xr=x[1];switch(xr[0]){case 0:switch(xr[1]){case 0:throw kQ([0,YL,nmr],1);case 1:throw kQ([0,YL,tmr],1);case 2:return I(167);case 3:return I(168);case 4:return I(169);case 5:return I(170);case 6:return I(ag);case 7:return I(sv),I(0);case 8:return I(sv),I(1);case 9:return I(sv),I(2);case 10:return I(sv),I(3);default:return I(gk)}case 1:switch(xr[1]){case 0:return I(Kf);case 1:return I(173);case 2:throw kQ([0,YL,emr],1);case 3:return I(174);case 4:return I(175);case 5:return I(Wn);case 6:return I(177);case 7:return I(sv),I(4);case 8:return I(sv),I(5);case 9:return I(sv),I(6);case 10:return I(sv),I(7);default:return I(Zi)}case 2:switch(xr[1]){case 0:return I(kv);case 1:return I(dI);case 2:return I(Sb);case 3:return I(Cf);case 4:throw kQ([0,YL,amr],1);case 5:return I(ky);default:return I(190)}default:switch(xr[1]){case 0:return I(e);case 1:return I(184);case 2:return I(DA);case 3:return I(Fq);case 4:return I(187);case 5:throw kQ([0,YL,umr],1);default:return I(ij)}}default:var yr=x[1];if("number"==typeof yr)for(var wr=1;;){var gr=m[1];r:if(gr){var qr=gr[1];if("number"!=typeof qr&&1===qr[0]){var Ir=gr[2];if(Ir){var Dr=Ir[1];if("number"!=typeof Dr&&1===Dr[0]){var Er=qr[2],Nr=Ir[2],Tr=Dr[3],Fr=Dr[2],Mr=Dr[1],Pr=qr[3],Ur=qr[1];if(wr){if(46!==(Er&GK)&&11!==(Er&GK))break r;for(var Gr=Pr,$r=0,Kr=0;;){if(!Gr){var Or=XY($r);m[1]=[0,[1,Ur,Er,Or],[0,[1,Mr,Fr,rY(XY(Kr),Tr)],Nr]];break}var Rr=Gr[2],Qr=Gr[1];if("number"!=typeof Qr&&1===Qr[0]&&Qr[1])var Cr=1;else Cr=0;Cr?(Gr=Rr,Kr=[0,Qr,Kr]):(Gr=Rr,$r=[0,Qr,$r])}}}}}}var Hr=m[1];if(!Hr)return VJ("no open DW_TAG");var Vr=Hr[1];if("number"!=typeof Vr&&1===Vr[0]){var Lr=Vr[1],zr=Hr[2],Sr=Vr[3],Zr=Vr[2];if(11===Zr)for(var Xr=Sr;;){if(Xr){var Jr=Xr[1],Yr=Xr[2];if("number"==typeof Jr||1!==Jr[0])rn=1;else var rn=0;if(rn){Xr=Yr;continue}var nn=rn}else nn=1;if(!nn)break;return m[1]=zr,0}if(wr&&11===Zr){var tn=_[1];m[1]=[0,[1,Lr,Zr,[0,[3,18,rIe(n)-tn|0],Sr]],zr],wr=0;continue}if(!zr){if(!Lr){var en=Vr[2],an=Vr[3];if(17===en)return m[1]=[0,[1,0,en,an],0],0}return VJ("TOPLEVEL: NOT NESTING")}var un=zr[1];if("number"!=typeof un&&1===un[0]){var fn=un[1],cn=zr[2],vn=un[3],on=un[2];if(d(Zr)){m[1]=[0,[1,fn,on,[0,Vr,vn]],cn];continue}return m[1]=[0,[1,fn,un[2],[0,Vr,un[3]]],zr[2]],0}}return VJ("cannot close DW_AT")}switch(yr[0]){case 0:var sn=yr[1],bn=[0,rIe(n),sn],ln=B[4];return s(j,function(r){return ln(bn,r)});case 1:for(var Bn=yr[3],jn=0,kn=0,pn=yr[2],mn=yr[1];Bn;){var dn=Bn[2],_n=Bn[1];r:{if("number"!=typeof _n)switch(_n[0]){case 1:case 5:var hn=1;break r}hn=0}hn?(Bn=dn,kn=[0,_n,kn]):(Bn=dn,jn=[0,_n,jn])}var xn=XY(jn),wn=XY(kn);q(mn,pn)(xn);for(var gn=wn;;){if(!gn)return 0;var qn=gn[2];h([0,u[1],[22,gn[1]]]),gn=qn}break;case 5:var In=yr[1];if(!In)return 0;var Dn=In[1];return h([0,u[1],[22,[5,In[2]]]]),h([0,u[1],[22,Dn]]);default:throw kQ([0,YL,fmr],1)}}}function nr(r){var n=r[2];function t(r){return 0}for(;;){if(!n)return Z();var e=n[2];rr(t,n[1]),n=e}}function tr(r,t,e,a){if(!a)return a;I(0);var u=O(),f=rIe(n);return G(r),PL(t,e),R(u,rIe(n)-f|0)}var er=[0,YY(function(r){var n=r[2];return[0,[0,r[1],n[2]],n]},[0,[0,Cmr,[0,[0,0],1]],[0,[0,Qmr,[0,[0,0],1]],[0,[0,Rmr,[0,[0,0],1]],[0,[0,"timers-api",[0,[0,0],1]],[0,[0,Omr,[0,[0,0],1]],0]]]]])],ar=[0,[0,0],0],ur=[0,[0,[0,"",[0,[0,0],1]],[0,[0,Uie(""),ar],0]]],fr=LY(er[1]),ir=[0,n0(function(r,n){return[0,n[1][1],(fr-1|0)-r|0]},er[1])];function cr(r){var n=r[1];return U(r[2]),C(n)}function vr(r,n){return[0,[0,0],r]}function or(r,n){if(n===fQ)throw kQ([0,YL,Fmr],1);var t=ir[1];if(!A0(n,t)){if(!t)throw kQ([0,YL,Tmr],1);ir[1]=[0,[0,n,t[1][2]+1|0],t]}}function Ar(r){if(r!==fQ){if(r!==UR&&r!==Zr&&r!==_m){var n=Pie(r),t=Uie(r),e=ur[1],a=A0(t,e);if(a)var u=a[1];else{if(!e)throw kQ([0,YL,Nmr],1);var f=[0,[0,0],e[1][2][2]+1|0];ur[1]=[0,[0,t,f],e];u=f}var i=u[2],c=[0,n,i],v=er[1],o=A0(c,v);if(o)o[1];else{var A=vr(i);er[1]=[0,[0,c,A],v]}return or(0,r)}var s=[0,r,1],b=er[1],l=A0(s,b);if(l)l[1];else{var B=vr(1);er[1]=[0,[0,s,B],b]}return or(0,r)}}function sr(r,n){return K(U,function(n){var t=n[2];return F(n[1]),PL(r,t)},d0(function(r,n){return PC(r[1],n[1])},n))}function br(r,t,e){if(e){var a=e[1],u=a[2],f=a[1];I(0);var i=O(),c=rIe(n);return G("icp:"+(f?Dmr:"private ")+r),PL(t,u),R(i,rIe(n)-c|0)}}function lr(r){return xoe(r),nIe(n,r)}function Br(r){return N($H(r))}function jr(r){return I(0)}var kr=n[1];function pr(r){var n=kr[2]+2|0;kr[3]>>0>=r.l-1&&JQ();var e=o&t>>8;eC(r,n+0,o&t),eC(r,n+1,e)}(kr[1],kr[2],r),kr[2]=n}function mr(r){return D2(n[1],r)}function dr(r){return nIe(n,r),I(0)}function _r(r){return function(n){return K(Br,r,n)}}function hr(r){var t=rIe(n);return mr(0),t}function xr(r,t){function e(r){return RY(r&GK)}return tIe(n,r,e(t)),tIe(n,r+1|0,e(t>>>8|0)),tIe(n,r+2|0,e(t>>>16|0)),tIe(n,r+3|0,e(t>>>24|0))}var yr=[0,function(r){}];function wr(r){return 14===r?function(r){if("number"!=typeof r&&4===r[0]){var n=r[2],t=l[1],e=A0(n,t);if(e)var a=e[1];else{if(t)var u=t[1],f=(HH(u[1])+1|0)+u[2]|0;else f=0;l[1]=[0,[0,n,f],t];a=f}return mr(a)}return VJ("dw_FORM_strp")}:11===r?function(r){return"number"!=typeof r&&3===r[0]?I(r[2]):VJ("dw_FORM_data1")}:5===r?function(r){return"number"!=typeof r&&3===r[0]?pr(r[2]):VJ("dw_FORM_data2")}:6===r?function(r){return"number"!=typeof r&&3===r[0]?mr(r[2]):VJ("dw_FORM_data4")}:1===r?function(r){return"number"!=typeof r&&3===r[0]?mr(r[2]):VJ("dw_FORM_addr")}:27===r?function(r){return"number"!=typeof r&&3===r[0]?Br(r[2]):VJ("dw_FORM_addrx")}:19===r?function(r){if("number"==typeof r||3!==r[0])return VJ("dw_FORM_ref_ref4");var n=aIe[28].call(null,r[2],uIe);if(!Qoe(n))throw kQ([0,YL,pmr],1);var t=Coe(n),e=aIe[28].call(null,t,uIe);if(Qoe(e))return mr(Coe(e));var a=yr[1],u=hr();yr[1]=function(r){return PL(a,0),xr(u,Coe(e))}}:21===r?function(r){return"number"!=typeof r&&3===r[0]?Br(Coe(aIe[28].call(null,r[2],uIe))):VJ("dw_FORM_ref_udata")}:23===r?function(r){return"number"!=typeof r&&3===r[0]?mr(r[2]):VJ("dw_FORM_sec_offset")}:10===r?function(r){if("number"!=typeof r&&4===r[0]){var t=r[2],e=HH(t);if(xv<=e)throw kQ([0,YL,dmr],1);return I(e),nIe(n,t)}return VJ("dw_FORM_block1")}:24===r?function(r){if("number"!=typeof r&&4===r[0]){var t=r[2];return Br(HH(t)),nIe(n,t)}return VJ("dw_FORM_exprloc")}:12===r?function(r){return"number"!=typeof r&&3===r[0]?I(r[2]):VJ("dw_FORM_flag")}:25===r?function(r){return"number"!=typeof r&&3===r[0]?0===r[2]?VJ("dw_FORM_flag_present with false"):void 0:VJ("dw_FORM_flag_present")}:VJ("cannot write form")}var gr=[0,0];function qr(r){var n=r[2],t=n[2],e=n[1];return M(lT),K(U,C,e),K(U,C,t)}function Ir(r){var n=r[2],t=n[3],e=n[2];$(n[1]),$(e);var a=t[2];switch(a[0]){case 0:var u=a[1];return I(0),J(u);case 1:var f=a[1];return I(1),L(f);case 2:var i=a[1];return I(2),z(i);default:var c=a[1];return I(3),S(c)}}function Dr(r){return J(r[2][1])}function Er(r){return L(r[2][1])}function Nr(r){return z(r[2][1])}function Tr(r){var n=r[2],t=n[2];return S(n[1]),nr(t)}function Fr(r){var n=r[2],t=n[2];$(n[1]);var e=t[2];switch(e[0]){case 0:var a=e[1];return I(0),J(a);case 1:var u=e[1];return I(1),J(u);case 2:var f=e[1];return I(2),J(f);default:var i=e[1];return I(3),J(i)}}function Mr(r){var t=r[2],e=t[3],a=t[2],u=O(),f=rIe(n);K(U,cr,function(r){return a0(function(r,n){if(n){var t=n[1],e=n[2],a=t[2];if(dH(r,t[1]))return[0,[0,r,a+1|0],e]}return[0,[0,r,1],n]},r,0)}(a));var i=[0,B[1]],c=e;function v(r){var t=1-Oqe(r[2]);if(t){var e=r[1][1],a=[0,rIe(n),e],u=B[4];s(i,function(r){return u(a,r)}),Ar(r[1][1][1]);var f=0}else f=t;return f}for(;c;){var o=c[2];rr(v,c[1]),c=o}var A=r[1][2],b=[0,rIe(n),A],l=B[4];s(i,function(r){return l(b,r)}),Ar(r[1][2][1]),Z(),x[1]++;var j=rIe(n);R(u,j-f|0);var m=[0,f,i[1],j],d=k[4];return s(p,function(r){return d(m,r)})}function Pr(r){var n=r[2],t=n[3],e=n[2];return J(n[1]),nr(e),K(U,J,t)}function Ur(r){var n=r[2],t=n[1],e=n[2][2];if("number"==typeof e)return e?VJ("illegal declarative data segment"):(F(1),G(t));var a=e[1],u=e[2];if(dH(a[2],0))return F(0),nr(u),G(t);var f=e[2];return F(2),J(a),nr(f),G(t)}function Gr(r){var t=0!==r[1]?1:0;if(t)var e=t;else e=(0!==r[2]?1:0)||(0!==r[3]?1:0);if(!e)return e;I(0);var a=O(),u=rIe(n);G(Emr);var f=r[1];if(0!==r[1]){I(0);var i=O(),c=rIe(n);GY(G,f),R(i,rIe(n)-c|0)}var v=r[2];if(0!==r[2]){I(1);var o=O(),A=rIe(n);sr(G,v),R(o,rIe(n)-A|0)}var s=r[3];if(0!==r[3]){I(2);var b=O(),l=rIe(n);sr(function(r){return sr(G,r)},s),R(b,rIe(n)-l|0)}return R(a,rIe(n)-u|0)}function $r(r){return T($H(r))}function Kr(r,t){if("number"!=typeof t&&1===t[0]){var e=t[3],a=t[2],u=t[1];if(u){var f=u[1],i=gr[1],c=rIe(n)-i|0;Roe(aIe[28].call(null,f,uIe),c)}else if(36===a)throw kQ([0,YL,bmr],1);for(var v=r?d0(function(r,n){r:{if("number"!=typeof r&&1===r[0]){var t=r[1];if(t){if("number"==typeof n)break r;if(1!==n[0])break r;var e=n[1];if(e)return PC(e[1],t[1]);break r}}if("number"!=typeof n&&1===n[0]&&n[1])return-1}return"number"!=typeof r&&1===r[0]&&r[1]?1:0},e):e,o=function(r){return a===r[1]?1:0},A=Yqe,s=XY(v);;){if(!A)throw kQ(WL,1);var b=A[1],l=A[2];if(o(b))break;A=l}r:{for(var B=1,j=Yqe,k=b[3],p=b[2];j;){if(o(j[1])){var m=B;break r}B=B+1|0,j=j[2]}m=VJ("not encountered")}Br(m);for(var d=0,_=0,h=s;h;){var x=h[2],y=h[1];if("number"==typeof y||1!==y[0])w=0;else var w=1;w?(d=[0,y,d],h=x):(_=[0,y,_],h=x)}r:{n:{var g=XY(_),q=k,I=XY(d);t:for(;q;){if(!g)break n;var D=g[2],E=q[2],N=q[1],T=g[1];e:for(;;){var F=N[2],M=N[1];if("number"!=typeof T)switch(T[0]){case 2:VJ("too late to resolve OffsetAttribute"),g=D,q=E;continue t;case 3:var P=T[1];if(M!==P&&GL($3(nY,imr),M,P,a),M!==P)throw kQ([0,YL,cmr],1);wr(F)(T),g=D,q=E;continue t;case 4:break e;case 6:N=[0,M,F],T=PL(T[1],0);continue}VJ("Attribute expected"),g=D,q=E;continue t}var U=T[1],G=T[2];if(58===U){var $=G===fQ?vmr:G;if(M!==U){var K=zY(ir[1])[2],O=zY(ir[1])[1];OL($3(nY,omr),M,U,a,$,O,K)}if(M!==U)throw kQ([0,YL,Amr],1);var R=o0($,ir[1]),Q=[3,U,zY(ir[1])[2]-R|0];wr(F)(Q),g=D,q=E}else{if(M!==U)throw kQ([0,YL,smr],1);wr(F)(T),g=D,q=E}}if(!g)break r}LJ(nz)}for(var C=I;;){if(!C){var H=0!==p?1:0;return H?jr():H}var V=C[2];Kr(0,C[1]),C=V}}return VJ("Tag expected")}function Or(r){var t=1-k[2].call(null,r);if(!t)return t;I(0);var e=O(),a=rIe(n);G(".debug_addr");var u=hr(),f=rIe(n);return pr(5),I(4),I(0),k[14].call(null,function(r){return mr(r[1]-_[1]|0)},r),xr(u,rIe(n)-f|0),R(e,rIe(n)-a|0)}function Rr(r){var t=[0,0];I(0);var e=O(),a=rIe(n);G(".debug_rnglists");var u=hr(),f=rIe(n);pr(5),I(4),I(0),mr(0),Roe(w,rIe(n)-u|0),k[14].call(null,function(r){var n=r[3],e=r[1];return I(3),Br(t[1]),t[1]++,Br(n-e|0)},r),I(0);var i=k[39].call(null,r);function c(r){return r[3]-r[1]|0}return Roe(y,o1(function(r){return DY(c,i)})),xr(u,rIe(n)-f|0),R(e,rIe(n)-a|0)}function Qr(r){var t=YY(function(r){return[0,r[1][1],r[2]]},er[1]),e=ur[1];I(0);var a=O(),u=rIe(n);G(".debug_line_str");var f=rIe(n);function i(r){for(var t=r;;){if(!t)return;var e=t[1],a=t[2],u=e[2][1],i=e[1];Roe(u,rIe(n)-f|0),dr(i),t=a}}return i(e),i(t),R(a,rIe(n)-u|0)}function Cr(r){var t=0!==r?1:0;if(!t)return t;I(0);var e=O(),a=rIe(n);G(".debug_line");var u=hr(),f=rIe(n);pr(5),I(4),I(0);var i=hr(),c=rIe(n);function v(r){var n=r[2];return Br(r[1]),Br(n)}I(1),I(1),I(1),I(0),I(12),I(13),t0(I,jmr),K(I,v,[0,[0,1,31],0]);for(var o=0,A=ur[1];A;){var s=A[2];o=[0,Coe(A[1][2][1]),o],A=s}_r(mr)(o),K(I,v,[0,[0,1,31],[0,[0,2,15],0]]);var b=YY(function(r){var n=r[2],t=n[2];return[0,Coe(n[1]),t]},er[1]);_r(function(r){var n=r[2];return mr(r[1]),Br(n)})(b),xr(i,rIe(n)-c|0);var l=j[1],m=R1([0,KC]),d=B[39].call(null,l);function h(r){return[0,r[2],r[1]]}var x=m[40].call(null,function(r){return DY(h,d)}),y=_[1],w=ir[1];return k[14].call(null,function(r){var n=r[1]-y|0,t=r[3]-y|0,e=B[39].call(null,r[2]),a=Uqe[6],u=Uqe[5],f=Uqe[3];function i(r){var i=t-1|0,c=DY(function(r){var n=r[2],t=n[1],e=n[3],a=n[2],u=r[1],f=o0(t===fQ?Bmr:t,w),c=zY(w)[2]-f|0,v=B[3].call(null,r,l);r:if(v)var o=v;else{var A=r[1],s=m[29].call(null,r[2],x);if(s&&A===s[1]){o=1;break r}o=0}var b=u-y|0;return[0,b,[0,c,a,e+1|0],0,o,0,b===i?2:0]},e);if(!c)return VJ("there should be an 'end' instruction!");var v=c[1];return v[1]===n?VJ("at start already an instruction?"):[0,[0,n,v[2],f,0,u,a],function(r){return c}]}for(var c=[0,0,Uqe];;){var v=PL(i,0);if(!v)break;var o=v[1],A=v[2],s=c[1];i=A,c=[0,[0,Gqe(c[2],o),s],o]}for(var b=c[1],j=[0,2,[0,1,[0,-1,0]]];;){if(!b)return fIe(I,Br,$r,mr)(j);var k=b[2],p=rY(b[1],j);b=k,j=p}},p[1]),xr(u,rIe(n)-f|0),R(e,rIe(n)-a|0)}!function(r){var t=r[1];if(E(Dm),E(1),0!==r[3])throw kQ([0,YL,lmr],1);var e=t[1];if(0!==e){I(1);var a=O(),u=rIe(n);K(U,qr,e),R(a,rIe(n)-u|0)}var f=t[9];if(0!==f){I(2);var i=O(),c=rIe(n);K(U,Ir,f),R(i,rIe(n)-c|0)}var v=t[5];if(0!==v){I(3);var o=O(),A=rIe(n);K(U,Dr,v),R(o,rIe(n)-A|0)}var s=t[3];if(0!==s){I(4);var b=O(),B=rIe(n);K(U,Er,s),R(b,rIe(n)-B|0)}var j=t[4];if(0!==j){I(5);var k=O(),d=rIe(n);K(U,Nr,j),R(k,rIe(n)-d|0)}var h=t[2];if(0!==h){I(6);var x=O(),y=rIe(n);K(U,Tr,h),R(x,rIe(n)-y|0)}var w=t[10];if(0!==w){I(7);var g=O(),q=rIe(n);K(U,Fr,w),R(g,rIe(n)-q|0)}var D=t[6];if(0!==D){I(8);var N=O(),T=rIe(n);GY(J,D),R(N,rIe(n)-T|0)}var F=t[7];if(0!==F){I(9);var M=O(),P=rIe(n);K(U,Pr,F),R(M,rIe(n)-P|0)}var $=t[8],Q=LY($);if(0!==$){I(12);var C=O(),H=rIe(n);U(Q),R(C,rIe(n)-H|0)}var V=t[5];if(0!==V){I(10);var L=O(),z=rIe(n);_[1]=rIe(n),K(U,Mr,V),R(L,rIe(n)-z|0)}var S=t[8];if(0!==S){I(11);var Z=O(),W=rIe(n);K(U,Ur,S),R(Z,rIe(n)-W|0)}Gr(r[2]);var X=r[4];br(xmr,lr,X[2]),br(ymr,lr,X[1]);var Y=r[5];br(gmr,lr,Y[2]),br(qmr,lr,Y[3]);var rr=Y[1];if(0!==Y[1]){I(0);var nr=O(),er=rIe(n);G(Imr);if(0!==rr){I(0);var ar=O(),ur=rIe(n);K(U,G,rr),R(ar,rIe(n)-ur|0)}R(nr,rIe(n)-er|0)}br(wmr,lr,r[6]);var fr=O0(_mr,r[8]);tr(hmr,lr,fr,fr!==fQ?1:0);var ir=r[7];ir&&tr("sourceMappingURL",G,ir[1],1);var cr=kce[1];if(!cr)return cr;I(0);var vr=O(),or=rIe(n);G(".debug_abbrev");for(var Ar=Yqe,sr=0;Ar;){var kr=Ar[1],_r=Ar[2];Br(sr+1|0);var wr=kr[3],$r=kr[2];if(Br(kr[1]&Ft),I($r),0===wr)throw kQ([0,YL,mmr],1);for(var Hr=wr;;){if(!Hr){jr(),jr(),Ar=_r,sr=sr+1|0;break}var Vr=Hr[1],Lr=Hr[2],zr=Vr[2];Br(Vr[1]),Br(zr),Hr=Lr}}jr(),R(vr,rIe(n)-or|0),Or(p[1]),Rr(p[1]),Qr(),Cr(t[5]);if(KV(m[1],kmr)){I(0);var Sr=O(),Zr=rIe(n);G(".debug_info");var Wr=hr(),Xr=rIe(n);pr(5),I(1),I(4),mr(0),gr[1]=Wr;var Jr=m[1];!Jr||Jr[2]?VJ("expected one toplevel tag"):Kr(1,Jr[1]),xr(Wr,rIe(n)-Xr|0),PL(yr[1],0),R(Sr,rIe(n)-Zr|0)}var Yr=l[1];tr(".debug_str",function r(n){if(!n)return 0;var t=n[1][1];return r(n[2]),dr(t)},Yr,0!==Yr?1:0)}(r);for(var Hr=_2(t),Vr=[0,[0,"mappings",[0,xF,K0(Hr,0,ZJ(0,HH(Hr)-1|0))]],0],Lr=[0,[0,"sourcesContent",[0,ej,YY(function(r){return r===fQ?Q:[0,xF,r]},u[1])]],Vr],zr=[0,rO,[0,Hmr,[0,[0,"sources",[0,ej,YY(function(r){return[0,xF,r]},a[1])]],Lr]]],Sr=n[1],Xr=T0(Sr[1],0,Sr[2]),Jr=n[2][1];;){if(!Jr){var Yr=E0(Xr);return cAe(0,0,0,0,zr),[0,,Yr]}var rn=Jr[1],nn=Jr[2];aC(Xr,rn[1],rn[2]),Jr=nn}}var cIe=[Ul,"Wasm_exts.CustomModuleDecode.EOS",qH()];function vIe(r){return HH(r[2])}function oIe(r){return r[3][1]}function AIe(r,n){var t=vIe(n)<(oIe(n)+r|0)?1:0;if(t)throw kQ(cIe,1);return t}function sIe(r,n){if(0>r)throw kQ(cIe,1);AIe(r,n),n[3][1]=n[3][1]+r|0}function bIe(r){return VV(r[2],r[3][1])}function lIe(r){var n=vIe(r);return oIe(r)===n?0:[0,bIe(r)]}function BIe(r){var n=r[3][1];return function(t){r[3][1]=n}}var jIe=qve()[1];function kIe(r,n){return[0,r[1],-1,n]}function pIe(r,n,t){var e=kIe(r,t);return[0,kIe(r,n),e]}function mIe(r,n,t){throw kQ([0,jIe,pIe(r,n,n),t],1)}function dIe(r,n,t,e){var a=1-r;return a?mIe(n,t,e):a}function _Ie(r){try{AIe(1,r);var n=bIe(r);return sIe(1,r),n}catch(n){var t=iL(n);if(t===cIe)return mIe(r,vIe(r),oS);throw kQ(t,0)}}function hIe(r){return function(n){try{var t=oIe(n);return sIe(r,n),K0(n[2],t,r)}catch(r){var e=iL(r);if(e===cIe)return mIe(n,vIe(n),oS);throw kQ(e,0)}}}function xIe(r){return function(n){try{return void sIe(r,n)}catch(r){var t=iL(r);if(t===cIe)return mIe(n,vIe(n),oS);throw kQ(t,0)}}}function yIe(r,n,t){var e=oIe(n)-1|0;try{var a,u=_Ie(n)}catch(a){var f=iL(a);if(f!==cIe)throw kQ(f,0);u=mIe(n,vIe(n),oS)}return dIe(u===r?1:0,n,e,t)}function wIe(r,n,t){return mIe(r,n,"illegal opcode "+PL(R3(ddr),t))}function gIe(r,n){var t=oIe(n),e=PL(r,n);return[0,pIe(n,t,oIe(n)),e]}function qIe(r){var n=_Ie(r);return(_Ie(r)<<8)+n|0}function IIe(r){return qIe(r)+(qIe(r)<<16)|0}function DIe(r,n){dIe(0>>0)return mIe(r,oIe(r)-1|0,"malformed value type");switch(n){case 0:return 3;case 1:return 2;case 2:return 1;default:return 0}}function RIe(r,n){var t=_Ie(n);dIe(0===(t&an)?1:0,n,oIe(n)-1|0,"malformed limits flags");var e=4&~t?0:1;return[0,[0,PL(r,n),1&~t?0:[0,PL(r,n)]],e]}function QIe(r){var n=-16===FIe(r)?0:mIe(r,oIe(r)-1|0,"malformed element type");return[0,RIe(NIe,r)[1],n]}function CIe(r){var n=RIe(TIe,r);return[0,n[1],n[2]?1:0]}function HIe(r){var n=OIe(r),t=_Ie(r);return[0,n,0===t?0:1===t?1:mIe(r,oIe(r)-1|0,"malformed mutability")]}function VIe(r){return yIe(11,r,"END opcode expected")}function LIe(r){return yIe(0,r,"zero byte expected")}function zIe(r){var n=NIe(r),t=oIe(r)-1|0;return dIe(kve(n,32),r,t,"malformed memop flags"),[0,n,TIe(r)]}function SIe(r){var n=lIe(r);if(n){var t=n[1];if(64===t)return xIe(1)(r),pdr;if(64===(t&WT))return[1,[0,OIe(r)]]}var e=oIe(r),a=KH(EIe(33,r));return[0,[0,pIe(r,e,oIe(r)),a]]}function ZIe(r){var n=oIe(r),t=_Ie(r);if(sv>=t>>>0){var e=t;if(QN>e){if(62<=e)switch(e){case 62:var a=zIe(r);return[14,[0,1,a[1],a[2],JBr]];case 63:return yIe(0,r,Wmr),5;case 64:return yIe(0,r,Xmr),6;case 65:var u=oIe(r),f=KH(EIe(32,r));return[16,[0,pIe(r,u,oIe(r)),[0,f]]];case 66:var i=oIe(r),c=EIe(64,r);return[16,[0,pIe(r,i,oIe(r)),[1,c]]];case 67:var v=oIe(r),o=ave(IIe(r));return[16,[0,pIe(r,v,oIe(r)),[2,o]]];case 68:var A=oIe(r),s=xve(IIe(r)),b=vve(MH(s,WH(xve(IIe(r)),32)));return[16,[0,pIe(r,A,oIe(r)),[3,b]]];case 69:return xkr;case 70:return wkr;case 71:return gkr;case 72:return qkr;case 73:return Ikr;case 74:return Nkr;case 75:return Tkr;case 76:return Dkr;case 77:return Ekr;case 78:return Fkr;case 79:return Mkr;case 80:return ykr;case 81:return Pkr;case 82:return Ukr;case 83:return Gkr;case 84:return $kr;case 85:return Rkr;case 86:return Qkr;case 87:return Kkr;case 88:return Okr;case 89:return Ckr;case 90:return Hkr;case 91:return Vkr;case 92:return Lkr;case 93:return zkr;case 94:return Zkr;case 95:return Skr;case 96:return Wkr;case 97:return Xkr;case 98:return Jkr;case 99:return Ykr;case 100:return npr;case 101:return rpr;case 102:return tpr;case 103:return bjr;case 104:return ljr;case 105:return Bjr;case 106:return Fjr;default:return Mjr}switch(e){case 0:return 0;case 1:return 1;case 2:var l=SIe(r),B=WIe(r);return VIe(r),[0,l,B];case 3:var j=SIe(r),k=WIe(r);return VIe(r),[1,j,k];case 4:var p=SIe(r),m=WIe(r);if(dH(lIe(r),Zmr)){yIe(5,r,"ELSE or END opcode expected");var d=WIe(r);return VIe(r),[2,p,m,d]}return VIe(r),[2,p,m,0];case 5:return mIe(r,n,"misplaced ELSE opcode");case 11:return mIe(r,n,"misplaced END opcode");case 12:var _=oIe(r),h=NIe(r);return[3,[0,pIe(r,_,oIe(r)),h]];case 13:var x=oIe(r),y=NIe(r);return[4,[0,pIe(r,x,oIe(r)),y]];case 14:var w=GIe(function(r){var n=oIe(r),t=NIe(r);return[0,pIe(r,n,oIe(r)),t]},r),g=oIe(r),q=NIe(r);return[5,w,[0,pIe(r,g,oIe(r)),q]];case 15:return 4;case 16:var I=oIe(r),D=NIe(r);return[6,[0,pIe(r,I,oIe(r)),D]];case 17:var E=oIe(r),N=NIe(r),T=[0,pIe(r,E,oIe(r)),N],F=oIe(r),M=NIe(r);return[7,[0,pIe(r,F,oIe(r)),M],T];case 26:return 2;case 27:return 3;case 32:var P=oIe(r),U=NIe(r);return[8,[0,pIe(r,P,oIe(r)),U]];case 33:var G=oIe(r),$=NIe(r);return[9,[0,pIe(r,G,oIe(r)),$]];case 34:var K=oIe(r),O=NIe(r);return[10,[0,pIe(r,K,oIe(r)),O]];case 35:var R=oIe(r),Q=NIe(r);return[11,[0,pIe(r,R,oIe(r)),Q]];case 36:var C=oIe(r),H=NIe(r);return[12,[0,pIe(r,C,oIe(r)),H]];case 40:var V=zIe(r);return[13,[0,0,V[1],V[2],0]];case 41:var L=zIe(r);return[13,[0,1,L[1],L[2],0]];case 42:var z=zIe(r);return[13,[0,2,z[1],z[2],0]];case 43:var S=zIe(r);return[13,[0,3,S[1],S[2],0]];case 44:var Z=zIe(r);return[13,[0,0,Z[1],Z[2],sjr]];case 45:var W=zIe(r);return[13,[0,0,W[1],W[2],Ajr]];case 46:var X=zIe(r);return[13,[0,0,X[1],X[2],ojr]];case 47:var J=zIe(r);return[13,[0,0,J[1],J[2],vjr]];case 48:var Y=zIe(r);return[13,[0,1,Y[1],Y[2],cjr]];case 49:var rr=zIe(r);return[13,[0,1,rr[1],rr[2],ijr]];case 50:var nr=zIe(r);return[13,[0,1,nr[1],nr[2],fjr]];case 51:var tr=zIe(r);return[13,[0,1,tr[1],tr[2],ujr]];case 52:var er=zIe(r);return[13,[0,1,er[1],er[2],ajr]];case 53:var ar=zIe(r);return[13,[0,1,ar[1],ar[2],ejr]];case 54:var ur=zIe(r);return[14,[0,0,ur[1],ur[2],0]];case 55:var fr=zIe(r);return[14,[0,1,fr[1],fr[2],0]];case 56:var ir=zIe(r);return[14,[0,2,ir[1],ir[2],0]];case 57:var cr=zIe(r);return[14,[0,3,cr[1],cr[2],0]];case 58:var vr=zIe(r);return[14,[0,0,vr[1],vr[2],tjr]];case 59:var or=zIe(r);return[14,[0,0,or[1],or[2],njr]];case 60:var Ar=zIe(r);return[14,[0,1,Ar[1],Ar[2],rjr]];case 61:var sr=zIe(r);return[14,[0,1,sr[1],sr[2],YBr]];default:return wIe(r,n,t)}}if(Oo>e)switch(e){case 108:return Pjr;case 109:return Ujr;case 110:return Gjr;case 111:return $jr;case 112:return Kjr;case 113:return Ojr;case 114:return Rjr;case 115:return Qjr;case 116:return Cjr;case 117:return Hjr;case 118:return Vjr;case 119:return Ljr;case 120:return zjr;case 121:return jjr;case 122:return kjr;case 123:return pjr;case 124:return Sjr;case 125:return Zjr;case 126:return Wjr;case 127:return Xjr;case 128:return Jjr;case 129:return Yjr;case 130:return rkr;case 131:return nkr;case 132:return tkr;case 133:return ekr;case 134:return akr;case 135:return ukr;case 136:return fkr;case 137:return ikr;case 138:return ckr;case 139:return djr;case 140:return mjr;case 141:return hjr;case 142:return xjr;case 143:return yjr;case 144:return wjr;case 145:return _jr;case 146:return vkr;case 147:return okr;case 148:return Akr;case 149:return skr;case 150:return bkr;case 151:return lkr;case 152:return Bkr;default:return qjr}switch(e){case 154:return gjr;case 155:return Djr;case 156:return Ejr;case 157:return Njr;case 158:return Tjr;case 159:return Ijr;case 160:return jkr;case 161:return kkr;case 162:return pkr;case 163:return mkr;case 164:return dkr;case 165:return _kr;case 166:return hkr;case 167:return cpr;case 168:return vpr;case 169:return opr;case 170:return Apr;case 171:return spr;case 172:return kpr;case 173:return ppr;case 174:return mpr;case 175:return dpr;case 176:return _pr;case 177:return hpr;case 178:return xpr;case 179:return ypr;case 180:return wpr;case 181:return gpr;case 182:return Npr;case 183:return Tpr;case 184:return Fpr;case 185:return Mpr;case 186:return Ppr;case 187:return Upr;case 188:return Gpr;case 189:return $pr;case 190:return Kpr;case 191:return Opr;case 192:return epr;case 193:return apr;case 194:return upr;case 195:return fpr;case 196:return ipr;case 252:var br=oIe(r),lr=_Ie(r);if(11>=lr>>>0)switch(lr){case 0:return bpr;case 1:return lpr;case 2:return Bpr;case 3:return jpr;case 4:return qpr;case 5:return Ipr;case 6:return Dpr;case 7:return Epr;case 8:var Br=oIe(r),jr=NIe(r),kr=[0,pIe(r,Br,oIe(r)),jr];return LIe(r),[15,kr];case 10:return LIe(r),LIe(r),8;case 11:return LIe(r),7}return wIe(r,br,lr)}}return wIe(r,n,t)}function WIe(r){for(var n=0;;){var t=lIe(r);if(t){var e=t[1];if(5!==e&&11!==e){var a=oIe(r),u=ZIe(r);n=[0,[0,pIe(r,a,a),u],n];continue}}return XY(n)}}function XIe(r){var n=gIe(WIe,r);return VIe(r),n}function JIe(r){var n=lIe(r);if(!n)return 0;var t=n[1];if(12>>0)var e=mIe(r,oIe(r),"malformed section id");else switch(t){case 0:e=pN;break;case 1:e=PK;break;case 2:e=Oy;break;case 3:e=PO;break;case 4:e=Us;break;case 5:e=Bd;break;case 6:e=wr;break;case 7:e=F$;break;case 8:e=A;break;case 9:e=tN;break;case 10:e=hI;break;case 11:e=qg;break;default:e=Ef}return[0,e]}function YIe(r,n,t,e){var a=JIe(e);return a&&dH(a[1],r)?(_Ie(e),KIe(function(r){return n},e)):t}function rDe(r){return[0,NIe(r),OIe(r)]}function nDe(r,n,t,e){var a=BIe(e),u=JIe(e);if(!u)return t;if(pN!==u[1])return t;_Ie(e);var f=MIe(e),i=oIe(e),c=i+f|0;if(PL(r,$Ie(e))){var v=UL(n,c,e);return dIe(oIe(e)===c?1:0,e,i,Bdr),v}return a(0),t}function tDe(r){var n=xoe("icp:public "+r),t=xoe("icp:private "+r);return function(r){return dH(n,r)?bdr:dH(t,r)?ldr:0}}function eDe(r,n,t,e){var a=BIe(e),u=JIe(e);if(!u)return t;if(pN!==u[1])return t;_Ie(e);var f=MIe(e),i=oIe(e),c=i+f|0,v=$Ie(e),o=tDe(r)(v);if(o){var A=o[1],s=UL(n,c,e);return dIe(oIe(e)===c?1:0,e,i,sdr),[0,[0,A,s]]}return a(0),t}function aDe(r,n){if(oIe(n)>r)throw kQ([0,YL,rdr],1);if(oIe(n)===r)return 0;var t=KH(DIe(8,n)),e=NIe(n),a=oIe(n)+e|0;if(KV(t,1))if(KV(t,2))var u=mIe(n,oIe(n)-1|0,"unsupported dylink.0 subsection");else{var f=GIe(PIe,n);if(oIe(n)!==a)throw kQ([0,YL,Jmr],1);u=[1,f]}else{var i=NIe(n),c=NIe(n),v=NIe(n),o=NIe(n);if(oIe(n)!==a)throw kQ([0,YL,Ymr],1);u=[0,[0,i,c,v,o]]}return[0,u,aDe(r,n)]}function uDe(r){return dH(r,xoe("dylink.0"))}function fDe(r){function n(n){return[0,NIe(n),PL(r,n)]}return function(r){return GIe(n,r)}}var iDe=fDe(PIe),cDe=fDe(iDe);function vDe(r,n){var t=_Ie(n);if(9>=t>>>0)switch(t){case 0:return[0,[0,KIe(function(r){return PIe},n)],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10]];case 1:var e=KIe(function(r){return iDe},n),a=r[10],u=r[9],f=r[8],i=r[7],c=r[6],v=r[5],o=r[4],A=r[3],s=rY(r[2],e);return[0,r[1],s,A,o,v,c,i,f,u,a];case 2:var b=KIe(function(r){return cDe},n),l=r[10],B=r[9],j=r[8],k=r[7],p=r[6],m=r[5],d=r[4],_=rY(r[3],b);return[0,r[1],r[2],_,d,m,p,k,j,B,l];case 3:var h=KIe(function(r){return cDe},n),x=r[10],y=r[9],w=r[8],g=r[7],q=r[6],I=r[5],D=rY(r[4],h);return[0,r[1],r[2],r[3],D,I,q,g,w,y,x];case 4:var E=KIe(function(r){return iDe},n),N=r[10],T=r[9],F=r[8],M=r[7],P=r[6],U=rY(r[5],E);return[0,r[1],r[2],r[3],r[4],U,P,M,F,T,N];case 5:var G=KIe(function(r){return iDe},n),$=r[10],K=r[9],O=r[8],R=r[7],Q=rY(r[6],G);return[0,r[1],r[2],r[3],r[4],r[5],Q,R,O,K,$];case 6:var C=KIe(function(r){return iDe},n),H=r[10],V=r[9],L=r[8],z=rY(r[7],C);return[0,r[1],r[2],r[3],r[4],r[5],r[6],z,L,V,H];case 7:var S=KIe(function(r){return iDe},n),Z=r[10],W=r[9],X=rY(r[8],S);return[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],X,W,Z];case 8:var J=KIe(function(r){return iDe},n),Y=r[10],rr=rY(r[9],J);return[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],rr,Y];default:var nr=KIe(function(r){return iDe},n),tr=rY(r[10],nr);return[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],tr]}var er=PL(R3(Adr),t);return mIe(n,oIe(n),er)}function oDe(r){return dH(r,xoe(odr))}function ADe(r){return dH(r,xoe(cdr))}function sDe(r,n){var t=oIe(n),e=hIe(r-t|0)(n);try{return xoe(PIe(n)),e}catch(r){var a=iL(r);if(a===gve)return mIe(n,t,idr);throw kQ(a,0)}}var bDe=tDe(_dr),lDe=tDe(hdr),BDe=tDe(xdr);function jDe(r,n){return 0!==PL(r,n)?1:0}function kDe(r){return dH(r,xoe(ndr))}function pDe(r){var n=uDe(r);if(n)var t=n;else{var e=oDe(r);if(e)t=e;else{var a=ADe(r);if(a)t=a;else{var u=jDe(bDe,r);if(u)t=u;else{var f=jDe(lDe,r);if(f)t=f;else t=jDe(BDe,r)||kDe(r)}}}}return 1-t}function mDe(r,n){return xIe(r-oIe(n)|0)(n),1}function dDe(r){return nDe(pDe,mDe,0,r)}function _De(r,n){for(;;){var t=PL(r,n);if(!t)return t}}function hDe(r){return[0,r[2],r[4]-r[3]|0]}var xDe=O1([0,function(r,n){var t=KC(r[1],n[1]),e=n[2],a=r[2];return 0===t?UL(ume[1],a,e):t}]);function yDe(r,n){var t=n[3],e=n[2],a=n[1];return KL(cie(r)(A_r),fhe,a,e,fhe,t)}function wDe(r,n){var t=n[3],e=n[1],a=n[2][1];return KL(cie(r)(o_r),fhe,e,a,fhe,t)}function gDe(r,n){return voe(yDe,r,n)}var qDe=[Ul,"Mo_frontend.Bi_match.Bimatch",qH()];function IDe(r,n,t){var e=r?r[1]:0,a=n?n[1]:0;return[0,qDe,t,e,a]}function DDe(r,n,t){throw kQ(IDe([0,r?r[1]:0],[0,n?n[1]:0],t),1)}function EDe(r){return ome[41][2].call(null,r[1])}var NDe=O1(fme);function TDe(r,n){return voe(wDe,r,n)}function FDe(r){return 1-zme(Pme(r))}function MDe(r){var n=ade(r);if(n[2])throw kQ([0,YL,f_r],1);return n[1]}function PDe(r,n){var t=qde(r);return 1-ome[41][9].call(null,t,n)}function UDe(r,n){var t=n[2],e=n[1];return j_e(0,ome[28].call(null,r,e),ome[28].call(null,r,t))?[0,[0,e,t]]:0}function GDe(r,n,t,e){var a=GL(r,0,t,ome[28].call(null,n,e));return ome[4].call(null,n,a,e)}function $De(r,n){if(EDe(r))return 1;var t=Dde([0,n,0]);return ome[41][9].call(null,r[1],t)}function KDe(r,n,t,e,a){var u=[0,ome[41][1]],f=[0,0];function i(r,e){var i=ome[28].call(null,r,a);if(b_e(0,e,i))return[0,i];if(!j_e(0,e,i)){var c=r[1];return DDe(0,0,KL(sie(nfe,n_r),c,TDe,[0,e,r,i],gDe,[0,e,"f){N=E;break r}}N=3}a[1]=ome[4].call(null,c,N,D)}(e,t),a[1]}(0,ome[41][16].call(null,function(r,n){return ome[4].call(null,r,0,n)},u,ome[1]),w),q=[0,u,j,[0,h,_],g,y,a,ome[1],Fdr];return function(r,n){var t=YY(function(r){return Tme(e,r)},n),a=YY(function(r){return Tme(e,r[1])},r),u=YY(function(r){return Tme(e,r[2])},r),f=ODe(q,[0,a,u,YY(function(r){return r[3]},r)],t),i=f[1],c=f[2];return[0,YY(function(r){return gme(i,r)},e),c]}}function QDe(r,n,t){if(EDe(n)){if(0===t)return[0,r];throw kQ([0,YL,Ndr],1)}for(var e=g8,a=t;;){var u=e[3],f=e[2],i=e[1];if(!a)break;var c=a[1];e=[0,[0,c[1],i],[0,c[2],f],[0,c[3],u]],a=a[2]}var v=XY(u),o=XY(f),A=ODe(n,[0,XY(i),o,v],0),s=A[1];if(EDe(A[2]))return[0,YY(function(r){return ome[28].call(null,r,s)},n[6])];throw kQ([0,YL,Tdr],1)}var CDe=O1([0,Zwe]),HDe=O1([0,r1]),VDe=R1([0,r1]),LDe=O1([0,KC]);function zDe(r){return function(n,t){for(var e=[0,r[2]];;){var a=PL(n,e[1]);if(!CDe[3].call(null,a,t))return[0,PL(n,e[1])];e[1]=UL(r[6],r[3],e[1])}}}function SDe(r){return function(n,t){for(var e=[0,r[2]];;){var a=PL(n,e[1]);if(!CDe[3].call(null,a,t))return[0,PL(n,e[1])];e[1]=PL(r[5],e[1]),UL(r[17],e[1],r[2])&&(e[1]=UL(r[6],r[3],e[1]))}}}function ZDe(r,n,t){var e=CDe[22].call(null,t),a=MY(_de(r),XJ)-e|0;if(0===a)return 0;if(2===n&&1>>1|0;var i=YY(function(r){return r[2]},d0(KC,B0(function(r){var t=Nbe(n,r);return!J0(n,r)&&t>u?0:[0,[0,t,r]]})(e)));if(0===i)return 0;var c=UEe(ahr,ehr,i);return[0,UL(R3(uhr),r,c)]}function $Ee(r,n,t,e){var a=Ume(t),u=Ume(e);if("number"!=typeof a&&2===a[0]&&"number"!=typeof u&&2===u[0]){var f=[0,0];if(M_e[12].call(null,function(r,a){if(J0(J_r,r))return 0;var u=M_e[13].call(null,function(r,n,t){return a===n[1]?[0,r]:t},n,0),i=u?[0,[0,u[1],""]]:Ace[13].call(null,function(n,t,e){var a=Soe(zoe(t),r);if(!a)return e;var u=Oie(a[1]),f=Pie(u);return[0,[0,f,GL(R3(X_r),f,n,u)]]},dce[1],0);if(!i)return 0;var c=i[1],v=f[1];return f[1]=rY(function(r,n,t,e,a){var u=[0,0],f=[0,Ede[1]];return function n(t,i){if(!Ede[3].call(null,i,f[1])){f[1]=Ede[4].call(null,i,f[1]);var c=Ume(i);if("number"!=typeof c&&3===c[0])for(var v=c[2];;){if(!v)return;var o=v[2],A=v[1],s=A[2],b=A[1],l=Pme(s);if("number"==typeof l)v=o;else switch(l[0]){case 3:n(t+Qu+b,l),v=o;break;case 8:if(!J0("to",b)&&!J0("from",b)){v=o;break}if(j_e(0,s,[8,0,0,0,[0,e,0],[0,a,0]])){var B=u[1];u[1]=[0,GL(R3(nhr),t,b,r),B],v=o}else v=o;break;default:v=o}}}}(n,t),u[1]}(c[2],c[1],a,t,e),v),0},r),0===f[1])return"";var i=UEe(",\n ",Y_r,f[1]);return PL(R3(rhr),i)}return""}function KEe(r){for(var n=Ace[36].call(null,dce[1]),t=0;;){var e=PL(n,0);if(!e)return t?t[1]:r;var a=e[2],u=e[1],f=u[1],i=u[2];if(t)n=a;else{var c=Soe(zoe(i),zoe(r));if(c){var v=c[1];if(Pie(v)===Na)n=a,t=[0,PL(R3(Z_r),f)];else{var o=Oie(v);n=a,t=[0,UL(R3(W_r),f,o)]}}else n=a,t=0}}}var OEe=O1([0,r1]);function REe(r){return M_e[34].call(null,function(r){return[0,r[1],r[2],r[3],0]},r)}var QEe=mEe[7],CEe=mEe[6],HEe=mEe[5],VEe=ome[41][5].call(null,Che),LEe=M_e[6].call(null,P_e,Che),zEe=[0,mEe[1],mEe[2],LEe,VEe,HEe,CEe,QEe],SEe=O1([0,function(r,n){return UL(Qle[1],r[2],n[2])}]);function ZEe(r,n){var t=Hle[36].call(null,n[7]),e=Rpe[22].call(null,t),a=[0,SEe[1]],u=[0,M_e[1]],f=ome[1],i=M_e[1],c=n[6],v=M_e[1],o=n[4],A=n[3],s=n[2];return[0,REe(n[1]),s,A,o,v,c,i,0,1,0,1,0,0,0,r,f,1,u,a,[0,0],[0,0],0,0,e,0,0,0]}function WEe(r,n){var t=M_e[5].call(null,n,function(r){return r?[0,r[1]]:QFr},r[18][1]);r[18][1]=t}function XEe(r){return M_e[13].call(null,function(r,n,t){return OEe[4].call(null,r,t)},r,OEe[1])}function JEe(r,n){var t=SEe[4].call(null,n,r[19][1]);return r[19][1]=t,0}function YEe(r){var n=r[2];if(0===n[0]){var t=n[2][2];if("number"!=typeof t&&0===t[0]&&dH(n[1],t[1]))return 1}return 0}var rNe=[Ul,"Mo_frontend.Typing.Recover",qH()];var nNe=[8,0,0,[0,U_e,0],[0,Qz,0],[0,[9,0,[0,P_e,0],Ez],0]],tNe=[8,0,0,[0,U_e,0],0,[0,[9,1,[0,P_e,0],Ez],0]];function eNe(r,n){try{return[0,PL(r,n)]}catch(r){var t=iL(r);if(t===rNe)return 0;throw kQ(t,0)}}function aNe(r,n){try{return PL(r,n)}catch(r){var t=iL(r);if(t===rNe)return 0;throw kQ(t,0)}}function uNe(r,n,t){var e=eNe(r,n),a=eNe(r,t);if(e&&a)return[0,e[1],a[1]];throw kQ(rNe,1)}function fNe(r,n){var t=[0,0],e=B0(function(n){try{return[0,PL(r,n)]}catch(r){var e=iL(r);if(e!==rNe)throw kQ(e,0);return t[1]=1,0}})(n);if(t[1])throw kQ(rNe,1);return e}function iNe(r){return"`"+r+"`"}function cNe(r,n){return voe(she,r,n)}function vNe(r,n){return voe(fhe,r,n)}function oNe(r,n){return voe(ihe,r,n)}function ANe(r,n){return UL(cie(r)(K8),ihe,n)}function sNe(r,n,t,e){if(Bhe(r,n,e))return 0;var a=lhe(e);return PL(cie(t)(OFr),a)}function bNe(r,n,t){return t0(PL(r,n),t)}function lNe(r){return 1===LY(r)?"":KFr}function BNe(r,n){if(0===n)return cie(r)(GFr);var t=lNe(n),e=LY(n);return $L(cie(r)($Fr),e,t,function(r,n){return bNe(oNe,r,n)},n)}function jNe(r,n){if(0===n)return cie(r)(PFr);var t=lNe(n),e=LY(n);return $L(cie(r)(UFr),e,t,function(r,n){return bNe(oNe,r,n)},n)}function kNe(r,n){var t=Pme(n);if("number"!=typeof t&&3===t[0]){var e=t[3],a=t[2],u=t[1];if(!bce[1]){var f=LY(e);if(16<=(LY(a)+f|0)){switch(u){case 0:var i=IFr;break;case 1:i=DFr;break;case 2:i=EFr;break;case 3:i=NFr;break;default:i=TFr}return PL(cie(r)(FFr),i)}}return UL(cie(r)(qFr),oNe,n)}return UL(cie(r)(MFr),vNe,n)}function pNe(r,n){var t=bce[1];if(!t)return t;var e=Bme(0,M_e[13].call(null,function(r,n,t){var e=n[1];return r===Hv||$ge(r)?t:[0,[0,r,e],t]},n,0));return UL(cie(r)(gFr),vNe,e)}function mNe(r,n){var t=bce[1];if(!t)return t;var e=Bme(0,x0(M_e[36].call(null,n)));return UL(cie(r)(wFr),vNe,e)}function dNe(r,n){var t=bce[1];if(!t)return t;var e=jme(0,0,M_e[13].call(null,function(r,n,t){if(!$ge(r)){var e=0e&&!a)return;return yNe(0,0,0,r,n,"M0035",dTr)}}}function vTe(r,n){var t=Pme(n);return"number"!=typeof t&&1===t[0]?ome[29].call(null,t[1],r[16]):0}function oTe(r){var n=r[2],t=r[1],e=t[1]===fQ?"":Pie(t[1]);return Wle([0,[0,e,t[2],t[3]],[0,e,n[2],n[3]]])}function ATe(r,n,t,e){var a=vTe(r,e);if(!a)return SNe(r,n,e,[1,Che,0])?GL(hNe(r,cie)(t),pTr,fhe,e):0;var u=oTe(a[1]);return $L(hNe(r,cie)(t),kTr,fhe,e,u)}function sTe(r,n,t){var e=vTe(r,n);if(e){var a=e[1],u=a[2],f=[0,u[1],u[2],a[2][3]-1|0],i=[0,a[1],a[1]],c=oTe(t),v=vhe(n);UL(qNe(r,i,BTr),v,c);var o=oTe(t),A=vhe(n);return UL(qNe(r,[0,f,f],jTr),A,o)}}function bTe(r,n,t,e,a,u){if(n){switch(n[1]){case 0:if(t&&e&&!e[1][2]){var f=t[1],i=r[27],c=r[26],v=r[25],o=r[24],A=r[23],s=r[22],b=r[21],l=r[20],B=r[19],j=r[18],k=r[17],p=ome[4].call(null,f,u,r[16]),m=r[15],d=r[14],_=r[13],h=r[12],x=r[11],y=r[10],w=r[8],g=r[7],q=r[6],I=r[5],D=r[4],E=M_e[4].call(null,P_e,f,r[3]);return[0,r[1],r[2],E,D,I,q,g,w,[0,f],y,x,h,_,d,m,p,k,j,B,l,b,s,A,o,v,c,i]}break;case 1:if(t&&e&&!e[1][2]){var N=t[1],T=r[27],F=r[26],M=r[25],P=r[24],U=r[23],G=r[22],$=r[21],K=r[20],O=r[19],R=r[18],Q=r[17],C=ome[4].call(null,N,u,r[16]),H=r[15],V=r[14],L=r[13],z=r[12],S=r[11],Z=r[10],W=r[8],X=r[7],J=r[6],Y=r[5],rr=r[4],nr=M_e[4].call(null,P_e,N,r[3]);return[0,r[1],r[2],nr,rr,Y,J,X,W,[1,N],Z,S,z,L,V,H,C,Q,R,O,K,$,G,U,P,M,F,T]}break;default:if(t&&e&&!e[1][2]){var tr=t[1],er=r[27],ar=r[26],ur=r[25],fr=r[24],ir=r[23],cr=r[22],vr=r[21],or=r[20],Ar=r[19],sr=r[18],br=r[17],lr=ome[4].call(null,tr,u,r[16]),Br=r[15],jr=r[14],kr=r[13],pr=r[12],mr=r[11],dr=r[10],_r=r[8],hr=r[7],xr=r[6],yr=r[5],wr=r[4],gr=M_e[4].call(null,P_e,tr,r[3]);return[0,r[1],r[2],gr,wr,yr,xr,hr,_r,[4,tr],dr,mr,pr,kr,jr,Br,lr,br,sr,Ar,or,vr,cr,ir,fr,ur,ar,er]}}throw kQ([0,YL,lTr],1)}if(t&&e&&!e[1][2]){var qr=t[1];if(!a||Rge(a[1]))Ir=[1,qr];else var Ir=[3,qr];var Dr=r[27],Er=r[26],Nr=r[25],Tr=r[24],Fr=r[23],Mr=r[22],Pr=r[21],Ur=r[20],Gr=r[19],$r=r[18],Kr=r[17],Or=ome[4].call(null,qr,u,r[16]),Rr=r[15],Qr=r[14],Cr=r[13],Hr=r[12],Vr=r[11],Lr=r[10],zr=r[8],Sr=r[7],Zr=r[6],Wr=r[5],Xr=r[4],Jr=M_e[4].call(null,P_e,qr,r[3]);return[0,r[1],r[2],Jr,Xr,Wr,Zr,Sr,zr,Ir,Lr,Vr,Hr,Cr,Qr,Rr,Or,Kr,$r,Gr,Ur,Pr,Mr,Fr,Tr,Nr,Er,Dr]}return[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],1,r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27]]}function lTe(r,n,t){var e=r[9];if("number"==typeof e){if(0===e)return UL(wNe(0,0,0,r,t,vTr,cTr),n,n),[0,[1,Hhe,0],function(r){return 1}]}else switch(e[0]){case 0:return[0,[1,e[1],0],function(r){return 0}];case 4:return[0,[1,e[1],0],function(r){return[5,r]}];case 5:return UL(wNe(0,0,0,r,t,ATr,oTr),n,n),[0,[1,Hhe,0],function(r){return 1}];case 3:break;default:return[0,[1,e[1],0],function(r){return[2,r]}]}return PL(wNe(0,0,0,r,t,bTr,sTr),n),[0,[1,Hhe,0],function(r){return 1}]}function BTe(r,n,t){var e=r[9];if("number"==typeof e){if(0===e)return}else switch(e[0]){case 3:break;case 2:case 5:return;default:return PL(wNe(0,0,0,r,t,nTr,rTr),n)}return PL(wNe(0,0,0,r,t,eTr,tTr),n)}function jTe(r,n,t,e){if(t&&!t[1][2]&&e){var a=e[2],u=e[1],f=t[2];return[0,[3,1===n?Che:u],f,a]}return[0,1,t,e]}function kTe(r,n){var t=function(r,n){var t=n[2];switch(t[0]){case 0:var e=t[2],a=t[1],u=a[2];r:if(0===u[0]){var f=u[1];WEe(r,f[2]);var i=M_e[29].call(null,f[2],r[3]);if(i)var c=i[1];else{var v=r[3],o=f[2],A=f[1],s=M_e[45].call(null,r[3]),b=GEe(jhr,f[2],s);c=GL(yNe(0,[0,ENe(r,f[1],b)],0,r,A,Bhr,lhr),o,dNe,v)}}else{var l=u[2],B=eTe(r,u[1]),j=B[3],k=B[2],p=B[1];try{var m=mde(l[2],j),d=m?m[1]:Sme(air)}catch(f){var _=iL(f);if(_[1]!==zL)throw kQ(_,0);var h=l[2],x=l[1],y=YY(function(r){return r[1]},k),w=GEe(mhr,l[2],y);c=GL(yNe(0,[0,ENe(r,l[1],w)],0,r,x,phr,khr),h,kNe,[3,p,k,j]);break r}for(var g=j,q=l[2];;){if(g){var I=g[1],D=g[2];if(I[1]!==q){g=D;continue}var E=[0,I]}else E=0;var N=E?E[1][3][1]:Sme(eir);NNe(r,a[1],dhr,l[2],N);c=d;break}}a[3]=[0,c];var T=YY(function(n){return kTe(r,n)},e),F=YY(function(r){var n=Tme(T,r[3]);return[0,r[1],r[2],n]},Upe(c)[1]),M=n[1];return yTe(r,F,T,YY(function(r){return r[1]},e),M),[1,c,T];case 1:var P=t[1];if(P===Fa)return 0;if(P===Rv)return 1;try{return[2,_me(P)]}catch(f){var U=iL(f);if(U[1]===zL)return yNe(0,0,0,r,n[1],yhr,xhr);throw kQ(U,0)}case 2:var G=t[2],$=t[1];JNe(r,ghr,whr,B0(function(r){var n=r[2];return 0===n[0]?[0,n[1]]:0})(G)),JNe(r,Ihr,qhr,B0(function(r){var n=r[2];return 0===n[0]?0:[0,n[1]]})(G));var K=$[2],O=k0(function(r){return r},fNe(function(n){return dTe(r,K,n)},G)),R=O[1],Q=d0(Ame,O[2]),C=d0(Ame,R);return[3,$[2],C,Q];case 3:var H=t[1],V=kTe(r,t[2]);return[5,YNe(H)(V)];case 4:return[6,kTe(r,t[1])];case 5:var L=t[1];return JNe(r,Ehr,Dhr,YY(function(r){return r[2][1]},L)),[4,d0(Ame,YY(function(n){return _Te(r,n)},L))];case 6:return[7,fNe(function(n){return pTe(r,n)},t[1])];case 7:var z=t[4],S=t[3],Z=t[1],W=hTe(r,t[2]),X=W[2],J=W[1],Y=n[1],rr=Z[2],nr=bTe(HNe(r,W[3],W[4]),rr,J,X,0,Y),tr=uTe(S),er=fTe(Z[2],z),ar=er[1],ur=function(r){return pTe(nr,r)},fr=uNe(function(r){return fNe(ur,r)},tr,er[2]),ir=fr[2],cr=fr[1];cTe(r,z[1],Z[2],ar,ir);var vr=1-r[13];r:if(vr?0!==Z[2]?1:0:vr){iTe(r,n[1],X);for(var or=hme(cr),Ar=1-Ude(or)?(UL(aTe(r,or,S[1],Thr,Nhr),oNe,or),ir):ir;Ar;){var sr=Ar[2],br=Ar[1];1-Ude(br)?(UL(aTe(r,br,n[1],hhr,_hr),oNe,br),Ar=sr):Ar=sr}switch(ar){case 0:if(!ir&&dH(Z[2],Fhr))break r;break;case 2:break;default:break r}var lr=hme(ir);UL(yNe(0,0,0,r,z[1],Phr,Mhr),oNe,lr)}var Br=YY(function(r){return Ime(J,r)},ir),jr=YY(function(r){return Ime(J,r)},cr),kr=Dme(J,X);return[8,Z[2],ar,kr,jr,Br];case 8:var pr=t[3],mr=t[1],dr=kTe(r,t[2]),_r=kTe(r,pr),hr=1-r[13];return(hr?1-Ude(_r):hr)&&UL(aTe(r,_r,pr[1],Ghr,Uhr),oNe,_r),[9,mr,dr,_r];case 9:var xr=t[2],yr=t[1],wr=uNe(function(n){return kTe(r,n)},yr,xr),gr=wr[2],qr=wr[1];try{var Ir=F_e([0,r[24]],qr,gr)}catch(f){var Dr=iL(f);if(Dr!==Lde)throw kQ(Dr,0);Ir=yNe(0,0,0,r,xr[1],Khr,$hr)}var Er=1-r[13];if(Er){var Nr=LNe(r,n[1],Ir,1);if(Nr)var Tr=1-(LNe(r,yr[1],qr,1)||LNe(r,xr[1],gr,1));else Tr=Nr}else Tr=Er;return Tr&&OL(gNe(0,0,0,r,n[1],Rhr,Ohr),vNe,Ir,oNe,qr,oNe,gr),Ir;case 10:var Fr=t[2],Mr=t[1],Pr=uNe(function(n){return kTe(r,n)},Mr,Fr),Ur=Pr[2],Gr=Pr[1];try{var $r=T_e([0,r[24]],Gr,Ur)}catch(f){var Kr=iL(f);if(Kr!==Lde)throw kQ(Kr,0);$r=yNe(0,0,0,r,Fr[1],Chr,Qhr)}var Or=1-r[13];if(Or){var Rr=LNe(r,n[1],0,$r);if(Rr)var Qr=1-(LNe(r,Mr[1],0,Gr)||LNe(r,Fr[1],0,Ur));else Qr=Rr}else Qr=Or;return Qr&&OL(gNe(0,0,0,r,n[1],Vhr,Hhr),vNe,$r,oNe,Gr,oNe,Ur),$r;case 11:return kTe(r,t[1]);case 12:var Cr=t[1],Hr=kTe(r,t[2]);return[11,Cr[2],Hr];default:return[12,kTe(r,t[1])]}}(r,n);return n[3]=t,t}function pTe(r,n){var t=n[1];if(!t)return kTe(r,n[2]);var e=t[1],a=kTe(r,n[2]);return[11,e[2],a]}function mTe(r,n,t){var e=t[3],a=t[1],u=hTe([0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],1,r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27]],t[2]),f=u[1],i=u[2],c=Ime(f,kTe(HNe(r,u[3],u[4]),e)),v=[0,Dme(f,i),c];return nTe(r,a,v,n),v}function dTe(r,n,t){var e=t[2];if(0!==e[0]){var a=e[1],u=mTe(r,t[1],[0,a,e[2],e[3]]),f=Mpe(a[2],u);return Lpe(r[24],a[1]),[1,[0,a[2],f,[0,Spe[1],a[1],Spe[3]]]]}var i=e[2],c=e[1],v=e[3],o=kTe(r,i),A=YNe(v)(o),s=1-r[13];if((s?1===n?1:0:s)&&1-Mde(A)){var b=vhe(A),l=c[2];UL(yNe(0,0,0,r,i[1],"M0042",Lhr),l,b)}return Lpe(r[24],c[1]),[0,[0,c[2],A,[0,Spe[1],c[1],Spe[3]]]]}function _Te(r,n){var t=n[2],e=t[1],a=kTe(r,t[2]);return Lpe(r[24],e[1]),[0,e[2],a,[0,Spe[1],e[1],Spe[3]]]}function hTe(r,n){var t=YY(function(r){return r[2][1][2]},n),e=u0(function(r,n){var t=n[3];return t?t[1]:Mpe(r,Jhr)},t,n);r:{n:{for(var a=M_e[1],u=n,f=e;u;){if(!f)break n;var i=u[1][2][1],c=f[2],v=f[1],o=u[2];if(M_e[3].call(null,i[2],a)){var A=i[2];PL(yNe(0,0,0,r,i[1],"M0044",Xhr),A)}a=M_e[4].call(null,i[2],v,a),u=o,f=c}if(!f){var s=a;break r}}s=LJ(tz)}for(var b=RNe([0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],1,r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27]],t,e),l=YY(function(r){var n=kTe(b,r[2][3]);return[0,r[2][1][2],r[2][2][2],n]},n),B=0,j=l;j;){var k=j[2],p=j[1];if(0!==B&&1!==p[2])throw kQ([0,YL,Zhr],1);B=B+1|0,j=k}var m=YY(function(r){return r[3]},l),d=LY(e);r:{n:{for(var _=e,h=n,x=f0(ome[4],e,m,ome[1]);h;){if(!_)break n;for(var y=_[2],w=_[1],g=h[2],q=0,I=0,D=w,E=h[1];;){if(d>>0){if(10!==k)break}else if(3>=k-1>>>0)break;return void(t[1]=[11,TTe(r)(e,p)])}break;case 13:if("number"!=typeof u&&16===u[0]){var m=u[2]-2|0,d=u[1];if(5>>0){if(10!==m)break}else if(3>=m-1>>>0)break;return void(t[1]=[12,DTe(r,13,Sye,e,d)])}break;case 16:if("number"!=typeof u&&16===u[0]&&15===u[2])return void(t[1]=[15,u[1]])}var _=[2,FTe(r,t,e)],h=1-LNe(r,e,_,n);if(!h)return h;var x=a?$Ee(r[2],r[1],_,n):"";return KL(yNe(0,0,0,r,e,"M0050",WNr),vNe,_,oNe,n,x)}function PTe(r,n,t){var e=t[2];return UL(yNe(0,0,0,r,t[1],"M0051",wNr),n,e)}function UTe(r,n,t,e){return $L(yNe(0,0,0,r,n,"M0060",yNr),oNe,t,oNe,e)}function GTe(r,n){var t=r[2],e=n[2];if(0===t[0]){var a=t[1];return 0===e[0]?UC(a[2],e[1][2]):1}var u=t[1];return 0===e[0]?-1:UC(u[2],e[1][2])}function $Te(r,n,t){var e=M_e[29].call(null,t[2],r[1]);if(e){var a=e[1][1];try{return void j_e([0,r[24]],n,a)}catch(a){var u=iL(a);if(u!==zde&&u!==Lde)throw kQ(u,0);return}}}function KTe(r,n,t){r:{var e=n,a=t;n:for(;;){var u=a[2];if("number"==typeof u)return;switch(u[0]){case 0:return $Te(r,e,u[1]);case 3:break r;case 4:break n;case 5:var f=u[1];e=Ade(e),a=f;break;case 6:var i=u[2],c=u[1],v=vde(c[2],e),o=pde(c[2],v);o?(e=o[1],a=i):(e=1,a=i);break;case 7:var A=u[2];KTe(r,e,u[1]),a=A;break;case 1:case 2:return;default:a=u[1]}}for(var s=u[1],b=d0(function(r,n){return UC(r[1],n[1])},B0(function(r){var n=r[2];return 0===n[0]?[0,[0,n[1][2],n[2]]]:0})(s)),l=Uoe(function(r,n){return UC(r[1],n[1])},cde(YY(function(r){return r[1]},b),e)[2],b);;){var B=l(0);if(!B)return;var j=B[2],k=B[1];2===k[0]?(KTe(r,k[1][2],k[2][2]),l=j):l=j}}for(var p=u[1],m=p,d=sde(LY(p),e);;){if(d){if(m){var _=m[2],h=d[2];KTe(r,d[1],m[1]),m=_,d=h;continue}}else if(!m)return;return LJ(nz)}}function OTe(r){var n=r[3];return iNe(n?n[1]+Qu+r[4]:r[4])}function RTe(r){var n=r[3];return n?[0,KEe(n[1])]:0}function QTe(r,n){for(var t=n,e=0;;){if(!t)return e&&!e[2]?[0,e[1]]:0;let n=t[1];var a=function(t){for(var e=t;;){if(!e)return[0,n,0];var a=e[2],f=e[1];if(UL(r,n,f))return UL(r,f,n)?[0,f,u(a)]:e;if(!UL(r,f,n))return[0,f,u(a)];e=a}};let u=a;t=t[2],e=a(e)}}function CTe(r){var n=r[1],t=Pme(r[2]);return"number"!=typeof t&&3===t[0]&&3===t[1]?[0,[0,n,t[2]]]:0}function HTe(r){return CTe([0,r[1],r[2][1]])}function VTe(r,n){return r?[43,n]:[2,[0,Lle,n,xNr]]}function LTe(r,n){return[0,n[1],[19,[0,n[1],r,Yz],n,[0,0]],Yz]}function zTe(r,n,t,e){function a(r){return j_e(0,r,e)}function u(r,n,e){var u=M_e[36].call(null,n);function f(r){return EY(e,u)}function i(n){var e=n[1],u=kde(t,n[2]);if(!u)return 0;var f=u[1],i=f[2],c=f[1];if("number"==typeof i||10!==i[0]){var v=f[2],o=f[3];A=a(v)?[0,[0,c,v,o[3]]]:0}else var A=0;if(!A)return 0;var s=A[1],b=s[1],l=s[2],B=Vle(b,Lle);return[0,[0,LTe(VTe(r,e),B),l,[0,e],b]]}return x0(function(r){return EY(i,f)})}var f=M_e[29].call(null,t,r[1]);r:{if(f){var i=f[1][1];if(a(i)){var c=[0,[0,[0,Lle,[2,[0,Lle,t,Jz]],Yz],i,0,t],0];break r}}c=u(0,r[1],HTe)}function v(r,n){return j_e(0,r[2],n[2])}if(!c){var o=u(1,r[2],CTe),A=KY(_ce[1])?QTe(v,o):0;return A?[0,A[1]]:[1,[0,o]]}if(!c[2])return[0,c[1]];var s=QTe(v,c);return s?[0,s[1]]:[1,[1,function(r){var a=O0(dNr,YY(OTe,c)),u=[0,PL(R3(_Nr),a),0],f="named "+iNe(t);return GL(yNe([0,u],0,0,r,n,"M0231",hNr),f,vNe,e)}]]}function STe(r,n){var t=Pme(r);if("number"!=typeof t&&8===t[0]){var e=t[4];if(e){var a=e[1];if("number"!=typeof a&&11===a[0]){var u=t[3];if("self"===a[1]){var f=a[2];try{var i=RDe(0,u,0)([0,[0,n,f,Lle],0],[0,f,0]),c=i[1];QDe(c,i[2],0);var v=[0,c]}catch(i){v=0}if(!v)return 0;var o=v[1];return[0,[0,Tme(o,f),t,o]]}}}}return 0}function ZTe(r,n,t){var e=M_e[29].call(null,n[2],r[1]);if(e){var a=STe(e[1][1],t);if(a)var u=a[1],f=[0,[0,0,[0,n[1],[2,[0,n[1],n[2],Jz]],Yz],u[1],u[2],u[3]]];else f=0}else f=0;function i(r,e,a){var u=M_e[36].call(null,e);function f(r){return EY(a,u)}function i(e){var a=e[1],u=kde(n[2],e[2]);if(!u)return 0;var f=STe(u[1][2],t);if(!f)return 0;var i=f[1],c=i[3],v=i[2],o=i[1];return[0,[0,[0,a],LTe(VTe(r,a),n),o,v,c]]}return x0(function(r){return EY(i,f)})}function c(r,n){return j_e(0,n[3],r[3])}if(f)return[0,f[1]];var v=i(0,r[1],HTe);if(v){if(!v[2])return[0,v[1]];var o=QTe(c,v);return o?[0,o[1]]:[1,[1,function(r){var t=O0(pNr,B0(function(r){return r[1]})(v)),e=n[2];return UL(yNe(0,0,0,r,n[1],"M0224",mNr),e,t)}]]}var A=i(1,r[2],CTe);if(A&&!A[2]){var s=A[1];if(KY(_ce[1]))return[0,s]}var b=KY(_ce[1])?QTe(c,A):0;return b?[0,b[1]]:[1,[0,function(r){return B0(function(r){return UY(KEe,r[1])})(A)}]]}function WTe(r,n,t,e,a,u){if(1-r[13]&&0!==Zce(lNr)){if(n)return;var f=t[2];if(19===f[0]&&e&&a){var i=a[2],c=a[1],v=f[2],o=e[2],A=e[1];if(("equal"===v[2]||0!==poe("compare",v[2]))&&1===LY(o))return;var s=ZTe(r,v,A);if(0!==s[0])return;var b=s[1][2][2],l=t[2];if(19===b[0]){var B=b[1][2];if(2===B[0]){var j=B[1][2],k=b[2][2];if(19===l[0]){var p=l[1],m=p[2];if(2===m[0]){var d=m[1],_=d[2];if(!d[3][1]){var h=l[2][2];if(j===_&&k===h){if(c[1][1][2]!==c[1][2][2])var x=0;else{var y=c[1];try{for(var w=iY(y[1][1]),g=y[1][2]-1|0;!(0>=g);)oY(w),g=g-1|0;for(var q=y[1][2],I=0,D=y[2][2];;){if(D>>0<3){var Tr=[0,[0,[1,Nr[1],0],wr],[0,a,gr]];break n}1-r[13]&&wNe(0,0,0,r,a,"M0197",ixr);Tr=[0,[0,[1,Hhe,0],wr],[0,a,gr]];break n}t:{if("number"==typeof Nr){if(0===Nr)break t}else switch(Nr[0]){case 0:break t;case 3:break;case 1:case 2:var Fr=Nr[1];if(!dH(C,cxr)&&!dH(C,vxr)&&0!==C){if(!dH(C,oxr))break;Tr=yNe(0,0,0,r,a,"M0186",Axr);break n}Tr=[0,[0,[1,Fr,0],wr],[0,a,gr]];break n;default:var Mr=Nr[1];if(C&&1!==C[1]){Tr=[0,[0,[1,Mr,0],wr],[0,a,gr]];break n}Tr=yNe(0,0,0,r,a,"M0187",sxr);break n}Tr=yNe(0,0,0,r,a,"M0047",lxr);break n}Tr=yNe(0,0,0,r,a,"M0188",bxr);break n}var Pr=Q}else Pr=Q;for(;;){if(Pr){var Ur=1===Pr[1][2]?1:0,Gr=Pr[2];if(Ur){Pr=Gr;continue}var $r=Ur}else $r=1;if(!$r)throw kQ([0,YL,Bxr],1);Tr=[0,wr,gr];break}}var Kr=Tr[1];yTe(r,Q,Kr,Tr[2],a);var Or=Tme(Kr,kr),Rr=Tme(Kr,O);if(r[13]){var Qr=0!==yr?1:0;if(Qr){var Cr=1-Wce(nqr);if(Cr){if(!r[13])throw kQ([0,YL,kqr],1);var Hr=HBe(0,function(n){try{var t=jFe([0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],n,r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27]],G,U,Q,kr,O,Ar,a,u,W)[1],e=LY(t),f=LY(Kr)===e?1:0;if(f)for(var i=t,c=Kr;;){if(c){if(i){var v=i[2],o=c[2],A=b_e(0,c[1],i[1]);if(A){i=v,c=o;continue}var s=A;break}}else if(!i){s=1;break}s=LJ(ez);break}else s=f;return[0,s]}catch(r){var b=iL(r);if(b===rNe)return 0;throw kQ(b,0)}}),Vr=0===Hr[0]?Hr[1][1]:0}else Vr=Cr}else Vr=Qr;if(Vr){gNe(0,0,[0,[0,[0,t[1],""],0]],r,t[1],eqr,tqr);dr=Rr,_r=Or,hr=Kr}else dr=Rr,_r=Or,hr=Kr}else{fFe(r,Or,Ar);dr=Rr,_r=Or,hr=Kr}}if(t[3]=hr,1-r[13]){0!==C&&(1-Nde(_r)&&UL(yNe(0,0,0,r,n[1],"M0099",aqr),oNe,_r),1-Nde(dr)&&UL(yNe(0,0,0,r,Ar[1],"M0100",uqr),oNe,dr));var Lr=(0!==C?1:0)||Hme(dr),zr=t[2];r:if(!Lr){if(zr&&zr[1][1]){if(Q&&!Q[1][2])break r;wNe(0,0,0,r,t[1],"M0196",fqr);break r}if(Q&&!Q[1][2]){var Sr=1===LY(Q)?"":", ...";PL(gNe(0,0,0,r,a,cqr,iqr),Sr)}}WTe(r,U,n,YY(function(r){return Tme(hr,r)},X),L,a);var Zr=YY(function(r){return Tme(hr,r)},X);if(0!==Zce(Xgr)){var Wr=LY(L)===J?1:0;if(Wr?nr>>0<2)return 0;if(dH(a[1],Lle))var k="implicit ",p=r[2][1][1];else k="",p=a[1];return PL(wNe(0,0,0,i,p,"M0133",WDr),k),0}}return 0},e));JNe(i,"actor type",rEr,z),function(r,n,t){if(1!==n[2])return;if(KY(r[27]))for(var e=t;e;){var a=e[2],u=e[1],f=u[2][3],i=u[2][1][2];if(f&&f[1][2]&&i[0]-1>>>0<2){var c=i[2],v=c[2];switch(v[0]){case 1:if(v[1]===_i){e=a;continue}break;case 41:var o=v[1][2];if(1===o[0]&&o[1]===_i){e=a;continue}}wNe(0,0,0,r,c[1],HDr,CDr),e=a}else e=a}if(!n[3][2]){if(1===yce[1])for(var A=t,s=0;;){if(!A){if(1-s)return wNe(0,0,0,r,n[1],SDr,zDr);break}var b=A[2],l=A[1],B=l[2][3],j=l[2][1][2];if(B){var k=B[1];if(k[2])A=b;else{var p=k[1];j[0]-1>>>0<2&&dH(p,Lle)?(wNe(0,0,0,r,l[2][1][1],ODr,KDr),A=b,s=1):A=b}}else A=b}return}for(var m=2===yce[1]?1:0,d=(m?KV(n[3][1],Lle):m)?(gNe(0,0,0,r,n[3][1],LDr,VDr),t):t;;){if(!d)return;var _=d[2],h=d[1],x=h[2][3],y=h[2][1][2];if(x){var w=x[1];if(w[2]){var g=w[1];y[0]-1>>>0<2&&KV(g,Lle)?(gNe(0,0,0,r,g,QDr,RDr),d=_):d=_}else d=_}else d=_}}(i,n,e);var S=d0(Ame,YY(function(r){var n=M_e[28].call(null,r[2],o[1])[1];return Lpe(i[24],r[1]),[0,r[2],n,[0,0,r[1],r[1]]]},z));1===u&&QFe(i,n,S,t,a)}return UNe(i,M_e[16].call(null,function(r,n){return OEe[3].call(null,r,f)},o[1]),v),A}function KFe(r,n,t){if(t){var e=t[1],a=[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],1,r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27]];r:if(n){var u=n[1];if(Cme(u)){var f=rde(u),i=f[5];if(0===f[1]){if(i&&!i[2]){var c=i[1];if(Vme(c))break r;if(Lme(c)){gNe(0,0,0,a,e[1],XIr,WIr);break r}}gNe(0,0,0,a,e[1],YIr,JIr)}}}var v=[0,L_e,[0,z_e,0]],o=Zme(rFe(function(r,n){var t=n[2];if(17===t[0])return uFe(r,v,e[1],t[1],t[2]);throw kQ([0,XL,ZIr],1)},ede,a,e));if(o[1])throw kQ([0,XL,rDr],1);for(var A=o[2],s=0===A?(gNe(0,0,0,a,e[1],tDr,nDr),A):A;s;)for(var b=s[2],l=s[1],B=l[2],j=l[1],k=v;;){if(k){var p=k[1],m=k[2];if(p[1]!==j){k=m;continue}var d=[0,p]}else d=0;if(!d){s=b;break}var _=d[1][2];if(1-LNe(a,e[1],B,_)){KL(wNe(0,0,0,a,e[1],"M0214",SIr),j,vNe,B,vNe,_),s=b;break}s=b;break}var h=YY(function(r){return r[1]},l0(function(r){var n=r[1],t=n!==va?1:0;return t?n!==wj?1:0:t})(A)),x=0!==h?1:0;if(!x)return x;var y=zY(h);return PL(gNe(0,0,0,a,e[1],aDr,eDr),y)}}function OFe(r,n,t){if(t){var e=t[1];1!==n[2]&&wNe(0,0,0,r,e[1],"M0209",dDr),JTe([0,r[1],r[2],r[3],r[4],r[5],r[6],M_e[1],0,1,r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27]],e)}}function RFe(r,n,t){function e(n,e){if("number"!=typeof e&&3===e[0]&&!e[1]){var a=e[2];return 1-Gde(e)&&GL(wNe(0,0,0,r,t,"M0201",_Dr),n,oNe,e),a}return GL(yNe(0,0,0,r,t,"M0202",hDr),n,oNe,e)}try{var a=bde(0,0,n),u=a[4],f=a[2],i=0!==a[1]?1:0,c=hme(a[3]);if(i||(0!==f?1:0))throw kQ([0,zL,""],1);var v=e("produces",Ume(u));return[0,e("consumes",Pme(c)),v]}catch(u){var o=iL(u);if(o[1]===zL)return UL(yNe(0,0,0,r,t,"M0203",xDr),oNe,n);throw kQ(o,0)}}function QFe(r,n,t,e,a){var u=r[27];if(u)var f=function(r){return[0,[0,r,1,0],[0,r,1,0]]},i=zoe(u[1]),c=XY(M_e[13].call(null,function(n,t,e){if(Uie(n)!==i)return e;var a=Pme(t);if("number"!=typeof a&&3===a[0]&&3===a[1]){var u=pde(bDr,a[2]);return u?[0,[0,n,a,u[1]],e]:(gNe(0,0,0,r,f(n),BDr,lDr),e)}return gNe(0,0,0,r,f(n),kDr,jDr),e},r[2],0)),v=0===c?(wNe(0,0,0,r,a,mDr,pDr),c):c;else v=0;if(n[3][3]=v,e){var o=e[1],A=o[2];if(17===A[0])for(var s=A[2];;){if(s){var b=s[1],l=s[2];if(b[2][2][2]!==Ht){s=l;continue}var B=[0,b]}else B=0;if(B){var j=B[1][1];break}j=o[1];break}else j=o[1];TEe([0,r[15],0,0,0],o);try{var k=cde([0,zz,0],o[3][1]),p=k[2];if(1===k[1])throw kQ([0,zL,""],1);var m=dde(zz,p)}catch(K){var d=iL(K);if(d[1]!==zL)throw kQ(d,0);var _=o[3][1];m=UL(yNe(0,0,0,r,j,"M0208",FDr),oNe,_)}0!==v&&yNe(0,0,0,r,a,"M0252",MDr);for(var h=RFe(r,m,j),x=h[2],y=t,w=h[1];y;){var g=y[2],q=y[1],I=pde(q[1],x);if(I){var D=I[1],E=[0,[2,q[1]],0],N=ede(D),T=ede(q[2]),F=jhe([0,r[24]],E,N,T);if(F){let n=N,t=T;var M=F[1],P=q[2],U=q[1];RL(wNe(0,0,0,r,j,"M0204",TDr),U,oNe,D,oNe,P,function(r,e){return sNe(n,t,r,e)},M),y=g}else y=g}else y=g}JNe(r,"pre actor type",PDr,YY(function(r){return[0,r[3][3],r[1],0]},YY(function(r){return r[2]},mhe(m,0,t))));for(var G=YY(function(r){return r[1]},t),$=x;;){if(!$){var K=w;break}var O=$[2],R=$[1],Q=R[1],C=R[2];pde(Q,t)||$L(wNe(0,[0,ENe(r,j,GEe(NDr,Q,G))],0,r,j,"M0205",EDr),Q,oNe,C,"The actor should declare a corresponding `stable` field."),$=O}for(;K;){var H=K[2],V=K[1],L=V[2],z=V[1];pde(z,x)?K=H:v0(z,G)?(KL(gNe(0,0,0,r,j,qDr,gDr),z,oNe,L,"The declaration in the actor will be reinitialized, discarding its consumed value.","If reinitialization is unintended, and you want to preserve the consumed value, either remove this field from the parameter of the migration function or add it to the result of the migration function."),K=H):(KL(gNe(0,0,0,r,j,DDr,IDr),z,oNe,L,"This field will be removed from the actor, discarding its consumed value.","If this removal is unintended, declare the field in the actor and either remove the field from the parameter of the migration function or add it to the result of the migration function."),K=H)}var S=Zme(o[3][1]);if(S[1])throw kQ([0,XL,UDr],1);var Z=S[2],W=YY(function(r){return r[1]},l0(function(r){return r[1]!==Ht?1:0})(Z)),X=0!==W?1:0;if(!X)return X;var J=zY(W);return PL(gNe(0,0,0,r,o[1],$Dr,GDr),J)}if(0!==v){for(var Y=a,rr=t,nr=XY(v);;){if(!nr){var tr=rr;break}var er=nr[1],ar=er[3],ur=er[1],fr=[0,ur,yz[2],yz[3]],ir=[0,fr,fr],cr=nr[2],vr=phe(ur),or=RFe(r,ar,ir),Ar=or[2];let n=Ar,t=or[1];var sr=d0(Ame,rY(Ar,l0(function(r){var e=0===pde(r[1],t)?1:0;return e?0===pde(r[1],n)?1:0:e})(rr))),br=YY(function(r){return[0,0===pde(r[1],n)?1:0,r]},rr);DEe(r[15],Y,[0,vr],sr,br),Y=ir,rr=YY(function(r){return r[2]},mhe(ar,0,rr)),nr=cr}for(;;){if(!tr)return;var lr=tr[1],Br=tr[2],jr=lr[2],kr=lr[1];GL(gNe(0,0,0,r,Y,wDr,yDr),kr,vNe,jr),tr=Br}}}function CFe(r,n,t,e){for(var a=PNe(r),u=HFe(r,n,t),f=QNe(r,u),i=n,c=f[1];i;){var v=i[2],o=i[1][2];if(4===o[0]&&1===o[3][2]){let r=o[4];i=v,c=M_e[35].call(null,function(n,t){var e=t[4],a=t[3],u=t[2];return[0,t[1],u,a,n===r[2]?1:e]},c)}else i=v}for(var A=[0,c,f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9],f[10],f[11],f[12],f[13],f[14],f[15],f[16],f[17],f[18],f[19],f[20],f[21],f[22],f[23],f[24],f[25],f[26],f[27]],s=n;;){if(s){var b=s[1];if(s[2]){var l=s[2];if(1-A[13]){aNe(function(r){return ZFe(A,Ez,r)},b),s=l;continue}s=l;continue}var B=zFe(A,b)}else B=Ez;return e&&UNe(r,u[1],a),[0,B,u]}}function HFe(r,n,t){var e=XFe(r,n),a=QNe([0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],1,r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27]],e),u=aMe(a,n),f=u[4],i=[0,ome[1]];function c(r,n){if(ome[29].call(null,n,i[1]))return 0;if(ome[41][3].call(null,n,r))var t=0;else{var e=Upe(n);if(0!==e[0])throw kQ([0,YL,hcr],1);var a=e[2],u=ome[41][4].call(null,n,r);r:for(;;){n:{if("number"==typeof a){if(2!==a)break n}else switch(a[0]){case 0:t=[0,a[2]];break r;case 1:var f=a[1],v=a[2];c(u,f);var o=ome[28].call(null,f,i[1]);if("number"==typeof o){t=o;break r}var A=o[1],s=Upe(f);if(0!==s[0]){t=1;break r}if(A>=LY(s[1]))throw kQ([0,YL,dcr],1);a=ZY(v,A);continue;case 11:a=a[2];continue;case 10:break;default:break n}throw kQ([0,YL,_cr],1)}t=1;break}}return i[1]=ome[4].call(null,n,t,i[1]),0}var v=ome[41][1];ome[41][14].call(null,function(r){return c(v,r)},f);var o=ome[41][19].call(null,function(r){return 0===ome[28].call(null,r,i[1])?1:0},f);if(1-ome[41][2].call(null,o)){var A=O0(exr,d0(UC,YY(Gpe,ome[41][23].call(null,o)))),s=FNe(o);UL(yNe(0,0,0,a,t,"M0157",axr),s,A)}var b=ome[41][16].call(null,function(r,n){var t=Upe(r);if(0!==t[0])throw kQ([0,YL,Icr],1);for(var e=n0(function(n,t){return[0,r,n]},t[1]),a=n;;){if(!e)return a;var u=e[2],f=Phe[4].call(null,e[1],a);e=u,a=f}},f,Phe[1]),l=ome[41][16].call(null,function(r,n){var t=Upe(r);if(0!==t[0])throw kQ([0,YL,Dcr],1);for(var e=t[1],a=n,u=t[2];;){if(!e)return Ghe(f,r,a,u);var i=e[2],c=Ghe(f,r,a,e[1][3]);e=i,a=c}},f,Uhe[1]),B=[0,0],j=[0,0],k=Uhe[16].call(null,function(r){var n=[0,r[1],r[3]],t=Ohe[4];return function(r){return t(n,r)}},l,Ohe[1]),p=Khe[16].call(null,function(r,n){return Rhe[4].call(null,r,[0,-1,0,0],n)},b,Rhe[1]),m=[0,0],d=Khe[16].call(null,function(r,n){return Rhe[4].call(null,r,Khe[1],n)},b,Rhe[1]),_=Ohe[16].call(null,function(r,n){var t=r[1],e=r[2],a=Rhe[28].call(null,t,n),u=Khe[4].call(null,e,a);return Rhe[4].call(null,t,u,n)},k,d);function h(r){var n=Rhe[28].call(null,r,p);n[1]=j[1],n[2]=j[1],j[1]=j[1]+1|0,m[1]=[0,r,m[1]],n[3]=1;var t=Rhe[28].call(null,r,_);function e(r){var t=Rhe[28].call(null,r,p);if(-1===t[1])return h(r),n[2]=SJ(n[2],t[2]),0;var e=t[3];return e?(n[2]=SJ(n[2],t[1]),0):e}var a=Khe[14];PL(function(r){return a(e,r)},t);var u=n[2]===n[1]?1:0;if(!u)return u;for(var f=Khe[1];;){var i=zY(m[1]);m[1]=SY(m[1]),Rhe[28].call(null,i,p)[3]=0;var c=Khe[4].call(null,i,f);if(0===UL(Mhe[1],i,r))return B[1]=[0,c,B[1]],0;f=c}}function x(r){var n=-1===Rhe[28].call(null,r,p)[1]?1:0;return n?h(r):n}var y=Khe[14];PL(function(r){return y(x,r)},b);for(var w=n0(function(r,n){return[0,n,r]},XY(B[1])),g=w,q=$he[1];g;){var I=g[1];let r=I[2];g=g[2],q=Phe[16].call(null,function(n,t){return $he[4].call(null,n,r,t)},I[1],q)}r:{n:{for(var D=Uhe[23].call(null,l);;){if(!D)break n;var E=D[1],N=0>>0<2?[0,Vle(0,n[2][1][1])]:0),O=n[2][1],R=O[2],Q=G[2];if(1===R[0]){var C=R[2],H=C[2];r:{var V=R[3],L=R[1],z=O[1];if(23===H[0]){var S=H[2];if(S[2])var Z=C;else{var W=H[1],X=H[5];n:{var J=H[4],Y=H[3];if(X){var rr=X[1][2];if(6!==rr[0]||rr[1])break n}if(H[6]){var nr=H[7],tr=nr[1],er=Oge(wMe(W,nr[1]),nr),ar=S[3],ur=[0,[0,1,Mge(0,S[1])]];Z=[0,tr,UMe(W,[0,S[1],ur,ar],Y,J,X,1,er),Yz];break r}}var fr=H[7],ir=H[6],cr=H[5],vr=H[4],or=H[3],Ar=fr[1],sr=S[3],br=[0,[0,1,Mge(0,S[1])]];Z=[0,Ar,UMe(W,[0,S[1],br,sr],or,vr,cr,ir,fr),Yz]}}else Z=C}var lr=[0,z,[1,L,Z,V],Yz]}else lr=O;return[0,n[1],[0,lr,Q,K],U]}function OMe(r,n,t,e,a){for(var u=a;;){if(!u)return[16,r,n,[0,t,e],a];var f=u[2],i=u[1],c=i[2][1][2];if("number"!=typeof i[2][2][2]&&4===c[0]&&Gge(c[4])){var v=gBe(i[2][1][1],"M0158",eOr,0,0,0,"a public class cannot be anonymous, please provide a name");MBe(PY(dMe[1]),v),u=f}else u=f}}var RMe=[Ul,"Mo_frontend.Parser_lib.Imports",qH()],QMe=[0,function(r){var n=r[3],t=n[5];return[0,t[1],[0,n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5];return[0,n[1],[0,xMe([0,e,t]),c$r,Yz],e,t,a]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2];return[0,i,[0,xMe([0,a,u]),[25,c],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5];return[0,e[1],Vle([0,t[2],n[2]],xMe([0,a,u])),a,u,f]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5];return[0,e[1],Vle([0,t[2],n[2]],xMe([0,a,u])),a,u,f]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=e[3],f=e[1],i=t[2],c=n[4],v=n[2];return[0,f,[0,Vle(i,xMe([0,t[3],t[4]])),v],u,c,a]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[1],c=n[2],v=xMe(u);return[0,i,[0,Vle(Uge(v$r,xMe(u)),v),c],e,a,f]},function(r){var n=r[3],t=n[4],e=n[3],a=[0,e,t],u=n[5],f=n[2],i=n[1],c=xMe(a);return[0,i,[0,Vle(Uge(o$r,xMe(a)),c),f],e,t,u]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2];return[0,n[1],[0,xMe([0,e,t]),[0,u],Yz],e,t,a]},function(r){var n=r[3],t=n[5][5],e=t[5][5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=n[2],o=MMe(e[2],t[2]),A=o[2],s=o[1];return[0,c,[0,xMe([0,u,f]),[1,s,A,[0,v]],Yz],u,f,i]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=t[3],f=n[4],i=e[5],c=e[2],v=e[1],o=t[4],A=t[2],s=n[3];return[0,v,Vle([0,n[2],c,A],xMe([0,a!==e[4]?a:u!==o?u:s,f])),a,f,i]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=MMe(t[2],n[2]),v=c[2],o=c[1];return[0,i,[0,xMe([0,a,u]),[1,o,v,0],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[1],c=MMe(n[2],[0,xMe(u),A$r,Yz]),v=c[2],o=c[1];return[0,i,[0,xMe(u),[1,o,v,0],Yz],e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2],o=Pge(c,xMe([0,t[3],t[4]]));return[0,i,[0,xMe([0,a,u]),[3,o,0,v],Yz],a,u,f]},function(r){var n=r[3],t=n[5][5][5],e=t[5][5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[2],o=t[2],A=n[2],s=Pge(v,xMe([0,e[3],e[4]]));return[0,c,[0,xMe([0,u,f]),[3,s,o,A],Yz],u,f,i]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=a[3],i=e[2],c=t[2],v=n[4],o=u[4],A=a[1],s=n[2],b=Vle(0,Lle),l=[0,o!=o?o:f,v],B=i[3],j=i[2],k=UL(i[1],s$r,l),p=k[2],m=k[1],d=GMe(b,p,c,s),_=d[2],h=d[1],x=xMe(l);return[0,A,PMe(m,p,UMe(p[2],b,j,B,c,h,_),x),f,v,u]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5],c=i[3],v=u[4],o=e[2],A=t[2],s=n[4],b=[0,c,v],l=i[5],B=i[1],j=f[2],k=u[2],p=a[3],m=n[2],d=xMe(b),_=PL(k,xMe(b)),h=Vle([0,[0,MY(j,1),_]],d),x=[0,c!==v?c:p,s],y=o[3],w=o[2],g=UL(o[1],b$r,x),q=g[2],I=g[1],D=GMe(h,q,A,m),E=D[2],N=D[1],T=xMe(x);return[0,B,PMe(I,q,UMe(q[2],h,w,y,A,N,E),T),c,s,l]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[3],c=u[4],v=e[2],o=t[2],A=n[4],s=[0,i,c],b=f[5],l=f[1],B=u[2],j=a[3],k=n[2],p=xMe(s),m=Vle([0,[0,0,PL(B,xMe(s))]],p),d=[0,i!==c?i:j,A],_=v[3],h=v[2],x=UL(v[1],l$r,d),y=x[2],w=x[1],g=GMe(m,y,o,k),q=g[2],I=g[1],D=xMe(d);return[0,l,PMe(w,y,UMe(y[2],m,h,_,o,I,q),D),i,A,b]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5][5],i=f[3],c=u[4],v=e[2],o=t[2],A=n[4],s=[0,i,c],b=f[5],l=f[1],B=u[2],j=a[3],k=n[2],p=xMe(s),m=Vle([0,[0,2,PL(B,xMe(s))]],p),d=[0,i!==c?i:j,A],_=v[3],h=v[2],x=UL(v[1],B$r,d),y=x[2],w=x[1],g=GMe(m,y,o,k),q=g[2],I=g[1],D=xMe(d);return[0,l,PMe(w,y,UMe(y[2],m,h,_,o,I,q),D),i,A,b]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5][5],u=a[5],f=u[3],i=u[5],c=u[1],v=a[2],o=e[2],A=n[4];return[0,c,PL(n[2],[0,[0,xMe([0,f,t[4]]),[17,OY(v),o],Yz]]),f,A,i]},function(r){var n=r[3],t=n[5],e=n[4],a=n[3];return[0,n[1],PL(n[2],0),a,e,t]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4];function f(r){return Vle([0,[0,0]],Lle)}var i=e[5],c=e[1],v=t[2],o=YY(function(r){return KMe(f,r)},n[2]);return[0,c,[0,xMe([0,a,u]),[5,v,o],Yz],a,u,i]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2],o=Vle(c,xMe([0,t[3],t[4]]));return[0,i,[0,xMe([0,a,u]),[6,o,v,[0,0]],Yz],a,u,f]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[2],o=t[2],A=n[2],s=Vle(v,xMe([0,e[3],e[4]]));return[0,c,[0,xMe([0,u,f]),[2,s,TMe(A,o)],Yz],u,f,i]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2],o=[0,a,u],A=Vle(c,xMe([0,t[3],t[4]])),s=[0,xMe(o),j$r,Yz];return[0,i,[0,xMe(o),[2,A,TMe(s,[0,v])],Yz],a,u,f]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2];return[0,n[1],[0,xMe([0,e,t]),[25,[0,u,0]],Yz],e,t,a]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2];return[0,n[1],[0,xMe([0,e,t]),[25,[0,u,0]],Yz],e,t,a]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2];return[0,n[1],[0,[0,xMe([0,e,t]),[3,[0,u]],Yz],0],e,t,a]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=t[2],f=n[4],i=e[5],c=e[1],v=[0,a,f];if(!u||u[2])o=[0,[0,xMe(v),[11,u],Yz],0];else var o=[0,u[1],1];return[0,c,o,a,f,i]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2],f=n[1],i=Vle(u,xMe([0,e,t]));return[0,f,[0,[0,xMe([0,e,t]),[2,[0,i[1],i[2],Jz]],Yz],0],e,t,a]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,[0,xMe([0,e,a]),[1,i],Yz],0],e,a,u]},function(r){var n=r[3],t=n[4],e=n[3],a=[0,e,t],u=n[5];return[0,n[1],[0,[0,xMe(a),[2,[0,xMe(a),k$r,Jz]],Yz],0],e,t,u]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,0,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,1,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,2,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,3,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,4,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,5,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,13,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,14,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,15,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,16,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,6,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,7,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,8,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,9,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,10,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,11,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,12,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,17,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[7,[0,2],f,0,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[7,[0,2],f,1,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[7,[0,2],f,2,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[7,[0,2],f,4,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[7,[0,2],f,3,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[7,[0,2],f,5,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[27,f,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[28,f,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[41,f,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=t[2],u=n[4],f=n[2],i=t[5],c=t[1],v=Vle(p$r,a[1]),o=xMe([0,e,u]),A=[0,[0,f[1],[0,f],Yz],0];return[0,c,[0,o,[25,[0,[0,a[1],[1,Mge([0,v],v[1]),a,0],Yz],A]],Yz],e,u,i]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,0,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,1,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,2,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,3,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,4,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,5,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,13,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,14,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,15,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,16,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,6,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,7,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,8,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,9,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,10,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,11,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,12,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[6,[0,2],f,17,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[7,[0,2],f,0,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[7,[0,2],f,1,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[7,[0,2],f,2,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[7,[0,2],f,4,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[7,[0,2],f,3,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[7,[0,2],f,5,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[27,f,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[28,f,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[41,f,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=t[2],u=n[4],f=n[2],i=t[5],c=t[1],v=Vle(m$r,a[1]),o=xMe([0,e,u]),A=[0,[0,f[1],[0,f],Yz],0];return[0,c,[0,o,[25,[0,[0,a[1],[1,Mge([0,v],v[1]),a,0],Yz],A]],Yz],e,u,i]},function(r){var n=r[3],t=n[5],e=t[5],a=t[3],u=n[4],f=e[4],i=t[2],c=t[1],v=n[2],o=Vle(i,xMe([0,a,t[4]])),A=Vle(0,Lle),s=f!=f?f:a,b=[0,o[1],[2,[0,o[1],o[2],Jz]],Yz],l=xMe([0,s,u]);return[0,c,Vle([0,A,o,TMe(b,v)],l),a,u,e]},function(r){var n=r[3],t=n[5],e=t[5],a=e[4],u=e[3],f=t[3],i=n[4],c=e[5],v=e[1],o=t[2],A=n[2],s=Vle(o,xMe([0,f,t[4]])),b=Vle(1,xMe([0,u,a])),l=u!==a?u:f,B=[0,s[1],[2,[0,s[1],s[2],Jz]],Yz],j=xMe([0,l,i]);return[0,v,Vle([0,b,s,TMe(B,A)],j),u,i,c]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=e[3],f=n[4],i=a[4],c=e[2],v=e[1],o=t[2],A=n[2],s=Vle(c,xMe([0,u,e[4]])),b=Vle(0,Lle),l=xMe([0,i!=i?i:u,f]);return[0,v,Vle([0,b,s,TMe(A,o)],l),u,f,a]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[4],f=a[3],i=e[3],c=n[4],v=a[5],o=a[1],A=e[2],s=t[2],b=n[2],l=Vle(A,xMe([0,i,e[4]])),B=Vle(1,xMe([0,f,u])),j=xMe([0,f!==u?f:i,c]);return[0,o,Vle([0,B,l,TMe(b,s)],j),f,c,v]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[20,f,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,0,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,1,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,2,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,3,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,4,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,5,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,13,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,14,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,15,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,16,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,6,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,7,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,8,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,9,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,10,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,11,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,12,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,17,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[4],e=n[3],a=[0,e,t],u=n[5];return[0,n[1],[0,xMe(a),[36,[0,xMe(a),d$r,Yz]],Yz],e,t,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[36,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5][5],f=u[5],i=f[3],c=e[4],v=n[4],o=f[5],A=f[1],s=u[2],b=a[2],l=t[3],B=n[2],j=[0,[0,xMe([0,i,c]),[17,OY(s),b],Yz]],k=[0,i!==c?i:l,v],p=xMe(k),m=xMe(k);return[0,A,[0,p,[38,j,0,wMe(Uge(_$r,xMe(k)),m),B],Yz],i,v,o]},function(r){var n=r[3],t=n[5],e=t[5],a=t[3],u=n[4],f=e[4],i=t[1],c=n[2],v=[0,f!=f?f:a,u],o=xMe(v),A=xMe(v);return[0,i,[0,o,[38,0,0,wMe(Uge(h$r,xMe(v)),A),c],Yz],a,u,e]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[1],c=n[2],v=xMe(u),o=xMe(u);return[0,i,[0,v,[38,0,1,wMe(Uge(x$r,xMe(u)),o),c],Yz],e,a,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[39,y$r,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[39,w$r,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[39,0,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[40,0,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[3],f=n[4],i=n[2],c=a[5],v=a[1],o=e[2],A=t[2],s=Vle(o,xMe([0,e[3],e[4]])),b=[0,u,f],l=Vle(gg+s[2],s[1]);function B(r){return Mge(g$r,xMe(b))}var j=i[2];switch(j[0]){case 31:var k=j[2],p=j[3],m=j[1],d=[0,i[1],[31,m,[0,k[1],[34,l,B(),k],Yz],p],Yz];break;case 32:var _=j[1],h=j[3],x=j[2];d=[0,i[1],[32,[0,_[1],[34,l,B(),_],Yz],x,h],Yz];break;case 33:var y=j[3],w=j[4],g=j[2],q=j[1];d=[0,i[1],[33,q,g,[0,y[1],[34,l,B(),y],Yz],w],Yz];break;default:d=i}return[0,v,[0,xMe(b),[34,s,MY(A,B()),d],Yz],u,f,c]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2],o=[0,a,u],A=Vle(c,xMe([0,t[3],t[4]])),s=MY(v,[0,xMe(o),q$r,Yz]);return[0,i,[0,xMe(o),[35,0,[0,A],s],Yz],a,u,f]},function(r){var n=r[3],t=n[4],e=n[3],a=[0,e,t],u=n[5],f=n[1],i=[0,xMe(a),I$r,Yz];return[0,f,[0,xMe(a),[35,0,0,i],Yz],e,t,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=n[2],f=[0,e,a],i=t[5],c=t[1],v=[0,xMe(f),D$r,Yz];if(u)var o=u[1],A=[0,Vle(gg+o[2],o[1])];else A=0;return[0,c,[0,xMe(f),[35,1,A,v],Yz],e,a,i]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[37,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=[0,a,u],i=e[5],c=e[1],v=t[2],o=n[2];return[0,c,[0,xMe(f),[29,v,o,[0,xMe(f),E$r,Yz]],Yz],a,u,i]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[2],o=t[2],A=n[2];return[0,c,[0,xMe([0,u,f]),[29,v,o,A],Yz],u,f,i]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2];return[0,i,[0,xMe([0,a,u]),[45,c,[0,v,0],0],Yz],a,u,f]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[2],o=t[2],A=n[2];return[0,c,[0,xMe([0,u,f]),[45,v,[0,o,0],[0,A]],Yz],u,f,i]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2];return[0,i,[0,xMe([0,a,u]),[45,c,0,[0,v]],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[44,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[5][5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[2],o=t[2];return[0,c,[0,xMe([0,u,f]),[30,v,o],Yz],u,f,i]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2];return[0,i,[0,xMe([0,a,u]),[31,c,v,[0,0,0]],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[32,i,0,[0,0,0]],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2];return[0,i,[0,xMe([0,a,u]),[32,c,[0,v],[0,0,0]],Yz],a,u,f]},function(r){var n=r[3],t=n[5][5],e=t[5][5],a=e[5][5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[2],o=t[2],A=n[2];return[0,c,[0,xMe([0,u,f]),[33,v,o,A,[0,0,0]],Yz],u,f,i]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[46,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),i[2],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[14,i],Yz],e,a,u]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[20,f,c],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,0,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,1,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,2,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,3,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,4,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,5,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,13,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,14,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,15,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,16,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,6,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,7,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,8,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,9,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,10,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,11,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,12,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[2],c=t[1],v=n[2];return[0,c,NMe(i,function(r){return[0,xMe(u),[6,[0,2],r,17,v],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[4],e=n[3],a=[0,e,t],u=n[5];return[0,n[1],[0,xMe(a),[36,[0,xMe(a),N$r,Yz]],Yz],e,t,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[36,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5][5],f=u[5],i=f[3],c=e[4],v=n[4],o=f[5],A=f[1],s=u[2],b=a[2],l=t[3],B=n[2],j=[0,[0,xMe([0,i,c]),[17,OY(s),b],Yz]],k=[0,i!==c?i:l,v],p=xMe(k),m=xMe(k);return[0,A,[0,p,[38,j,0,wMe(Uge(T$r,xMe(k)),m),B],Yz],i,v,o]},function(r){var n=r[3],t=n[5],e=t[5],a=t[3],u=n[4],f=e[4],i=t[1],c=n[2],v=[0,f!=f?f:a,u],o=xMe(v),A=xMe(v);return[0,i,[0,o,[38,0,0,wMe(Uge(F$r,xMe(v)),A),c],Yz],a,u,e]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[1],c=n[2],v=xMe(u),o=xMe(u);return[0,i,[0,v,[38,0,1,wMe(Uge(M$r,xMe(u)),o),c],Yz],e,a,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[39,P$r,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[39,U$r,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[39,0,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[40,0,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[3],f=n[4],i=n[2],c=a[5],v=a[1],o=e[2],A=t[2],s=Vle(o,xMe([0,e[3],e[4]])),b=[0,u,f],l=Vle(gg+s[2],s[1]);function B(r){return Mge(G$r,xMe(b))}var j=i[2];switch(j[0]){case 31:var k=j[2],p=j[3],m=j[1],d=[0,i[1],[31,m,[0,k[1],[34,l,B(),k],Yz],p],Yz];break;case 32:var _=j[1],h=j[3],x=j[2];d=[0,i[1],[32,[0,_[1],[34,l,B(),_],Yz],x,h],Yz];break;case 33:var y=j[3],w=j[4],g=j[2],q=j[1];d=[0,i[1],[33,q,g,[0,y[1],[34,l,B(),y],Yz],w],Yz];break;default:d=i}return[0,v,[0,xMe(b),[34,s,MY(A,B()),d],Yz],u,f,c]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2],o=[0,a,u],A=Vle(c,xMe([0,t[3],t[4]])),s=MY(v,[0,xMe(o),$$r,Yz]);return[0,i,[0,xMe(o),[35,0,[0,A],s],Yz],a,u,f]},function(r){var n=r[3],t=n[4],e=n[3],a=[0,e,t],u=n[5],f=n[1],i=[0,xMe(a),K$r,Yz];return[0,f,[0,xMe(a),[35,0,0,i],Yz],e,t,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=n[2],f=[0,e,a],i=t[5],c=t[1],v=[0,xMe(f),O$r,Yz];if(u)var o=u[1],A=[0,Vle(gg+o[2],o[1])];else A=0;return[0,c,[0,xMe(f),[35,1,A,v],Yz],e,a,i]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[37,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=[0,a,u],i=e[5],c=e[1],v=t[2],o=n[2];return[0,c,[0,xMe(f),[29,v,o,[0,xMe(f),R$r,Yz]],Yz],a,u,i]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[2],o=t[2],A=n[2];return[0,c,[0,xMe([0,u,f]),[29,v,o,A],Yz],u,f,i]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2];return[0,i,[0,xMe([0,a,u]),[45,c,[0,v,0],0],Yz],a,u,f]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[2],o=t[2],A=n[2];return[0,c,[0,xMe([0,u,f]),[45,v,[0,o,0],[0,A]],Yz],u,f,i]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2];return[0,i,[0,xMe([0,a,u]),[45,c,0,[0,v]],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[44,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[5][5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[2],o=t[2];return[0,c,[0,xMe([0,u,f]),[30,v,o],Yz],u,f,i]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2];return[0,i,[0,xMe([0,a,u]),[31,c,v,[0,0,0]],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[32,i,0,[0,0,0]],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2];return[0,i,[0,xMe([0,a,u]),[32,c,[0,v],[0,0,0]],Yz],a,u,f]},function(r){var n=r[3],t=n[5][5],e=t[5][5],a=e[5][5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[2],o=t[2],A=n[2];return[0,c,[0,xMe([0,u,f]),[33,v,o,A,[0,0,0]],Yz],u,f,i]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[46,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),i[2],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[14,i],Yz],e,a,u]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[4],e=n[3],a=n[2],u=a[2],f=n[5],i=[0,e,t];return[0,n[1],0===u[0]?u[1]:[0,xMe(i),[25,[0,a,0]],Yz],e,t,f]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[4],e=n[3],a=n[2],u=a[2],f=n[5],i=[0,e,t];return[0,n[1],0===u[0]?u[1]:[0,xMe(i),[25,[0,a,0]],Yz],e,t,f]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2],f=n[1],i=Vle(u,xMe([0,e,t]));return[0,f,[0,xMe([0,e,t]),[2,[0,i[1],i[2],Jz]],Yz],e,t,a]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[1,i],Yz],e,a,u]},function(r){var n=r[3],t=n[4],e=n[3],a=[0,e,t],u=n[5];return[0,n[1],[0,xMe(a),[2,[0,xMe(a),Q$r,Jz]],Yz],e,t,u]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2],f=n[1],i=Vle(u,xMe([0,e,t]));return[0,f,[0,xMe([0,e,t]),[2,[0,i[1],i[2],Jz]],Yz],e,t,a]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[1,i],Yz],e,a,u]},function(r){var n=r[3],t=n[4],e=n[3],a=[0,e,t],u=n[5];return[0,n[1],[0,xMe(a),[2,[0,xMe(a),C$r,Jz]],Yz],e,t,u]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2];return[0,i,[0,xMe([0,a,u]),[17,0,c],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[5][5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[2],o=t[2];return[0,c,[0,xMe([0,u,f]),[17,[0,v,o],0],Yz],u,f,i]},function(r){var n=r[3],t=n[5],e=t[5][5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[2],o=t[2];return[0,c,[0,xMe([0,u,f]),[17,v,o],Yz],u,f,i]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2];return[0,n[1],[0,xMe([0,e,t]),[3,[0,u]],Yz],e,t,a]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=t[2],f=n[4],i=e[5],c=e[1],v=[0,a,f];if(!u||u[2])o=[0,xMe(v),[11,u],Yz];else var o=u[1];return[0,c,o,a,f,i]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=Vle(0,Lle);return[0,i,[0,xMe([0,a,u]),[21,v,c],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=t[2],o=Vle(1,xMe([0,e[3],e[4]]));return[0,c,[0,xMe([0,u,f]),[21,o,v],Yz],u,f,i]},function(r){var n=r[3],t=n[5],e=t[5][5],a=e[3],u=n[4],f=e[5],i=e[2],c=e[1],v=t[2];return[0,c,[0,xMe([0,a,u]),[22,i,v],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[12,f,tV(c)],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=Vle(n[2],xMe([0,n[3],a]));return[0,i,[0,xMe([0,e,a]),[19,f,c,[0,0]],Yz],e,a,u]},function(r){var n=r[3],t=n[4],e=n[3],a=n[2],u=[0,e,t],f=a[2],i=a[1],c=n[5],v=n[1],o=xMe(u),A=o[2],s=o[1],b=[0,[0,s,[0,A[1],A[2],s[3]+HH(i)|0]],[3,[0,[16,i,2]]],Yz],l=Vle(f,[0,[0,s[1],s[2],A[3]-HH(f)|0],A]);return[0,v,[0,xMe(u),[19,b,l,[0,0]],Yz],e,t,c]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=n[2],i=e[5],c=e[2],v=e[1],o=t[2],A=f[2],s=f[1];return[0,v,[0,xMe([0,a,u]),[24,0,c,o,[0,A,[0,s]]],Yz],a,u,i]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[2];return[0,t[1],[0,xMe([0,e,a]),[15,f],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[5][5],a=e[5][5],u=a[3],f=n[4],i=a[5],c=a[4],v=a[1],o=e[2],A=[0,u,f],s=Vle(t[2],xMe([0,t[3],t[4]]));return[0,v,[0,xMe(A),[19,[0,xMe(A),[19,o,Vle(H$r,xMe([0,u,c])),[0,0]],Yz],s,[0,0]],Yz],u,f,i]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=Vle(0,Lle);return[0,i,[0,xMe([0,a,u]),[21,v,c],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=t[2],o=Vle(1,xMe([0,e[3],e[4]]));return[0,c,[0,xMe([0,u,f]),[21,o,v],Yz],u,f,i]},function(r){var n=r[3],t=n[5],e=t[5][5],a=e[3],u=n[4],f=e[5],i=e[2],c=e[1],v=t[2];return[0,c,[0,xMe([0,a,u]),[22,i,v],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2];return[0,i,[0,xMe([0,e,a]),[12,f,tV(c)],Yz],e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=Vle(n[2],xMe([0,n[3],a]));return[0,i,[0,xMe([0,e,a]),[19,f,c,[0,0]],Yz],e,a,u]},function(r){var n=r[3],t=n[4],e=n[3],a=n[2],u=[0,e,t],f=a[2],i=a[1],c=n[5],v=n[1],o=xMe(u),A=o[2],s=o[1],b=[0,[0,s,[0,A[1],A[2],s[3]+HH(i)|0]],[3,[0,[16,i,2]]],Yz],l=Vle(f,[0,[0,s[1],s[2],A[3]-HH(f)|0],A]);return[0,v,[0,xMe(u),[19,b,l,[0,0]],Yz],e,t,c]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=n[2],i=e[5],c=e[2],v=e[1],o=t[2],A=f[2],s=f[1];return[0,v,[0,xMe([0,a,u]),[24,0,c,o,[0,A,[0,s]]],Yz],a,u,i]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[2];return[0,t[1],[0,xMe([0,e,a]),[15,f],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[5][5],a=e[5][5],u=a[3],f=n[4],i=a[5],c=a[4],v=a[1],o=e[2],A=[0,u,f],s=Vle(t[2],xMe([0,t[3],t[4]]));return[0,v,[0,xMe(A),[19,[0,xMe(A),[19,o,Vle(V$r,xMe([0,u,c])),[0,0]],Yz],s,[0,0]],Yz],u,f,i]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5][5],i=f[5],c=i[3],v=n[4],o=n[2],A=i[5],s=i[1],b=f[2],l=u[2],B=e[2],j=t[2],k=[0,[0,xMe([0,c,a[4]]),[17,OY(b),l],Yz]],p=o[2],m=o[1];return[0,s,[0,xMe([0,c,v]),[24,k,B,j,[0,p,[0,m]]],Yz],c,v,A]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=[0,e,a],c=Vle(n[2],xMe([0,n[3],a]));return[0,f,[0,xMe(i),[18,c,[0,xMe(i),L$r,Yz]],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2],o=Vle(c,xMe([0,t[3],t[4]]));return[0,i,[0,xMe([0,a,u]),[18,o,v],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[13,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=n[2],f=[0,e,a],i=u[2];r:{n:{var c=t[5],v=t[1],o=0;if(3===i[0]){var A=i[1][1];if("number"!=typeof A&&16===A[0]){var s=A[2],b=A[1];if(2!==s&&12!==s)break n;var l=cg+b,B=[0,xMe(f),[3,[0,[16,l,2===s?7:s]]],Yz];break r}}}B=[0,xMe(f),[5,[0,2],o,u],Yz]}return[0,v,B,e,a,c]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=n[2],f=[0,e,a],i=u[2];r:{n:{var c=t[5],v=t[1],o=1;if(3===i[0]){var A=i[1][1];if("number"!=typeof A&&16===A[0]){var s=A[2],b=A[1];if(2!==s&&12!==s)break n;var l=rF+b,B=[0,xMe(f),[3,[0,[16,l,2===s?7:s]]],Yz];break r}}}B=[0,xMe(f),[5,[0,2],o,u],Yz]}return[0,v,B,e,a,c]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[5,[0,2],2,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[1],c=n[2];return[0,i,NMe(c,function(r){return[0,xMe(u),[5,[0,2],0,r],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[1],c=n[2];return[0,i,NMe(c,function(r){return[0,xMe(u),[5,[0,2],1,r],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[1],c=n[2];return[0,i,NMe(c,function(r){return[0,xMe(u),[5,[0,2],2,r],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[4,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[26,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[8,[0,[0,2],i]],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[5][5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2];return[0,i,[0,xMe([0,a,u]),[9,c],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[10,i],Yz],e,a,u]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5][5],i=f[5],c=i[3],v=n[4],o=n[2],A=i[5],s=i[1],b=f[2],l=u[2],B=e[2],j=t[2],k=[0,[0,xMe([0,c,a[4]]),[17,OY(b),l],Yz]],p=o[2],m=o[1];return[0,s,[0,xMe([0,c,v]),[24,k,B,j,[0,p,[0,m]]],Yz],c,v,A]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=[0,e,a],c=Vle(n[2],xMe([0,n[3],a]));return[0,f,[0,xMe(i),[18,c,[0,xMe(i),z$r,Yz]],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2],o=Vle(c,xMe([0,t[3],t[4]]));return[0,i,[0,xMe([0,a,u]),[18,o,v],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[13,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=n[2],f=[0,e,a],i=u[2];r:{n:{var c=t[5],v=t[1],o=0;if(3===i[0]){var A=i[1][1];if("number"!=typeof A&&16===A[0]){var s=A[2],b=A[1];if(2!==s&&12!==s)break n;var l=cg+b,B=[0,xMe(f),[3,[0,[16,l,2===s?7:s]]],Yz];break r}}}B=[0,xMe(f),[5,[0,2],o,u],Yz]}return[0,v,B,e,a,c]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=n[2],f=[0,e,a],i=u[2];r:{n:{var c=t[5],v=t[1],o=1;if(3===i[0]){var A=i[1][1];if("number"!=typeof A&&16===A[0]){var s=A[2],b=A[1];if(2!==s&&12!==s)break n;var l=rF+b,B=[0,xMe(f),[3,[0,[16,l,2===s?7:s]]],Yz];break r}}}B=[0,xMe(f),[5,[0,2],o,u],Yz]}return[0,v,B,e,a,c]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[5,[0,2],2,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[1],c=n[2];return[0,i,NMe(c,function(r){return[0,xMe(u),[5,[0,2],0,r],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[1],c=n[2];return[0,i,NMe(c,function(r){return[0,xMe(u),[5,[0,2],1,r],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[1],c=n[2];return[0,i,NMe(c,function(r){return[0,xMe(u),[5,[0,2],2,r],Yz]},xMe(u)),e,a,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[4,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[26,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[8,[0,[0,2],i]],Yz],e,a,u]},function(r){var n=r[3],t=n[5],e=t[5][5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2];return[0,i,[0,xMe([0,a,u]),[9,c],Yz],a,u,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=n[2];return[0,f,[0,xMe([0,e,a]),[10,i],Yz],e,a,u]},function(r){var n=r[3],t=n[5];return[0,t[1],[0,0,n[2]],t[3],n[4],t[5]]},function(r){var n=r[3];return[0,n[1],[0,1,n[2]],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5],e=t[3],a=t[5],u=t[2],f=t[1],i=n[4],c=n[2],v=Vle(u,xMe([0,e,t[4]]));return[0,f,[0,function(r,n){return[0,1,v]},0,c],e,i,a]},function(r){var n=r[3],t=n[5][5],e=t[5][5],a=e[3],u=e[5],f=e[2],i=e[1],c=t[2],v=n[4],o=n[2],A=Vle(f,xMe([0,a,e[4]]));return[0,i,[0,function(r,n){return[0,1,A]},c,o],a,v,u]},function(r){var n=r[3],t=n[5][5],e=t[5][5][5],a=e[3],u=e[5],f=e[4],i=e[2],c=e[1],v=n[4],o=n[2],A=gMe("",t[2]),s=Vle(i,xMe([0,a,f]));return[0,c,[0,function(r,n){return[0,1,s]},A,o],a,v,u]},function(r){var n=r[3];return[0,n[1],[0,function(r,n){var t=xMe(n);return[0,0,Vle(Uge(r,xMe(n)),t)]},0,n[2]],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5],e=t[5];return[0,e[1],[0,function(r,n){var t=xMe(n);return[0,0,Vle(Uge(r,xMe(n)),t)]},t[2],n[2]],e[3],n[4],e[5]]},function(r){var n=r[3],t=n[5][5],e=t[5][5],a=e[5],u=e[3],f=e[1],i=n[4],c=n[2];return[0,f,[0,function(r,n){var t=xMe(n);return[0,0,Vle(Uge(r,xMe(n)),t)]},gMe("",t[2]),c],u,i,a]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=[0,a,u],i=e[5],c=e[1],v=t[2],o=n[2];return[0,c,[0,xMe(f),[1,v,[0,xMe(f),[42,[0,o,[0,0]]],Yz],0],Yz],a,u,i]},function(r){throw kQ([0,RMe,r[3][2]],1)},function(r){var n=r[3],t=n[4];return[0,r[4],[0,Lle,0,0],t,t,n]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=[0,[0,0,t[2]]];return[0,i,[0,xMe([0,a,u]),c,0],a,u,f]},function(r){var n=r[3],t=n[5],e=t[5][5],a=e[3],u=n[4],f=e[5],i=e[1],c=[0,[0,1,t[2]]];return[0,i,[0,xMe([0,a,u]),c,0],a,u,f]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3],t=n[5],e=t[5];return[0,e[1],[0,t[2],n[2]],e[3],n[4],e[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3],t=n[5],e=t[5];return[0,e[1],[0,t[2],n[2]],e[3],n[4],e[5]]},function(r){var n=r[3];return[0,n[1],0,n[3],n[4],n[5]]},function(r){var n=r[3];return[0,n[1],[0,n[2]],n[3],n[4],n[5]]},function(r){var n=r[3];return[0,n[1],[16,n[2],2],n[3],n[4],n[5]]},function(r){var n=r[3];return[0,n[1],[16,n[2],12],n[3],n[4],n[5]]},function(r){var n=r[3];return[0,n[1],[13,n[2]],n[3],n[4],n[5]]},function(r){var n=r[3];return[0,n[1],[16,n[2],15],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2];return[0,t[1],Vle([0,f,n[2]],xMe([0,e,a])),e,a,u]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2];return[0,n[1],Vle(u,xMe([0,e,t])),e,t,a]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5],e=t[5];return[0,e[1],t[2],e[3],n[4],e[5]]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[3],f=t[2],i=n[4],c=n[2],v=a[5],o=a[4],A=a[1],s=Vle(e[2],xMe([0,e[3],e[4]])),b=Vle(0,xMe([0,u,o])),l=yMe(0,Lle),B=[0,u,i];return[0,A,function(r){switch(b[2]){case 2:case 4:throw kQ([0,YL,S$r],1);default:if(1===b[2])var n=xMe(B),t=xMe(B),e=function(r){return Vle(l[2]?[0,[0,0]]:0,Lle)},a=xMe(B),u=YY(function(r){return KMe(e,r)},c),i=[0,a,OMe(r,[0,b[1],b[2],l],[0,s],f,u),Yz],v=xMe(B),o=[0,n,[39,W$r,[0,t,[38,0,0,wMe(Uge(Z$r,xMe(B)),v),i],Yz]]];else o=[0,xMe(B),OMe(r,[0,b[1],b[2],l],0,f,c)];return PMe(1,s,o[2],o[1])}},u,i,v]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=t[2],f=n[4],i=n[2],c=e[5],v=e[1],o=Vle(0,xMe([0,a,e[4]])),A=yMe(0,Lle),s=[0,a,f];return[0,v,function(r){switch(o[2]){case 0:var n=X$r;break;case 1:n=J$r;break;case 3:n=Y$r;break;default:throw kQ([0,YL,rKr],1)}var t=xMe(s),e=Vle(Uge(n,xMe(s)),t);if(1===o[2])var a=xMe(s),f=xMe(s),c=function(r){return Vle(A[2]?[0,[0,0]]:0,Lle)},v=xMe(s),b=YY(function(r){return KMe(c,r)},i),l=[0,v,OMe(r,[0,o[1],o[2],A],0,u,b),Yz],B=xMe(s),j=[0,a,[39,tKr,[0,f,[38,0,0,wMe(Uge(nKr,xMe(s)),B),l],Yz]]];else j=[0,xMe(s),OMe(r,[0,o[1],o[2],A],0,u,i)];return PMe(0,e,j[2],j[1])},a,f,c]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[5],f=a[3],i=t[2],c=n[4],v=n[2],o=u[4],A=a[4],s=a[1],b=Vle(e[2],xMe([0,e[3],e[4]])),l=yMe(2===yce[1]?1:0,Lle),B=Vle(1,xMe([0,o!=o?o:f,A])),j=[0,f,c];return[0,s,function(r){switch(B[2]){case 2:case 4:throw kQ([0,YL,eKr],1);default:if(1===B[2])var n=xMe(j),t=xMe(j),e=function(r){return Vle(l[2]?[0,[0,0]]:0,Lle)},a=xMe(j),u=YY(function(r){return KMe(e,r)},v),f=[0,a,OMe(r,[0,B[1],B[2],l],[0,b],i,u),Yz],c=xMe(j),o=[0,n,[39,uKr,[0,t,[38,0,0,wMe(Uge(aKr,xMe(j)),c),f],Yz]]];else o=[0,xMe(j),OMe(r,[0,B[1],B[2],l],0,i,v)];return PMe(1,b,o[2],o[1])}},f,c,u]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=e[3],f=t[2],i=n[4],c=n[2],v=a[4],o=e[4],A=e[1],s=yMe(2===yce[1]?1:0,Lle),b=Vle(1,xMe([0,v!=v?v:u,o])),l=[0,u,i];return[0,A,function(r){switch(b[2]){case 0:var n=fKr;break;case 1:n=iKr;break;case 3:n=cKr;break;default:throw kQ([0,YL,vKr],1)}var t=xMe(l),e=Vle(Uge(n,xMe(l)),t);if(1===b[2])var a=xMe(l),u=xMe(l),i=function(r){return Vle(s[2]?[0,[0,0]]:0,Lle)},v=xMe(l),o=YY(function(r){return KMe(i,r)},c),A=[0,v,OMe(r,[0,b[1],b[2],s],0,f,o),Yz],B=xMe(l),j=[0,a,[39,AKr,[0,u,[38,0,0,wMe(Uge(oKr,xMe(l)),B),A],Yz]]];else j=[0,xMe(l),OMe(r,[0,b[1],b[2],s],0,f,c)];return PMe(0,e,j[2],j[1])},u,i,a]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[5],f=u[4],i=u[3],c=t[2],v=n[4],o=n[2],A=u[5],s=u[1],b=a[4],l=a[3],B=Vle(e[2],xMe([0,e[3],e[4]])),j=yMe(1,xMe([0,i,f])),k=Vle(1,xMe([0,i!==f?i:l,b])),p=[0,i,v];return[0,s,function(r){switch(k[2]){case 2:case 4:throw kQ([0,YL,sKr],1);default:if(1===k[2])var n=xMe(p),t=xMe(p),e=function(r){return Vle(j[2]?[0,[0,0]]:0,Lle)},a=xMe(p),u=YY(function(r){return KMe(e,r)},o),f=[0,a,OMe(r,[0,k[1],k[2],j],[0,B],c,u),Yz],i=xMe(p),v=[0,n,[39,lKr,[0,t,[38,0,0,wMe(Uge(bKr,xMe(p)),i),f],Yz]]];else v=[0,xMe(p),OMe(r,[0,k[1],k[2],j],0,c,o)];return PMe(1,B,v[2],v[1])}},i,v,A]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[4],f=a[3],i=t[2],c=n[4],v=n[2],o=a[5],A=a[1],s=e[4],b=e[3],l=yMe(1,xMe([0,f,u])),B=Vle(1,xMe([0,f!==u?f:b,s])),j=[0,f,c];return[0,A,function(r){switch(B[2]){case 0:var n=BKr;break;case 1:n=jKr;break;case 3:n=kKr;break;default:throw kQ([0,YL,pKr],1)}var t=xMe(j),e=Vle(Uge(n,xMe(j)),t);if(1===B[2])var a=xMe(j),u=xMe(j),f=function(r){return Vle(l[2]?[0,[0,0]]:0,Lle)},c=xMe(j),o=YY(function(r){return KMe(f,r)},v),A=[0,c,OMe(r,[0,B[1],B[2],l],0,i,o),Yz],s=xMe(j),b=[0,a,[39,dKr,[0,u,[38,0,0,wMe(Uge(mKr,xMe(j)),s),A],Yz]]];else b=[0,xMe(j),OMe(r,[0,B[1],B[2],l],0,i,v)];return PMe(0,e,b[2],b[1])},f,c,o]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[3],f=t[2],i=n[4],c=n[2],v=a[5],o=a[4],A=a[1],s=Vle(e[2],xMe([0,e[3],e[4]])),b=Vle(3,xMe([0,u,o])),l=yMe(0,Lle),B=[0,u,i];return[0,A,function(r){switch(b[2]){case 2:case 4:throw kQ([0,YL,_Kr],1);default:if(1===b[2])var n=xMe(B),t=xMe(B),e=function(r){return Vle(l[2]?[0,[0,0]]:0,Lle)},a=xMe(B),u=YY(function(r){return KMe(e,r)},c),i=[0,a,OMe(r,[0,b[1],b[2],l],[0,s],f,u),Yz],v=xMe(B),o=[0,n,[39,xKr,[0,t,[38,0,0,wMe(Uge(hKr,xMe(B)),v),i],Yz]]];else o=[0,xMe(B),OMe(r,[0,b[1],b[2],l],0,f,c)];return PMe(1,s,o[2],o[1])}},u,i,v]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=t[2],f=n[4],i=n[2],c=e[5],v=e[1],o=Vle(3,xMe([0,a,e[4]])),A=yMe(0,Lle),s=[0,a,f];return[0,v,function(r){switch(o[2]){case 0:var n=yKr;break;case 1:n=wKr;break;case 3:n=gKr;break;default:throw kQ([0,YL,qKr],1)}var t=xMe(s),e=Vle(Uge(n,xMe(s)),t);if(1===o[2])var a=xMe(s),f=xMe(s),c=function(r){return Vle(A[2]?[0,[0,0]]:0,Lle)},v=xMe(s),b=YY(function(r){return KMe(c,r)},i),l=[0,v,OMe(r,[0,o[1],o[2],A],0,u,b),Yz],B=xMe(s),j=[0,a,[39,DKr,[0,f,[38,0,0,wMe(Uge(IKr,xMe(s)),B),l],Yz]]];else j=[0,xMe(s),OMe(r,[0,o[1],o[2],A],0,u,i)];return PMe(0,e,j[2],j[1])},a,f,c]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=u[4],c=u[3],v=e[2],o=t[2],A=n[4],s=n[2],b=f[4],l=u[1],B=a[3],j=Vle(0,xMe([0,c,i])),k=yMe(0,Lle),p=Vle(0,Lle),m=[0,b!=b?b:c!==i?c:B,A];return[0,l,function(r){var n=v[2],t=v[3],e=UL(v[1],EKr,m)[2],a=Pge(e[2],e[1]),u=s[2],f=s[1];if(1===j[2])var i=qMe(o),c=function(r){return Vle(k[2]?[0,[0,0]]:0,Lle)},A=i,b=gMe("",n),l=YY(function(r){return KMe(c,r)},u);else A=o,b=n,l=u;return[0,xMe(m),[4,r,p,[0,j[1],j[2],k],a,b,t,A,f,l],Yz]},c,A,f]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=u[4],c=u[3],v=e[2],o=t[2],A=n[4],s=n[2],b=f[4],l=u[1],B=a[3],j=yMe(2===yce[1]?1:0,Lle),k=Vle(1,xMe([0,b!=b?b:c,i])),p=Vle(0,Lle),m=[0,b!=b?b:c!==i?c:B,A];return[0,l,function(r){var n=v[2],t=v[3],e=UL(v[1],NKr,m)[2],a=Pge(e[2],e[1]),u=s[2],f=s[1];if(1===k[2])var i=qMe(o),c=function(r){return Vle(j[2]?[0,[0,0]]:0,Lle)},A=i,b=gMe("",n),l=YY(function(r){return KMe(c,r)},u);else A=o,b=n,l=u;return[0,xMe(m),[4,r,p,[0,k[1],k[2],j],a,b,t,A,f,l],Yz]},c,A,f]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5],c=f[4],v=f[3],o=u[4],A=e[2],s=t[2],b=n[4],l=n[2],B=i[4],j=f[1],k=u[3],p=a[3],m=yMe(1,xMe([0,v,c])),d=Vle(1,xMe([0,v!==c?v:k,o])),_=Vle(0,Lle),h=[0,B!=B?B:v!==o?v:p,b];return[0,j,function(r){var n=A[2],t=A[3],e=UL(A[1],TKr,h)[2],a=Pge(e[2],e[1]),u=l[2],f=l[1];if(1===d[2])var i=qMe(s),c=function(r){return Vle(m[2]?[0,[0,0]]:0,Lle)},v=i,o=gMe("",n),b=YY(function(r){return KMe(c,r)},u);else v=s,o=n,b=u;return[0,xMe(h),[4,r,_,[0,d[1],d[2],m],a,o,t,v,f,b],Yz]},v,b,i]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=u[4],c=u[3],v=e[2],o=t[2],A=n[4],s=n[2],b=f[4],l=u[1],B=a[3],j=Vle(3,xMe([0,c,i])),k=yMe(0,Lle),p=Vle(0,Lle),m=[0,b!=b?b:c!==i?c:B,A];return[0,l,function(r){var n=v[2],t=v[3],e=UL(v[1],FKr,m)[2],a=Pge(e[2],e[1]),u=s[2],f=s[1];if(1===j[2])var i=qMe(o),c=function(r){return Vle(k[2]?[0,[0,0]]:0,Lle)},A=i,b=gMe("",n),l=YY(function(r){return KMe(c,r)},u);else A=o,b=n,l=u;return[0,xMe(m),[4,r,p,[0,j[1],j[2],k],a,b,t,A,f,l],Yz]},c,A,f]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=a[3],i=e[2],c=t[2],v=n[4],o=n[2],A=u[4],s=a[1],b=Vle(0,Lle),l=yMe(2===yce[1]?1:0,Lle),B=Vle(0,Lle),j=[0,A!=A||A!=A?A:f,v];return[0,s,function(r){var n=i[2],t=i[3],e=UL(i[1],MKr,j)[2],a=Pge(e[2],e[1]),u=o[2],f=o[1];if(1===b[2])var v=qMe(c),A=function(r){return Vle(l[2]?[0,[0,0]]:0,Lle)},s=v,k=gMe("",n),p=YY(function(r){return KMe(A,r)},u);else s=c,k=n,p=u;return[0,xMe(j),[4,r,B,[0,b[1],b[2],l],a,k,t,s,f,p],Yz]},f,v,u]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5],c=i[5],v=c[3],o=f[4],A=u[4],s=u[3],b=e[2],l=t[2],B=n[4],j=n[2],k=c[5],p=c[1],m=i[2],d=f[2],_=a[3],h=Vle(0,xMe([0,s,A])),x=yMe(0,Lle),y=[0,v,o],w=xMe(y),g=PL(d,xMe(y)),q=Vle([0,[0,MY(m,1),g]],w),I=[0,v!==o?v:s!==A?s:_,B];return[0,p,function(r){var n=b[2],t=b[3],e=UL(b[1],PKr,I)[2],a=Pge(e[2],e[1]),u=j[2],f=j[1];if(1===h[2])var i=qMe(l),c=function(r){return Vle(x[2]?[0,[0,0]]:0,Lle)},v=i,o=gMe("",n),A=YY(function(r){return KMe(c,r)},u);else v=l,o=n,A=u;return[0,xMe(I),[4,r,q,[0,h[1],h[2],x],a,o,t,v,f,A],Yz]},v,B,k]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5],c=i[5],v=c[3],o=f[4],A=u[4],s=u[3],b=e[2],l=t[2],B=n[4],j=n[2],k=c[5],p=c[1],m=i[2],d=f[2],_=a[3],h=yMe(2===yce[1]?1:0,Lle),x=Vle(1,xMe([0,o!=o?o:s,A])),y=[0,v,o],w=xMe(y),g=PL(d,xMe(y)),q=Vle([0,[0,MY(m,1),g]],w),I=[0,v!==o?v:s!==A?s:_,B];return[0,p,function(r){var n=b[2],t=b[3],e=UL(b[1],UKr,I)[2],a=Pge(e[2],e[1]),u=j[2],f=j[1];if(1===x[2])var i=qMe(l),c=function(r){return Vle(h[2]?[0,[0,0]]:0,Lle)},v=i,o=gMe("",n),A=YY(function(r){return KMe(c,r)},u);else v=l,o=n,A=u;return[0,xMe(I),[4,r,q,[0,x[1],x[2],h],a,o,t,v,f,A],Yz]},v,B,k]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5],c=i[5],v=c[5],o=v[3],A=i[4],s=f[4],b=f[3],l=u[4],B=e[2],j=t[2],k=n[4],p=n[2],m=v[5],d=v[1],_=c[2],h=i[2],x=u[3],y=a[3],w=yMe(1,xMe([0,b,s])),g=Vle(1,xMe([0,b!==s?b:x,l])),q=[0,o,A],I=xMe(q),D=PL(h,xMe(q)),E=Vle([0,[0,MY(_,1),D]],I),N=[0,o!==A?o:b!==l?b:y,k];return[0,d,function(r){var n=B[2],t=B[3],e=UL(B[1],GKr,N)[2],a=Pge(e[2],e[1]),u=p[2],f=p[1];if(1===g[2])var i=qMe(j),c=function(r){return Vle(w[2]?[0,[0,0]]:0,Lle)},v=i,o=gMe("",n),A=YY(function(r){return KMe(c,r)},u);else v=j,o=n,A=u;return[0,xMe(N),[4,r,E,[0,g[1],g[2],w],a,o,t,v,f,A],Yz]},o,k,m]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5],c=i[5],v=c[3],o=f[4],A=u[4],s=u[3],b=e[2],l=t[2],B=n[4],j=n[2],k=c[5],p=c[1],m=i[2],d=f[2],_=a[3],h=Vle(3,xMe([0,s,A])),x=yMe(0,Lle),y=[0,v,o],w=xMe(y),g=PL(d,xMe(y)),q=Vle([0,[0,MY(m,1),g]],w),I=[0,v!==o?v:s!==A?s:_,B];return[0,p,function(r){var n=b[2],t=b[3],e=UL(b[1],$Kr,I)[2],a=Pge(e[2],e[1]),u=j[2],f=j[1];if(1===h[2])var i=qMe(l),c=function(r){return Vle(x[2]?[0,[0,0]]:0,Lle)},v=i,o=gMe("",n),A=YY(function(r){return KMe(c,r)},u);else v=l,o=n,A=u;return[0,xMe(I),[4,r,q,[0,h[1],h[2],x],a,o,t,v,f,A],Yz]},v,B,k]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5],c=i[3],v=u[4],o=e[2],A=t[2],s=n[4],b=n[2],l=i[5],B=i[1],j=f[2],k=u[2],p=a[3],m=Vle(0,Lle),d=yMe(2===yce[1]?1:0,Lle),_=[0,c,v],h=xMe(_),x=PL(k,xMe(_)),y=Vle([0,[0,MY(j,1),x]],h),w=[0,c!==v?c:v!=v?v:p,s];return[0,B,function(r){var n=o[2],t=o[3],e=UL(o[1],KKr,w)[2],a=Pge(e[2],e[1]),u=b[2],f=b[1];if(1===m[2])var i=qMe(A),c=function(r){return Vle(d[2]?[0,[0,0]]:0,Lle)},v=i,s=gMe("",n),l=YY(function(r){return KMe(c,r)},u);else v=A,s=n,l=u;return[0,xMe(w),[4,r,y,[0,m[1],m[2],d],a,s,t,v,f,l],Yz]},c,s,l]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5],c=i[3],v=f[4],o=u[4],A=u[3],s=e[2],b=t[2],l=n[4],B=n[2],j=i[5],k=i[1],p=f[2],m=a[3],d=Vle(0,xMe([0,A,o])),_=yMe(0,Lle),h=[0,c,v],x=xMe(h),y=Vle([0,[0,0,PL(p,xMe(h))]],x),w=[0,c!==v?c:A!==o?A:m,l];return[0,k,function(r){var n=s[2],t=s[3],e=UL(s[1],OKr,w)[2],a=Pge(e[2],e[1]),u=B[2],f=B[1];if(1===d[2])var i=qMe(b),c=function(r){return Vle(_[2]?[0,[0,0]]:0,Lle)},v=i,o=gMe("",n),A=YY(function(r){return KMe(c,r)},u);else v=b,o=n,A=u;return[0,xMe(w),[4,r,y,[0,d[1],d[2],_],a,o,t,v,f,A],Yz]},c,l,j]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5],c=i[3],v=f[4],o=u[4],A=u[3],s=e[2],b=t[2],l=n[4],B=n[2],j=i[5],k=i[1],p=f[2],m=a[3],d=yMe(2===yce[1]?1:0,Lle),_=Vle(1,xMe([0,v!=v?v:A,o])),h=[0,c,v],x=xMe(h),y=Vle([0,[0,0,PL(p,xMe(h))]],x),w=[0,c!==v?c:A!==o?A:m,l];return[0,k,function(r){var n=s[2],t=s[3],e=UL(s[1],RKr,w)[2],a=Pge(e[2],e[1]),u=B[2],f=B[1];if(1===_[2])var i=qMe(b),c=function(r){return Vle(d[2]?[0,[0,0]]:0,Lle)},v=i,o=gMe("",n),A=YY(function(r){return KMe(c,r)},u);else v=b,o=n,A=u;return[0,xMe(w),[4,r,y,[0,_[1],_[2],d],a,o,t,v,f,A],Yz]},c,l,j]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5],c=i[5],v=c[3],o=i[4],A=f[4],s=f[3],b=u[4],l=e[2],B=t[2],j=n[4],k=n[2],p=c[5],m=c[1],d=i[2],_=u[3],h=a[3],x=yMe(1,xMe([0,s,A])),y=Vle(1,xMe([0,s!==A?s:_,b])),w=[0,v,o],g=xMe(w),q=Vle([0,[0,0,PL(d,xMe(w))]],g),I=[0,v!==o?v:s!==b?s:h,j];return[0,m,function(r){var n=l[2],t=l[3],e=UL(l[1],QKr,I)[2],a=Pge(e[2],e[1]),u=k[2],f=k[1];if(1===y[2])var i=qMe(B),c=function(r){return Vle(x[2]?[0,[0,0]]:0,Lle)},v=i,o=gMe("",n),A=YY(function(r){return KMe(c,r)},u);else v=B,o=n,A=u;return[0,xMe(I),[4,r,q,[0,y[1],y[2],x],a,o,t,v,f,A],Yz]},v,j,p]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5],c=i[3],v=f[4],o=u[4],A=u[3],s=e[2],b=t[2],l=n[4],B=n[2],j=i[5],k=i[1],p=f[2],m=a[3],d=Vle(3,xMe([0,A,o])),_=yMe(0,Lle),h=[0,c,v],x=xMe(h),y=Vle([0,[0,0,PL(p,xMe(h))]],x),w=[0,c!==v?c:A!==o?A:m,l];return[0,k,function(r){var n=s[2],t=s[3],e=UL(s[1],CKr,w)[2],a=Pge(e[2],e[1]),u=B[2],f=B[1];if(1===d[2])var i=qMe(b),c=function(r){return Vle(_[2]?[0,[0,0]]:0,Lle)},v=i,o=gMe("",n),A=YY(function(r){return KMe(c,r)},u);else v=b,o=n,A=u;return[0,xMe(w),[4,r,y,[0,d[1],d[2],_],a,o,t,v,f,A],Yz]},c,l,j]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[3],c=u[4],v=e[2],o=t[2],A=n[4],s=n[2],b=f[5],l=f[1],B=u[2],j=a[3],k=Vle(0,Lle),p=yMe(2===yce[1]?1:0,Lle),m=[0,i,c],d=xMe(m),_=Vle([0,[0,0,PL(B,xMe(m))]],d),h=[0,i!==c?i:c!=c?c:j,A];return[0,l,function(r){var n=v[2],t=v[3],e=UL(v[1],HKr,h)[2],a=Pge(e[2],e[1]),u=s[2],f=s[1];if(1===k[2])var i=qMe(o),c=function(r){return Vle(p[2]?[0,[0,0]]:0,Lle)},A=i,b=gMe("",n),l=YY(function(r){return KMe(c,r)},u);else A=o,b=n,l=u;return[0,xMe(h),[4,r,_,[0,k[1],k[2],p],a,b,t,A,f,l],Yz]},i,A,b]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5][5],c=i[3],v=f[4],o=u[4],A=u[3],s=e[2],b=t[2],l=n[4],B=n[2],j=i[5],k=i[1],p=f[2],m=a[3],d=Vle(0,xMe([0,A,o])),_=yMe(0,Lle),h=[0,c,v],x=xMe(h),y=Vle([0,[0,2,PL(p,xMe(h))]],x),w=[0,c!==v?c:A!==o?A:m,l];return[0,k,function(r){var n=s[2],t=s[3],e=UL(s[1],VKr,w)[2],a=Pge(e[2],e[1]),u=B[2],f=B[1];if(1===d[2])var i=qMe(b),c=function(r){return Vle(_[2]?[0,[0,0]]:0,Lle)},v=i,o=gMe("",n),A=YY(function(r){return KMe(c,r)},u);else v=b,o=n,A=u;return[0,xMe(w),[4,r,y,[0,d[1],d[2],_],a,o,t,v,f,A],Yz]},c,l,j]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5][5],c=i[3],v=f[4],o=u[4],A=u[3],s=e[2],b=t[2],l=n[4],B=n[2],j=i[5],k=i[1],p=f[2],m=a[3],d=yMe(2===yce[1]?1:0,Lle),_=Vle(1,xMe([0,v!=v?v:A,o])),h=[0,c,v],x=xMe(h),y=Vle([0,[0,2,PL(p,xMe(h))]],x),w=[0,c!==v?c:A!==o?A:m,l];return[0,k,function(r){var n=s[2],t=s[3],e=UL(s[1],LKr,w)[2],a=Pge(e[2],e[1]),u=B[2],f=B[1];if(1===_[2])var i=qMe(b),c=function(r){return Vle(d[2]?[0,[0,0]]:0,Lle)},v=i,o=gMe("",n),A=YY(function(r){return KMe(c,r)},u);else v=b,o=n,A=u;return[0,xMe(w),[4,r,y,[0,_[1],_[2],d],a,o,t,v,f,A],Yz]},c,l,j]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5],c=i[5][5],v=c[3],o=i[4],A=f[4],s=f[3],b=u[4],l=e[2],B=t[2],j=n[4],k=n[2],p=c[5],m=c[1],d=i[2],_=u[3],h=a[3],x=yMe(1,xMe([0,s,A])),y=Vle(1,xMe([0,s!==A?s:_,b])),w=[0,v,o],g=xMe(w),q=Vle([0,[0,2,PL(d,xMe(w))]],g),I=[0,v!==o?v:s!==b?s:h,j];return[0,m,function(r){var n=l[2],t=l[3],e=UL(l[1],zKr,I)[2],a=Pge(e[2],e[1]),u=k[2],f=k[1];if(1===y[2])var i=qMe(B),c=function(r){return Vle(x[2]?[0,[0,0]]:0,Lle)},v=i,o=gMe("",n),A=YY(function(r){return KMe(c,r)},u);else v=B,o=n,A=u;return[0,xMe(I),[4,r,q,[0,y[1],y[2],x],a,o,t,v,f,A],Yz]},v,j,p]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5][5],c=i[3],v=f[4],o=u[4],A=u[3],s=e[2],b=t[2],l=n[4],B=n[2],j=i[5],k=i[1],p=f[2],m=a[3],d=Vle(3,xMe([0,A,o])),_=yMe(0,Lle),h=[0,c,v],x=xMe(h),y=Vle([0,[0,2,PL(p,xMe(h))]],x),w=[0,c!==v?c:A!==o?A:m,l];return[0,k,function(r){var n=s[2],t=s[3],e=UL(s[1],SKr,w)[2],a=Pge(e[2],e[1]),u=B[2],f=B[1];if(1===d[2])var i=qMe(b),c=function(r){return Vle(_[2]?[0,[0,0]]:0,Lle)},v=i,o=gMe("",n),A=YY(function(r){return KMe(c,r)},u);else v=b,o=n,A=u;return[0,xMe(w),[4,r,y,[0,d[1],d[2],_],a,o,t,v,f,A],Yz]},c,l,j]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[5],f=u[5][5],i=f[3],c=u[4],v=e[2],o=t[2],A=n[4],s=n[2],b=f[5],l=f[1],B=u[2],j=a[3],k=Vle(0,Lle),p=yMe(2===yce[1]?1:0,Lle),m=[0,i,c],d=xMe(m),_=Vle([0,[0,2,PL(B,xMe(m))]],d),h=[0,i!==c?i:c!=c?c:j,A];return[0,l,function(r){var n=v[2],t=v[3],e=UL(v[1],ZKr,h)[2],a=Pge(e[2],e[1]),u=s[2],f=s[1];if(1===k[2])var i=qMe(o),c=function(r){return Vle(p[2]?[0,[0,0]]:0,Lle)},A=i,b=gMe("",n),l=YY(function(r){return KMe(c,r)},u);else A=o,b=n,l=u;return[0,xMe(h),[4,r,_,[0,k[1],k[2],p],a,b,t,A,f,l],Yz]},i,A,b]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2]],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2]],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2]],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2];return[0,n[1],[0,Vle(u,xMe([0,e,t]))],e,t,a]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5];return[0,t[1],[0,2],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2]],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],0,t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=e[3],f=t[3],i=n[4],c=a[5],v=a[3],o=a[1],A=e[2],s=t[4],b=t[2],l=n[3],B=[0,u!==e[4]?u:f!==s?f:l,i],j=_Me[1];return[0,o,function(r){var n=rY(A,b);return[0,xMe(B),n,[0,r,j]]},v,i,c]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=e[3],f=t[3],i=n[4],c=a[5],v=a[3],o=a[1],A=e[2],s=t[4],b=t[2],l=n[3],B=[0,u!==e[4]?u:f!==s?f:l,i],j=_Me[1];return[0,o,function(r){var n=rY(A,b);return[0,xMe(B),n,[0,r,j]]},v,i,c]},function(r){var n=r[3],t=n[5],e=t[5][5],a=e[5],u=a[5],f=a[3],i=n[4],c=u[5],v=u[3],o=u[1],A=a[2],s=e[3],b=t[2],l=[0,f!==a[4]?f:s,i],B=_Me[1],j=[0,b];return[0,o,function(r){var n=[0,A,[0,xMe(l),j,0]];return[0,xMe(l),n,[0,r,B]]},v,i,c]},function(r){var n=r[3],t=n[5][5],e=t[5][5][5][5],a=e[5][5][5],u=a[5],f=u[5],i=u[3],c=n[4],v=f[5],o=f[3],A=f[1],s=u[2],b=a[3],l=e[2],B=t[2],j=[0,i!==u[4]?i:b,c],k=_Me[1],p=[1,l,B];return[0,A,function(r){var n=[0,s,[0,xMe(j),p,0]];return[0,xMe(j),n,[0,r,k]]},o,c,v]},function(r){var n=r[3],t=n[5],e=t[5][5][5][5],a=e[5],u=a[5],f=u[5],i=u[3],c=n[4],v=f[5],o=f[3],A=f[1],s=u[2],b=a[3],l=e[2],B=t[2],j=[0,i!==u[4]?i:b,c],k=_Me[1],p=[2,l,B];return[0,A,function(r){var n=[0,s,[0,xMe(j),p,0]];return[0,xMe(j),n,[0,r,k]]},o,c,v]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2];return[0,t[1],Mge([7,f,n[2]],xMe([0,e,a])),e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2];return[0,t[1],Mge([8,f,n[2]],xMe([0,e,a])),e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2],v=Vle(f,xMe([0,e,t[4]])),o=xMe([0,e,a]);return[0,i,Vle([0,v,FMe(Mge([0,v],v[1]),c)],o),e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[2],c=e[1],v=t[2],o=n[2],A=Vle(i,xMe([0,a,e[4]])),s=xMe([0,a,u]);return[0,c,Vle([0,A,FMe(o,v)],s),a,u,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5];return[0,t[1],Vle([1,Pge(n[2],xMe([0,n[3],a]))],xMe([0,e,a])),e,a,u]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5];return[0,e[1],Mge([4,t[2]],xMe([0,a,u])),a,u,f]},function(r){var n=r[3],t=n[2];return[0,n[1],function(r){return t},n[3],n[4],n[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],function(r){return Mge(0,r)},t,t,n]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5];return[0,n[1],Mge(0,xMe([0,e,t])),e,t,a]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2];return[0,n[1],Mge([0,Vle(u,xMe([0,e,t]))],xMe([0,e,t])),e,t,a]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2];return[0,n[1],Mge([1,[0,u]],xMe([0,e,t])),e,t,a]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=t[2],f=n[4],i=e[5],c=e[1],v=xMe([0,a,f]);if(!u||u[2])o=[3,u];else var o=[9,u[1]];return[0,c,Mge(o,v),a,f,i]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[1],i=[0,e,a],c=Vle(n[2],xMe([0,n[3],a])),v=xMe(i);return[0,f,Mge([6,c,Mge(WKr,xMe(i))],v),e,a,u]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2];return[0,i,Mge([6,Vle(c,xMe([0,t[3],t[4]])),v],xMe([0,a,u])),a,u,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5];return[0,t[1],Mge([5,n[2]],xMe([0,e,a])),e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=n[2],f=[0,e,a];r:{n:{var i=t[5],c=t[1],v=0;if("number"!=typeof u&&16===u[0]){var o=u[2],A=u[1];if(2!==o&&12!==o)break n;var s=Mge([1,[0,[16,cg+A,2===o?7:o]]],xMe(f));break r}}s=Mge([2,v,[0,u]],xMe(f))}return[0,c,s,e,a,i]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=n[2],f=[0,e,a];r:{n:{var i=t[5],c=t[1],v=1;if("number"!=typeof u&&16===u[0]){var o=u[2],A=u[1];if(2!==o&&12!==o)break n;var s=Mge([1,[0,[16,rF+A,2===o?7:o]]],xMe(f));break r}}s=Mge([2,v,[0,u]],xMe(f))}return[0,c,s,e,a,i]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5];return[0,t[1],Mge([2,2,[0,n[2]]],xMe([0,e,a])),e,a,u]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2];return[0,n[1],Mge([0,Vle(u,xMe([0,e,t]))],xMe([0,e,t])),e,t,a]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2];return[0,t[1],Mge([1,f,Vle(n[2],xMe([0,n[3],a]))],xMe([0,e,a])),e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[4],c=e[1],v=t[2],o=n[2],A=Vle(v,xMe([0,t[3],t[4]])),s=Vle(0,Lle);return[0,c,[0,Vle(0,xMe([0,a,i])),Vle([0,A,o,s],xMe([0,a,u]))],a,u,f]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[4],v=a[1],o=e[4],A=e[3],s=t[2],b=n[2],l=Vle(s,xMe([0,t[3],t[4]])),B=Vle(1,xMe([0,A,o]));return[0,v,[0,Vle(0,xMe([0,u,c])),Vle([0,l,b,B],xMe([0,u,f]))],u,f,i]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[4],c=e[1],v=t[2],o=n[2],A=Vle(v,xMe([0,t[3],t[4]])),s=Vle(0,Lle);return[0,c,[0,Vle(1,xMe([0,a,i])),Vle([0,A,o,s],xMe([0,a,u]))],a,u,f]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[4],v=a[1],o=e[4],A=e[3],s=t[2],b=n[2],l=Vle(s,xMe([0,t[3],t[4]])),B=Vle(1,xMe([0,A,o]));return[0,v,[0,Vle(1,xMe([0,u,c])),Vle([0,l,b,B],xMe([0,u,f]))],u,f,i]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3];return[0,n[1],[0,n[2],0],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5][5];return[0,t[1],[0,t[2],n[2]],t[3],n[4],t[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5];return[0,n[1],[0,Vle(0,xMe([0,e,t]))],e,t,a]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5];return[0,n[1],[0,Vle([0,[0,0]],xMe([0,e,t]))],e,t,a]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5];return[0,n[1],[0,Vle(0,xMe([0,e,t]))],e,t,a]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2],o=Vle(c,xMe([0,t[3],t[4]])),A=Vle(0,Lle);return[0,i,Vle([0,o,v,A],xMe([0,a,u])),a,u,f]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[4],o=e[3],A=t[2],s=n[2],b=Vle(A,xMe([0,t[3],t[4]])),l=Vle(1,xMe([0,o,v]));return[0,c,Vle([0,b,s,l],xMe([0,u,f])),u,f,i]},function(r){var n=r[3],t=n[4];return[0,r[4],0,t,t,n]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2];return[0,t[1],Mge([9,f,n[2]],xMe([0,e,a])),e,a,u]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2];return[0,t[1],Mge([10,f,n[2]],xMe([0,e,a])),e,a,u]},function(r){var n=r[3],t=n[5],e=t[5];return[0,e[1],t[2],e[3],n[4],e[5]]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2],v=Vle(f,xMe([0,e,t[4]])),o=xMe([0,e,a]);return[0,i,Pge([0,v,Vle(1,Lle),c],o),e,a,u]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2],f=n[1],i=[0,e,t],c=Vle(u,xMe([0,e,t])),v=xMe(i),o=Mge(XKr,xMe(i));return[0,f,Pge([0,c,Vle(1,Lle),o],v),e,t,a]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2],o=Pge(c,xMe([0,t[3],t[4]]));return[0,i,[0,xMe([0,a,u]),[3,o,0,v],Yz],a,u,f]},function(r){var n=r[3],t=n[5][5][5],e=t[5][5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[2],o=t[2],A=n[2],s=Pge(v,xMe([0,e[3],e[4]]));return[0,c,[0,xMe([0,u,f]),[3,s,o,A],Yz],u,f,i]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2];return[0,i,Vle([1,Pge(c,xMe([0,t[3],t[4]])),0,v],xMe([0,a,u])),a,u,f]},function(r){var n=r[3],t=n[5][5][5],e=t[5][5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=e[2],o=t[2],A=n[2];return[0,c,Vle([1,Pge(v,xMe([0,e[3],e[4]])),o,A],xMe([0,u,f])),u,f,i]},function(r){var n=r[3],t=n[5][5],e=t[5],a=t[3],u=n[4],f=e[4],i=t[2],c=t[1],v=n[2],o=Vle(i,xMe([0,a,t[4]])),A=Vle(0,Lle);return[0,c,Vle([0,o,v,A],xMe([0,f!=f?f:a,u])),a,u,e]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[4],u=e[3],f=t[3],i=n[4],c=e[5],v=e[1],o=t[2],A=n[2],s=Vle(o,xMe([0,f,t[4]])),b=Vle(1,xMe([0,u,a]));return[0,v,Vle([0,s,A,b],xMe([0,u!==a?u:f,i])),u,i,c]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[3],u=n[4],f=n[2],i=e[5],c=e[2],v=e[1],o=t[2],A=Vle(c,xMe([0,a,e[4]])),s=Sle(A[1],f[1]),b=Mge(IMe([0,Vle(0,Lle),0,o,f]),s),l=xMe([0,a,u]);return[0,v,Vle([0,A,b,Vle(0,Lle)],l),a,u,i]},function(r){var n=r[3],t=n[5][5],e=t[5][5],a=e[5][5],u=a[3],f=n[4],i=n[2],c=a[5],v=a[2],o=a[1],A=e[2],s=t[2],b=Vle(v,xMe([0,u,a[4]])),l=Sle(b[1],i[1]),B=Mge(IMe([0,Vle(0,Lle),A,s,i]),l),j=xMe([0,u,f]);return[0,o,Vle([0,b,B,Vle(0,Lle)],j),u,f,c]},function(r){var n=r[3],t=n[5][5],e=t[5][5],a=e[5][5][5],u=a[3],f=n[4],i=n[2],c=a[5],v=a[4],o=a[2],A=a[1],s=t[2],b=gMe("",e[2]),l=Vle(o,xMe([0,u,v])),B=Sle(l[1],i[1]),j=Mge(IMe([0,Vle(0,Lle),b,s,i]),B),k=xMe([0,u,f]);return[0,A,Vle([0,l,j,Vle(0,Lle)],k),u,f,c]},function(r){var n=r[3],t=n[5][5],e=t[3],a=t[5],u=t[1],f=n[4],i=n[2];return[0,u,[0,[0,Vle(JKr,xMe([0,e,t[4]]))],i],e,f,a]},function(r){var n=r[3],t=n[5][5],e=t[3],a=t[5],u=t[2],f=t[1],i=n[4],c=n[2];return[0,f,[0,[0,Vle(u,xMe([0,e,t[4]]))],c],e,i,a]},function(r){var n=r[3];return[0,n[1],[0,0,n[2]],n[3],n[4],n[5]]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5][5],e=t[5],a=t[3],u=n[4],f=e[4],i=t[2],c=t[1],v=n[2],o=Vle(0,Lle),A=xMe([0,f!=f||f!=f?f:a,u]);return[0,c,Mge(IMe([0,o,0,i,v]),A),a,u,e]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[5],f=u[5],i=u[3],c=n[4],v=f[4],o=u[1],A=a[2],s=e[4],b=t[3],l=t[2],B=n[2],j=Vle(0,Lle),k=xMe([0,v!=v?v:i!==s?i:b,c]);return[0,o,Mge(IMe([0,j,A,l,B]),k),i,c,f]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[5][5],f=u[5],i=u[3],c=n[4],v=f[4],o=u[1],A=e[4],s=t[3],b=t[2],l=n[2],B=gMe("",a[2]),j=Vle(0,Lle),k=xMe([0,v!=v?v:i!==A?i:s,c]);return[0,o,Mge(IMe([0,j,B,b,l]),k),i,c,f]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[3],f=e[4],i=n[4],c=a[5],v=a[1],o=e[2],A=t[3],s=t[2],b=n[2],l=xMe([0,u,f]),B=Vle([0,MY(o,1)],l),j=xMe([0,u!==f?u:f!=f?f:A,i]);return[0,v,Mge(IMe([0,B,0,s,b]),j),u,i,c]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5],c=i[3],v=f[4],o=u[3],A=n[4],s=i[5],b=i[1],l=f[2],B=a[2],j=e[4],k=t[3],p=t[2],m=n[2],d=xMe([0,c,v]),_=Vle([0,MY(l,1)],d),h=xMe([0,c!==v?c:o!==j?o:k,A]);return[0,b,Mge(IMe([0,_,B,p,m]),h),c,A,s]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[5][5],f=u[5],i=f[5],c=i[3],v=f[4],o=u[3],A=n[4],s=i[5],b=i[1],l=f[2],B=e[4],j=t[3],k=t[2],p=n[2],m=gMe("",a[2]),d=xMe([0,c,v]),_=Vle([0,MY(l,1)],d),h=xMe([0,c!==v?c:o!==B?o:j,A]);return[0,b,Mge(IMe([0,_,m,k,p]),h),c,A,s]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[4],u=e[3],f=n[4],i=e[5],c=e[1],v=t[3],o=t[2],A=n[2],s=Vle([0,0],xMe([0,u,a])),b=xMe([0,u!==a?u:a!=a?a:v,f]);return[0,c,Mge(IMe([0,s,0,o,A]),b),u,f,i]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[4],c=f[3],v=u[3],o=n[4],A=f[5],s=f[1],b=a[2],l=e[4],B=t[3],j=t[2],k=n[2],p=Vle([0,0],xMe([0,c,i])),m=xMe([0,c!==i?c:v!==l?v:B,o]);return[0,s,Mge(IMe([0,p,b,j,k]),m),c,o,A]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[5][5],f=u[5],i=f[4],c=f[3],v=u[3],o=n[4],A=f[5],s=f[1],b=e[4],l=t[3],B=t[2],j=n[2],k=gMe("",a[2]),p=Vle([0,0],xMe([0,c,i])),m=xMe([0,c!==i?c:v!==b?v:l,o]);return[0,s,Mge(IMe([0,p,k,B,j]),m),c,o,A]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[3],f=e[4],i=n[4],c=a[5],v=a[1],o=t[3],A=t[2],s=n[2],b=Vle([0,2],xMe([0,u,f])),l=xMe([0,u!==f?u:f!=f?f:o,i]);return[0,v,Mge(IMe([0,b,0,A,s]),l),u,i,c]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[5],f=u[5],i=f[5],c=i[3],v=f[4],o=u[3],A=n[4],s=i[5],b=i[1],l=a[2],B=e[4],j=t[3],k=t[2],p=n[2],m=Vle([0,2],xMe([0,c,v])),d=xMe([0,c!==v?c:o!==B?o:j,A]);return[0,b,Mge(IMe([0,m,l,k,p]),d),c,A,s]},function(r){var n=r[3],t=n[5][5],e=t[5],a=e[5],u=a[5][5],f=u[5],i=f[5],c=i[3],v=f[4],o=u[3],A=n[4],s=i[5],b=i[1],l=e[4],B=t[3],j=t[2],k=n[2],p=gMe("",a[2]),m=Vle([0,2],xMe([0,c,v])),d=xMe([0,c!==v?c:o!==l?o:B,A]);return[0,b,Mge(IMe([0,m,p,j,k]),d),c,A,s]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=t[2],f=n[4],i=e[5],c=e[1];r:{var v=xMe([0,a,f]);if(u){var o=u[1],A=o[1];if(A){if(!u[2]){var s=[12,A[1],o[2]];break r}}else if(!u[2]){s=[11,o[2]];break r}}s=[6,u]}return[0,c,Mge(s,v),a,f,i]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5],f=t[2],i=t[1],c=n[2],v=xMe([0,e,a]);return[0,i,Mge([0,f,MY(c,0)],v),e,a,u]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2];return[0,i,Mge([3,Vle(0,Lle),c],xMe([0,a,u])),a,u,f]},function(r){var n=r[3],t=n[5],e=t[5],a=e[5],u=a[3],f=n[4],i=a[5],c=a[1],v=t[2];return[0,c,Mge([3,Vle(1,xMe([0,e[3],e[4]])),v],xMe([0,u,f])),u,f,i]},function(r){var n=r[3],t=n[4],e=n[3],a=[0,e,t],u=n[5],f=n[2],i=n[1],c=xMe(a);return[0,i,Mge([2,Vle(0,xMe(a)),f],c),e,t,u]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2];return[0,n[1],Mge([5,u],xMe([0,e,t])),e,t,a]},function(r){var n=r[3],t=n[5],e=t[5];return[0,e[1],t[2],e[3],n[4],e[5]]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[2];return[0,n[1],Pge([0,Vle(u,xMe([0,e,t]))],xMe([0,e,t])),e,t,a]},function(r){var n=r[3],t=n[5][5],e=t[3],a=n[4],u=t[5],f=t[2];return[0,t[1],Pge([1,f,Vle(n[2],xMe([0,n[3],a]))],xMe([0,e,a])),e,a,u]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5];return[0,t[1],Mge([1,n[2]],xMe([0,e,a])),e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[1],c=n[2],v=xMe(u);return[0,i,Mge([8,0,Kge(xMe(u)),c],v),e,a,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=[0,e,a],f=t[5],i=t[1],c=n[2],v=xMe(u);return[0,i,Mge([8,1,Kge(xMe(u)),c],v),e,a,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=n[2],f=t[5],i=t[1],c=Vle(0,xMe([0,e,t[4]])),v=[0,e,a];return[0,i,Mge([2,c,1===c[2]?YY($Me,u):u],xMe(v)),e,a,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=n[2],f=t[5],i=t[1],c=Vle(1,xMe([0,e,t[4]])),v=[0,e,a];return[0,i,Mge([2,c,1===c[2]?YY($Me,u):u],xMe(v)),e,a,f]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=n[2],f=t[5],i=t[1],c=Vle(3,xMe([0,e,t[4]])),v=[0,e,a];return[0,i,Mge([2,c,1===c[2]?YY($Me,u):u],xMe(v)),e,a,f]},function(r){var n=r[3],t=n[5],e=t[5],a=e[3],u=n[4],f=e[5],i=e[1],c=t[2],v=n[2],o=[0,a,u],A=Vle(c,xMe([0,t[3],t[4]])),s=xMe(o);return[0,i,Vle([0,A,MY(v,Mge(YKr,xMe(o)))],s),a,u,f]},function(r){var n=r[3];return[0,n[1],n[2],n[3],n[4],n[5]]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5];return[0,t[1],Mge([4,n[2]],xMe([0,e,a])),e,a,u]},function(r){var n=r[3],t=n[5],e=t[3],a=n[4],u=t[5];return[0,t[1],Mge([13,n[2]],xMe([0,e,a])),e,a,u]},function(r){var n=r[3],t=n[5][5];return[0,t[1],0,t[3],n[4],t[5]]},function(r){var n=r[3],t=n[5],e=t[5];return[0,e[1],t[2],e[3],n[4],e[5]]},function(r){var n=r[3],t=n[4];return[0,r[4],Vle(0,Lle),t,t,n]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5];return[0,n[1],Vle(0,xMe([0,e,t])),e,t,a]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5],u=n[1],f=xMe([0,e,t]);return[0,u,Vle([0,tBe(nBe(_Me[1],f))],f),e,t,a]},function(r){var n=r[3],t=n[4],e=n[3],a=n[5];return[0,n[1],Vle(1,xMe([0,e,t])),e,t,a]}],CMe=[Ul,"Mo_frontend.Parser.MenhirBasics.Error",qH()];function HMe(r){if(!(4<=r&&(r-4|0)>>1|0):a>>>1|0)+t|0)}function LMe(r,n,t,e,a,u,f){var i=dqe(jS,r,n);if(1===i){var c=VMe(aOr,r,n),v=3&c,o=c>>>2|0;return 2<=v?KL(e,f,2===v?1:0,n,t,o):UL(a,f,o)}if(0===i)return PL(u,f);throw kQ([0,YL,FBr],1)}function zMe(r,n){return function(r,n){return VMe(pS,r,n)-1|0}(r,mqe(kS,n))}function SMe(r){var n=r-4|0;return vC(QMe,n)[n+1]}function ZMe(r,n){return n?[0,r]:WMe(r)}function WMe(r){var n=mqe(BS,r[4]);if(0!==n)return JMe(r,n-1|0);if(r[1])return[3,r];var t=r[2][1],e=function(r){return"number"==typeof r?0:r[1]}(t),a=function(r){if("number"!=typeof r)switch(r[0]){case 0:return 21;case 1:return 56;case 2:return 60;case 3:return 83;case 4:return 91;case 5:return 98;case 6:return S_;default:return rM}var n=r;if(61<=n){if(92<=n)switch(n){case 92:return 99;case 93:return x$;case 94:return _q;case 95:return Pl;case 96:return _$;case 97:return Yo;case 98:return Bs;case 99:return ck;case 100:return db;case 101:return QN;case 102:return qT;case 103:return Wr;case 104:return Jt;case 105:return W$;case 106:return Yv;case 107:return pp;case 108:return t$;case 109:return OP;case 110:return tw;case 111:return HP;case 112:return KP;case 113:return Tx;case 114:return UU;case 115:return yy;case 116:return kI;case 117:return Yn;case 118:return oj;case 119:return hh;case 120:return qs;default:return An}switch(n){case 61:return 65;case 62:return 66;case 63:return 67;case 64:return 68;case 65:return 69;case 66:return 70;case 67:return 71;case 68:return 72;case 69:return 73;case 70:return 74;case 71:return 75;case 72:return 76;case 73:return 77;case 74:return 78;case 75:return 79;case 76:return 80;case 77:return 81;case 78:return 82;case 79:return 84;case 80:return 85;case 81:return 86;case 82:return 87;case 83:return 88;case 84:return 89;case 85:return 90;case 86:return 92;case 87:return 93;case 88:return 94;case 89:return 95;case 90:return 96;default:return 97}}if(31<=n)switch(n){case 31:return 33;case 32:return 34;case 33:return 35;case 34:return 36;case 35:return 37;case 36:return 38;case 37:return 39;case 38:return 40;case 39:return 41;case 40:return 42;case 41:return 43;case 42:return 44;case 43:return 45;case 44:return 46;case 45:return 47;case 46:return 48;case 47:return 49;case 48:return 50;case 49:return 51;case 50:return 52;case 51:return 53;case 52:return 54;case 53:return 55;case 54:return 57;case 55:return 58;case 56:return 59;case 57:return 61;case 58:return 62;case 59:return 63;default:return 64}switch(n){case 0:return 1;case 1:return 2;case 2:return 3;case 3:return 4;case 4:return 5;case 5:return 6;case 6:return 7;case 7:return 8;case 8:return 9;case 9:return 10;case 10:return 11;case 11:return 12;case 12:return 13;case 13:return 14;case 14:return 15;case 15:return 16;case 16:return 17;case 17:return 18;case 18:return 19;case 19:return 20;case 20:return 22;case 21:return 23;case 22:return 24;case 23:return 25;case 24:return 26;case 25:return 27;case 26:return 28;case 27:return 29;case 28:return 30;case 29:return 31;default:return 32}}(t);return LMe(r[4],a,e,XMe,JMe,rPe,r)}function XMe(r,n,t,e,a){var u=r[2];return[1,r,[0,r[1],r[2],[0,r[4],e,u[2],u[3],r[3]],a],n]}function JMe(r,n){return n<4?[4,r[3][2]]:[2,r,n]}function YMe(r,n){var t=PL(SMe(n),r),e=zMe(t[1],n);return ZMe([0,r[1],r[2],t,e],0)}function rPe(r){return[3,[0,1,r[2],r[3],r[4]]]}function nPe(r,n){var t=[];return fL(t,[0,r,0,n,n,t]),ZMe([0,0,[0,0,n,n],t,r],1)}function tPe(r){if("number"!=typeof r&&0===r[0]){var n=r[1];return function(r){return WMe([0,0,r,n[3],n[4]])}}return LJ("offer expects InputNeeded")}function ePe(r,n){var t=r?r[1]:EF;if("number"!=typeof n)switch(n[0]){case 1:return ZMe(n[2],n[3]);case 2:return YMe(n[1],n[2]);case 3:var e=n[1];if(e[1])return LMe(e[4],0,0,function(r,n,e,a,u){if(dH(e,0)&&dH(a,0))return XMe(r,nn<=t?0:n,0,a,u);throw kQ([0,YL,CBr],1)},function(r,n){return nn<=t?JMe(r,n):YMe(r,n)},function(r){if(nn<=t)return 0;var n=r[3],e=n[5];return e===n?0:[3,[0,r[1],r[2],e,n[1]]]},e);throw kQ([0,YL,QBr],1)}return LJ("resume expects HandlingError | Shifting | AboutToReduce")}function aPe(r){for(var n=r;;){if("number"!=typeof n)switch(n[0]){case 1:return[0,n[1]];case 2:n=ePe(0,n);continue;case 3:return 0}throw kQ([0,YL,HBr],1)}}function uPe(r,n){return[W,function(t){var e=r[5];return e===r?0:[0,[0,n,r[2],r[3],r[4]],uPe(e,r[1])]}]}function fPe(r){var n=r[3];return n[5]===n?0:[0,[0,r[4],n[2],n[3],n[4]]]}function iPe(r){return 0===mqe(BS,r)?0:1}function cPe(r){var n=r[3],t=n[5];return t===n?0:[0,[0,r[1],r[2],t,n[1]]]}function vPe(r,n){for(var t=r,e=n;;){if(0===t)return[0,e];var a=cPe(e);if(!a)return 0;t=t-1|0,e=a[1]}}function oPe(r){if(An>>0)throw kQ([0,YL,$Pr],1);var n=r;if(66<=n){if(99<=n)switch(n){case 99:return EGr;case 100:return NGr;case 101:return TGr;case 102:return FGr;case 103:return MGr;case 104:return PGr;case 105:return UGr;case 106:return GGr;case 107:return $Gr;case 108:return KGr;case 109:return OGr;case 110:return RGr;case 111:return QGr;case 112:return CGr;case 113:return HGr;case 114:return VGr;case 115:return LGr;case 116:return zGr;case 117:return SGr;case 118:return ZGr;case 119:return WGr;case 120:return XGr;case 121:return JGr;case 122:return YGr;case 123:return r$r;case 124:return n$r;case 125:return t$r;case 126:return e$r;case 127:return a$r;case 128:return u$r;case 129:return f$r;default:return i$r}switch(n){case 66:return XUr;case 67:return JUr;case 68:return YUr;case 69:return rGr;case 70:return nGr;case 71:return tGr;case 72:return eGr;case 73:return aGr;case 74:return uGr;case 75:return fGr;case 76:return iGr;case 77:return cGr;case 78:return vGr;case 79:return oGr;case 80:return AGr;case 81:return sGr;case 82:return bGr;case 83:return lGr;case 84:return BGr;case 85:return jGr;case 86:return kGr;case 87:return pGr;case 88:return mGr;case 89:return dGr;case 90:return _Gr;case 91:return hGr;case 92:return xGr;case 93:return yGr;case 94:return wGr;case 95:return gGr;case 96:return qGr;case 97:return IGr;default:return DGr}}if(33<=n)switch(n){case 33:return pUr;case 34:return mUr;case 35:return dUr;case 36:return _Ur;case 37:return hUr;case 38:return xUr;case 39:return yUr;case 40:return wUr;case 41:return gUr;case 42:return qUr;case 43:return IUr;case 44:return DUr;case 45:return EUr;case 46:return NUr;case 47:return TUr;case 48:return FUr;case 49:return MUr;case 50:return PUr;case 51:return UUr;case 52:return GUr;case 53:return $Ur;case 54:return KUr;case 55:return OUr;case 56:return RUr;case 57:return QUr;case 58:return CUr;case 59:return HUr;case 60:return VUr;case 61:return LUr;case 62:return zUr;case 63:return SUr;case 64:return ZUr;default:return WUr}switch(n){case 0:return KPr;case 1:return OPr;case 2:return RPr;case 3:return QPr;case 4:return CPr;case 5:return HPr;case 6:return VPr;case 7:return LPr;case 8:return zPr;case 9:return SPr;case 10:return ZPr;case 11:return WPr;case 12:return XPr;case 13:return JPr;case 14:return YPr;case 15:return rUr;case 16:return nUr;case 17:return tUr;case 18:return eUr;case 19:return aUr;case 20:return uUr;case 21:return fUr;case 22:return iUr;case 23:return cUr;case 24:return vUr;case 25:return oUr;case 26:return AUr;case 27:return sUr;case 28:return bUr;case 29:return lUr;case 30:return BUr;case 31:return jUr;default:return kUr}}function APe(r){var n=r-4|0;if(_q>>0)throw kQ([0,YL,CFr],1);var t=n;if(51<=t)switch(t){case 51:return RMr;case 52:return QMr;case 53:return CMr;case 54:return HMr;case 55:return VMr;case 56:return LMr;case 57:return zMr;case 58:return SMr;case 59:return ZMr;case 60:return WMr;case 61:return XMr;case 62:return JMr;case 63:return YMr;case 64:return rPr;case 65:return nPr;case 66:return tPr;case 67:return ePr;case 68:return aPr;case 69:return uPr;case 70:return fPr;case 71:return iPr;case 72:return cPr;case 73:return vPr;case 74:return oPr;case 75:return APr;case 76:return sPr;case 77:return bPr;case 78:return lPr;case 79:return BPr;case 80:return jPr;case 81:return kPr;case 82:return pPr;case 83:return mPr;case 84:return dPr;case 85:return _Pr;case 86:return hPr;case 87:return xPr;case 88:return yPr;case 89:return wPr;case 90:return gPr;case 91:return qPr;case 92:return IPr;case 93:return DPr;case 94:return EPr;case 95:return NPr;case 96:return TPr;case 97:return FPr;case 98:return MPr;case 99:return PPr;case 100:return UPr;default:return GPr}switch(t){case 0:return HFr;case 1:return VFr;case 2:return LFr;case 3:return zFr;case 4:return SFr;case 5:return ZFr;case 6:return WFr;case 7:return XFr;case 8:return JFr;case 9:return YFr;case 10:return rMr;case 11:return nMr;case 12:return tMr;case 13:return eMr;case 14:return aMr;case 15:return uMr;case 16:return fMr;case 17:return iMr;case 18:return cMr;case 19:return vMr;case 20:return oMr;case 21:return AMr;case 22:return sMr;case 23:return bMr;case 24:return lMr;case 25:return BMr;case 26:return jMr;case 27:return kMr;case 28:return pMr;case 29:return mMr;case 30:return dMr;case 31:return _Mr;case 32:return hMr;case 33:return xMr;case 34:return yMr;case 35:return wMr;case 36:return gMr;case 37:return qMr;case 38:return IMr;case 39:return DMr;case 40:return EMr;case 41:return NMr;case 42:return TMr;case 43:return FMr;case 44:return MMr;case 45:return PMr;case 46:return UMr;case 47:return GMr;case 48:return $Mr;case 49:return KMr;default:return OMr}}function sPe(r,n){var t=r[2],e=r[1],a=mqe(t,n+1|0);return _qe(function(r){return mqe(e,r)},mqe(t,n),a)}function bPe(r){if(0>=r)throw kQ([0,YL,$Br],1);var n=r>>>1|0;return 1&r?APe(n):oPe(n-1|0)}function lPe(r){var n=4+r|0;if(dH(APe(n),[0,[1,r]]))return n;throw kQ([0,YL,GBr],1)}function BPe(r){if(dH(oPe(r),[0,[0,r]]))return r;throw kQ([0,YL,UBr],1)}function jPe(r,n){var t=BPe(n);return BPe(r)-t|0}function kPe(r,n){var t=lPe(n);return lPe(r)-t|0}function pPe(r){return[0,r>>>10|0,r%ts|0]}function mPe(r){if(0!==r&&1!==r)throw kQ([0,YL,PBr],1);return 1===r?1:0}function dPe(r,n){var t=BPe(n);return mPe(dqe(cOr,lPe(r),t))}function _Pe(r,n){return LJ(tS)}function hPe(r){return LJ(tS)}function xPe(r){return nPe(WI,r)}function yPe(r){return nPe(lN,r)}var wPe=[0,tPe,ePe,function(r,n,t){return[0,PL(r,n),n[11],n[12]]},function(r,n,t){for(var e=r,a=t;;){var u=e?e[1]:EF;if("number"==typeof a)throw kQ(CMe,1);switch(a[0]){case 0:var f=PL(n,0);e=[0,u],a=tPe(a)(f);break;case 4:return a[1];default:e=[0,u],a=ePe([0,u],a)}}},function(r,n,t,e){for(var a=e;;){if("number"!=typeof a)switch(a[0]){case 0:var u=PL(t,0);a=tPe(a)(u);continue;case 4:return PL(r,a[1]);case 3:break;default:a=ePe(0,a);continue}return PL(n,a)}},function(r,n,t,e){if("number"==typeof e||0!==e[0])a=0;else var a=1;if(!a)throw kQ([0,YL,LBr],1);for(var u=[0,e,e];;){var f=u[2],i=u[1];if("number"!=typeof f)switch(f[0]){case 0:var c=PL(t,0);u=[0,f,tPe(f)(c)];continue;case 4:return PL(r,f[1]);case 3:break;default:u=[0,i,ePe(0,f)];continue}return UL(n,i,f)}},aPe,function(r,n,t){return aPe(tPe(r)([0,n,t,t]))?1:0},function(r){return r},function(r){return HMe(r),r},function(r){return HMe(r),r},function(r){return uPe(r[3],r[4])},fPe,vPe,function(r,n){var t=vPe(r,n);return t?fPe(t[1]):0},function(r){return r[4]},function(r,n){var t=r[3]===n[3]?1:0;return t?r[4]===n[4]?1:0:t},function(r){var n=r[2];return[0,n[2],n[3]]},function(r){return iPe(r[4])},iPe,cPe,function(r,n){if(!function(r,n){var t=mqe(BS,r);if(0!==t)return n===(t-1|0)?1:0;for(var e=0,a=0,u=jS[1];;){if(a===u)return e;var f=e||LMe(r,a,0,function(r,n,t,e,a){return 0},function(r,t){return n===t?1:0},function(r){return 0},0);e=f,a=a+1|0}}(n[4],r))return LJ("force_reduction: this reduction is not permitted in this state");if(r<4)throw kQ([0,YL,VBr],1);var t=PL(SMe(r),n),e=zMe(t[1],r);return[0,n[1],n[2],t,e]},function(r){return[0,r]},jPe,kPe,function(r,n){var t=r[1];if(0===t[0]){var e=n[1],a=t[1];return 0===e[0]?jPe(a,e[1]):-1}var u=n[1],f=t[1];return 0===u[0]?1:kPe(f,u[1])},function(r,n){return r-n|0},function(r,n){var t=r[1]-n[1]|0,e=n[2],a=r[2];return 0===t?a-e|0:t},function(r){return bPe(mqe(uOr,mqe(mS,r)))[1]},function(r){return YY(pPe,sPe(iOr,mqe(mS,r)))},function(r){return APe(mqe(kS,r))},function(r){return YY(bPe,sPe(fOr,r))},function(r){return mPe(pqe("\b\0ÿÿð@?À\0\0\0@",lPe(r)))},dPe,function(r,n){var t=r[1];return 0===t[0]?0===jPe(n,t[1])?1:0:dPe(t[1],n)},function(r,n){for(var t=n,e=0,a=jS[1];;){if(e===a)return t;t=UL(r,oPe(e),t),e=e+1|0}},function(r,n){for(var t=n,e=0,a=jS[1];;){if(e===a)return t;t=0===e?t:UL(r,oPe(e),t),e=e+1|0}},function(r,n,t,e,a){if(0===r[0]){var u=BPe(r[1]),f=a[4];return LMe(f,u,t,function(r,t,a,u,i){return[0,r[1],r[2],[0,f,u,n,e,r[3]],i]},_Pe,hPe,a)}var i=lPe(r[1]),c=a[4],v=function(r,n){var t=VMe(pS,r,n);if(0<=t)return 0===t?0:[0,t-1|0];throw kQ([0,YL,TBr],1)}(c,i);return v?[0,a[1],a[2],[0,c,t,n,e,a[3]],v[1]]:LJ(tS)}];function gPe(r){return"number"!=typeof r&&8===r[0]?1:0}function qPe(r,n){var t=mMe(r[11]);throw kQ([0,pMe,[0,t,mMe(r[12])],n],1)}function IPe(r,n,t){return n[11]=r,qPe(n,t)}function DPe(r,n){for(var t=d2(HH(n)),e=[0,1];;){if(e[1]>=(HH(n)-1|0))return _2(t);10===VV(n,e[1])&&w1(r);r:if(hh<=VV(n,e[1])){var a=ms<=VV(n,e[1])?Sj<=VV(n,e[1])?3:2:1;e[1]=e[1]+a|0;var u=woe([0,zY(xoe(K0(n,e[1]-a|0,1+a|0))),0])}else if(92===VV(n,e[1])){e[1]++;var f=VV(n,e[1]);if(40<=f){if(Wr<=f){if(OP>f)switch(f+-110|0){case 0:u=woe(MQr);break r;case 4:u=woe(PQr);break r;case 6:u=woe(UQr);break r;case 7:var i=e[1]+2|0;e[1]=S0(n,i,kI);try{var c=tV(qM+K0(n,i,e[1]-i|0));if(!(0<=c&&Xn>c||He<=c&&Gs>c))throw kQ([0,LL,""],1);var v=c}catch(c){var o=iL(c);if(o[1]!==LL)throw kQ(o,0);v=qPe(r,GQr)}u=woe([0,v,0]);break r}}else if(92===f){u=woe($Qr);break r}}else{if(34===f){u=woe(OQr);break r}if(39<=f){u=woe(KQr);break r}}e[1]++;var A=$0(1,VV(n,e[1]));let t=RY(tV(qM+$0(1,f)+A));u=e1(function(r){return[0,t,qY]})}else u=woe([0,VV(n,e[1]),0]);e[1]++,g2(t,u,0,HH(u))}}function EPe(r,n,t){for(;;){for(var e=jx;;){var a=_1(dS,e,t);if(5>=a>>>0)break;PL(t[1],t),e=a}switch(a){case 0:return q2(r,y1(t,t[5],t[5]+2|0));case 1:q2(r,y1(t,t[5],t[5]+2|0)),EPe(r,t[11],t);break;case 2:var u=rC(t[2],t[5]);w1(t),w2(r,u);break;case 3:return IPe(n,t,TQr);case 4:q2(r,y1(t,t[5],t[6]));break;default:return qPe(t,FQr)}}}var NPe=OV([0,0,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,2,1,1,1,1,1,1,1,1,2,2,3,4,1,1,2,1,2,3,4,5,1,1,2,3,1,2,1,1,1,2,3,1,2,3,4,5,6,1,2,1,2,3,4,1,2,1,1,2,3,4,5,6,1,7,8,1,1,1,2,1,2,1,1,1,2,1,1,1,3,1,2,3,1,1,2,3,2,3,2,3,2,3,1,2,2,9,4,5,6,7,8,3,4,5,3,4,2,3,5,6,7,2,3,4,5,6,7,3,4,1,2,3,4,5,6,7,8,3,4,5,6,7,2,3,2,3,4,1,2,3,2,3,2,3,2,4,2,3,2,3,1,2,1,1,2,3,2,3,3,2,3,2,3,6,7,8,3,4,5,6,7,2,3,4,3,2,3,5,6,7,8,9,4,5,6,7,8,3,4,5,1,2,3,1,2,3,1,2,1,3,2,3,2,2,2,2,3,1,1,2,1,3,1,1,2,1,1,1,2,3,2,3,4,2,3,1,2,3,2,3,2,2,3,1,2,3,2,1,3,4,1,2,3,1,2,3,2,3,1,0,1,2,1,1,1,1,2,1,1,2,1,1,2,3,4,3,4,1,2,3,4,5,6,7,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,4,1,1,1,1,1,1,2,3,1,2,1,2,1,1,1,2,1,2,1,3,4,5,6,1,2,3,4,5,2,3,4,1,2,3,4,5,6,3,4,5,2,1,7,8,1,1,1,1,1,1,1,1,2,1,1,2,3,4,5,6,7,1,2,3,2,1,8,3,4,5,6,7,3,4,5,6,7,3,4,5,1,1,2,3,4,5,6,3,4,5,6,3,4,5,1,2,3,4,5,2,3,4,5,2,3,4,1,2,3,4,5,2,3,4,5,2,3,4,1,2,3,1,2,1,1,1,1,2,3,4,5,1,2,3,2,3,1,1,2,1,2,3,1,2,3,1,1,2,1,1,1,2,3,1,1,1,1,2,2,1,1,2,1,2,3,3,4,2,3,2,1,2,1,2,1,2,1,1,1,2,1,2,1,2,1,1,2,3,1,1,2,3,4,1,2,3,2,1,1,1,2,1,1,2,1,2,3,4,5,6,7,8,9,4,5,6,7,8,4,5,6,7,8,4,5,6,7,1,4,5,6,7,4,5,6,7,8,1,2,3,4,1,2,3,1,1,1,2,3,1,1,2,1,1,2,3,1,2,1,2,3,4,1,1,2,3,2,1,1,2,1,1,2,1,2,3,1,1,1,1,1,1,1,2,1,2,3,4,5,2,3,4,5,2,2,3,4,1,1,1,2,1,1,1,1,1,2,1,2,1,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,2,1,1,1,1,1,1,2,1,2,1,1,1,1,2,3,2,3,1,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,3,4,2,2,3,2,2,1,1,2,1,2,3,1,2,3,1,1,1,3,2,2,2,2,2,2,2,2,5,6,7,3,4,5,2,4,2,3,4,1,2,3,2,3,2,3,4,2,5,6,7,2,4,2,3,3,4,5,6,2,3,1,2,3,4,4,5,1,2,3,4,5,6,7,8,4,5,6,7,8,4,5,6,7,4,5,6,7,8,1,2,3,4,5,6,3,4,5,6,7,1,2,3,6,7,1,6,6,7,8,1,2,3,2,3,1,2,2,3,2,2,3,3,4,5,3,4,2,2,2,2,3,2,4,4,3,4,2,3,2,2,2,3,4,3,4,5,6,2,3,4,5,6,7,6,7,8,1,2,3,4,5,6,2,3,1,1,1,1,2,3,2,3,6,2,3,2,3,1,2,3,2,3,9,4,5,6,7,3,4,2,3,4,1,2,3,3,4,5,3,3,4,5,5,1,2,3,2,3,4,5,1,2,3,2,3,2,3,4,5,1,2,3,2,2,2,3,4,5,2,2,2,2,2,2,2,3,4,3,4,5,5,2,3,3,4,2,2,3,4,1,0,1,2,3,4,1,2,3,1,2,3,1,0,1,1,2,3,4,5,6,7,3,4,1,2,3,2,3,2,3,1,4,5,6,7,1,2,3,4,5,2,3,4,1,2,3,2,3,8,9,1,2,3,1,2,3,2,3,3,4,5,1,2,3,4,5,2,3,4,1,2,3,4,5,2,3,4,6,7,8,9,10,11,12,1,2,3,2,3,4,5,6,1]),TPe=[0,H3r,[0,C3r,_S]],FPe=[0,[2,yS],V3r],MPe=[0,[2,FPe],L3r],PPe=[0,[1,[0,83]],[0,z3r,gS]],UPe=[0,[2,PPe],S3r],GPe=[0,[2,UPe],Z3r],$Pe=[0,[2,GPe],W3r],KPe=[0,[2,$Pe],X3r],OPe=[0,[2,$Pe],J3r],RPe=[0,Y3r,OPe],QPe=[0,[2,UPe],RPe],CPe=[0,[2,$Pe],r6r],HPe=[0,n6r,CPe],VPe=[0,[2,UPe],HPe],LPe=[0,[1,[0,86]],VPe],zPe=[0,[2,$Pe],t6r],SPe=[0,e6r,zPe],ZPe=[0,[2,UPe],SPe],WPe=[0,[1,[0,86]],ZPe],XPe=[0,[2,$Pe],a6r],JPe=[0,u6r,XPe],YPe=[0,[2,$Pe],f6r],rUe=[0,i6r,YPe],nUe=[0,[2,UPe],rUe],tUe=[0,[1,[0,86]],nUe],eUe=[0,[2,$Pe],c6r],aUe=[0,v6r,eUe],uUe=[0,[2,UPe],aUe],fUe=[0,[1,[0,86]],uUe],iUe=[0,o6r,DS],cUe=[0,[2,KPe],A6r],vUe=[0,s6r,cUe],oUe=[0,[1,[0,74]],iUe],AUe=[0,[2,KPe],b6r],sUe=[0,[1,[0,95]],AUe],bUe=[0,[2,KPe],l6r],lUe=[0,[1,[0,95]],bUe],BUe=[0,[1,[0,86]],lUe],jUe=[0,[2,$Pe],B6r],kUe=[0,j6r,jUe],pUe=[0,[2,UPe],kUe],mUe=[0,[1,[0,86]],pUe],dUe=[0,[2,$Pe],k6r],_Ue=[0,p6r,dUe],hUe=[0,[2,UPe],_Ue],xUe=[0,[1,[0,86]],hUe],yUe=[0,[2,$Pe],m6r],wUe=[0,d6r,yUe],gUe=[0,[2,UPe],wUe],qUe=[0,[2,$Pe],_6r],IUe=[0,h6r,qUe],DUe=[0,[2,UPe],IUe],EUe=[0,[1,[0,86]],DUe],NUe=[0,[2,$Pe],x6r],TUe=[0,y6r,NUe],FUe=[0,[2,UPe],TUe],MUe=[0,[1,[0,86]],FUe],PUe=[0,[2,KPe],w6r],UUe=[0,[2,KPe],g6r],GUe=[0,q6r,UUe],$Ue=[0,[2,PPe],GUe],KUe=[0,[1,[0,86]],$Ue],OUe=[0,[2,KPe],I6r],RUe=[0,D6r,OUe],QUe=[0,[2,PPe],RUe],CUe=[0,[1,[0,86]],QUe],HUe=[0,[2,KPe],E6r],VUe=[0,[2,KPe],N6r],LUe=[0,[2,MPe],T6r],zUe=[0,[2,LUe],F6r],SUe=[0,M6r,CS],ZUe=[0,P6r,SUe],WUe=[0,[2,HS],U6r],XUe=[0,G6r,VS],JUe=[0,[2,LS],$6r],YUe=[0,[1,[0,95]],SS],rGe=[0,[0,5],YUe],nGe=[0,[2,KPe],[0,[0,20],0]],tGe=[0,[1,[0,95]],nGe],eGe=[0,[2,KPe],[0,[0,21],0]],aGe=[0,[1,[0,95]],eGe],uGe=[0,[1,[0,86]],aGe],fGe=[0,[2,LS],O6r],iGe=[0,[1,[0,93]],fGe],cGe=[0,R6r,XS],vGe=[0,[1,[0,74]],cGe],oGe=[0,[2,LS],[0,[0,8],0]],AGe=[0,[2,LS],Q6r],sGe=[0,[2,LS],C6r],bGe=[0,[1,[0,93]],sGe],lGe=[0,H6r,JS],BGe=[0,[2,yS],V6r],jGe=[0,[1,[0,95]],YS],kGe=[0,[2,jGe],[0,[0,23],0]],pGe=[0,[0,5],kGe],mGe=[0,[2,BGe],pGe],dGe=[0,[1,[0,88]],mGe],_Ge=[0,L6r,dGe],hGe=[0,z6r,rZ],xGe=[0,[1,[0,74]],hGe],yGe=[0,[2,xGe],[0,[0,12],0]],wGe=[0,[2,yGe],S6r],gGe=[0,[0,5],wGe],qGe=[0,[2,BGe],gGe],IGe=[0,Z6r,qGe],DGe=[0,[2,yS],W6r],EGe=[0,[1,[0,86]],DGe],NGe=[0,[2,yS],X6r],TGe=[0,[1,[0,86]],NGe],FGe=[0,[2,yS],J6r],MGe=[0,[1,[0,86]],FGe],PGe=[0,[2,yS],Y6r],UGe=[0,[1,[0,86]],PGe],GGe=[0,[2,jGe],[0,[0,24],0]],$Ge=[0,[0,5],GGe],KGe=[0,[2,BGe],$Ge],OGe=[0,[1,[0,88]],KGe],RGe=[0,[2,yGe],r4r],QGe=[0,[0,5],RGe],CGe=[0,[2,BGe],QGe],HGe=[0,n4r,CGe],VGe=[0,[2,yGe],t4r],LGe=[0,[0,5],VGe],zGe=[0,[2,BGe],LGe],SGe=[0,[2,yGe],e4r],ZGe=[0,[0,5],SGe],WGe=[0,[2,BGe],ZGe],XGe=[0,a4r,tZ],JGe=[0,[2,xGe],u4r],YGe=[0,f4r,JGe],r$e=[0,[0,5],YGe],n$e=[0,[2,xGe],i4r],t$e=[0,c4r,n$e],e$e=[0,[2,yGe],v4r],a$e=[0,[0,5],e$e],u$e=[0,[2,xGe],o4r],f$e=[0,A4r,u$e],i$e=[0,[2,xGe],s4r],c$e=[0,b4r,i$e],v$e=[0,[2,yGe],l4r],o$e=[0,[0,5],v$e],A$e=[0,[2,xGe],B4r],s$e=[0,j4r,A$e],b$e=[0,[2,xGe],k4r],l$e=[0,p4r,b$e],B$e=[0,[2,yGe],m4r],j$e=[0,[0,5],B$e],k$e=[0,[2,xGe],[0,[0,28],0]],p$e=[0,d4r,eZ],m$e=[0,[1,[0,74]],p$e],d$e=[0,[2,LS],h4r],_$e=[0,[0,5],d$e],h$e=[0,[2,xS],x4r],x$e=[0,[2,LS],w4r],y$e=[0,[2,jGe],[0,[0,22],0]],w$e=[0,[0,5],y$e],g$e=[0,[2,LS],g4r],q$e=[0,[1,[0,34]],g$e],I$e=[0,[1,[1,90]],q$e],D$e=[0,[1,[0,78]],I$e],E$e=[0,[2,zUe],D$e],N$e=[0,[1,[0,74]],XGe],T$e=[0,[2,jGe],[0,[0,25],0]],F$e=[0,[0,5],T$e],M$e=[0,[2,BGe],F$e],P$e=[0,[1,[0,88]],M$e],U$e=[0,q4r,P$e],G$e=[0,[2,yGe],I4r],$$e=[0,[0,5],G$e],K$e=[0,[2,BGe],$$e],O$e=[0,D4r,K$e],R$e=[0,[2,yGe],E4r],Q$e=[0,[0,5],R$e],C$e=[0,[2,BGe],Q$e],H$e=[0,[2,yGe],N4r],V$e=[0,[0,5],H$e],L$e=[0,[2,BGe],V$e],z$e=[0,[2,yGe],T4r],S$e=[0,[0,5],z$e],Z$e=[0,[2,BGe],S$e],W$e=[0,[2,yGe],F4r],X$e=[0,[0,5],W$e],J$e=[0,[2,BGe],X$e],Y$e=[0,[2,yGe],M4r],rKe=[0,[0,5],Y$e],nKe=[0,[2,LS],P4r],tKe=[0,[0,5],nKe],eKe=[0,[2,LS],U4r],aKe=[0,[2,LS],G4r],uKe=[0,[1,[0,34]],aKe],fKe=[0,[1,[1,90]],uKe],iKe=[0,[1,[0,78]],fKe],cKe=[0,[2,zUe],iKe],vKe=[0,[2,xGe],$4r],oKe=[0,K4r,vKe],AKe=[0,[2,yGe],O4r],sKe=[0,[0,5],AKe],bKe=[0,[2,xGe],R4r],lKe=[0,Q4r,bKe],BKe=[0,[2,WUe],[0,[0,71],0]],jKe=[0,[2,LS],V4r],kKe=[0,L4r,jKe],pKe=[0,[1,[0,34]],kKe],mKe=[0,z4r,pKe],dKe=[0,[2,yGe],S4r],_Ke=[0,[0,5],dKe],hKe=[0,[2,BGe],_Ke],xKe=[0,Z4r,hKe],yKe=[0,W4r,xKe],wKe=[0,[2,yGe],X4r],gKe=[0,[0,5],wKe],qKe=[0,[2,BGe],gKe],IKe=[0,[2,yGe],J4r],DKe=[0,[0,5],IKe],EKe=[0,[2,BGe],DKe],NKe=[0,[2,yGe],Y4r],TKe=[0,[0,5],NKe],FKe=[0,[2,BGe],TKe],MKe=[0,[2,yGe],r5r],PKe=[0,[0,5],MKe],UKe=[0,[2,BGe],PKe],GKe=[0,n5r,UKe],$Ke=[0,[2,yGe],t5r],KKe=[0,[0,5],$Ke],OKe=[0,[2,BGe],KKe],RKe=[0,e5r,Z$e],QKe=[0,a5r,RKe],CKe=[0,[2,LS],i5r],HKe=[0,c5r,CKe],VKe=[0,[1,[0,34]],HKe],LKe=[0,v5r,VKe],zKe=[0,[2,BZ],o5r],SKe=[0,[2,LS],[0,[0,9],0]],ZKe=[0,[1,[0,83]],[0,[2,mZ],[0,A5r,xZ]]],WKe=[0,[2,HS],[0,b5r,zKe]],XKe=[0,[1,[0,34]],WKe],JKe=[0,l5r,XKe],YKe=[0,B5r,yZ],rOe=[0,j5r,YKe],nOe=[0,k5r,qZ],tOe=[0,[1,[0,74]],nOe],eOe=[0,p5r,tOe],aOe=[0,m5r,eOe],uOe=[0,[2,KPe],d5r],fOe=[0,[1,[0,95]],uOe],iOe=[0,[2,KPe],_5r],cOe=[0,[1,[0,95]],iOe],vOe=[0,[1,[0,86]],cOe],oOe=[0,h5r,DZ],AOe=[0,[1,[0,74]],oOe],sOe=[0,x5r,AOe],bOe=[0,[1,[0,40]],sOe],lOe=[0,[2,KPe],y5r],BOe=[0,w5r,lOe],jOe=[0,[2,KPe],g5r],kOe=[0,q5r,jOe],pOe=[0,[2,KPe],I5r],mOe=[0,[1,[0,40]],TZ],dOe=[0,D5r,mOe],_Oe=[0,[1,[0,74]],dOe],hOe=[0,E5r,_Oe],xOe=[0,[1,[0,40]],hOe],yOe=[0,N5r,xOe],wOe=[0,[2,KPe],T5r],gOe=[0,F5r,wOe],qOe=[0,[2,KPe],M5r],IOe=[0,P5r,qOe],DOe=[0,[2,KPe],U5r],EOe=[0,G5r,DOe],NOe=[0,[2,KPe],$5r],TOe=[0,K5r,NOe],FOe=[0,K6r,zS],MOe=[0,[2,zUe],[0,[0,19],0]],POe=[0,[2,h$e],y4r],UOe=[0,[2,HS],s5r],GOe=Ln+MA,$Oe="let x : Int = 0",KOe=hE+$Oe,OOe="case x {}",ROe=ax+zy+GOe,QOe=O0(V7r,[0,H7r,[0,sX,[0,GOe,C7r]]]),COe=O0(S7r,[0,z7r,[0,"X",[0,L7r,[0,bX,0]]]]),HOe=O0(W7r,[0,Z7r,[0,sX,[0,GOe,0]]]),VOe=O0(J7r,[0,X7r,[0,sX,[0,GOe,0]]]),LOe=py+I_+MA;function zOe(r,n){return[0,"seplist("+r[1]+CO+n[1]+Jq,r[2]]}function SOe(r){var n=r[1];if(0!==n[0]){var t=n[1];if(51<=t)switch(t){case 51:return[0,"",rX];case 52:return[0,"",rX];case 53:return[0,"",rX];case 54:return[0,"?",BX];case 55:return d7r;case 56:return _7r;case 57:return[0,"?",AX];case 58:return[0,"?",AX];case 59:return h7r;case 60:return[0,"","object x = {}"];case 61:return x7r;case 62:return[0,"",QOe];case 63:return y7r;case 64:return[0,w7r,LOe];case 65:return g7r;case 66:return[0,"(, )*",", X"];case 67:return[0,"(, )*",Zp+MA];case 68:return[0,"",om+MA+f_];case 69:return[0,"",lX];case 70:return[0,q7r,lX];case 71:return I7r;case 72:return D7r;case 73:return[0,"",AX];case 74:return[0,"",AX];case 75:return[0,"",AX];case 76:return[0,"",AX];case 77:return E7r;case 78:return[0,"",QOe];case 79:return[0,N7r,AX];case 80:return[0,"",AX];case 81:return[0,T7r,AX];case 82:return[0,"",AX];case 83:return[0,"",AX];case 84:return[0,"",AX];case 85:return[0,"",AX];case 86:return[0,F7r,ROe];case 87:return[0,"",AX];case 88:return[0,"",AX];case 89:return[0,M7r,AX];case 90:return[0,P7r,AX];case 91:return[0,"",AX];case 92:return U7r;case 93:return[0,"",$Oe];case 94:return[0,G7r,KOe];case 95:return[0,$7r,$Oe];case 96:return K7r;case 97:return[0,"","catch x {}"];case 98:return[0,O7r,OOe];case 99:return R7r;case 100:return Q7r;default:return[0,"",GOe]}switch(t){case 0:return H5r;case 1:return[0,"","{ #t }"];case 2:return[0,"",bX];case 3:return[0,V5r,jX];case 4:return[0,"",bX];case 5:return L5r;case 6:return z5r;case 7:return[0,"",bX];case 8:return[0,"",bX];case 9:return[0,S5r,bX];case 10:return[0,"",COe];case 11:return[0,Z5r,COe];case 12:return[0,W5r,"X"];case 13:return[0,"",BX];case 14:return[0,X5r,bX];case 15:return[0,"",rX];case 16:return[0,"",HOe];case 17:return J5r;case 18:return[0,"seplist1(,)",jX];case 19:return[0,"seplist1(,)",ROe];case 20:return zOe([0,Y5r,jX],kX);case 21:return zOe([0,r7r,bX],mX);case 22:return zOe([0,n7r,COe],kX);case 23:return zOe([0,t7r,COe],kX);case 24:return zOe([0,e7r,"X"],mX);case 25:return zOe([0,a7r,bX],mX);case 26:return zOe([0,u7r,HOe],kX);case 27:return zOe([0,f7r,VOe],kX);case 28:return zOe([0,",and)",AX];case 41:return[0,"",VOe];case 42:return p7r;case 43:return[0,"",sX];case 44:return[0,"",sX];case 45:return[0,"",sX];case 46:return[0,"",sX];case 47:return[0,"","x x"];case 48:return[0,m7r,sX];case 49:return[0,"",sX];default:return[0,"",rX]}}var e=n[1];if(66<=e){if(99<=e)switch(e){case 99:return[0,FW,FW];case 100:return[0,"do","do"];case 101:case 126:return[0,oX,vX];case 102:case 113:case 127:return[0,fX,uX];case 103:return[0,MW,MW];case 104:return[0,PW,PW];case 105:return[0,UW,UW];case 106:return[0,GW,GW];case 107:return[0,$W,$W];case 108:return[0,KW,KW];case 109:return[0,OW,OW];case 110:return[0,RW,RW];case 111:return C5r;case 112:return[0,QW,QW];case 114:return[0,CW,CW];case 115:return[0,HW,HW];case 116:return[0,VW,VW];case 117:return[0,LW,LW];case 118:return[0,zW,zW];case 119:return[0,SW,SW];case 120:return[0,ZW,ZW];case 121:return[0,WW,WW];case 122:return[0,XW,XW];case 123:return[0,":=",":="];case 124:return[0,JW,JW];case 125:return[0,"->","->"];case 128:return[0,"and","and"];case 129:return[0,aX,eX];default:return[0,YW,YW]}switch(e){case 66:return[0,AW,AW];case 67:return[0,tX,nX];case 68:case 73:case 85:case 87:case 94:return[0,cX,iX];case 69:return[0,sW,sW];case 70:return[0,bW,bW];case 71:return[0,lW,lW];case 72:return[0,BW,BW];case 74:return[0,jW,jW];case 75:return[0,"[","["];case 76:return[0,kW,kW];case 77:return[0,pW,pW];case 78:return[0,mW,mW];case 79:return[0,dW,dW];case 80:return[0,_W,_W];case 81:return[0,hW,hW];case 82:return[0,"if","if"];case 83:return[0,xW,xW];case 84:return[0,oX,vX];case 86:return[0,yW,yW];case 88:return[0,wW,wW];case 89:return[0,gW,gW];case 90:return[0,"for","for"];case 91:return[0,qW,qW];case 92:return[0,IW,IW];case 93:return[0,DW,DW];case 95:return[0,EW,EW];case 96:return[0,NW,NW];case 97:return[0,TW,TW];default:return Q5r}}if(33<=e)switch(e){case 33:return[0,XZ,XZ];case 34:return[0,JZ,JZ];case 35:case 37:case 47:case 52:case 59:case 61:case 64:return[0,oX,vX];case 36:case 38:case 48:case 53:case 62:default:return[0,fX,uX];case 39:return[0,YZ,YZ];case 40:return[0,rW,rW];case 41:return[0,"]","]"];case 42:return[0,nW,nW];case 43:return[0,tW,tW];case 44:return[0,eW,eW];case 45:return[0,aW,aW];case 46:return[0,uW,uW];case 49:return[0,tX,nX];case 50:return[0,"|>","|>"];case 51:return[0,fW,fW];case 54:return[0,"or","or"];case 55:return[0,iW,iW];case 56:return[0,cW,cW];case 57:return[0,vW,vW];case 58:return[0,"not","not"];case 60:return R5r;case 63:return[0,oW,oW]}switch(e){case 0:return[0,MZ,MZ];case 1:case 24:return[0,aX,eX];case 2:return[0,tX,nX];case 3:case 5:case 7:case 9:case 27:case 28:case 29:return[0,oX,vX];case 4:case 6:case 8:case 10:case 30:return[0,fX,uX];case 11:return[0,PZ,PZ];case 12:return[0,UZ,UZ];case 13:return[0,GZ,GZ];case 14:return[0,$Z,$Z];case 15:return[0,KZ,KZ];case 16:return[0,OZ,OZ];case 17:return[0,RZ,RZ];case 18:return[0,QZ,QZ];case 19:return[0,CZ,CZ];case 20:return[0,HZ,HZ];case 21:return O5r;case 22:return[0,VZ,VZ];case 23:return[0,LZ,LZ];case 25:return[0,zZ,zZ];case 26:return[0,SZ,SZ];case 31:return[0,ZZ,ZZ];default:return[0,WZ,WZ]}}function ZOe(r){return SOe(r)[1]}var WOe=[0,0];function XOe(r){return WOe[1]=[0,r,WOe[1]],0}function JOe(r){return r?0===r[1][0]?0:1:0}function YOe(r){return SOe(r)[2]}function rRe(r){var n=r;if(66<=n){if(99<=n)switch(n){case 99:return 92;case 100:return 93;case 101:return 94;case 102:return 95;case 103:return 96;case 104:return 97;case 105:return 98;case 106:return 99;case 107:return x$;case 108:return _q;case 109:return Pl;case 110:return _$;case 111:return f8r;case 112:return Yo;case 113:return Bs;case 114:return ck;case 115:return db;case 116:return i8r;case 117:return QN;case 118:return qT;case 119:return Wr;case 120:return S_;case 121:return Jt;case 122:return W$;case 123:return Yv;case 124:return pp;case 125:return rM;case 126:return t$;case 127:return OP;case 128:return tw;case 129:return HP;default:return KP}switch(n){case 66:return 62;case 67:return 63;case 68:return 64;case 69:return 65;case 70:return 66;case 71:return 67;case 72:return 68;case 73:return 69;case 74:return 70;case 75:return 71;case 76:return 72;case 77:return 73;case 78:return 74;case 79:return 75;case 80:return 76;case 81:return 77;case 82:return 78;case 83:return e8r;case 84:return 79;case 85:return 80;case 86:return 81;case 87:return 82;case 88:return 83;case 89:return 84;case 90:return 85;case 91:return a8r;case 92:return 86;case 93:return 87;case 94:return 88;case 95:return 89;case 96:return 90;case 97:return 91;default:return u8r}}if(33<=n)switch(n){case 33:return 31;case 34:return 32;case 35:return 33;case 36:return 34;case 37:return 35;case 38:return 36;case 39:return 37;case 40:return 38;case 41:return 39;case 42:return 40;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 44;case 47:return 45;case 48:return 46;case 49:return 47;case 50:return 48;case 51:return 49;case 52:return 50;case 53:return 51;case 54:return 52;case 55:return 53;case 56:return n8r;case 57:return 54;case 58:return 55;case 59:return 56;case 60:return t8r;case 61:return 57;case 62:return 58;case 63:return 59;case 64:return 60;default:return 61}switch(n){case 0:throw kQ([0,YL,Y7r],1);case 1:return 0;case 2:return 1;case 3:return 2;case 4:return 3;case 5:return 4;case 6:return 5;case 7:return 6;case 8:return 7;case 9:return 8;case 10:return 9;case 11:return 10;case 12:return 11;case 13:return 12;case 14:return 13;case 15:return 14;case 16:return 15;case 17:return 16;case 18:return 17;case 19:return 18;case 20:return 19;case 21:return r8r;case 22:return 20;case 23:return 21;case 24:return 22;case 25:return 23;case 26:return 24;case 27:return 25;case 28:return 26;case 29:return 27;case 30:return 28;case 31:return 29;default:return 30}}var nRe=hqe(wPe,[0,XOe,function(r){return XOe(ZOe(r))},0]);function tRe(r){for(var n=r[1],t=n[2],e=PL(wPe[32],n[1]);;){if(0===t)return e;if(!e)return 0;t=t-1|0,e=e[2]}}function eRe(r,n){var t=UL(wPe[28],r[1],n[1]);if(0===t)for(var e=n[2],a=r[2];;){r:{if(a){if(e){var u=e[1],f=a[1],i=f[2][4]===u[2][4]?1:0,c=e[2],v=a[2],o=u[3],A=f[3],s=i?A[4]===o[4]?1:0:i;if(s){e=c,a=v;continue}var b=s;break r}}else if(!e){b=1;break r}b=LJ(ez)}if(b)break;throw kQ([0,YL,A8r],1)}return t}function aRe(r,n){if(!r)return 0;var t=r[1],e=r[2],a=RV(n),u=an===a?n[1]:W===a?gY(n):n;if(!u)throw kQ([0,YL,v8r],1);var f=u[1],i=u[2],c=f[4],v=f[3],o=[0,PL(wPe[29],f[1])];if(0===UL(wPe[26],t,o))return[0,[0,t,v,c],aRe(e,i)];throw kQ([0,YL,c8r],1)}function uRe(r){return a0(function(r,n){return v0(r,n)?n:[0,r,n]},r,0)}function fRe(r,n){var t=LY(n),e=PC(LY(r),t);if(0!==e)return e;for(var a=r,u=n;;){if(a){if(u){var f=u[2],i=a[2],c=UL(wPe[26],a[1],u[1]);if(0!==c)return c;a=i,u=f;continue}}else if(!u)return 0;throw kQ([0,YL,b8r],1)}}var iRe=hqe(wPe,[0,function(r){return 0},function(r){return 0},0]),cRe=iRe[6],vRe=iRe[7];function oRe(r){if(1158>>0)throw kQ(WL,1);r:{n:{t:{e:{a:{u:{f:{var n=r;if(580>n){if(vk<=n){if(qh<=n){if(UD<=n){if(544<=n)switch(n){case 544:return rZr;case 545:return nZr;case 546:return[0,[0,[2,LS],tZr]];case 547:return[0,[0,eZr,tKe]];case 548:return[0,tKe];case 549:return[0,nKe];case 550:return[0,[0,[2,LS],aZr]];case 551:return[0,[0,uZr,eKe]];case 552:return[0,eKe];case 553:return fZr;case 554:return iZr;case 555:return cZr;case 556:return vZr;case 557:return[0,[0,[2,WUe],oZr]];case 558:return AZr;case 559:return[0,[0,sZr,cKe]];case 560:return[0,cKe];case 561:return[0,iKe];case 562:return[0,fKe];case 563:return[0,[0,[2,LS],bZr]];case 564:return[0,[0,[2,N$e],lZr]];case 565:return[0,[0,[2,N$e],BZr]];case 566:return jZr;case 567:return kZr;case 568:return pZr;case 569:return[0,[0,[2,WUe],mZr]];case 570:return dZr;case 571:return[0,[0,[2,LS],_Zr]];case 572:return hZr;case 573:return xZr;case 574:return yZr;case 575:return wZr;case 576:return gZr;case 577:return[0,[0,[2,LS],qZr]];case 578:return[0,[0,[2,LS],IZr]];default:return[0,[0,[2,LS],DZr]]}switch(n){case 508:return[0,[0,OSr,O$e]];case 509:return[0,O$e];case 510:return[0,K$e];case 511:return[0,$$e];case 512:return[0,G$e];case 513:return RSr;case 514:return[0,[0,QSr,C$e]];case 515:return[0,C$e];case 516:return[0,Q$e];case 517:return[0,R$e];case 518:return CSr;case 519:return[0,[0,HSr,L$e]];case 520:return[0,L$e];case 521:return[0,V$e];case 522:return[0,H$e];case 523:return VSr;case 524:return[0,M$e];case 525:return[0,F$e];case 526:return[0,T$e];case 527:return LSr;case 528:return zSr;case 529:return[0,Z$e];case 530:return[0,S$e];case 531:return[0,z$e];case 532:return SSr;case 533:return[0,[0,ZSr,J$e]];case 534:return[0,J$e];case 535:return[0,X$e];case 536:return[0,W$e];case 537:return WSr;case 538:return[0,[0,[2,BGe],rKe]];case 539:return[0,rKe];case 540:return[0,Y$e];case 541:return XSr;case 542:return JSr;default:return YSr}}if(jD<=n)switch(n){case 472:return[0,x$e];case 473:return jSr;case 474:return kSr;case 475:return[0,[0,[2,WUe],pSr]];case 476:return mSr;case 477:return dSr;case 478:return _Sr;case 479:return[0,[0,[2,WUe],hSr]];case 480:return xSr;case 481:return[0,[0,[2,WUe],ySr]];case 482:return wSr;case 484:return gSr;case 486:return[0,[0,[2,BGe],w$e]];case 487:return[0,w$e];case 488:return[0,y$e];case 489:return[0,YS];case 490:return[0,[0,qSr,E$e]];case 491:return[0,E$e];case 492:return[0,D$e];case 493:return[0,I$e];case 494:return[0,[0,[2,N$e],ISr]];case 495:return[0,[0,[2,N$e],DSr]];case 496:return ESr;case 497:return NSr;case 498:return[0,[0,[2,LS],TSr]];case 499:return[0,[0,[2,LS],FSr]];case 500:return[0,[0,MSr,sZ]];case 501:return[0,[0,PSr,bZ]];case 502:return USr;case 503:return GSr;case 504:return $Sr;case 505:return[0,[0,KSr,U$e]];case 506:return[0,U$e];case 507:return[0,P$e];default:break r}switch(n){case 435:return[0,aZ];case 436:return Hzr;case 437:return[0,[0,[2,WUe],Vzr]];case 438:return[0,[0,Lzr,uZ]];case 439:return[0,[0,zzr,fZ]];case 440:break n;case 441:return Szr;case 442:break t;case 443:return[0,[0,Zzr,_$e]];case 444:return[0,_$e];case 445:return[0,d$e];case 446:return Wzr;case 447:return[0,[0,Xzr,iZ]];case 448:return[0,iZ];case 449:return[0,[0,[2,LS],Jzr]];case 450:return[0,[0,[2,WUe],Yzr]];case 451:return rSr;case 452:return nSr;case 453:return tSr;case 454:return[0,[0,[2,WUe],eSr]];case 455:return[0,[0,[2,WUe],aSr]];case 456:return[0,[0,[2,WUe],uSr]];case 457:break e;case 458:return fSr;case 459:return iSr;case 460:return cSr;case 461:return[0,[0,vSr,cZ]];case 462:return[0,[0,oSr,vZ]];case 463:return[0,[0,[2,KPe],oZ]];case 464:return[0,oZ];case 465:return ASr;case 466:return[0,vZ];case 467:return sSr;case 468:return[0,cZ];case 469:return bSr;case 470:return[0,[0,lSr,AZ]];default:return[0,[0,BSr,x$e]]}}if(EE<=n){if(AK<=n)switch(n){case 399:return qzr;case 400:return[0,[0,[2,BGe],o$e]];case 401:return[0,o$e];case 402:return[0,v$e];case 403:return Izr;case 404:return[0,f$e];case 405:return[0,u$e];case 406:return Dzr;case 407:return[0,[0,Ezr,s$e]];case 408:return[0,[0,Nzr,l$e]];case 409:return[0,l$e];case 410:return[0,b$e];case 411:return Tzr;case 412:return[0,[0,[2,BGe],j$e]];case 413:return[0,j$e];case 414:return[0,B$e];case 415:return Fzr;case 416:return[0,s$e];case 417:return[0,A$e];case 418:return Mzr;case 419:return[0,[0,[2,yS],k$e]];case 420:return[0,k$e];case 421:return Pzr;case 423:return[0,[0,[2,HS],Uzr]];case 425:return[0,[0,[2,LS],Gzr]];case 426:return[0,[0,[2,LS],$zr]];case 427:return[0,[0,Kzr,m$e]];case 428:return[0,m$e];case 429:return[0,p$e];case 430:return[0,eZ];case 431:return Ozr;case 432:return[0,[0,Rzr,aZ]];case 433:return Qzr;case 434:return Czr;default:break r}switch(n){case 363:return[0,[0,[2,xGe],Azr]];case 364:return szr;case 365:return bzr;case 366:return lzr;case 367:return Bzr;case 368:return[0,[0,jzr,zGe]];case 369:return[0,zGe];case 370:return[0,LGe];case 371:return[0,VGe];case 372:return kzr;case 373:return[0,[0,pzr,WGe]];case 374:return[0,WGe];case 375:return[0,ZGe];case 376:return[0,SGe];case 377:return mzr;case 378:return[0,KGe];case 379:return[0,$Ge];case 380:return[0,GGe];case 381:return[0,XGe];case 382:return[0,[0,dzr,r$e]];case 383:return[0,r$e];case 384:return[0,[0,_zr,t$e]];case 385:return[0,t$e];case 386:return[0,n$e];case 387:return hzr;case 388:return[0,[0,[2,BGe],a$e]];case 389:return[0,a$e];case 390:return[0,e$e];case 391:return xzr;case 392:return[0,YGe];case 393:return[0,JGe];case 394:return yzr;case 395:return[0,[0,wzr,f$e]];case 396:return[0,[0,gzr,c$e]];case 397:return[0,c$e];default:return[0,i$e]}}if(WD<=n)switch(n){case 327:return[0,NGe];case 328:return VLr;case 329:return[0,EGe];case 330:return[0,DGe];case 331:return LLr;case 332:return zLr;case 333:return[0,[0,SLr,MGe]];case 334:return[0,[0,ZLr,UGe]];case 335:return[0,UGe];case 336:return[0,PGe];case 337:return WLr;case 338:return[0,MGe];case 339:return[0,FGe];case 340:return XLr;case 341:return JLr;case 342:return YLr;case 343:return[0,gGe];case 344:return[0,wGe];case 345:return[0,hGe];case 346:return rzr;case 347:return nzr;case 348:return tzr;case 349:return[0,[0,ezr,nZ]];case 350:return azr;case 351:return uzr;case 352:return fzr;case 353:return[0,nZ];case 354:return izr;case 355:return[0,[0,czr,OGe]];case 356:return[0,OGe];case 357:return[0,[0,vzr,HGe]];case 358:return[0,HGe];case 359:return[0,CGe];case 360:return[0,QGe];case 361:return[0,RGe];default:return[0,[0,[2,xGe],ozr]]}switch(n){case 293:break r;case 290:return hLr;case 291:return[0,[0,[2,WUe],xLr]];case 292:return[0,[0,[2,WUe],yLr]];case 294:return[0,[0,[2,LS],wLr]];case 295:return[0,[0,[2,WUe],gLr]];case 296:return[0,[0,qLr,ZS]];case 297:return[0,[0,ILr,WS]];case 298:return[0,WS];case 299:return DLr;case 300:return ELr;case 301:return[0,[0,NLr,vGe]];case 302:return TLr;case 303:return FLr;case 304:return MLr;case 305:return PLr;case 306:return ULr;case 307:return[0,vGe];case 308:return[0,cGe];case 309:return[0,[0,[2,FPe],oGe]];case 310:return[0,oGe];case 311:return[0,[0,GLr,AGe]];case 312:return[0,AGe];case 313:return $Lr;case 314:return[0,[0,[2,LS],bGe]];case 315:return[0,[0,KLr,lGe]];case 316:return[0,lGe];case 317:return[0,[0,OLr,_Ge]];case 318:return[0,_Ge];case 319:return RLr;case 320:return[0,dGe];case 321:return[0,[0,QLr,IGe]];case 322:return[0,IGe];case 323:return[0,qGe];case 324:return[0,[0,CLr,EGe]];case 325:return[0,[0,HLr,TGe]];default:return[0,TGe]}}if(iU<=n){if(yd<=n){if(SB<=n)switch(n){case 254:return YVr;case 255:return[0,QS];case 256:return rLr;case 257:return nLr;case 258:return[0,[0,eLr,[0,[2,ZUe],tLr]]];case 259:return[0,ZUe];case 260:return[0,SUe];case 261:return[0,[0,[2,WUe],aLr]];case 262:return[0,[0,[2,WUe],uLr]];case 263:return fLr;case 264:return[0,[0,iLr,XUe]];case 265:return[0,XUe];case 266:return[0,[0,cLr,JUe]];case 267:return vLr;case 268:return oLr;case 269:break r;case 270:return[0,[0,ALr,rGe]];case 271:return[0,rGe];case 272:return[0,[0,[2,KPe],sLr]];case 273:return bLr;case 274:return[0,YUe];case 275:return[0,SS];case 276:return[0,[0,lLr,tGe]];case 277:return[0,tGe];case 278:return[0,[0,BLr,uGe]];case 279:return[0,uGe];case 280:return[0,aGe];case 281:return[0,eGe];case 282:return jLr;case 283:return[0,nGe];case 284:return kLr;case 285:return[0,[0,[2,LS],iGe]];case 286:return[0,[0,[2,WUe],pLr]];case 287:return[0,[0,[2,WUe],mLr]];case 288:return[0,[0,[2,WUe],dLr]];default:return[0,[0,[2,WUe],_Lr]]}switch(n){case 218:return hVr;case 219:return xVr;case 220:return yVr;case 221:return wVr;case 222:return[0,[0,[2,xS],gVr]];case 223:return qVr;case 224:return IVr;case 225:return DVr;case 226:return EVr;case 227:return[0,[0,[2,LUe],NVr]];case 228:return TVr;case 229:return[0,[0,[2,KPe],FVr]];case 230:return MVr;case 231:return PVr;case 232:return[0,wS];case 233:return UVr;case 234:return[0,[0,GVr,OS]];case 235:return $Vr;case 236:return KVr;case 237:return[0,OS];case 238:return OVr;case 239:return RVr;case 240:return[0,hS];case 241:return QVr;case 242:return[0,[0,CVr,RS]];case 243:return[0,RS];case 244:return HVr;case 245:return VVr;case 246:return LVr;case 247:return zVr;case 248:return SVr;case 249:return ZVr;case 250:return[0,_S];case 251:return WVr;case 252:return[0,[0,XVr,QS]];default:return JVr}}if(ky<=n)switch(n){case 182:return rVr;case 183:return nVr;case 184:return[0,IS];case 185:return tVr;case 186:return[0,WPe];case 187:return[0,ZPe];case 188:return[0,SPe];case 189:return[0,zPe];case 190:return eVr;case 191:return[0,LPe];case 192:return[0,VPe];case 193:return[0,HPe];case 194:return[0,CPe];case 195:return aVr;case 196:return[0,RPe];case 197:return[0,OPe];case 198:return uVr;case 199:return[0,[0,fVr,VUe]];case 200:return[0,VUe];case 201:return iVr;case 202:return cVr;case 203:return[0,[0,[2,KPe],vVr]];case 204:return oVr;case 205:return[0,[0,AVr,KS]];case 206:return[0,KS];case 207:return sVr;case 208:return bVr;case 209:return[0,qS];case 210:return lVr;case 211:return BVr;case 212:return jVr;case 213:return kVr;case 214:return pVr;case 215:return[0,[0,[2,zUe],mVr]];case 216:return dVr;default:return _Vr}switch(n){case 145:return DHr;case 146:return[0,[0,EHr,US]];case 147:return NHr;case 148:return THr;case 149:return[0,US];case 150:return FHr;case 151:return[0,DS];case 152:return MHr;case 153:return PHr;case 154:return UHr;case 155:return GHr;case 156:return $Hr;case 157:return[0,GS];case 158:return KHr;case 159:return OHr;case 160:return RHr;case 161:return[0,[0,QHr,GS]];case 162:return[0,[0,CHr,$S]];case 163:return HHr;case 164:return VHr;case 165:return[0,$S];case 166:return LHr;case 167:return zHr;case 168:return SHr;case 169:return ZHr;case 170:return WHr;case 171:return XHr;case 172:return[0,aUe];case 173:return[0,eUe];case 174:return JHr;case 175:return[0,tUe];case 176:return[0,nUe];case 177:return[0,rUe];case 178:return[0,YPe];case 179:return YHr;case 180:return[0,JPe];default:return[0,XPe]}}if(73<=n){if(qT<=n)switch(n){case 109:return lHr;case 110:return[0,wUe];case 111:return[0,yUe];case 112:return BHr;case 113:return[0,TS];case 114:return jHr;case 115:return[0,NS];case 116:return kHr;case 117:return[0,_Ue];case 118:return[0,dUe];case 119:return pHr;case 120:return[0,mUe];case 121:return[0,pUe];case 122:return[0,kUe];case 123:return[0,jUe];case 124:return mHr;case 125:return dHr;case 126:return[0,AUe];case 127:return _Hr;case 128:return[0,[0,hHr,PUe]];case 129:return[0,[0,xHr,KUe]];case 130:return[0,[0,yHr,CUe]];case 131:return[0,CUe];case 132:return[0,QUe];case 133:return[0,RUe];case 134:return[0,OUe];case 135:return wHr;case 136:return[0,KUe];case 137:return[0,$Ue];case 138:return[0,GUe];case 139:return[0,UUe];case 140:return gHr;case 141:return[0,PUe];case 142:return qHr;case 143:return[0,[0,IHr,HUe]];default:return[0,HUe]}switch(n){case 73:return[0,NUe];case 74:return[0,[0,[2,GPe],RCr]];case 75:return[0,[0,[2,GPe],QCr]];case 76:return[0,[0,[2,oUe],CCr]];case 77:return HCr;case 78:return VCr;case 79:return LCr;case 80:return[0,gS];case 81:return[0,[0,zCr,FS]];case 82:return SCr;case 83:return[0,[0,[2,$Pe],ZCr]];case 84:return WCr;case 85:return XCr;case 86:return JCr;case 87:return YCr;case 88:return[0,[0,rHr,MS]];case 89:return[0,MS];case 90:return nHr;case 91:return tHr;case 92:return[0,[0,eHr,PS]];case 93:return[0,[0,[2,KPe],aHr]];case 94:return uHr;case 95:return[0,[0,[2,KPe],fHr]];case 96:return iHr;case 97:return[0,PS];case 98:return cHr;case 99:return[0,FS];case 100:return vHr;case 101:return oHr;case 102:return AHr;case 103:return sHr;case 104:return bHr;case 105:return[0,EUe];case 106:return[0,DUe];case 107:return[0,IUe];default:return[0,qUe]}}if(37<=n)switch(n){case 37:return[0,fUe];case 38:return[0,uUe];case 40:return[0,[0,yCr,vUe]];case 41:return[0,vUe];case 42:return[0,cUe];case 43:return wCr;case 44:return gCr;case 45:return[0,[0,[2,oUe],qCr]];case 47:return[0,[0,ICr,sUe]];case 48:return[0,sUe];case 49:return[0,[0,DCr,BUe]];case 50:return[0,[0,ECr,ES]];case 51:return[0,ES];case 52:return NCr;case 53:return[0,BUe];case 54:return[0,lUe];case 55:return[0,bUe];case 56:return[0,[0,[2,oUe],TCr]];case 57:return FCr;case 58:return[0,[0,MCr,mUe]];case 59:return[0,[0,PCr,xUe]];case 60:return[0,xUe];case 61:return[0,hUe];case 62:return[0,[0,[2,KPe],NS]];case 63:return[0,[0,[2,KPe],TS]];case 64:return UCr;case 65:return[0,[0,GCr,gUe]];case 66:return[0,gUe];case 67:return[0,[0,$Cr,EUe]];case 68:return[0,[0,KCr,MUe]];case 69:return[0,MUe];case 70:return[0,FUe];case 71:return OCr;case 72:return[0,TUe];default:return[0,iUe]}switch(n){case 0:return[0,[0,CQr,[0,[2,TPe],QQr]]];case 1:return[0,TPe];case 2:return HQr;case 3:return VQr;case 4:return LQr;case 5:return zQr;case 6:return SQr;case 7:return[0,[0,ZQr,hS]];case 8:return[0,[0,[2,xS],WQr]];case 9:return XQr;case 10:return JQr;case 11:return YQr;case 12:return rCr;case 13:return[0,[0,[2,xS],nCr]];case 14:return tCr;case 15:return[0,[0,[2,MPe],eCr]];case 16:return[0,[0,aCr,wS]];case 17:return uCr;case 18:return fCr;case 19:return iCr;case 20:return[0,[0,[2,KPe],cCr]];case 21:return[0,[0,[2,UPe],vCr]];case 22:return[0,[0,[2,UPe],oCr]];case 23:return[0,[0,ACr,qS]];case 24:return[0,[0,sCr,QPe]];case 25:return bCr;case 26:return lCr;case 27:return BCr;case 28:return[0,QPe];case 29:return[0,[0,jCr,LPe]];case 30:return[0,[0,kCr,WPe]];case 31:return[0,[0,mCr,[0,pCr,IS]]];case 32:return dCr;case 33:return[0,[0,[2,KPe],_Cr]];case 34:return[0,[0,[2,UPe],JPe]];case 35:return[0,[0,hCr,tUe]];default:return[0,[0,xCr,fUe]]}}if(870>n){if(725<=n){if(798<=n){if(VF<=n)switch(n){case 834:return t0r;case 835:return e0r;case 836:return a0r;case 837:return u0r;case 838:return f0r;case 839:return i0r;case 840:return c0r;case 841:return v0r;case 842:return o0r;case 843:return[0,uKe];case 844:return[0,aKe];case 845:return A0r;case 846:return s0r;case 847:return[0,[0,[2,LS],b0r]];case 848:return l0r;case 849:return B0r;case 850:return j0r;case 851:return k0r;case 852:return[0,bZ];case 853:return p0r;case 854:return[0,[0,m0r,pZ]];case 855:return[0,pZ];case 856:return d0r;case 857:return[0,sZ];case 858:return _0r;case 859:return h0r;case 860:return[0,[0,[2,LS],x0r]];case 861:return y0r;case 862:return w0r;case 863:return[0,q$e];case 864:return[0,g$e];case 865:return g0r;case 866:return q0r;case 867:return I0r;case 868:return[0,zS];default:return D0r}switch(n){case 798:return yYr;case 799:return wYr;case 800:return gYr;case 801:return[0,[0,[2,$Pe],qYr]];case 802:return IYr;case 803:return DYr;case 804:return EYr;case 805:return NYr;case 806:return TYr;case 807:return[0,[0,[2,BKe],FYr]];case 808:return MYr;case 809:return PYr;case 810:return UYr;case 811:return[0,[0,[2,BKe],GYr]];case 812:return $Yr;case 813:return[0,[0,[2,BKe],KYr]];case 814:return OYr;case 815:return[0,lZ];case 816:return RYr;case 817:return QYr;case 818:break a;case 819:return CYr;case 820:return HYr;case 821:return[0,[0,[2,BZ],VYr]];case 822:return LYr;case 823:return zYr;case 824:return SYr;case 825:return[0,[0,ZYr,jZ]];case 826:return[0,jZ];case 827:return WYr;case 828:return[0,[0,XYr,kZ]];case 829:return[0,kZ];case 830:return JYr;case 831:return YYr;case 832:return r0r;default:return n0r}}if(762<=n)switch(n){case 762:return QJr;case 763:return CJr;case 764:return HJr;case 765:return[0,[0,[2,BKe],VJr]];case 766:return LJr;case 767:return[0,[0,[2,BKe],zJr]];case 768:return SJr;case 769:return ZJr;case 770:return WJr;case 771:return[0,[0,[2,BKe],XJr]];case 772:return JJr;case 773:return[0,[0,[2,BKe],YJr]];case 774:return rYr;case 775:return[0,[0,[2,BKe],nYr]];case 776:return tYr;case 777:return eYr;case 778:return aYr;case 779:return[0,[0,[2,BKe],uYr]];case 780:return fYr;case 781:return iYr;case 782:return cYr;case 783:return vYr;case 784:return oYr;case 785:return[0,[0,[2,BKe],AYr]];case 786:return sYr;case 787:return[0,[0,[2,BKe],bYr]];case 788:return lYr;case 789:return[0,[0,[2,BKe],BYr]];case 790:return jYr;case 791:return[0,[0,[2,BKe],kYr]];case 792:return pYr;case 793:return[0,[0,[2,BKe],mYr]];case 794:return dYr;case 795:return[0,[0,[2,BKe],_Yr]];case 796:return hYr;default:return[0,[0,[2,BKe],xYr]]}switch(n){case 725:return[0,[0,[2,BKe],uJr]];case 726:return fJr;case 727:return iJr;case 728:return cJr;case 729:return[0,[0,[2,BKe],vJr]];case 730:return oJr;case 731:return AJr;case 732:return sJr;case 733:return[0,[0,[2,BKe],bJr]];case 734:return lJr;case 735:return BJr;case 736:return jJr;case 737:return[0,[0,[2,BKe],kJr]];case 738:return pJr;case 739:return mJr;case 740:return dJr;case 741:return[0,[0,[2,BKe],_Jr]];case 742:return hJr;case 743:return[0,[0,[2,BKe],xJr]];case 744:return yJr;case 745:return wJr;case 746:return gJr;case 747:return[0,[0,[2,BKe],qJr]];case 748:return IJr;case 749:return DJr;case 750:return EJr;case 751:return[0,[0,[2,BKe],NJr]];case 752:return TJr;case 753:return FJr;case 754:return MJr;case 755:return[0,[0,[2,BKe],PJr]];case 756:return UJr;case 757:return GJr;case 758:return $Jr;case 759:return[0,[0,[2,BKe],KJr]];case 760:return OJr;default:return RJr}}if(653<=n){if(689<=n)switch(n){case 689:return xXr;case 690:return[0,[0,[2,BKe],yXr]];case 691:return wXr;case 692:return[0,[0,[2,BKe],gXr]];case 693:return qXr;case 694:return[0,[0,[2,BKe],IXr]];case 695:return DXr;case 696:return[0,[0,[2,BKe],EXr]];case 697:return NXr;case 698:return[0,[0,[2,BKe],TXr]];case 699:return FXr;case 700:return[0,[0,[2,BKe],MXr]];case 701:return PXr;case 702:return[0,[0,[2,BKe],UXr]];case 703:return GXr;case 704:return[0,[0,[2,BKe],$Xr]];case 705:return KXr;case 706:return OXr;case 707:return RXr;case 708:return QXr;case 709:return CXr;case 710:return HXr;case 711:return VXr;case 712:return LXr;case 713:return zXr;case 714:return SXr;case 715:return ZXr;case 716:return[0,[0,[2,$Pe],WXr]];case 717:return XXr;case 718:return JXr;case 719:return YXr;case 720:return rJr;case 721:return nJr;case 722:return tJr;case 723:return eJr;default:return aJr}switch(n){case 653:return RWr;case 654:return[0,[0,[2,BKe],QWr]];case 655:return CWr;case 656:return[0,[0,[2,BKe],HWr]];case 657:return VWr;case 658:return[0,[0,[2,BKe],LWr]];case 659:return zWr;case 660:return SWr;case 661:return ZWr;case 662:return WWr;case 663:return XWr;case 664:return JWr;case 665:return YWr;case 666:return[0,[0,[2,BKe],rXr]];case 667:return nXr;case 668:return tXr;case 669:return eXr;case 670:return[0,[0,[2,BKe],aXr]];case 671:return uXr;case 672:return fXr;case 673:return iXr;case 674:return cXr;case 675:return vXr;case 676:return oXr;case 677:return AXr;case 678:return sXr;case 679:return bXr;case 680:return lXr;case 681:return BXr;case 682:return jXr;case 683:return kXr;case 684:return[0,[0,[2,BKe],pXr]];case 685:return mXr;case 686:return[0,[0,[2,BKe],dXr]];case 687:return _Xr;default:return[0,[0,[2,BKe],hXr]]}}if(617<=n)switch(n){case 636:break e;case 617:return fWr;case 618:return[0,[0,[2,BKe],iWr]];case 619:return cWr;case 620:return[0,[0,[2,BKe],vWr]];case 621:return oWr;case 622:return[0,[0,[2,BKe],AWr]];case 623:return sWr;case 624:return bWr;case 625:return[0,[0,[2,LS],lWr]];case 626:return BWr;case 627:return jWr;case 628:return kWr;case 629:return pWr;case 630:return mWr;case 631:return dWr;case 632:return[0,[0,[2,LS],_Wr]];case 633:return hWr;case 634:return[0,[0,[2,LS],xWr]];case 635:return yWr;case 637:return wWr;case 638:return gWr;case 639:return qWr;case 640:return[0,[0,[2,BKe],IWr]];case 641:return DWr;case 642:return EWr;case 643:return NWr;case 644:return TWr;case 645:return FWr;case 646:return[0,[0,[2,BKe],MWr]];case 647:return PWr;case 648:return[0,[0,[2,BKe],UWr]];case 649:return GWr;case 650:return[0,[0,[2,BKe],$Wr]];case 651:return KWr;default:return[0,[0,[2,BKe],OWr]]}switch(n){case 580:return[0,[0,[2,LS],EZr]];case 581:return[0,[0,[2,LS],NZr]];case 582:return[0,[0,[2,LS],TZr]];case 583:return[0,[0,[2,WUe],FZr]];case 584:return MZr;case 585:return[0,[0,[2,h$e],PZr]];case 586:return[0,[0,UZr,oKe]];case 587:return[0,oKe];case 588:return[0,vKe];case 589:return GZr;case 590:return[0,[0,[2,BGe],sKe]];case 591:return[0,sKe];case 592:return[0,AKe];case 593:return $Zr;case 594:return KZr;case 595:return[0,lKe];case 596:return[0,bKe];case 597:return OZr;case 598:return RZr;case 599:return QZr;case 600:return CZr;case 601:return[0,[0,HZr,lZ]];case 602:return[0,[0,[2,LS],VZr]];case 603:return LZr;case 604:return zZr;case 605:return SZr;case 606:return ZZr;case 607:return WZr;case 608:return XZr;case 609:return[0,[0,[2,BKe],JZr]];case 610:return YZr;case 611:return rWr;case 612:return[0,[0,[2,BKe],nWr]];case 613:return tWr;case 614:return[0,[0,[2,BKe],eWr]];case 615:return aWr;default:return[0,[0,[2,BKe],uWr]]}}if(1015<=n){if(1087<=n){if(1123<=n)switch(n){case 1123:return w3r;case 1124:return[0,tOe];case 1125:return[0,[0,g3r,yOe]];case 1126:return[0,yOe];case 1127:return[0,[0,q3r,gOe]];case 1128:return[0,[0,I3r,IOe]];case 1129:return[0,IOe];case 1130:return[0,qOe];case 1131:return D3r;case 1132:return[0,gOe];case 1133:return[0,wOe];case 1134:return E3r;case 1135:return[0,[0,N3r,EOe]];case 1136:return[0,[0,T3r,TOe]];case 1137:return[0,TOe];case 1138:return[0,NOe];case 1139:return F3r;case 1140:return[0,EOe];case 1141:return[0,DOe];case 1142:return M3r;case 1143:return[0,xOe];case 1144:return[0,hOe];case 1145:return[0,_Oe];case 1146:return[0,dOe];case 1147:return[0,mOe];case 1148:return[0,TZ];case 1149:return P3r;case 1150:return[0,[0,U3r,FZ]];case 1151:return G3r;case 1152:return $3r;case 1153:return[0,FZ];case 1154:return K3r;case 1155:return[0,nOe];case 1156:return[0,qZ];case 1157:return O3r;default:return R3r}switch(n){case 1087:return[0,uOe];case 1088:return a3r;case 1089:return[0,[0,u3r,IZ]];case 1090:return f3r;case 1091:return i3r;case 1092:return[0,IZ];case 1093:return c3r;case 1094:return[0,eOe];case 1095:return[0,[0,v3r,bOe]];case 1096:return o3r;case 1097:return[0,bOe];case 1098:return[0,sOe];case 1099:return[0,AOe];case 1100:return[0,oOe];case 1101:return[0,[0,A3r,BOe]];case 1102:return[0,[0,s3r,kOe]];case 1103:return[0,kOe];case 1104:return[0,jOe];case 1105:return b3r;case 1106:return[0,BOe];case 1107:return[0,lOe];case 1108:return l3r;case 1109:return[0,[0,B3r,EZ]];case 1110:return j3r;case 1111:return k3r;case 1112:return[0,EZ];case 1113:return p3r;case 1114:return[0,DZ];case 1115:return m3r;case 1116:return[0,[0,d3r,pOe]];case 1117:return[0,pOe];case 1118:return _3r;case 1119:return[0,[0,h3r,NZ]];case 1120:return x3r;case 1121:return y3r;default:return[0,NZ]}}if(dq<=n)switch(n){case 1051:return[0,fGe];case 1052:return M2r;case 1053:return P2r;case 1054:return[0,[0,[2,LS],U2r]];case 1055:return G2r;case 1056:return $2r;case 1057:return[0,JUe];case 1058:return K2r;case 1059:return[0,VS];case 1060:return O2r;case 1061:return R2r;case 1062:return Q2r;case 1063:return[0,CS];case 1064:return C2r;case 1065:return H2r;case 1066:return[0,[0,L2r,[0,[2,rOe],V2r]]];case 1067:return[0,rOe];case 1068:return[0,YKe];case 1069:return[0,yZ];case 1070:return z2r;case 1071:return[0,[0,S2r,wZ]];case 1072:return[0,wZ];case 1073:return Z2r;case 1074:return[0,[0,W2r,gZ]];case 1075:return[0,gZ];case 1076:return X2r;case 1077:return J2r;case 1078:return[0,[0,r3r,[0,[2,aOe],Y2r]]];case 1079:return[0,aOe];case 1080:return[0,[0,n3r,fOe]];case 1081:return[0,fOe];case 1082:return[0,[0,t3r,vOe]];case 1083:return[0,vOe];case 1084:return[0,cOe];case 1085:return[0,iOe];default:return e3r}switch(n){case 1019:break f;case 1015:return v2r;case 1016:return[0,XS];case 1017:return o2r;case 1018:return A2r;case 1020:return[0,ZS];case 1021:return s2r;case 1022:return[0,[0,b2r,ZKe]];case 1023:return[0,ZKe];case 1024:return[0,xZ];case 1025:return l2r;case 1026:return B2r;case 1027:return j2r;case 1028:return k2r;case 1029:return p2r;case 1030:return m2r;case 1031:return d2r;case 1033:return _2r;case 1034:return h2r;case 1035:return x2r;case 1037:return y2r;case 1038:return w2r;case 1039:return g2r;case 1040:return[0,[0,q2r,JKe]];case 1041:return[0,JKe];case 1042:return[0,XKe];case 1043:return[0,WKe];case 1044:return I2r;case 1045:return D2r;case 1046:return E2r;case 1047:return N2r;case 1048:return T2r;case 1049:return F2r;case 1050:return[0,iGe];default:return[0,UOe]}}if(943<=n){if(979<=n)switch(n){case 979:return $1r;case 980:return K1r;case 981:return O1r;case 982:return R1r;case 983:return[0,[0,Q1r,_Z]];case 984:return C1r;case 985:return H1r;case 986:return[0,_Z];case 987:return V1r;case 988:return L1r;case 989:return z1r;case 990:return S1r;case 991:return[0,rZ];case 992:return Z1r;case 993:return[0,[0,W1r,hZ]];case 994:return X1r;case 995:return J1r;case 996:return[0,hZ];case 997:return Y1r;case 998:return r2r;case 999:return[0,mGe];case 1e3:return[0,pGe];case 1001:return[0,kGe];case 1002:return n2r;case 1003:return[0,JS];case 1004:return t2r;case 1005:return[0,bGe];case 1006:return[0,sGe];case 1007:return e2r;case 1008:return[0,[0,[2,FPe],SKe]];case 1009:return[0,SKe];case 1010:return a2r;case 1011:return u2r;case 1012:return[0,[0,[2,LS],f2r]];case 1013:return i2r;default:return c2r}switch(n){case 972:break n;case 974:break t;case 960:break;case 943:return B1r;case 944:return j1r;case 945:return k1r;case 946:return p1r;case 947:return m1r;case 948:return d1r;case 949:return _1r;case 950:return[0,fZ];case 951:return h1r;case 952:return[0,uZ];case 953:return x1r;case 954:return y1r;case 955:return w1r;case 956:return g1r;case 957:return[0,[0,[2,LS],q1r]];case 958:return I1r;case 961:return D1r;case 962:return E1r;case 963:return[0,[0,N1r,LKe]];case 964:return[0,LKe];case 965:return[0,VKe];case 966:return[0,HKe];case 967:return[0,CKe];case 968:return T1r;case 970:return[0,zKe];case 971:return F1r;case 973:return M1r;case 975:return P1r;case 976:return[0,[0,[2,LS],U1r]];case 977:return G1r;case 978:return[0,tZ];default:return[0,f5r]}}else{if(907>n)switch(n){case 871:break a;case 870:break u;case 872:return E0r;case 873:return N0r;case 874:return[0,[0,T0r,mKe]];case 875:return[0,mKe];case 876:break f;case 877:return F0r;case 878:return M0r;case 879:return P0r;case 880:return[0,pKe];case 881:return[0,kKe];case 882:return[0,[0,U0r,yKe]];case 883:return[0,yKe];case 884:return[0,xKe];case 885:return[0,[0,G0r,qKe]];case 886:return[0,qKe];case 887:return[0,gKe];case 888:return[0,wKe];case 889:return $0r;case 890:return[0,[0,K0r,EKe]];case 891:return[0,EKe];case 892:return[0,DKe];case 893:return[0,IKe];case 894:return O0r;case 895:return[0,hKe];case 896:return[0,_Ke];case 897:return[0,dKe];case 898:return R0r;case 899:return[0,[0,Q0r,FKe]];case 900:return[0,FKe];case 901:return[0,TKe];case 902:return[0,NKe];case 903:return C0r;case 904:return[0,[0,H0r,GKe]];case 905:return[0,GKe];default:return[0,UKe]}switch(n){case 922:break u;case 907:return[0,PKe];case 908:return[0,MKe];case 909:return V0r;case 910:return[0,[0,L0r,OKe]];case 911:return[0,OKe];case 912:return[0,KKe];case 913:return[0,$Ke];case 914:return z0r;case 915:return[0,[0,S0r,QKe]];case 916:return[0,QKe];case 917:return[0,RKe];case 918:return[0,jKe];case 919:return Z0r;case 920:return[0,[0,W0r,lKe]];case 921:return X0r;case 923:return[0,[0,[2,BZ],J0r]];case 924:return Y0r;case 925:return[0,[0,r1r,dZ]];case 926:return n1r;case 927:return t1r;case 928:return[0,dZ];case 929:return e1r;case 930:return a1r;case 931:return u1r;case 932:break;case 933:return f1r;case 934:return i1r;case 935:return[0,[0,[2,BZ],c1r]];case 936:return v1r;case 937:return o1r;case 938:return[0,[0,[2,LS],A1r]];case 939:return s1r;case 940:return[0,AZ];case 941:return b1r;default:return l1r}}return[0,u5r]}return[0,mZ]}return[0,H4r]}return[0,C4r]}return[0,POe]}return[0,_4r]}return[0,MOe]}return[0,FOe]}function ARe(r,n){var t=r;if(66<=t){if(99<=t)switch(t){case 99:return 92;case 100:return 93;case 101:return 94;case 102:return 95;case 103:return 96;case 104:return 97;case 105:return 98;case 106:return 99;case 107:return x$;case 108:return _q;case 109:return Pl;case 110:return _$;case 111:return[6,n];case 112:return Yo;case 113:return Bs;case 114:return ck;case 115:return db;case 116:return[7,n];case 117:return QN;case 118:return qT;case 119:return Wr;case 120:return S_;case 121:return Jt;case 122:return W$;case 123:return Yv;case 124:return pp;case 125:return rM;case 126:return t$;case 127:return OP;case 128:return tw;case 129:return HP;default:return KP}switch(t){case 66:return 62;case 67:return 63;case 68:return 64;case 69:return 65;case 70:return 66;case 71:return 67;case 72:return 68;case 73:return 69;case 74:return 70;case 75:return 71;case 76:return 72;case 77:return 73;case 78:return 74;case 79:return 75;case 80:return 76;case 81:return 77;case 82:return 78;case 83:return[3,n];case 84:return 79;case 85:return 80;case 86:return 81;case 87:return 82;case 88:return 83;case 89:return 84;case 90:return 85;case 91:return[4,n];case 92:return 86;case 93:return 87;case 94:return 88;case 95:return 89;case 96:return 90;case 97:return 91;default:return[5,n]}}if(33<=t)switch(t){case 33:return 31;case 34:return 32;case 35:return 33;case 36:return 34;case 37:return 35;case 38:return 36;case 39:return 37;case 40:return 38;case 41:return 39;case 42:return 40;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 44;case 47:return 45;case 48:return 46;case 49:return 47;case 50:return 48;case 51:return 49;case 52:return 50;case 53:return 51;case 54:return 52;case 55:return 53;case 56:return[1,n];case 57:return 54;case 58:return 55;case 59:return 56;case 60:return[2,n];case 61:return 57;case 62:return 58;case 63:return 59;case 64:return 60;default:return 61}switch(t){case 0:throw kQ([0,YL,RQr],1);case 1:return 0;case 2:return 1;case 3:return 2;case 4:return 3;case 5:return 4;case 6:return 5;case 7:return 6;case 8:return 7;case 9:return 8;case 10:return 9;case 11:return 10;case 12:return 11;case 13:return 12;case 14:return 13;case 15:return 14;case 16:return 15;case 17:return 16;case 18:return 17;case 19:return 18;case 20:return 19;case 21:return[0,n];case 22:return 20;case 23:return 21;case 24:return 22;case 25:return 23;case 26:return 24;case 27:return 25;case 28:return 26;case 29:return 27;case 30:return 28;case 31:return 29;default:return 30}}function sRe(r){return r[1]}function bRe(r){return O0(g8r,YY(ZOe,r))}function lRe(r){var n=O0(y8r,YY(ZOe,r)),t=O0(w8r,YY(YOe,r));return 0===UC(n,t)?n:n+" (e.g. '"+t+"')"}function BRe(r){nRe[4].call(null,r);var n=O0("",XY(WOe[1]));return WOe[1]=0,n}function jRe(r,n){var t=r[1][1];return function(r,n){if(0===n[0])switch(n[1]){case 83:return"__error_recovery_var__";case 21:case 56:case 60:case 91:case 98:case 111:case 116:throw kQ(WL,1);default:return 0}switch(n[1]){case 79:case 80:case 90:case 91:return[0,r,[32,[0,r,Q3r,Yz],0,[0,0,0]],Yz];default:throw kQ(WL,1)}}([0,[0,t,r[1][2],r[1][3]],[0,t,r[2][2],r[2][3]]],n)}function kRe(r,n,t){for(var e=r,a=UL(wPe[1],[0,t],n);;){r:if("number"!=typeof a){switch(a[0]){case 0:return[0,-855213085,[0,a,a[1]]];case 2:if(!e)return Qr;break;case 4:return[0,ik,a[1]];case 3:break r}e=1,a=UL(wPe[2],0,a);continue}return Qr}}function pRe(r){var n=PL(wPe[13],r);if(n){var t=n[1],e=t[3],a=PL(wPe[9],t[1]),u=vC(NPe,a)[a+1],f=hDe(e),i=f[2],c=f[1];if(0===u)var v=i,o=i,A=c;else{var s=UL(wPe[14],u,r);if(s){var b=s[1],l=PL(wPe[13],b);if(l)var B=hDe(l[1][3])[2],j=PL(wPe[13],b),k=j?(PL(wPe[29],j[1][1]),B):B;else k=XJ}else k=XJ;v=ZJ(i,k),o=SJ(i,k),A=c}}else v=0,o=0,A=1;return[0,A,o,v,r]}function mRe(r,n,t){var e=[0,0];var a=function r(n){for(var a=n;;){if(!a)return Qr;var u=a[2],f=a[1],i=e[1];PL(R3(qdr),i),e[1]=e[1]+1|0,vRe(f[4]);var c=kRe(1,t,f[4]);if("number"!=typeof c)break;a=u}if(ik<=c[1]){var v=c[2],o=r(u);return Qr===o?[0,ik,v]:o}var A=c[2][1];if("number"!=typeof A&&0===A[0]){cRe(A[1]);for(var s=u,b=0;;){if(!s)return[0,17724,[0,A,f[4]]];var l=s[2],B=s[1];PL(R3(gdr),b),cRe(B[4]),s=l,b=b+1|0}}return VJ("Impossible")}(n[3]);if("number"!=typeof a)return ik<=a[1]?[2,a[2]]:[0,a[2][1]];var u=t[1];if("number"!=typeof u||90!==u)f=0;else var f=1;if(!f)return[1,r,n];var i=n[2];return i?[2,i[1]]:[3,r]}var dRe=aBe([0,r1]),_Re=O1([0,r1]);function hRe(r,n){return _Re[16].call(null,function(n,t){return dRe[4].call(null,n,r,t)},n,dRe[1])}var xRe=_Re[1],yRe=_Re[7];function wRe(r,n,t){return[0,n&&t?1:0]}var gRe=dRe[9];function qRe(r,n){return gRe(wRe,r,n)}function IRe(r,n){var t=YY(r,n);return e0(qRe,dRe[1],t)}function DRe(r,n){var t=r[2];return[0,UL(qRe,r[1],n),t]}function ERe(r,n){var t=n[1],e=r[1],a=_Re[7].call(null,r[2],n[2]);return[0,UL(qRe,e,t),a]}function NRe(r,n){var t=YY(r,n);return e0(ERe,[0,dRe[1],_Re[1]],t)}function TRe(r,n){var t=n[2];return UL(qRe,n[1],dRe[16].call(null,function(r,n){return 1-_Re[3].call(null,r,t)},r))}function FRe(r){return 1}var MRe=dRe[34];function PRe(r){return MRe(FRe,r)}function URe(r){function n(n){var t=PL(r,n),e=fBe[14];return function(r){return e(t,r)}}var t=uBe[12];return function(r){return t(n,r)}}function GRe(r){return 0}var $Re=dRe[34];function KRe(r){return $Re(GRe,r)}function ORe(r,n){var t=n;r:for(;;){var e=t[2];n:{t:{e:{switch(e[0]){case 0:t=e[2][1];continue;case 2:return dRe[6].call(null,e[1][2],0);case 8:t=e[1][2];continue;case 16:var a=e[1],u=e[3][1],f=e[2],i=SRe(r,LRe(u,f,VRe(r,e[4])));return UL(qRe,a?PL(KRe,ORe(r,a[1])):dRe[1],i);case 17:break r;case 21:var c=e[2];break n;case 23:var v=e[7],o=e[4],A=CRe(r,e[2]),s=QRe(r,o);return PL(PRe,TRe(TRe(ORe(r,v),s),A));case 24:var b=[0,e[2],[0,e[4][2][1],0]];return PL(KRe,RRe(r,rY(OY(e[1]),b)));case 25:return SRe(r,zRe(r,e[1]));case 29:return RRe(r,[0,e[1],[0,e[2],[0,e[3],0]]]);case 30:var l=e[2],B=e[1];break t;case 32:var j=e[2],k=e[1];if(j){var p=j[1],m=k;break e}t=k;continue;case 33:var d=e[3],_=e[2],h=QRe(r,e[1]),x=TRe(ORe(r,d),h);return UL(qRe,ORe(r,_),x);case 35:var y=e[3];break;case 38:var w=e[1];if(w)return RRe(r,[0,w[1],[0,e[4],0]]);t=e[4];continue;case 45:var g=e[3],q=e[2],I=e[1];if(g){var D=g[1],E=HRe(r,q);return UL(qRe,RRe(r,[0,I,[0,D,0]]),E)}l=q,B=I;break t;case 5:case 34:t=e[3];continue;case 6:case 7:p=e[4],m=e[2];break e;case 9:case 11:c=e[1];break n;case 36:case 44:y=e[1];break;case 18:case 39:case 40:t=e[2];continue;case 1:case 3:case 42:case 43:return dRe[1];case 20:case 22:case 27:case 28:case 31:p=e[2],m=e[1];break e;default:t=e[1];continue}return PL(KRe,ORe(r,y))}return RRe(r,[0,m,[0,p,0]])}var N=HRe(r,l);return UL(qRe,ORe(r,B),N)}return RRe(r,c)}var T=e[1],F=IRe(function(n){return ORe(r,n[2][3])},e[2]);return UL(qRe,RRe(r,T),F)}function RRe(r,n){return IRe(function(n){return ORe(r,n)},n)}function QRe(r,n){r:{var t=n;n:for(;;){var e=t[2];if("number"==typeof e)return[0,dRe[1],_Re[1]];switch(e[0]){case 0:var a=_Re[5].call(null,e[1][2]);return[0,dRe[1],a];case 3:break r;case 4:break n;case 5:default:t=e[1];break;case 6:t=e[2];break;case 7:var u=e[1],f=QRe(r,e[2]);return ERe(QRe(r,u),f);case 1:case 2:return[0,dRe[1],_Re[1]]}}return NRe(function(n){var t=n[2];return 0===t[0]?QRe(r,t[2]):[0,dRe[1],_Re[1]]},e[1])}return NRe(function(n){return QRe(r,n)},e[1])}function CRe(r,n){var t=n[2];return t?QRe(r,t[1][2]):[0,dRe[1],_Re[1]]}function HRe(r,n){return IRe(function(n){var t=QRe(r,n[2][1]);return TRe(ORe(r,n[2][2]),t)},n)}function VRe(r,n){return zRe(r,YY(function(r){return r[2][1]},n))}function LRe(r,n,t){if(!r)return t;for(var e=r[1],a=t;;){if(a){var u=a[2],f=_Re[3].call(null,e[2],a[1][2]);if(!f){a=u;continue}var i=f}else i=0;if(i)return t;var c=_Re[1],v=_Re[1],o=_Re[5].call(null,e[2]),A=[0,e[1],o,v,c];return 1===n[2]?[0,A,t]:rY(t,[0,A,0])}}function zRe(r,n){return YY(function(n){var t=n[2];switch(t[0]){case 0:var e=_Re[1],a=[0,ORe(r,t[1]),e];break;case 1:var u=t[3],f=t[2],i=t[1];if(u){var c=ORe(r,u[1]),v=ORe(r,f);a=DRe(DRe(QRe(r,i),v),c)}else{var o=ORe(r,f);a=DRe(QRe(r,i),o)}break;case 2:var A=t[1],s=ORe(r,t[2]),b=_Re[5].call(null,A[2]);a=DRe([0,dRe[1],b],s);break;case 3:a=[0,dRe[1],_Re[1]];break;case 4:var l=t[2],B=t[1],j=t[9],k=t[8],p=t[6],m=t[4],d=t[3],_=CRe(r,l),h=QRe(r,p),x=PL(PRe,TRe(TRe(SRe(r,LRe([0,k],d,VRe(r,j))),h),_));if(B)var y=B[1],w=CRe(r,l),g=PL(PRe,TRe(ORe(r,y),w));else g=dRe[1];var q=_Re[5].call(null,m[2]);a=DRe(DRe([0,dRe[1],q],g),x);break;case 5:var I=t[2],D=_Re[1],E=QRe(r,t[1]);a=[0,TRe(SRe(r,VRe(r,I)),E),D];break;default:var N=_Re[1];a=[0,ORe(r,t[2]),N]}var T=a[1],F=a[2],M=function(r){var n=dRe[16].call(null,function(r,n){return 1===n?1:0},r),t=dRe[45].call(null,n);return _Re[37].call(null,t)}(T),P=function(r){var n=dRe[16].call(null,function(r,n){return 0===n?1:0},r),t=dRe[45].call(null,n);return _Re[37].call(null,t)}(T);return[0,n[1],F,P,M]},n)}function SRe(r,n){for(var t=n0(function(r,n){return hRe(r,n[2])},n),e=dRe[51].call(null,t),a=e0(ABe,iBe,YY(function(r){return function(r,n){return fBe[16].call(null,function(r,t){return uBe[4].call(null,r,n,t)},r,iBe)}(r[2],r[4])},n)),u=n,f=0;u;){var i=u[1],c=u[2];let n=i[1],t=f;var v=bBe(i[3],a);PL(URe(function(a,u){var f=dRe[29].call(null,u,e);return f?f[1]=r||97<=r&&Tx>=r||65<=r&&90>=r?r:95},r)}(n[1]);if(0!==Upe(n)[0])throw kQ([0,YL,l9r],1);var e=[0,n,r],a=f[29].call(null,e,i[1]);if(a)var c=a[1],v=c[2],o=c[1];else{var A=ome[29].call(null,n,u[1]);if(A){var s=A[1],b=s[2],l=s[1];u[1]=ome[4].call(null,n,[0,l,b+1|0],u[1]),i[1]=f[4].call(null,e,[0,l,b+1|0],i[1]);v=b+1|0,o=l}else{var B=ome[45].call(null,u[1]),j=LY(l0(function(r){return n[1]===r[1]?1:0})(B));u[1]=ome[4].call(null,n,[0,j,0],u[1]),i[1]=f[4].call(null,e,[0,j,0],i[1]);v=0,o=j}}if(0<=o&&0<=v)return 0===o?0===v?t:UL(R3(b9r),t,v):0===v?UL(R3(s9r),t,o):GL(R3(A9r),t,o,v);throw kQ([0,YL,o9r],1)}function v(r){switch(r){case 0:return z8r;case 1:return S8r;case 2:return Z8r;case 3:return W8r;case 4:return X8r;case 5:return J8r;case 6:return Y8r;case 7:return r9r;case 8:return n9r;case 9:return t9r;case 10:return e9r;case 11:return a9r;case 12:return u9r;case 13:return f9r;case 14:return i9r;case 15:return c9r;case 16:return 0;case 18:return 1;default:throw kQ([0,YL,v9r],1)}}function o(r){r:{if("number"==typeof r)switch(r){case 2:break r;case 0:var u=N8r;break;default:u=T8r}else n:switch(r[0]){case 0:throw kQ([0,YL,F8r],1);case 1:var f=r[2],i=r[1],A=Upe(i);if(0!==A[0])throw kQ([0,YL,$8r],1);var B=Tme(f,A[2]);if("number"==typeof B)switch(B){case 2:break;case 0:u=M8r;break n;default:u=P8r;break n}else if(2===B[0]){u=v(B[1]);break}var k=c(f,i),p=M_e[29].call(null,k,n[1]);if(p){var m=p[1];if("number"==typeof m){if(2===m){u=[1,Vle(k,Lle)];break}}else if(1===m[0]){if(!Mje[3].call(null,k,t[1]))throw kQ([0,YL,U8r],1);u=m;break}if(Mje[3].call(null,k,t[1]))throw kQ([0,YL,G8r],1);u=[1,Vle(e[28].call(null,[0,i[1],m],a[1]),Lle)]}else{n[1]=M_e[4].call(null,k,2,n[1]);var d=o(Pme(B)),_=[0,i[1],d[2]],h=e[29].call(null,_,a[1]);if(h){var x=[1,Vle(h[1],Lle)];n[1]=M_e[4].call(null,k,x,n[1]),t[1]=Mje[4].call(null,k,t[1]);u=x}else{n[1]=M_e[4].call(null,k,d[2],n[1]),a[1]=e[4].call(null,_,k,a[1]);u=[1,Vle(k,Lle)]}}break;case 2:u=v(r[1]);break;case 3:var y=r[1];if(1===y)u=[7,j(r[2])];else{if(y)throw kQ([0,YL,K8r],1);u=[5,s(r[2])]}break;case 4:u=[6,s(r[1])];break;case 5:u=[4,o(r[1])];break;case 6:u=[3,o(r[1])];break;case 7:var w=r[1];u=0===w?O8r:[5,b(w)];break;case 8:var g=r[1];if(!g)break r;var q=r[2],I=r[5],D=r[4],E=g[1],N=YY(function(r){return 1},r[3]),T=YY(function(r){return Tme(N,r)},I),F=l(YY(function(r){return Tme(N,r)},D));t:{if(!T)switch(q){case 0:u=[2,[0,Vle(0,Lle),0],F,0];break n;case 1:break;default:break t}if(1===q){var M=l(T);switch(E){case 0:var P=[0,Vle(1,Lle),0];break;case 1:P=0;break;default:P=[0,Vle(2,Lle),0]}u=[2,P,F,M];break}}throw kQ([0,YL,R8r],1);case 11:u=o(r[2])[2];break;default:break r}return Vle(u,Lle)}throw kQ([0,YL,Q8r],1)}function A(r){var n=r[3][3],t=r[2],e=tje(r[1]);if(0===e[0]){var a=e[1],u=o(t);return Vle([0,Vle([0,a],Lle),u],n)}var f=e[1],i=o(t);return Vle([0,Vle([1,f],Lle),i],n)}function s(r){return YY(A,r)}function b(r){return n0(function(r,n){var t=o(n);return Vle([0,Vle([2,r],Lle),t],Lle)},r)}function l(r){return YY(B,r)}function B(r){if("number"!=typeof r&&11===r[0]){var n=r[2],t=tje(r[1]);if(0===t[0])return Vle([0,0,o(n)],Lle);var e=t[1],a=o(n);return Vle([0,[0,Vle(e,Lle)],a],Lle)}return Vle([0,0,o(r)],Lle)}function j(r){return a0(function(r,n){var t=r[3][3],e=o(r[2]),a=r[1],u=moe(Hnr,a);return[0,Vle([0,Vle(u?u[1]:a,Lle),e],t),n]},r,0)}function k(r,n){for(var t=r,e=n;;){if(!e)return t;var a=e[2],u=e[1],f=u[2][1][2];if(6===f[0]){var i=f[3][1];e=i?rY(i[1][3],a):a}else{var c=u[2][3];if(c){var v=c[1][2];if(v){var o=v[1][1];o?(t=[0,o[1][2],t],e=a):e=a}else e=a}else e=a}}}function p(r,n){if(0===n)return r;var t=Pme(r);if("number"!=typeof t&&3===t[0]){var e=t[3];return[3,t[1],d0(Ame,rY(t[2],n)),e]}throw kQ([0,YL,L8r],1)}return[0,,,,,,,,,,,o,,,,,B,,,function(r){return ome[41][14].call(null,function(r){var n=function(r){var n=Upe(r);if(0===n[0]&&!n[1]){var t=n[2];if("number"!=typeof t&&3===t[0]&&1===t[1])return 1}return 0}(r);return n?(o([1,r,0]),0):n},r[4])},function(r){return M_e[13].call(null,function(r,n,e){if(Mje[3].call(null,r,t[1]))return e;var a=Vle(n,Lle);return[0,Vle([0,Vle(r,Lle),a],Lle),e]},n[1],0)},,,function(r){var n=Lge(0,r)[2][2],t=n[2];switch(t[0]){case 1:var e=k(0,t[4]);return[0,o(p(n[3][1],e))];case 3:var a=t[9],u=Pme(n[3][1]);if("number"!=typeof u&&8===u[0]&&!u[1]&&!u[2]){var f=u[3];if(f&&!f[2]){var i=u[5];if(i&&!i[2]){var c=i[1],v=YY(B,YY(function(r){return Tme(C8r,r)},u[4]));return[0,Vle([8,v,o(p(nde(Pme(Tme(H8r,c)))[3],k(0,a)))],n[1])]}}}throw kQ([0,YL,V8r],1);default:return 0}}]}function WRe(r){var n=r[2],t=Sge(r[1]),e=t[3][2],a=ZRe(),u=a[20],f=a[19],i=a[23].call(null,t);0===i&&f(n);var c=[0,u(0),i];return[0,t[1],c,[0,"",e]]}function XRe(r){var n=r[2];return 1===n[0]?nje(n[1]):rje(n[1])}function JRe(r,n,t){var e=t[2];if("number"==typeof e)switch(e){case 0:return B9r;case 1:return j9r;default:throw kQ([0,YL,k9r],1)}switch(e[0]){case 0:switch(e[1]){case 0:return N9r;case 1:return T9r;case 2:return F9r;case 3:return M9r;case 4:return P9r;case 5:return U9r;case 6:return G9r;case 7:return $9r;case 8:return K9r;case 9:return O9r;case 10:return R9r;case 11:return Q9r;case 12:return C9r;case 13:return H9r;case 14:return V9r;case 15:return 0;default:return 1}case 1:var a=e[1][2],u=M_e[29].call(null,a,n[1]);if(u)return u[1];var f=Mpe(a,p9r),i=[1,f,0];return n[1]=M_e[4].call(null,a,i,n[1]),ime(f,[0,0,JRe(r,n,kje[28].call(null,a,r))]),i;case 2:var c=e[1];r:{var v=e[3],o=e[2];if(c){switch(c[1][2]){case 0:if(!c[2]){var A=g9r;break r}break;case 1:if(!c[2]){A=q9r;break r}break;default:if(!c[2]){A=I9r;break r}}throw kQ([0,YL,E9r],1)}A=D9r}var s=A[2],b=A[1],l=YRe(r,n,v);return[8,[0,b],s,[0,U_e,0],YRe(r,n,o),l];case 3:return[6,JRe(r,n,e[1])];case 4:return[5,JRe(r,n,e[1])];case 5:var B=e[1],j=1P½ÿóàC\0\0ÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Àÿÿÿÿÿÿ\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿx\f\0","ÿÿÿÿ¿ ÿÿÿÿÿÿÿ€\0\0ÿÿ\0ÿÿÿÿ","\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz],[0,"à\0\0\0þ>þÿÿÿÿÿÿÿÿÿàþÿÿÿÿÿÿÿÿÿÿ÷","àÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿÿ\0\0\0\0\0\0ÿÿ",Zz,Zz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Jvr,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0ÿÿÿÿÿ?",Wz,"ÿÿÿ\0\f\0\0ÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0","\0\0€ÿüÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿÿÿÿÿÿÿ\0\0þÿ","¿ÿÿÿÿ\0\0\0ÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿ/\0\0\0\0\0üè","\0üÿÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿÿ÷ÿ\0€\0\0ÿÿ\0|","ÿÿÿÿÿÿ\0ÿ?\0\0ÿÿüÿÿÿÿÿÿÿ\0\x008ÿÿ<\0","~~~\0ÿÿÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0",Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿÿøÿÿÿÿÿ",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz],Sxe,[0,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Wz,"ÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0","\0øàÿý_Ûÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0øÿÿÿÿÿ",Wz,"ÿÿÿÿÿÿÿ?\0\0ÿÿÿÿÿÿÿÿüÿÿÿÿÿÿ\0\0\0\0\0ÿ","\0\0\0\0\0\0\0\0\0\0\0\0\0\0ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","\0\0\0\0þÿÿþÿÿÀÿÿÿÿÿÿÿÿÿÿüüü\0\0\0\0"],[0,"ÿïÿÿÿÿ·ÿ?ÿ?\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","\0\0\0\0\0\0\0\0ÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿ\0\0\0\0\0","ÿÿÿÿ\0àÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿ>\0\0\0\0\0","ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?\0\0ÿÿÿÿÿÿÿÿ","ÿÿÿÿÿ\0ÿÿÿÿÿÿ\0ÿ÷ÿ÷·ÿûÿûÿÿÿÿÿÿ\0",Wz,"ÿÿÿÿÿÿ\0ÿÿ?\0ÿ\0\0\0¿ÿÿÿÿÿý\0\0\0\0\0\0\0\0","?ýÿÿÿÿ¿‘ÿÿ?\0ÿÿ\0ÿÿÿ\0\0\0\0\0\0\0\0ÿÿ7\0","ÿÿ?\0ÿÿÿÿÿÿ\0\0\0\0ÿÿÿÿÿÿÿÀ\0\0\0\0\0\0\0\0","oðïþÿÿ?\0\0\0\0\0ÿÿÿÿÿÿ\0\0\0\0ÿþÿÿ\0\0\0","ÿÿÿÿÿÿ?\0ÿÿ?\0ÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0","ÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿÿÿÿÿ\0ÿÿÿÿÿÿ\0","ÿÿÿÿÿ\0\0\0\0üÿÿ?‚ÿÿ?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿ\0ü\0\0\0\0\0\0","ÿÿÿ€\0ÿÿ?\0\0\0\0\0ÿÿ\0\0\0\0\0ÿÿ\0\0\0ÿÿ\0"],[0,"ÿÿÿÿÿÿÿÿ?\0\0\0\0\0>\0ÿÿÿÿÿÿÿ\0ÿÿÿ\0\0","ÿÿÿÿÿÿ\0ð\0ÿÿÿÿG\0ÿÿÿÿÿÿÿÿÀ\0\0\0\0\0","ÿÿûÿÿÿŸÀ\0\0\0\0\0\0\0½ÿ¿ÿÿÿÿÿÿÿÿ\0\0","ïŸùÿÿýí㟁à\0\0\0ÿKÿÿÿÿ¿ÿ¥7\n\0\0\0\0\0","ÿÿÿÿÿÿÿÿ»\0€\0\0\0ÿÿÿÿÿÿÿÿ³\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿ?\0\0\0?\0\0\0\0","ÿÿÿÿÿÿÿ\0\0\0\0\0\0\0ÿÿÿÿÿÿ?\0\0\0\0\0\0\0\0","ÿÿÿçÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","ÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0\0\0€","òoÿÿÿ¿™\0\0\0\0\0\0\0\0\0\0\0ÿüÿÿÿÿÿü\0\0\0","ÿÿÿÿÿÿç\0\0ÿÿÿÿÿÿÿÿÿ \0\0ÿÿÿÿÿÿÿÿÿ","\0\0\0\0\0\0\0\0\0\0\0\0ÿ\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0","ÿýÿÿÿÿ\0\0\0\0\0üÿÿÿüÿÿþ\0\0\0\0\0\0\0\0\0","ûÿÿÿÿ´Ë\0\0\0¿ýÿÿÿ{\0\0ÿÿÿÿÿ\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿ\0","ÿÿýÿÿÿÿÇ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"],[0,Wz,Wz,Wz,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0","ÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","ÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿ\0"],[0,Wz,Wz,Wz,Wz,"ÿÿÿÿÿÿ\0\0~\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",Wz,Wz,"ÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz],Sxe,[0,Zz,"ÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Wz,Wz,"ÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿ?\0\0","ÿÿÿÿÿÿ\0\0\0\0\0øÿÿàÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,"\0\0\0\0\0\0\0\0ÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0\0\0\0ÿÿÿùÿÿ\0\0\0\0\0","ÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿ€ÿÿ\0\0\0\0\0\0\0\0\v\0\0"],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?\0\0\0\0€","ÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0",Zz,Zz],Sxe,[0,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ïo"],[0,Wz,"ÿÿÿÿ\0\0\0\0'\0ð\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿC\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz],Sxe,[0,Zz,Zz,Zz,Zz,"ÿÿÿÿÿÿÿÿÿÿßÿÿÿÿÿÿÿÿßdÞÿëïÿÿÿÿÿÿÿ","¿çßßÿÿÿ{_üýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿýÿÿ÷ÿÿÿ÷","ÿÿßÿÿÿßÿÿÿÿÿÿÿÿýÿÿÿýÿÿ÷\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,"ÿÿÿà\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"],[0,"ÿÿùÛÿÿÿÿÿÿÿ?\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0","ÿÿÿÿÿ€?\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿ?\0\0ÿÿÿÿÿ\0\0",Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿ\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿ?\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿ?À","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0oÿ","ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0","ÿÿÿÿÿÿÿÿ\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,"ïÿÿÿ–þ÷\n„ê–ª–÷÷^ÿûÿîûÿ\0\0\0\0\0\0\0\0",Zz],[0,Zz,Yvr,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0",Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,"ÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿ",Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿÿ",Wz,Wz,"ÿÿÿÿÿÿÿÿÿÿÿ?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz],[0,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Wz,Wz,"ÿÿÿ?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz,Wz],[0,Wz,Wz,Wz,Wz,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz],Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe]],wQe=[0,0,[0,[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,[0,65,0],[0,66,0],[0,67,0],[0,68,0],[0,69,0],[0,70,0],[0,71,0],[0,72,0],[0,73,0],[0,74,0],[0,75,0],[0,76,0],[0,77,0],[0,78,0],[0,79,0]],[0,[0,80,0],[0,81,0],[0,82,0],[0,83,0],[0,84,0],[0,85,0],[0,86,0],[0,87,0],[0,88,0],[0,89,0],[0,90,0],0,0,0,0,0],Wxe,Wxe,Wxe,[0,0,0,0,0,0,[0,924,0],0,0,0,0,0,0,0,0,0,0],Wxe,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,83,[0,83,0]]],[0,[0,WT,0],[0,CD,0],[0,$_,0],[0,kR,0],[0,mR,0],[0,xb,0],[0,qq,0],[0,199,0],[0,wE,0],[0,wo,0],[0,202,0],[0,203,0],[0,204,0],[0,205,0],[0,206,0],[0,207,0]],[0,[0,208,0],[0,209,0],[0,Va,0],[0,211,0],[0,212,0],[0,213,0],[0,214,0],0,[0,gt,0],[0,217,0],[0,yd,0],[0,219,0],[0,RR,0],[0,UP,0],[0,Px,0],[0,ZM,0]],[0,0,[0,xv,0],0,[0,lN,0],0,[0,260,0],0,[0,262,0],0,[0,264,0],0,[0,jj,0],0,[0,268,0],0,[0,270,0]],[0,0,[0,272,0],0,[0,274,0],0,[0,276,0],0,[0,278,0],0,[0,280,0],0,[0,282,0],0,[0,l_,0],0,[0,uP,0]],[0,0,[0,xt,0],0,[0,vk,0],0,[0,292,0],0,[0,294,0],0,[0,uN,0],0,[0,298,0],0,[0,pA,0],0,[0,302,0]],[0,0,[0,73,0],0,[0,qR,0],0,[0,308,0],0,[0,310,0],0,0,[0,313,0],0,[0,315,0],0,[0,317,0],0],[0,[0,319,0],0,[0,321,0],0,[0,vh,0],0,[0,xP,0],0,[0,WD,0],[0,700,[0,78,0]],0,[0,jh,0],0,[0,332,0],0,[0,Yu,0]],[0,0,[0,Da,0],0,[0,iw,0],0,[0,340,0],0,[0,Xt,0],0,[0,344,0],0,[0,lE,0],0,[0,348,0],0,[0,eo,0]],[0,0,[0,352,0],0,[0,fc,0],0,[0,356,0],0,[0,358,0],0,[0,360,0],0,[0,KK,0],0,[0,364,0],0,[0,os,0]],[0,0,[0,qm,0],0,[0,370,0],0,[0,372,0],0,[0,If,0],0,0,[0,aR,0],0,[0,379,0],0,[0,JK,0],[0,83,0]],[0,[0,579,0],0,0,[0,ip,0],0,[0,tR,0],0,0,[0,gR,0],0,0,0,[0,m_,0],0,0,0],[0,0,0,[0,cD,0],0,0,[0,SF,0],0,0,0,[0,ZK,0],[0,573,0],[0,42972,0],0,0,[0,544,0],0],[0,0,[0,Cu,0],0,[0,de,0],0,[0,Xr,0],0,0,[0,zl,0],0,0,0,0,[0,kl,0],0,0],[0,[0,pr,0],0,0,0,[0,qh,0],0,[0,437,0],0,0,[0,440,0],0,0,0,[0,444,0],0,[0,503,0]],[0,0,0,0,0,0,[0,452,0],[0,452,0],0,[0,455,0],[0,455,0],0,[0,L$,0],[0,L$,0],0,[0,Yj,0],0],[0,[0,Cx,0],0,[0,465,0],0,[0,$M,0],0,[0,469,0],0,[0,ph,0],0,[0,473,0],0,[0,Ir,0],[0,oe,0],0,[0,478,0]],[0,0,[0,480,0],0,[0,482,0],0,[0,484,0],0,[0,486,0],0,[0,488,0],0,[0,490,0],0,[0,492,0],0,[0,494,0]],[0,[0,74,[0,780,0]],0,[0,497,0],[0,497,0],0,[0,Ml,0],0,0,0,[0,504,0],0,[0,506,0],0,[0,UD,0],0,[0,510,0]],[0,0,[0,BB,0],0,[0,514,0],0,[0,516,0],0,[0,518,0],0,[0,520,0],0,[0,522,0],0,[0,524,0],0,[0,526,0]],[0,0,[0,528,0],0,[0,530,0],0,[0,532,0],0,[0,534,0],0,[0,536,0],0,[0,538,0],0,[0,540,0],0,[0,542,0]],[0,0,0,0,[0,546,0],0,[0,548,0],0,[0,550,0],0,[0,552,0],0,[0,554,0],0,[0,556,0],0,[0,558,0]],[0,0,[0,560,0],0,[0,562,0],0,0,0,0,0,0,0,0,[0,571,0],0,0,[0,11390,0]],[0,[0,11391,0],0,[0,577,0],0,0,0,0,[0,582,0],0,[0,584,0],0,[0,586,0],0,[0,588,0],0,[0,590,0]],[0,[0,11375,0],[0,11373,0],[0,11376,0],[0,385,0],[0,KD,0],0,[0,393,0],[0,Zm,0],0,[0,AK,0],0,[0,400,0],[0,42923,0],0,0,0],[0,[0,403,0],[0,42924,0],0,[0,404,0],[0,42955,0],[0,42893,0],[0,42922,0],0,[0,407,0],[0,406,0],[0,42926,0],[0,11362,0],[0,42925,0],0,0,[0,412,0]],[0,0,[0,11374,0],[0,413,0],0,0,[0,hF,0],0,0,0,0,0,0,0,[0,11364,0],0,0],[0,[0,422,0],0,[0,42949,0],[0,425,0],0,0,0,[0,42929,0],[0,430,0],[0,580,0],[0,433,0],[0,Rc,0],[0,581,0],0,0,0],[0,0,0,[0,439,0],0,0,0,0,0,0,0,0,0,0,[0,42930,0],[0,42928,0],0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,0,0,0,0,[0,Qs,0],0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,[0,0,[0,880,0],0,[0,882,0],0,0,0,[0,886,0],0,0,0,[0,1021,0],[0,ko,0],[0,wd,0],0,0],Wxe,[0,[0,Qs,[0,Oh,[0,_j,0]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,[0,902,0],[0,904,0],[0,905,0],[0,906,0]],[0,[0,hm,[0,Oh,[0,_j,0]]],[0,aw,0],[0,914,0],[0,915,0],[0,916,0],[0,917,0],[0,918,0],[0,ZD,0],[0,920,0],[0,Qs,0],[0,922,0],[0,923,0],[0,924,0],[0,925,0],[0,926,0],[0,927,0]],[0,[0,928,0],[0,929,0],[0,931,0],[0,931,0],[0,932,0],[0,hm,0],[0,934,0],[0,935,0],[0,936,0],[0,Pv,0],[0,938,0],[0,939,0],[0,908,0],[0,910,0],[0,911,0],0],[0,[0,914,0],[0,920,0],0,0,0,[0,934,0],[0,928,0],[0,975,0],0,[0,984,0],0,[0,986,0],0,[0,988,0],0,[0,990,0]],[0,0,[0,992,0],0,[0,Xe,0],0,[0,996,0],0,[0,998,0],0,[0,Rs,0],0,[0,1002,0],0,[0,1004,0],0,[0,1006,0]],[0,[0,922,0],[0,929,0],[0,1017,0],[0,895,0],0,[0,917,0],0,0,[0,1015,0],0,0,[0,1018,0],0,0,0,0],Wxe,Wxe,Wxe,[0,[0,1040,0],[0,1041,0],[0,1042,0],[0,1043,0],[0,1044,0],[0,1045,0],[0,1046,0],[0,1047,0],[0,1048,0],[0,1049,0],[0,1050,0],[0,dq,0],[0,1052,0],[0,1053,0],[0,Dc,0],[0,1055,0]],[0,[0,1056,0],[0,1057,0],[0,kx,0],[0,1059,0],[0,1060,0],[0,1061,0],[0,1062,0],[0,V_,0],[0,1064,0],[0,1065,0],[0,1066,0],[0,1067,0],[0,1068,0],[0,1069,0],[0,1070,0],[0,1071,0]],[0,[0,ts,0],[0,1025,0],[0,1026,0],[0,1027,0],[0,1028,0],[0,1029,0],[0,1030,0],[0,1031,0],[0,1032,0],[0,1033,0],[0,1034,0],[0,1035,0],[0,1036,0],[0,1037,0],[0,1038,0],[0,1039,0]],[0,0,[0,1120,0],0,[0,1122,0],0,[0,1124,0],0,[0,1126,0],0,[0,1128,0],0,[0,1130,0],0,[0,1132,0],0,[0,1134,0]],[0,0,[0,1136,0],0,[0,1138,0],0,[0,1140,0],0,[0,1142,0],0,[0,1144,0],0,[0,1146,0],0,[0,1148,0],0,[0,1150,0]],[0,0,[0,1152,0],0,0,0,0,0,0,0,0,0,[0,1162,0],0,[0,1164,0],0,[0,1166,0]],[0,0,[0,1168,0],0,[0,1170,0],0,[0,1172,0],0,[0,1174,0],0,[0,1176,0],0,[0,1178,0],0,[0,1180,0],0,[0,1182,0]],[0,0,[0,1184,0],0,[0,1186,0],0,[0,1188,0],0,[0,1190,0],0,[0,1192,0],0,[0,1194,0],0,[0,1196,0],0,[0,1198,0]],[0,0,[0,1200,0],0,[0,1202,0],0,[0,1204,0],0,[0,1206,0],0,[0,1208,0],0,[0,1210,0],0,[0,1212,0],0,[0,1214,0]],[0,0,0,[0,1217,0],0,[0,1219,0],0,[0,1221,0],0,[0,1223,0],0,[0,1225,0],0,[0,1227,0],0,[0,1229,0],[0,1216,0]],[0,0,[0,1232,0],0,[0,1234,0],0,[0,1236,0],0,[0,1238,0],0,[0,1240,0],0,[0,1242,0],0,[0,1244,0],0,[0,1246,0]],[0,0,[0,1248,0],0,[0,1250,0],0,[0,L_,0],0,[0,1254,0],0,[0,1256,0],0,[0,1258,0],0,[0,1260,0],0,[0,1262,0]],[0,0,[0,1264,0],0,[0,1266,0],0,[0,1268,0],0,[0,1270,0],0,[0,1272,0],0,[0,1274,0],0,[0,1276,0],0,[0,1278,0]],[0,0,[0,1280,0],0,[0,1282,0],0,[0,1284,0],0,[0,1286,0],0,[0,1288,0],0,[0,1290,0],0,[0,1292,0],0,[0,1294,0]],[0,0,[0,1296,0],0,[0,1298,0],0,[0,1300,0],0,[0,1302,0],0,[0,1304,0],0,[0,1306,0],0,[0,1308,0],0,[0,1310,0]],[0,0,[0,1312,0],0,[0,1314,0],0,[0,1316,0],0,[0,1318,0],0,[0,1320,0],0,[0,1322,0],0,[0,1324,0],0,[0,1326,0]],Wxe,Wxe,Wxe,[0,0,[0,1329,0],[0,1330,0],[0,1331,0],[0,1332,0],[0,Kx,0],[0,1334,0],[0,1335,0],[0,1336,0],[0,1337,0],[0,1338,0],[0,1339,0],[0,1340,0],[0,1341,0],[0,1342,0],[0,1343,0]],[0,[0,1344,0],[0,1345,0],[0,1346,0],[0,1347,0],[0,mt,0],[0,1349,0],[0,Ya,0],[0,1351,0],[0,1352,0],[0,1353,0],[0,1354,0],[0,1355,0],[0,1356,0],[0,1357,0],[0,1358,0],[0,1359,0]],[0,[0,1360,0],[0,1361,0],[0,1362,0],[0,1363,0],[0,1364,0],[0,1365,0],[0,1366,0],[0,Kx,[0,1362,0]],0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,7312,0],[0,7313,0],[0,7314,0],[0,7315,0],[0,7316,0],[0,7317,0],[0,7318,0],[0,7319,0],[0,7320,0],[0,7321,0],[0,7322,0],[0,7323,0],[0,7324,0],[0,7325,0],[0,7326,0],[0,7327,0]],[0,[0,7328,0],[0,7329,0],[0,7330,0],[0,7331,0],[0,7332,0],[0,7333,0],[0,7334,0],[0,7335,0],[0,7336,0],[0,7337,0],[0,7338,0],[0,7339,0],[0,7340,0],[0,7341,0],[0,7342,0],[0,7343,0]],[0,[0,7344,0],[0,7345,0],[0,7346,0],[0,7347,0],[0,7348,0],[0,7349,0],[0,7350,0],[0,7351,0],[0,7352,0],[0,7353,0],[0,7354,0],0,0,[0,7357,0],[0,7358,0],[0,7359,0]],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,0,0,0,0,0,0,0,[0,5104,0],[0,5105,0],[0,5106,0],[0,5107,0],[0,5108,0],[0,5109,0],0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,1042,0],[0,1044,0],[0,Dc,0],[0,1057,0],[0,kx,0],[0,kx,0],[0,1066,0],[0,1122,0],[0,42570,0],0,[0,7305,0],0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,0,0,0,0,0,0,0,0,[0,42877,0],0,0,0,[0,11363,0],0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,42950,0],0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,[0,7680,0],0,[0,7682,0],0,[0,7684,0],0,[0,7686,0],0,[0,7688,0],0,[0,7690,0],0,[0,7692,0],0,[0,7694,0]],[0,0,[0,7696,0],0,[0,7698,0],0,[0,7700,0],0,[0,7702,0],0,[0,7704,0],0,[0,7706,0],0,[0,7708,0],0,[0,7710,0]],[0,0,[0,7712,0],0,[0,7714,0],0,[0,7716,0],0,[0,7718,0],0,[0,7720,0],0,[0,7722,0],0,[0,7724,0],0,[0,7726,0]],[0,0,[0,7728,0],0,[0,7730,0],0,[0,7732,0],0,[0,7734,0],0,[0,7736,0],0,[0,7738,0],0,[0,7740,0],0,[0,7742,0]],[0,0,[0,7744,0],0,[0,7746,0],0,[0,7748,0],0,[0,7750,0],0,[0,7752,0],0,[0,7754,0],0,[0,7756,0],0,[0,7758,0]],[0,0,[0,7760,0],0,[0,7762,0],0,[0,7764,0],0,[0,7766,0],0,[0,7768,0],0,[0,7770,0],0,[0,7772,0],0,[0,7774,0]],[0,0,[0,7776,0],0,[0,7778,0],0,[0,7780,0],0,[0,7782,0],0,[0,7784,0],0,[0,7786,0],0,[0,7788,0],0,[0,7790,0]],[0,0,[0,7792,0],0,[0,7794,0],0,[0,7796,0],0,[0,7798,0],0,[0,7800,0],0,[0,7802,0],0,[0,7804,0],0,[0,7806,0]],[0,0,[0,7808,0],0,[0,7810,0],0,[0,7812,0],0,[0,7814,0],0,[0,7816,0],0,[0,7818,0],0,[0,7820,0],0,[0,7822,0]],[0,0,[0,7824,0],0,[0,7826,0],0,[0,7828,0],[0,72,[0,817,0]],[0,84,[0,Oh,0]],[0,87,[0,778,0]],[0,89,[0,778,0]],[0,65,[0,702,0]],[0,7776,0],0,0,0,0],[0,0,[0,7840,0],0,[0,7842,0],0,[0,7844,0],0,[0,7846,0],0,[0,7848,0],0,[0,7850,0],0,[0,7852,0],0,[0,7854,0]],[0,0,[0,7856,0],0,[0,7858,0],0,[0,7860,0],0,[0,7862,0],0,[0,7864,0],0,[0,7866,0],0,[0,7868,0],0,[0,7870,0]],[0,0,[0,7872,0],0,[0,7874,0],0,[0,7876,0],0,[0,7878,0],0,[0,7880,0],0,[0,7882,0],0,[0,7884,0],0,[0,7886,0]],[0,0,[0,7888,0],0,[0,7890,0],0,[0,7892,0],0,[0,7894,0],0,[0,7896,0],0,[0,7898,0],0,[0,7900,0],0,[0,7902,0]],[0,0,[0,7904,0],0,[0,7906,0],0,[0,7908,0],0,[0,7910,0],0,[0,7912,0],0,[0,7914,0],0,[0,7916,0],0,[0,7918,0]],[0,0,[0,7920,0],0,[0,7922,0],0,[0,7924,0],0,[0,7926,0],0,[0,7928,0],0,[0,7930,0],0,[0,7932,0],0,[0,7934,0]],[0,[0,Qo,0],[0,Wg,0],[0,jg,0],[0,qr,0],[0,WB,0],[0,ZB,0],[0,Ag,0],[0,BK,0],0,0,0,0,0,0,0,0],[0,[0,7960,0],[0,7961,0],[0,7962,0],[0,7963,0],[0,7964,0],[0,7965,0],0,0,0,0,0,0,0,0,0,0],[0,[0,Ic,0],[0,kf,0],[0,Ax,0],[0,fO,0],[0,A_,0],[0,tU,0],[0,_k,0],[0,$d,0],0,0,0,0,0,0,0,0],[0,[0,7992,0],[0,7993,0],[0,7994,0],[0,7995,0],[0,7996,0],[0,7997,0],[0,7998,0],[0,7999,0],0,0,0,0,0,0,0,0],[0,[0,8008,0],[0,8009,0],[0,8010,0],[0,8011,0],[0,8012,0],[0,8013,0],0,0,0,0,0,0,0,0,0,0],[0,[0,hm,[0,VG,0]],[0,8025,0],[0,hm,[0,VG,[0,us,0]]],[0,8027,0],[0,hm,[0,VG,[0,_j,0]]],[0,8029,0],[0,hm,[0,VG,[0,VF,0]]],[0,8031,0],0,0,0,0,0,0,0,0],[0,[0,DR,0],[0,Hr,0],[0,XI,0],[0,JO,0],[0,Wf,0],[0,Qf,0],[0,Vd,0],[0,Ls,0],0,0,0,0,0,0,0,0],[0,[0,8122,0],[0,8123,0],[0,8136,0],[0,8137,0],[0,8138,0],[0,8139,0],[0,8154,0],[0,8155,0],[0,8184,0],[0,8185,0],[0,8170,0],[0,8171,0],[0,8186,0],[0,8187,0],0,0],[0,[0,Qo,[0,Qs,0]],[0,Wg,[0,Qs,0]],[0,jg,[0,Qs,0]],[0,qr,[0,Qs,0]],[0,WB,[0,Qs,0]],[0,ZB,[0,Qs,0]],[0,Ag,[0,Qs,0]],[0,BK,[0,Qs,0]],[0,Qo,[0,Qs,0]],[0,Wg,[0,Qs,0]],[0,jg,[0,Qs,0]],[0,qr,[0,Qs,0]],[0,WB,[0,Qs,0]],[0,ZB,[0,Qs,0]],[0,Ag,[0,Qs,0]],[0,BK,[0,Qs,0]]],[0,[0,Ic,[0,Qs,0]],[0,kf,[0,Qs,0]],[0,Ax,[0,Qs,0]],[0,fO,[0,Qs,0]],[0,A_,[0,Qs,0]],[0,tU,[0,Qs,0]],[0,_k,[0,Qs,0]],[0,$d,[0,Qs,0]],[0,Ic,[0,Qs,0]],[0,kf,[0,Qs,0]],[0,Ax,[0,Qs,0]],[0,fO,[0,Qs,0]],[0,A_,[0,Qs,0]],[0,tU,[0,Qs,0]],[0,_k,[0,Qs,0]],[0,$d,[0,Qs,0]]],[0,[0,DR,[0,Qs,0]],[0,Hr,[0,Qs,0]],[0,XI,[0,Qs,0]],[0,JO,[0,Qs,0]],[0,Wf,[0,Qs,0]],[0,Qf,[0,Qs,0]],[0,Vd,[0,Qs,0]],[0,Ls,[0,Qs,0]],[0,DR,[0,Qs,0]],[0,Hr,[0,Qs,0]],[0,XI,[0,Qs,0]],[0,JO,[0,Qs,0]],[0,Wf,[0,Qs,0]],[0,Qf,[0,Qs,0]],[0,Vd,[0,Qs,0]],[0,Ls,[0,Qs,0]]],[0,[0,8120,0],[0,8121,0],[0,8122,[0,Qs,0]],[0,aw,[0,Qs,0]],[0,902,[0,Qs,0]],0,[0,aw,[0,VF,0]],[0,aw,[0,VF,[0,Qs,0]]],0,0,0,0,[0,aw,[0,Qs,0]],0,[0,Qs,0],0],[0,0,0,[0,8138,[0,Qs,0]],[0,ZD,[0,Qs,0]],[0,905,[0,Qs,0]],0,[0,ZD,[0,VF,0]],[0,ZD,[0,VF,[0,Qs,0]]],0,0,0,0,[0,ZD,[0,Qs,0]],0,0,0],[0,[0,8152,0],[0,8153,0],[0,Qs,[0,Oh,[0,us,0]]],[0,Qs,[0,Oh,[0,_j,0]]],0,0,[0,Qs,[0,VF,0]],[0,Qs,[0,Oh,[0,VF,0]]],0,0,0,0,0,0,0,0],[0,[0,8168,0],[0,8169,0],[0,hm,[0,Oh,[0,us,0]]],[0,hm,[0,Oh,[0,_j,0]]],[0,929,[0,VG,0]],[0,8172,0],[0,hm,[0,VF,0]],[0,hm,[0,Oh,[0,VF,0]]],0,0,0,0,0,0,0,0],[0,0,0,[0,8186,[0,Qs,0]],[0,Pv,[0,Qs,0]],[0,911,[0,Qs,0]],0,[0,Pv,[0,VF,0]],[0,Pv,[0,VF,[0,Qs,0]]],0,0,0,0,[0,Pv,[0,Qs,0]],0,0,0]],[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,8498,0],0],Wxe,Wxe,[0,[0,8544,0],[0,8545,0],[0,8546,0],[0,8547,0],[0,8548,0],[0,8549,0],[0,8550,0],[0,8551,0],[0,8552,0],[0,8553,0],[0,8554,0],[0,8555,0],[0,8556,0],[0,8557,0],[0,8558,0],[0,8559,0]],[0,0,0,0,0,[0,8579,0],0,0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,9398,0],[0,9399,0],[0,9400,0],[0,9401,0],[0,9402,0],[0,9403,0],[0,9404,0],[0,9405,0],[0,9406,0],[0,9407,0],[0,9408,0],[0,9409,0],[0,9410,0],[0,9411,0],[0,9412,0],[0,9413,0]],[0,[0,9414,0],[0,9415,0],[0,9416,0],[0,9417,0],[0,9418,0],[0,9419,0],[0,9420,0],[0,9421,0],[0,9422,0],[0,9423,0],0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,11264,0],[0,11265,0],[0,11266,0],[0,11267,0],[0,11268,0],[0,11269,0],[0,11270,0],[0,11271,0],[0,11272,0],[0,11273,0],[0,11274,0],[0,11275,0],[0,11276,0],[0,11277,0],[0,11278,0],[0,11279,0]],[0,[0,11280,0],[0,11281,0],[0,11282,0],[0,11283,0],[0,11284,0],[0,11285,0],[0,11286,0],[0,11287,0],[0,11288,0],[0,11289,0],[0,11290,0],[0,11291,0],[0,11292,0],[0,11293,0],[0,11294,0],[0,11295,0]],[0,[0,11296,0],[0,11297,0],[0,11298,0],[0,11299,0],[0,11300,0],[0,11301,0],[0,11302,0],[0,11303,0],[0,11304,0],[0,11305,0],[0,11306,0],[0,11307,0],[0,11308,0],[0,11309,0],[0,11310,0],[0,11311,0]],[0,0,[0,11360,0],0,0,0,[0,570,0],[0,574,0],0,[0,11367,0],0,[0,11369,0],0,[0,11371,0],0,0,0],[0,0,0,0,[0,11378,0],0,0,[0,11381,0],0,0,0,0,0,0,0,0,0],[0,0,[0,11392,0],0,[0,11394,0],0,[0,11396,0],0,[0,11398,0],0,[0,11400,0],0,[0,11402,0],0,[0,11404,0],0,[0,11406,0]],[0,0,[0,11408,0],0,[0,11410,0],0,[0,11412,0],0,[0,11414,0],0,[0,11416,0],0,[0,11418,0],0,[0,11420,0],0,[0,11422,0]],[0,0,[0,11424,0],0,[0,11426,0],0,[0,11428,0],0,[0,11430,0],0,[0,11432,0],0,[0,11434,0],0,[0,11436,0],0,[0,11438,0]],[0,0,[0,11440,0],0,[0,11442,0],0,[0,11444,0],0,[0,11446,0],0,[0,11448,0],0,[0,11450,0],0,[0,11452,0],0,[0,11454,0]],[0,0,[0,11456,0],0,[0,11458,0],0,[0,11460,0],0,[0,11462,0],0,[0,11464,0],0,[0,11466,0],0,[0,11468,0],0,[0,11470,0]],[0,0,[0,11472,0],0,[0,11474,0],0,[0,11476,0],0,[0,11478,0],0,[0,11480,0],0,[0,11482,0],0,[0,11484,0],0,[0,11486,0]],[0,0,[0,11488,0],0,[0,11490,0],0,0,0,0,0,0,0,0,[0,11499,0],0,[0,11501,0],0],[0,0,0,0,[0,11506,0],0,0,0,0,0,0,0,0,0,0,0,0],[0,[0,4256,0],[0,4257,0],[0,4258,0],[0,4259,0],[0,4260,0],[0,4261,0],[0,4262,0],[0,4263,0],[0,4264,0],[0,4265,0],[0,4266,0],[0,4267,0],[0,4268,0],[0,4269,0],[0,4270,0],[0,4271,0]],[0,[0,4272,0],[0,4273,0],[0,4274,0],[0,4275,0],[0,4276,0],[0,4277,0],[0,4278,0],[0,4279,0],[0,4280,0],[0,4281,0],[0,4282,0],[0,4283,0],[0,4284,0],[0,4285,0],[0,4286,0],[0,4287,0]],[0,[0,4288,0],[0,4289,0],[0,4290,0],[0,4291,0],[0,4292,0],[0,4293,0],0,[0,4295,0],0,0,0,0,0,[0,4301,0],0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,[0,42560,0],0,[0,42562,0],0,[0,42564,0],0,[0,42566,0],0,[0,42568,0],0,[0,42570,0],0,[0,42572,0],0,[0,42574,0]],[0,0,[0,42576,0],0,[0,42578,0],0,[0,42580,0],0,[0,42582,0],0,[0,42584,0],0,[0,42586,0],0,[0,42588,0],0,[0,42590,0]],[0,0,[0,42592,0],0,[0,42594,0],0,[0,42596,0],0,[0,42598,0],0,[0,42600,0],0,[0,42602,0],0,[0,42604,0],0,0],Wxe,[0,0,[0,42624,0],0,[0,42626,0],0,[0,42628,0],0,[0,42630,0],0,[0,42632,0],0,[0,42634,0],0,[0,42636,0],0,[0,42638,0]],[0,0,[0,42640,0],0,[0,42642,0],0,[0,42644,0],0,[0,42646,0],0,[0,42648,0],0,[0,42650,0],0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,0,0,[0,42786,0],0,[0,42788,0],0,[0,42790,0],0,[0,42792,0],0,[0,42794,0],0,[0,42796,0],0,[0,42798,0]],[0,0,0,0,[0,42802,0],0,[0,42804,0],0,[0,42806,0],0,[0,42808,0],0,[0,42810,0],0,[0,42812,0],0,[0,42814,0]],[0,0,[0,42816,0],0,[0,42818,0],0,[0,42820,0],0,[0,42822,0],0,[0,42824,0],0,[0,42826,0],0,[0,42828,0],0,[0,42830,0]],[0,0,[0,42832,0],0,[0,42834,0],0,[0,42836,0],0,[0,42838,0],0,[0,42840,0],0,[0,42842,0],0,[0,42844,0],0,[0,42846,0]],[0,0,[0,42848,0],0,[0,42850,0],0,[0,42852,0],0,[0,42854,0],0,[0,42856,0],0,[0,42858,0],0,[0,42860,0],0,[0,42862,0]],[0,0,0,0,0,0,0,0,0,0,0,[0,42873,0],0,[0,42875,0],0,0,[0,42878,0]],[0,0,[0,42880,0],0,[0,42882,0],0,[0,42884,0],0,[0,42886,0],0,0,0,0,[0,42891,0],0,0,0],[0,0,[0,42896,0],0,[0,42898,0],[0,42948,0],0,0,[0,42902,0],0,[0,42904,0],0,[0,42906,0],0,[0,42908,0],0,[0,42910,0]],[0,0,[0,42912,0],0,[0,42914,0],0,[0,42916,0],0,[0,42918,0],0,[0,42920,0],0,0,0,0,0,0],[0,0,0,0,0,0,[0,42932,0],0,[0,42934,0],0,[0,42936,0],0,[0,42938,0],0,[0,42940,0],0,[0,42942,0]],[0,0,[0,42944,0],0,[0,42946,0],0,0,0,0,[0,42951,0],0,[0,42953,0],0,0,[0,42956,0],0,[0,42958,0]],[0,0,[0,42960,0],0,[0,42962,0],0,[0,42964,0],0,[0,42966,0],0,[0,42968,0],0,[0,42970,0],0,0,0,0],Wxe,[0,0,0,0,0,0,0,[0,42997,0],0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,0,0,[0,42931,0],0,0,0,0,0,0,0,0,0,0,0,0],Wxe,[0,[0,5024,0],[0,5025,0],[0,5026,0],[0,5027,0],[0,5028,0],[0,5029,0],[0,5030,0],[0,5031,0],[0,5032,0],[0,5033,0],[0,5034,0],[0,5035,0],[0,5036,0],[0,5037,0],[0,5038,0],[0,5039,0]],[0,[0,5040,0],[0,5041,0],[0,5042,0],[0,5043,0],[0,5044,0],[0,5045,0],[0,5046,0],[0,5047,0],[0,5048,0],[0,5049,0],[0,5050,0],[0,5051,0],[0,5052,0],[0,5053,0],[0,5054,0],[0,5055,0]],[0,[0,5056,0],[0,5057,0],[0,5058,0],[0,5059,0],[0,5060,0],[0,5061,0],[0,5062,0],[0,5063,0],[0,5064,0],[0,5065,0],[0,5066,0],[0,5067,0],[0,5068,0],[0,5069,0],[0,5070,0],[0,5071,0]],[0,[0,5072,0],[0,5073,0],[0,5074,0],[0,5075,0],[0,5076,0],[0,5077,0],[0,5078,0],[0,5079,0],[0,5080,0],[0,5081,0],[0,5082,0],[0,5083,0],[0,5084,0],[0,5085,0],[0,5086,0],[0,5087,0]],[0,[0,5088,0],[0,5089,0],[0,5090,0],[0,5091,0],[0,5092,0],[0,5093,0],[0,5094,0],[0,5095,0],[0,5096,0],[0,5097,0],[0,5098,0],[0,5099,0],[0,5100,0],[0,5101,0],[0,5102,0],[0,5103,0]],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],Wxe,Wxe,Wxe,Wxe,[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,70,[0,70,0]],[0,70,[0,73,0]],[0,70,[0,76,0]],[0,70,[0,70,[0,73,0]]],[0,70,[0,70,[0,76,0]]],[0,83,[0,84,0]],[0,83,[0,84,0]],0,0,0,0,0,0,0,0,0],[0,0,0,0,[0,mt,[0,Ya,0]],[0,mt,[0,Kx,0]],[0,mt,[0,1339,0]],[0,1358,[0,Ya,0]],[0,mt,[0,1341,0]],0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,[0,65313,0],[0,65314,0],[0,65315,0],[0,65316,0],[0,65317,0],[0,65318,0],[0,65319,0],[0,65320,0],[0,65321,0],[0,65322,0],[0,65323,0],[0,65324,0],[0,65325,0],[0,65326,0],[0,65327,0]],[0,[0,65328,0],[0,65329,0],[0,65330,0],[0,65331,0],[0,65332,0],[0,65333,0],[0,65334,0],[0,65335,0],[0,65336,0],[0,65337,0],[0,65338,0],0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,0,0,0,0,0,0,0,[0,66560,0],[0,66561,0],[0,66562,0],[0,66563,0],[0,66564,0],[0,66565,0],[0,66566,0],[0,66567,0]],[0,[0,66568,0],[0,66569,0],[0,66570,0],[0,66571,0],[0,66572,0],[0,66573,0],[0,66574,0],[0,66575,0],[0,66576,0],[0,66577,0],[0,66578,0],[0,66579,0],[0,66580,0],[0,66581,0],[0,66582,0],[0,66583,0]],[0,[0,66584,0],[0,66585,0],[0,66586,0],[0,66587,0],[0,66588,0],[0,66589,0],[0,66590,0],[0,66591,0],[0,66592,0],[0,66593,0],[0,66594,0],[0,66595,0],[0,66596,0],[0,66597,0],[0,66598,0],[0,66599,0]],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,0,0,0,0,0,0,0,[0,66736,0],[0,66737,0],[0,66738,0],[0,66739,0],[0,66740,0],[0,66741,0],[0,66742,0],[0,66743,0]],[0,[0,66744,0],[0,66745,0],[0,66746,0],[0,66747,0],[0,66748,0],[0,66749,0],[0,66750,0],[0,66751,0],[0,66752,0],[0,66753,0],[0,66754,0],[0,66755,0],[0,66756,0],[0,66757,0],[0,66758,0],[0,66759,0]],[0,[0,66760,0],[0,66761,0],[0,66762,0],[0,66763,0],[0,66764,0],[0,66765,0],[0,66766,0],[0,66767,0],[0,66768,0],[0,66769,0],[0,66770,0],[0,66771,0],0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,0,0,0,0,0,0,[0,66928,0],[0,66929,0],[0,66930,0],[0,66931,0],[0,66932,0],[0,66933,0],[0,66934,0],[0,66935,0],[0,66936,0]],[0,[0,66937,0],[0,66938,0],0,[0,66940,0],[0,66941,0],[0,66942,0],[0,66943,0],[0,66944,0],[0,66945,0],[0,66946,0],[0,66947,0],[0,66948,0],[0,66949,0],[0,66950,0],[0,66951,0],[0,66952,0]],[0,[0,66953,0],[0,66954,0],0,[0,66956,0],[0,66957,0],[0,66958,0],[0,66959,0],[0,66960,0],[0,66961,0],[0,66962,0],0,[0,66964,0],[0,66965,0],0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,68736,0],[0,68737,0],[0,68738,0],[0,68739,0],[0,68740,0],[0,68741,0],[0,68742,0],[0,68743,0],[0,68744,0],[0,68745,0],[0,68746,0],[0,68747,0],[0,68748,0],[0,68749,0],[0,68750,0],[0,68751,0]],[0,[0,68752,0],[0,68753,0],[0,68754,0],[0,68755,0],[0,68756,0],[0,68757,0],[0,68758,0],[0,68759,0],[0,68760,0],[0,68761,0],[0,68762,0],[0,68763,0],[0,68764,0],[0,68765,0],[0,68766,0],[0,68767,0]],[0,[0,68768,0],[0,68769,0],[0,68770,0],[0,68771,0],[0,68772,0],[0,68773,0],[0,68774,0],[0,68775,0],[0,68776,0],[0,68777,0],[0,68778,0],[0,68779,0],[0,68780,0],[0,68781,0],[0,68782,0],[0,68783,0]],[0,[0,68784,0],[0,68785,0],[0,68786,0],0,0,0,0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,68944,0],[0,68945,0],[0,68946,0],[0,68947,0],[0,68948,0],[0,68949,0],[0,68950,0],[0,68951,0],[0,68952,0],[0,68953,0],[0,68954,0],[0,68955,0],[0,68956,0],[0,68957,0],[0,68958,0],[0,68959,0]],[0,[0,68960,0],[0,68961,0],[0,68962,0],[0,68963,0],[0,68964,0],[0,68965,0],0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,71840,0],[0,71841,0],[0,71842,0],[0,71843,0],[0,71844,0],[0,71845,0],[0,71846,0],[0,71847,0],[0,71848,0],[0,71849,0],[0,71850,0],[0,71851,0],[0,71852,0],[0,71853,0],[0,71854,0],[0,71855,0]],[0,[0,71856,0],[0,71857,0],[0,71858,0],[0,71859,0],[0,71860,0],[0,71861,0],[0,71862,0],[0,71863,0],[0,71864,0],[0,71865,0],[0,71866,0],[0,71867,0],[0,71868,0],[0,71869,0],[0,71870,0],[0,71871,0]],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],Wxe,Wxe,Wxe,Wxe,[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,93760,0],[0,93761,0],[0,93762,0],[0,93763,0],[0,93764,0],[0,93765,0],[0,93766,0],[0,93767,0],[0,93768,0],[0,93769,0],[0,93770,0],[0,93771,0],[0,93772,0],[0,93773,0],[0,93774,0],[0,93775,0]],[0,[0,93776,0],[0,93777,0],[0,93778,0],[0,93779,0],[0,93780,0],[0,93781,0],[0,93782,0],[0,93783,0],[0,93784,0],[0,93785,0],[0,93786,0],[0,93787,0],[0,93788,0],[0,93789,0],[0,93790,0],[0,93791,0]],Wxe,Wxe,Wxe,[0,0,0,0,0,0,0,0,0,0,0,0,[0,93856,0],[0,93857,0],[0,93858,0],[0,93859,0],[0,93860,0]],[0,[0,93861,0],[0,93862,0],[0,93863,0],[0,93864,0],[0,93865,0],[0,93866,0],[0,93867,0],[0,93868,0],[0,93869,0],[0,93870,0],[0,93871,0],[0,93872,0],[0,93873,0],[0,93874,0],[0,93875,0],[0,93876,0]],[0,[0,93877,0],[0,93878,0],[0,93879,0],[0,93880,0],0,0,0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,0,[0,125184,0],[0,125185,0],[0,125186,0],[0,125187,0],[0,125188,0],[0,125189,0],[0,125190,0],[0,125191,0],[0,125192,0],[0,125193,0],[0,125194,0],[0,125195,0],[0,125196,0],[0,125197,0]],[0,[0,125198,0],[0,125199,0],[0,125200,0],[0,125201,0],[0,125202,0],[0,125203,0],[0,125204,0],[0,125205,0],[0,125206,0],[0,125207,0],[0,125208,0],[0,125209,0],[0,125210,0],[0,125211,0],[0,125212,0],[0,125213,0]],[0,[0,125214,0],[0,125215,0],[0,125216,0],[0,125217,0],0,0,0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe]],gQe=[0,0,[0,[0,Wxe,Wxe,Wxe,Wxe,[0,0,[0,97,0],[0,98,0],[0,99,0],[0,x$,0],[0,_q,0],[0,Pl,0],[0,_$,0],[0,Yo,0],[0,Bs,0],[0,ck,0],[0,db,0],[0,QN,0],[0,qT,0],[0,Wr,0],[0,S_,0]],[0,[0,Jt,0],[0,W$,0],[0,Yv,0],[0,pp,0],[0,rM,0],[0,t$,0],[0,OP,0],[0,tw,0],[0,HP,0],[0,KP,0],[0,Tx,0],0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,ms,0],[0,225,0],[0,bA,0],[0,227,0],[0,Qt,0],[0,hP,0],[0,UO,0],[0,EB,0],[0,232,0],[0,233,0],[0,234,0],[0,235,0],[0,Ci,0],[0,237,0],[0,238,0],[0,Xm,0]],[0,[0,Sj,0],[0,241,0],[0,242,0],[0,Hw,0],[0,244,0],[0,Uk,0],[0,W,0],0,[0,Ul,0],[0,249,0],[0,an,0],[0,rq,0],[0,sv,0],[0,o$,0],[0,SB,0],0],Wxe,Wxe,[0,[0,zT,0],0,[0,259,0],0,[0,qF,0],0,[0,263,0],0,[0,lk,0],0,[0,267,0],0,[0,269,0],0,[0,271,0],0],[0,[0,273,0],0,[0,275,0],0,[0,jd,0],0,[0,279,0],0,[0,281,0],0,[0,283,0],0,[0,285,0],0,[0,qf,0],0],[0,[0,Hx,0],0,[0,291,0],0,[0,293,0],0,[0,295,0],0,[0,nk,0],0,[0,299,0],0,[0,ng,0],0,[0,303,0],0],[0,[0,Bs,[0,775,0]],0,[0,DE,0],0,[0,Cp,0],0,[0,311,0],0,0,[0,314,0],0,[0,jm,0],0,[0,318,0],0,[0,320,0]],[0,0,[0,322,0],0,[0,324,0],0,[0,326,0],0,[0,MK,0],0,0,[0,331,0],0,[0,333,0],0,[0,335,0],0],[0,[0,337,0],0,[0,339,0],0,[0,zj,0],0,[0,343,0],0,[0,tt,0],0,[0,347,0],0,[0,349,0],0,[0,351,0],0],[0,[0,353,0],0,[0,355,0],0,[0,we,0],0,[0,Vl,0],0,[0,361,0],0,[0,EE,0],0,[0,365,0],0,[0,367,0],0],[0,[0,369,0],0,[0,371,0],0,[0,373,0],0,[0,mE,0],0,[0,GK,0],[0,378,0],0,[0,380,0],0,[0,382,0],0,0],[0,0,[0,595,0],[0,387,0],0,[0,389,0],0,[0,596,0],[0,rB,0],0,[0,598,0],[0,599,0],[0,396,0],0,0,[0,477,0],[0,601,0]],[0,[0,603,0],[0,cO,0],0,[0,608,0],[0,611,0],0,[0,617,0],[0,616,0],[0,iT,0],0,0,0,[0,623,0],[0,626,0],0,[0,629,0]],[0,[0,417,0],0,[0,419,0],0,[0,421,0],0,[0,640,0],[0,Jy,0],0,[0,643,0],0,0,[0,429,0],0,[0,648,0],[0,432,0]],[0,0,[0,650,0],[0,651,0],[0,436,0],0,[0,Xo,0],0,[0,658,0],[0,jx,0],0,0,0,[0,xK,0],0,0,0],[0,0,0,0,0,[0,Iu,0],[0,Iu,0],0,[0,457,0],[0,457,0],0,[0,sI,0],[0,sI,0],0,[0,462,0],0,[0,464,0]],[0,0,[0,466,0],0,[0,468,0],0,[0,470,0],0,[0,jD,0],0,[0,qK,0],0,[0,476,0],0,0,[0,479,0],0],[0,[0,481,0],0,[0,pj,0],0,[0,FA,0],0,[0,M,0],0,[0,SE,0],0,[0,491,0],0,[0,493,0],0,[0,Kt,0],0],[0,0,[0,ig,0],[0,ig,0],0,[0,501,0],0,[0,hr,0],[0,447,0],[0,505,0],0,[0,507,0],0,[0,509,0],0,[0,wa,0],0],[0,[0,513,0],0,[0,515,0],0,[0,517,0],0,[0,519,0],0,[0,521,0],0,[0,523,0],0,[0,525,0],0,[0,527,0],0],[0,[0,529,0],0,[0,531,0],0,[0,533,0],0,[0,535,0],0,[0,537,0],0,[0,539,0],0,[0,541,0],0,[0,543,0],0],[0,[0,414,0],0,[0,547,0],0,[0,549,0],0,[0,551,0],0,[0,553,0],0,[0,555,0],0,[0,557,0],0,[0,559,0],0],[0,[0,561,0],0,[0,563,0],0,0,0,0,0,0,0,[0,11365,0],[0,572,0],0,[0,410,0],[0,11366,0],0],[0,0,[0,578,0],0,[0,XO,0],[0,649,0],[0,652,0],[0,583,0],0,[0,585,0],0,[0,587,0],0,[0,589,0],0,[0,591,0],0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,881,0],0,[0,883,0],0,0,0,[0,887,0],0,0,0,0,0,0,0,0,[0,1011,0]],[0,0,0,0,0,0,0,[0,940,0],0,[0,941,0],[0,942,0],[0,943,0],0,[0,972,0],0,[0,973,0],[0,974,0]],[0,0,[0,945,0],[0,946,0],[0,947,0],[0,948,0],[0,949,0],[0,950,0],[0,951,0],[0,952,0],[0,953,0],[0,954,0],[0,955,0],[0,956,0],[0,957,0],[0,958,0],[0,959,0]],[0,[0,960,0],[0,961,0],0,[0,963,0],[0,964,0],[0,965,0],[0,966,0],[0,967,0],[0,968,0],[0,969,0],[0,970,0],[0,971,0],0,0,0,0],Wxe,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,983,0]],[0,0,0,0,0,0,0,0,0,[0,985,0],0,[0,987,0],0,[0,989,0],0,[0,991,0],0],[0,[0,993,0],0,[0,995,0],0,[0,997,0],0,[0,LP,0],0,[0,1001,0],0,[0,1003,0],0,[0,1005,0],0,[0,1007,0],0],[0,0,0,0,0,[0,952,0],0,0,[0,1016,0],0,[0,1010,0],[0,1019,0],0,0,[0,891,0],[0,892,0],[0,893,0]],[0,[0,1104,0],[0,1105,0],[0,1106,0],[0,1107,0],[0,1108,0],[0,1109,0],[0,1110,0],[0,1111,0],[0,1112,0],[0,1113,0],[0,1114,0],[0,1115,0],[0,1116,0],[0,1117,0],[0,1118,0],[0,1119,0]],[0,[0,Hy,0],[0,1073,0],[0,1074,0],[0,1075,0],[0,1076,0],[0,1077,0],[0,WI,0],[0,1079,0],[0,LT,0],[0,1081,0],[0,1082,0],[0,1083,0],[0,1084,0],[0,1085,0],[0,1086,0],[0,1087,0]],[0,[0,1088,0],[0,1089,0],[0,1090,0],[0,1091,0],[0,1092,0],[0,1093,0],[0,1094,0],[0,1095,0],[0,1096,0],[0,1097,0],[0,1098,0],[0,1099,0],[0,1100,0],[0,1101,0],[0,1102,0],[0,1103,0]],Wxe,Wxe,Wxe,[0,[0,1121,0],0,[0,1123,0],0,[0,1125,0],0,[0,1127,0],0,[0,1129,0],0,[0,1131,0],0,[0,1133,0],0,[0,1135,0],0],[0,[0,1137,0],0,[0,1139,0],0,[0,1141,0],0,[0,1143,0],0,[0,1145,0],0,[0,1147,0],0,[0,1149,0],0,[0,1151,0],0],[0,[0,1153,0],0,0,0,0,0,0,0,0,0,[0,1163,0],0,[0,1165,0],0,[0,1167,0],0],[0,[0,1169,0],0,[0,1171,0],0,[0,1173,0],0,[0,1175,0],0,[0,1177,0],0,[0,1179,0],0,[0,1181,0],0,[0,1183,0],0],[0,[0,1185,0],0,[0,1187,0],0,[0,1189,0],0,[0,1191,0],0,[0,1193,0],0,[0,1195,0],0,[0,1197,0],0,[0,1199,0],0],[0,[0,1201,0],0,[0,1203,0],0,[0,1205,0],0,[0,1207,0],0,[0,1209,0],0,[0,1211,0],0,[0,1213,0],0,[0,1215,0],0],[0,[0,1231,0],[0,1218,0],0,[0,1220,0],0,[0,1222,0],0,[0,1224,0],0,[0,1226,0],0,[0,1228,0],0,[0,1230,0],0,0],[0,[0,1233,0],0,[0,1235,0],0,[0,1237,0],0,[0,1239,0],0,[0,1241,0],0,[0,1243,0],0,[0,1245,0],0,[0,Hn,0],0],[0,[0,1249,0],0,[0,1251,0],0,[0,1253,0],0,[0,ea,0],0,[0,1257,0],0,[0,1259,0],0,[0,1261,0],0,[0,1263,0],0],[0,[0,1265,0],0,[0,1267,0],0,[0,1269,0],0,[0,1271,0],0,[0,1273,0],0,[0,1275,0],0,[0,1277,0],0,[0,1279,0],0],[0,[0,1281,0],0,[0,1283,0],0,[0,1285,0],0,[0,1287,0],0,[0,1289,0],0,[0,1291,0],0,[0,1293,0],0,[0,1295,0],0],[0,[0,1297,0],0,[0,1299,0],0,[0,1301,0],0,[0,1303,0],0,[0,1305,0],0,[0,1307,0],0,[0,1309,0],0,[0,1311,0],0],[0,[0,1313,0],0,[0,1315,0],0,[0,1317,0],0,[0,1319,0],0,[0,1321,0],0,[0,1323,0],0,[0,1325,0],0,[0,1327,0],0],[0,0,[0,1377,0],[0,1378,0],[0,1379,0],[0,1380,0],[0,1381,0],[0,1382,0],[0,1383,0],[0,1384,0],[0,1385,0],[0,1386,0],[0,1387,0],[0,1388,0],[0,1389,0],[0,1390,0],[0,1391,0]],[0,[0,1392,0],[0,1393,0],[0,1394,0],[0,1395,0],[0,1396,0],[0,1397,0],[0,1398,0],[0,1399,0],[0,1400,0],[0,1401,0],[0,1402,0],[0,1403,0],[0,1404,0],[0,1405,0],[0,1406,0],[0,1407,0]],[0,[0,1408,0],[0,1409,0],[0,1410,0],[0,1411,0],[0,1412,0],[0,1413,0],[0,1414,0],0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,11520,0],[0,11521,0],[0,11522,0],[0,11523,0],[0,11524,0],[0,11525,0],[0,11526,0],[0,11527,0],[0,11528,0],[0,11529,0],[0,11530,0],[0,11531,0],[0,11532,0],[0,11533,0],[0,11534,0],[0,11535,0]],[0,[0,11536,0],[0,11537,0],[0,11538,0],[0,11539,0],[0,11540,0],[0,11541,0],[0,11542,0],[0,11543,0],[0,11544,0],[0,11545,0],[0,11546,0],[0,11547,0],[0,11548,0],[0,11549,0],[0,11550,0],[0,11551,0]],[0,[0,11552,0],[0,11553,0],[0,11554,0],[0,11555,0],[0,11556,0],[0,11557,0],0,[0,11559,0],0,0,0,0,0,[0,11565,0],0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,43888,0],[0,43889,0],[0,43890,0],[0,43891,0],[0,43892,0],[0,43893,0],[0,43894,0],[0,43895,0],[0,43896,0],[0,43897,0],[0,43898,0],[0,43899,0],[0,43900,0],[0,43901,0],[0,43902,0],[0,43903,0]],[0,[0,43904,0],[0,43905,0],[0,43906,0],[0,43907,0],[0,43908,0],[0,43909,0],[0,43910,0],[0,43911,0],[0,43912,0],[0,43913,0],[0,43914,0],[0,43915,0],[0,43916,0],[0,43917,0],[0,43918,0],[0,43919,0]],[0,[0,43920,0],[0,43921,0],[0,43922,0],[0,43923,0],[0,43924,0],[0,43925,0],[0,43926,0],[0,43927,0],[0,43928,0],[0,43929,0],[0,43930,0],[0,43931,0],[0,43932,0],[0,43933,0],[0,43934,0],[0,43935,0]],[0,[0,43936,0],[0,43937,0],[0,43938,0],[0,43939,0],[0,43940,0],[0,43941,0],[0,43942,0],[0,43943,0],[0,43944,0],[0,43945,0],[0,43946,0],[0,43947,0],[0,43948,0],[0,43949,0],[0,43950,0],[0,43951,0]],[0,[0,43952,0],[0,43953,0],[0,43954,0],[0,43955,0],[0,43956,0],[0,43957,0],[0,43958,0],[0,43959,0],[0,43960,0],[0,43961,0],[0,43962,0],[0,43963,0],[0,43964,0],[0,43965,0],[0,43966,0],[0,43967,0]],[0,[0,5112,0],[0,5113,0],[0,5114,0],[0,5115,0],[0,5116,0],[0,5117,0],0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,0,0,0,0,0,0,0,0,[0,7306,0],0,0,0,0,0,0],[0,[0,4304,0],[0,4305,0],[0,4306,0],[0,4307,0],[0,4308,0],[0,4309,0],[0,4310,0],[0,4311,0],[0,4312,0],[0,4313,0],[0,4314,0],[0,4315,0],[0,4316,0],[0,4317,0],[0,4318,0],[0,4319,0]],[0,[0,4320,0],[0,4321,0],[0,4322,0],[0,4323,0],[0,4324,0],[0,4325,0],[0,4326,0],[0,4327,0],[0,4328,0],[0,4329,0],[0,4330,0],[0,4331,0],[0,4332,0],[0,4333,0],[0,4334,0],[0,4335,0]],[0,[0,4336,0],[0,4337,0],[0,4338,0],[0,4339,0],[0,4340,0],[0,4341,0],[0,4342,0],[0,4343,0],[0,4344,0],[0,4345,0],[0,4346,0],0,0,[0,4349,0],[0,4350,0],[0,4351,0]],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,7681,0],0,[0,7683,0],0,[0,7685,0],0,[0,7687,0],0,[0,7689,0],0,[0,7691,0],0,[0,7693,0],0,[0,7695,0],0],[0,[0,7697,0],0,[0,7699,0],0,[0,7701,0],0,[0,7703,0],0,[0,7705,0],0,[0,7707,0],0,[0,7709,0],0,[0,7711,0],0],[0,[0,7713,0],0,[0,7715,0],0,[0,7717,0],0,[0,7719,0],0,[0,7721,0],0,[0,7723,0],0,[0,7725,0],0,[0,7727,0],0],[0,[0,7729,0],0,[0,7731,0],0,[0,7733,0],0,[0,7735,0],0,[0,7737,0],0,[0,7739,0],0,[0,7741,0],0,[0,7743,0],0],[0,[0,7745,0],0,[0,7747,0],0,[0,7749,0],0,[0,7751,0],0,[0,7753,0],0,[0,7755,0],0,[0,7757,0],0,[0,7759,0],0],[0,[0,7761,0],0,[0,7763,0],0,[0,7765,0],0,[0,7767,0],0,[0,7769,0],0,[0,7771,0],0,[0,7773,0],0,[0,7775,0],0],[0,[0,7777,0],0,[0,7779,0],0,[0,7781,0],0,[0,7783,0],0,[0,7785,0],0,[0,7787,0],0,[0,7789,0],0,[0,7791,0],0],[0,[0,7793,0],0,[0,7795,0],0,[0,7797,0],0,[0,7799,0],0,[0,7801,0],0,[0,7803,0],0,[0,7805,0],0,[0,7807,0],0],[0,[0,7809,0],0,[0,7811,0],0,[0,7813,0],0,[0,7815,0],0,[0,7817,0],0,[0,7819,0],0,[0,7821,0],0,[0,7823,0],0],[0,[0,7825,0],0,[0,7827,0],0,[0,7829,0],0,0,0,0,0,0,0,0,0,[0,Ga,0],0],[0,[0,7841,0],0,[0,7843,0],0,[0,7845,0],0,[0,7847,0],0,[0,7849,0],0,[0,7851,0],0,[0,7853,0],0,[0,7855,0],0],[0,[0,7857,0],0,[0,7859,0],0,[0,7861,0],0,[0,7863,0],0,[0,7865,0],0,[0,7867,0],0,[0,7869,0],0,[0,7871,0],0],[0,[0,7873,0],0,[0,7875,0],0,[0,7877,0],0,[0,7879,0],0,[0,7881,0],0,[0,7883,0],0,[0,7885,0],0,[0,7887,0],0],[0,[0,7889,0],0,[0,7891,0],0,[0,7893,0],0,[0,7895,0],0,[0,7897,0],0,[0,7899,0],0,[0,7901,0],0,[0,7903,0],0],[0,[0,7905,0],0,[0,7907,0],0,[0,7909,0],0,[0,7911,0],0,[0,7913,0],0,[0,7915,0],0,[0,7917,0],0,[0,7919,0],0],[0,[0,7921,0],0,[0,7923,0],0,[0,7925,0],0,[0,7927,0],0,[0,7929,0],0,[0,7931,0],0,[0,7933,0],0,[0,7935,0],0],[0,0,0,0,0,0,0,0,0,[0,7936,0],[0,7937,0],[0,7938,0],[0,7939,0],[0,7940,0],[0,7941,0],[0,7942,0],[0,7943,0]],[0,0,0,0,0,0,0,0,0,[0,7952,0],[0,7953,0],[0,7954,0],[0,7955,0],[0,7956,0],[0,7957,0],0,0],[0,0,0,0,0,0,0,0,0,[0,7968,0],[0,7969,0],[0,7970,0],[0,7971,0],[0,7972,0],[0,7973,0],[0,7974,0],[0,7975,0]],[0,0,0,0,0,0,0,0,0,[0,7984,0],[0,7985,0],[0,7986,0],[0,7987,0],[0,7988,0],[0,7989,0],[0,7990,0],[0,7991,0]],[0,0,0,0,0,0,0,0,0,[0,8e3,0],[0,8001,0],[0,8002,0],[0,8003,0],[0,8004,0],[0,8005,0],0,0],[0,0,0,0,0,0,0,0,0,0,[0,8017,0],0,[0,8019,0],0,[0,8021,0],0,[0,8023,0]],[0,0,0,0,0,0,0,0,0,[0,8032,0],[0,8033,0],[0,8034,0],[0,8035,0],[0,8036,0],[0,8037,0],[0,8038,0],[0,8039,0]],Wxe,[0,0,0,0,0,0,0,0,0,[0,8064,0],[0,8065,0],[0,8066,0],[0,8067,0],[0,8068,0],[0,8069,0],[0,8070,0],[0,8071,0]],[0,0,0,0,0,0,0,0,0,[0,8080,0],[0,8081,0],[0,8082,0],[0,8083,0],[0,8084,0],[0,8085,0],[0,8086,0],[0,8087,0]],[0,0,0,0,0,0,0,0,0,[0,8096,0],[0,8097,0],[0,8098,0],[0,8099,0],[0,8100,0],[0,8101,0],[0,8102,0],[0,8103,0]],[0,0,0,0,0,0,0,0,0,[0,8112,0],[0,8113,0],[0,8048,0],[0,8049,0],[0,8115,0],0,0,0],[0,0,0,0,0,0,0,0,0,[0,8050,0],[0,8051,0],[0,8052,0],[0,8053,0],[0,8131,0],0,0,0],[0,0,0,0,0,0,0,0,0,[0,8144,0],[0,8145,0],[0,8054,0],[0,8055,0],0,0,0,0],[0,0,0,0,0,0,0,0,0,[0,8160,0],[0,8161,0],[0,8058,0],[0,8059,0],[0,8165,0],0,0,0],[0,0,0,0,0,0,0,0,0,[0,8056,0],[0,8057,0],[0,8060,0],[0,8061,0],[0,8179,0],0,0,0]],[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,0,0,0,0,0,[0,969,0],0,0,0,[0,db,0],[0,hP,0],0,0,0,0],[0,0,0,[0,8526,0],0,0,0,0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,[0,[0,8560,0],[0,8561,0],[0,8562,0],[0,8563,0],[0,8564,0],[0,8565,0],[0,8566,0],[0,8567,0],[0,8568,0],[0,8569,0],[0,8570,0],[0,8571,0],[0,8572,0],[0,8573,0],[0,8574,0],[0,8575,0]],Wxe,[0,0,0,0,[0,8580,0],0,0,0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,0,0,0,0,0,[0,9424,0],[0,9425,0],[0,9426,0],[0,9427,0],[0,9428,0],[0,9429,0],[0,9430,0],[0,9431,0],[0,9432,0],[0,9433,0]],[0,[0,9434,0],[0,9435,0],[0,9436,0],[0,9437,0],[0,9438,0],[0,9439,0],[0,9440,0],[0,9441,0],[0,9442,0],[0,9443,0],[0,9444,0],[0,9445,0],[0,9446,0],[0,9447,0],[0,9448,0],[0,9449,0]],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,11312,0],[0,11313,0],[0,11314,0],[0,11315,0],[0,11316,0],[0,11317,0],[0,11318,0],[0,11319,0],[0,11320,0],[0,11321,0],[0,11322,0],[0,11323,0],[0,11324,0],[0,11325,0],[0,11326,0],[0,11327,0]],[0,[0,11328,0],[0,11329,0],[0,11330,0],[0,11331,0],[0,11332,0],[0,11333,0],[0,11334,0],[0,11335,0],[0,11336,0],[0,11337,0],[0,11338,0],[0,11339,0],[0,11340,0],[0,11341,0],[0,11342,0],[0,11343,0]],[0,[0,11344,0],[0,11345,0],[0,11346,0],[0,11347,0],[0,11348,0],[0,11349,0],[0,11350,0],[0,11351,0],[0,11352,0],[0,11353,0],[0,11354,0],[0,11355,0],[0,11356,0],[0,11357,0],[0,11358,0],[0,11359,0]],Wxe,Wxe,Wxe,[0,[0,11361,0],0,[0,619,0],[0,7549,0],[0,637,0],0,0,[0,11368,0],0,[0,11370,0],0,[0,11372,0],0,[0,593,0],[0,625,0],[0,592,0]],[0,[0,594,0],0,[0,11379,0],0,0,[0,11382,0],0,0,0,0,0,0,0,0,[0,575,0],[0,576,0]],[0,[0,11393,0],0,[0,11395,0],0,[0,11397,0],0,[0,11399,0],0,[0,11401,0],0,[0,11403,0],0,[0,11405,0],0,[0,11407,0],0],[0,[0,11409,0],0,[0,11411,0],0,[0,11413,0],0,[0,11415,0],0,[0,11417,0],0,[0,11419,0],0,[0,11421,0],0,[0,11423,0],0],[0,[0,11425,0],0,[0,11427,0],0,[0,11429,0],0,[0,11431,0],0,[0,11433,0],0,[0,11435,0],0,[0,11437,0],0,[0,11439,0],0],[0,[0,11441,0],0,[0,11443,0],0,[0,11445,0],0,[0,11447,0],0,[0,11449,0],0,[0,11451,0],0,[0,11453,0],0,[0,11455,0],0],[0,[0,11457,0],0,[0,11459,0],0,[0,11461,0],0,[0,11463,0],0,[0,11465,0],0,[0,11467,0],0,[0,11469,0],0,[0,11471,0],0],[0,[0,11473,0],0,[0,11475,0],0,[0,11477,0],0,[0,11479,0],0,[0,11481,0],0,[0,11483,0],0,[0,11485,0],0,[0,11487,0],0],[0,[0,11489,0],0,[0,11491,0],0,0,0,0,0,0,0,0,[0,11500,0],0,[0,11502,0],0,0],[0,0,0,[0,11507,0],0,0,0,0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,42561,0],0,[0,42563,0],0,[0,42565,0],0,[0,42567,0],0,[0,42569,0],0,[0,42571,0],0,[0,42573,0],0,[0,42575,0],0],[0,[0,42577,0],0,[0,42579,0],0,[0,42581,0],0,[0,42583,0],0,[0,42585,0],0,[0,42587,0],0,[0,42589,0],0,[0,42591,0],0],[0,[0,42593,0],0,[0,42595,0],0,[0,42597,0],0,[0,42599,0],0,[0,42601,0],0,[0,42603,0],0,[0,42605,0],0,0,0],Wxe,[0,[0,42625,0],0,[0,42627,0],0,[0,42629,0],0,[0,42631,0],0,[0,42633,0],0,[0,42635,0],0,[0,42637,0],0,[0,42639,0],0],[0,[0,42641,0],0,[0,42643,0],0,[0,42645,0],0,[0,42647,0],0,[0,42649,0],0,[0,42651,0],0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,0,[0,42787,0],0,[0,42789,0],0,[0,42791,0],0,[0,42793,0],0,[0,42795,0],0,[0,42797,0],0,[0,42799,0],0],[0,0,0,[0,42803,0],0,[0,42805,0],0,[0,42807,0],0,[0,42809,0],0,[0,42811,0],0,[0,42813,0],0,[0,42815,0],0],[0,[0,42817,0],0,[0,42819,0],0,[0,42821,0],0,[0,42823,0],0,[0,42825,0],0,[0,42827,0],0,[0,42829,0],0,[0,42831,0],0],[0,[0,42833,0],0,[0,42835,0],0,[0,42837,0],0,[0,42839,0],0,[0,42841,0],0,[0,42843,0],0,[0,42845,0],0,[0,42847,0],0],[0,[0,42849,0],0,[0,42851,0],0,[0,42853,0],0,[0,42855,0],0,[0,42857,0],0,[0,42859,0],0,[0,42861,0],0,[0,42863,0],0],[0,0,0,0,0,0,0,0,0,0,[0,42874,0],0,[0,42876,0],0,[0,7545,0],[0,42879,0],0],[0,[0,42881,0],0,[0,42883,0],0,[0,42885,0],0,[0,42887,0],0,0,0,0,[0,42892,0],0,[0,613,0],0,0],[0,[0,42897,0],0,[0,42899,0],0,0,0,[0,42903,0],0,[0,42905,0],0,[0,42907,0],0,[0,42909,0],0,[0,42911,0],0],[0,[0,42913,0],0,[0,42915,0],0,[0,42917,0],0,[0,42919,0],0,[0,42921,0],0,[0,614,0],[0,604,0],[0,609,0],[0,620,0],[0,618,0],0],[0,[0,670,0],[0,647,0],[0,669,0],[0,43859,0],[0,42933,0],0,[0,42935,0],0,[0,42937,0],0,[0,42939,0],0,[0,42941,0],0,[0,42943,0],0],[0,[0,42945,0],0,[0,42947,0],0,[0,42900,0],[0,642,0],[0,7566,0],[0,42952,0],0,[0,42954,0],0,[0,612,0],[0,42957,0],0,[0,42959,0],0],[0,[0,42961,0],0,[0,42963,0],0,[0,42965,0],0,[0,42967,0],0,[0,42969,0],0,[0,42971,0],0,[0,Hh,0],0,0,0],Wxe,[0,0,0,0,0,0,[0,42998,0],0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],Wxe,Wxe,Wxe,Wxe,[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,0,[0,65345,0],[0,65346,0],[0,65347,0],[0,65348,0],[0,65349,0],[0,65350,0],[0,65351,0],[0,65352,0],[0,65353,0],[0,65354,0],[0,65355,0],[0,65356,0],[0,65357,0],[0,65358,0],[0,65359,0]],[0,[0,65360,0],[0,65361,0],[0,65362,0],[0,65363,0],[0,65364,0],[0,65365,0],[0,65366,0],[0,65367,0],[0,65368,0],[0,65369,0],[0,65370,0],0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,66600,0],[0,66601,0],[0,66602,0],[0,66603,0],[0,66604,0],[0,66605,0],[0,66606,0],[0,66607,0],[0,66608,0],[0,66609,0],[0,66610,0],[0,66611,0],[0,66612,0],[0,66613,0],[0,66614,0],[0,66615,0]],[0,[0,66616,0],[0,66617,0],[0,66618,0],[0,66619,0],[0,66620,0],[0,66621,0],[0,66622,0],[0,66623,0],[0,66624,0],[0,66625,0],[0,66626,0],[0,66627,0],[0,66628,0],[0,66629,0],[0,66630,0],[0,66631,0]],[0,[0,66632,0],[0,66633,0],[0,66634,0],[0,66635,0],[0,66636,0],[0,66637,0],[0,66638,0],[0,66639,0],0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,66776,0],[0,66777,0],[0,66778,0],[0,66779,0],[0,66780,0],[0,66781,0],[0,66782,0],[0,66783,0],[0,66784,0],[0,66785,0],[0,66786,0],[0,66787,0],[0,66788,0],[0,66789,0],[0,66790,0],[0,66791,0]],[0,[0,66792,0],[0,66793,0],[0,66794,0],[0,66795,0],[0,66796,0],[0,66797,0],[0,66798,0],[0,66799,0],[0,66800,0],[0,66801,0],[0,66802,0],[0,66803,0],[0,66804,0],[0,66805,0],[0,66806,0],[0,66807,0]],[0,[0,66808,0],[0,66809,0],[0,66810,0],[0,66811,0],0,0,0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,66967,0],[0,66968,0],[0,66969,0],[0,66970,0],[0,66971,0],[0,66972,0],[0,66973,0],[0,66974,0],[0,66975,0],[0,66976,0],[0,66977,0],0,[0,66979,0],[0,66980,0],[0,66981,0],[0,66982,0]],[0,[0,66983,0],[0,66984,0],[0,66985,0],[0,66986,0],[0,66987,0],[0,66988,0],[0,66989,0],[0,66990,0],[0,66991,0],[0,66992,0],[0,66993,0],0,[0,66995,0],[0,66996,0],[0,66997,0],[0,66998,0]],[0,[0,66999,0],[0,67e3,0],[0,67001,0],0,[0,67003,0],[0,67004,0],0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,68800,0],[0,68801,0],[0,68802,0],[0,68803,0],[0,68804,0],[0,68805,0],[0,68806,0],[0,68807,0],[0,68808,0],[0,68809,0],[0,68810,0],[0,68811,0],[0,68812,0],[0,68813,0],[0,68814,0],[0,68815,0]],[0,[0,68816,0],[0,68817,0],[0,68818,0],[0,68819,0],[0,68820,0],[0,68821,0],[0,68822,0],[0,68823,0],[0,68824,0],[0,68825,0],[0,68826,0],[0,68827,0],[0,68828,0],[0,68829,0],[0,68830,0],[0,68831,0]],[0,[0,68832,0],[0,68833,0],[0,68834,0],[0,68835,0],[0,68836,0],[0,68837,0],[0,68838,0],[0,68839,0],[0,68840,0],[0,68841,0],[0,68842,0],[0,68843,0],[0,68844,0],[0,68845,0],[0,68846,0],[0,68847,0]],[0,[0,68848,0],[0,68849,0],[0,68850,0],0,0,0,0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,68976,0],[0,68977,0],[0,68978,0],[0,68979,0],[0,68980,0],[0,68981,0],[0,68982,0],[0,68983,0],[0,68984,0],[0,68985,0],[0,68986,0],[0,68987,0],[0,68988,0],[0,68989,0],[0,68990,0],[0,68991,0]],[0,[0,68992,0],[0,68993,0],[0,68994,0],[0,68995,0],[0,68996,0],[0,68997,0],0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,71872,0],[0,71873,0],[0,71874,0],[0,71875,0],[0,71876,0],[0,71877,0],[0,71878,0],[0,71879,0],[0,71880,0],[0,71881,0],[0,71882,0],[0,71883,0],[0,71884,0],[0,71885,0],[0,71886,0],[0,71887,0]],[0,[0,71888,0],[0,71889,0],[0,71890,0],[0,71891,0],[0,71892,0],[0,71893,0],[0,71894,0],[0,71895,0],[0,71896,0],[0,71897,0],[0,71898,0],[0,71899,0],[0,71900,0],[0,71901,0],[0,71902,0],[0,71903,0]],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],Wxe,Wxe,Wxe,Wxe,[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,93792,0],[0,93793,0],[0,93794,0],[0,93795,0],[0,93796,0],[0,93797,0],[0,93798,0],[0,93799,0],[0,93800,0],[0,93801,0],[0,93802,0],[0,93803,0],[0,93804,0],[0,93805,0],[0,93806,0],[0,93807,0]],[0,[0,93808,0],[0,93809,0],[0,93810,0],[0,93811,0],[0,93812,0],[0,93813,0],[0,93814,0],[0,93815,0],[0,93816,0],[0,93817,0],[0,93818,0],[0,93819,0],[0,93820,0],[0,93821,0],[0,93822,0],[0,93823,0]],Wxe,Wxe,Wxe,Wxe,[0,[0,93883,0],[0,93884,0],[0,93885,0],[0,93886,0],[0,93887,0],[0,93888,0],[0,93889,0],[0,93890,0],[0,93891,0],[0,93892,0],[0,93893,0],[0,93894,0],[0,93895,0],[0,93896,0],[0,93897,0],[0,93898,0]],[0,[0,93899,0],[0,93900,0],[0,93901,0],[0,93902,0],[0,93903,0],[0,93904,0],[0,93905,0],[0,93906,0],[0,93907,0],0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,[0,[0,125218,0],[0,125219,0],[0,125220,0],[0,125221,0],[0,125222,0],[0,125223,0],[0,125224,0],[0,125225,0],[0,125226,0],[0,125227,0],[0,125228,0],[0,125229,0],[0,125230,0],[0,125231,0],[0,125232,0],[0,125233,0]],[0,[0,125234,0],[0,125235,0],[0,125236,0],[0,125237,0],[0,125238,0],[0,125239,0],[0,125240,0],[0,125241,0],[0,125242,0],[0,125243,0],[0,125244,0],[0,125245,0],[0,125246,0],[0,125247,0],[0,125248,0],[0,125249,0]],[0,[0,125250,0],[0,125251,0],0,0,0,0,0,0,0,0,0,0,0,0,0,0],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe],Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe,Wxe]],qQe=[0,0,[0,[0,"\0\0\0\0\0\0\0\0þÿÿ\0\0\0\0\0\0\0\0\0\0\0\0ÿÿ\0\0\0\0","UUUUUUUªªTUUUUU+ÖÎÛ±ÕÒ®¤ªJUUÒU","UUUUUUlzU\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0E€@×þÿû\0\0\0€UUUæ","ÿÿÿÿÿÿ\0\0\0\0\0\0UUUUTUUUUUU«*UUUUUU","UUUUUUþÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz],[0,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ¿ \0\0\0\0\0\0",Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿ?\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿç\0\0\0\0\0\0\0\0",Zz,"UUUUUUUUUUUUUUUUUU@UUUUUUUUUUUU","\0ÿ\0?\0ÿ\0ÿ\0?\0ª\0ÿ\0\0\0\0\0\0\0\0\0\0\0\0\0"],[0,Zz,"„8'>P=À \0\0\0ÿÿ\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Àÿÿÿ\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,"ÿÿÿÿÿÿ\0\0\0\0\0\0ê%ÀUUUUUUUUUUUU(\0",Zz,Zz,Zz],Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,[0,Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0\0\0\0\0UUUUU\0\0UUU\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0TUTUUUUUUU\0jU(EUU}_UõZU\0\0 \0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz],Sxe,Sxe,Sxe,Sxe,[0,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0þÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"],[0,Zz,Zz,Zz,Zz,"ÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿ÷ÿ÷7\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0ÿÿ?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz],[0,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz],Sxe,Sxe,Sxe,Sxe,[0,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0ÿÿÿ\0\0\0\0\0\0\0\0",Zz],Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,[0,Zz,Zz,Zz,Zz,"ÿÿÿ\0\0ðÿÿ?\0\0\0ÿÿÿ\0\0ÐdÞ?\0\0\0ÿÿÿ\0\0","°çß\0\0\0{_ü\0\0ðÿÿ?\0\0\0ÿÿÿ\0\0ðÿÿ?\0\0","\0ÿÿÿ\0\0ðÿÿ?\0\0\0ÿÿÿ\0\0\0ÿÿÿ\0\0\0üÿÿ","\0\0\0ðÿÿ\0\0\0Àÿÿ\0\0\0\0ÿÿÿ\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz],[0,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,"ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz],[0,Zz,ror,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz],Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe]],IQe=[0,0,[0,[0,"\0\0\0\0\0\0\0\0\0\0\0\0þÿÿ\0\0\0\0\0 \0\0\0€ÿÿÿ","ªªªªªªªUU«ªªªªªÔ)1$N*-Qæ@RUµªª)ª","ªªªªªªú“…ªÿÿÿÿÿÿÿÿÏÿÿÿÿ\0\0\0\0\0\0","\0\0\0\0\0\0\0\0 \0\0\0\0\0Š<\0\0\0\0ðÿÿÿ㪪ª/","\0\0\0\0\0\0ÿÿÿÿÿÿªªªª¨ªªªªªªTÕªªªªªª","ªªªªªª\0\0\0\0\0\0ÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz],[0,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿ÷",Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0",nor,"ªªªªªªªªªªªªªªªªªªê¿ªªªªªªªªªªªª","ÿ\0?\0ÿ\0ÿ\0?\0ÿ\0ÿ\0ÿ?ÿ\0ÿ\0ÿ\0ß@Ü\0Ï\0ÿ\0Ü\0"],[0,tor,"\0Ä\b\0\0€2ÀC\0\0\0\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿ\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0\0\0ÿÿÿÿÿÿbÚ?ªªªªªªªªªªªªP\b\0","ÿÿÿÿ¿ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz],Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,[0,Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0\0\0\0\0ªªªªª*\0\0ªªª:\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0¨ª«ªªªªªªªÿ•ªPºªª‚ ª\n¥ª\n\0\0^",Zz,Zz,Zz,"\0\0\0\0\0\0ÿÿÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz],Sxe,Sxe,Sxe,Sxe,[0,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,"\0ø\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,"\0\0\0\0\0\0\0\0þÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"],[0,Zz,Zz,Zz,Zz,"\0\0\0\0\0ÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€ÿûÿû\0\0\0\0\0\0\0\0",Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¹ÿÿÿÿÿý\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿ\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿ?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz],[0,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz],Sxe,Sxe,Sxe,Sxe,[0,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0øÿÿ\0\0\0\0\0",Zz],Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,[0,Zz,Zz,Zz,Zz,"\0\0\0üÿÿ\0\0Àßÿÿ\0\0\0üÿÿ\0\0Àëïÿ\0\0\0üÿÿ","\0\0Àÿÿÿ\0\0\0üÿÿ\0\0Àÿÿÿ\0\0\0üÿÿ\0\0Àÿÿ","ÿ\0\0\0üÿÿ\0\0Àÿÿÿ\0\0\0üÿÿ?\0\0\0üÿÿ÷\0\0ð","ÿÿß\0\0Àÿÿ?\0\0\0ÿÿÿý\0\0\0üÿÿ÷\v\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,"ÿûÿà\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"],[0,"\0\0\0\0\0\0ÿÿÿÿÿÿÿ?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0üÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz],Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe]],DQe=[0,0,[0,[0,"\0>\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz],[0,Zz,Zz,Zz,Zz,Zz,Zz,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz],[0,"ÿ\0\0\0ƒ\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz],[0,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz,Zz],Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe,Sxe]];function EQe(r,n,t){r:{n:{t:{switch(n){case 2:if(3>>0)break r;break n;case 3:if(4===t)break n;break t;case 4:if(3===t)break n;if(5===t)break n;break t;case 5:var e=t-4|0;if(10>>0)break t;switch(e){case 0:case 2:case 10:break n;default:break t}case 6:if(5===t)break n;break t;case 7:if(12<=t){if(13<=t)break r;return function(r){var n=wwe(r),t=PL(dye[25],n),e=kxe(t);if(63wd&&(n-=wd,r*=Math.pow(2,wd),n>wd&&(n-=wd,r*=Math.pow(2,wd))),n<-wd&&(n+=wd,r*=Math.pow(2,-wd)),r*Math.pow(2,n)}(rV(f?v:ZH(v,wvr)),a)}else o=rV(Gxe(t));return[10,PL(cve,o)]}}if(8<=t)break n;break r;case 8:if(9===t)break n;break;case 9:if(8===t||10===t)break n;break;case 10:if(9===t||11===t)break n;break;case 11:var a=t+Mv|0;if(2>=a>>>0)switch(a){case 2:return function(r){var n=Dwe(r);return[10,PL(cve,rV(Gxe(PL(Tye[25],n))))]};case 1:break;default:break n}break;case 12:var u=t-7|0;if(6>>0)break r;switch(u){case 0:return function(r){var n=aye(Mwe(r));return[1,PL(dye[26],n)]};case 4:return function(r){var n=aye(Mwe(r));return[5,Tye[26].call(null,n)]};case 6:return function(r){return[11,PL(Zye,PL(Kye,Mwe(r)))]};default:break r}case 13:if(12===t)return function(r){return[10,PL(Oye,PL(Pye,Pwe(r)))]};break r;default:break r}if(7===t)break n;break r}if(2!==t)break r}return function(e){try{var a=vge(n)(e),u=function(r){switch(r){case 2:return function(r){return[1,PL(xye[26],r)]};case 3:return function(r){return[6,wye[26].call(null,r)]};case 4:return function(r){return[7,gye[26].call(null,r)]};case 5:return function(r){return[8,qye[26].call(null,r)]};case 6:return function(r){return[9,Iye[26].call(null,r)]};case 7:return function(r){return[1,PL(dye[26],r)]};case 8:return function(r){return[2,Dye[26].call(null,r)]};case 9:return function(r){return[3,Eye[26].call(null,r)]};case 10:return function(r){return[4,Nye[26].call(null,r)]};case 11:return function(r){return[5,Tye[26].call(null,r)]};case 14:return function(r){var n=Fxe(r);n:if(Xn<=n){if(He<=n&&Gs>n)break n;throw kQ([0,zL,"character value out of bounds"],1)}return[12,n]};default:throw kQ([0,zL,"Value.of_big_int_trap: "+che([2,r])],1)}}(t)(a);return u}catch(u){var f=iL(u);if(f[1]===zL)return PL(r[1],f[2]);throw kQ(f,0)}}}var f=che([2,t]),i="Value.num_conv_trap_prim: "+che([2,n])+f;return PL(r[1],i)}function NQe(r){var n=r[2];return function(r){return function(r,n,t){return coe(function(n){return function(t){var e=t[2][1],a=t[1];return e?tge(r,n,[0,a,e[1]]):qfe(n,For)}},[0,n,t])}(n,1,r)}}function TQe(r){return k2(r,dQe)}function FQe(r,n){return k2(function(t){return function(r,n){for(var t=r[2];;){if(!t)return Roe(r[1],[0,n]),r[2]=0,0;let a=t[1][1];var e=t[2];k2(function(r){return PL(a,n)},dQe),t=e}}(r,n)},dQe)}function MQe(r,n){if("number"!=typeof n&&15===n[0]){var t=n[1];if(t){var e=t[2];if(e&&!e[2]){var a=e[1];return k2(function(n){return function(r,n){for(var t=r[2];;){if(!t)return Roe(r[1],[1,n]),r[2]=0,0;let a=t[1][2];var e=t[2];k2(function(r){return PL(a,n)},dQe),t=e}}(r,[15,[0,[17,fnn,Xz],[0,a,0]]])},dQe)}}}throw kQ([0,YL,inn],1)}function PQe(r,n,t,e){var a=[0,[0,0],0];function u(r){return MQe(a,r)}if(r[1][1]){var f=Wle(n);PL(bQe(unn),f)}return k2(function(e){if(r[1][1]){var f=Wle(n);PL(bQe(ann),f)}return sQe[1]++,UL(t,function(n){if(r[1][1]){var t=lQe(r)(n);PL(bQe(enn),t)}return sQe[1]--,FQe(a,n)},u)},dQe),PL(e,[21,a])}function UQe(r,n){return dwe(1,1,function(t,e,a){var u=wwe(e),f=PL(xye[20],r.length-1);if(!UL(xye[14],u,f))return oQe(n,Wrn);var i=PL(xye[19],u);return PL(a,vC(r,i)[i+1])})}function GQe(r,n){return dwe(2,0,function(t,e,a){var u=Hwe(e),f=u[2],i=wwe(u[1]),c=PL(xye[20],r.length-1);if(!UL(xye[14],i,c))return oQe(n,Zrn);var v=PL(xye[19],i);return vC(r,v)[v+1]=f,PL(a,Srn)})}function $Qe(r,n){return dwe(0,1,function(n,t,e){return Cwe(t),PL(e,[1,PL(xye[20],r.length-1)])})}function KQe(r,n){return dwe(0,1,function(n,t,e){Cwe(t);var a=[0,0],u=dwe(0,1,function(n,t,e){if(a[1]===r.length-1)return PL(e,0);var u=[16,[1,PL(xye[20],a[1])]];return a[1]++,PL(e,u)});return PL(e,[19,pwe[6].call(null,zrn,u)])})}function OQe(r,n){return dwe(0,1,function(n,t,e){Cwe(t);var a=[0,0],u=dwe(0,1,function(n,t,e){if(a[1]===r.length-1)return PL(e,0);var u=a[1],f=vC(r,u)[u+1],i="number"==typeof f?f:23===f[0]?f[1][1]:f;return a[1]++,PL(e,[16,i])});return PL(e,[19,pwe[6].call(null,Lrn,u)])})}function RQe(r,n){return dwe(0,1,function(n,t,e){Cwe(t);var a=[0,0],u=dwe(0,1,function(n,t,e){if(a[1]===HH(r))return PL(e,0);var u=VV(r,a[1]),f=[16,[6,wye[20].call(null,u)]];return a[1]++,PL(e,f)});return PL(e,[19,pwe[6].call(null,Vrn,u)])})}function QQe(r,n){return dwe(1,1,function(t,e,a){var u=wwe(e),f=PL(xye[20],HH(r));if(!UL(xye[14],u,f))return oQe(n,Hrn);var i=VV(r,PL(xye[19],u));return PL(a,[6,wye[20].call(null,i)])})}function CQe(r,n){return dwe(0,1,function(n,t,e){return Cwe(t),PL(e,[1,PL(xye[20],HH(r))])})}function HQe(r,n){return dwe(0,1,function(n,t,e){Cwe(t);var a=[0,0],u=dwe(0,1,function(n,t,e){if(a[1]===HH(r))return PL(e,0);var u=[16,[1,PL(xye[20],a[1])]];return a[1]++,PL(e,u)});return PL(e,[19,pwe[6].call(null,Crn,u)])})}function VQe(r,n){return dwe(0,1,function(n,t,e){Cwe(t);var a=[0,0],u=xoe(r),f=dwe(0,1,function(r,n,t){var e=LY(u);if(a[1]===e)return PL(t,0);var f=[16,[12,ZY(u,a[1])]];return a[1]++,PL(t,f)});return PL(e,[19,pwe[6].call(null,Qrn,f)])})}function LQe(r,n){return dwe(0,1,function(n,t,e){Cwe(t);var a=LY(xoe(r));return PL(e,[1,PL(xye[20],a)])})}function zQe(r,n,t,e){function a(r){return"number"!=typeof r&&23===r[0]?PL(e,r[1][1]):PL(e,r)}if(!Nce[1])return r<50?ZQe(r+1|0,n,t,a):aL(ZQe,[0,n,t,a]);if(pQe[1]=pQe[1]+1|0,pQe[1]===mQe[1])throw kQ([0,vQe,"interpreter reached step limit"],1);return 0>>0)return function(r){return PL(Tt[1],"float_formatter: unrecognised mode")};switch(n){case 0:return PL(R3(QAr),r);case 1:return PL(R3(CAr),r);case 2:return PL(R3(HAr),r);default:return PL(R3(VAr),r)}}}var Pt=function(r){var n=UC(r,u);r:{n:{t:{e:{if(0>n){var t=UC(r,Wy);if(0>t){var e=UC(r,mr);if(0>e){var a=UC(r,HT);if(0<=a){if(0>=a)break n;if(r===No)return function(r,n,t){var e=v1(Owe(n));function a(r){var n=Ewe(zwe(r)[1]);return RY(PL(wye[19],n))}return PL(t,[14,e1(function(r){return DY(a,e)})])};if(r===ld)return function(r,n,t){var e=v1(Owe(n));function a(r){var n=Ewe(r);return RY(PL(wye[19],n))}return PL(t,[14,e1(function(r){return DY(a,e)})])};if(r===lu)return function(r,n,t){var e=Owe(n).length-1;return PL(t,[1,PL(dye[20],e)])};if(r===no)break n;if(r===zo)return function(r,n,t){var e=t1($we(n));function a(r){return[6,wye[20].call(null,r)]}return PL(t,[18,o1(function(r){return DY(a,e)})])};if(r!==aI)break r;return function(r,n,t){var e=t1($we(n));function a(r){return[23,[0,[6,wye[20].call(null,r)]]]}return PL(t,[18,o1(function(r){return DY(a,e)})])}}if(r===sD)return function(r,n,t){var e=Qwe(n);if(e){var a=e[2];if(a&&!a[2]){var u=a[1],f=wwe(e[1]);return PL(t,[18,a1(PL(dye[19],f),function(r){return[23,[0,u]]})])}}throw kQ([0,YL,PAr],1)};if(r===Sw)return function(r,n,t){var e=Qwe(n);if(e){var a=e[2];if(a&&!a[2]){var u=a[1],f=wwe(e[1]),i=PL(dye[19],f),c=Lwe(u)[2],v=function(n,t,e){return e===i?PL(t,[18,c1(PL(n,0))]):GL(c,r,[1,PL(dye[20],e)],function(r){return v(function(t){return PL(n,[0,r,t])},t,e+1|0)})};return v(function(r){return r},t,0)}}throw kQ([0,YL,UAr],1)};if(r===zw)return function(r,n,t){var e=Qwe(n);if(e){var a=e[2];if(a&&!a[2]){var u=a[1],f=wwe(e[1]),i=PL(dye[19],f),c=Lwe(u)[2],v=function(n,t,e){return e===i?PL(t,[18,c1(PL(n,0))]):GL(c,r,[1,PL(dye[20],e)],function(r){return v(function(t){return PL(n,[0,[23,[0,r]],t])},t,e+1|0)})};return v(function(r){return r},t,0)}}throw kQ([0,YL,GAr],1)};if(r===WE)return function(r,n,t){return PL(t,[13,$ye(Mwe(n))])};if(r===$N)return function(r,n,t){return PL(t,[13,Mye(Pwe(n))])};if(r!==gx)break r;return function(r,n,t){var e=wwe(n);return PL(t,[1,PL(xye[4],e)])}}if(0>=e)return function(r,n,t){var e=Qwe(n);if(e){var a=e[2];if(a&&!a[2]){var u=e[1],f=$we(a[1]),i=$we(u),c=i===f?0:SV(i,f)?-1:1;return PL(t,[2,Dye[20].call(null,c)])}}throw kQ([0,YL,FAr],1)};var f=UC(r,HM);if(0<=f){if(0=t)return function(r,n,t){return PL(t,[8,qye[2]])};var i=UC(r,$U);a:{if(0>i){var c=UC(r,bF);if(0<=c){if(0=v)return function(r,n,t){var e=Eye[20].call(null,GK),a=qwe(n);function u(r){var n=Eye[20].call(null,r),t=Eye[38].call(null,a,n),u=Eye[34],f=PL(function(r){return u(e,r)},t),i=PL(Eye[19],f);return[6,wye[20].call(null,i)]}var f=[0,u(0),0];return PL(t,[15,[0,u(8),f]])};if(r===DB)return function(r,n,t){var e=Nye[20].call(null,GK),a=Iwe(n);return PL(t,[15,YY(function(r){var n=Nye[20].call(null,r),t=Nye[38].call(null,a,n),u=Nye[34],f=PL(function(r){return u(e,r)},t),i=PL(Nye[19],f);return[6,wye[20].call(null,i)]},DAr)])};if(r===Qy)return function(r,n,t){var e=Tye[20].call(null,GK),a=Dwe(n);return PL(t,[15,YY(function(r){var n=Tye[20].call(null,r),t=Tye[38].call(null,a,n),u=Tye[34],f=PL(function(r){return u(e,r)},t),i=PL(Tye[19],f);return[6,wye[20].call(null,i)]},EAr)])};if(r===XU)return function(r,n,t){var e=gye[20].call(null,GK),a=Nwe(n);function u(r){var n=gye[20].call(null,r),t=gye[38].call(null,a,n),u=gye[34],f=PL(function(r){return u(e,r)},t),i=PL(gye[19],f);return[6,wye[20].call(null,i)]}var f=[0,u(0),0];return PL(t,[15,[0,u(8),f]])};if(r===Wm)return function(r,n,t){var e=qye[20].call(null,GK),a=Twe(n);return PL(t,[15,YY(function(r){var n=qye[20].call(null,r),t=qye[38].call(null,a,n),u=qye[34],f=PL(function(r){return u(e,r)},t),i=PL(qye[19],f);return[6,wye[20].call(null,i)]},NAr)])};if(r===JU)return function(r,n,t){var e=Iye[20].call(null,GK),a=Fwe(n);return PL(t,[15,YY(function(r){var n=Iye[20].call(null,r),t=Iye[38].call(null,a,n),u=Iye[34],f=PL(function(r){return u(e,r)},t),i=PL(Iye[19],f);return[6,wye[20].call(null,i)]},TAr)])};if(r!==IU)break r;return function(r,n,t){return PL(t,[10,PL(uwe,Mwe(n))])}}if(r!==dn&&r!==vP&&r!==yf&&r!==Bo&&r!==js){if(r!==x)break r;return function(r,n,t){return Cwe(n),PL(t,[9,Iye[2]])}}}}return function(r,n,t){a:{if("number"!=typeof n)switch(n[0]){case 2:var e=[2,Dye[33].call(null,n[1])];break a;case 3:e=[3,Eye[33].call(null,n[1])];break a;case 4:e=[4,Nye[33].call(null,n[1])];break a;case 5:e=[5,Tye[33].call(null,n[1])];break a;case 6:e=[6,wye[33].call(null,n[1])];break a;case 7:e=[7,gye[33].call(null,n[1])];break a;case 8:e=[8,qye[33].call(null,n[1])];break a;case 9:e=[9,Iye[33].call(null,n[1])];break a}e=VJ("ctz")}return PL(t,e)}}if(0>=n)return function(r,n,t){return PL(t,[10,PL(Oye,Math.acos(PL(Kye,Mwe(n))))])};var o=UC(r,q);if(0<=o){if(0=s)break e;if(r===DT)break t;if(r===wx)return function(r,n,t){var e=LY(xoe(Gwe(n)));return PL(t,[1,PL(xye[20],e)])};if(r===Jp)return function(r,n,t){return PL(t,[13,X0(Gwe(n))])};if(r===Ab)return function(r,n,t){return PL(t,[13,W0(Gwe(n))])};if(r===nh)return function(r,n,t){return Cwe(n),PL(t,[9,Iye[20].call(null,42)])};if(r!==Nh)break r;return function(r,n,t){var e="explicit trap: "+Gwe(n);return PL(Tt[1],e)}}if(r!==iA&&r!==zU){if(r===R)return function(r,n,t){return Cwe(n),PL(t,pAr)};if(r===TO)return function(r,n,t){return PL(t,Xz)};if(r===fp)return function(r,n,t){var e=Qwe(n);if(e){var a=e[2];if(a&&!a[2]){var u=e[1],f=Gwe(a[1]),i=Gwe(u),c=i===f?0:SV(i,f)?-1:1;return PL(t,[2,Dye[20].call(null,c)])}}throw kQ([0,YL,mAr],1)};if(r!==ob)break r;return function(r,n,t){var e=h0(xoe(Gwe(n)));function a(r){return[12,r]}return PL(t,[24,[0,function(r){return DY(a,e)}]])}}}}else{var b=UC(r,$P);if(0<=b){if(0l){var B=UC(r,Wp);if(0<=B){if(0>=B)return function(r,n,t){return PL(t,[10,PL(Oye,Math.exp(PL(Kye,Mwe(n))))])};if(r===Ua)return function(r,n,t){return PL(t,[10,PL(cwe,Mwe(n))])};if(r===bd)return function(r,n,t){return PL(t,[10,PL(Oye,Math.log(PL(Kye,Mwe(n))))])};if(r===gr)return function(r,n,t){var e=Qwe(n);if(e){var a=e[2];if(a&&!a[2]){var u=e[1],f=Mwe(a[1]);return PL(t,[10,UL(owe,Mwe(u),f)])}}throw kQ([0,YL,yAr],1)};if(r===vq)return function(r,n,t){var e=Qwe(n);if(e){var a=e[2];if(a&&!a[2]){var u=e[1],f=Mwe(a[1]);return PL(t,[10,UL(Awe,Mwe(u),f)])}}throw kQ([0,YL,wAr],1)};if(r===ee)return function(r,n,t){var e=Qwe(n);if(e){var a=e[2];if(a){var u=a[2];if(u&&!u[2]){var f=u[1],i=a[1],c=PL(Kye,Mwe(e[1])),v=Ft(f);return PL(t,[13,PL(Mt(Ft(i))(v),c)])}}}throw kQ([0,YL,gAr],1)};if(r!==Xd)break r;return function(r,n,t){return PL(t,[10,PL(fwe,Mwe(n))])}}if(r===Tc)return function(r,n,t){return PL(t,[10,PL(Oye,Math.asin(PL(Kye,Mwe(n))))])};if(r===ra)return function(r,n,t){return PL(t,[10,PL(Oye,Math.atan(PL(Kye,Mwe(n))))])};if(r===UB)return function(r,n,t){var e=Qwe(n);if(e){var a=e[2];if(a&&!a[2]){var u=e[1],f=PL(Kye,Mwe(a[1]));return PL(t,[10,PL(Oye,Math.atan2(PL(Kye,Mwe(u)),f))])}}throw kQ([0,YL,qAr],1)};if(r===TI)return function(r,n,t){return PL(t,[10,PL(vwe,Mwe(n))])};if(r===QB)return function(r,n,t){var e=Qwe(n);if(e){var a=e[2];if(a&&!a[2]){var u=e[1],f=Mwe(a[1]);return PL(t,[10,UL(ewe,Mwe(u),f)])}}throw kQ([0,YL,IAr],1)};if(r!==mT)break r;return function(r,n,t){return PL(t,[10,PL(Oye,Math.cos(PL(Kye,Mwe(n))))])}}if(0>=l)return function(r,n,t){return PL(t,[10,PL(Oye,Math.sin(PL(Kye,Mwe(n))))])};var j=UC(r,aM);if(0>j){if(r===vN)return function(r,n,t){return PL(t,[10,PL(swe,Mwe(n))])};if(r===Av)return function(r,n,t){return PL(t,[10,PL(Oye,Math.tan(PL(Kye,Mwe(n))))])};if(r===CI)return function(r,n,t){return PL(t,[10,PL(iwe,Mwe(n))])};if(r===Mp)return function(r,n,t){return Cwe(n),PL(t,0)};if(r===Q_)return function(r,n,t){var e=Mxe(SBe(Gwe(n)));return PL(t,[8,qye[41].call(null,e)])};if(r!==_d)break r;return function(r,n,t){var e=Qwe(n);if(e){var a=e[2];if(a&&!a[2]){var u=e[1],f=Twe(a[1]),i=PL(qye[25],f),c=PL(dye[26],i),v=PL(dye[20],2),o=UL(dye[11],v,c),A=wwe(u);return PL(t,[1,UL(dye[8],A,o)])}}return VJ(xAr)}}if(0=k)return function(r,n,t){return PL(t,[14,Gwe(n)])};var p=UC(r,bw);if(0<=p){if(0>=p)return function(r,n,t){return Cwe(n),PL(t,lAr)};if(r===uo)return function(r,n,t){return PL(t,Xz)};if(r===m$)return function(r,n,t){return PL(t,Xz)};if(r===hO)return function(r,n,t){var e=rfe(Swe(n),0);return PL(t,e?[16,e[1]]:0)};if(r===Ew)return function(r,n,t){var e=Swe(n);return Yue(e,0,"Weak.check"),PL(t,[0,bH(e,0)])}}else{if(r===rc)return function(r,n,t){return PL(t,0)};if(r===bR)return function(r,n,t){return PL(t,[18,c1(0)])};if(r===Bi)return function(r,n,t){return PL(t,[15,[0,[8,qye[2]],[0,[8,qye[2]],[0,[8,qye[2]],0]]]])};if(r===cv)return function(r,n,t){return PL(t,[15,[0,[8,qye[2]],[0,[8,qye[2]],0]]])};if(r===AP)return function(r,n,t){return PL(t,BAr)}}}else{var m=UC(r,Zd);if(0<=m){if(0>=m)return function(r,n,t){return PL(t,[0,Zxe(IQe,VY(Uwe(n)))])};if(r===CG)return function(r,n,t){return PL(t,[0,Zxe(qQe,VY(Uwe(n)))])};if(r===Yy)return function(r,n,t){return PL(t,[0,Zxe(DQe,VY(Uwe(n)))])};if(r===Ng)return function(r,n,t){var e=Xxe(gQe,VY(Uwe(n)));if("number"==typeof e)return PL(t,n);var a=e[2];return a&&!a[2]?PL(t,[12,a[1]]):PL(t,n)};if(r===cx)return function(r,n,t){var e=Xxe(wQe,VY(Uwe(n)));if("number"==typeof e)return PL(t,n);var a=e[2];return a&&!a[2]?PL(t,[12,a[1]]):PL(t,n)};if(r===Yt)return function(r,n,t){var e=$we(n);try{xoe(e)}catch(r){var a=iL(r);if(a===gve)return PL(t,0);throw kQ(a,0)}return PL(t,[16,[13,e]])}}else{if(r===Sc)return function(r,n,t){var e=lH(1);return Yue(e,0,"Weak.set"),mH(e,0,n),PL(t,[25,e])};if(r===Cd)return function(r,n,t){return Cwe(n),PL(t,jAr)};if(r===Kr)return function(r,n,t){return Cwe(n),PL(t,kAr)};if(r===Tp)return function(r,n,t){return Cwe(n),PL(t,[9,Iye[20].call(null,42)])};if(r===K_)return function(r,n,t){return PL(t,[0,Zxe(yQe,VY(Uwe(n)))])}}}return PL(Tt[1],"Value.prim: "+r)}var d=Y0(95,r);if(d){var _=d[2];if(_){var h=_[2];if(h){var w=h[2];if(w&&!w[2]){var g=w[1],I=_me(h[1]),D=_me(g);return function(r,n,t){return PL(t,function(r,n,t,e){try{var a=vge(n)(e);switch(t){case 3:var u=function(r){return[6,wye[41].call(null,r)]};break;case 4:u=function(r){return[7,gye[41].call(null,r)]};break;case 5:u=function(r){return[8,qye[41].call(null,r)]};break;case 6:u=function(r){return[9,Iye[41].call(null,r)]};break;case 8:u=function(r){return[2,Dye[41].call(null,r)]};break;case 9:u=function(r){return[3,Eye[41].call(null,r)]};break;case 10:u=function(r){return[4,Nye[41].call(null,r)]};break;case 11:u=function(r){return[5,Tye[41].call(null,r)]};break;default:throw kQ([0,zL,"Value.of_big_int_wrap: "+che([2,t])],1)}return u(a)}catch(a){var f=iL(a);if(f[1]===zL)return PL(r[1],f[2]);throw kQ(f,0)}}(Tt,I,D,n))}}}}}throw kQ([0,YL,RAr],1)}var E=Y0(95,r);if(E){var N=E[2];if(N){var T=N[2];if(T){var F=T[2];if(F&&!F[2]){var M=F[1],P=_me(T[1]),U=_me(M);return function(r,n,t){return PL(t,PL(EQe(Tt,P,U),n))}}}}}throw kQ([0,YL,KAr],1)}(Nt);return PL(f,[20,Jxe(a[3][1]),Pt])}function WQe(r,n,t,e){var a=n[1]?pwe[4].call(null,rS,t,r[3]):r[3],u=n[2]?pwe[4].call(null,nS,e,a):a;return[0,r[1],r[2],u,r[4],r[5],r[6],r[7],r[8]]}function XQe(r,n,t,e){if(!t)return PL(e,[19,pwe[1]]);var a=t[1];return r<50?zQe(r+1|0,n,a,e):aL(zQe,[0,n,a,e])}function JQe(r,n,t,e,a){if(!t)return PL(a,XY(e));var u=t[1],f=t[2];function i(r){return function(r,n,t,e){return eL(JQe(0,r,n,t,e))}(n,f,[0,r,e],a)}return r<50?zQe(r+1|0,n,u,i):aL(zQe,[0,n,u,i])}function YQe(r,n,t,e){if(!n)return PL(e,t);var a=n[1],u=n[2];return SQe(r,a[2][3],function(n){var f=a[2][1][2]?[23,[0,n]]:n;return YQe(r,u,pwe[4].call(null,a[2][2][2],f,t),e)})}function rCe(r){var n=[0,0];return pwe[6].call(null,r[2],n)}function nCe(r){r:{var n=r;n:for(;;){var t=n[2];if("number"!=typeof t)switch(t[0]){case 0:return rCe(t[1]);case 3:break r;case 4:break n;case 6:n=t[2];continue;case 1:case 2:break;default:n=t[1];continue}return pwe[1]}for(var e=t[1],a=pwe[1];;){if(!e)return a;var u=e[2],f=e[1][2],i=0===f[0]?[0,f[2]]:0;if(i){var c=nCe(i[1]);e=u,a=pwe[48].call(null,a,c)}else e=u}}for(var v=t[1],o=pwe[1];;){if(!v)return o;var A=v[2],s=nCe(v[1]);v=A,o=pwe[48].call(null,o,s)}}function tCe(r,n,t){return eCe(r,n[2],t)}function eCe(r,n,t){return Roe(AQe(n,r[2]),t)}function aCe(r,n){var t=r[1];if("number"==typeof t){if("number"==typeof n)return 1}else switch(t[0]){case 0:if("number"!=typeof n&&0===n[0])return t[1]===n[1]?1:0;break;case 1:case 6:if("number"!=typeof n&&1===n[0])return UL(dye[12],t[1],n[1]);break;case 2:if("number"!=typeof n&&6===n[0])return UL(wye[12],t[1],n[1]);break;case 3:if("number"!=typeof n&&7===n[0])return UL(gye[12],t[1],n[1]);break;case 4:if("number"!=typeof n&&8===n[0])return UL(qye[12],t[1],n[1]);break;case 5:if("number"!=typeof n&&9===n[0])return UL(Iye[12],t[1],n[1]);break;case 7:if("number"!=typeof n&&2===n[0])return UL(Dye[12],t[1],n[1]);break;case 8:if("number"!=typeof n&&3===n[0])return UL(Eye[12],t[1],n[1]);break;case 9:if("number"!=typeof n&&4===n[0])return UL(Nye[12],t[1],n[1]);break;case 10:if("number"!=typeof n&&5===n[0])return UL(Tye[12],t[1],n[1]);break;case 11:if("number"!=typeof n&&10===n[0])return dH(t[1],n[1]);break;case 12:if("number"!=typeof n&&11===n[0])return dH(t[1],n[1]);break;case 13:if("number"!=typeof n&&12===n[0])return t[1]===n[1]?1:0;break;case 14:if("number"!=typeof n&&13===n[0])return t[1]===n[1]?1:0;break;case 15:if("number"!=typeof n&&14===n[0])return t[1]===n[1]?1:0;break;default:throw kQ([0,YL,_rn],1)}return 0}function uCe(r,n){r:{var t=r,e=n;n:for(;;){var a=t[2];if("number"==typeof a)return[0,pwe[1]];switch(a[0]){case 0:var u=a[1],f=Ooe(e);return[0,pwe[6].call(null,u[2],f)];case 1:return aCe(a[1],e)?[0,pwe[1]]:0;case 2:var i=a[2],c=sge(a[1],ede(t[3]))(e);t=[0,,[1,i],t[3]],e=c;break;case 3:break r;case 4:break n;case 5:var v=a[1];if("number"==typeof e)return 0;if(16!==e[0])throw kQ([0,YL,hrn],1);t=v,e=e[1];break;case 6:var o=a[2],A=a[1],s=Rwe(e),b=s[2];if(A[2]!==s[1])return 0;t=o,e=b;break;case 7:var l=a[2],B=uCe(a[1],e);if(B)return B;t=l;break;default:t=a[1]}}for(var j=a[1],k=pwe[1],p=Vwe(e);;){if(!j)return[0,k];var m=j[1][2];if(0===m[0]){var d=m[2],_=j[2],h=uCe(d,pwe[28].call(null,m[1][2],p));if(!h)return 0;j=_,k=pwe[48].call(null,k,h[1])}else j=j[2]}}for(var x=a[1],y=pwe[1],w=x,g=Qwe(e),q=y;;){if(w){if(g){var I=g[2],D=w[2],E=uCe(w[1],g[1]);if(!E)return 0;w=D,g=I,q=pwe[48].call(null,q,E[1]);continue}}else if(!g)return[0,q];throw kQ([0,YL,xrn],1)}}function fCe(r,n,t,e,a,u){if(1!==t){var f=cCe(a,pwe[1],pwe[1]),i=f[1],c=aQe(n,f[2]);return r<50?vCe(r+1|0,c,a,i,u):aL(vCe,[0,c,a,i,u])}var v=Xwe(),o=[14,v];if(e)var A=e[1],s=Ooe(o),b=aQe(n,pwe[6].call(null,A[2],s));else b=n;var l=cCe(a,pwe[1],pwe[1]),B=l[1],j=aQe([0,b[1],b[2],b[3],b[4],b[5],b[6],v,b[8]],l[2]);function k(r){var t=pwe[4].call(null,v,r,n[8][1]);return n[8][1]=t,PL(u,o)}return r<50?vCe(r+1|0,j,a,B,k):aL(vCe,[0,j,a,B,k])}function iCe(r,n,t,e,a){return eL(fCe(0,r,n,t,e,a))}function cCe(r,n,t){for(var e=r,a=n,u=t;;){if(!e)return[0,a,u];var f=e[1][2],i=f[2],c=e[2],v=sCe(f[1]);e=c,a=0===i[2]?a:pwe[48].call(null,a,v),u=pwe[48].call(null,u,v)}}function vCe(r,n,t,e,a){if(!t)return PL(a,[19,pwe[34].call(null,Coe,e)]);var u=t[1][2][1],f=t[2];function i(r){return function(r,n,t,e){return eL(vCe(0,r,n,t,e))}(n,f,e,a)}return r<50?bCe(r+1|0,n,u,i):aL(bCe,[0,n,u,i])}function oCe(r,n,t,e,a){for(var u=t,f=pwe[1];;){if(!u){e&&(e[1][1]=f);var i=aQe(n,f);return r<50?lCe(r+1|0,i,t,a):aL(lCe,[0,i,t,a])}var c=u[2],v=sCe(u[1]);u=c,f=pwe[48].call(null,f,v)}}function ACe(r,n,t,e){return eL(oCe(0,r,n,t,e))}function sCe(r){var n=r[2];switch(n[0]){case 1:return nCe(n[1]);case 2:return rCe(n[1]);case 4:var t=n[4];return rCe([0,t[1],t[2],0]);case 6:throw kQ([0,YL,wrn],1);default:return pwe[1]}}function bCe(r,n,t,e){var a=t[2];switch(a[0]){case 0:var u=a[1];return r<50?zQe(r+1|0,n,u,e):aL(zQe,[0,n,u,e]);case 1:var f=a[3],i=a[2],c=a[1],v=function(r){if(function(r,n,t){var e=uCe(n,t);return e?(pwe[12].call(null,function(n,t){return eCe(r,n,Coe(t))},e[1]),1):0}(n,c,r))return PL(e,r);if(f)return SQe(n,f[1],function(r){throw kQ([0,YL,grn],1)});var t=lQe(n)(r);return PL(oQe(c[1],qrn),t)};return r<50?zQe(r+1|0,n,i,v):aL(zQe,[0,n,i,v]);case 2:var o=a[2],A=a[1],s=function(r){return tCe(n,A,[23,[0,r]]),PL(e,Xz)};return r<50?zQe(r+1|0,n,o,s):aL(zQe,[0,n,o,s]);case 4:var b=a[9],l=a[8],B=a[4],j=a[3],k=a[6],p=a[2],m=function(r,n){if(1===j[2])return PQe(r,Lle,function(n,t){var e=aQe(r,rCe(l));return iCe([0,e[1],e[2],pwe[1],e[4],[0,n],[0,t],e[7],e[8]],j[2],[0,l],b,n)},n);var t=aQe(r,rCe(l));return iCe(t,j[2],0,b,function(r){return tCe(t,l,r),PL(n,r)})},d=B[2],_=[20,Jxe(t[3][1]),function(r,t,e){return BCe(n,d,p,k,m,r,t,e)}];return tCe(n,[0,B[1],B[2],0],_),PL(e,_);case 6:return oQe(t[1],Irn);default:return PL(e,Xz)}}function lCe(r,n,t,e){if(!t)return PL(e,Xz);var a=t[1];if(!t[2])return r<50?bCe(r+1|0,n,a,e):aL(bCe,[0,n,a,e]);var u=t[2];function f(r){return function(r,n,t){return eL(lCe(0,r,n,t))}(n,u,e)}return r<50?bCe(r+1|0,n,a,f):aL(bCe,[0,n,a,f])}function BCe(r,n,t,e,a,u,f,i){if(r[1][1]){var c=BQe(r,f);UL(bQe(Ern),n,c)}var v=[19,pwe[6].call(null,Nrn,u)],o=t[2];if(o){var A=o[1][2],s=uCe(A,v);if(s)var b=s[1];else{var l=lQe(r)(v);b=PL(oQe(A[1],yrn),l)}}else b=pwe[1];var B=uCe(e,f);if(B){var j=B[1];sQe[1]++;var k=function(n){if(r[1][1]){var t=lQe(r)(n);PL(bQe(Drn),t)}return sQe[1]--,PL(i,n)},p=r[8],m=r[7],d=r[6],_=r[4],h=pwe[1],x=pwe[48].call(null,b,j),y=pwe[48].call(null,r[2],x);return UL(a,[0,r[1],y,h,_,[0,k],d,m,p],k)}var w=lQe(r)(f);return PL(oQe(e[1],Trn),w)}function jCe(r){return YY(function(r){return r[2][2]},r)}function kCe(r,n){return YY(function(n){var t=n[2],e=t[1],a=n[3],u=[0,e,PL(r,t[2])];return[0,n[1],u,a]},n)}function pCe(r,n){return u0(function(r,n){return[0,r[1],[0,r[2][1],n],r[3]]},r,n)}function mCe(r,n,t){r:{n:{t:{if("number"==typeof t)switch(t){case 0:case 1:break r;case 7:case 8:break t;case 9:case 10:case 2:case 3:case 12:case 13:case 14:case 15:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:return t;case 4:case 5:case 6:break n}else switch(t[0]){case 0:return[0,YY(r,t[1])];case 1:var e=t[2];return[1,PL(r,t[1]),e];case 2:var a=t[2];return[2,PL(r,t[1]),a];case 3:var u=t[2];return[3,PL(r,t[1]),u];case 8:return[8,t[1],PL(r,t[2])];case 9:return[9,PL(n,t[1])];case 11:return[11,PL(r,t[1])];case 12:return[12,YY(r,t[1])];case 13:return[13,YY(r,t[1])];case 14:return[14,YY(r,t[1])];case 17:var f=t[1],i=PL(r,t[2]);return[17,PL(r,f),i];case 18:return[18,PL(r,t[1])];case 19:return[19,PL(r,t[1])];case 21:return[21,t[1],PL(r,t[2])];case 22:return[22,t[1],PL(r,t[2])];case 23:return[23,YY(r,t[1])];case 24:return[24,PL(r,t[1])];case 25:return[25,PL(r,t[1])];case 26:return[26,PL(r,t[1])];case 27:return[27,PL(r,t[1])];case 10:break n;case 20:break;case 15:case 16:break t;default:break r}return t}return t}return t}return t}var dCe=aBe([0,r1]),_Ce=O1([0,r1]);function hCe(r,n,t){var e=n[2]||t[2];return[0,[0,n[1]||t[1],e]]}var xCe=dCe[9];function yCe(r,n){return xCe(hCe,r,n)}function wCe(r,n){var t=YY(r,n);return e0(yCe,dCe[1],t)}function gCe(r,n,t){return[0,n]}var qCe=dCe[9];function ICe(r,n){return qCe(gCe,r,n)}function DCe(r){return[0,dCe[1],r]}function ECe(r,n){var t=r[2];return[0,UL(yCe,r[1],n),t]}function NCe(r,n){for(var t=YY(r,n),e=[0,dCe[1],dCe[1]];;){if(!t)return e;var a=t[1],u=t[2],f=a[1],i=e[1],c=dCe[9].call(null,function(r,n,t){return[0,n]},e[2],a[2]);t=u,e=[0,UL(yCe,i,f),c]}}function TCe(r,n){return dCe[8].call(null,function(r,n,t){return t?0:n},r,n)}function FCe(r,n){return _Ce[16].call(null,function(n,t){return dCe[4].call(null,n,r,t)},n,dCe[1])}function MCe(r){return dCe[13].call(null,function(r,n,t){return _Ce[4].call(null,r,t)},r,_Ce[1])}function PCe(r,n){return UL(yCe,n[1],TCe(r,n[2]))}function UCe(r){return xnn}var GCe=dCe[34];function $Ce(r){return GCe(UCe,r)}function KCe(r){return MCe(dCe[16].call(null,function(r,n){return n[1]},r))}function OCe(r){return TCe(r[1],r[2])}function RCe(r){for(var n=r;;){var t=n[2];if("number"!=typeof t)switch(t[0]){case 0:return dCe[6].call(null,t[1],n[3]);case 2:return QCe(t[1]);case 3:return QCe(jCe(t[1]));case 4:n=t[1];continue;case 5:n=t[2];continue;case 6:var e=t[1],a=RCe(t[2]);return UL(ICe,RCe(e),a)}return dCe[1]}}function QCe(r){var n=YY(RCe,r);return e0(ICe,dCe[1],n)}function CCe(r){var n=dCe[6].call(null,r[2],r[3]);return[0,dCe[1],n]}function HCe(r){return dCe[6].call(null,r,hnn)}function VCe(r){return wCe(function(r){var n=[0,zme(r[3]),1];return dCe[6].call(null,r[2][2],n)},r)}function LCe(r){for(var n=r;;){var t=n[2];switch(t[0]){case 0:return ZCe(t[1][2]);case 1:return HCe(t[2]);case 2:return dCe[1];case 3:var e=t[1],a=LCe(t[2]);return UL(yCe,WCe(e),a);case 4:var u=t[1],f=u[1],i=LCe(u[2]);return OCe(ECe(nHe(f),i));case 5:return ZCe([0,t[1],[0,t[2],[0,t[3],0]]]);case 6:var c=t[1],v=JCe(t[2]);return UL(yCe,LCe(c),v);case 7:n=t[1];break;case 10:var o=t[1],A=LCe(t[3]);return dCe[7].call(null,o,A);case 11:var s=t[1],b=LCe(t[3]);return UL(yCe,HCe(s),b);case 12:var l=t[7],B=NCe(CCe,t[5]);return PL($Ce,PCe(LCe(l),B));case 13:var j=t[2],k=ZCe([0,t[3],[0,t[4],[0,t[5],0]]]);return UL(yCe,PL($Ce,LCe(j)),k);case 14:return zCe(t[1],t[2],t[3]);case 15:return VCe(t[2]);case 16:var p=t[3],m=t[2],d=t[1],_=p?HCe(p[1][1]):dCe[1],h=JCe(m);return UL(yCe,UL(yCe,LCe(d),h),_);default:n=t[3]}}}function zCe(r,n,t){var e=SCe(t),a=VCe(n);return OCe(ECe(ECe(nHe(r),a),e))}function SCe(r){var n=r[7],t=r[6],e=r[5],a=r[4],u=r[3],f=r[2],i=PL($Ce,LCe(r[8])),c=PL($Ce,LCe(n)),v=PL($Ce,LCe(t)),o=PL($Ce,LCe(e)),A=PL($Ce,LCe(a)),s=PL($Ce,LCe(u));return UL(yCe,UL(yCe,UL(yCe,UL(yCe,UL(yCe,UL(yCe,PL($Ce,LCe(f)),s),A),o),v),c),i)}function ZCe(r){return wCe(LCe,r)}function WCe(r){var n=r[2];switch(n[0]){case 0:return HCe(n[1]);case 1:return ZCe([0,n[1],[0,n[2],0]]);default:return LCe(n[1])}}function XCe(r){var n=DCe(RCe(r[2][1]));return PCe(LCe(r[2][2]),n)}function JCe(r){return wCe(XCe,r)}function YCe(r){var n=r[2];switch(n[0]){case 0:var t=n[1],e=LCe(n[2]);return ECe(DCe(RCe(t)),e);case 1:var a=n[2],u=n[1],f=LCe(n[3]);return ECe(DCe(dCe[6].call(null,u,a)),f);default:var i=n[2],c=n[1],v=WCe(n[3]);return ECe(DCe(dCe[6].call(null,c,i)),v)}}function rHe(r){var n=LCe(r);return YY(function(r){return r[1]},dCe[20].call(null,n))}function nHe(r){return NCe(YCe,r)}function tHe(r,n){return r||n?1:0}function eHe(r,n,t){return e0(tHe,r,YY(n,t))}function aHe(r,n){return eHe(0,r,n)}function uHe(r){return r[3][1]}function fHe(r){return r[3][2]}function iHe(r,n){if("number"!=typeof r)switch(r[0]){case 0:if(n){var t=n[2];if(t&&!t[2]){var e=n[1],a=Mde(uHe(e));return a||Pde(uHe(e))}}break;case 20:if(r[1]===kh)return 1}return 0}function cHe(r,n){r:{if("number"==typeof r){if(6!==r)break r}else if(10!==r[0])break r;return 1}return iHe(r,n)?1:aHe(fHe,n)}function vHe(r){if(!r)return 0;var n=r[2];return tHe(fHe(r[1][2][2]),vHe(n))}function oHe(r){var n=r[2];switch(n[0]){case 0:var t=n[2];break;case 1:t=n[3];break;default:var e=n[3][2];if(2===e[0])return fHe(e[1]);throw kQ([0,YL,ynn],1)}return fHe(t)}var AHe=R1([0,r1]),sHe=[0,AHe[1]];function bHe(r,n){var t=MY(AHe[29].call(null,r,sHe[1]),0);return sHe[1]=AHe[4].call(null,r,t+1|0,sHe[1]),UL(R3(Xnn),r,t)}function lHe(r,n){return bHe(r)}function BHe(r,n){return[0,bHe(r),n]}function jHe(r,n){return n0(function(n,t){return BHe(UL(R3(Wnn),r,n),t)},n)}function kHe(r,n,t){return[0,Lle,[0,r,n,t],0]}function pHe(r){return[0,Lle,[0,r[1]],r[2]]}function mHe(r){return[0,Lle,[2,r],[7,YY(function(r){return r[3]},r)]]}var dHe=[0,Lle,0,0];function _He(r){var n=r[2],t=r[1],e=_X[4],a=_X[3],u=_X[2],f=[0,ede(n),u,a,e],i=zme(n)?1:0;return[0,Lle,[1,i,t],f]}function hHe(r,n){r:{n:{if("number"==typeof r)switch(r){case 26:break;case 13:var t=Nz;break n;case 25:t=Mz;break n;case 15:t=Pz;break n;case 32:t=Gz;break n;case 27:t=Kz;break n;case 2:case 14:t=ede(ode(zY(n)[3][1]));break n;case 10:case 30:t=Uz;break n;case 12:case 17:case 18:case 21:t=Tz;break n;default:break r}else switch(r[0]){case 13:t=hme(r[1]);break n;case 14:t=[6,hme(r[1])];break n;case 17:t=r[2];break n;case 20:var e=r[1],a=UC(e,Ba);if(0<=a){if(0>=a){t=Nz;break n}var u=UC(e,iA);if(0>u){if(e===hl){t=Tz;break n}if(e===yu){t=Tz;break n}if(e===eb){t=Tz;break n}if(e===jP){t=Tz;break n}if(e===Oc){t=Tz;break n}if(e!==Ev)break r;t=Tz;break n}if(0>=u){t=Tz;break n}if(e===R){t=Uz;break n}if(e===TO){t=Ez;break n}if(e===wx){t=Tz;break n}if(e===Nh){t=1;break n}if(e!==hO){if(e!==Ew)break r;t=Nz;break n}var f=Ume(zY(n)[3][1]);t:{if("number"==typeof f){if(1===f){var i=1;break t}}else if(12===f[0]){i=f[1];break t}i=Sme("as_weak_sub")}t=[6,i];break n}var c=UC(e,Mp);if(0<=c){if(0>=c){t=bme;break n}if(e===Sg){t=Mz;break n}if(e===AP){t=Nz;break n}if(e===QI){t=Nz;break n}if(e===bP){t=Tz;break n}if(e===CF){t=Tz;break n}if(e!==Kj)break r;t=Tz;break n}if(e===Sc){t=[12,zY(n)[3][1]];break n}if(e===lu){t=Tz;break n}if(e===Ux){t=Tz;break n}if(e===aO){t=Uz;break n}if(e===Wy){t=Fz;break n}if(e===rc){t=Uz;break n}if(e!==bR)break r;t=[5,Uz];break n;case 23:break;case 3:t=Nz;break n;case 26:t=Mz;break n;case 11:t=Uz;break n;case 12:t=Gz;break n;case 24:case 27:t=Ez;break n;case 2:case 18:case 25:t=r[1];break n;default:break r}t=1}var v=aHe(fHe,n);return[0,Lle,[0,[0,r,n]],[0,t,v,_X[3],_X[4]]]}throw kQ([0,YL,Znn],1)}function xHe(r){return[0,Lle,[0,[0,[19,r],0]],[0,r,_X[2],_X[3],_X[4]]]}function yHe(r){var n=_X[4],t=_X[3];return[0,Lle,[0,[0,5,[0,r,0]]],[0,Ez,fHe(r),t,n]]}function wHe(r,n,t,e){var a=_X[4],u=_X[3],f=0===r?1:0;return[0,Lle,[9,r,n,t,e],[0,[9,r,e,uHe(t)],f,u,a]]}function gHe(r,n){var t=nde(Pme(uHe(n)))[3];return[0,Lle,[0,[0,[10,r],[0,n,0]]],[0,t,1,_X[3],_X[4]]]}function qHe(r,n,t,e){var a=_X[4],u=_X[3];return[0,Lle,[0,[0,[22,r,n],[0,e,0]]],[0,[9,r,n,t],fHe(e),u,a]]}function IHe(r,n,t,e){if("number"!=typeof n&&8===n[0]&&!n[1]&&!n[2]&&!n[3]){var a=n[5],u=_X[4],f=_X[3],i=fHe(e),c=tHe(fHe(t),i);return[0,Lle,[0,[0,[21,r,n],[0,t,[0,e,0]]]],[0,hme(a),c,f,u]]}throw kQ([0,YL,Snn],1)}function DHe(r,n){r:{if(r&&!r[2]){if(j_e(0,n[3][1],r[1]))break r;throw kQ([0,YL,Lnn],1)}if(!j_e(0,[7,r],n[3][1]))throw kQ([0,YL,znn],1)}var t=_X[4],e=_X[3];return[0,Lle,[0,[0,[23,r],[0,n,0]]],[0,Ez,fHe(n),e,t]]}function EHe(r){var n=_X[4],t=_X[3];return[0,Lle,[0,[0,26,[0,r,0]]],[0,Ez,fHe(r),t,n]]}function NHe(r,n){var t=Ume(uHe(r));if("number"!=typeof t&&7===t[0]){var e=t[1],a=_X[4],u=_X[3],f=fHe(r);return[0,Lle,[0,[0,[4,n],[0,r,0]]],[0,ZY(e,n),f,u,a]]}return VJ("projE")}function THe(r){var n=_X[4],t=_X[3],e=fHe(r);return[0,Lle,[0,[0,1,[0,r,0]]],[0,[6,uHe(r)],e,t,n]]}function FHe(r,n){var t=_X[4],e=_X[3],a=fHe(n);return[0,Lle,[0,[0,[5,r],[0,n,0]]],[0,[4,[0,[0,r,uHe(n),Spe],0]],a,e,t]]}function MHe(r){var n=r[2];switch(n[0]){case 0:var t=n[2];break;case 1:t=n[3];break;default:var e=n[3][2];if(2===e[0])return fHe(e[1]);throw kQ([0,YL,Vnn],1)}return fHe(t)}function PHe(r){for(var n=r,t=0;;){if(!n)return XY(t);var e=n[1],a=e[2];r:{var u=n[2];if(0===a[0]){var f=a[1][2];if("number"==typeof f){var i=a[2][2];if(0===i[0]){var c=i[1],v=c[1];if("number"==typeof v&&!v&&!c[2]){var o=0;break r}}}else if(2===f[0]){var A=f[1],s=a[2][2];if(0===s[0]){var b=s[1],l=b[1];if("number"==typeof l&&!l){var B=b[2],j=LY(B);if(LY(A)===j){o=PHe(u0(function(r,n){return Vle([0,r,n],r[1])},A,B));break r}}}}}o=[0,e,0]}n=u,t=WY(o,t)}}function UHe(r,n){var t=PHe(r);if(!t)return n;var e=uHe(n),a=eHe(fHe(n),MHe,t);return[0,Lle,[4,[0,t,n]],[0,e,a,_X[3],_X[4]]]}function GHe(r){return[0,Lle,[2,[14,r]],[0,Uz,_X[2],_X[3],_X[4]]]}function $He(r){return[0,Lle,[2,[15,r]],[0,Gz,_X[2],_X[3],_X[4]]]}function KHe(r){return[0,Lle,[2,[0,r]],[0,Nz,_X[2],_X[3],_X[4]]]}function OHe(r){return[0,Lle,Hnn,[0,Cnn,_X[2],_X[3],_X[4]]]}function RHe(r,n,t,e,a,u,f){var i=YY(function(r){return r[2][1]},e),c=YY(function(r){var n=r[2],t=n[2],e=n[1],a=Ime(i,n[3]);return[0,e[1],t,a]},e),v=YY(function(r){return Ime(i,r[3])},a),o=[8,n,t,c,v,YY(function(r){return Ime(i,r)},u)];return[0,Lle,[12,r,n,t,e,a,u,f],[0,o,0,_X[3],_X[4]]]}function QHe(r,n,t){var e=Ume(uHe(r));r:{if("number"==typeof e){if(1===e){var a=1;break r}}else if(8===e[0]){var u=e[2],f=YY(function(r){return Tme(n,r)},e[5]);switch(u){case 2:a=Dz;break r;case 0:a=hme(f);break r;default:var i=hme(f);a=[9,0,zY(n),i];break r}}throw kQ([0,zL,"callE expect a function"],1)}var c=[0,n],v=[0,r,[0,t,0]],o=_X[4],A=_X[3];return[0,Lle,[0,[0,c,v]],[0,a,cHe(c,v),A,o]]}function CHe(r,n,t){var e=_X[4],a=_X[3],u=fHe(t),f=tHe(fHe(n),u),i=tHe(fHe(r),f),c=uHe(t);return[0,Lle,[5,r,n,t],[0,T_e(0,uHe(n),c),i,a,e]]}function HHe(r){return KHe(0)}function VHe(r){return KHe(1)}function LHe(r){return hHe([3,Nz,0],[0,r,[0,HHe(),0]])}function zHe(r,n){return CHe(r,n,HHe())}function SHe(r,n){return CHe(r,VHe(),n)}function ZHe(r){if(!r)return VHe();var n=r[1];return r[2]?zHe(n,ZHe(r[2])):n}function WHe(r,n,t){var e=_X[4],a=_X[3];return[0,Lle,[0,[0,[6,n],[0,r,0]]],[0,t,fHe(r),a,e]]}function XHe(r,n,t,e,a){var u=_X[4],f=_X[3],i=fHe(e),c=tHe(fHe(n),i),v=[0,a,tHe(fHe(r),c),f,u],o=[0,[0,Lle,[0,[0,Lle,[4,t],uHe(r)],e],0],0];return[0,Lle,[6,r,[0,[0,Lle,[0,[0,Lle,Qnn,uHe(r)],n],0],o]],v]}function JHe(r,n,t){var e=_X[4],a=_X[3],u=[0,t,eHe(fHe(r),function(r){return fHe(r[3])},n),a,e];return[0,Lle,[6,r,YY(function(n){var t=n[3],e=n[2],a=n[1];return[0,Lle,[0,[0,Lle,[5,a,e],uHe(r)],t],0]},n)],u]}function YHe(r){var n=aHe(fHe,r),t=_X[4],e=_X[3];return[0,Lle,[0,[0,0,r]],[0,[7,YY(uHe,r)],n,e,t]]}function rVe(r){return YHe(0)}function nVe(r,n){var t=_X[4],e=_X[3];return[0,Lle,[0,[0,[9,r],[0,n,0]]],[0,1,fHe(n),e,t]]}function tVe(r){var n=_X[4],t=_X[3];return[0,Lle,[0,[0,4,[0,r,0]]],[0,1,fHe(r),t,n]]}function eVe(r){var n=_X[4],t=_X[3],e=fHe(r),a=[0,ede(uHe(r)),e,t,n];return[0,r[1],r[2],a]}function aVe(r,n){if(!zme(r[2]))throw kQ([0,YL,Rnn],1);var t=_X[4],e=_X[3],a=[0,Ez,fHe(n),e,t];return[0,Lle,[3,[0,Lle,[0,r[1]],r[2]],n],a]}function uVe(r,n){return aVe([0,r,[10,ede(uHe(n))]],n)}function fVe(r,n,t){var e=_X[4],a=_X[3];return[0,Lle,[8,r,n,t],[0,n,fHe(t),a,e]]}function iVe(r){var n=_X[4],t=_X[3];return[0,Lle,[7,r],[0,1,fHe(r),t,n]]}function cVe(r,n,t){return[0,Lle,[11,r,n,t],[0,Ez,_X[2],_X[3],_X[4]]]}function vVe(r,n,t){return[0,Lle,[15,r,n,t],[0,t,_X[2],_X[3],_X[4]]]}function oVe(r,n){return Vle([0,r,n],Lle)}function AVe(r,n){return oVe(pHe(r),n)}function sVe(r,n){var t=r[2];if(!zme(t))throw kQ([0,YL,Onn],1);var e=ede(t);return Vle([1,r[1],e,n],Lle)}function bVe(r){return Vle([0,[0,r[1],0,r[3][1]],r],r[1])}function lVe(r,n,t){return UHe([0,AVe(r,n),0],t)}function BVe(r,n){return UHe([0,bVe(r),0],n)}function jVe(r){return dH(uHe(r),Ez)?r:BVe(r,rVe())}function kVe(r,n,t){var e=BHe($nn,n[3][1]),a=_X[4],u=_X[3],f=fHe(t),i=tHe(fHe(n),f),c=[0,n[3][1],i,u,a],v=[0,[0,t[1],[0,dHe,t],0],0],o=[0,r,_He(e)],A=[0,[0,n[1],o,0],v],s=[6,_He(e),A],b=[0,n[1],s,c];return UHe([0,AVe(e,n),0],b)}function pVe(r){return[0,Lle,r[1],r[2]]}function mVe(r,n,t,e){if("number"!=typeof n&&8===n[0]){var a=n[4],u=n[5],f=n[2],i=n[1];if(1===LY(a))var c=e,v=[0,pVe(t),0];else{var o=jHe(Unn,a);c=UHe([0,AVe(t,YHe(YY(_He,o))),0],e),v=YY(pVe,o)}return[0,Lle,[12,r,i,f,0,v,u,c],[0,n,_X[2],_X[3],_X[4]]]}throw kQ([0,YL,Gnn],1)}function dVe(r,n,t,e){if("number"!=typeof n&&8===n[0]){var a=n[5],u=n[4],f=n[2],i=n[1],c=LY(t);if(LY(u)!==c)throw kQ([0,YL,Mnn],1);var v=[0,n,_X[2],_X[3],_X[4]];return[0,Lle,[12,r,i,f,0,YY(pVe,t),a,e],v]}throw kQ([0,YL,Pnn],1)}function _Ve(r,n,t){return AVe(r,mVe(r[1],r[2],n,t))}function hVe(r,n,t){return AVe(r,dVe(r[1],r[2],n,t))}function xVe(r,n){var t=ude(n);return[8,0,0,0,ude(r),t]}function yVe(r){return[8,0,0,0,[0,Rz,0],ude(r)]}var wVe=xVe(Ez,Ez);function gVe(r){return r[2]}function qVe(r){return r&&!r[2]?r[1]:YHe(r)}function IVe(r,n){var t=ude(uHe(n));return mVe(Tnn,[8,0,0,0,ude(r[2]),t],r,n)}function DVe(r,n){var t=ude(uHe(n));return dVe(Nnn,[8,0,0,0,YY(gVe,r),t],r,n)}function EVe(r,n){var t=YY(function(r){return r[2][1]},r),e=n[2],a=n[3][1];if(12===e[0]&&!e[4]&&"number"!=typeof a&&8===a[0]&&!a[3]){var u=e[2],f=n[3],i=a[4],c=a[2],v=e[7],o=e[6],A=e[5],s=e[3],b=e[1],l=f[4],B=f[3],j=f[2],k=YY(function(r){return Ime(t,r)},a[5]),p=YY(function(r){return Ime(t,r)},i),m=[0,[8,u,c,YY(function(r){var n=r[2],e=n[2],a=n[1],u=Ime(t,n[3]);return[0,a[1],e,u]},r),p,k],j,B,l];return[0,n[1],[12,b,u,s,r,A,o,v],m]}throw kQ([0,YL,Enn],1)}function NVe(r,n){return QHe(r,0,n)}function TVe(r){return iVe(rVe())}function FVe(r,n,t){for(var e=0,a=0,u=0,f=t;;){if(!f){var i=vVe(r,a,jme(r,u,n));return UHe(XY(e),i)}var c=f[1],v=c[2],o=c[1],A=v[2],s=f[2];if(1!==A[0]||A[1]){var b=BHe(o,uHe(v));l=[0,AVe(b,v),e],B=b}else var l=e,B=[0,A[2]];var j=uHe(v);e=l,a=[0,[0,Lle,[0,o,B[1]],j],a],u=[0,[0,o,uHe(v)],u],f=s}}function MVe(r){return FVe(0,0,r)}function PVe(r,n,t){for(var e=0,a=0,u=n;;){if(!u){var f=vVe(r,a,[3,r,d0(Ame,t),0]);return UHe(XY(e),f)}var i=u[1],c=i[2],v=i[1],o=u[2],A=pde(v,t);if(!A)throw kQ([0,YL,wnn],1);var s=A[1];r:if(zme(s))var b=BHe(v,s),l=[0,sVe(b,c),e],B=b;else{var j=c[2];if(1===j[0]&&!j[1]){l=e,B=[0,j[2]];break r}var k=BHe(v,s);l=[0,AVe(k,c),e],B=k}e=l,a=[0,[0,Lle,[0,v,B[1]],s],a],u=o}}function UVe(r,n){var t=rVe(),e=PL(n,QHe(_He([0,"@call_error",[8,0,0,0,0,[0,$z,0]]]),0,t)),a=rVe();return CHe(QHe(_He([0,"@call_succeeded",[8,0,0,0,0,[0,Nz,0]]]),0,a),r,e)}var GVe=R1([0,function(r,n){if(0===r[0]){var t=r[1];return 0===n[0]?UC(t,n[1]):-1}var e=r[1];return 0===n[0]?1:UC(e,n[1])}]);function $Ve(r){return lHe(r)}function KVe(r,n){var t=GVe[29].call(null,[0,n],r);return t?t[1]:n}function OVe(r,n){var t=$Ve(n);return[0,t,GVe[4].call(null,[0,n],t,r)]}function RVe(r,n){var t=n[3],e=QVe(r,n[2]);return[0,n[1],e,t]}function QVe(r,n){switch(n[0]){case 0:var t=n[1],e=t[1],a=YY(function(n){return RVe(r,n)},t[2]);return[0,[0,mCe(function(r){return r},function(n){var t=GVe[29].call(null,[1,n],r);return t?t[1]:n},e),a]];case 1:return[1,n[1],KVe(r,n[2])];case 2:return n;case 3:var u=n[1],f=RVe(r,n[2]);return[3,CVe(r,u),f];case 4:var i=n[1],c=i[2],v=XVe(r,i[1]);return[4,[0,v[1],RVe(v[2],c)]];case 5:var o=n[2],A=n[1],s=RVe(r,n[3]),b=RVe(r,o);return[5,RVe(r,A),b,s];case 6:var l=n[1],B=WVe(r,n[2]);return[6,RVe(r,l),B];case 7:return[7,RVe(r,n[1])];case 8:var j=n[1],k=n[3],p=n[2],m=$Ve(j);return[8,m,p,RVe(GVe[4].call(null,[1,j],m,r),k)];case 9:var d=n[4],_=n[2];return[9,n[1],_,RVe(r,n[3]),d];case 10:var h=n[3],x=n[2],y=OVe(r,n[1]);return[10,y[1],x,RVe(y[2],h)];case 11:var w=n[2],g=n[1],q=RVe(r,n[3]);return[11,KVe(r,g),w,q];case 12:var I=n[7],D=n[6],E=n[4],N=n[3],T=n[2],F=n[1],M=VVe(r,n[5]);return[12,F,T,N,E,M[1],D,RVe(M[2],I)];case 13:var P=n[4],U=n[3],G=n[2],$=n[1],K=RVe(r,n[5]),O=RVe(r,P),R=RVe(r,U);return[13,$,RVe(r,G),R,O,K];case 14:var Q=n[3],C=n[4],H=Q[9],V=Q[8],L=Q[7],z=Q[6],S=Q[5],Z=Q[4],W=Q[3],X=Q[2],J=Q[1],Y=n[2],rr=XVe(r,n[1]),nr=rr[2],tr=rr[1],er=RVe(nr,V),ar=RVe(nr,L),ur=RVe(nr,z),fr=RVe(nr,S),ir=RVe(nr,Z),cr=RVe(nr,W),vr=[0,J,RVe(nr,X),cr,ir,fr,ur,ar,er,H];return[14,tr,HVe(nr,Y),vr,C];case 15:var or=n[3];return[15,n[1],HVe(r,n[2]),or];default:var Ar=n[3],sr=n[2],br=n[1];if(Ar)var lr=Ar[1],Br=lr[2],jr=[0,[0,KVe(r,lr[1]),Br]];else jr=0;var kr=WVe(r,sr);return[16,RVe(r,br),kr,jr]}}function CVe(r,n){var t=n[2],e=n[3];switch(t[0]){case 0:var a=[0,KVe(r,t[1])];break;case 1:var u=t[1],f=RVe(r,t[2]);a=[1,RVe(r,u),f];break;default:var i=t[2];a=[2,RVe(r,t[1]),i]}return[0,n[1],a,e]}function HVe(r,n){return YY(function(n){var t=n[3],e=n[2],a=KVe(r,n[2][2]);return[0,n[1],[0,e[1],a],t]},n)}function VVe(r,n){if(!n)return[0,0,r];var t=n[1],e=n[2],a=OVe(r,t[2]),u=[0,t[1],a[1],t[3]],f=VVe(a[2],e);return[0,[0,u,f[1]],f[2]]}function LVe(r,n){var t=n[2];if("number"==typeof t)var e=[0,t,r];else switch(t[0]){case 0:var a=OVe(r,t[1]);e=[0,[0,a[1]],a[2]];break;case 1:e=[0,t,r];break;case 2:var u=zVe(r,t[1]);e=[0,[2,u[1]],u[2]];break;case 3:var f=t[1],i=zVe(r,jCe(f)),c=i[2];e=[0,[3,pCe(f,i[1])],c];break;case 4:var v=LVe(r,t[1]);e=[0,[4,v[1]],v[2]];break;case 5:var o=t[1],A=LVe(r,t[2]);e=[0,[5,o,A[1]],A[2]];break;default:var s=t[1],b=t[2],l=RCe(s),B=dCe[45].call(null,l),j=RCe(s);if(0!==_0(r1,B,dCe[45].call(null,j)))throw kQ([0,YL,Jnn],1);for(var k=r,p=B;;){if(!p){var m=SVe(k,b);e=[0,[6,SVe(k,s),m],k];break}var d=p[2];k=OVe(k,p[1])[2],p=d}}return[0,[0,n[1],e[1],n[3]],e[2]]}function zVe(r,n){if(!n)return[0,0,r];var t=n[2],e=LVe(r,n[1]),a=e[1],u=zVe(e[2],t);return[0,[0,a,u[1]],u[2]]}function SVe(r,n){var t=n[2];if("number"==typeof t)var e=t;else switch(t[0]){case 0:e=[0,KVe(r,t[1])];break;case 2:e=[2,ZVe(r,t[1])];break;case 3:var a=t[1];e=[3,pCe(a,ZVe(r,jCe(a)))];break;case 4:e=[4,SVe(r,t[1])];break;case 5:e=[5,t[1],SVe(r,t[2])];break;case 6:var u=t[1],f=SVe(r,t[2]);e=[6,SVe(r,u),f];break;default:e=t}return[0,n[1],e,n[3]]}function ZVe(r,n){return YY(function(n){return SVe(r,n)},n)}function WVe(r,n){return YY(function(n){var t=n[2],e=n[3],a=t[2],u=LVe(r,t[1]),f=[0,u[1],RVe(u[2],a)];return[0,n[1],f,e]},n)}function XVe(r,n){var t=function r(n,t){if(!t)return[0,0,n];var e=t[2],a=function(r,n){var t=n[2];switch(t[0]){case 0:var e=t[2],a=LVe(r,t[1]),u=a[1],f=[0,function(r){return[0,u,RVe(r,e)]},a[2]];break;case 1:var i=t[3],c=t[2],v=OVe(r,t[1]),o=v[1];f=[0,function(r){return[1,o,c,RVe(r,i)]},v[2]];break;default:var A=t[3],s=t[2],b=OVe(r,t[1]),l=b[1];f=[0,function(r){return[2,l,s,CVe(r,A)]},b[2]]}return[0,[0,n[1],f[1],n[3]],f[2]]}(n,t[1]),u=a[1],f=r(a[2],e);return[0,[0,u,f[1]],f[2]]}(r,n),e=t[2];return[0,YY(function(r){var n=r[3],t=PL(r[2],e);return[0,r[1],t,n]},t[1]),e]}function JVe(r,n){var t=GVe[29].call(null,[0,n],r);return t?t[1]:n}function YVe(r,n){return GVe[7].call(null,[0,n],r)}var rLe=function r(n,t){return r.fun(n,t)},nLe=function r(n,t){return r.fun(n,t)},tLe=function r(n,t){return r.fun(n,t)},eLe=function r(n,t){return r.fun(n,t)},aLe=function r(n,t){return r.fun(n,t)},uLe=function r(n,t){return r.fun(n,t)},fLe=function r(n,t){return r.fun(n,t)},iLe=function r(n,t){return r.fun(n,t)},cLe=function r(n,t){return r.fun(n,t)},vLe=function r(n,t){return r.fun(n,t)},oLe=function r(n,t){return r.fun(n,t)},ALe=function r(n,t){return r.fun(n,t)},sLe=function r(n,t){return r.fun(n,t)},bLe=function r(n,t){return r.fun(n,t)};function lLe(r){var n=r;r:for(;;){var t=n[2];if("number"!=typeof t)switch(t[0]){case 2:return i0(lLe,t[1]);case 3:break r;case 6:n=t[1];continue;case 0:break;default:return 0}return 1}for(var e=t[1];;){if(!e)return 1;var a=e[2],u=lLe(e[1][2][2]);if(!u)return u;e=a}}function BLe(r){var n=lLe(r);if(!n)return n;var t=RCe(r);return dCe[2].call(null,t)}function jLe(r){return[0,che(r)]}function kLe(r){return jLe([2,r])}function pLe(r){var n=r[2];switch(n[0]){case 0:var t=n[1],e=t[1],a=YY(pLe,t[2]);return[1,rtn,rY([0,xLe(e),0],a)];case 1:var u=[0,[0,n[2]],0];return[1,1===n[1]?"VarE!":ntn,u];case 2:return[1,ttn,[0,gLe(n[1]),0]];case 3:var f=n[1],i=[0,pLe(n[2]),0];return[1,etn,[0,dLe(f),i]];case 4:var c=n[1],v=c[1],o=[0,pLe(c[2]),0];return[1,atn,rY(YY(DLe,v),o)];case 5:var A=n[2],s=n[1],b=[0,pLe(n[3]),0],l=[0,pLe(A),b];return[1,utn,[0,pLe(s),l]];case 6:var B=n[1],j=YY(ILe,n[2]);return[1,ftn,rY([0,pLe(B),0],j)];case 7:return[1,itn,[0,pLe(n[1]),0]];case 8:var k=n[2],p=n[1],m=[0,pLe(n[3]),0];return[1,ctn,[0,[0,p],[0,jLe(k),m]]];case 9:if(n[1]){var d=n[3],_=n[2],h=[0,jLe(n[4]),0],x=[0,pLe(d),h];return[1,vtn,[0,ELe(_),x]]}var y=n[3],w=n[2],g=[0,jLe(n[4]),0],q=[0,pLe(y),g];return[1,otn,[0,ELe(w),q]];case 10:return[1,"DeclareE",[0,[0,n[1]],[0,pLe(n[3]),0]]];case 11:var I=n[2],D=n[1],E=[0,pLe(n[3]),0];return[1,"DefineE",[0,[0,D],[0,yLe(I),E]]];case 12:var N=n[5],T=n[6],F=n[4],M=n[3],P=n[2],U=n[1],G=[0,pLe(n[7]),0],$=[0,jLe(hme(T)),G],K=rY(N?[0,[1,"params",YY(hLe,N)],0]:0,$),O=rY(YY(ELe,F),K),R=[0,[0,Vhe(M)],0];return[1,Atn,rY([0,[0,U],[0,[0,zhe(P)],R]],O)];case 13:var Q=n[4],C=n[3],H=n[2],V=n[1],L=[0,pLe(n[5]),0],z=[0,pLe(Q),L],S=[0,pLe(C),z],Z=[0,pLe(H),S];return[1,"SelfCallE",[0,jLe(hme(V)),Z]];case 14:var W=n[3],X=n[2],J=n[1],Y=[0,jLe(n[4]),0],rr=[0,mLe(W),Y],nr=rY(_Le(X),rr);return[1,"ActorE",rY(YY(DLe,J),nr)];case 15:var tr=n[2],er=n[1],ar=[0,jLe(n[3]),0],ur=_Le(tr);return[1,stn,rY([0,Lhe(er),ur],ar)];default:var fr=n[3],ir=n[2],cr=n[1];if(fr){var vr=[0,btn,[0,[0,fr[1][1]],0]],or=rY(YY(ILe,ir),vr);return[1,ltn,rY([0,pLe(cr),0],or)]}var Ar=YY(ILe,ir);return[1,Btn,rY([0,pLe(cr),0],Ar)]}}function mLe(r){var n=r[9],t=r[8],e=r[7],a=r[6],u=r[5],f=r[4],i=r[3],c=r[2],v=[0,jLe(n[2]),0],o=[0,[1,"StableType",[0,jLe(n[1]),v]],0],A=[0,[1,"StableRecord",[0,pLe(t),0]],o],s=[0,[1,"LowMemory",[0,pLe(e),0]],A],b=[0,[1,"Inspect",[0,pLe(a),0]],s],l=[0,[1,"Timer",[0,pLe(u),0]],b],B=[0,[1,"Heartbeat",[0,pLe(f),0]],l],j=[0,[1,"Post",[0,pLe(i),0]],B];return[1,ktn,[0,[1,jtn,[0,pLe(c),0]],j]]}function dLe(r){var n=r[2];switch(n[0]){case 0:return[1,"VarLE",[0,[0,n[1]],0]];case 1:var t=n[1],e=[0,pLe(n[2]),0];return[1,"IdxLE",[0,pLe(t),e]];default:var a=[0,[0,n[2]],0];return[1,"DotLE",[0,pLe(n[1]),a]]}}function _Le(r){for(var n=r,t=0;;){if(!n)return t;var e=n[1];n=n[2],t=[0,[1,e[2][1],[0,[0,e[2][2]],0]],t]}}function hLe(r){return[0,r[2]]}function xLe(r){if("number"==typeof r)switch(r){case 0:return ptn;case 1:return mtn;case 2:return dtn;case 3:return _tn;case 4:return htn;case 5:return xtn;case 6:return ytn;case 7:return wtn;case 8:return gtn;case 9:return qtn;case 10:return Itn;case 11:return Dtn;case 12:return Etn;case 13:return Ntn;case 14:return Ttn;case 15:return Ftn;case 16:return Mtn;case 17:return Ptn;case 18:return Utn;case 19:return Gtn;case 20:return $tn;case 21:return Ktn;case 22:return Otn;case 23:return Rtn;case 24:return Qtn;case 25:return Ctn;case 26:return Htn;case 27:return Vtn;case 28:return Ltn;case 29:return ztn;case 30:return Stn;case 31:return Ztn;default:return Wtn}switch(r[0]){case 0:return[1,"CallPrim",YY(jLe,r[1])];case 1:var n=r[1],t=[0,Ege(r[2]),0];return[1,"UnPrim",[0,jLe(n),t]];case 2:var e=r[1],a=[0,Nge(r[2]),0];return[1,"BinPrim",[0,jLe(e),a]];case 3:var u=r[1],f=[0,Tge(r[2]),0];return[1,"RelPrim",[0,jLe(u),f]];case 4:return[1,"ProjPrim",[0,[0,fQ+r[1]],0]];case 5:return[1,Xtn,[0,[0,r[1]],0]];case 6:return[1,"DotPrim",[0,[0,r[1]],0]];case 7:return[1,"ActorDotPrim",[0,[0,r[1]],0]];case 8:var i=r[1],c=[0,jLe(r[2]),0];return[1,"ArrayPrim",[0,yLe(i),c]];case 9:return[1,"BreakPrim",[0,[0,r[1]],0]];case 10:var v=r[1];return v?v[1]?Jtn:Ytn:ren;case 11:return[1,"ShowPrim",[0,jLe(r[1]),0]];case 12:return[1,"SerializePrim",YY(jLe,r[1])];case 13:return[1,"DeserializePrim",YY(jLe,r[1])];case 14:return[1,"DeserializeOptPrim",YY(jLe,r[1])];case 15:var o=r[1],A=[0,kLe(r[2]),0];return[1,"NumConvTrapPrim",[0,kLe(o),A]];case 16:var s=r[1],b=[0,kLe(r[2]),0];return[1,"NumConvWrapPrim",[0,kLe(s),b]];case 17:var l=r[1],B=[0,jLe(r[2]),0];return[1,"CastPrim",[0,jLe(l),B]];case 18:return[1,"ActorOfIdBlob",[0,jLe(r[1]),0]];case 19:return[1,"SelfRef",[0,jLe(r[1]),0]];case 20:return[0,r[1]];case 21:var j=r[1];return j?j[1]?[1,"CPSAwait?",[0,jLe(r[2]),0]]:[1,"CPSAwait",[0,jLe(r[2]),0]]:[1,"CPSAwait*",[0,jLe(r[2]),0]];case 22:return r[1]?[1,"CPSAsync*",[0,jLe(r[2]),0]]:[1,"CPSAsync",[0,jLe(r[2]),0]];case 23:return[1,"ICReplyPrim",YY(jLe,r[1])];case 24:return[1,"ICStableWrite",[0,jLe(r[1]),0]];case 25:return[1,"ICStableRead",[0,jLe(r[1]),0]];case 26:return[1,"ICStableSize",[0,jLe(r[1]),0]];default:return[1,"ICStableStore",[0,jLe(r[1]),0]]}}function yLe(r){return r?nen:ten}function wLe(r){var n=r[2];if("number"==typeof n)return een;switch(n[0]){case 0:return[1,aen,[0,[0,n[1]],0]];case 1:return[1,uen,[0,gLe(n[1]),0]];case 2:return[1,fen,YY(wLe,n[1])];case 3:return[1,ien,YY(qLe,n[1])];case 4:return[1,cen,[0,wLe(n[1]),0]];case 5:var t=n[1];return[1,ven,[0,[0,t],[0,wLe(n[2]),0]]];default:var e=n[1],a=[0,wLe(n[2]),0];return[1,oen,[0,wLe(e),a]]}}function gLe(r){if("number"==typeof r)return Aen;switch(r[0]){case 0:var n=r[1]?sen:ben;return[1,len,[0,[0,n],0]];case 1:return[1,Ben,[0,[0,PL(xye[29],r[1])],0]];case 2:return[1,jen,[0,[0,PL(wye[29],r[1])],0]];case 3:return[1,ken,[0,[0,PL(gye[29],r[1])],0]];case 4:return[1,pen,[0,[0,PL(qye[29],r[1])],0]];case 5:return[1,men,[0,[0,PL(Iye[29],r[1])],0]];case 6:return[1,den,[0,[0,PL(dye[29],r[1])],0]];case 7:return[1,_en,[0,[0,PL(Dye[29],r[1])],0]];case 8:return[1,hen,[0,[0,PL(Eye[29],r[1])],0]];case 9:return[1,xen,[0,[0,PL(Nye[29],r[1])],0]];case 10:return[1,yen,[0,[0,PL(Tye[29],r[1])],0]];case 11:return[1,wen,[0,[0,Uye(r[1])],0]];case 12:return[1,gen,[0,[0,Fye(r[1])],0]];case 13:return[1,qen,[0,[0,fQ+r[1]],0]];case 14:return[1,Ien,[0,[0,r[1]],0]];default:var t=r[1];return[1,Een,[0,[0,PL(R3(Den),t)],0]]}}function qLe(r){var n=[0,wLe(r[2][2]),0];return[1,r[2][1],n]}function ILe(r){var n=[0,pLe(r[2][2]),0];return[1,Nen,[0,wLe(r[2][1]),n]]}function DLe(r){var n=r[2];switch(n[0]){case 0:var t=n[1],e=[0,pLe(n[2]),0];return[1,Ten,[0,wLe(t),e]];case 1:var a=n[2],u=n[1],f=[0,pLe(n[3]),0];return[1,Fen,[0,[0,u],[0,jLe(a),f]]];default:var i=n[2],c=n[1],v=[0,dLe(n[3]),0];return[1,"RefD",[0,[0,c],[0,jLe(i),v]]]}}function ELe(r){var n=[0,jLe(r[2][3]),0];return[1,uhe(r[2][1]),n]}function NLe(r){var n=r[1];switch(n[0]){case 0:var t=n[1],e=[0,pLe(n[2]),0];return[1,"LibU",rY(YY(DLe,t),e)];case 1:return[1,"ProgU",YY(DLe,n[1])];default:var a=n[1];if(a){var u=n[4],f=n[3],i=n[2],c=a[1],v=[0,jLe(n[5]),0],o=[0,mLe(u),v],A=rY(_Le(f),o),s=rY(YY(DLe,i),A);return[1,Men,rY(YY(hLe,c),s)]}var b=n[4],l=n[3],B=n[2],j=[0,jLe(n[5]),0],k=[0,mLe(b),j],p=rY(_Le(l),k);return[1,Pen,rY(YY(DLe,B),p)]}}function TLe(r,n){return 1-r||n}fL(rLe,function(r,n){var t=n[3],e=UL(nLe,r,n[2]);return[0,n[1],e,t]}),fL(nLe,function(r,n){switch(n[0]){case 0:var t=n[1],e=t[2];return[0,[0,t[1],YY(PL(rLe,r),e)]];case 1:return[1,n[1],JVe(r,n[2])];case 2:return n;case 3:var a=n[1],u=UL(rLe,r,n[2]);return[3,UL(tLe,r,a),u];case 4:var f=n[1],i=f[2],c=UL(bLe,r,f[1]);return[4,[0,c[1],UL(rLe,c[2],i)]];case 5:var v=n[2],o=n[1],A=UL(rLe,r,n[3]),s=UL(rLe,r,v);return[5,UL(rLe,r,o),s,A];case 6:var b=n[1],l=UL(oLe,r,n[2]);return[6,UL(rLe,r,b),l];case 7:return[7,UL(rLe,r,n[1])];case 8:var B=n[2];return[8,n[1],B,UL(rLe,r,n[3])];case 9:var j=n[4],k=n[2];return[9,n[1],k,UL(rLe,r,n[3]),j];case 10:var p=n[1],m=n[3];return[10,p,n[2],UL(rLe,YVe(r,p),m)];case 11:var d=n[2],_=n[1],h=UL(rLe,r,n[3]);return[11,JVe(r,_),d,h];case 12:for(var x=n[5],y=x,w=r,g=n[7],q=n[6],I=n[4],D=n[3],E=n[2],N=n[1];;){if(!y)return[12,N,E,D,I,x,q,UL(rLe,w,g)];var T=y[2],F=YVe(w,y[1][2]);y=T,w=F}break;case 13:var M=n[4],P=n[3],U=n[2],G=n[1],$=UL(rLe,r,n[5]),K=UL(rLe,r,M),O=UL(rLe,r,P);return[13,G,UL(rLe,r,U),O,K,$];case 14:var R=n[3],Q=n[4],C=R[9],H=R[8],V=R[7],L=R[6],z=R[5],S=R[4],Z=R[3],W=R[2],X=R[1],J=n[2],Y=UL(bLe,r,n[1]),rr=Y[2],nr=Y[1],tr=UL(rLe,rr,H),er=UL(rLe,rr,V),ar=UL(rLe,rr,L),ur=UL(rLe,rr,z),fr=UL(rLe,rr,S),ir=UL(rLe,rr,Z),cr=[0,X,UL(rLe,rr,W),ir,fr,ur,ar,er,tr,C];return[14,nr,UL(aLe,rr,J),cr,Q];case 15:var vr=n[3];return[15,n[1],UL(aLe,r,n[2]),vr];default:var or=n[3],Ar=n[2],sr=n[1];if(or)var br=or[1],lr=br[2],Br=[0,[0,JVe(r,br[1]),lr]];else Br=0;var jr=UL(oLe,r,Ar);return[16,UL(rLe,r,sr),jr,Br]}}),fL(tLe,function(r,n){var t=n[3],e=UL(eLe,r,n[2]);return[0,n[1],e,t]}),fL(eLe,function(r,n){switch(n[0]){case 0:return[0,JVe(r,n[1])];case 1:var t=n[1],e=UL(rLe,r,n[2]);return[1,UL(rLe,r,t),e];default:var a=n[2];return[2,UL(rLe,r,n[1]),a]}}),fL(aLe,function(r,n){return YY(function(n){var t=n[3],e=n[2],a=JVe(r,n[2][2]);return[0,n[1],[0,e[1],a],t]},n)}),fL(uLe,function(r,n){return UL(fLe,r,n[2])}),fL(fLe,function(r,n){if("number"==typeof n)return r;switch(n[0]){case 0:return YVe(r,n[1]);case 1:return r;case 2:return UL(iLe,r,n[1]);case 3:return UL(iLe,r,jCe(n[1]));case 4:return UL(uLe,r,n[1]);case 5:return UL(uLe,r,n[2]);default:var t=n[1],e=RCe(t),a=dCe[45].call(null,e),u=RCe(t);if(0===_0(r1,a,dCe[45].call(null,u)))return e0(YVe,r,a);throw kQ([0,YL,Ynn],1)}}),fL(iLe,function(r,n){return e0(uLe,r,n)}),fL(cLe,function(r,n){var t=n[3],e=UL(vLe,r,n[2]);return[0,n[1],e,t]}),fL(vLe,function(r,n){var t=n[1],e=n[2];return[0,t,UL(rLe,UL(uLe,r,t),e)]}),fL(oLe,function(r,n){return YY(PL(cLe,r),n)}),fL(ALe,function(r,n){var t=UL(sLe,r,n[2]);return[0,[0,n[1],t[1],n[3]],t[2]]}),fL(sLe,function(r,n){switch(n[0]){case 0:var t=n[1],e=n[2];return[0,function(r){return[0,t,UL(rLe,r,e)]},UL(uLe,r,t)];case 1:var a=n[1],u=n[3],f=n[2];return[0,function(r){return[1,a,f,UL(rLe,r,u)]},YVe(r,a)];default:var i=n[1],c=n[3],v=n[2];return[0,function(r){return[2,i,v,UL(tLe,r,c)]},YVe(r,i)]}}),fL(bLe,function(r,n){var t=function r(n,t){if(!t)return[0,0,n];var e=t[2],a=UL(ALe,n,t[1]),u=a[1],f=r(a[2],e);return[0,[0,u,f[1]],f[2]]}(r,n),e=t[2];return[0,YY(function(r){var n=r[3],t=PL(r[2],e);return[0,r[1],t,n]},t[1]),e]});var FLe=[0,M_e[1]],MLe=O1(ume),PLe=R1(fme),ULe=[0,0];function GLe(r,n,t){if(n===t)return 1;var e=PLe[29].call(null,[0,n,t],r[11][1]);if(e)return e[1];var a=j_e(0,n,t),u=PLe[4].call(null,[0,n,t],a,r[11][1]);return r[11][1]=u,a}function $Le(r,n,t){if(n===t)return n;var e=PLe[29].call(null,[0,n,t],r[12][1]);if(e)return e[1];var a=T_e(0,n,t),u=PLe[4].call(null,[0,n,t],a,r[12][1]);return r[12][1]=u,a}var KLe=[Ul,"Ir_def.Check_ir.CheckFailed",qH()];function OLe(r,n,t,e){var a=[0,[0,Lle,[0,t[1],t[2]],0],0],u=rY(YY(function(n){var t=n[2],e=n[1];return[0,Lle,[0,[0,Lle,[1,[14,e]],uHe(r)],t],0]},n),a),f=_X[4],i=_X[3];return[0,Lle,[6,r,u],[0,e,eHe(fHe(r),function(r){return fHe(r[2][2])},u),i,f]]}function RLe(r){return function(n){return gBe(r,mun,"IR type",pun,kun,jun,n)}}function QLe(r,n,t){return O3(function(r){throw kQ([0,KLe,GBe(RLe(n)(r))],1)},t)}function CLe(r,n,t,e){var a=1-t;return a?PL(QLe(0,n,Bun),e):a}function HLe(r,n){var t=r[12],e=r[11],a=r[10],u=r[9],f=r[8],i=r[7],c=r[6],v=r[5],o=r[4],A=M_e[48].call(null,r[3],n[1]);return[0,r[1],r[2],A,o,v,c,i,f,u,a,e,t]}function VLe(r,n){var t=r[12],e=r[11],a=r[10],u=r[9],f=r[8],i=r[7],c=r[6],v=r[5],o=r[4],A=M_e[48].call(null,r[3],n);return[0,r[1],r[2],A,o,v,c,i,f,u,a,e,t]}function LLe(r,n){var t=r[12],e=r[11],a=r[10],u=r[9],f=r[8],i=r[7],c=r[6],v=r[5],o=ome[41][45].call(null,r[4],n);return[0,r[1],r[2],r[3],o,v,c,i,f,u,a,e,t]}function zLe(r,n,t,e){var a=1-GLe(r,t,e);if(!a)return a;var u=vhe(e),f=vhe(t);return UL(QLe(0,n,lun),f,u)}function SLe(r,n,t){var e=1-Ude(t);if(!e)return e;var a=vhe(t);return PL(QLe(0,n,bun),a)}function ZLe(r,n,t){var e=1-Nde(t);if(!e)return e;var a=vhe(t);return PL(QLe(0,n,sun),a)}function WLe(r){var n=Pme(r);r:{if("number"!=typeof n){switch(n[0]){case 2:var t=n[1];return 17===t?0:t?1:0;case 3:if(1!==n[1])break r;break;case 8:if(!n[1])break r;break;default:break r}return 1}if(1===n)return 1}return 0}function XLe(r,n,t,e){for(var a=e;;){if(!a)return;for(var u=a[2],f=a[1],i=u;;){if(!i){a=u;break}var c=i[2],v=i[1],o=Ope(v[1]);if(dH(Ope(f[1]),o)){var A=v[1],s=f[1];GL(QLe(0,t,Aun),s,A,n),i=c}else i=c}}}function JLe(r,n,t){r:{n:{t:{e:{var e=t;a:for(;;){if("number"==typeof e)return 2===e?QLe(0,Lle,Uen):void 0;switch(e[0]){case 0:var a=e[2],u=e[1];return UL(QLe(0,Lle,Gen),u,a);case 1:break r;case 2:return;case 3:break n;case 4:break t;case 5:var f=e[1];return r<50?rze(r+1|0,n,f):aL(rze,[0,n,f]);case 7:break e;case 8:break a;case 9:var i=e[3];return YLe(n,e[2]),YLe(n,i),CLe(0,Lle,n[1][2],"async in non-async flavor"),SLe(0,Lle,Ume(i));case 10:var c=che(e[1]);return PL(QLe(0,Lle,Wen),c);case 11:var v=e[2];CLe(0,Lle,n[1][1],"named type field in non-typ_field flavor"),e=v;break;default:e=e[1]}}for(var o=e[3],A=e[2],s=e[1],b=e[5],l=e[4],B=eze(n,o),j=B[1],k=LLe(n,B[2]),p=YY(function(r){return[1,r,0]},j),m=YY(function(r){return Tme(p,r)},l),d=YY(function(r){return Tme(p,r)},b),_=m;;){if(!_){var h=d;break}var x=_[2];YLe(k,_[1]),_=x}for(;h;){var y=h[2];YLe(k,h[1]),h=y}if(0===s){var w=1-(0===A?1:0);if(!w)return w;var g=vhe(e);return PL(QLe(0,Lle,Zen),g)}for(var q=m;q;){var I=q[2];SLe(0,Lle,q[1]),q=I}switch(A){case 0:CLe(0,Lle,dH(s,Cen),"one-shot query function pointless");var D=1-(0===d?1:0);if(!D)return D;var E=vhe(hme(d));return PL(QLe(0,Lle,Hen),E);case 1:if(CLe(0,Lle,0!==o?1:0,"promising function has no scope type argument"),CLe(0,Lle,k[1][2],"promising function in post-async flavor"),1-(0!==s?1:0)){var N=che(e);PL(QLe(0,Lle,Ven),N)}var T=1-i0(Ude,d);if(!T)return T;var F=che(e);return PL(QLe(0,Lle,Len),F);default:if(CLe(0,Lle,1-k[1][2],"replying function in pre-async flavor"),1-(0!==s?1:0)){var M=che(e);PL(QLe(0,Lle,zen),M)}var P=1-i0(Ude,d);if(!P)return P;var U=che(e);return PL(QLe(0,Lle,Sen),U)}}for(var G=e[1];;){if(!G)return;var $=G[2];YLe(n,G[1]),G=$}}for(var K=e[1],O=K;;){if(!O){XLe(0,Ren,Lle,K);var R=1-Moe(Ame,K);if(!R)return R;var Q=che(e);return PL(QLe(0,Lle,Qen),Q)}var C=O[2];tze(n,0,O[1]),O=C}}for(var H=e[2],V=e[3],L=e[1];V;){var z=V[2];CLe(0,Lle,n[1][1],"typ field in non-typ_field flavor"),V=z}for(var S=H,Z=[0,L];;){if(!S){XLe(0,Ken,Lle,H);var W=1-Moe(Ame,H);if(!W)return W;var X=che(e);return PL(QLe(0,Lle,Oen),X)}var J=S[2];tze(n,Z,S[1]),S=J}}for(var Y=e[2],rr=e[1],nr=Y;nr;){var tr=nr[2];YLe(n,nr[1]),nr=tr}var er=Upe(rr);if(0===er[0]){var ar=er[1];if(!ome[41][3].call(null,rr,n[8][1])){var ur=ome[41][4].call(null,rr,n[8][1]);n[8][1]=ur;var fr=Upe(rr),ir=fr[2],cr=fr[1];CLe(0,Lle,1-zme(ir),"type constructor RHS is_mut");var vr=eze(n,cr),or=vr[2],Ar=YY(function(r){return[1,r,0]},vr[1]);YLe(LLe(n,or),Tme(Ar,ir))}return aze(n,ar,Y,Lle)}var sr=er[1];if(1-ome[41][3].call(null,rr,n[4])){var br=che(e);PL(QLe(0,Lle,$en),br)}return aze(n,sr,Y,Lle)}function YLe(r,n){return eL(JLe(0,r,n))}function rze(r,n,t){if("number"!=typeof t&&10===t[0]){var e=t[1];return r<50?JLe(r+1|0,n,e):aL(JLe,[0,n,e])}return r<50?JLe(r+1|0,n,t):aL(JLe,[0,n,t])}function nze(r,n){return eL(rze(0,r,n))}function tze(r,n,t){var e=t[2];r:{if("number"!=typeof e&&10===e[0]){if(!n)break r;var a=e[1];switch(n[1]){case 1:break;case 0:case 4:return YLe(r,a);default:break r}}if(n&&1===n[1]&&!Mde(e)){var u=che(e),f=t[1];return UL(QLe(0,Lle,Xen),f,u)}}return YLe(r,e)}function eze(r,n){for(var t=Fme(n),e=YY(function(r){if("number"!=typeof r&&1===r[0]&&!r[2])return r[1];throw kQ([0,YL,ran],1)},t),a=r[12],u=r[11],f=r[10],i=r[9],c=r[8],v=r[7],o=r[6],A=r[5],s=a0(function(r){var n=ome[41][44];return function(t){return n(r,t)}},e,r[4]),b=[0,r[1],r[2],r[3],s,A,o,v,c,i,f,u,a],l=YY(function(r){return Tme(t,r[3])},n),B=LY(e),j=e,k=f0(ome[4],e,l,ome[1]);;){if(!j){var p=l;break}for(var m=j[2],d=j[1],_=0,h=0,x=d;;){if(B<_){var y=XY(h),w=O0(Jen,YY(che,h)),g=uhe(d);GL(QLe(0,Lle,Yen),g,w,y),j=m;break}var q=ome[29].call(null,x,k);if(!q){j=m;break}var I=Pme(q[1]);if("number"==typeof I){j=m;break}if(1!==I[0]){j=m;break}if(I[2]){j=m;break}_=_+1|0,h=[0,I,h],x=I[1]}}for(;;){if(!p)return[0,e,ome[41][37].call(null,e)];var D=p[2];YLe(b,p[1]),p=D}}function aze(r,n,t,e){var a=LY(n),u=LY(t);if(a=Mt){if(dH(e[4][2][1][2],Zun))return Xun;throw kQ([0,YL,Wun],1)}if(Et===Yt)return[0,[0,7,[0,wze(e[4][2][1]),0]]];if(Et===g){var Pt=kt[3][1],Ut=e[4][2];if("number"!=typeof Pt&&8===Pt[0]&&!Pt[1]&&!Pt[2]&&!Pt[3])return[0,[0,[13,Pt[5]],[0,wze(Ut[1]),0]]];throw kQ([0,YL,Sun],1)}if(Et===AI)return[0,[0,8,[0,wze(e[4][2][1]),0]]];if("getCertificate"===Et){if(_ze(e[4][2][1]))return zun;throw kQ([0,YL,Lun],1)}if(Et===bv){var Gt=kt[3][1],$t=e[4][2];if("number"!=typeof Gt&&8===Gt[0]&&!Gt[1]&&!Gt[2]&&!Gt[3])return[0,[0,[12,Gt[4]],[0,wze($t[1]),0]]];throw kQ([0,YL,Vun],1)}if("setCertifiedData"===Et)return[0,[0,23,[0,wze(e[4][2][1]),0]]];if(Et===nh){if(dH(e[4][2][1][2],Qun))return Hun;throw kQ([0,YL,Cun],1)}if("timeoutSet"===Et)return[0,[0,22,[0,wze(e[4][2][1]),0]]]}else{if(Et===HI){var Kt=e[4][2][1][2];if(11===Kt[0]&&!Kt[1])return Oun;throw kQ([0,YL,Run],1)}if(Et===Gu){var Ot=kt[3][1],Rt=e[4][2];if("number"!=typeof Ot&&8===Ot[0]&&!Ot[1]&&!Ot[2]&&!Ot[3]){var Qt=Ot[5],Ct=Ot[4],Ht=[0,wze(Rt[1]),0],Vt=hme(Qt);return[0,[0,[17,hme(Ct),Vt],Ht]]}throw kQ([0,YL,Kun],1)}if("cyclesAccept"===Et)return[0,[0,17,[0,wze(e[4][2][1]),0]]];if("cyclesAdd"===Et)return[0,[0,16,[0,wze(e[4][2][1]),0]]];if("cyclesAvailable"===Et){if(_ze(e[4][2][1]))return $un;throw kQ([0,YL,Gun],1)}if("cyclesBalance"===Et){if(_ze(e[4][2][1]))return Uun;throw kQ([0,YL,Pun],1)}if("cyclesBurn"===Et)return[0,[0,21,[0,wze(e[4][2][1]),0]]];if("cyclesRefunded"===Et){if(_ze(e[4][2][1]))return Mun;throw kQ([0,YL,Fun],1)}}var Lt=e[4][2],zt=Lt[1][2];return 11===zt[0]?[0,[0,[20,Et],yze(zt[1])]]:[0,[0,[20,Et],[0,wze(Lt[1]),0]]]}var St=Y0(95,Et);if(St&&"num"===St[1]){var Zt=St[2];if(Zt&&"wrap"===Zt[1]){var Wt=Zt[2];if(Wt){var Xt=Wt[2];if(Xt&&!Xt[2]){var Jt=Xt[1];return[0,[0,[16,_me(Wt[1]),_me(Jt)],[0,wze(Ft[1]),0]]]}}}}throw kQ([0,YL,Tun],1)}var re=Y0(95,Et);if(re&&"num"===re[1]){var ne=re[2];if(ne&&"conv"===ne[1]){var te=ne[2];if(te){var ee=te[2];if(ee&&!ee[2]){var ae=ee[1];return[0,[0,[15,_me(te[1]),_me(ae)],[0,wze(Tt[1]),0]]]}}}}throw kQ([0,YL,Eun],1)}}var ue=e[3],fe=[0,wze(e[4][2][1]),0],ie=[0,wze(kt),fe];return[0,[0,[0,ue[3]],ie]]}var ce=e[2][2],ve=e[7],oe=e[4],Ae=e[3],se=e[1];if(ce){var be=ce[1],le=be[1];if("number"==typeof be[2][2])var Be=0,je=[0,le];else Be=[0,be[2]],je=[0,le]}else Be=0,je=0;var ke=Lze(n[1],Be,0,oe),pe=ke[5],me=ke[4],de=ke[3],_e=ke[1],he=YY(Kze,Ae),xe=YY(function(r){return[1,r[2][1],0]},he),ye=YY(function(r){return Tme(xe,r)},pe);return[12,se,je,me,he,_e,ye,de(wze(ve))]}var we=e[1],ge=e[2];if(dH(we[3][1],Gz)){var qe=[0,wze(ge),0];return[0,[0,3,[0,wze(we),qe]]]}var Ie=[0,wze(e[2]),0];return[0,[0,2,[0,wze(we),Ie]]]}for(var De=e[1],Ee=wze(e[2]);;){var Ne=De[2];if(41!==Ne[0])break;De=Ne[1]}var Te=De[2],Fe=De[3][1];switch(Te[0]){case 2:var Me=[0,Te[1][2]];break;case 19:var Pe=Te[2][2];Me=[2,wze(Te[1]),Pe];break;case 22:var Ue=Te[1],Ge=wze(Te[2]);Me=[1,wze(Ue),Ge];break;default:throw kQ([0,zL,"Unexpected expression as lvalue"],1)}return[3,[0,De[1],Me,Fe],Ee]}var $e=e[1],Ke=e[2];if(Ome($e[3][1])){var Oe=wze($e),Re=Ke[2],Qe=$e[3][1],Ce=function(r,n,t){return[8,0,0,r,n,t]},He=ede(Xme(Qe)),Ve=function(r,n,t){var e=zme(Xme(Qe))?[5,[10,xX]]:[5,xX];return QHe(_He([0,r,Ce([0,kcn,0],[0,e,0],[0,Ce(0,n,t),0])]),[0,He,0],Oe)};u:{f:{if(zme(Xme(Qe))){if(Re===Co){var Le=Ve("@mut_array_get",[0,Tz,0],[0,xX,0]);break u}if(Re===t_){Le=Ve("@mut_array_keys",0,[0,xme(Tz),0]);break u}if(Re===oP){Le=Ve("@mut_array_put",[0,Tz,[0,xX,0]],0);break u}if(Re===i){Le=Ve("@mut_array_size",0,[0,Tz,0]);break u}if(Re!==K$&&Re!==Vq)break f;Le=Ve("@mut_array_vals",0,[0,xme(xX),0]);break u}if(Re===Co){Le=Ve("@immut_array_get",[0,Tz,0],[0,xX,0]);break u}if(Re===t_){Le=Ve("@immut_array_keys",0,[0,xme(Tz),0]);break u}if(Re===i){Le=Ve("@immut_array_size",0,[0,Tz,0]);break u}if(Re===K$||Re===Vq){Le=Ve("@immut_array_vals",0,[0,xme(xX),0]);break u}}throw kQ([0,YL,pcn],1)}return Le[2]}if(!$me(16,$e[3][1])){if(!$me(15,$e[3][1])){var ze=e[2];if(1===cde([0,ze[2],0],$e[3][1])[1]){var Se=[0,wze($e),0];return[0,[0,[7,ze[2]],Se]]}var Ze=[0,wze($e),0];return[0,[0,[6,ze[2]],Ze]]}var We=wze($e),Xe=Ke[2],Je=function(r,n){return[8,0,0,0,r,n]},Ye=function(r,n,t){return QHe(_He([0,r,Je([0,Uz,0],[0,Je(n,t),0])]),0,We)};if(Xe!==dp){if(Xe!==i)throw kQ([0,YL,hcn],1);var ra=Ye("@text_size",0,[0,Tz,0])}else ra=Ye("@text_chars",0,[0,xme(pir),0]);return ra[2]}var na=wze($e),ta=Ke[2],ea=function(r,n){return[8,0,0,0,r,n]},aa=function(r,n,t){return QHe(_He([0,r,ea([0,Gz,0],[0,ea(n,t),0])]),0,na)};if(ta!==Co)if(ta!==t_)if(ta!==i){if(ta!==K$&&ta!==Vq)throw kQ([0,YL,dcn],1);var ua=aa("@blob_vals",0,[0,xme(_cn),0])}else ua=aa("@blob_size",0,[0,Tz,0]);else ua=aa("@blob_keys",0,[0,xme(Tz),0]);else ua=aa("@blob_get",[0,Tz,0],mcn);return ua[2]}for(var fa=e[2],ia=n[1],ca=p0(YY(function(r){var n=dze(r[3])[1],t=wze(r),e=BHe("base",n);return[0,AVe(e,t),function(r){return KY(pde(r,Zme(Ume(n))[2]))?[0,e,0]:0}]},e[1])),va=ca[2],oa=ca[1],Aa=p0(YY(function(r){var n=cde(0,ia)[2],t=r[2],e=t[3],a=t[2];if(t[1][2]){var u=pde(a[2],n),f=u?u[1]:[10,e[3][1]];if(!zme(f))throw kQ([0,YL,bcn],1);var i=BHe(a[2],f);return[0,[0,sVe(i,wze(e)),0],[0,Lle,[0,a[2],i[1]],f]]}var c=pde(a[2],n),v=c?c[1]:e[3][1];if(zme(v))throw kQ([0,YL,lcn],1);var o=wze(e),A=o[2];if(1!==A[0]||A[1]){var s=BHe(a[2],v);b=[0,AVe(s,o),0],l=s}else var b=0,l=[0,A[2]];return[0,b,[0,Lle,[0,a[2],l[1]],v]]},fa)),sa=Aa[2],ba=Aa[1],la=Zme(ia)[2],Ba=0;;){if(!la){var ja=p0(XY(Ba)),ka=ja[1],pa=vVe(0,rY(sa,ja[2]),ia);return UHe(rY(oa,rY(JY(ba),ka)),pa)[2]}var ma=la[1],da=ma[2],_a=ma[1];a:{for(var ha=fa,xa=la[2];ha;){var ya=ha[1][2][2][2]===_a?1:0,wa=ha[2];if(ya){var ga=ya;break a}ha=wa}ga=0}a:{if(!ga){for(var qa=BHe(_a,da),Ia=va,Da=0;Ia;){var Ea=Ia[2],Na=WY(PL(Ia[1],_a),Da);Ia=Ea,Da=Na}var Ta=XY(Da);if(Ta&&!Ta[2]){var Fa=Ta[1];if(zme(da)){var Ma=[0,Lle,[2,_He(Fa),_a],da],Pa=qa[2];if(!zme(Pa))throw kQ([0,YL,Knn],1);var Ua=Vle([2,qa[1],Pa,Ma],Lle)}else Ua=AVe(qa,WHe(_He(Fa),_a,da));var Ga=[0,[0,Ua,[0,Lle,[0,_a,qa[1]],da]],0];break a}throw kQ([0,XL,Bcn],1)}Ga=0}la=xa,Ba=WY(Ga,Ba)}}var $a=yze(e[1]),Ka=YY(function(r){return r[3][1]},$a);return hHe([12,Ka],[0,qVe($a),0])[2]}var Oa=e[1];if(1===e[3]){var Ra=e[2],Qa=[0,wze(e[4]),0],Ca=[0,wze(Ra),Qa];return LHe(hHe([3,Oa[1],0],Ca))[2]}var Ha=e[3],Va=e[2],La=[0,wze(e[4]),0],za=[0,wze(Va),La];return[0,[0,[3,Oa[1],Ha],za]]}var Sa=e[2],Za=e[1],Wa=e[4];if(Ize([0,e[3]])(Sa))return wze(Wa)[2];var Xa=e[4];if(Ize([1,e[3]])(Xa))return wze(Sa)[2];var Ja=e[3],Ya=e[2],ru=[0,wze(e[4]),0],nu=[0,wze(Ya),ru];return[0,[0,[2,Za[1],Ja],nu]]}for(var tu=e[1];;){var eu=tu[2];if(41!==eu[0]){var au=wze(tu);return[0,[0,[18,n[1]],[0,[0,r,[0,[0,9,[0,au,0]]],[0,Gz,au[3][2],_X[3],_X[4]]],0]]]}tu=eu[1]}}function qze(r,n){if(!n)return afn;var t=n[1];if(!r)return[0,[0,bVe(wze(t)),0],0];if(j_e(0,t[3][1],[3,0,[0,L_e,0],0]))var e=0,a=[0,function(r){return bVe(uVe("@cycles",WHe(r,Lz,Tz)))},0];else e=0,a=0;if(j_e(0,t[3][1],[3,0,[0,z_e,0],0]))var u=0,f=[0,function(r){return bVe(uVe(tfn,THe(WHe(r,Sz,Fz))))},0];else u=[0,bVe(aVe([0,efn,[10,[6,Fz]]],OHe())),0],f=0;var i=rY(e,u),c=rY(a,f);if(0===c)return[0,[0,bVe(wze(t)),0],i];var v=BHe("par",t[3][1]),o=rY(YY(function(r){return PL(r,_He(v))},c),i);return[0,[0,AVe(v,wze(t)),0],o]}function Ize(r){function n(r){r:{if(0===r[0]){var n=r[1];if(7!==n&&n)break r}else{var t=r[1];if(7!==t&&2<=t)break r}return 1}return 0}function t(r){r:{if(0===r[0]){if(2!==r[1])break r}else if(1>>0)break r;return 1}return 0}return function(e){var a=e;r:for(;;){var u=a[2];switch(u[0]){case 3:break r;case 41:a=u[1];break;default:return 0}}var f=u[1][1];if("number"!=typeof f)switch(f[0]){case 2:var i=f[1];if(n(r)&&UL(wye[12],i,wye[2]))return 1;if(t(r)&&UL(wye[12],i,wye[3]))return 1;break;case 3:var c=f[1];if(n(r)&&UL(gye[12],c,gye[2]))return 1;if(t(r)&&UL(gye[12],c,gye[3]))return 1;break;case 4:var v=f[1];if(n(r)&&UL(qye[12],v,qye[2]))return 1;if(t(r)&&UL(qye[12],v,qye[3]))return 1;break;case 5:var o=f[1];if(n(r)&&UL(Iye[12],o,Iye[2]))return 1;if(t(r)&&UL(Iye[12],o,Iye[3]))return 1;break;case 7:var A=f[1];if(n(r)&&UL(Dye[12],A,Dye[2]))return 1;if(t(r)&&UL(Dye[12],A,Dye[3]))return 1;break;case 8:var s=f[1];if(n(r)&&UL(Eye[12],s,Eye[2]))return 1;if(t(r)&&UL(Eye[12],s,Eye[3]))return 1;break;case 9:var b=f[1];if(n(r)&&UL(Nye[12],b,Nye[2]))return 1;if(t(r)&&UL(Nye[12],b,Nye[3]))return 1;break;case 10:var l=f[1];if(n(r)&&UL(Tye[12],l,Tye[2]))return 1;if(t(r)&&UL(Tye[12],l,Tye[3]))return 1;break;case 1:case 6:var B=f[1];if(n(r)&&UL(dye[12],B,dye[2]))return 1;var j=f[1];if(t(r)&&UL(dye[12],j,dye[3]))return 1}return 0}}function Dze(r,n,t,e,a,u){switch(n[2]){case 1:return Pze(r,n[3][3],0,t,e,a,u);case 0:case 3:return $ze(r,n[2],e,a,u);default:throw kQ([0,YL,cfn],1)}}function Eze(r){var n=r[1];return[0,Lle,[0,n,n],r[2]]}function Nze(r){if("number"!=typeof r&&3===r[0])return YY(Eze,r[2]);throw kQ([0,YL,vfn],1)}function Tze(r,n,t){var e=xHe(n),a=nHe(t)[2];return dCe[3].call(null,r,a)?t:rY([0,AVe([0,r,n],e),0],t)}function Fze(r,n,t){return b0(function(n){var e=n[2],a=e[1],u=a[2];if(1===u[0]){var f=u[1],i=f[2];if("number"!=typeof i&&0===i[0]){var c=i[1],v=f[3],o=e[2][2],A=a[1];if("number"==typeof o&&o&&c[2]===r){if(r!==Zc)if(r!==vn)if(r!==Ll)if(r!==jv){if(r===np||r===vp)s=[0,0,0];else var s=0;var b=YHe(0),l=QHe(_He([0,c[2],v]),s,b)}else{var B=rVe(),j=_He([0,"@set_global_timer",Qz]),k=UHe([0,bVe(QHe(_He([0,c[2],v]),Afn,j)),0],B);l=[0,A,k[2],k[3]]}else{var p=rVe();l=gHe(0,QHe(_He([0,c[2],v]),[0,0,0],p))}else{var m=Zme(t)[2],d=BHe(sfn,Kz),_=BHe(bfn,Gz),h=R_e(m),x=BHe(lfn,h),y=Bme(0,[0,[0,kfn,d[2]],[0,[0,jfn,_[2]],[0,[0,Bfn,x[2]],0]]]),w=BHe(pfn,y),g=[0,dHe,hHe(mfn,[0,GHe("canister_inspect_message implicitly refused message"),0])],q=YY(function(r){var n=r[2];if("number"!=typeof n&&8===n[0]&&!n[1]&&!n[3]&&!n[4]){var t=n[5],e=hHe([13,t],[0,_He(_),0]),a=RHe(xB+r[1],0,0,0,0,t,e),u=FHe(r[1],a);return[0,r[1],u]}throw kQ([0,YL,ofn],1)},Yme(h)),I=OLe(hHe(30,0),q,g,h),D=BHe("accept",Nz),E=hHe(dfn,[0,GHe("canister_inspect_message explicitly refused message"),0]),N=rVe(),T=CHe(_He(D),N,E),F=_He(w),M=[0,AVe(D,QHe(_He([0,c[2],v]),0,F)),0],P=vVe(0,[0,[0,Lle,[0,xfn,d[1]],d[2]],[0,[0,Lle,[0,hfn,_[1]],_[2]],[0,[0,Lle,[0,_fn,x[1]],x[2]],0]]],y),U=[0,AVe(x,I),0],G=[0,AVe(_,hHe(32,0)),U];l=UHe([0,AVe(w,UHe([0,AVe(d,hHe(27,0)),G],P)),M],T)}else{var $=rVe(),K=rVe();l=UHe([0,bVe(QHe(_He([0,c[2],v]),yfn,K)),0],$)}return[0,l]}}}return 0},n)}function Mze(r){var n=r[2][1][2];switch(n[0]){case 3:return 0;case 5:throw kQ([0,YL,Nin],1);case 6:var t=n[3],e=[0,Vle(0,Lle)],a=PY(t[1]),u=a[3],f=YY(function(r){return e},a[1]);return rY([0,e,f],j0(Mze,u));default:return[0,r[2][3],0]}}function Pze(r,n,t,e,a,u,f){for(var i=Nze(f),c=j0(Mze,u),v=u0(Uze,c,Oze(YY(function(r){return r[2][1]},u))),o=JY(YY(function(r){return r[1]},v)),A=YY(Gze,c),s=A,b=0;s;){var l=s[2],B=WY(s[1][1],b);s=l,b=B}for(var j=A,k=0,p=XY(b);j;){var m=j[2],d=WY(j[1][3],k);j=m,k=d}var _=XY(k),h=Wme(f),x=h[3],y=[3,h[1],d0(Ame,rY(h[2],0)),x],w=rY(i,_),g=d0(Ame,YY(function(r){return[0,r[1],r[2],Spe]},o)),q=YY(function(r){var n=r[3],t=[6,ede(r[2])];return[0,r[1],t,n]},g),I=[3,4,q,0],D=YY(function(r){return r[2]},v),E=BHe(Qin,[10,[6,I]]),N=BHe("getState",[8,0,0,0,0,[0,I,0]]),T=YY(function(r){return PL(r,N)},D),F=ZRe(),M=F[20],P=F[11],U=YY(F[16],t),G=[0,P(y)],$=[0,Lle,[0,M(0),G],[0,"",rBe]],K=sje([0,[0,$[3][2]]]),O=K[18].call(null,$),R=[0,K[19].call(null,U),O];if(0===n)if(e)var Q=e[1],C=dde(zz,cde([0,zz,0],Q[3][1])[2]),H=WHe(Q,zz,C),V=khe(C),L=V[2],z=V[1],S=mhe(C,Hin,g),Z=xhe(S),W=BHe(Vin,Z),X=BHe(Lin,[3,0,z,0]),J=BHe(zin,[3,0,L,0]),Y=hHe([25,I],0),rr=PVe(4,YY(function(r){var n=r[1],t=r[2],e=pde(n,L);if(e)var a=ede(e[1]),u=THe(WHe(_He(J),n,a));else u=pde(n,z)?OHe():WHe(_He(W),n,t);return[0,n,u]},q),q),nr=[0,AVe(J,QHe(H,0,_He(X))),0],tr=[0,AVe(X,PVe(0,YY(function(r){var n=r[2],t=r[1],e=BHe("v_"+t,ede(n)),a=ede(n),u=_He(e),f=pHe(e),i=che(n),c=hHe(Pin,[0,GHe(UL(R3(Min),t,i)),0]),v=[6,ede(n)];return[0,t,XHe(WHe(_He(W),t,v),c,f,u,a)]},z),z)),nr],er=UHe([0,AVe(W,hHe([25,Z],0)),tr],rr),ar=hHe(Zin,[0,GHe(Sin),0]),ur=CHe(hze(),ar,er),fr=CHe(hHe(Win,0),ur,Y),ir=[0,Z,I],cr=[1,S,g];else{var vr=hHe([25,I],0),or=hHe(Jin,[0,GHe(Xin),0]);fr=CHe(hze(),or,vr),ir=[0,I,I],cr=[0,g]}else{var Ar=YY(function(r){var n=r[3];return[0,phe(r[1]),n,Spe]},n),sr=YY(xhe,dhe(0,Ar,g)[2]),br=LY(n);if(0===br)throw kQ([0,YL,Cin],1);var lr=function(r){if(0===r)return hHe([25,ZY(sr,0)],0);var t=ZY(sr,r),e=Zme(t)[2],a=ZY(sr,r-1|0),u=ZY(n,r-1|0),f=u[3],i=u[1],c=u[2],v=khe(f),o=v[2],A=v[1],s=phe(i),b=BHe($in,a),l=BHe(Kin,[3,0,A,0]),B=BHe(Oin,[3,0,o,0]),j=WHe(_He([0,ZE+i,c]),Rin,f),k=PVe(0,YY(function(r){var n=r[2],t=r[1],e=[6,ede(n)],a=BHe("v_"+t,ede(n)),u=ede(n),f=_He(a),c=pHe(a),v=hHe(Gin,[0,GHe(UL(R3(Uin),i,t)),0]);return[0,t,XHe(WHe(_He(b),t,e),v,c,f,u)]},A),A),p=PVe(4,YY(function(r){var n=r[1],t=r[2],e=pde(n,o);if(e)var a=ede(e[1]),u=THe(WHe(_He(B),n,a));else u=WHe(_He(b),n,t);return[0,n,u]},e),e),m=[0,hHe(Bvn,0),0],d=[0,bVe(hHe(jvn,[0,THe(YHe([0,GHe(s),m])),0])),0],_=[0,AVe(B,QHe(j,0,_He(l))),d],h=[0,AVe(l,k),_],x=UHe([0,AVe(b,lr(r-1|0)),h],p),y=hHe([25,t],0),w=BHe("migrations",Uz),g=[0,GHe(s),0],q=hHe([3,Uz,0],[0,_He(w),g]),I=mHe([0,pHe(w),[0,dHe,0]]),D=HHe();return CHe(XHe(hHe(kvn,0),D,I,q,Nz),y,x)},Br=BHe("final_state",I),jr=_He(Br),kr=[0,bVe(hHe([27,I],0)),0];fr=UHe([0,AVe(Br,lr(br)),kr],jr),ir=[0,ZY(sr,0),I],cr=[2,Ar,g]}var pr=[0,bVe(aVe(E,OHe())),0],mr=BHe(Yin,I),dr=_He(mr),_r=pHe(mr),hr=TVe(),xr=[0,hVe(N,0,XHe(eVe(_He(E)),hr,_r,dr,I)),T],yr=rY([0,sVe(E,THe(fr)),xr],pr),wr=a?Tze(a[1][2],y,yr):yr,gr=Y_e([0,1,1,1,Sir,Zir,0]),qr=UL(sie(nfe,Tar),function(r){var n=gr[41];return function(t){return n(r,t)}},cr);switch(cr[0]){case 0:var Ir="// Version: 1.0.0\n";break;case 1:Ir="// Version: 3.0.0\n";break;default:Ir="// Version: 4.0.0\n"}function Dr(r){var n=jHe(Tin,YY(function(r){return r[2]},q)),t=PL(r,vVe(4,u0(function(r,n){return[0,Lle,[0,r[1],n[1]],r[2]]},q,n),I)),e=qVe(YY(function(r){return THe(_He([0,r[1],r[2]]))},g)),a=YY(pHe,n),f=0;if(!a||a[2])i=mHe(a);else var i=a[1];var c=[0,oVe(i,e),f],v=Fze(Fin,u,y);return UHe(rY(v?[0,bVe(v[1]),0]:0,c),t)}var Er=Dr(function(r){return r}),Nr=xB+gm,Tr=BHe(wfn,Mz),Fr=Mpe(gfn,[1,0,0]),Mr=Mpe(Ifn,qfn),Pr=kHe(Fr,0,0),Ur=kHe(Mr,0,0),Gr=Bme(0,[0,[0,Dfn,Mz],0]),$r=BHe(Efn,Kz),Kr=vVe(0,[0,[0,Lle,[0,Nfn,Tr[1]],Mz],0],Gr),Or=[0,AVe(Tr,hHe([26,Er[3][1]],[0,Er,0])),0],Rr=hHe(Tfn,[0,_He($r),0]),Qr=[0,xHe(Kz),0],Cr=[0,bVe(yHe(SHe(hHe([3,Kz,0],[0,_He($r),Qr]),Rr))),Or],Hr=xB+xn,Vr=[0,AVe([0,Nr,$_e],RHe(Nr,Ffn,1,[0,Pr,0],0,[0,Gr,0],wHe(0,Ur,UHe([0,AVe($r,hHe(27,0)),Cr],Kr),[1,Fr,0]))),0],Lr=Mpe(Mfn,[1,0,0]),zr=Mpe(Ufn,Pfn),Sr=kHe(Lr,0,0),Zr=kHe(zr,0,0),Wr=[0,R,Ir+qr],Xr=[0,[0,Lle,[0,Hz,Nr],$_e],0];switch(Dce[1]){case 0:var Jr="default";break;case 1:Jr=Gfn;break;case 2:Jr=$fn;break;case 3:Jr=Kfn;break;default:Jr=Ofn}var Yr=Ece[1]?PL(R3(Rfn),Jr):Jr;function rn(r){return hHe([20,r],0)}var nn=[0,[0,Cfn,rn(Qfn),bme],0],tn=[0,[0,Vfn,rn(Hfn),Tz],nn],en=[0,[0,zfn,rn(Lfn),Tz],tn],an=[0,[0,Zfn,rn(Sfn),Tz],en],un=[0,[0,Xfn,rn(Wfn),Tz],an],fn=[0,[0,Yfn,rn(Jfn),Tz],un],cn=[0,[0,nin,rn(rin),Tz],fn],vn=[0,[0,ein,rn(tin),Tz],cn],on=[0,[0,uin,rn(ain),Tz],vn],An=[0,[0,iin,rn(fin),Tz],on],sn=[0,[0,vin,rn(cin),Tz],An],bn=[0,[0,oin,KHe(0),Nz],sn],ln=[0,[0,sin,rn(Ain),Uz],bn],Bn=[0,[0,bin,GHe(Yr),Uz],ln],jn=[0,[0,lin,GHe(MY(0,mz)),Uz],Bn],kn=YY(function(r){return BHe(r[1],r[3])},jn),pn=BHe(Bin,Kz),mn=vVe(0,u0(function(r,n){return[0,Lle,[0,n[1],r[1]],n[3]]},kn,jn),K_e),dn=u0(function(r,n){return AVe(r,n[2])},kn,jn),_n=hHe(jin,[0,GHe("Unauthorized call of __motoko_runtime_information"),0]),hn=rVe(),yn=hHe(kin,[0,_He(pn),0]),wn=[0,xHe(Kz),0],gn=[0,bVe(CHe(SHe(hHe([3,Kz,0],[0,_He(pn),wn]),yn),hn,_n)),0],qn=[0,AVe([0,Hr,O_e],RHe(Hr,pin,1,[0,Sr,0],0,[0,K_e,0],wHe(0,Zr,UHe(rY([0,AVe(pn,hHe(27,0)),gn],dn),mn),[1,Lr,0]))),0],In=Dr(function(r){return r}),Dn=Fze(rcn,u,y),En=[0,[0,Lle,[0,Cir,Hr],O_e],0],Nn=Dn?Dn[1]:YHe(0),Tn=Fze(ncn,u,y),Fn=Tn?Tn[1]:YHe(0),Mn=Fze(tcn,u,y);if(Mn)var Pn=Mn[1];else{var Un=rVe(),Gn=rVe();Pn=UHe([0,bVe(QHe(_He([0,"@timer_helper",G_e]),[0,Ez,0],Gn)),0],Un)}var $n=Fze(ecn,u,y),Kn=$n?$n[1]:YHe(0),On=Fze(acn,u,y),Rn=On?On[1]:YHe(0),Qn=[0,Wr,hHe([24,I],0),Rn,Kn,Pn,Fn,Nn,In,ir],Cn=rY(Xr,rY(En,w));return[14,rY(Vr,rY(qn,rY(wr,p))),Cn,Qn,y]}function Uze(r,n){var t=r?r[1][2]:0,e=n[2];if(!t)return[0,0,function(r){return n}];switch(e[0]){case 0:var a=e[1],u=a[2];if("number"!=typeof u&&0===u[0]){var f=u[1],i=a[3],c=e[2];return[0,[0,[0,f,i],0],function(r){var n=BHe(f,i);if(KY(Pce[1]))var t=che(i),e=hHe(ccn,[0,GHe(UL(R3(icn),f,t)),0]);else e=c;var u=_He(n),v=pHe(n),o=rVe();return oVe(a,XHe(WHe(QHe(_He(r),0,o),f,[6,i]),e,v,u,i))}]}throw kQ([0,YL,vcn],1);case 1:var v=e[2],o=e[1],A=e[3];return[0,[0,[0,o,[10,v]],0],function(r){var n=BHe(o,v);if(KY(Pce[1]))var t=che(v),e=hHe(fcn,[0,GHe(UL(R3(ucn),o,t)),0]);else e=A;var a=_He(n),u=pHe(n),f=rVe();return sVe([0,o,[10,v]],XHe(WHe(QHe(_He(r),0,f),o,[6,v]),e,u,a,v))}];default:throw kQ([0,YL,ocn],1)}}function Gze(r){if(!r)return scn;var n=r[1][2];if(!n)return Acn;var t=n[1][1];if(!t)return Ein;var e=t[1],a=e[2],u=e[1],f=Pme(a[2]);r:{if(0===u[0]){if("number"!=typeof f&&8===f[0]){var i=f[1];if(i&&!i[1]){var c=f[3];if(c&&!c[2]){var v=f[5],o=f[4],A=u[1];if(!i0(Ude,v))throw kQ([0,YL,min],1);var s=function(r){var n=qVe(YY(_He,r)),t=QHe(wze(A),0,n),e=hme(v);return hHe([17,t[3][1],e],[0,t,0])},b=v,l=o;break r}}}}else if("number"!=typeof f&&8===f[0]){var B=f[1];if(B&&!B[1]){var j=f[3];if(j&&!j[2]&&!f[4]){var k=f[5],p=u[1];if(!i0(Ude,k))throw kQ([0,YL,din],1);s=function(r){var n=wze(p),t=hme(k);return hHe([17,n[3][1],t],[0,n,0])},b=k,l=0;break r}}}throw kQ([0,YL,_in],1)}var m=jHe(hin,l),d=YY(pVe,m),_=a[1],h=lHe(xB+_),x=Mpe(xin,[1,0,0]),y=Mpe(win,yin),w=kHe(x,0,0),g=kHe(y,0,0),q=a[2],I=BHe(gin,Kz),D=hHe(qin,[0,_He(I),0]),E=[0,xHe(Kz),0],N=SHe(hHe([3,Kz,0],[0,_He(I),E]),D),T=s(m),F=hHe(Iin,[0,GHe("Unauthorized caller (caller must be self or a controller)"),0]),M=[0,bVe(CHe(N,rVe(),F)),0];return[0,[0,AVe([0,h,q],RHe(h,Din,1,[0,w,0],d,b,wHe(0,g,UHe([0,AVe(I,hHe(27,0)),M],T),[1,x,0]))),0],[0,[0,_,q,Spe],0],[0,[0,Lle,[0,_,h],q],0]]}function $ze(r,n,t,e,a){var u=vVe(n,Nze(a),a),f=UHe(Oze(YY(function(r){return r[2][1]},e)),u);if(!t)return f[2];var i=[0,t[1][2],a];return lVe(i,f,_He(i))[2]}function Kze(r){var n=r[3];if(n)return[0,r[1],[0,n[1],r[2][2][2],r[2][3][3]],0];throw kQ([0,YL,jcn],1)}function Oze(r){return j0(Rze,r)}function Rze(r){return YY(function(n){return[0,r[1],n,0]},function(r){var n=r[3],t=r[1],e=r[2];switch(e[0]){case 0:return[0,bVe(wze(e[1]))[2],0];case 1:var a=e[3],u=e[2],f=e[1],i=Cze(f),c=wze(u),v=i[2],o=c[2];if("number"!=typeof v&&0===v[0]&&14===o[0]){var A=o[4],s=o[3],b=o[2],l=c[3],B=[14,Tze(v[1],A,o[1]),b,s,A];return[0,[0,i,[0,c[1],B,l]],0]}if(!a)return[0,[0,i,c],0];var j=wze(a[1]),k=wze(u);return[0,[0,i,kVe(Cze(f),k,j)],0];case 2:var p=e[2],m=e[1],d=wze(p);return[0,[1,m[2],p[3][1],d],0];case 4:var _=e[9],h=e[8],x=e[5],y=e[4],w=e[3],g=e[6],q=e[2],I=e[1],D=y[2],E=rde(n[1])[1],N=q[2],T=N?[0,N[1][2]]:0,F=YY(function(r){var n=r[3];if(n)return[1,n[1],0];throw kQ([0,YL,ycn],1)},x),M=n[1];if("number"!=typeof M&&8===M[0]){var P=M[5];if(P&&!P[2]){var U=P[1],G=LY(M[3]);if(LY(F)!==G)throw kQ([0,YL,wcn],1);var $=Ume(Tme(F,U)),K=Lze(n[1],T,I,g),O=K[3],R=K[2],Q=[0,t,[0,D],M],C=K[4],H=K[1];if(1===w[2])var V=nde($)[3],L=Mpe(P_e,[1,0,0]),z=zY(F),S=[0,V,_X[2],_X[3],_X[4]],Z=O([0,t,Dze(t,w,R,[0,h],_,Ume(V)),S]),W=wHe(0,kHe(L,0,0),Z,z);else{var X=[0,$,_X[2],_X[3],_X[4]];W=O([0,t,Dze(t,w,R,[0,h],_,$),X])}var J=[0,M,_X[2],_X[3],_X[4]],Y=YY(Kze,x);return[0,[0,Q,[0,t,[12,y[2],E,C,Y,H,[0,$,0],W],J]],0]}}throw kQ([0,YL,gcn],1);case 6:var rr=e[2],nr=PY(e[3][1]),tr=nr[3],er=nr[2],ar=j0(zze,nr[1]),ur=XVe(GVe[1],ar),fr=ur[2],ir=ur[1],cr=LVe(fr,Cze(er)),vr=cr[2],or=cr[1],Ar=YY(function(r){return r[2]},UL(bLe,vr,j0(Rze,YY(function(r){return r[2][1]},tr)))[1]),sr=[0,oVe(or,wze(rr))[2],Ar];return rY(YY(function(r){return r[2]},ir),sr);default:return 0}}(r))}function Qze(r){return YY(function(r){var n=r[2],t=r[3],e=wze(n[2]),a=[0,Cze(n[1]),e];return[0,r[1],a,t]},r)}function Cze(r){r:{var n=r[2],t=r[3];n:for(;;){if("number"==typeof n){var e=0;break r}switch(n[0]){case 0:e=[0,n[1][2]];break r;case 1:e=[1,Hze(n[1][1])];break r;case 2:break n;case 3:e=[2,YY(Cze,n[1])];break r;case 4:var a=n[1];e=[3,B0(Vze)(a)];break r;case 5:e=[4,Cze(n[1])];break r;case 6:var u=n[1],f=Cze(n[2]);e=[5,u[2],f];break r;case 7:var i=n[1],c=Cze(n[2]);e=[6,Cze(i),c];break r;default:n=n[1][2]}}var v=n[2][1];n:{switch(n[1]){case 1:if("number"!=typeof v)switch(v[0]){case 7:var o=[7,Dye[7].call(null,Dye[2],v[1])];break n;case 8:o=[8,Eye[7].call(null,Eye[2],v[1])];break n;case 9:o=[9,Nye[7].call(null,Nye[2],v[1])];break n;case 10:o=[10,Tye[7].call(null,Tye[2],v[1])];break n;case 1:case 6:o=[6,UL(dye[7],dye[2],v[1])];break n}break;case 2:break;default:o=v;break n}throw kQ([0,zL,"Invalid signed pattern"],1)}e=[1,Hze(o)]}return[0,r[1],e,t]}function Hze(r){if("number"==typeof r)return 0;switch(r[0]){case 0:return[0,r[1]];case 1:return[1,r[1]];case 2:return[2,r[1]];case 3:return[3,r[1]];case 4:return[4,r[1]];case 5:return[5,r[1]];case 6:return[6,r[1]];case 7:return[7,r[1]];case 8:return[8,r[1]];case 9:return[9,r[1]];case 10:return[10,r[1]];case 11:return[11,r[1]];case 12:return[12,r[1]];case 13:return[13,r[1]];case 14:return[14,r[1]];case 15:return[15,r[1]];default:throw kQ([0,YL,qcn],1)}}function Vze(r){var n=r[2];if(0!==n[0])return 0;var t=n[1],e=r[3],a=Cze(n[2]);return[0,[0,r[1],[0,t[2],a],e]]}function Lze(r,n,t,e){function a(r,n){if(14!==n[2][0])return UHe(r,n);var t=QVe(GVe[1],n[2]);if(14!==t[0])throw kQ([0,YL,Mcn],1);var e=t[4],a=t[3],u=t[2],f=n[3],i=[14,rY(r,t[1]),u,a,e];return[0,n[1],i,f]}r:{if("number"==typeof r){if(1===r){var u=0,f=1,i=0,c=0;break r}}else if(8===r[0]){var v=r[5],o=r[2],A=r[1];u=v,f=LY(r[4]),i=o,c=A;break r}throw kQ([0,zL,"to_args "+che(r)],1)}var s=1===f?[0,e[3],0]:fde(e[3]);function b(r){for(var n=r;;){var t=n[2];if(!("number"!=typeof t&&t[0]>=8))return n;n=t[1]}}var l=(0!==n?1:0)||(0!==t?1:0);function B(r){var n=b(r)[2];if("number"==typeof n)return[0,pVe(BHe(Ncn,r[3])),function(r){return r}];switch(n[0]){case 0:var t=n[1];if(!l)return[0,[0,t[1],t[2],r[3]],function(r){return r}];break;case 8:case 9:throw kQ([0,YL,Fcn],1)}var e=BHe(Tcn,r[3]);return[0,pVe(e),function(n){var t=_He(e);return a([0,oVe(Cze(r),t),0],n)}]}var j=b(e)[2];r:if("number"==typeof j)var k=function(r){return r},p=YY(pVe,jHe("ignored",s));else{if(j[0]>=8)throw kQ([0,YL,Pcn],1);n:{if(0===f){if("number"==typeof j)break n;if(3!==j[0])break n;if(!j[1]){k=function(r){return r},p=0;break r}}else if(1===f){var m=B(e);k=m[2],p=[0,m[1],0];break r}if("number"!=typeof j&&3===j[0]){var d=j[1];if(LY(d)!==f)throw kQ([0,YL,Ucn],1);var _=a0(function(r,n){var t=n[2],e=n[1],a=B(r),u=a[2];return[0,[0,a[1],e],function(r){return u(PL(t,r))}]},d,[0,0,function(r){return r}]);k=_[2],p=_[1];break r}}var h=jHe(Gcn,s);k=function(r){var n=YHe(YY(_He,h));return a([0,oVe(Cze(e),n),0],r)},p=YY(pVe,h)}function x(r){if(!n)return PL(k,r);var t=n[1],e=BHe(Dcn,Kz),u=PL(k,r),f=vVe(0,[0,[0,Lle,[0,Ecn,e[1]],Kz],0],dme),i=[0,oVe(Cze(t),f),0];return a([0,AVe(e,hHe(27,0)),i],u)}if(t)var y=t[1],w=BHe($cn,y[3][1]),g=function(r){var n=x(r);return a([0,AVe(w,wze(y)),0],n)},q=[0,_He(w)];else g=function(r){return x(r)},q=0;return[0,p,q,function(r){if(0===c)return g(r);var n=r[2];r:{switch(i){case 0:switch(n[0]){case 4:var t=n[1],e=t[1];if(!e)break r;var a=e[1][2];if(0!==a[0])break r;var u=a[1];if("number"!=typeof u[2])break r;var f=a[2],v=f[2];if(9!==v[0])break r;if(v[1])break r;var o=v[4],A=v[3],s=v[2];if(e[2])break r;var b=t[2],l=b[2];if(0!==l[0])break r;var B=l[1],j=B[1];if("number"!=typeof j)break r;if(j)break r;if(B[2])break r;var k=f[3],p=[9,0,s,g(A),o];return UHe([0,oVe(u,[0,f[1],p,k]),0],b);case 14:break;default:break r}break;case 1:switch(n[0]){case 9:var m=n[4],d=n[2],_=n[1],h=r[3],x=[9,_,d,g(n[3]),m];return[0,r[1],x,h];case 14:break;default:break r}}if(14===n[0])return g(r)}throw kQ([0,YL,Icn],1)},i,u]}function zze(r){var n=r[2],t=r[3],e=n[3],a=n[2],u=n[1];if(2===t)throw kQ([0,YL,Kcn],1);if("number"!=typeof t&&3===t[0]&&2===t[1])return 0;var f=e[1];if("number"==typeof f){if(0===f)throw kQ([0,zL,"Unresolved import "+a],1);var i=_He([0,ZE+GU,t])}else switch(f[0]){case 0:i=_He([0,ZE+f[1][2],t]);break;case 1:var c=f[1][2];if(0===c[0]){var v=GHe(c[1]);i=hHe([18,t],[0,QHe(_He([0,"@envvar_principal",Ocn]),0,v),0])}else i=hHe([18,t],[0,$He(c[1]),0]);break;default:var o=f[1];if(Oce[1])throw kQ([0,zL,Rcn],1);var A=Qie(o,Vie);if(!dH(t,Qcn))throw kQ([0,YL,Ccn],1);i=$He(A)}return[0,oVe(Cze(u),i),0]}function Sze(r,n,t,e){return FVe(3,[0,[0,r,Mpe(r,[0,0,n])],0],[0,[0,r,t],[0,[0,bvn,FVe(3,0,[0,[0,r,e],0])],0]])}function Zze(r){return Oze(r[2])}function Wze(r,n){switch(n[0]){case 0:var t=n[2];return[0,rY(r,n[1]),t];case 1:return[1,rY(r,n[1])];default:if(!n[1]){var e=n[5],a=n[4],u=n[3];return[2,0,rY(r,n[2]),u,a,e]}var f=GVe[1];switch(n[0]){case 0:var i=n[2],c=XVe(f,n[1]),v=[0,c[1],RVe(c[2],i)];break;case 1:v=[1,XVe(f,n[1])[1]];break;default:var o=n[4],A=n[1],s=n[5],b=o[9],l=o[8],B=o[7],j=o[6],k=o[5],p=o[4],m=o[3],d=o[2],_=o[1],h=n[3],x=n[2];if(A)var y=VVe(f,A[1]),w=y[2],g=[0,y[1]];else w=f,g=0;var q=XVe(w,x),I=q[2],D=q[1],E=RVe(I,l),N=RVe(I,B),T=RVe(I,j),F=RVe(I,k),M=RVe(I,p),P=RVe(I,m),U=[0,_,RVe(I,d),P,M,F,T,N,E,b];v=[2,g,D,HVe(I,h),U,s]}if(2!==v[0])throw kQ([0,YL,avn],1);var G=v[5],$=v[4],K=v[3];return[2,v[1],rY(r,v[2]),K,$,G]}}function Xze(r){var n=r[2],t=n[2],e=j0(zze,n[1]),a=t[2];switch(a[0]){case 0:var u=[1,Oze(a[1])];break;case 1:var f=a[4],i=a[3],c=a[1],v=UY(wze,a[2]),o=Pze(t[1],c[3],0,v,i,f,t[3][1]);if(14!==o[0])throw kQ([0,YL,rvn],1);u=[2,0,o[1],o[2],o[3],o[4]];break;case 2:var A=a[2],s=a[1],b=dze(t[3]),l=$ze(t[1],3,s,A,t[3][1]);u=[0,0,[0,t[1],l,b]];break;case 3:var B=t[3][1],j=a[3][2],k=a[9],p=a[8],m=a[6],d=a[2],_=a[1],h=Lze(B,j?[0,j[1][2]]:0,d,m),x=h[3],y=h[2],w=h[1];if("number"!=typeof B&&8===B[0]){var g=B[5];if(g&&!g[2]){var q=B[3],I=g[1],D=B[4];if(1!==LY(q))throw kQ([0,YL,nvn],1);var E=Fme(q),N=Ume(nde(Pme(Tme(E,I)))[3]),T=YY(function(r){return Tme(E,r)},D),F=Pze(t[1],_[3],T,y,[0,p],k,N),M=x([0,Lle,F,[0,N,_X[2],_X[3],_X[4]]])[2];if(14!==M[0])throw kQ([0,YL,tvn],1);u=[2,[0,w],M[1],M[2],M[3],M[4]];break}}throw kQ([0,YL,evn],1);default:throw kQ([0,zL,"Desugar: Cannot transform mixin compilation unit"],1)}return[0,Wze(e,u),_nn]}function Jze(r,n,t){if(t)return[0,r[1],t];var e=r[2];return e&&n===e[1][1]?[0,r[1],0]:r}function Yze(r,n){var t=n[3],e=nSe(r,n);return[0,n[1],e,t]}function rSe(r,n){var t=n[3],e=nSe([0,0,r[2]],n);return[0,n[1],e,t]}function nSe(r,n){var t=n[2];switch(t[0]){case 0:var e=t[1],a=e[1];if("number"==typeof a){if(4===a){var u=e[2];if(u&&!u[2])return[0,[0,4,[0,Yze([0,1,r[2]],u[1]),0]]]}}else if(0===a[0]){var f=e[2];if(f){var i=f[2];if(i&&!i[2]){var c=i[1],v=f[1],o=a[1],A=v[2];r:if(1===A[0]&&r[1]){var s=r[2];if(s){var b=s[1],l=b[3];n:{t:{var B=b[5],j=b[4],k=b[2];if(A[2]!==b[1])break r;for(var p=o,m=k;m;){if(!p)break t;var d=p[1],_=p[2],h=m[2],x=m[1];if("number"==typeof d||1!==d[0]||d[2])y=0;else var y=Kpe(x[2][1],d[1]);if(!y){var w=y;break n}p=_,m=h}if(!p){w=1;break n}}w=LJ(ez)}if(w){B[1]=1;var g=nVe(j,rVe()),q=rSe(r,c),I=q[2];n:if(!l||l[2]){if(0===I[0]){var D=I[1],E=D[1];if("number"==typeof E&&!E){var N=D[2],T=LY(l);if(LY(N)===T){P=YY(bVe,u0(aVe,l,N));break n}}}var F=BHe(mvn,uHe(q)),M=n0(function(r,n){return bVe(aVe(n,NHe(_He(n),r)))},l);P=[0,AVe(F,q),M]}else var P=[0,bVe(aVe(l[1],q)),0];return UHe(P,g)[2]}}}var U=[0,rSe(r,c),0];return[0,[0,[0,o],[0,rSe(r,v),U]]]}}}return[0,[0,a,YY(function(n){return rSe(r,n)},e[2])]];case 3:var G=t[1],$=rSe(r,t[2]);return[3,tSe(r,G),$];case 4:var K=t[1],O=K[2],R=iSe(r,K[1]);return[4,[0,R[2],Yze(R[1],O)]];case 5:var Q=t[2],C=t[1],H=Yze(r,t[3]),V=Yze(r,Q);return[5,rSe(r,C),V,H];case 6:var L=t[1],z=fSe(r,t[2]);return[6,rSe(r,L),z];case 7:return[7,rSe(r,t[1])];case 8:var S=t[1],Z=t[3];return[8,S,t[2],rSe(Jze(r,S,0),Z)];case 9:var W=t[4],X=t[2];return[9,t[1],X,rSe(dvn,t[3]),W];case 10:var J=t[1],Y=t[3];return[10,J,t[2],Yze(Jze(r,J,0),Y)];case 11:var rr=t[2];return[11,t[1],rr,rSe(r,t[3])];case 12:var nr=t[5],tr=t[7],er=t[6],ar=t[4],ur=t[3],fr=t[2];return[12,t[1],fr,ur,ar,nr,er,Yze(eSe(_vn,nr),tr)];case 13:var ir=t[5],cr=t[4],vr=t[3];return[13,t[1],Yze(hvn,t[2]),rSe(r,vr),rSe(r,cr),rSe(r,ir)];case 14:var or=t[3],Ar=t[4],sr=t[2],br=t[1],lr=or[9],Br=rSe(r,or[8]),jr=or[7],kr=or[6],pr=or[5],mr=or[4],dr=rSe(r,or[3]),_r=rSe(r,or[2]),hr=[0,or[1],_r,dr,mr,pr,kr,jr,Br,lr];return[14,iSe(r,br)[2],sr,hr,Ar];case 15:return[15,t[1],t[2],t[3]];case 16:var xr=t[3],yr=t[1],wr=fSe(r,t[2]);return[16,rSe(r,yr),wr,xr];default:return t}}function tSe(r,n){var t=n[2],e=n[3];switch(t[0]){case 0:var a=[0,t[1]];break;case 1:var u=t[1],f=rSe(r,t[2]);a=[1,rSe(r,u),f];break;default:var i=t[2];a=[2,rSe(r,t[1]),i]}return[0,n[1],a,e]}function eSe(r,n){for(var t=n,e=r;;){if(!t)return e;var a=t[2],u=Jze(e,t[1][2],0);t=a,e=u}}function aSe(r,n){for(var t=n;;){var e=t[2];if("number"!=typeof e)switch(e[0]){case 0:return Jze(r,e[1],0);case 2:return uSe(r,e[1]);case 3:return uSe(r,jCe(e[1]));case 4:case 6:t=e[1];continue;case 5:t=e[2];continue}return r}}function uSe(r,n){for(var t=r,e=n;;){if(!e)return t;var a=e[2];t=aSe(t,e[1]),e=a}}function fSe(r,n){return YY(function(n){var t=n[2],e=t[1],a=n[3],u=t[2],f=[0,e,Yze(aSe(r,e),u)];return[0,n[1],f,a]},n)}function iSe(r,n){var t=function r(n,t){if(!t)return[0,0,n];var e=t[2],a=function(r,n){var t=n[2];switch(t[0]){case 0:var e=t[1],a=e[2];if("number"!=typeof a&&0===a[0]){var u=a[1],f=t[2],i=f[2];if(12===i[0]&&!i[2]){var c=i[6],v=i[5],o=i[4],A=i[3],s=i[1],b=i[7],l=[0,function(r){var n=jHe(xvn,YY(function(r){return[10,r[3]]},v)),t=lHe("tailcall"),a=[0,0],i=Yze(eSe([0,1,[0,[0,u,o,n,t,a]]],v),b),l=YY(function(r){return[1,r[2][1],0]},o);if(!a[1])return[0,e,[0,f[1],[12,s,0,A,o,v,c,i],f[3]]];var B=uHe(f);if("number"!=typeof B&&8===B[0]){var j=jHe("id",YY(function(r){return Tme(l,r)},B[4])),k=tVe(i),p=iVe(fVe(t,Ez,UHe(u0(function(r,n){var t=eVe(_He(n));return AVe([0,r[2],r[3]],t)},v,n),k))),m=UHe(u0(function(r,n){return sVe(r,_He(n))},n,j),p),d=f[3],_=[12,s,0,A,o,YY(pVe,j),c,m];return[0,e,[0,f[1],_,d]]}throw kQ([0,YL,yvn],1)},Jze(r,u,0)];break}}var B=t[2];l=[0,function(r){return[0,e,rSe(r,B)]},aSe(r,e)];break;case 1:var j=t[1],k=t[3],p=t[2];l=[0,function(r){return[1,j,p,rSe(r,k)]},Jze(r,j,0)];break;default:var m=t[1],d=t[3],_=t[2];l=[0,function(r){return[2,m,_,tSe(r,d)]},Jze(r,m,0)]}return[0,[0,n[1],l[1],n[3]],l[2]]}(n,t[1]),u=a[1],f=r(a[2],e);return[0,[0,u,f[1]],f[2]]}(r,n),e=t[2];return[0,e,YY(function(r){var n=r[3],t=PL(r[2],[0,0,e[2]]);return[0,r[1],t,n]},t[1])]}var cSe=R1([0,r1]);function vSe(r){return[0,[0,cSe[1]]]}function oSe(r){return[8,0,0,0,[0,r,0],[0,Uz,0]]}function ASe(r){var n=oSe(r);return[0,"@show<"+The(r)+f_,n]}function sSe(r){return _He([0,gX,r])}function bSe(r,n){return _Ve(ASe(r),[0,gX,r],n)}function lSe(r,n){return NVe(_He(ASe(r)),n)}function BSe(r,n,t){var e=sSe(n);return NVe(_He([0,r,[8,0,0,0,[0,n,0],[0,Uz,0]]]),e)}function jSe(r,n,t){var e=[8,0,0,Wvn,[0,oSe(Zvn),Svn],[0,Uz,0]],a=YHe([0,n,[0,t,0]]);return QHe(_He([0,"@text_of_option",e]),[0,r,0],a)}function kSe(r,n,t,e){return rY([0,r,0],function r(e){if(!e)return[0,t,0];var a=e[1];if(!e[2])return[0,a,[0,t,0]];var u=r(e[2]);return rY([0,a,[0,PL(n,0),0]],u)}(e))}function pSe(r,n){return[0,Lle,[0,[0,[2,Uz,17],[0,r,[0,n,0]]]],[0,Uz,_X[2],_X[3],_X[4]]]}function mSe(r){return a0(pSe,r,GHe(""))}function dSe(r){if("number"==typeof r){if(1===r)return[0,bSe(r,TVe()),0]}else switch(r[0]){case 1:return[0,bSe(r,GHe("show_for: cannot handle type parameter "+che(r))),0];case 2:switch(r[1]){case 0:return[0,bSe(r,GHe(Evn)),0];case 1:return[0,bSe(r,BSe("@text_of_Bool",r,sSe(r))),0];case 2:return[0,bSe(r,BSe("@text_of_Nat",r,sSe(r))),0];case 3:return[0,bSe(r,BSe("@text_of_Nat8",r,sSe(r))),0];case 4:return[0,bSe(r,BSe("@text_of_Nat16",r,sSe(r))),0];case 5:return[0,bSe(r,BSe("@text_of_Nat32",r,sSe(r))),0];case 6:return[0,bSe(r,BSe("@text_of_Nat64",r,sSe(r))),0];case 7:return[0,bSe(r,BSe("@text_of_Int",r,sSe(r))),0];case 8:return[0,bSe(r,BSe("@text_of_Int8",r,sSe(r))),0];case 9:return[0,bSe(r,BSe("@text_of_Int16",r,sSe(r))),0];case 10:return[0,bSe(r,BSe("@text_of_Int32",r,sSe(r))),0];case 11:return[0,bSe(r,BSe("@text_of_Int64",r,sSe(r))),0];case 12:return[0,bSe(r,BSe("@text_of_Float",r,sSe(r))),0];case 13:return[0,bSe(r,BSe("@text_of_Float32",r,sSe(r))),0];case 14:return[0,bSe(r,BSe("@text_of_Char",r,sSe(r))),0];case 15:return[0,bSe(r,BSe("@text_of_Text",r,sSe(r))),0];case 16:return[0,bSe(r,BSe("@text_of_Blob",r,sSe(r))),0];case 18:return[0,bSe(r,hHe(10,[0,hHe([17,Kz,Gz],[0,sSe(r),0]),0])),0]}break;case 3:if(!r[1]){var n=r[2],t=YY(function(r){return ede(Pme(r[2]))},n),e=YY(function(n){var t=ede(Pme(n[2])),e=n[1],a=lSe(t,WHe(sSe(r),e,t));return pSe(GHe(n[1]+TE),a)},n),a=GHe(Nvn);return[0,bSe(r,mSe(kSe(GHe(Tvn),function(r){return GHe(Dvn)},a,e))),t]}break;case 4:var u=r[1],f=YY(function(r){return Pme(r[2])},u),i=YY(function(r){var n=r[1],t=Pme(r[2]),e=sSe(t),a=_He(ASe(t)),u=[8,0,0,zvn,[0,Uz,[0,oSe(Lvn),Vvn]],[0,Uz,0]],f=YHe([0,GHe(n),[0,a,[0,e,0]]]),i=QHe(_He([0,"@text_of_variant",u]),[0,t,0],f);return[0,n,pHe([0,gX,t]),i]},u);return[0,bSe(r,JHe(sSe(r),i,Uz)),f];case 5:var c=Pme(r[1]);if("number"!=typeof c&&10===c[0]){var v=c[1],o=sSe(r),A=_He(ASe(v)),s=[8,0,0,Rvn,[0,oSe(Ovn),Kvn],[0,Uz,0]],b=YHe([0,A,[0,o,0]]);return[0,bSe(r,QHe(_He([0,"@text_of_array_mut",s]),[0,v,0],b)),[0,v,0]]}var l=sSe(r),B=_He(ASe(c)),j=[8,0,0,Hvn,[0,oSe(Cvn),Qvn],[0,Uz,0]],k=YHe([0,B,[0,l,0]]);return[0,bSe(r,QHe(_He([0,"@text_of_array",j]),[0,c,0],k)),[0,c,0]];case 6:var p=Pme(r[1]),m=sSe(r);return[0,bSe(r,jSe(p,_He(ASe(p)),m)),[0,p,0]];case 7:var d=r[1];if(!d)return[0,bSe(r,GHe("()")),0];var _=YY(Pme,d),h=n0(function(n,t){return lSe(t,NHe(sSe(r),n))},_),x=GHe(Fvn);return[0,bSe(r,mSe(kSe(GHe(Mvn),function(r){return GHe(Ivn)},x,h))),_];case 8:return[0,bSe(r,GHe(Pvn)),0];case 12:var y=Pme(r[1]),w=hHe(Uvn,[0,sSe(r),0]),g=jSe(y,_He(ASe(y)),w);return[0,bSe(r,pSe(GHe(Gvn),g)),[0,y,0]]}throw kQ([0,YL,$vn],1)}function _Se(r){var n=[0,cSe[1]];return function r(t){for(var e=t;;){if(!e)return 0;var a=e[1],u=e[2],f=n[1],i=The(a);if(!cSe[3].call(null,i,f)){var c=e[2],v=n[1],o=The(a);n[1]=cSe[4].call(null,o,0,v);var A=dSe(a);return[0,A[1],r(rY(A[2],c))]}e=u}}(YY(function(r){return r[2]},cSe[20].call(null,r)))}function hSe(r,n){var t=n[3],e=function(r,n){switch(n[0]){case 0:var t=n[1],e=t[1];if("number"!=typeof e&&11===e[0]){var a=t[2];if(a&&!a[2]){var u=a[1],f=Pme(e[1]),i=r[1][1],c=The(f),v=cSe[4].call(null,c,f,i);r[1][1]=v;var o=hSe(r,u);return NVe(_He(ASe(f)),o)[2]}}return[0,[0,e,YY(function(n){return hSe(r,n)},t[2])]];case 3:var A=n[1],s=hSe(r,n[2]);return[3,xSe(r,A),s];case 4:var b=n[1],l=b[1],B=hSe(r,b[2]);return[4,[0,ySe(r,l),B]];case 5:var j=n[2],k=n[1],p=hSe(r,n[3]),m=hSe(r,j);return[5,hSe(r,k),m,p];case 6:var d=n[1],_=YY(function(n){var t=n[2],e=t[1],a=n[1],u=n[3];return[0,a,[0,e,hSe(r,t[2])],u]},n[2]);return[6,hSe(r,d),_];case 7:return[7,hSe(r,n[1])];case 8:var h=n[2];return[8,n[1],h,hSe(r,n[3])];case 9:var x=n[4],y=n[2];return[9,n[1],y,hSe(r,n[3]),x];case 10:var w=n[2];return[10,n[1],w,hSe(r,n[3])];case 11:var g=n[2];return[11,n[1],g,hSe(r,n[3])];case 12:var q=n[6],I=n[5],D=n[4],E=n[3],N=n[2];return[12,n[1],N,E,D,I,q,hSe(r,n[7])];case 13:var T=n[4],F=n[3],M=n[2],P=n[1],U=hSe(r,n[5]),G=hSe(r,T),$=hSe(r,F);return[13,P,hSe(r,M),$,G,U];case 14:var K=n[3],O=n[4],R=K[9],Q=K[8],C=K[7],H=K[6],V=K[5],L=K[4],z=K[3],S=K[2],Z=K[1],W=n[2],X=n[1],J=vSe(),Y=ySe(J,X),rr=hSe(J,S),nr=hSe(J,z),tr=hSe(J,L),er=hSe(J,V),ar=hSe(J,H),ur=hSe(J,C),fr=hSe(J,Q);return[14,rY(_Se(J[1][1]),Y),W,[0,Z,rr,nr,tr,er,ar,ur,fr,R],O];case 15:return[15,n[1],n[2],n[3]];case 16:var ir=n[3],cr=n[1],vr=YY(function(n){var t=n[2],e=t[1],a=n[1],u=n[3];return[0,a,[0,e,hSe(r,t[2])],u]},n[2]);return[16,hSe(r,cr),vr,ir];default:return n}}(r,n[2]);return[0,n[1],e,t]}function xSe(r,n){var t=n[2],e=n[3];switch(t[0]){case 0:var a=[0,t[1]];break;case 1:var u=t[1],f=hSe(r,t[2]);a=[1,hSe(r,u),f];break;default:var i=t[2];a=[2,hSe(r,t[1]),i]}return[0,n[1],a,e]}function ySe(r,n){return YY(function(n){var t=n[2],e=n[3];switch(t[0]){case 0:var a=[0,t[1],hSe(r,t[2])];break;case 1:var u=t[2];a=[1,t[1],u,hSe(r,t[3])];break;default:var f=t[2];a=[2,t[1],f,xSe(r,t[3])]}return[0,n[1],a,e]},n)}var wSe=aBe([0,$pe]),gSe=R1([0,r1]);function qSe(r){return[0,[0,gSe[1]]]}function ISe(r){return[8,0,0,0,[0,r,[0,r,0]],[0,Nz,0]]}function DSe(r){var n=ISe(r);return[0,"@eq<"+The(r)+f_,n]}function ESe(r,n,t){if(g_e(r)){var e=VHe(),a=[0,bVe(jVe(t)),0];return UHe([0,bVe(jVe(n)),a],e)}if(WLe(r))return hHe([3,r,0],[0,n,[0,t,0]]);var u=YHe([0,n,[0,t,0]]);return NVe(_He(DSe(r)),u)}function NSe(r){return _He([0,"x1",r])}function TSe(r){return _He([0,"x2",r])}function FSe(r,n){return hVe(DSe(r),[0,[0,"x1",r],[0,[0,"x2",r],0]],n)}function MSe(r){if(!g_e(r)&&!WLe(r)){if("number"==typeof r){if(1===r)return[0,FSe(r,TVe()),0]}else switch(r[0]){case 1:throw kQ([0,zL,"eq_for: cannot handle type parameter "+che(r)],1);case 3:if(1>>0){var n=r[2],t=YY(function(r){return ede(Pme(r[2]))},n);return[0,FSe(r,ZHe(YY(function(n){var t=ede(Pme(n[2])),e=n[1],a=WHe(TSe(r),e,t),u=n[1];return ESe(t,WHe(NSe(r),u,t),a)},n))),t]}break;case 4:var e=r[1],a=YY(function(r){return Pme(r[2])},e),u=[0,Nz,_X[2],_X[3],_X[4]],f=[0,[0,Lle,[0,dHe,HHe()],0],0],i=rY(YY(function(n){var t=Pme(n[2]),e=[0,"y1",t],a=[0,"y2",t],u=_He(a),f=ESe(t,_He(e),u),i=pHe(a),c=[0,[0,Lle,[5,n[1],i],r],0],v=pHe(e);return[0,Lle,[0,[0,Lle,[2,[0,[0,Lle,[5,n[1],v],r],c]],[7,[0,r,[0,r,0]]]],f],0]},e),f),c=[0,TSe(r),0];return[0,FSe(r,[0,Lle,[6,YHe([0,NSe(r),c]),i],u]),a];case 5:var v=Pme(r[1]);if("number"!=typeof v&&10===v[0])throw kQ([0,YL,ton],1);var o=TSe(r),A=NSe(r),s=_He(DSe(v)),b=[8,0,0,uon,[0,ISe(aon),eon],[0,Nz,0]],l=YHe([0,s,[0,A,[0,o,0]]]);return[0,FSe(r,QHe(_He([0,"@equal_array",b]),[0,v,0],l)),[0,v,0]];case 6:var B=Pme(r[1]),j=[0,"y1",B],k=[0,"y2",B],p=_He(k),m=ESe(B,_He(j),p),d=pHe(k),_=HHe(),h=XHe(TSe(r),_,d,m,Nz),x=pHe(j),y=HHe(),w=VHe(),g=XHe(TSe(r),w,dHe,y,Nz);return[0,FSe(r,XHe(NSe(r),g,x,h,Nz)),[0,B,0]];case 7:var q=YY(Pme,r[1]);return[0,FSe(r,ZHe(n0(function(n,t){var e=NHe(TSe(r),n);return ESe(t,NHe(NSe(r),n),e)},q))),q]}throw kQ([0,zL,"Ir_passes.Eq.eq_on: Unexpected type "+che(r)],1)}var I=TSe(r);return[0,FSe(r,ESe(r,NSe(r),I)),0]}function PSe(r){var n=[0,gSe[1]];return function r(t){for(var e=t;;){if(!e)return 0;var a=e[1],u=e[2],f=n[1],i=The(a);if(!gSe[3].call(null,i,f)){var c=e[2],v=n[1],o=The(a);n[1]=gSe[4].call(null,o,0,v);var A=MSe(a);return[0,A[1],r(rY(A[2],c))]}e=u}}(YY(function(r){return r[2]},gSe[20].call(null,r)))}function USe(r,n){var t=n[3],e=function(r,n){switch(n[0]){case 0:var t=n[1],e=t[1];if("number"!=typeof e&&3===e[0]&&!e[2]){var a=t[2];if(a){var u=a[2];if(u&&!u[2]){var f=u[1],i=a[1],c=e[1];if(g_e(c)){var v=USe(r,i),o=USe(r,f),A=VHe(),s=[0,bVe(jVe(o)),0];return UHe([0,bVe(jVe(v)),s],A)[2]}if(!WLe(c)){var b=Pme(c),l=r[1][1],B=The(b),j=gSe[4].call(null,B,b,l);r[1][1]=j;var k=[0,USe(r,f),0],p=YHe([0,USe(r,i),k]);return NVe(_He(DSe(b)),p)[2]}}}}return[0,[0,e,YY(function(n){return USe(r,n)},t[2])]];case 3:var m=n[1],d=USe(r,n[2]);return[3,GSe(r,m),d];case 4:var _=n[1],h=_[1],x=USe(r,_[2]);return[4,[0,$Se(r,h),x]];case 5:var y=n[2],w=n[1],g=USe(r,n[3]),q=USe(r,y);return[5,USe(r,w),q,g];case 6:var I=n[1],D=YY(function(n){var t=n[2],e=t[1],a=n[1],u=n[3];return[0,a,[0,e,USe(r,t[2])],u]},n[2]);return[6,USe(r,I),D];case 7:return[7,USe(r,n[1])];case 8:var E=n[2];return[8,n[1],E,USe(r,n[3])];case 9:var N=n[4],T=n[2];return[9,n[1],T,USe(r,n[3]),N];case 10:var F=n[2];return[10,n[1],F,USe(r,n[3])];case 11:var M=n[2];return[11,n[1],M,USe(r,n[3])];case 12:var P=n[6],U=n[5],G=n[4],$=n[3],K=n[2];return[12,n[1],K,$,G,U,P,USe(r,n[7])];case 13:var O=n[4],R=n[3],Q=n[2],C=n[1],H=USe(r,n[5]),V=USe(r,O),L=USe(r,R);return[13,C,USe(r,Q),L,V,H];case 14:var z=n[3],S=n[4],Z=z[9],W=z[8],X=z[7],J=z[6],Y=z[5],rr=z[4],nr=z[3],tr=z[2],er=z[1],ar=n[2],ur=n[1],fr=qSe(),ir=$Se(fr,ur),cr=USe(fr,tr),vr=USe(fr,nr),or=USe(fr,rr),Ar=USe(fr,Y),sr=USe(fr,J),br=USe(fr,X),lr=USe(fr,W);return[14,rY(PSe(fr[1][1]),ir),ar,[0,er,cr,vr,or,Ar,sr,br,lr,Z],S];case 15:return[15,n[1],n[2],n[3]];case 16:var Br=n[3],jr=n[1],kr=YY(function(n){var t=n[2],e=t[1],a=n[1],u=n[3];return[0,a,[0,e,USe(r,t[2])],u]},n[2]);return[16,USe(r,jr),kr,Br];default:return n}}(r,n[2]);return[0,n[1],e,t]}function GSe(r,n){var t=n[2],e=n[3];switch(t[0]){case 0:var a=[0,t[1]];break;case 1:var u=t[1],f=USe(r,t[2]);a=[1,USe(r,u),f];break;default:var i=t[2];a=[2,USe(r,t[1]),i]}return[0,n[1],a,e]}function $Se(r,n){return YY(function(n){var t=n[2],e=n[3];switch(t[0]){case 0:var a=[0,t[1],USe(r,t[2])];break;case 1:var u=t[2];a=[1,t[1],u,USe(r,t[3])];break;default:var f=t[2];a=[2,t[1],f,GSe(r,t[3])]}return[0,n[1],a,e]},n)}var KSe=aBe([0,r1]),OSe=[0,0,kBe];function RSe(r,n,t){for(var e=t,a=n;;){if(!e)return a;var u=e[2],f=KSe[4].call(null,e[1][2],[0,0===r?1:0,OSe[2]],a);e=u,a=f}}function QSe(r,n){for(var t=n;;){var e=t[2];if("number"!=typeof e)switch(e[0]){case 0:return KSe[4].call(null,e[1],OSe,r);case 2:return e0(QSe,r,e[1]);case 3:return e0(QSe,r,jCe(e[1]));case 5:t=e[2];continue;case 1:break;default:t=e[1];continue}return r}}function CSe(r,n){var t=KSe[29].call(null,r,n);if(t)return t[1];throw kQ([0,zL,PL(R3(ion),r)],1)}function HSe(r,n){var t=r[3][3]!==n?1:0;if(t){var e=r[3];r[3]=[0,e[1],e[2],n,e[4]];var a=0}else a=t;return a}function VSe(r,n,t){var e=t[2];r:{n:{t:{switch(e[0]){case 0:var a=e[1],u=a[1];e:{a:{if("number"==typeof u)switch(u){case 0:var f=a[2];break e;case 1:break;default:break a}else switch(u[0]){case 8:if(u[1])break a;f=a[2];break e;case 4:case 5:case 6:break;default:break a}var i=a[2];if(i&&!i[2]){var c=VSe(r,n,i[1]);break r}}for(var v=a[2];;){if(!v){c=kBe;break r}var o=v[2];LSe(r,n,v[1]),v=o}}c=mBe(YY(function(t){return VSe(r,n,t)},f));break r;case 1:c=CSe(e[2],n)[2];break r;case 3:var A=e[2];break n;case 4:var s=e[1],b=s[2],l=SSe(r,n,s[1]);c=mBe([0,l[2],[0,VSe(r,l[1],b),0]]);break r;case 5:var B=e[3],j=e[2];LSe(r,n,e[1]),LSe(r,n,j),LSe(r,n,B);c=kBe;break r;case 6:var k=e[2],p=e[1];break t;case 7:var m=e[1];break;case 9:m=e[3];break;case 10:var d=e[3];LSe(r,KSe[4].call(null,e[1],OSe,n),d);c=kBe;break r;case 12:var _=e[7],h=e[2];if(LSe(1,RSe(1,n,e[5]),_),h){c=kBe;break r}if(r){var x=[0,[0,0]],y=LCe(t);dCe[12].call(null,function(r,t){var e=CSe(r,n),a=e[2];return e[1]?0:pBe(a,x)},y);c=x;break r}c=jBe;break r;case 13:var w=e[5],g=e[4],q=e[3];LSe(1,n,e[2]),LSe(r,n,q),LSe(r,n,g),LSe(r,n,w);c=kBe;break r;case 14:var I=e[3],D=I[8],E=I[7],N=I[6],T=I[5],F=I[4],M=I[3],P=I[2],U=SSe(r,n,e[1])[1];LSe(r,U,P),LSe(r,U,M),LSe(r,U,F),LSe(r,U,T),LSe(r,U,N),LSe(r,U,E),LSe(r,U,D);c=kBe;break r;case 15:var G=e[1];if(3!==G&&G){c=kBe;break r}var $=e[2];if(jde(e[3])){c=mBe(YY(function(r){return CSe(r[2][2],n)[2]},$));break r}c=kBe;break r;case 16:var K=e[3],O=e[2],R=e[1];if(!K){k=O,p=R;break t}var Q=K[1],C=Q[2],H=Q[1];LSe(r,n,R);for(var V=O;;){if(!V){LSe(r,n,_He([0,H,C]));c=kBe;break r}var L=V[2];zSe(r,n,V[1]),V=L}break;case 2:c=jBe;break r;default:A=e[3];break n}LSe(1,n,m);c=kBe;break r}LSe(r,n,p);for(var z=k;;){if(!z){c=kBe;break r}var S=z[2];zSe(r,n,z[1]),z=S}}LSe(r,n,A);c=kBe}return HSe(t,1),BBe(c,[W,function(r){return HSe(t,0)}]),c}function LSe(r,n,t){VSe(r,n,t)}function zSe(r,n,t){var e=t[2][2];return LSe(r,QSe(n,t[2][1]),e)}function SSe(r,n,t){for(var e=t,a=KSe[1];e;){var u=e[1],f=function(n){return[0,0===r?1:0,n]},i=u[2],c=e[2],v=0===i[0]?lLe(i[1]):0;let n=f,t=v;var o=YCe(u)[2];e=c,a=KSe[13].call(null,function(r,e,a){if(t){var u=n([0,[0,0]]);return KSe[4].call(null,r,u,a)}var f=n(kBe);return KSe[4].call(null,r,f,a)},o,a)}var A=KSe[48].call(null,n,a);return[0,A,mBe(YY(function(n){return function(r,n,t){var e=t[2];switch(e[0]){case 0:var a=e[2];if(lLe(e[1])){var u=YCe(t)[2],f=VSe(r,n,a);return KSe[12].call(null,function(r,t){return pBe(f,KSe[28].call(null,r,n)[2])},u),f}var i=e[2];break;case 1:i=e[3];break;default:return kBe}return LSe(r,n,i),kBe}(r,A,n)},t))]}function ZSe(r,n){return BHe(aAn,xVe(r,n))}function WSe(r){return BHe(eAn,yVe(r))}function XSe(r,n){var t=[0,0];return[1,r,function(r){if(t[1])throw kQ([0,YL,tAn],1);return t[1]=1,PL(n,r)}]}function JSe(r,n){if(0===r[0])return PL(n,r[1]);var t=r[1],e=r[2],a=BHe(nAn,t),u=PL(e,a),f=ZSe(t,uHe(u)),i=PL(n,f);return UHe([0,_Ve(f,a,u),0],i)}function YSe(r,n){if(0===r[0])return NVe(_He(r[1]),n);var t=r[2],e=n[2],a=r[1];if(1===e[0]&&!e[1])return PL(t,[0,e[2],uHe(n)]);var u=BHe("u",a);return lVe(u,n,PL(t,u))}var rZe=aBe([0,KC]),nZe=aBe([0,r1]);function tZe(r,n){var t=n[2];if("number"!=typeof t&&8===t[0]&&!t[1]&&!t[2]&&!t[3]){var e=hme(t[4]),a=BHe(rAn,e),u=_He(a),f=NVe(_He(n),u),i=rVe(),c=UHe([0,bVe(NVe(_He(r),i)),0],f),v=ZSe(e,uHe(c));return[0,v,_Ve(v,a,c)]}throw kQ([0,YL,Yon],1)}function eZe(r){for(var n=r,t=1;;){if(!n)return t;var e=n[2],a=T_e(0,t,uHe(n[1][2][2]));n=e,t=a}}function aZe(r,n){var t=n[2];if(9!==t[0])throw kQ([0,YL,con],1);var e=t[4],a=t[2],u=t[1],f=RVe(GVe[1],t[3]),i=ZSe(uHe(f),Ez),c=WSe(Ez),v=BHe(qX,wVe),o=rZe[6].call(null,1,[0,c]),A=rZe[4].call(null,0,[0,i],o),s=EVe([0,a,0],DVe([0,i,[0,c,[0,v,0]]],oZe(rZe[4].call(null,2,[0,v],A),f)([0,i])));return qHe(u,e,uHe(f),s)}function uZe(r,n){if(0!==fHe(n))throw kQ([0,YL,von],1);var t=n[3],e=function(r,n){var t=n[2];switch(t[0]){case 0:var e=t[1],a=e[1];if("number"==typeof a){if(4===a){var u=e[2];if(u&&!u[2]){var f=u[1],i=rZe[29].call(null,0,r);if(!i)throw kQ([0,YL,oon],1);var c=i[1];if(!c)return tVe(uZe(r,f))[2];var v=c[1],o=uZe(r,f);return tVe(NVe(_He(v),o))[2]}}}else if(9===a[0]){var A=e[2];if(A&&!A[2]){var s=A[1],b=a[1],l=rZe[29].call(null,[0,b],r);if(!l)throw kQ([0,YL,Aon],1);var B=l[1];if(!B)return nVe(b,uZe(r,s))[2];var j=B[1],k=uZe(r,s);return tVe(NVe(_He(j),k))[2]}}var p=e[2];if(iHe(a,p))throw kQ([0,YL,son],1);return[0,[0,a,YY(function(n){return uZe(r,n)},p)]];case 3:var m=t[1],d=uZe(r,t[2]);return[3,fZe(r,m),d];case 4:var _=t[1],h=_[1],x=uZe(r,_[2]);return[4,[0,iZe(r,h),x]];case 5:var y=t[2],w=t[1],g=uZe(r,t[3]),q=uZe(r,y);return[5,uZe(r,w),q,g];case 6:var I=t[1],D=YY(function(n){var t=n[2],e=t[1],a=n[1],u=n[3];return[0,a,[0,e,uZe(r,t[2])],u]},t[2]);return[6,uZe(r,I),D];case 7:return[7,uZe(r,t[1])];case 8:var E=t[1],N=t[3];return[8,E,t[2],uZe(rZe[4].call(null,[0,E],0,r),N)];case 9:if(t[1])return aZe(0,n)[2];throw kQ([0,YL,bon],1);case 10:var T=t[2];return[10,t[1],T,uZe(r,t[3])];case 11:var F=t[2];return[11,t[1],F,uZe(r,t[3])];case 12:var M=t[1],P=t[2];if(P){var U=t[7],G=U[2],$=t[6],K=t[5],O=t[4],R=t[3];switch(G[0]){case 4:var Q=G[1],C=Q[1];if(C){var H=C[1][2];if(0===H[0]){var V=H[1];if("number"==typeof V[2]){var L=H[2];if(9===L[2][0]&&!C[2]){var z=Q[2],S=z[2];if(0===S[0]){var Z=S[1],W=Z[1];if("number"==typeof W&&!W&&!Z[2])return[12,M,P,R,O,K,$,UHe([0,oVe(V,aZe(0,L)),0],z)]}}}}}break;case 9:return[12,M,P,R,O,K,$,aZe(0,U)]}}else{var X=t[7],J=X[2],Y=t[6],rr=t[5],nr=t[4],tr=t[3];switch(J[0]){case 4:var er=J[1],ar=er[2];if(9===ar[2][0]){var ur=er[1],fr=X[3],ir=[4,[0,ur,aZe(0,ar)]];return[12,M,0,tr,nr,rr,Y,[0,X[1],ir,fr]]}break;case 9:return[12,M,0,tr,nr,rr,Y,aZe(0,X)]}}var cr=t[7],vr=t[6],or=t[5],Ar=t[4],sr=t[3],br=t[2];if(Pde(uHe(n)))throw kQ([0,YL,lon],1);if(Mde(uHe(n)))throw kQ([0,YL,Bon],1);return[12,M,br,sr,Ar,or,vr,uZe(rZe[6].call(null,0,0),cr)];case 13:throw kQ([0,YL,jon],1);case 14:var lr=t[3],Br=t[4],jr=lr[9],kr=lr[7],pr=lr[6],mr=lr[5],dr=lr[4],_r=lr[3],hr=lr[2],xr=lr[1],yr=t[2],wr=t[1],gr=uZe(rZe[1],lr[8]),qr=hZe(rZe[1],kr),Ir=uZe(rZe[1],pr),Dr=hZe(rZe[1],mr),Er=hZe(rZe[1],dr),Nr=uZe(rZe[1],_r),Tr=[0,xr,uZe(rZe[1],hr),Nr,Er,Dr,Ir,qr,gr,jr];return[14,iZe(r,wr),yr,Tr,Br];case 15:default:return n[2];case 16:throw kQ([0,YL,kon],1)}}(r,n);return[0,n[1],e,t]}function fZe(r,n){var t=n[2],e=n[3];switch(t[0]){case 0:var a=[0,t[1]];break;case 1:var u=t[1],f=uZe(r,t[2]);a=[1,uZe(r,u),f];break;default:var i=t[2];a=[2,uZe(r,t[1]),i]}return[0,n[1],a,e]}function iZe(r,n){return YY(function(n){var t=n[2],e=n[3];switch(t[0]){case 0:var a=[0,t[1],uZe(r,t[2])];break;case 1:var u=t[2];a=[1,t[1],u,uZe(r,t[3])];break;default:var f=t[2];a=[2,t[1],f,fZe(r,t[3])]}return[0,n[1],a,e]},n)}function cZe(r,n,t,e){if(!fHe(e))throw kQ([0,YL,pon],1);var a=XSe(uHe(e),function(r){return YSe(n,PL(t,r))});return oZe(r,e)(a)}function vZe(r,n,t,e){return function e(a,u){for(var f=a,i=u;;){if(!i)return YSe(n,PL(t,XY(f)));var c=i[1];if(!i[2]&&0===fHe(c))return YSe(n,PL(t,XY([0,uZe(r,c),f])));var v=i[2],o=fHe(c),A=c[2];if(1!==A[0])break;if(A[1])break;f=[0,c,f],i=v}if(o){var s=XSe(uHe(c),function(r){return e([0,_He(r),f],v)});return oZe(r,c)(s)}var b=BHe(_on,uHe(c)),l=e([0,_He(b),f],v);return lVe(b,uZe(r,c),l)}(0,e)}function oZe(r,n){return function(t){return function(r,n,t){function e(r){return[0,n[1],r,n[3]]}var a=n[2];if(0===fHe(n))return YSe(t,uZe(r,n));switch(a[0]){case 0:var u=a[1],f=u[1];if("number"==typeof f)switch(f){case 4:var i=u[2];if(i&&!i[2]){var c=i[1],v=rZe[29].call(null,0,r);if(v){var o=v[1];if(o){var A=[0,o[1]];return oZe(r,c)(A)}}throw kQ([0,YL,Non],1)}break;case 6:var s=u[2];if(s&&!s[2]){var b=s[1],l=rZe[29].call(null,1,r);if(l){var B=l[1];if(B){var j=[0,B[1]];return oZe(r,b)(j)}}throw kQ([0,YL,Ton],1)}}else switch(f[0]){case 9:var k=u[2];if(k&&!k[2]){var p=k[1],m=rZe[29].call(null,[0,f[1]],r);if(m){var d=m[1];if(d){var _=[0,d[1]];return oZe(r,p)(_)}}throw kQ([0,YL,Fon],1)}break;case 10:var h=u[2];if(h&&!h[2]){var x=h[1],y=f[1],w=rZe[29].call(null,1,r),g=rZe[29].call(null,2,r);if(w){var q=w[1];if(q&&g){var I=g[1];if(I){var D=I[1],E=q[1];return JSe(t,function(n){var t=YHe(YY(_He,[0,n,[0,E,[0,D,0]]]));if(fHe(x)){var e=XSe(uHe(x),function(r){var e=_He(r);return IHe(y,n[2],e,t)});return oZe(r,x)(e)}var a=uZe(r,x);return IHe(y,n[2],a,t)})}}}throw kQ([0,YL,Mon],1)}}var N=u[2];if(!iHe(f,N))return vZe(r,t,function(r){return e([0,[0,f,r]])},u[2]);var T=rZe[29].call(null,1,r);if(T){var F=T[1];if(F){var M=F[1];return vZe(r,XSe(uHe(n),function(r){return UVe(YSe(t,_He(r)),function(r){return NVe(_He(M),r)})}),function(r){return e([0,[0,f,r]])},N)}}throw kQ([0,YL,Pon],1);case 3:var P=a[2],U=a[1],G=U[2];switch(G[0]){case 0:return cZe(r,t,function(r){return e([3,U,_He(r)])},P);case 1:return vZe(r,t,function(r){if(r){var n=r[2];if(n){var t=n[2];if(t&&!t[2])return e([3,[0,U[1],[1,r[1],n[1]],U[3]],t[1]])}}throw kQ([0,YL,won],1)},[0,G[1],[0,G[2],[0,P,0]]]);default:var $=G[1],K=G[2],O=function(r,n){return e([3,[0,U[1],[2,r,K],U[3]],n])},R=fHe($),Q=fHe(P);if(!R){if(!Q)throw kQ([0,YL,don],1);var C=BHe(mon,uHe($)),H=XSe(uHe(P),function(r){var n=_He(r);return YSe(t,O(_He(C),n))}),V=oZe(r,P)(H);return lVe(C,uZe(r,$),V)}if(Q){var L=XSe(uHe($),function(n){var e=XSe(uHe(P),function(r){var e=_He(r);return YSe(t,O(_He(n),e))});return oZe(r,P)(e)});return oZe(r,$)(L)}var z=XSe(uHe($),function(n){var e=uZe(r,P);return YSe(t,O(_He(n),e))});return oZe(r,$)(z)}case 4:var S=a[1];return AZe(r,S[1],S[2],t);case 5:var Z=a[1],W=a[3],X=a[2];return JSe(t,function(n){function t(t){if(fHe(t))return oZe(r,t)([0,n]);var e=uZe(r,t);return NVe(_He(n),e)}var e=t(X),a=t(W);if(!fHe(Z))return CHe(uZe(r,Z),e,a);var u=XSe(uHe(Z),function(r){return CHe(_He(r),e,a)});return oZe(r,Z)(u)});case 6:var J=a[1],Y=a[2];return JSe(t,function(t){var e=YY(function(n){var e=n[2],a=e[2],u=e[1],f=n[1],i=n[3];if(fHe(a))var c=oZe(r,a)([0,t]);else{var v=uZe(r,a);c=NVe(_He(t),v)}return[0,f,[0,u,c],i]},Y),a=eZe(e);if(fHe(J)){var u=XSe(uHe(J),function(r){var t=n[3],u=[0,a,t[2],t[3],t[4]],f=[6,_He(r),e];return[0,n[1],f,u]});return oZe(r,J)(u)}var f=n[3],i=[0,a,f[2],f[3],f[4]],c=[6,uZe(r,J),e];return[0,n[1],c,i]});case 7:var rr=a[1];if(!fHe(rr))throw kQ([0,YL,yon],1);var nr=BHe(hon,xVe(Ez,Ez)),tr=BHe(xon,Ez),er=rVe(),ar=NVe(_He(nr),er);return UHe([0,_Ve(nr,tr,oZe(r,rr)([0,nr])),0],ar);case 8:var ur=a[3],fr=a[1];return JSe(t,function(n){return oZe(rZe[4].call(null,[0,fr],[0,n],r),ur)([0,n])});case 9:if(a[1])throw kQ([0,YL,Uon],1);var ir=a[3],cr=a[4],vr=a[2],or=ZSe(uHe(ir),Ez),Ar=WSe(Ez),sr=BHe(qX,wVe),br=rZe[6].call(null,1,[0,Ar]),lr=rZe[4].call(null,0,[0,or],br),Br=rZe[4].call(null,2,[0,sr],lr),jr=rZe[29].call(null,1,r);if(jr){var kr=jr[1];if(kr){var pr=kr[1],mr=EVe([0,vr,0],DVe([0,or,[0,Ar,[0,sr,0]]],oZe(Br,ir)([0,or]))),dr=qHe(0,cr,uHe(ir),mr);return YSe(XSe(uHe(dr),function(r){return UVe(YSe(t,_He(r)),function(r){return NVe(_He(pr),r)})}),dr)}}throw kQ([0,YL,Gon],1);case 10:var _r=a[2],hr=a[1];return cZe(r,t,function(r){return e([10,hr,_r,_He(r)])},a[3]);case 11:var xr=a[2],yr=a[1];return cZe(r,t,function(r){return e([11,yr,xr,_He(r)])},a[3]);case 13:throw kQ([0,YL,$on],1);case 14:throw kQ([0,YL,Kon],1);case 15:return n;case 16:var wr=a[3],gr=a[2],qr=a[1],Ir=function(r){if(0===rZe[29].call(null,2,r))throw kQ([0,YL,Ion],1);var e=rZe[28].call(null,1,r);if(!e)throw kQ([0,YL,Don],1);var a=e[1];return JSe(t,function(t){function e(t){if(!fHe(qr)){var e=uZe(r,qr);return NVe(_He(t),e)}if(0===gr)return oZe(r,qr)([0,t]);var u=BHe(gon,Rz),f=_He(u),i=NVe(_He(a),f);r:{for(var c=gr,v=[0,Lle,[0,pHe(u),i],0];c;){var o=c[2],A=lLe(c[1][2][1]);if(A){var s=A;break r}c=o}s=0}var b=s?0:[0,v,0],l=rY(YY(function(n){var e=n[2],a=e[2],u=e[1],f=n[1],i=n[3];if(fHe(a))var c=oZe(r,a)([0,t]);else{var v=uZe(r,a);c=NVe(_He(t),v)}return[0,f,[0,u,c],i]},gr),b),B=t[2];if("number"!=typeof B&&8===B[0]&&!B[1]&&!B[2]&&!B[3]){var j=WSe(hme(B[5])),k=oZe(rZe[4].call(null,1,[0,j],r),qr)([0,t]),p=BHe(qon,Rz),m=_X[4],d=_X[3],_=[0,eZe(l),1,d,m],h=[6,_He(p),l];return UHe([0,_Ve(j,p,[0,n[1],h,_]),0],k)}throw kQ([0,YL,Fnn],1)}if(!wr)return e(t);var u=wr[1],f=tZe([0,u[1],u[2]],t);return UHe([0,f[2],0],e(f[1]))})};if(!wr)return Ir(r);var Dr=wr[1],Er=[0,Dr[1],Dr[2]],Nr=rZe[13].call(null,function(r,n,t){var e=t[2],a=t[1];if(!n)throw kQ([0,YL,Jon],1);var u=tZe(Er,n[1]);return[0,[0,u[2],a],rZe[4].call(null,r,[0,u[1]],e)]},r,[0,0,rZe[1]]);return UHe(Nr[1],Ir(Nr[2]));default:throw kQ([0,YL,Eon],1)}}(r,n,t)}}function AZe(r,n,t,e){return bZe(n,sZe(r,n,XSe(Ez,function(n){return oZe(r,t)(e)})))}function sZe(r,n,t){if(!n)return YSe(t,rVe());var e=n[1],a=n[2],u=XSe(Ez,function(n){return sZe(r,a,t)}),f=e[2];switch(f[0]){case 0:var i=f[2],c=f[1],v=kZe(c),o=v[2],A=v[1],s=function(r){var n=[0,e[1],[0,o,r],e[3]],t=YSe(u,YHe(0));return UHe([0,n,mZe(A,c)],t)};if(!fHe(i))return s(uZe(r,i));var b=XSe(uHe(i),function(r){return s(_He(r))});return oZe(r,i)(b);case 1:var l=f[3],B=f[1];if(!fHe(l))return YSe(u,cVe(B,1,uZe(r,l)));var j=XSe(uHe(l),function(r){return YSe(u,cVe(B,1,_He(r)))});return oZe(r,l)(j);default:throw kQ([0,YL,Oon],1)}}function bZe(r,n){if(!r)return n;var t=r[1],e=bZe(r[2],n),a=t[2];switch(a[0]){case 0:return function(r,n){return eL(BZe(0,r,n))}(a[1],e);case 1:return lZe(a[1],[10,a[2]],e);default:return lZe(a[1],a[2],e)}}function lZe(r,n,t){return[0,Lle,[10,r,n,t],t[3]]}function BZe(r,n,t){for(var e=n;;){var a=e[2];if("number"!=typeof a)switch(a[0]){case 0:return lZe(a[1],e[3],t);case 2:var u=a[1];return r<50?jZe(r+1|0,u,t):aL(jZe,[0,u,t]);case 3:var f=jCe(a[1]);return r<50?jZe(r+1|0,f,t):aL(jZe,[0,f,t]);case 4:case 6:e=a[1];continue;case 5:e=a[2];continue}return t}}function jZe(r,n,t){if(!n)return t;var e=n[1],a=function(r,n){return eL(jZe(0,r,n))}(n[2],t);return r<50?BZe(r+1|0,e,a):aL(BZe,[0,e,a])}function kZe(r){var n=r[2];r:{if("number"!=typeof n)switch(n[0]){case 0:var t=n[1],e=BHe(Ron,r[3]),a=[0,e[1]],u=[0,nZe[6].call(null,t,e),a];break r;case 2:var f=pZe(n[1]);u=[0,f[1],[2,f[2]]];break r;case 3:var i=n[1],c=pZe(jCe(i));u=[0,c[1],[3,pCe(i,c[2])]];break r;case 4:var v=kZe(n[1]);u=[0,v[1],[4,v[2]]];break r;case 5:var o=n[1],A=kZe(n[2]);u=[0,A[1],[5,o,A[2]]];break r;case 6:var s=n[2],b=RCe(n[1]);if(!dCe[2].call(null,b))throw kQ([0,YL,Qon],1);var l=RCe(s);if(!dCe[2].call(null,l))throw kQ([0,YL,Con],1);u=[0,nZe[1],r[2]];break r}u=[0,nZe[1],r[2]]}return[0,u[1],[0,r[1],u[2],r[3]]]}function pZe(r){if(!r)return[0,nZe[1],0];var n=r[2],t=kZe(r[1]),e=t[2],a=t[1],u=pZe(n),f=[0,e,u[2]];return[0,nZe[50].call(null,a,u[1]),f]}function mZe(r,n){for(var t=n;;){var e=t[2];if("number"!=typeof e)switch(e[0]){case 0:var a=e[1];return[0,bVe(cVe(a,0,_He(nZe[28].call(null,a,r)))),0];case 2:return dZe(r,e[1]);case 3:return dZe(r,jCe(e[1]));case 4:t=e[1];continue;case 5:t=e[2];continue;case 6:var u=e[2],f=RCe(e[1]);if(!dCe[2].call(null,f))throw kQ([0,YL,Hon],1);var i=RCe(u);if(dCe[2].call(null,i))return 0;throw kQ([0,YL,Von],1)}return 0}}function dZe(r,n){for(var t=n,e=0;;){if(!t)return XY(e);var a=t[2],u=WY(mZe(r,t[1]),e);t=a,e=u}}function _Ze(r,n,t){var e=n[2];if(0===e[0]){var a=e[1],u=a[1];if("number"==typeof u&&!u&&!a[2])return n}var f=WSe(Ez),i=rZe[4].call(null,1,[0,f],r),c=rZe[4].call(null,2,[0,[0,Zon,wVe]],i),v=BHe(Won,Rz),o=XSe(Ez,function(r){return YHe(0)}),A=oZe(c,n)(o),s=UHe([0,_Ve(f,v,t),0],A);return[0,n[1],s[2],s[3]]}function hZe(r,n){return _Ze(r,n,YHe(0))}var xZe=aBe([0,$pe]);function yZe(r,n,t,e,a){return[0,Lle,[13,r,n,t,e,a],[0,Ez,_X[2],_X[3],_X[4]]]}var wZe=[7,[0,[4,mme],[0,Uz,0]]];function gZe(r){return NHe(hHe([17,$z,wZe],[0,r,0]),1)}function qZe(r){return[0,r,0]}function IZe(r,n){return[8,0,0,0,PL(r,n),0]}var DZe=yVe(Ez);function EZe(r,n){var t=[0,kme([0,[0,zAn,Ez],LAn]),0];return[8,0,0,0,[0,IZe(r,n),[0,DZe,[0,wVe,0]]],t]}var NZe=[0,IZe(qZe,IX),[0,DZe,[0,wVe,0]]];function TZe(r){return ude(r)}var FZe=[8,0,0,SAn,0,[0,EZe(qZe,IX),NZe]];function MZe(r){var n=hme(r),t=rVe(),e=QHe(_He([0,"@new_async",FZe]),[0,n,0],t),a=BHe(VAn,uHe(NHe(e,0))),u=BHe("fulfill",uHe(NHe(e,1))),f=BHe("fail",uHe(NHe(e,2))),i=BHe("clean",uHe(NHe(e,3)));function c(r){var n=BHe(OAn,r),t=BHe(RAn,xVe(r,Ez)),e=BHe(QAn,yVe(Ez)),u=BHe(CAn,wVe),f=[0,_He(u),0],i=[0,_He(e),f],c=_He(n),v=YHe([0,DVe([0,n,0],NVe(_He(t),c)),i]);return DVe([0,t,[0,e,[0,u,0]]],NVe(_He(a),v))}r:if(!r||r[2])A=c(n);else{var v=r[1],o=Pme(v);if("number"!=typeof o&&7===o[0]){var A=c(v);break r}var A=_He(a)}var s=jHe("rep",r),b=qVe(YY(_He,s)),l=DVe(s,NVe(_He(u),b)),B=BHe("cleanup",i[2]),j=BHe("reject",f[2]),k=BHe("reply",uHe(l)),p=BHe(HAn,uHe(A)),m=[0,_He(i),0],d=YHe([0,A,[0,l,[0,_He(f),m]]]),_=[0,pHe(i),0],h=[0,pHe(f),_],x=[0,pHe(u),h];return[0,[0,p,k,j,B],UHe([0,oVe(mHe([0,pHe(a),x]),e),0],d)]}function PZe(r,n){var t=r[2];if(1===t[0]&&!t[1])return PL(n,r);var e=BHe(KAn,uHe(r)),a=PL(n,_He(e));return[0,AVe(e,r),a]}var UZe=[Ul,"Linking.LinkModule.LinkError",qH()];function GZe(r){var n=r[4];if(n)return n[1][2][1][2]?1:0;throw kQ([0,UZe,"Expect at least one memory in module"],1)}function $Ze(r,n,t){for(var e=0,a=t[9];;){if(!a)throw kQ([0,YL,rbn],1);var u=a[2],f=a[1];if(PL(r,f[2][3][2])){if(dH(e,n))return f;e=e+1|0,a=u}else a=u}}function KZe(r,n,t){for(var e=xoe(n),a=0,u=0,f=t[9];;){if(!f)return XY(u);var i=f[2],c=f[1];if(PL(r,c[2][3][2]))if(dH(c[2][1],e)){var v=[0,[0,a,c[2][2]],u];a=a+1|0,u=v,f=i}else a=a+1|0,f=i;else f=i}}function OZe(r,n,t){var e=t[10],a=function t(e,a){for(var u=e,f=a;;){if(!f)return 0;var i=f[2],c=f[1];if(!PL(r,c[2][3][2]))return[0,c,t(u,i)];if(!s0(u,n))return[0,c,t(u+1|0,i)];u=u+1|0,f=i}}(0,t[9]);return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],a,e]}function RZe(r,n){var t=n[9];return Goe(l0(function(n){return PL(r,n[2][3][2])})(t))}function QZe(r,n,t){var e=t[10],a=l0(function(t){var e=0!==PL(r,t[2][2][2])?1:0;if(e)var a=xoe(n),u=dH(t[2][1],a);else u=e;return 1-u})(e);return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],a]}var CZe=R1([0,KC]),HZe=[Ul,"Linking.LinkModule.TooLargeDataSegments",qH()];function VZe(r,n){for(var t=n[10],e=CZe[1];;){if(!t)return e;var a=t[2],u=t[1],f=PL(r,u[2][2][2]);f?(t=a,e=CZe[4].call(null,u[2][1],f[1][2],e)):t=a}}function LZe(r){return 0===r[0]?1:0}function zZe(r){return 3===r[0]?1:0}function SZe(r){return 1===r[0]?1:0}function ZZe(r){return 2===r[0]?1:0}function WZe(r){return 0===r[0]?[0,r[1]]:0}function XZe(r){return 3===r[0]?[0,r[1]]:0}function JZe(r,n){var t=RZe(LZe,n);if(cV(r,t)){var e=$Ze(LZe,r,n)[2][3][2];if(0!==e[0])throw kQ([0,YL,Ysn],1);var a=e[1][2]}else a=$oe(n[5],r-t|0)[2][1][2];return $oe(n[1],a)[2]}function YZe(r,n){var t=RZe(zZe,n);if(!cV(r,t))return $oe(n[2],r-t|0)[2][1];var e=$Ze(zZe,r,n)[2][3][2];if(3===e[0])return e[1];throw kQ([0,YL,Jsn],1)}function rWe(r,n){function t(n){return 1-s0(n[1],r)}var e=n[10],a=n[9],u=n[8],f=n[7],i=n[6],c=n[5],v=n[4],o=n[3],A=l0(t)(o),s=n[2],b=l0(t)(s);return[0,n[1],b,A,v,c,i,f,u,a,e]}function nWe(r,n,t){var e=RZe(LZe,t[1])+Goe(t[1][5])|0,a=t[1][6],u=a?[0,[0,wve,[6,a[1]]],0]:0,f=[0,wve,[0,[0,wve,n],0,rY([0,[0,wve,[6,[0,wve,r]]],0],u)]],i=t[2],c=t[8],v=t[7],o=t[6],A=t[5],s=t[4],b=t[3],l=i[10],B=i[9],j=i[8],k=i[7],p=i[6],m=i[5],d=i[4],_=i[3],h=rY(t[2][2],[0,[0,e,"link_start"],0]),x=t[1],y=[0,i[1],h,_,d,m,p,k,j,B,l],w=x[10],g=x[9],q=x[8],I=x[7],D=rY(t[1][5],[0,f,0]);return[0,[0,x[1],x[2],x[3],x[4],D,[0,[0,wve,e]],I,q,g,w],y,b,s,A,o,v,c]}function tWe(r,n){return JY(Poe(function(r){var t=r[1],e=CZe[29].call(null,r[2],n);return e?[0,[0,t,e[1]],0]:0},r))}function eWe(r,n,t,e,a){var u=r-Goe(e)|0,f=t-Goe(a)|0;function i(n,t){for(var a=0,u=e;;){if(!u)return cV(t,r)?t-a|0:(t+f|0)-a|0;var i=u[1],v=i[2],o=i[1],A=u[2];if(cV(t,o))return t-a|0;if(dH(t,o))return n<50?c(n+1|0,v):aL(c,[0,v]);a=a+1|0,u=A}}function c(r,e){for(var f=0,c=a;;){if(!c)return cV(e,t)?(e+u|0)-f|0:((e+u|0)+n|0)-f|0;var v=c[1],o=v[2],A=v[1],s=c[2];if(cV(e,A))return(e+u|0)-f|0;if(dH(e,A))return r<50?i(r+1|0,o):aL(i,[0,o]);f=f+1|0,c=s}}return[0,function(r){return eL(i(0,r))},function(r){return eL(c(0,r))}]}function aWe(r,n){function t(n){var t=n[2];if("number"==typeof t)var a=t;else switch(t[0]){case 0:a=[0,t[1],e(t[2])];break;case 1:a=[1,t[1],e(t[2])];break;case 2:var u=t[2],f=t[1],i=e(t[3]);a=[2,f,e(u),i];break;case 11:a=[11,Rqe(r,t[1])];break;case 12:a=[12,Rqe(r,t[1])];break;default:a=t}return[0,n[1],a]}function e(r){return Poe(t,r)}var a=Poe(function(n){var t=n[2],e=t[2],a=e[2],u=3===a[0]?[3,Rqe(r,a[1])]:a;return[0,n[1],[0,t[1],[0,e[1],u]]]},n[10]),u=n[9],f=Poe(function(r){var n=r[2],t=n[2],a=t[2];if("number"==typeof a)var u=a?1:0;else u=[0,a[1],Rqe(e,a[2])];return[0,r[1],[0,n[1],[0,t[1],u]]]},n[8]),i=Poe(function(r){var n=r[2],t=n[3],a=Rqe(e,n[2]);return[0,r[1],[0,n[1],a,t]]},n[7]),c=n[6],v=Poe(function(r){var n=r[2],t=e(n[3]);return[0,r[1],[0,n[1],n[2],t]]},n[5]),o=n[4],A=n[3],s=Poe(function(r){var n=r[2],t=Rqe(e,n[2]);return[0,r[1],[0,n[1],t]]},n[2]);return[0,n[1],s,A,o,v,c,i,f,u,a]}function uWe(r,n){var t=n[10],e=n[9],a=n[8],u=n[7],f=n[6],i=n[5],c=n[4],v=Poe(function(n){var t=n[2];return[0,PL(r,n[1]),t]},n[3]),o=Poe(function(n){var t=n[2];return[0,PL(r,n[1]),t]},n[2]);return[0,n[1],o,v,c,i,f,u,a,e,t]}function fWe(r,n){function t(n){return 0===n[0]?[0,Rqe(r,n[1])]:[1,n[1]]}function e(n){var e=n[2];if("number"==typeof e)var u=e;else switch(e[0]){case 0:var f=e[1],i=a(e[2]);u=[0,t(f),i];break;case 1:var c=e[1],v=a(e[2]);u=[1,t(c),v];break;case 2:var o=e[2],A=e[1],s=a(e[3]),b=a(o);u=[2,t(A),b,s];break;case 7:u=[7,e[1],Rqe(r,e[2])];break;default:u=e}return[0,n[1],u]}function a(r){return Poe(e,r)}var u=n[10],f=Poe(function(n){var t=n[2],e=t[3],a=e[2],u=0===a[0]?[0,Rqe(r,a[1])]:a;return[0,n[1],[0,t[1],t[2],[0,e[1],u]]]},n[9]),i=n[8],c=n[7],v=n[6],o=Poe(function(n){var t=n[2],e=a(t[3]),u=t[2],f=[0,Rqe(r,t[1]),u,e];return[0,n[1],f]},n[5]);return[0,,n[2],n[3],n[4],o,v,c,i,f,u]}function iWe(r,n,t,e,a){for(var u=0,f=a[9];;){if(!f)throw kQ([0,YL,Tsn],1);var i=f[2],c=f[1];if(3===c[2][3][2][0]){var v=xoe(r);if(dH(c[2][1],v)){var o=xoe(n);if(dH(c[2][2],o))break}u=u+1|0,f=i}else f=i}var A=u,s=e?[1,$H(t)]:[0,t];function b(r){var n=r[2];if("number"==typeof n)var t=n;else switch(n[0]){case 0:t=[0,n[1],l(n[2])];break;case 1:t=[1,n[1],l(n[2])];break;case 2:var e=n[2],a=n[1],u=l(n[3]);t=[2,a,l(e),u];break;case 11:var f=n[1];t=dH(f[2],A)?[16,[0,f[1],s]]:n;break;case 12:if(dH(n[1][2],A))throw kQ([0,YL,Lsn],1);t=n;break;default:t=n}return[0,r[1],t]}function l(r){return Poe(b,r)}var B=a[10],j=a[9],k=Poe(function(r){var n=r[2],t=n[2],e=t[2];if("number"==typeof e)var a=e?1:0;else a=[0,e[1],Rqe(l,e[2])];return[0,r[1],[0,n[1],[0,t[1],a]]]},a[8]),p=Poe(function(r){var n=r[2],t=n[3],e=Rqe(l,n[2]);return[0,r[1],[0,n[1],e,t]]},a[7]),m=a[6],d=Poe(function(r){var n=r[2],t=l(n[3]);return[0,r[1],[0,n[1],n[2],t]]},a[5]),_=a[4],h=a[3],x=Poe(function(r){var n=r[2],t=Rqe(l,n[2]);return[0,r[1],[0,n[1],t]]},a[2]);return aWe(function(r){if(cV(r,A))return r;if(dH(r,A))throw kQ([0,YL,Nsn],1);return r-1|0},OZe(zZe,[0,[0,A,A],0],[0,a[1],x,h,_,d,m,p,k,j,B]))}function cWe(r,n,t,e,a,u){var f=u[1],i=u[2],c=UL(n,f,e),v=UL(n,i,a),o=$Ze(r,f,e),A=KV(c,v);if(!A)return A;var s=PL(t,v),b=PL(t,c),l=$qe(o[2][2]),B=$qe(o[2][1]);throw kQ([0,UZe,$L(R3(qsn),B,l,b,s)],1)}function vWe(r,n){return((n+((1<>>r|0)<>>0>=2)return 0;t=1}return t})(de),he=[0,[0,se[1],se[2],se[3],se[4],se[5],se[6],se[7],se[8],se[9],_e],me,pe,ke,je,Be,le,be];if(F)var xe=_n[8],ye=function(r){var n=r[1],t=r[8],e=r[7],a=r[6],u=r[5],f=r[4],i=r[3],c=r[2],v=RZe(LZe,n),o=n[6];if(!o)throw kQ([0,UZe,"The module has no start function to inject"],1);var A=o[1][2]-v|0;if(A<0)throw kQ([0,UZe,"The module start refers to an imported function that cannot be injected"],1);if(A>=LY(n[5]))throw kQ([0,YL,WAn],1);var s=JY(n0(function(r,n){function t(r){return[0,wve,[16,[0,wve,[0,r]]]]}var e=n[2][2][2],a=r+Jr|0;if("number"==typeof e)throw kQ([0,UZe,ZAn],1);var u=e[2][2],f=[0,t(HH(n[2][1])),[0,[0,wve,[15,[0,wve,a]]],0]];return rY(u,[0,t(0),f])},xe)),b=n[10],l=n[9],B=n[8],j=n[7],k=n[6],p=n0(function(r,n){return r===A?function(r){var n=r[2],t=rY(s,n[3]);return[0,r[1],[0,n[1],n[2],t]]}(n):n},n[5]);return[0,[0,n[1],n[2],n[3],n[4],p,k,j,B,l,b],c,i,f,u,a,e,t]};else ye=function(r){return r};var we=ye(he),ge=Poe(function(r){var n=r[3],t=r[2],e=r[1];if(0===n[0]){var a=[0,[0,hr(n[1][1])]];return[0,Gr(e),t,a]}var u=[1,[0,Gr(n[1][1])]];return[0,Gr(e),t,u]},sr),qe=T+v[3]|0,Ie=we[1],De=B0(function(r){var n=r[3],t=r[2],e=r[1];return 0===n[0]?[0,[0,e,t,n[1][1]]]:0})(ge),Ee=Poe(function(r){return[0,wve,r[3]]},De),Ne=n0(function(r,n){var t=n[2][1],e=n[1];if(1===t)var a=bWe(MH($H(qe),$H(r)));else{if(t)throw kQ([0,UZe,"GOT.func global type is not supported"],1);a=GZe(Ie)?bWe($H(qe+r|0)):AWe(qe+r|0)}return[0,e,a]},De);if(0===De)var Te=0;else{var Fe=GZe(Ie)?sWe($H(qe)):oWe(qe);Te=[0,[0,[0,wve,0],[0,wve,[0,Fe,0]],Ee]]}var Me=B0(function(r){var n=r[3],t=r[2],e=r[1];return 0===n[0]?0:[0,[0,e,t,n[1][1]]]})(ge),Pe=function(r){for(var n=Me;;){if(!n)return 0;var t=n[1],e=n[2];if(dH(t[1],r))return[0,t];n=e}},Ue=function(r){var n=r[2];n:{if("number"!=typeof n)switch(n[0]){case 0:var t=[0,[0,n[1],Ge(n[2])],0];break n;case 1:t=[0,[1,n[1],Ge(n[2])],0];break n;case 2:var e=n[2],a=n[1],u=Ge(n[3]);t=[0,[2,a,Ge(e),u],0];break n;case 11:var f=n[1],i=Pe(f[2]);if(!i){t=[0,[11,f],0];break n}var c=i[1][3];if(GZe(Ie)){t=[0,[16,[0,wve,[1,$H(h)]]],[0,[11,[0,wve,c]],bsn]];break n}t=[0,[16,[0,wve,[0,h]]],[0,[11,[0,wve,c]],lsn]];break n;case 12:var v=n[1];if(Pe(v[2]))throw kQ([0,YL,ssn],1);t=[0,[12,v],0];break n}t=[0,n,0]}return Poe(function(n){return[0,r[1],n]},t)},Ge=function(r){return JY(Poe(Ue,r))},$e=Poe(function(r){var n=r[2][1],t=r[1];if(1===n)var e=bWe(Asn);else{if(n)throw kQ([0,UZe,"GOT.mem global type is not supported"],1);e=AWe(0)}return[0,t,e]},Me),Ke=Ie[10],Oe=Ie[8],Re=Ie[6],Qe=Poe(function(r){var n=r[2],t=Ge(n[3]);return[0,r[1],[0,n[1],n[2],t]]},Ie[5]),Ce=Ie[4],He=Ie[3],Ve=Ie[1],Le=Te?rY(Ie[7],[0,[0,wve,Te[1]],0]):Ie[7],ze=Poe(function(r){return[0,wve,r[2]]},d0(function(r,n){return PC(r[1],n[1])},rY(Ne,$e))),Se=Ie[9],Ze=xoe(xsn),We=xoe(ysn),Xe=l0(function(r){var n=r[2][1];return 1-(dH(n,Ze)||dH(n,We))})(Se);return[0,[0,Ve,rY(ze,Ie[2]),He,Ce,Qe,Re,Le,Oe,Xe,Ke],we[2],we[3],we[4],we[5],we[6],we[7],we[8]]}throw kQ([0,UZe,Usn],1)}throw kQ([0,UZe,"Expect one memory in first module"],1)}throw kQ([0,UZe,Osn],1)}function jWe(r,n,t){var e=t[1];switch(e[0]){case 0:var a=t[2],u=a[2];if(0===u[0]){var f=t[3];if(0===f[0]){var i=t[4];if(0===i[0]){var c=i[1],v=u[1],o=e[1];if(o===f[1]){return 0<=v&&32>v&&0<=c&&32>c&&32>(v+c|0)?[0,[0,[0,r[1],[16,[0,a[1],[0,v+c|0]]]],[0,[0,n[1],[20,[0,o]]],0]]]:0}}}}break;case 1:var A=t[2],s=A[2];if(1===s[0]){var b=t[3];if(1===b[0]){var l=t[4];if(1===l[0]){var B=l[1],j=s[1],k=e[1];if(k===b[1]){var p=KH(B),m=KH(j);return 0<=m&&64>m&&0<=p&&64>p&&64>(m+p|0)?[0,[0,[0,r[1],[16,[0,A[1],[1,MH(j,B)]]]],[0,[0,n[1],[20,[1,k]]],0]]]:0}}}}}return 0}function kWe(r){return function(r,n){var t=0,e=n;r:for(;;){n:{t:{e:if(t){var a=t[1],u=a[2];if("number"!=typeof u){switch(u[0]){case 8:var f=u[1];if(e){var i=e[1][2];if("number"!=typeof i&&9===i[0]){var c=e[2],v=t[2];if(dH(f,i[1])){t=v,e=c;continue}}}break;case 9:if(!e)break t;var o=e[1],A=o[2];if("number"==typeof A)break e;if(8!==A[0])break e;var s=A[1],b=e[2],l=t[2];if(!dH(u[1],s))break n;t=l,e=[0,[0,o[1],[10,s]],b];continue;case 10:if(!e)break t;var B=e[1][2];if("number"!=typeof B)break e;if(2!==B)break e;t=t[2],e=[0,[0,a[1],[9,u[1]]],e[2]];continue;case 11:if(!e)break t;var j=e[1][2];if("number"==typeof j)break e;if(12!==j[0])break e;var k=e[2],p=t[2];if(!dH(u[1],j[1]))break n;t=p,e=k;continue;case 13:if(!e)break t;var m=e[1][2];if("number"!=typeof m)break e;if(2!==m)break e;t=t[2];continue;case 16:var d=u[1][2];if(0===d[0]){if(!KV(d[1],0)){if(!e)break;var _=e[1],h=_[2];if("number"!=typeof h&&2===h[0]){t=t[2],e=[0,[0,_[1],[0,h[1],h[3]]],e[2]];continue}}if(e){var x=e[1],y=x[2];if("number"!=typeof y&&2===y[0]){t=t[2],e=[0,[0,x[1],[0,y[1],y[2]]],e[2]];continue}}}break;case 20:var w=u[1];switch(w[0]){case 0:var g=w[1];if(7>g)break e;switch(g-7|0){case 0:var q=t[2];if(!q)break e;var I=q[1][2];if("number"==typeof I)break e;if(16!==I[0])break e;var D=I[1][2];if(0!==D[0])break e;if(KV(D[1],1))break e;if(!e)break t;var E=e[1],N=E[2];if("number"==typeof N)break e;if(2!==N[0])break e;t=[0,[0,a[1],tbn],q[2]],e=[0,[0,E[1],[2,N[1],N[3],N[2]]],e[2]];continue;case 3:case 4:case 5:var T=t[2];if(!T)break e;var F=T[1][2];if("number"==typeof F)break e;if(16!==F[0])break e;if(!e)break t;var M=e[1],P=M[2];if("number"==typeof P)break e;if(16!==P[0])break e;var U=e[2];if(!U)break n;var G=U[1],$=G[2];if("number"==typeof $)break t;if(20!==$[0])break t;var K=$[1],O=P[1],R=F[1],Q=U[2],C=T[2];if(!KY(jWe(M,G,[0,w,R,K,O[2]])))break t;t=C,e=rY(PY(jWe(M,G,[0,w,R,K,O[2]])),Q);continue;default:break e}case 1:var H=w[1];if(7>H)break e;switch(H-7|0){case 0:var V=t[2];if(!V)break e;var L=V[1][2];if("number"==typeof L)break e;if(16!==L[0])break e;var z=L[1][2];if(1!==z[0])break e;if(KV(z[1],ebn))break e;if(!e)break t;var S=e[1],Z=S[2];if("number"==typeof Z)break e;if(2!==Z[0])break e;t=[0,[0,a[1],abn],V[2]],e=[0,[0,S[1],[2,Z[1],Z[3],Z[2]]],e[2]];continue;case 3:case 4:case 5:var W=t[2];if(!W)break e;var X=W[1][2];if("number"==typeof X)break e;if(16!==X[0])break e;if(!e)break t;var J=e[1],Y=J[2];if("number"==typeof Y)break e;if(16!==Y[0])break e;var rr=e[2];if(!rr)break n;var nr=rr[1],tr=nr[2];if("number"==typeof tr)break t;if(20!==tr[0])break t;var er=tr[1],ar=Y[1],ur=X[1],fr=rr[2],ir=W[2];if(!KY(jWe(J,nr,[0,w,ur,er,ar[2]])))break t;t=ir,e=rY(PY(jWe(J,nr,[0,w,ur,er,ar[2]])),fr);continue;default:break e}default:break e}case 21:var cr=u[1];switch(cr[0]){case 1:if(2<=cr[1])break e;if(!e)break t;var vr=e[1][2];if("number"==typeof vr)break e;if(21!==vr[0])break e;var or=vr[1],Ar=t[2];switch(or[0]){case 0:if(2!==or[1])break n;t=Ar,e=e[2];continue;case 1:break t;default:break n}case 3:if(4!==cr[1])break e;if(!e)break t;var sr=e[1][2];if("number"==typeof sr)break e;if(21!==sr[0])break e;var br=sr[1],lr=t[2];switch(br[0]){case 2:if(5!==br[1])break n;t=lr,e=e[2];continue;case 1:break t;default:break n}default:break e}case 22:var Br=t[2];if(!Br)break e;var jr=Br[1][2],kr=u[1];if("number"==typeof jr)break e;switch(jr[0]){case 9:if(!e)break t;var pr=e[1],mr=pr[2];if("number"==typeof mr)break e;if(8!==mr[0])break e;var dr=mr[1],_r=e[2],hr=Br[2];if(!dH(jr[1],dr))break n;t=hr,e=[0,a,[0,[0,pr[1],[10,dr]],_r]];continue;case 22:var xr=jr[1];a:{u:{var yr=Br[2];if("number"!=typeof xr)switch(xr[0]){case 0:if("number"==typeof kr)break u;switch(kr[0]){case 5:var wr=kr[1];if(wr){var gr=wr[1];if("number"!=typeof gr&&0===gr[0]){var qr=[5,[0,kr,wr[2]]];break a}}break;case 0:qr=kr;break a;default:break u}break;case 5:var Ir=xr[1];if("number"!=typeof kr&&5===kr[0]){qr=[5,rY(kr[1],Ir)];break a}qr=[5,[0,kr,Ir]];break a}if("number"!=typeof kr&&5===kr[0]){qr=[5,rY(kr[1],[0,xr,0])];break a}}qr=[5,[0,kr,[0,xr,0]]]}t=[0,[0,a[1],[22,qr]],yr];continue;case 8:case 16:if(!e)break t;var Dr=e[1][2];if("number"!=typeof Dr)break e;if(2!==Dr)break e;t=Br[2],e=[0,a,e[2]];continue;default:break e}default:break e}if(!e)break t;var Er=e[1][2];if("number"==typeof Er&&2===Er){t=t[2],e=e[2];continue}}}if(e){var Nr=e[1],Tr=Nr[2];if("number"==typeof Tr)switch(Tr){case 0:case 4:break r}else if(3===Tr[0])break}if(t){var Fr=t[1],Mr=Fr[2];if("number"!=typeof Mr)switch(Mr[0]){case 17:switch(Mr[1][0]){case 0:var Pr=t[2];if(Pr){var Ur=Pr[1][2];if("number"!=typeof Ur)switch(Ur[0]){case 16:var Gr=Ur[1][2];if(0===Gr[0]){var $r=Pr[2],Kr=dH(Gr[1],0)?1:0;t=$r,e=[0,[0,Fr[1],[16,[0,Fr[1],[0,Kr]]]],e];continue}break;case 18:var Or=Ur[1];switch(Or[0]){case 0:var Rr=Or[1];if(1===Rr){t=Pr[2],e=[0,[0,Fr[1],fbn],e];continue}if(!Rr){t=Pr[2],e=[0,[0,Fr[1],ubn],e];continue}break;case 1:var Qr=Or[1];if(1===Qr){t=Pr[2],e=[0,[0,Fr[1],cbn],e];continue}if(!Qr){t=Pr[2],e=[0,[0,Fr[1],ibn],e];continue}break;case 2:var Cr=Or[1];if(1===Cr){t=Pr[2],e=[0,[0,Fr[1],obn],e];continue}if(!Cr){t=Pr[2],e=[0,[0,Fr[1],vbn],e];continue}break;default:var Hr=Or[1];if(1===Hr){t=Pr[2],e=[0,[0,Fr[1],sbn],e];continue}if(!Hr){t=Pr[2],e=[0,[0,Fr[1],Abn],e];continue}}}}if(e){var Vr=e[1],Lr=Vr[2];if("number"!=typeof Lr&&2===Lr[0]){t=Pr,e=[0,[0,Vr[1],[2,Lr[1],Lr[3],Lr[2]]],e[2]];continue}}break;case 1:var zr=t[2];if(zr){var Sr=zr[1][2];if("number"!=typeof Sr&&16===Sr[0]){var Zr=Sr[1][2];if(1===Zr[0]){var Wr=zr[2],Xr=dH(Zr[1],bbn)?1:0;t=Wr,e=[0,[0,Fr[1],[16,[0,Fr[1],[0,Xr]]]],e];continue}}}}break;case 18:var Jr=Mr[1];switch(Jr[0]){case 0:if(!Jr[1]){var Yr=t[2];if(Yr){var rn=Yr[1][2];if("number"!=typeof rn&&16===rn[0]){var nn=rn[1][2];if(0===nn[0]&&!KV(nn[1],0)){t=Yr[2],e=[0,[0,Fr[1],lbn],e];continue}}}}break;case 1:if(!Jr[1]){var tn=t[2];if(tn){var en=tn[1][2];if("number"!=typeof en&&16===en[0]){var an=en[1][2];if(1===an[0]&&!KV(an[1],Bbn)){t=tn[2],e=[0,[0,Fr[1],jbn],e];continue}}}}}}}}if(!e)return XY(t);var un=e[1],fn=un[2],cn=un[1];if("number"!=typeof fn)switch(fn[0]){case 0:if(fn[2])break n;e=e[2];continue;case 2:if(!fn[2]&&!fn[3]){e=[0,[0,un[1],2],e[2]];continue}break;case 16:var vn=fn[1][2];switch(vn[0]){case 0:if(KV(vn[1],0))break n;var on=e[2];if(!on)break n;var An=on[1][2];if("number"==typeof An)break n;if(20!==An[0])break n;var sn=An[1];if(0!==sn[0])break n;if(2>>0)break n;e=on[2];continue;case 1:var bn=vn[1];if(!KV(bn,kbn)){var ln=e[2];if(!ln)break n;var Bn=ln[1][2];if("number"!=typeof Bn&&20===Bn[0]){var jn=Bn[1];if(1!==jn[0])break n;if(2>>0)break n;e=ln[2];continue}}var kn=e[2];if(!kn)break n;var pn=kn[1][2];if("number"==typeof pn)break n;switch(pn[0]){case 16:var mn=pn[1][2];if(1!==mn[0])break n;var dn=kn[2];if(!dn)break n;var _n=dn[1],hn=_n[2];if("number"==typeof hn)break n;if(20!==hn[0])break n;var xn=hn[1];if(1!==xn[0])break n;var yn=xn[1],wn=_n[1],gn=mn[1];if(7===yn){e=[0,[0,wn,[16,[0,wn,[1,PH(bn,gn)]]]],dn[2]];continue}if(8!==yn)break n;e=[0,[0,wn,[16,[0,wn,[1,ZH(bn,gn)]]]],dn[2]];continue;case 21:var qn=pn[1];if(0!==qn[0])break n;if(2!==qn[1])break n;e=[0,[0,cn,[16,[0,cn,[0,KH(bn)]]]],kn[2]];continue;default:break n}default:break n}case 21:var In=fn[1];if(1!==In[0])break n;if(2<=In[1])break n;var Dn=e[2];if(!Dn)break n;var En=Dn[1],Nn=En[2];if("number"==typeof Nn)break n;if(17!==Nn[0])break n;if(1!==Nn[1][0])break n;e=[0,[0,En[1],pbn],Dn[2]];continue}if(t){var Tn=t[1],Fn=Tn[2];if("number"!=typeof Fn){switch(Fn[0]){case 18:var Mn=Fn[1];if(0!==Mn[0])break n;var Pn=Mn[1];if(1!==Pn){if(Pn)break n;var Un=e[1],Gn=Un[2];if("number"==typeof Gn)break n;if(2!==Gn[0])break n;if(Gn[2])break n;t=[0,[0,Tn[1],mbn],t[2]],e=[0,[0,Un[1],[2,Gn[1],Gn[3],0]],e[2]];continue}break;case 20:var $n=Fn[1];if(0!==$n[0])break n;var Kn=$n[1];if(7>Kn)break n;switch(Kn-7|0){case 0:var On=t[2];if(!On)break n;var Rn=On[1][2];if("number"==typeof Rn)break n;if(16!==Rn[0])break n;var Qn=Rn[1][2];if(0!==Qn[0])break n;if(KV(Qn[1],XM))break n;var Cn=e[1],Hn=Cn[2];if("number"==typeof Hn)break n;if(2!==Hn[0])break n;t=On[2],e=[0,[0,Tn[1],dbn],[0,[0,Cn[1],[2,Hn[1],Hn[3],Hn[2]]],e[2]]];continue;case 5:var Vn=t[2];if(!Vn)break n;var Ln=Vn[1][2];if("number"==typeof Ln)break n;if(16!==Ln[0])break n;var zn=Ln[1][2];if(0!==zn[0])break n;if(KV(zn[1],31))break n;var Sn=e[1],Zn=Sn[2];if("number"==typeof Zn)break n;if(2!==Zn[0])break n;t=Vn[2],e=[0,[0,Tn[1],_bn],[0,[0,Sn[1],[2,Zn[1],Zn[3],Zn[2]]],e[2]]];continue;case 2:break;default:break n}break;default:break n}var Wn=e[1],Xn=Wn[2];if("number"!=typeof Xn&&2===Xn[0]&&!Xn[2]){t=[0,[0,Tn[1],hbn],t[2]],e=[0,[0,Wn[1],[2,Xn[1],Xn[3],0]],e[2]];continue}}}}t=[0,e[1],t],e=e[2]}var Jn=e[2],Yn=l0(function(r){return Oqe(r[2])})(Jn);return rY(XY([0,Nr,t]),Yn)}(0,r)}function pWe(r){return kWe(GL(r,0,wve,0))}function mWe(r,n,t){return kWe(GL(t,r+1|0,n,0))}function dWe(r,n,t){return t}function _We(r,n,t,e,a){return GL(r,t,e,GL(n,t,e,a))}function hWe(r,n,t,e){return[0,[0,t,r],e]}function xWe(r,n){return a0(_We,YY(r,n),dWe)}function yWe(r,n){return a0(_We,n0(r,n),dWe)}function wWe(r,n){return a0(_We,Tbe(r,n),dWe)}function gWe(r,n,t,e,a){var u=r[2],f=r[1];return GL(n,t,[0,[0,f[1],f[2],f[3]],[0,u[1],u[2],u[3]]],a)}function qWe(r,n,t,e,a,u){var f=mWe(e,a,t);return[0,[0,a,[2,r,mWe(e,a,n),f]],u]}function IWe(r){var n=[1,[0,r]];return function(r,t,e,a,u){return qWe(n,r,t,e,a,u)}}function DWe(r,n,t,e,a){return[0,[0,e,[0,r,mWe(t,e,n)]],a]}function EWe(r,n,t,e){return[0,[0,t,[1,nbn,mWe(n,t,r)]],e]}function NWe(r,n,t,e){return Roe(r,t),UL(n,t,e)}function TWe(r){var n=[0,0],t=PL(r,n);return function(r,e){return NWe(n,t,r,e)}}function FWe(r,n,t,e){return[0,[0,t,[3,[0,t,n-Coe(r)|0]]],e]}function MWe(r,n,t){var e=[1,[0,r]];function a(r,e){return NWe(n,t,r,e)}return function(r,n,t){return DWe(e,a,r,n,t)}}function PWe(r){var n=YY(function(r){return r[2]},GL(r,0,wve,0));if(n){var t=n[1];if("number"!=typeof t)switch(t[0]){case 8:if(!n[2]){var e=[9,t[1]];return function(r,n,t){return hWe(e,0,n,t)}}break;case 11:if(!n[2]){var a=[12,t[1]];return function(r,n,t){return hWe(a,0,n,t)}}}}return VJ("input must be a getter")}function UWe(r){return 0===GL(r,0,wve,0)?1:0}function GWe(r,n){var t=Z_e(r);return UL(R3(Tbn),n,t)}function $We(r){return[0,wve,r]}function KWe(r,n,t){var e=Fve(80,n);return UL($3(tY,Nbn),r,e),t}var OWe=[Ul,"Codegen.Compile_common.CodegenError",qH()];function RWe(r){return O3(function(r){throw kQ([0,OWe,r],1)},r)}function QWe(r,n){var t=r[1];return[0,t,[0,t+1|0,[0,n,r[2]]]]}function CWe(r){return XY(r[2])}function HWe(r,n){var t=QWe(r[1],n),e=t[1];return r[1]=t[2],pve(e)}var VWe=aBe([0,r1]);function LWe(r){return[0,[0,NX],[0,NX],[0,NX],[0,VWe[1]]]}function zWe(r,n){var t=r[3],e=[0,0],a=QWe(t[1],e),u=a[2],f=pve(a[1]);return t[1]=u,[0,f+r[2][1][1]|0,function(r){return Roe(e,[0,r[1],n,r[2]])}]}function SWe(r,n,t){var e=t[2],a=t[1],u=zWe(r,n),f=u[1];return PL(u[2],[0,a,e]),f}function ZWe(r){return YY(Coe,CWe(r[3][1]))}function WWe(r,n){for(var t=0,e=CWe(r[1][1]);;){if(!e){var a=QWe(r[1][1],n),u=a[1];return r[1][1]=a[2],u}if(dH(n,e[1]))return t;t=t+1|0,e=e[2]}}function XWe(r){return CWe(r[1][1])}function JWe(r,n,t,e,a){if(0!==r[3][1][1])throw kQ([0,OWe,"Add all imports before all functions!"],1);var u=[0,wve,[0,[0,wve,WWe(r,[0,e,a])]]],f=xoe(t),i=[0,0],c=[0,[0,wve,[0,xoe(n),f,u]],i],v=n+Qu+t,o=HWe(r[2],c);if(VWe[3].call(null,v,r[4][1]))throw kQ([0,YL,Ebn],1);var A=VWe[4].call(null,v,[0,o,i],r[4][1]);r[4][1]=A}function YWe(r,n,t){var e=n+Qu+t,a=VWe[29].call(null,e,r[4][1]);if(!a)throw kQ([0,zL,PL(R3(Dbn),e)],1);var u=a[1],f=u[1];return u[2][1]=1,f}function rXe(r,n,t){var e=[6,[0,wve,YWe(r,n,t)]];return function(r,n,t){return hWe(e,0,n,t)}}function nXe(r){for(var n=R1([0,j1]),t=[0,0],e=[0,n[1]],a=0,u=0,f=CWe(r[2][1]);f;){var i=f[2],c=f[1],v=c[1];c[2][1]?(e[1]=n[4].call(null,a,t[1],e[1]),t[1]=t[1]+1|0,a=a+1|0,u=[0,v,u],f=i):(a=a+1|0,f=i)}if(a!==r[2][1][1])throw kQ([0,YL,qbn],1);var o=XY(u),A=LY(o);if(t[1]!==A)throw kQ([0,YL,Ibn],1);var s=t[1],b=r[2][1][1],l=e[1],B=b-s|0;return[0,o,s,function(r){return cV(r,b)?n[28].call(null,r,l):r-B|0}]}function tXe(r){var n=[13,[0,r[1],r[2],xbn,0]],t=[14,[0,r[1],r[2],ybn,0]],e=[13,[0,r[1],r[2],wbn,0]],a=[14,[0,r[1],r[2],gbn,0]];return[0,r[3],r[4],function(r,t,e){return hWe(n,0,t,e)},function(r,n,e){return hWe(t,0,n,e)},function(r,n,t){return hWe(e,0,n,t)},function(r,n,t){return hWe(a,0,n,t)}]}var eXe=tXe([0,0,2,-1,1]),aXe=tXe([0,1,3,Mbn,Fbn]),uXe=lC(ni,0,0);function fXe(r){if(Fce[1])switch(r){case 3:return vct;case 4:return oct;case 5:return Act;case 6:return sct;case 8:return bct;case 9:return lct;case 10:return Bct;case 11:return jct;case 13:return kct;case 14:return pct;case 2:case 7:return dct;default:throw kQ([0,YL,mct],1)}var n=r-2|0;if(12>=n>>>0&&10!==n)return _ct;throw kQ([0,YL,hct],1)}var iXe=[0,[0,"--hide-warnings",[3,Bce]," hide warnings"],[0,[0,"-Werror",[2,jce]," treat warnings as errors"],[0,[0,"-A",[4,function(r){return lBe(0,r)}]," disable (allow) comma-separated warning codes, e.g. -A M0194,M0217"],[0,[0,"-W",[4,function(r){return lBe(1,r)}]," enable (warn) comma-separated warning codes, e.g. -W M0223"],[0,[0,"-E",[4,function(r){return lBe(2,r)}]," treat as error comma-separated warning codes, e.g. -E M0217"],0]]]]];function cXe(r){var n=r[2];if(0===n[0]){var t=n[1],e=[0,oje(n[2]),0];return[1,utr,rY([0,fje(t),0],e)]}var a=n[2],u=n[1];return[1,"ImportD",[0,[0,a[1]===fQ?u:a[1]],0]]}function vXe(r){return EBe(wpe(r),function(r){var n=r[1],t=Pje(n,r[2]);return EBe(function(r,n){var t=[0,Mje[1]],e=[0,qpe[1]];function a(n){return Mje[3].call(null,n,t[1])?xpe(Lle,tar,PL(R3(nar),n)):qpe[3].call(null,n,e[1])?qBe(0):(t[1]=Mje[4].call(null,n,t[1]),EBe(wpe(n),function(a){var f=a[1],i=Pje(f,a[2]);return EBe(u(i),function(a){return EBe(Ipe(i,r,e[1]),function(r){return EBe(gpe(r,f),function(r){return e[1]=qpe[4].call(null,n,r[1],e[1]),t[1]=Mje[6].call(null,n,t[1]),qBe(0)})})})}))}function u(r){return TBe(a,r)}var f=u(n);return 0===f[0]?[0,[0,e[1],f[1][2]]]:[1,f[1]]}(dje,t),function(r){return EBe(Ipe(t,dje,r),function(r){return EBe(gpe(r,n),function(r){return qBe([0,n,r[1],r[2]])})})})})}function oXe(r){var n=oIe(r);if(lT===FIe(r))var t=[0,GIe(OIe,r),GIe(OIe,r)];else t=mIe(r,oIe(r)-1|0,"malformed function type");return[0,pIe(r,n,oIe(r)),t]}function AXe(r,n){var t=oIe(n),e=GIe(rDe,n);dIe(hve(e0(_ve,kdr,YY(function(r){return xve(r[1])},e)),jdr),n,t,"too many locals");var a=JY(YY(function(r){for(var n=r[1],t=0,e=r[2];;){if(dH(n,0))return t;n=n-1|0,t=[0,e,t]}},e)),u=WIe(n);return VIe(n),[0,[0,wve,-1],a,u]}function sXe(r){var n=oIe(r),t=NIe(r);return[0,[0,pIe(r,n,oIe(r)),t],XIe(r),GIe(function(r){var n=oIe(r),t=NIe(r);return[0,pIe(r,n,oIe(r)),t]},r)]}function bXe(r){return[0,NIe(r)]}function lXe(r,n){for(var t=fS;;){var e=oIe(n);if(dIe(oIe(n)<=r?1:0,n,e,vS),oIe(n)===r)return t;t=vDe(t,n)}}function BXe(r,n){for(var t=iS;;){var e=oIe(n);if(dIe(oIe(n)<=r?1:0,n,e,vS),oIe(n)===r)return t;var a=_Ie(n);if(0===a){var u=KIe(function(r){return function(r){return GIe(PIe,r)}},n),f=t[3],i=t[2];t=[0,rY(t[1],u),i,f]}else{var c=PL(R3(vdr),a);t=mIe(n,oIe(n),c)}}}function jXe(r){if("number"!=typeof r)switch(r[0]){case 0:return[0,[5,r[1]]];case 1:return[0,[1,[0,r[1],r[2]]]];case 2:return[0,[2,r[1]]];case 3:return[0,[4,r[1]]];case 4:return[0,[6,r[1]]];case 5:return[0,[7,r[1]]];case 6:return[0,[3,r[1]]];case 7:return[0,[0,r[1]]];case 8:return[1,[3,r[1]]];case 9:return[1,[1,r[1]]];case 10:return[1,[2,r[1]]];default:return[1,[0,r[1]]]}var n=r;if(60<=n)switch(n){case 60:return jRr;case 61:return kRr;case 62:return pRr;case 63:return mRr;case 64:return dRr;case 65:return _Rr;case 66:return hRr;case 67:return xRr;case 68:return yRr;case 69:return wRr;case 70:return gRr;case 71:return qRr;case 72:return IRr;case 73:return DRr;case 74:return ERr;case 75:return NRr;case 76:return TRr;case 77:return FRr;case 78:return MRr;case 79:return PRr;case 80:return URr;case 81:return GRr;case 82:return $Rr;case 83:return KRr;case 84:return ORr;case 85:return RRr;case 86:return QRr;case 87:return CRr;case 88:return HRr;case 89:return VRr;case 90:return LRr;case 91:return zRr;case 92:return SRr;case 93:return ZRr;case 94:return WRr;case 95:return XRr;case 96:return JRr;case 97:return YRr;case 98:return rQr;case 99:return nQr;case 100:return tQr;case 101:return eQr;case 102:return aQr;case 103:return uQr;case 104:return fQr;case 105:return iQr;case 106:return cQr;case 107:return vQr;case 108:return oQr;case 109:return AQr;case 110:return sQr;case 111:return bQr;case 112:return lQr;case 113:return BQr;case 114:return jQr;case 115:return kQr;case 116:return pQr;case 117:return mQr;default:return dQr}switch(n){case 0:return oOr;case 1:return AOr;case 2:return sOr;case 3:return bOr;case 4:return lOr;case 5:return BOr;case 6:return jOr;case 7:return kOr;case 8:return pOr;case 9:return mOr;case 10:return dOr;case 11:return _Or;case 12:return hOr;case 13:return xOr;case 14:return yOr;case 15:return wOr;case 16:return gOr;case 17:return qOr;case 18:return IOr;case 19:return DOr;case 20:return EOr;case 21:return NOr;case 22:return TOr;case 23:return FOr;case 24:return MOr;case 25:return POr;case 26:return UOr;case 27:return GOr;case 28:return $Or;case 29:return KOr;case 30:return OOr;case 31:return ROr;case 32:return QOr;case 33:return COr;case 34:return HOr;case 35:return VOr;case 36:return LOr;case 37:return zOr;case 38:return SOr;case 39:return ZOr;case 40:return WOr;case 41:return XOr;case 42:return JOr;case 43:return YOr;case 44:return rRr;case 45:return nRr;case 46:return tRr;case 47:return eRr;case 48:return aRr;case 49:return uRr;case 50:return fRr;case 51:return iRr;case 52:return cRr;case 53:return vRr;case 54:return oRr;case 55:return ARr;case 56:return sRr;case 57:return bRr;case 58:return lRr;default:return BRr}}function kXe(r,n,t){for(var e=t;;){var a=_1(dS,e,n);if(is>=a>>>0)break;PL(n[1],n),e=a}var u=a;if(70<=u){if(Bs<=u)switch(u){case 105:return 2;case 106:return 30;case 107:return 47;case 108:return 49;case 109:return 48;case 110:return 51;case 111:return 33;case 112:return 50;case 113:return 35;case 114:return 29;case 115:return 34;case 116:return 36;case 117:return 37;case 118:return 38;case 119:return 67;case 120:return gQr;case 121:return 43;case 122:return 3;case 123:return rM;case 124:return 31;case 125:return 39;case 126:var f=y1(n,n[5],n[5]+4|0);return r[1]?W$:[6,f];case 127:return[6,y1(n,n[5],n[6])];case 128:var i=y1(n,n[5],n[6]);return r[1]?[6,i]:qPe(n,"privileged identifier");case 129:return[11,y1(n,n[5],n[6])];case 130:var c=y1(n,n[5],n[5]+2|0),v=d2(x$);return q2(v,c),EPe(v,n[11],n),[11,_2(v)];case 131:return[10,HH(y1(n,n[5],n[6]))];case 132:var o=HH(y1(n,n[5],n[6]));return 1===o?OP:[9,o];case 133:return w1(n),qQr;case 134:return w1(n),IQr;case 135:return w1(n),DQr;case 136:return 0;case 137:return qPe(n,EQr);default:return qPe(n,NQr)}switch(u){case 70:return 13;case 71:return 14;case 72:return 69;case 73:return 10;case 74:return 11;case 75:return 12;case 76:return 15;case 77:return 16;case 78:return 17;case 79:return 46;case 80:return t$;case 81:return 18;case 82:return 20;case 83:return 66;case 84:return 21;case 85:return 28;case 86:return wQr;case 87:return 22;case 88:return 23;case 89:return 32;case 90:return 68;case 91:return 42;case 92:return 24;case 93:return 25;case 94:return 26;case 95:return 27;case 96:return 62;case 97:return 63;case 98:return 64;case 99:return 65;case 100:return 61;case 101:return Jt;case 102:return 44;case 103:return 60;default:return 19}}if(35>u)switch(u){case 0:return 4;case 1:return 5;case 2:return 6;case 3:return 7;case 4:return 8;case 5:return 9;case 6:return 52;case 7:return 53;case 8:return 54;case 9:return 55;case 10:return 56;case 11:return 57;case 12:return 58;case 13:return 95;case 14:return 96;case 15:return 97;case 16:return 70;case 17:return 71;case 18:return 72;case 19:return 73;case 20:return 74;case 21:return 75;case 22:return 84;case 23:return 85;case 24:return Yv;case 25:return 86;case 26:return 87;case 27:return 88;case 28:return 89;case 29:return 76;case 30:return 77;case 31:return 78;case 32:return 79;case 33:return 94;default:return 90}switch(u){case 35:return 91;case 36:return 93;case 37:return 92;case 38:return 41;case 39:return 98;case 40:return 99;case 41:return x$;case 42:return _q;case 43:return Pl;case 44:return _$;case 45:return Bs;case 46:return ck;case 47:return db;case 48:return QN;case 49:return qT;case 50:return Wr;case 51:return S_;case 52:return 80;case 53:return 81;case 54:return 82;case 55:return 83;case 56:return Yo;case 57:return 40;case 58:return pp;case 59:return[0,y1(n,n[5]+1|0,n[6])];case 60:return[2,y1(n,n[5],n[6])];case 61:var A=joe(y1(n,n[5],n[6]),46);if(A){var s=A[2];if(s&&!s[2])return[1,A[1],s[1]]}throw kQ([0,YL,_Qr],1);case 62:return[3,y1(n,n[5],n[6])];case 63:var b=DPe(n,y1(n,n[5],n[6]));try{var l=xoe(b),B=l?l[2]?qPe(n,"overlong character literal"):l[1]:qPe(n,"empty character literal")}catch(a){var j=iL(a);if(j!==gve)throw kQ(j,0);B=qPe(n,"invalid utf8 in character literal")}return[4,B];case 64:return[7,DPe(n,y1(n,n[5],n[6]))];case 65:return qPe(n,hQr);case 66:return qPe(n,xQr);case 67:return IPe(n[12],n,yQr);case 68:return 45;default:return 59}}function pXe(r,n){var t=d0(eRe,UL(wPe[37],function(t,e){var a=t[1];if(0!==a[0])throw kQ([0,YL,o8r],1);var u=a[1],f=[0,rRe(u),r,r],i=UL(wPe[1],n,f),c=PL(wPe[7],i);if(!c)return e;var v=c[1],o=PL(wPe[12],v),A=PL(wPe[12],v),s=RV(A),b=an===s?A[1]:W===s?gY(A):A;if(b)var l=PL(wPe[30],b[1][1]),B=e;else l=LJ("items_current"),B=e;for(;;){if(!l)return B;var j=l[2],k=l[1],p=k[2],m=PL(wPe[32],k[1]),d=LY(m);if(!(0>>0)var l=PL(R3(B8r),s);else switch(b){case 0:var B=YY(function(r){return zY(tRe(r))},a),j=O0(q8r,uRe(YY(ZOe,d0(wPe[26],B))));l=UL(R3(j8r),s,j);break;case 1:var k=O0(x8r,uRe(YY(bRe,d0(fRe,YY(tRe,a)))));l=UL(R3(k8r),s,k);break;case 2:var p=YY(sRe,a),m=O0(_8r,uRe(YY(BRe,d0(wPe[28],p))));l=UL(R3(p8r),s,m);break;default:var d=O0(h8r,uRe(YY(lRe,d0(fRe,YY(tRe,a)))));l=UL(R3(m8r),s,d)}return MBe(t,gBe(c,"M0001",d8r,0,0,0,l))}function _Xe(r,n){var t=[0,M_e[1]];if(!n)throw kQ([0,YL,y9r],1);var e=n[1],a=e[2];r:{var u=e[1];if("number"!=typeof a){switch(a[0]){case 7:var f=YY(function(n){return nQe(r,t,n)},a[1]);break;case 8:var i=Pme(JRe(r,t,a[2]));if("number"!=typeof i&&3===i[0]&&1===i[1]){var c=i[2];QBe([0,wBe(u,"M0185",h9r,0,0,0,"importing Candid service constructor as instantiated service"),0]);f=c;break}throw kQ([0,YL,x9r],1);default:break r}var v=d0(Ame,M_e[13].call(null,function(r,n,t){if("number"!=typeof n&&1===n[0])return[0,[0,r,n[1],Spe],t];throw kQ([0,YL,_9r],1)},t[1],0));return[3,1,d0(Ame,f),v]}}throw kQ([0,YL,w9r],1)}function hXe(r,n,t){var e=fQe(r,tQe,n);sQe[1]=0;var a=[0,0],u=[0,pwe[1]];k2(function(r){var n=function(r,n){var t=n[2][2],e=t[2];switch(e[0]){case 2:return function(r){return r};case 3:var a=e[4];return function(r){var n=dwe(1,1,function(n,e,a){var u=Rwe(e),f=u[1],i=Vwe(u[2]);return f===FU&&0===pwe[28].call(null,Frn,i)?PL(a,r):oQe(t[1],Mrn)}),e=[0,[0,Prn,[19,pwe[6].call(null,a[2],n)]],0];return[19,pwe[46].call(null,[0,[0,a[2],r],e])]};default:throw kQ([0,YL,Urn],1)}}(0,t),f=zge(t);return ACe(e,rY(f[1],f[2]),[0,u],function(r){return a[1]=[0,n(r)],0})},dQe),_Qe();var f=PY(a[1]),i=pwe[4].call(null,t[3][1],f,n[2]);return[0,n[1],i]}function xXe(r,n){var t=r[2][2],e=t[2],a=r[3][1];if(3!==e[0])throw kQ([0,YL,cvn],1);var u=e[4][2],f=rde(Pme(t[3][1])),i=f[3],c=f[5],v=f[4],o=f[2],A=Fme(i),s=ade(zY(A))[1],b=YY(function(r){return Tme(A,r)},v),l=YY(function(r){return Tme(A,r)},c),B=YY(Pme,l);if(B){var j=B[1];if("number"!=typeof j&&9===j[0]&&!B[2]){var k=j[3];switch(o){case 0:var p=hme(l);break;case 1:throw kQ([0,YL,ivn],1);default:p=Dz}var m=nde(Pme(p))[3],d=Fme(i),_=ade(zY(d))[1],h=BHe("wasm_blob",Gz),x=BHe(ovn,V_e),y=[0,"@install_actor_helper",[8,0,0,[0,U_e,0],[0,V_e,[0,Nz,[0,Gz,[0,Gz,0]]]],[0,[9,1,[0,P_e,0],Kz],0]]],w=function(r){var n=jHe(uvn,b),t=BHe(fvn,Kz),e=zY(A),a=hHe([17,Kz,m],[0,_He(t),0]),f=[0,hHe([12,b],[0,qVe(YY(_He,n)),0]),0],i=[0,_He(h),f],c=YHe([0,r,[0,KHe(Mce[1]),i]]),v=lVe(t,gHe(0,QHe(_He(y),d,c)),a),o=wHe(0,kHe(_,0,0),v,e),B=YY(pVe,n);return RHe(u,0,0,[0,kHe(s,0,0),0],B,l,o)},g=IVe(x,w(_He(x))),q=Sze(u,k,w(FHe(svn,MVe([0,[0,Avn,OHe()],0]))),g),I=[0,AVe([0,ZE+a,q[3][1]],q),0];return[0,AVe(h,$He(n)),I]}}throw kQ([0,YL,vvn],1)}function yXe(r){var n=r[2][2];if(4===n[2][0])return 0;var t=r[3][1],e=n[3][1];if(2===e)throw kQ([0,YL,zcn],1);var a=Xze(r)[1];switch(a[0]){case 0:var u=UHe(a[1],a[2]);return[0,AVe([0,ZE+t,u[3][1]],u),0];case 1:throw kQ([0,zL,"Desugar: Cannot import program"],1);default:var f=a[1];if(!f)throw kQ([0,zL,"Desugar: Cannot import actor"],1);var i=a[5],c=n[2],v=a[4],o=a[3],A=a[2],s=f[1];if(3!==c[0])throw kQ([0,YL,Scn],1);var b=c[4][2],l=rde(e)[5],B=Fme([0,U_e,0]),j=ade(zY(B))[1],k=ade(zY(Fme([0,U_e,0])))[1],p=YY(Pme,l);if(p){var m=p[1];if("number"!=typeof m&&9===m[0]&&!p[2]){var d=m[3],_=BHe(Wcn,V_e),h=_He(_),x=zY(B),y=hHe(Hcn,[0,GHe("actor class configuration not supported in interpreter"),0]),w=[0,r[1],[14,A,o,v,i],[0,i,_X[2],_X[3],_X[4]]],g=CHe(hHe([3,V_e,0],[0,h,[0,FHe(Lcn,MVe([0,[0,Vcn,OHe()],0])),0]]),w,y),q=wHe(0,kHe(k,0,0),g,x),I=[0,[9,0,zY(B),i],0],D=IVe(_,RHe(b,0,0,[0,kHe(j,0,0),0],s,I,q)),E=BHe(Xcn,D[3][1]),N=FHe(Ycn,MVe([0,[0,Jcn,OHe()],0])),T=Sze(b,d,NVe(_He(E),N),_He(E)),F=[0,AVe([0,ZE+t,T[3][1]],T),0];return[0,AVe(E,D),F]}}throw kQ([0,YL,Zcn],1)}}function wXe(r){var n=[0,xZe[1]];function t(r){if("number"==typeof r)switch(r){case 0:return 0;case 1:return 1;default:return 2}switch(r[0]){case 1:var n=r[1],a=YY(t,r[2]);return[1,u(n),a];case 3:var f=r[2],v=r[1],o=YY(c,r[3]);return[3,v,YY(i,f),o];case 4:return[4,YY(i,r[1])];case 5:return[5,t(r[1])];case 6:return[6,t(r[1])];case 7:return[7,YY(t,r[1])];case 8:var A=r[2],s=r[5],b=r[4],l=r[3],B=r[1],j=1===A?2:A,k=YY(t,s),p=YY(t,b);return[8,B,j,YY(e,l),p,k];case 9:return r[1]?[8,0,0,0,[0,[8,0,0,0,ude(t(r[3])),0],[0,DZe,[0,wVe,0]]],0]:EZe(TZe,t(r[3]));case 10:return[10,t(r[1])];case 11:throw kQ([0,YL,uAn],1);case 12:return[12,t(r[1])];default:return r}}function e(r){var n=t(r[3]);return[0,r[1],r[2],n]}function a(r){return YY(e,r)}function u(r){var e=Upe(r);if(0===e[0]&&!e[1]){var u=e[2];if("number"!=typeof u&&2===u[0])return r}var f=xZe[29].call(null,r,n[1]);if(f)return f[1];var i=Ppe(r,fAn);n[1]=xZe[4].call(null,r,i,n[1]);var c=Upe(r);if(0===c[0])var v=c[1],o=t(c[2]),A=[0,a(v),o];else{var s=c[1],b=t(c[2]);A=[1,a(s),b]}return ime(i,A),i}function f(r){return mCe(t,function(r){return r},r)}function i(r){var n=r[3];return[0,r[1],t(r[2]),n]}function c(r){var n=r[3];return[0,r[1],u(r[2]),n]}function v(r){var n=_X[4],e=_X[3],a=r[3][2],u=[0,t(r[3][1]),a,e,n],f=o(r);return[0,r[1],f,u]}function o(r){var n=r[2];switch(n[0]){case 0:var e=n[1],a=e[1];if("number"!=typeof a)switch(a[0]){case 0:var u=e[2];if(u){var i=u[2];if(i&&!i[2]){var c=u[1],o=a[1],s=i[1],p=uHe(c);if("number"!=typeof p&&8===p[0]&&p[1]&&1===p[2])var m=1;else m=0;if(m){var d=uHe(c);if("number"!=typeof d&&8===d[0]&&d[1]&&1===d[2]){var _=d[4],h=YY(function(r){return t(Tme(o,r))},d[5]),x=YY(function(r){return t(Tme(o,r))},_),y=v(c),w=v(s),g=MZe(h),q=g[1],I=q[4],D=q[3],E=q[2],N=q[1],T=g[2],F=_He(N),M=PZe(y,function(r){function n(n){var t=_He(I),e=_He(D),a=_He(E),u=[0,r,[0,qVe(YY(_He,n)),[0,a,[0,e,[0,t,0]]]]],f=aHe(fHe,u);return[0,bVe([0,Lle,[0,[0,28,u]],[0,Ez,f,_X[3],_X[4]]]),0]}if(!x){var t=n(0);return[0,bVe(w),t]}if(x[2]){var e=jHe(GAn,x),a=mHe(YY(pHe,e)),u=n(e);return[0,oVe(a,w),u]}var f=BHe($An,x[1]),i=pHe(f),c=n([0,f,0]);return[0,oVe(i,w),c]}),P=[0,pHe(I),0],U=[0,pHe(D),P],G=[0,pHe(E),U];return UHe([0,oVe(mHe([0,pHe(N),G]),T),M],F)[2]}throw kQ([0,YL,AAn],1)}}}break;case 20:if(a[1]===kh){var $=e[2];if($){var K=$[2];if(K){var O=K[2];if(O&&!O[2]){var R=O[1],Q=K[1],C=v($[1]),H=v(Q),V=v(R),L=MZe([0,Gz,0]),z=L[1],S=z[4],Z=z[3],W=z[2],X=z[1],J=L[2],Y=_He(X),rr=PZe(C,function(r){return PZe(H,function(n){return PZe(V,function(t){var e=_He(S),a=_He(Z),u=[0,r,[0,n,[0,t,[0,_He(W),[0,a,[0,e,0]]]]]],f=aHe(fHe,u);return[0,bVe([0,Lle,[0,[0,29,u]],[0,Ez,f,_X[3],_X[4]]]),0]})})}),nr=[0,pHe(S),0],tr=[0,pHe(Z),nr],er=[0,pHe(W),tr];return UHe([0,oVe(mHe([0,pHe(X),er]),J),rr],Y)[2]}}}}break;case 21:var ar=a[1];if(ar){var ur=e[2];if(ur){var fr=ur[2];if(fr&&!fr[2]){var ir=a[2],cr=fr[1],vr=ur[1],or=ar[1];if("number"!=typeof ir&&8===ir[0]&&!ir[3]&&!ir[5]){var Ar=function(r){var n=BHe(cAn,iAn);if(or)var t=rVe(),e=NVe(_He(n),t);else{var a=BHe("call",Ez),u=UVe(_He(a),function(n){return NVe(NHe(_He(r),1),n)}),f=rVe(),i=DVe(0,NVe(NHe(_He(r),2),f)),c=NHe(_He(r),1),o=_He(n);e=lVe(a,yZe(0,DHe(0,rVe()),o,c,i),u)}var A=[0,[0,vAn,pHe(n),e],0],s=[0,[0,oAn,dHe,rVe()],A],b=_He(r);return JHe(NVe(v(vr),b),s,Ez)},sr=v(cr),br=sr[2];if(1!==br[0]||br[1]){var lr=BHe(UAn,uHe(sr)),Br=Ar(lr);jr=UHe([0,AVe(lr,sr),0],Br)}else var jr=Ar([0,br[2],uHe(sr)]);return jr[2]}throw kQ([0,YL,sAn],1)}}}else{var kr=e[2];if(kr){var pr=kr[2];if(pr&&!pr[2]){var mr=a[2],dr=pr[1],_r=kr[1];if("number"!=typeof mr&&8===mr[0]&&!mr[3]&&!mr[5]){var hr=v(dr);return NVe(v(_r),hr)[2]}throw kQ([0,YL,bAn],1)}}}break;case 22:if(a[1]){var xr=e[2];if(xr&&!xr[2]){var yr=xr[1],wr=a[2],gr=t(wr),qr=uHe(yr);if("number"!=typeof qr&&8===qr[0]){var Ir=qr[3];if(Ir&&!Ir[2]){var Dr=qr[4];if(Dr){var Er=Dr[2];if(Er){var Nr=Er[2];if(Nr&&!Nr[2]){var Tr=Er[1],Fr=Dr[1],Mr=t(Tme([0,wr,0],Nr[1])),Pr=t(Tme([0,wr,0],Tr)),Ur=t(Tme([0,wr,0],Fr)),Gr=BHe(lAn,Mr),$r=BHe(BAn,Pr),Kr=BHe(jAn,Ur),Or=YHe(YY(_He,[0,Kr,[0,$r,[0,Gr,0]]]));return DVe([0,Kr,[0,$r,[0,Gr,0]]],QHe(v(yr),[0,gr,0],Or))[2]}}}}}throw kQ([0,YL,kAn],1)}}else{var Rr=e[2];if(Rr&&!Rr[2]){var Qr=Rr[1],Cr=a[2],Hr=t(Cr),Vr=uHe(Qr);if("number"!=typeof Vr&&8===Vr[0]){var Lr=Vr[3];if(Lr&&!Lr[2]){var zr=Vr[4];if(zr){var Sr=zr[1];if("number"!=typeof Sr&&8===Sr[0]&&!Sr[3]&&!Sr[5]){var Zr=zr[2];if(Zr){var Wr=Zr[2];if(Wr&&!Wr[2]&&!Vr[5]){var Xr=[0,Cr,0],Jr=YY(t,YY(function(r){return Tme(Xr,r)},Sr[4])),Yr=MZe(Jr),rn=Yr[1],nn=rn[4],tn=rn[3],en=rn[2],an=rn[1],un=Yr[2],fn=_He(an),cn=BHe(pAn,hme(Jr)),vn=IVe(cn,DHe(Jr,_He(cn))),on=BHe(mAn,Rz),An=YHe([0,vn,[0,IVe(on,EHe(gZe(_He(on)))),[0,_He([0,dAn,wVe]),0]]]),sn=QHe(v(Qr),[0,Hr,0],An),bn=_He(nn),ln=_He(tn),Bn=[0,bVe(yZe(Jr,sn,_He(en),ln,bn)),0],jn=[0,pHe(nn),0],kn=[0,pHe(tn),jn],pn=[0,pHe(en),kn];return UHe([0,oVe(mHe([0,pHe(an),pn]),un),Bn],fn)[2]}}}}}}throw kQ([0,YL,_An],1)}}}var mn=YY(v,e[2]);return[0,[0,f(a),mn]];case 3:var dn=n[1],_n=v(n[2]);return[3,A(dn),_n];case 4:var hn=n[1],xn=hn[1],yn=v(hn[2]);return[4,[0,b(xn),yn]];case 5:var wn=n[2],gn=n[1],qn=v(n[3]),In=v(wn);return[5,v(gn),In,qn];case 6:var Dn=n[1],En=YY(function(r){var n=r[2],t=n[1],e=r[1],a=r[3],u=v(n[2]);return[0,e,[0,j(t),u],a]},n[2]);return[6,v(Dn),En];case 7:return[7,v(n[1])];case 8:var Nn=n[2],Tn=n[1],Fn=v(n[3]);return[8,Tn,t(Nn),Fn];case 10:var Mn=n[2],Pn=n[1],Un=v(n[3]);return[10,Pn,t(Mn),Un];case 11:var Gn=n[2];return[11,n[1],Gn,v(n[3])];case 12:var $n=n[7],Kn=n[6],On=n[5],Rn=n[4],Qn=n[3],Cn=n[2],Hn=n[1];if(!Cn){var Vn=v($n),Ln=YY(t,Kn),zn=YY(B,On);return[12,Hn,Cn,Qn,YY(k,Rn),zn,Ln,Vn]}var Sn=Cn[1];switch(Qn){case 0:var Zn=$n[2];if(4===Zn[0]){var Wn=Zn[1],Xn=Wn[1];if(Xn){var Jn=Xn[1][2];if(0===Jn[0]&&"number"==typeof Jn[1][2]){var Yn=Jn[2],rt=Yn[2];if(0===rt[0]){var nt=rt[1][1];if("number"!=typeof nt&&22===nt[0]&&!Xn[2]){var tt=Wn[2][2];if(0===tt[0]){var et=tt[1],at=et[1];if("number"==typeof at&&!at&&!et[2]){var ut=YY(t,Kn),ft=YY(B,On),it=YY(k,Rn),ct=Yn[2];if(0===ct[0]){var vt=ct[1],ot=vt[1];if("number"!=typeof ot&&22===ot[0]&&!ot[1]){var At=vt[2];if(At&&!At[2]){var st=At[1],bt=t(ot[2]),lt=uHe(st);if("number"!=typeof lt&&8===lt[0]){var Bt=lt[3];if(Bt&&!Bt[2]){var jt=lt[4];if(jt){var kt=jt[1];if("number"!=typeof kt&&8===kt[0]&&!kt[3]&&!kt[5]){var pt=jt[2];if(pt){var mt=pt[2];if(mt&&!mt[2]&&!lt[5]){var dt=kt[4];t(Tme([0,bt,0],kt));var _t=[0,bt,0],ht=BHe(hAn,t(hme(YY(function(r){return Tme(_t,r)},dt)))),xt=IVe(ht,YHe(0)),yt=IVe(BHe(xAn,Rz),YHe(0)),wt=YHe([0,xt,[0,yt,[0,_He([0,yAn,wVe]),0]]]);return[12,Hn,[0,Sn],0,it,ft,ut,QHe(v(st),[0,bt,0],wt)]}}}}}}throw kQ([0,YL,wAn],1)}}}throw kQ([0,YL,gAn],1)}}}}}}}break;case 1:var gt=YY(t,Kn),qt=YY(B,On),It=YY(k,Rn),Dt=$n[2];if(0===Dt[0]){var Et=Dt[1],Nt=Et[1];if("number"!=typeof Nt&&22===Nt[0]&&!Nt[1]){var Tt=Et[2];if(Tt&&!Tt[2]){var Ft=Tt[1],Mt=t(Nt[2]),Pt=uHe(Ft);if("number"!=typeof Pt&&8===Pt[0]){var Ut=Pt[3];if(Ut&&!Ut[2]){var Gt=Pt[4];if(Gt){var $t=Gt[1];if("number"!=typeof $t&&8===$t[0]&&!$t[3]&&!$t[5]){var Kt=Gt[2];if(Kt){var Ot=Kt[2];if(Ot&&!Ot[2]&&!Pt[5]){var Rt=$t[4];t(Tme([0,Mt,0],$t));var Qt=[0,Mt,0],Ct=BHe(qAn,t(hme(YY(function(r){return Tme(Qt,r)},Rt)))),Ht=IVe(Ct,DHe(gt,_He(Ct))),Vt=BHe(IAn,Rz),Lt=YHe([0,Ht,[0,IVe(Vt,EHe(gZe(_He(Vt)))),[0,_He([0,DAn,wVe]),0]]]);return[12,Hn,[0,Sn],2,It,qt,gt,QHe(v(Ft),[0,Mt,0],Lt)]}}}}}}throw kQ([0,YL,EAn],1)}}}throw kQ([0,YL,NAn],1)}throw kQ([0,YL,TAn],1);case 13:throw kQ([0,YL,FAn],1);case 14:var zt=n[3],St=zt[9],Zt=zt[8],Wt=zt[7],Xt=zt[6],Jt=zt[5],Yt=zt[4],re=zt[3],ne=zt[2],te=zt[1],ee=n[2],ae=n[1],ue=t(n[4]),fe=t(St[2]),ie=[0,t(St[1]),fe],ce=v(Zt),ve=v(Wt),oe=v(Xt),Ae=v(Jt),se=v(Yt),be=v(re),le=[0,te,v(ne),be,se,Ae,oe,ve,ce,ie],Be=l(ee);return[14,b(ae),Be,le,ue];case 15:var je=n[2],ke=n[1],pe=t(n[3]);return[15,ke,l(je),pe];case 1:case 2:return n;default:throw kQ([0,YL,MAn],1)}}function A(r){var n=t(r[3]),e=r[2];switch(e[0]){case 1:var a=e[1],u=v(e[2]),f=[1,v(a),u];break;case 2:var i=e[2];f=[2,v(e[1]),i];break;default:f=e}return[0,r[1],f,n]}function s(r){var n=r[2],e=r[3];switch(n[0]){case 0:var a=n[1],u=v(n[2]),f=[0,j(a),u];break;case 1:var i=n[2],c=n[1],o=v(n[3]);f=[1,c,t(i),o];break;default:var s=n[2],b=n[1],l=A(n[3]);f=[2,b,t(s),l]}return[0,r[1],f,e]}function b(r){return YY(s,r)}function l(r){return YY(function(r){var n=t(r[3]);return[0,r[1],r[2],n]},r)}function B(r){var n=t(r[3]);return[0,r[1],r[2],n]}function j(r){var n=t(r[3]),e=r[2];if("number"==typeof e)var a=e;else switch(e[0]){case 2:a=[2,YY(j,e[1])];break;case 3:a=[3,kCe(j,e[1])];break;case 4:a=[4,j(e[1])];break;case 5:a=[5,e[1],j(e[2])];break;case 6:var u=e[1],f=j(e[2]);a=[6,j(u),f];break;default:a=e}return[0,r[1],a,n]}function k(r){var n=r[2],e=r[3],a=t(n[3]),f=n[2],i=[0,u(n[1]),f,a];return[0,r[1],i,e]}var p=r[2],m=r[1],d=[0,p[1],0,p[3],p[4],p[5]];switch(m[0]){case 0:throw kQ([0,zL,PAn],1);case 1:var _=[1,b(m[1])];break;default:var h=m[4],x=h[9],y=m[1],w=h[8],g=h[7],q=h[6],I=h[5],D=h[4],E=h[3],N=h[2],T=h[1],F=m[3],M=m[2],P=t(m[5]),U=t(x[2]),G=[0,t(x[1]),U],$=v(w),K=v(g),O=v(q),R=v(I),Q=v(D),C=v(E),H=[0,T,v(N),C,Q,R,O,K,$,G],V=l(F),L=b(M);_=[2,y?[0,YY(B,y[1])]:0,L,V,H,P]}return[0,_,d]}var gXe=Fce[1]?xct:yct;function qXe(r){return[2,YY(function(r){return[1,r]},r)]}function IXe(r,n){switch(n[0]){case 0:return D2(r,n[1]);case 1:return E2(r,n[1]);case 2:for(var t=n[1];;){if(!t)return;var e=t[2];IXe(r,t[1]),t=e}break;default:return q2(r,n[1])}}function DXe(r){for(var n=d2(32),t=r;;){if(!t)return _2(n);var e=t[2];IXe(n,t[1]),t=e}}function EXe(r){if("number"==typeof r)return 7;switch(r[0]){case 0:return 0;case 1:return 1;case 2:return 4;case 3:return 2;case 4:return 3;case 5:return 8;case 6:return 5;default:return 6}}function NXe(r,n){if("number"==typeof r){if("number"==typeof n)return 0}else switch(r[0]){case 0:if("number"!=typeof n&&0===n[0])return IC(r[1],n[1]);break;case 1:if("number"!=typeof n&&1===n[0])return dxe(r[1],n[1]);break;case 2:if("number"!=typeof n&&2===n[0])return PC(r[1],n[1]);break;case 3:if("number"!=typeof n&&3===n[0]){var t=n[2],e=r[2],a=UL(ume[1],[2,r[1]],[2,n[1]]);return 0===a?IC(e,t):a}break;case 4:if("number"!=typeof n&&4===n[0]){var u=r[1],f=BC(PL(Kye,n[1]));return IC(BC(PL(Kye,u)),f)}break;case 5:if("number"!=typeof n&&5===n[0]){var i=r[1],c=bC(PL(Pye,n[1]));return PC(bC(PL(Pye,i)),c)}break;case 6:if("number"!=typeof n&&6===n[0])return UC(r[1],n[1]);break;default:if("number"!=typeof n&&7===n[0])return UC(r[1],n[1])}var v=EXe(n);return PC(EXe(r),v)}function TXe(r){if("number"==typeof r)return 3;switch(r[0]){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 4;case 4:return 5;case 5:return 6;case 6:return 7;default:return 8}}function FXe(r,n){for(var t=r,e=n;;){if("number"==typeof t){if("number"==typeof e)return 0}else switch(t[0]){case 0:if("number"!=typeof e&&0===e[0])return PC(t[1],e[1]);break;case 1:if("number"!=typeof e&&1===e[0])return PC(t[1],e[1]);break;case 2:if("number"!=typeof e&&2===e[0])return _0(MXe,t[1],e[1]);break;case 3:if("number"!=typeof e&&3===e[0])return _0(FXe,t[1],e[1]);break;case 4:if("number"!=typeof e&&4===e[0])return _0(FXe,t[1],e[1]);break;case 5:if("number"!=typeof e&&5===e[0]){var a=e[1],u=t[1],f=UC(u[1],a[1]),i=a[2],c=u[2];if(0!==f)return f;t=c,e=i;continue}break;case 6:if("number"!=typeof e&&6===e[0]){t=t[1],e=e[1];continue}break;default:if("number"!=typeof e&&7===e[0])return NXe(t[1],e[1])}var v=TXe(e);return PC(TXe(t),v)}}function MXe(r,n){var t=UC(r[1],n[1]),e=n[2],a=r[2];return 0===t?FXe(a,e):t}function PXe(r,n){return"number"!=typeof r&&2===r[0]&&"number"!=typeof n&&2===n[0]?0===FXe(r[1],n[1])?1:0:dH(r,n)}var UXe=aBe([0,r1]),GXe=O1([0,r1]),$Xe=O1([0,r1]),KXe=aBe([0,FXe]),OXe=aBe([0,j1]);function RXe(r,n){var t=GXe[4].call(null,n,r[19][1]);return r[19][1]=t,xve(Ope(n))}function QXe(r,n){var t=HWe(r[22],n);return jve(r[20],t)}function CXe(r,n,t){HWe(r[23],[0,n,t])}function HXe(r,n){HWe(r[5],n)}function VXe(r,n,t){var e=[0,0];if(VWe[3].call(null,n,r[9][1]))throw kQ([0,YL,tct],1);var a=HWe(r[8],[0,e,n]),u=VWe[4].call(null,n,a,r[9][1]);return r[9][1]=u,function(r){return Roe(e,[0,wve,[0,[0,1,t],[0,wve,kWe(hWe([16,[0,wve,[1,r]]],0,wve,0))]]])}}function LXe(r,n,t,e){return VXe(r,n,t)(e)}function zXe(r,n){var t=VWe[29].call(null,n,r[9][1]);if(t)return t[1];throw kQ([0,zL,PL(R3(nct),n)],1)}function SXe(r,n){var t=[0,wve,[3,[0,wve,zXe(r,n)]]];return HXe(r,[0,wve,[0,xoe(n),t]])}function ZXe(r){var n=r[4];return function(r){return zWe(n,r)}}function WXe(r){var n=r[4];return function(r,t){return SWe(n,r,t)}}function XXe(r,n){return Hoe(function(t){return ZXe(r)(n)})}function JXe(r,n){var t=VWe[29].call(null,n,r[10][1]);if(t)return t[1];var e=XXe(r,n),a=VWe[4].call(null,n,e,r[10][1]);return r[10][1]=a,e}function YXe(r,n){return Loe(JXe(r,n))}function rJe(r){var n=r[4];return function(r){return WWe(n,r)}}function nJe(r){var n=r[4];return function(r,t,e,a){return JWe(n,r,t,e,a)}}function tJe(r){var n=r[4];return function(r,t){return rXe(n,r,t)}}function eJe(r){var n=r[4];return function(r,t){return YWe(n,r,t)}}function aJe(r,n){return n?n[2]?[0,[0,wve,rJe(r)([0,0,n])]]:[1,[0,n[1]]]:rct}function uJe(r,n){return function(t,e,a){return hWe(tJ,0,e,qWe(DX,r,n,t,e,a))}}function fJe(r,n,t){var e=IWe(r);function a(r,a,u){return e(n,t,r,a,u)}return function(r,n,t){return hWe(tJ,0,n,GL(a,r,n,t))}}function iJe(r,n,t,e){var a=aJe(r,n);return function(r,n,u){return hWe(tJ,0,n,qWe(a,t,e,r,n,u))}}function cJe(r,n,t){var e=aJe(r,n);return function(r,n,a){return DWe(e,t,r,n,a)}}function vJe(r,n){return UL(r[3],r,n)}function oJe(r,n){return uJe(vJe(r,n),dWe)}function AJe(r,n){return uJe(dWe,vJe(r,n))}function sJe(r,n){var t=QWe(r[12][1],n),e=t[1];return r[12][1]=t[2],e}function bJe(r,n){var t=OXe[29].call(null,n,r[6][1]);if(t)return t[1];var e=r[7][1],a=OXe[4].call(null,n,e,r[6][1]);return r[6][1]=a,r[7][1]=r[7][1]+1|0,e}function lJe(r,n,t){var e=DXe(t),a=n;if(a>=r[12][1][1])throw kQ([0,YL,Yit],1);var u=n0(function(r,n){if(r!==a)return n;if(n===fQ)return e;throw kQ([0,YL,Jit],1)},CWe(r[12][1])),f=XY(u),i=[0,LY(u),f];return r[12][1]=i,$H(HH(e))}function BJe(r,n,t){var e=KXe[29].call(null,n,r[13][1]);if(e)return e[1];var a=PL(t,0);if(0===a[0])return a;var u=KXe[4].call(null,n,a,r[13][1]);return r[13][1]=u,a}function jJe(r,n,t){if(r[14][2][1])throw kQ([0,zL,"Object pool frozen"],1);var e=QWe(r[14][1][1],[0,n,t]),a=e[1];return r[14][1][1]=e[2],$H(a)}function kJe(r,n){var t=n||Ece[1]?rJ:iv+WA;return tJe(r)(Xit,t)}function pJe(r,n){var t=$Xe[4].call(null,n,r[24][1]);r[24][1]=t}function mJe(r){if(1-r[25][1]&&(r[25][1]=1,1>>0))return pJe(r,Zit),pJe(r,Wit)}function dJe(r){return r[25][1]}function _Je(r){var n=[18,[1,r]];return function(r,t,e){return hWe(n,0,t,hWe(zit,0,t,e))}}function hJe(r){var n=[17,[1,r]];return function(r,t,e){return hWe(n,0,t,hWe(Vit,0,t,e))}}function xJe(r){var n=[18,[3,r]];return function(r,t,e){return hWe(n,0,t,hWe(Hit,0,t,e))}}function yJe(r){var n=[18,[2,r]];return function(r,t,e){return hWe(n,0,t,hWe(Cit,0,t,e))}}function wJe(r){var n=[16,[0,wve,[1,r]]];return function(r,t,e){return hWe(n,0,t,e)}}function gJe(r){var n=[16,[0,wve,[0,r]]];return function(r,t,e){return hWe(n,0,t,e)}}var qJe=wJe(wct),IJe=wJe(gct);function DJe(r,n){var t=[20,[1,r]],e=wJe(n);return function(r,n,a){return e(r,n,hWe(t,0,n,a))}}var EJe=12,NJe=11,TJe=10;function FJe(r){if(!KV(r,Kit)){return function(r,n,t){return hWe(2,0,n,qJe(r,n,t))}}if(!KV(r,Oit))return dWe;if(DH(r,Rit)){var n=Iye[24].call(null,r),t=Iye[31].call(null,n);if(dH(PL(Iye[23],t),Qit)){var e=Iye[24].call(null,r),a=Iye[33].call(null,e);return DJe(TJe,PL(Iye[23],a))}}return DJe(2,r)}function MJe(r){return KV(r,$it)?DJe(8,r):dWe}function PJe(r){return KV(r,Git)?DJe(9,r):dWe}function UJe(r,n){var t=_Je(r),e=wJe(n);return function(r,n,a){return _We(e,t,r,n,a)}}function GJe(r){return KV(r,Uit)?UJe(0,r):hJe(0)}function $Je(r){var n=[20,[0,0]],t=gJe(r);return function(r,e,a){return t(r,e,hWe(n,0,e,a))}}function KJe(r,n,t){return KWe(n,t,vJe(r,rm+n))}function OJe(r,n,t){var e=QXe(r,n);CXe(r,e,t);var a=[8,[0,wve,e]],u=[9,[0,wve,e]];return[0,function(r,n,t){return hWe(u,0,n,t)},function(r,n,t){return hWe(a,0,n,t)},e]}function RJe(r,n){var t=OJe(r,1,n);return[0,t[1],t[2]]}function QJe(r,n){var t=OJe(r,0,n);return[0,t[1],t[2]]}function CJe(r,n,t){var e=[3,[0,wve,1]],a=uJe(function(r,n,a){return GL(t,r,n,hWe(e,0,n,a))},dWe);function u(r,t,e){return _We(n,a,r,t,e)}return function(r,n,t){return EWe(u,r,n,t)}}function HJe(r,n){var t=RJe(r,Dit),e=t[2],a=t[1],u=RJe(r,Eit),f=u[2],i=u[1],c=DJe(0,Nit),v=PL(n,f),o=_Je(3),A=CJe(0,function(r,n,t){return GL(f,r,n,_We(e,o,r,n,t))},function(r,n,t){return GL(v,r,n,GL(f,r,n,_We(c,i,r,n,t)))}),s=wJe(Iit);return function(r,n,t){return GL(a,r,n,s(r,n,_We(i,A,r,n,t)))}}function VJe(r,n){var t=AJe(r,"cannot narrow to 32 bit"),e=_Je(7),a=wJe(qit);return function(r,u,f){return GL(n,r,u,a(r,u,e(r,u,t(r,u,GL(n,r,u,hWe(git,0,u,f))))))}}function LJe(r){return 1=LY(n))return dWe;var t=LY(n)-1|0;return yWe(function(n,e){if(1!==e)throw kQ([0,YL,hit],1);var a=[11,[0,wve,zJe(r,t-n|0)]];return function(r,n,t){return hWe(a,0,n,t)}},n)}function WJe(r,n,t){var e=ZJe(r,n),a=TWe(function(e){var a=SJe(r,n);return PL(t,function(r,n,t){return GL(a,r,n,FWe(e,r,n,t))})}),u=cJe(r,LJe(n),a);return function(r,n,t){return _We(u,e,r,n,t)}}function XJe(r,n,t,e){for(var a=LY(t),u=LY(n),f=[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],u,a,[0,NX],[0,NX],r[24],r[25],r[26],r[27],r[28],r[29]],i=n,c=0;i;){var v=i[2];CXe(f,c,i[1][1]),i=v,c=c+1|0}var o=LJe(t),A=[0,YY(function(r){return r[2]},n),o],s=SJe(f,t),b=kWe(_We(PL(e,f),s,0,wve,0)),l=CWe(f[23][1]),B=CWe(f[22][1]);return[0,[0,wve,[0,[0,wve,rJe(r)(A)],B,b]],l]}function JJe(r,n,t,e,a){return Voe(JXe(r,n),[W,function(n){return XJe(r,t,e,a)}])}function YJe(r,n,t,e,a,u){if(0===r){var f=n0(function(r,n){var t=[8,[0,wve,r]];return function(r,n,e){return hWe(t,0,n,e)}},e);JJe(n,t,e,a,function(r){return UL(u,r,f)});var i=ZJe(n,a),c=[6,[0,wve,YXe(n,t)]];return function(r,n,t){return hWe(c,0,n,GL(i,r,n,t))}}if(1!==r)throw kQ([0,YL,_it],1);var v=YY(function(r){return OJe(n,r[2],r[1])},e),o=a0(function(r,n){var t=r[1];return function(r,e,a){return _We(n,t,r,e,a)}},v,dWe),A=YY(function(r){return r[2]},v),s=ZJe(n,a),b=SJe(n,a),l=UL(u,n,A);return function(r,n,t){return GL(o,r,n,GL(l,r,n,_We(b,s,r,n,t)))}}function rYe(r,n,t,e,a){return YJe(r,n,t,0,e,function(r,n){if(n)throw kQ([0,XL,dit],1);return PL(a,r)})}function nYe(r,n,t,e,a,u){return YJe(r,n,t,[0,e,0],a,function(r,n){if(n&&!n[2])return UL(u,r,n[1]);throw kQ([0,XL,mit],1)})}function tYe(r,n,t,e,a,u){return YJe(r,n,t,[0,e[1],[0,e[2],0]],a,function(r,n){if(n){var t=n[2];if(t&&!t[2])return GL(u,r,n[1],t[1])}throw kQ([0,XL,pit],1)})}function eYe(r,n,t,e,a,u){return YJe(r,n,t,[0,e[1],[0,e[2],[0,e[3],0]]],a,function(r,n){if(n){var t=n[2];if(t){var e=t[2];if(e&&!e[2])return $L(u,r,n[1],t[1],e[1])}}throw kQ([0,XL,kit],1)})}function aYe(r){var n=tJe(r)(R5n,O5n),t=gJe(0);return function(r,e,a){return _We(t,n,r,e,a)}}function uYe(r){var n=[11,[0,wve,zXe(r,F5n)]];return function(r,t,e){return hWe(n,0,t,e)}}function fYe(r){var n=[11,[0,wve,zXe(r,N5n)]];return function(r,t,e){return hWe(n,0,t,e)}}function iYe(r){var n=[11,[0,wve,zXe(r,D5n)]];return function(r,t,e){return hWe(n,0,t,e)}}function cYe(r){if(1>>0)return dWe;var n=[12,[0,wve,zXe(r,T5n)]],t=aYe(r);return function(r,e,a){return t(r,e,hWe(n,0,e,a))}}function vYe(r){if(1>>0)return dWe;var n=[12,[0,wve,zXe(r,E5n)]],t=uYe(r),e=aYe(r);return function(r,a,u){return e(r,a,t(r,a,hWe(q5n,0,a,hWe(n,0,a,u))))}}function oYe(r){if(1>>0)var n=dWe;else{var t=[12,[0,wve,zXe(r,I5n)]],e=fYe(r),a=iYe(r),u=uYe(r);n=function(r,n,f){return u(r,n,a(r,n,hWe(g5n,0,n,e(r,n,hWe(w5n,0,n,hWe(t,0,n,f))))))}}var f=vYe(r),i=kJe(r,0),c=cYe(r);return function(r,t,e){return c(r,t,i(r,t,_We(f,n,r,t,e)))}}function AYe(r){var n=[13,[0,1,3,MH(CH(eJ,r),aXe[2]),0]];return function(r,t,e){return hWe(n,0,t,e)}}function sYe(r){var n=[14,[0,1,3,MH(CH(eJ,r),aXe[2]),0]];return function(r,t,e){return hWe(n,0,t,e)}}function bYe(r){return function(r,n,t){return hWe(8,0,n,t)}}function lYe(r,n){var t=tJe(r)(i5n,f5n),e=wJe(n);return function(r,n,a){return _We(e,t,r,n,a)}}function BYe(r){var n=[11,[0,wve,zXe(r,t5n)]];return function(r,t,e){return hWe(n,0,t,e)}}function jYe(r){var n=[12,[0,wve,zXe(r,n5n)]];return function(r,t,e){return hWe(n,0,t,e)}}function kYe(r){return rYe(1,r,r5n,0,function(r){var n=wJe(Y4n);return function(r,t,e){return n(r,t,hWe(J4n,0,t,hWe(0,0,t,e)))}})}function pYe(r,n){var t=CH(n,eJ);if(KH(t)>=Ld)throw kQ([0,YL,Z4n],1);if(IH(t,uXe))var e=uJe(dWe,kYe(r)),a=BYe(r),u=function(r,n,t){return a(r,n,hWe(W4n,0,n,e(r,n,t)))};else u=dWe;var f=BYe(r),i=jYe(r),c=wJe(t),v=BYe(r);return function(r,n,t){return v(r,n,c(r,n,hWe(X4n,0,n,i(r,n,_We(f,u,r,n,t)))))}}function mYe(r,n){var t=jYe(r),e=wJe(CH(n,eJ)),a=BYe(r);return function(r,n,u){return a(r,n,e(r,n,hWe(S4n,0,n,t(r,n,u))))}}function dYe(r,n,t,e){var a=RJe(r,n),u=a[2],f=a[1],i=mYe(r,t),c=PL(e,u),v=pYe(r,t);return function(r,n,t){return v(r,n,GL(f,r,n,_We(c,i,r,n,t)))}}function _Ye(r,n,t){var e=RJe(r,V4n),a=e[2],u=e[1],f=RJe(r,n),i=f[2],c=f[1],v=jYe(r),o=FJe(eJ),A=BYe(r),s=PL(t,i),b=BYe(r),l=jYe(r),B=FJe(eJ),j=BYe(r),k=uJe(kYe(r),dWe),p=_Je(3),m=DJe(4,eJ),d=BYe(r);return function(r,n,t){return GL(u,r,n,d(r,n,m(r,n,GL(a,r,n,p(r,n,k(r,n,j(r,n,GL(a,r,n,B(r,n,hWe(z4n,0,n,l(r,n,b(r,n,GL(c,r,n,GL(s,r,n,A(r,n,GL(a,r,n,o(r,n,hWe(L4n,0,n,v(r,n,t)))))))))))))))))))}}function hYe(r,n,t){var e=_Ye(r,n,t),a=DJe(4,eJ),u=DJe(0,lC(7,0,0));return function(r,n,t){return u(r,n,_We(a,e,r,n,t))}}function xYe(r){var n=[11,[0,wve,zXe(r,H4n)]];return function(r,t,e){return hWe(n,0,t,e)}}function yYe(r){var n=[12,[0,wve,zXe(r,C4n)]];return function(r,t,e){return hWe(n,0,t,e)}}function wYe(r,n,t,e){var a=mYe(r,MH(t,$4n)),u=yYe(r),f=xYe(r),i=AJe(r,O4n),c=_Je(0),v=BYe(r),o=xYe(r),A=PL(e,0),s=yYe(r),b=BYe(r),l=xYe(r),B=pYe(r,MH(t,Q4n));return function(r,n,t){return B(r,n,l(r,n,hWe(R4n,0,n,b(r,n,s(r,n,GL(A,r,n,o(r,n,v(r,n,c(r,n,i(r,n,f(r,n,hWe(K4n,0,n,_We(u,a,r,n,t)))))))))))))}}function gYe(r,n){var t=[13,[0,1,3,CH(MH(n,G4n),eJ),0]],e=xYe(r);return function(r,n,a){return e(r,n,hWe(t,0,n,a))}}function qYe(r,n){var t=[13,[0,1,3,CH(MH(n,P4n),eJ),0]],e=xYe(r);return function(r,n,a){return e(r,n,hWe(U4n,0,n,hWe(t,0,n,a)))}}function IYe(r,n){var t=CH(MH(n,F4n),eJ);return nYe(1,r,$I+RH(TM,n),M4n,0,function(r,n){var e=[14,[0,1,3,t,0]],a=xYe(r);return function(r,t,u){return a(r,t,GL(n,r,t,hWe(e,0,t,u)))}})}function DYe(r){return tJe(r)(E4n,D4n)}function EYe(r){return tJe(r)(g4n,w4n)}function NYe(r){return r?_4n:h4n}function TYe(r){return wJe(NYe(r))}function FYe(r){return gJe(KH(NYe(r)))}var MYe=FJe(uXe),PYe=hJe(0),UYe=_Je(1),GYe=wJe(qct);function $Ye(r,n,t,e){var a=iJe(r,n,e,t),u=DJe(7,d4n);return function(r,n,t){return _We(u,a,r,n,t)}}function KYe(r,n,t,e){var a=iJe(r,n,e,t),u=DJe(7,p4n);return function(r,n,t){return hWe(m4n,0,n,_We(u,a,r,n,t))}}function OYe(r){if(Fce[1])switch(r){case 14:return 21;case 2:case 7:return 62;case 6:case 11:return 60;case 4:case 9:return 16;case 3:case 8:return 8;case 5:case 10:case 13:return 32;default:throw kQ([0,YL,ict],1)}switch(r){case 14:return 21;case 2:case 7:case 6:case 11:return 63;case 4:case 9:return 16;case 3:case 8:return 8;case 5:case 10:case 13:return 32;default:throw kQ([0,YL,cct],1)}}function RYe(r){return OYe(r)-1|0}function QYe(r,n){switch(r){case 5:case 6:var t=WH(j4n,OYe(r)),e=iV(k4n,n);return e?cV(n,t):e;case 2:case 7:case 10:case 11:var a=RYe(r),u=iV(OH(WH(l4n,a)),n),f=WH(B4n,a);return u?cV(n,f):u;default:throw kQ([0,YL,b4n],1)}}function CYe(r,n){if(12>r)switch(r){case 0:case 1:case 3:case 4:case 8:case 9:break;default:var t=WH(n,64-OYe(r)|0);return ZH(fXe(r),t)}throw kQ([0,YL,s4n],1)}function HYe(r,n,t,e,a){switch(n){case 6:var u=iJe(r,t,e,a),f=nYe(1,r,GWe(n,i4n),f4n,u4n,function(r,t){var e=hJe(0),a=DJe(EJe,$H(OYe(n)));return function(r,n,u){return GL(t,r,n,a(r,n,e(r,n,u)))}});return function(r,n,t){return _We(f,u,r,n,t)};case 2:case 7:case 11:var i=iJe(r,t,e,a),c=nYe(1,r,GWe(n,A4n),o4n,v4n,function(r,t){var e=hJe(0),a=DJe(EJe,$H(RYe(n))),u=DJe(NJe,$H(64-RYe(n)|0));return function(r,n,f){return GL(t,r,n,GL(t,r,n,u(r,n,hWe(a4n,0,n,a(r,n,e(r,n,f))))))}});return function(r,n,t){return _We(c,i,r,n,t)};default:throw kQ([0,YL,c4n],1)}}function VYe(r,n){var t=$H(OYe(n)),e=MJe(fXe(n)),a=DJe(TJe,YH(e4n,t));return function(r,n,t){return _We(a,e,r,n,t)}}function LYe(r,n,t){var e=t-2|0;if(11>=e>>>0)switch(e){case 10:break;case 1:case 2:case 3:case 4:case 11:var a=DJe(EJe,YH(t4n,$H(OYe(t))));return function(r,n,t){return a(r,n,t)};default:var u=DJe(NJe,YH(n4n,$H(OYe(t))));return function(r,n,t){return u(r,n,t)}}throw kQ([0,YL,r4n],1)}function zYe(r,n){return KV(fXe(n),Y6n)?DJe(7,nV(YH(WH(fz,64-OYe(n)|0),fz),az)):dWe}function SYe(r){if("number"==typeof r)switch(r){case 0:return q6n;case 1:return I6n;case 2:return D6n;case 3:return E6n;case 4:return N6n;case 5:return T6n;case 6:return F6n;case 7:return M6n;case 8:return P6n;case 9:return U6n;case 10:return G6n;case 11:return $6n;case 12:return K6n;case 13:return O6n;default:return R6n}switch(r[0]){case 0:switch(r[1]){case 0:return Q6n;case 1:return C6n;case 2:return H6n;default:return V6n}case 1:switch(r[1]){case 0:return L6n;case 1:return z6n;default:return S6n}default:switch(r[1]){case 0:return Z6n;case 1:return W6n;case 2:return X6n;default:return J6n}}}var ZYe=wJe(fJ);function WYe(r){var n=_Je(1);return function(r,t,e){return _We(ZYe,n,r,t,e)}}function XYe(r,n,t){if(!DH(n,x6n))throw kQ([0,YL,y6n],1);var e=KH(SYe(t));return rYe(1,r,UL(R3(w6n),KH(n),e),g6n,function(r){var e=RJe(r,h6n),a=e[2],u=e[1],f=sYe(vJ),i=sYe(cJ),c=wJe(SYe(t)),v=function(r,n){var t=tJe(r)(k5n,j5n),e=wJe(n);return function(r,n,a){return _We(e,t,r,n,a)}}(r,n);return function(r,n,t){return v(r,n,GL(u,r,n,GL(a,r,n,c(r,n,i(r,n,GL(a,r,n,GL(a,r,n,_We(f,a,r,n,t))))))))}})}function JYe(r){var n=AYe(cJ),t=AYe(vJ);return function(r,e,a){return _We(t,n,r,e,a)}}function YYe(r,n){var t=AYe(n);return function(r,n,e){return t(r,n,e)}}function r0e(r,n){var t=sYe(n);return function(r,n,e){return t(r,n,e)}}function n0e(r,n,t,e){var a=RJe(r,_6n),u=a[2];var f=a[1],i=function e(a){if(!a)return t;var f=a[1],i=f[2],c=f[1],v=iJe(r,n,i,e(a[2])),o=GJe(SYe(c));return function(r,n,t){return GL(u,r,n,_We(o,v,r,n,t))}}(e),c=JYe();return function(r,n,t){return c(r,n,_We(f,i,r,n,t))}}function t0e(r){return tJe(r)(d6n,m6n)}function e0e(r){var n=RJe(r,b6n),t=n[2],e=n[1],a=RJe(r,l6n),u=a[2],f=aXe[4],i=a[1],c=tJe(r)(j6n,B6n),v=uJe(function(r,n,e){return GL(u,r,n,_We(t,c,r,n,e))},function(r,n,e){return GL(u,r,n,_We(t,f,r,n,e))}),o=tJe(r)(p6n,k6n);return function(r,n,t){return GL(e,r,n,GL(i,r,n,o(r,n,hWe(aJ,0,n,v(r,n,t)))))}}function a0e(r,n,t){var e=MH(dve(LY(t)),iJ),a=RJe(r,s6n),u=a[2],f=a[1],i=t0e(r),c=yWe(function(r,n){var t=sYe(MH(dve(r),iJ));return function(r,e,a){return GL(u,r,e,_We(n,t,r,e,a))}},t),v=XYe(r,e,n);return function(r,n,t){return v(r,n,GL(f,r,n,GL(c,r,n,_We(u,i,r,n,t))))}}function u0e(r,n,t){return[1,jJe(n,r,t)]}function f0e(r,n){return 0===n[0]?wJe(n[1]):lYe(r,n[1])}function i0e(r,n){return f0e(r,u0e(2172,r,n))}function c0e(r){return a0e(r,1,[0,qJe,0])}function v0e(r){var n=YYe(0,iJ),t=AYe(vJ);return function(r,e,a){return _We(t,n,r,e,a)}}function o0e(r){var n=RJe(r,A6n),t=n[2],e=n[1],a=r0e(0,iJ),u=AYe(vJ);return function(r,n,f){return GL(e,r,n,u(r,n,_We(t,a,r,n,f)))}}function A0e(r){return jJe(r,2204,c0e)}function s0e(r,n){return a0e(r,3,[0,n,0])}function b0e(r,n){var t=Ume(n);r:{if("number"==typeof t){if(0!==t)break r}else switch(t[0]){case 2:if(t[1])break r;break;case 1:case 6:break;default:break r}return 0}return 1}function l0e(r,n,t){if(b0e(0,n))return t;var e=nYe(1,r,o6n,v6n,c6n,function(r,n){var t=s0e(r,n),e=n0e(r,a6n,n,[0,[0,3,s0e(r,n)],0]),a=iJe(r,u6n,function(r,t,a){return _We(n,e,r,t,a)},t),u=WYe(),f=iJe(r,f6n,n,function(r,t,e){return GL(n,r,t,_We(u,a,r,t,e))}),i=GJe(YX),c=$Ye(r,i6n,n,function(r,t,e){return GL(n,r,t,_We(i,f,r,t,e))});return function(r,t,e){return _We(n,c,r,t,e)}});return function(r,n,a){return _We(t,e,r,n,a)}}function B0e(r,n){var t=AYe(vJ);return function(r,e,a){return _We(n,t,r,e,a)}}function j0e(r,n){return b0e(0,n)?dWe:nYe(1,r,e6n,t6n,n6n,function(r,n){var t=function(){var r=YYe(0,iJ),n=AYe(vJ);return function(t,e,a){return _We(n,r,t,e,a)}}(),e=n0e(r,J3n,n,[0,[0,3,function(r,e,a){return _We(n,t,r,e,a)}],0]),a=iJe(r,Y3n,n,function(r,t,a){return _We(n,e,r,t,a)}),u=GJe(YX),f=$Ye(r,r6n,n,function(r,t,e){return GL(n,r,t,_We(u,a,r,t,e))});return function(r,t,e){return _We(n,f,r,t,e)}})}function k0e(r){var n=YYe(0,iJ),t=AYe(vJ);return function(r,e,a){return _We(t,n,r,e,a)}}var p0e=lC(3,0,0);function m0e(r){return function(n){return RXe(r,n)}}function d0e(r,n,t){return a0e(r,4,[0,wJe(m0e(r)(n)),[0,t,0]])}function _0e(r){var n=YYe(0,p0e),t=AYe(vJ);return function(r,e,a){return _We(t,n,r,e,a)}}function h0e(r,n){var t=GJe(m0e(r)(n)),e=YYe(0,iJ),a=AYe(vJ);return function(r,n,u){return _We(a,e,r,n,t(r,n,u))}}var x0e=lC(4,0,0);function y0e(r,n,t){var e=LJe(qoe(t,1)),a=[0,[0,1,qoe(n,1)],e],u=rJe(r)(a),f=ZJe(r,qoe(t,1)),i=YYe(0,iJ),c=[7,[0,wve,0],[0,wve,u]],v=AYe(vJ);return function(r,n,t){return v(r,n,i(r,n,hWe(c,0,n,GL(f,r,n,t))))}}function w0e(r,n){if(6===n)return O3n;if(11===n)return K3n;throw kQ([0,YL,$3n],1)}function g0e(r,n,t){var e=RJe(r,U3n),a=e[2],u=e[1],f=t0e(r),i=r0e(0,iJ),c=XYe(r,G3n,w0e(0,n));return function(r,n,e){return c(r,n,GL(u,r,n,GL(a,r,n,GL(t,r,n,i(r,n,_We(a,f,r,n,e))))))}}function q0e(r,n){return nYe(1,r,GWe(n,P3n),M3n,F3n,function(r,t){var e=g0e(r,n,t),a=VYe(0,n),u=HYe(r,n,T3n,function(r,n,e){return _We(t,a,r,n,e)},e);return function(r,n,e){return _We(t,u,r,n,e)}})}function I0e(r,n){return nYe(1,r,GWe(n,N3n),E3n,D3n,function(r,t){var e=YYe(0,iJ);w0e(0,n);var a=AYe(vJ),u=LYe(0,0,n),f=$Ye(r,I3n,function(r,n,e){return _We(t,u,r,n,e)},function(r,n,u){return GL(t,r,n,a(r,n,_We(dWe,e,r,n,u)))});return function(r,n,e){return _We(t,f,r,n,e)}})}function D0e(r){return function(r,n,t){return hWe(q3n,0,n,t)}}function E0e(r){return function(r,n,t){return hWe(g3n,0,n,t)}}function N0e(r){return tYe(1,r,d3n,m3n,p3n,function(r,n,t){var e=oJe(r,k3n),a=_Je(3);return function(r,u,f){return GL(n,r,u,GL(t,r,u,a(r,u,e(r,u,GL(n,r,u,GL(t,r,u,hWe(j3n,0,u,f)))))))}})}function T0e(r){return tYe(0,r,GWe(6,b3n),B3n,l3n,function(r,n,t){var e=PWe(n),a=PWe(t),u=RJe(r,i3n),f=u[2],i=u[1],c=DJe(EJe,v3n),v=uJe(dWe,function(r,t,e){return GL(f,r,t,GL(n,r,t,hWe(A3n,0,t,GL(i,r,t,e))))}),o=hJe(0),A=[3,[0,wve,1]],s=DJe(TJe,s3n),b=uJe(dWe,function(r,u,f){return GL(t,r,u,s(r,u,o(r,u,v(r,u,GL(n,r,u,GL(n,r,u,hWe(o3n,0,u,e(r,u,GL(t,r,u,c(r,u,a(r,u,hWe(A,0,u,f))))))))))))}),l=_Je(7);function B(r,n,e){return GL(t,r,n,IJe(r,n,_We(l,b,r,n,e)))}var j=fJe(1,f,function(r,t,e){return EWe(B,r,t,GL(f,r,t,GL(n,r,t,hWe(c3n,0,t,e))))}),k=hJe(0);return function(r,n,e){return IJe(r,n,GL(i,r,n,GL(t,r,n,_We(k,j,r,n,e))))}})}function F0e(r){var n=RJe(r,Y2n),t=n[2],e=n[1];return function(r,n,a){return GL(e,r,n,IJe(r,n,GL(t,r,n,hWe(n3n,0,n,hWe(r3n,0,n,a)))))}}function M0e(r){switch(r){case 14:return 21;case 3:case 8:return 8;case 4:case 9:return 16;case 5:case 10:return 32;case 6:case 11:return 64;default:throw kQ([0,YL,X2n],1)}}function P0e(r){switch(r){case 6:case 11:return W2n;case 3:case 4:case 5:case 8:case 9:case 10:case 14:return fXe(r);default:throw kQ([0,YL,Z2n],1)}}function U0e(r){return $H(64-M0e(r)|0)}function G0e(r,n){return WH(n,KH(U0e(r)))}function $0e(r){return YH(G0e(r,L2n),fz)}function K0e(r){return nV($0e(r),az)}function O0e(r){if(6!==r&&11!==r){switch(r){case 3:case 8:var n=WX;break;case 4:case 9:n=XX;break;case 5:case 10:n=JX;break;default:n=KWe(S2n,She(r),z2n)}return DJe(7,n)}return dWe}function R0e(r){switch(r){case 14:case 3:case 4:case 5:return DJe(EJe,U0e(r));case 6:case 11:return dWe;case 8:case 9:case 10:return DJe(NJe,U0e(r));default:throw kQ([0,YL,V2n],1)}}function Q0e(r){return 6!==r&&11!==r?DJe(TJe,U0e(r)):dWe}function C0e(r){return 6!==r&&11!==r?DJe(7,K0e(r)):dWe}function H0e(r){return 6!==r&&11!==r?MJe($0e(r)):dWe}function V0e(r){var n=Q0e(r),t=H0e(r);return function(r,e,a){return t(r,e,hWe(H2n,0,e,n(r,e,a)))}}function L0e(r){var n=Q0e(r),t=DJe(14,U0e(r)),e=H0e(r);return function(r,a,u){return e(r,a,t(r,a,hWe(C2n,0,a,n(r,a,u))))}}function z0e(r,n){var t=RJe(r,O2n),e=t[2],a=t[1],u=Q0e(n),f=O0e(n),i=R0e(n),c=R0e(n);return function(r,n,t){return c(r,n,GL(a,r,n,i(r,n,IJe(r,n,GL(e,r,n,f(r,n,hWe(Q2n,0,n,hWe(R2n,0,n,u(r,n,t)))))))))}}function S0e(r){return R0e(14)}var Z0e=Q0e(14);function W0e(r){return function(r,n,t){return hWe(y3n,0,n,t)}}function X0e(r){return function(r,n,t){return hWe(h3n,0,n,t)}}function J0e(r){return nYe(0,r,K2n,$2n,G2n,function(r,n){var t=oJe(r,N2n),e=_Je(5),a=wJe(F2n),u=_Je(3),f=wJe(P2n),i=_Je(9),c=wJe(U2n);return function(r,v,o){return GL(n,r,v,c(r,v,i(r,v,GL(n,r,v,f(r,v,u(r,v,hWe(M2n,0,v,GL(n,r,v,a(r,v,e(r,v,hWe(T2n,0,v,t(r,v,_We(n,Z0e,r,v,o)))))))))))))}})}function Y0e(r,n){var t=WH(n,KH(U0e(r)));return ZH(P0e(r),t)}function r1e(r,n){return tYe(0,r,GWe(n,q2n),D2n,I2n,function(r,t,e){var a=PWe(t),u=PWe(e),f=RJe(r,d2n),i=f[2],c=f[1],v=DJe(EJe,h2n),o=uJe(dWe,function(r,n,e){return GL(i,r,n,GL(t,r,n,hWe(y2n,0,n,GL(c,r,n,e))))}),A=hJe(0),s=[3,[0,wve,1]],b=DJe(TJe,w2n),l=uJe(dWe,function(r,n,f){return GL(e,r,n,b(r,n,A(r,n,o(r,n,GL(t,r,n,GL(t,r,n,hWe(x2n,0,n,a(r,n,GL(e,r,n,v(r,n,u(r,n,hWe(s,0,n,f))))))))))))}),B=_Je(7);function j(r,n,t){return GL(e,r,n,IJe(r,n,_We(B,l,r,n,t)))}var k=fJe(1,i,function(r,n,e){return EWe(j,r,n,GL(i,r,n,GL(t,r,n,hWe(_2n,0,n,e))))}),p=hJe(0),m=wJe(G0e(n,g2n)),d=DJe(EJe,U0e(n)),_=DJe(EJe,U0e(n));return function(r,n,f){return GL(e,r,n,_(r,n,u(r,n,GL(t,r,n,d(r,n,a(r,n,m(r,n,GL(c,r,n,GL(e,r,n,_We(p,k,r,n,f))))))))))}})}function n1e(r,n){var t=n-3|0;if(11>=t>>>0)switch(t){case 3:case 4:case 8:case 9:case 10:break;default:return MJe(P0e(n))}throw kQ([0,YL,a2n],1)}function t1e(r,n){var t=n-3|0;if(11>=t>>>0)switch(t){case 3:case 4:case 8:case 9:case 10:break;default:var e=zYe(0,n);return function(r,n,t){return e(r,n,t)}}throw kQ([0,YL,e2n],1)}function e1e(r){var n=[16,[0,wve,[3,r]]];return function(r,t,e){return hWe(n,0,t,e)}}function a1e(r){return nYe(1,r,t2n,n2n,r2n,function(r,n){var t=RJe(r,J1n),e=t[2],a=t[1],u=t0e(r),f=function(r,n){var t=[14,[0,3,3,MH(CH(eJ,n),aXe[2]),0]];return function(r,n,e){return hWe(t,0,n,e)}}(0,iJ),i=XYe(r,lC(4,0,0),Y1n);return function(r,t,c){return i(r,t,GL(a,r,t,GL(e,r,t,GL(n,r,t,f(r,t,_We(e,u,r,t,c))))))}})}function u1e(r){var n=[13,[0,3,3,MH(lC(16,0,0),aXe[2]),0]],t=AYe(vJ);return function(r,e,a){return t(r,e,dWe(0,0,hWe(n,0,e,a)))}}function f1e(r){return function(n,t,e){return GL(r,n,t,hWe(X1n,0,t,e))}}function i1e(r){var n=[13,[0,1,3,eJ,0]];return function(t,e,a){return GL(r,t,e,hWe(n,0,e,a))}}function c1e(r,n){return function(t,e,a){return GL(r,t,e,GL(n,t,e,hWe(W1n,0,e,a)))}}function v1e(r,n){var t=[14,[0,1,3,eJ,0]];return function(e,a,u){return GL(r,e,a,GL(n,e,a,hWe(t,0,a,u)))}}function o1e(r,n){var t=f1e(r);return v1e(r,function(r,e,a){return t(r,e,GL(n,r,e,hWe(Z1n,0,e,a)))})}function A1e(r,n){var t=f1e(r);return c1e(r,function(r,e,a){return t(r,e,GL(n,r,e,hWe(S1n,0,e,a)))})}function s1e(r,n){var t=tJe(r)(z1n,L1n);return function(r,e,a){return _We(n,t,r,e,a)}}function b1e(r,n){var t=tJe(r)(V1n,H1n);return function(r,e,a){return _We(n,t,r,e,a)}}function l1e(r,n,t){var e=AJe(r,Q1n),a=_Je(7),u=f1e(n),f=i1e(n);return function(r,n,i){return GL(t,r,n,f(r,n,u(r,n,hWe(C1n,0,n,_We(a,e,r,n,i)))))}}function B1e(r,n){var t=_Je(0),e=f1e(n),a=i1e(n);return function(r,n,u){return a(r,n,_We(e,t,r,n,u))}}function j1e(r,n){var t=A1e(n,IJe),e=f1e(n),a=l1e(r,n,IJe);return function(r,n,u){return a(r,n,e(r,n,hWe(K1n,0,n,hWe($1n,0,n,t(r,n,u)))))}}function k1e(r,n){var t=A1e(n,wJe(E1n)),e=f1e(n),a=l1e(r,n,wJe(F1n));return function(r,n,u){return a(r,n,e(r,n,hWe(T1n,0,n,hWe(N1n,0,n,t(r,n,u)))))}}function p1e(r,n){var t=A1e(n,wJe(d1n)),e=f1e(n),a=l1e(r,n,wJe(h1n));return function(r,n,u){return a(r,n,e(r,n,hWe(_1n,0,n,t(r,n,u))))}}function m1e(r,n,t){var e=A1e(n,t),a=bYe(),u=f1e(n),f=l1e(r,n,t);return function(r,n,i){return f(r,n,u(r,n,GL(t,r,n,_We(a,e,r,n,i))))}}function d1e(r){return function(n,t,e){return GL(r,n,t,hWe(v1n,0,t,e))}}function _1e(r){var n=DJe(TJe,c1n);return function(t,e,a){return GL(r,t,e,n(t,e,GL(r,t,e,hWe(i1n,0,e,hWe(f1n,0,e,a)))))}}function h1e(r,n){var t=DJe(4,a1n),e=PL(r,n),a=wJe(lC(70,0,0)),u=fJe(1,function(r,n,u){return a(r,n,GL(e,r,n,hWe(u1n,0,n,t(r,n,u))))},IJe);return function(r,t,e){return GL(n,r,t,_We(GYe,UYe,r,t,u(r,t,e)))}}function x1e(r,n,t){var e=h1e(d1e,n),a=tJe(r)(e1n,t1n);return function(r,u,f){return GL(n,r,u,GL(t,r,u,_We(a,e,r,u,f)))}}function y1e(r){return tJe(r)(aYn,eYn)}function w1e(r){return tJe(r)(tYn,nYn)}function g1e(r){return tJe(r)(rYn,YJn)}function q1e(r){return tJe(r)(_Jn,dJn)}function I1e(r){return tJe(r)(mJn,pJn)}function D1e(r){return tJe(r)(kJn,jJn)}function E1e(r){var n=nYe(1,r,NJn,EJn,DJn,function(r,n){var t=oJe(r,gJn),e=tJe(r)(IJn,qJn);return function(r,a,u){return GL(n,r,a,e(r,a,hWe(aJ,0,a,_We(t,n,r,a,u))))}}),t=tJe(r)(AJn,oJn);return function(r,e,a){return _We(t,n,r,e,a)}}function N1e(r){return tJe(r)(uJn,aJn)}function T1e(r){return tJe(r)(eJn,tJn)}function F1e(r){var n=tJe(r)(YXn,JXn);return function(r,t,e){return n(r,t,hWe(aJ,0,t,e))}}function M1e(r,n){var t=_Je(7),e=wJe($H(n)),a=tJe(r)(RXn,OXn);return function(r,n,u){return a(r,n,_We(e,t,r,n,u))}}function P1e(r){return M1e(r,OYe(7))}function U1e(r){return zYe(0,7)}function G1e(r){return MJe(fXe(7))}function $1e(r,n,t){var e=GJe(L0n),a=DJe(7,z0n);return function(r,u,f){return GL(n,r,u,GL(t,r,u,hWe(S0n,0,u,_We(a,e,r,u,f))))}}function K1e(r){var n=$H(OYe(7)),t=g1e(r),e=DJe(NJe,YH(V0n,n));return function(r,n,a){return _We(e,t,r,n,a)}}function O1e(r,n,t,e){return tYe(0,e,r,H0n,C0n,function(r,e,a){var u=RJe(r,K0n),f=u[2],i=u[1],c=VYe(0,7),v=y1e(r),o=fJe(1,function(r,n,t){return GL(f,r,n,_We(v,c,r,n,t))},f),A=P1e(r),s=PL(t,r),b=K1e(r),l=$Ye(r,O0n,function(r,n,t){return _We(a,b,r,n,t)},a),B=K1e(r),j=$Ye(r,R0n,function(r,n,t){return _We(e,B,r,n,t)},e),k=K1e(r),p=G1e(),m=function(r,n,t,e){var a=$H(OYe(7)),u=HYe(r,7,n,t,e),f=DJe(NJe,YH(Z0n,a));return function(r,n,t){return _We(f,u,r,n,t)}}(r,Q0n,function(r,n,t){return _We(f,p,r,n,t)},function(r,n,t){return _We(f,k,r,n,t)}),d=PL(n,r),_=U1e(),h=U1e(),x=fJe(1,function(r,n,t){return GL(e,r,n,h(r,n,GL(a,r,n,_(r,n,GL(d,r,n,GL(i,r,n,_We(f,m,r,n,t)))))))},function(r,n,t){return GL(e,r,n,j(r,n,GL(a,r,n,l(r,n,GL(s,r,n,GL(i,r,n,GL(f,r,n,_We(A,o,r,n,t))))))))}),y=$1e(0,e,a);return function(r,n,t){return _We(y,x,r,n,t)}})}function R1e(r){return O1e(HX,D0e,q1e,r)}function Q1e(r,n){var t=DJe(TJe,$H(64-OYe(7)|0)),e=PL(r,n);return function(r,n,a){return _We(e,t,r,n,a)}}function C1e(r){function n(r,n,t){return hWe(w3n,0,n,t)}var t=DJe(NJe,$H(64-OYe(7)|0));return function(r,e,a){return _We(t,n,r,e,a)}}function H1e(r){return O1e(VX,C1e,I1e,r)}function V1e(r){return tYe(0,r,$0n,G0n,U0n,function(r,n,t){var e=RJe(r,T0n),a=e[2],u=e[1],f=VYe(0,7),i=y1e(r),c=fJe(1,function(r,n,t){return GL(a,r,n,_We(i,f,r,n,t))},a),v=P1e(r),o=N1e(r),A=K1e(r),s=$Ye(r,F0n,function(r,n,e){return _We(t,A,r,n,e)},t),b=K1e(r),l=$Ye(r,M0n,function(r,t,e){return _We(n,b,r,t,e)},n),B=PWe(n),j=PWe(t),k=VYe(0,7),p=y1e(r),m=fJe(1,function(r,n,t){return GL(a,r,n,_We(p,k,r,n,t))},a),d=P1e(r),_=N1e(r),h=g1e(r),x=g1e(r),y=LYe(0,0,7),w=LYe(0,0,7),g=KYe(r,P0n,function(r,e,f){return GL(n,r,e,w(r,e,B(r,e,GL(t,r,e,y(r,e,j(r,e,GL(n,r,e,x(r,e,GL(t,r,e,h(r,e,_(r,e,GL(u,r,e,GL(a,r,e,_We(d,m,r,e,f))))))))))))))},function(r,e,f){return GL(n,r,e,l(r,e,GL(t,r,e,s(r,e,o(r,e,GL(u,r,e,GL(a,r,e,_We(v,c,r,e,f))))))))});return function(r,e,a){return GL(n,r,e,_We(t,g,r,e,a))}})}function L1e(r){return tYe(0,r,N0n,E0n,D0n,function(r,n,t){var e=PWe(n),a=T1e(r),u=T1e(r),f=w1e(r),i=VYe(0,7),c=fJe(1,function(r,e,a){return GL(n,r,e,GL(t,r,e,hWe(x0n,0,e,i(r,e,a))))},function(r,e,a){return GL(n,r,e,f(r,e,_We(t,u,r,e,a)))}),v=UJe(7,w0n),o=GJe(g0n),A=DJe(7,q0n),s=LYe(0,0,7),b=$Ye(r,I0n,function(r,a,u){return GL(n,r,a,s(r,a,e(r,a,GL(n,r,a,A(r,a,o(r,a,GL(t,r,a,v(r,a,hWe(y0n,0,a,c(r,a,u))))))))))},function(r,e,u){return GL(n,r,e,_We(t,a,r,e,u))}),l=PWe(t),B=R0e(5);return function(r,e,a){return GL(t,r,e,B(r,e,l(r,e,_We(n,b,r,e,a))))}})}function z1e(r){return tYe(0,r,h0n,_0n,d0n,function(r,n,t){var e=RJe(r,j0n),a=e[2],u=e[1],f=VYe(0,7),i=y1e(r),c=fJe(1,function(r,n,t){return GL(a,r,n,_We(i,f,r,n,t))},a),v=P1e(r),o=tJe(r)(nJn,rJn),A=G1e(),s=UJe(7,$H(OYe(7))),b=DJe(7,WH(iz,64-OYe(7)|0)),l=U1e(),B=$Ye(r,m0n,function(r,e,a){return GL(n,r,e,l(r,e,GL(t,r,e,hWe(p0n,0,e,b(r,e,GL(t,r,e,s(r,e,hWe(k0n,0,e,A(r,e,a)))))))))},function(r,e,f){return GL(n,r,e,GL(t,r,e,o(r,e,GL(u,r,e,GL(a,r,e,_We(v,c,r,e,f))))))}),j=PWe(t),k=R0e(5);return function(r,e,a){return GL(t,r,e,k(r,e,j(r,e,_We(n,B,r,e,a))))}})}function S1e(r,n){if(Txe(n)&&QYe(7,Gxe(n)))return[0,CYe(7,Gxe(n))];var t=0<=n[1]?0:1,e=mxe(n),a=Oxe(2,60);var u=function r(n){if(0===n[1])return 0;var t=Dxe(n,a),e=t[2],u=r(t[1]);return rY([0,[1,Gxe(e)],0],u)}(e),f=LY(u),i=rY([0,[0,f],[0,[0,f],[0,[0,t],TJn]]],u);return u0e(3712,r,function(r){return a0e(r,6,YY(wJe,function(r){return function r(n,t){if(t>tH(n))throw kQ([0,YL,fct],1);return tH(n)===t?0:rY([0,tC(n,t),0],r(n,t+8|0))}(N0(DXe(r)),0)}(i)))})}function Z1e(r){return tYe(0,r,r0n,YYn,JYn,function(r,n,t){var e=F1e(r),a=K1e(r),u=$Ye(r,ZYn,function(r,n,e){return _We(t,a,r,n,e)},t),f=K1e(r),i=$Ye(r,WYn,function(r,t,e){return _We(n,f,r,t,e)},n),c=KYe(r,XYn,TYe(0),function(r,a,f){return GL(n,r,a,i(r,a,GL(t,r,a,_We(u,e,r,a,f))))}),v=fJe(1,TYe(1),function(r,e,a){return GL(n,r,e,_We(t,c,r,e,a))}),o=_Je(0);return function(r,e,a){return GL(n,r,e,GL(t,r,e,_We(o,v,r,e,a)))}})}function W1e(r,n){function t(r){return function(r,n){switch(n){case 0:var t=tJe(r)(CXn,QXn);return function(r,n,e){return t(r,n,hWe(aJ,0,n,e))};case 1:var e=tJe(r)(VXn,HXn);return function(r,n,t){return e(r,n,hWe(aJ,0,n,t))};case 2:var a=tJe(r)(zXn,LXn);return function(r,n,t){return a(r,n,hWe(aJ,0,n,t))};default:var u=tJe(r)(ZXn,SXn);return function(r,n,t){return u(r,n,hWe(aJ,0,n,t))}}}(r,n)}switch(n){case 0:var e=o1n;break;case 1:e=A1n;break;case 2:e=s1n;break;default:e=b1n}return tYe(0,r,e,u0n,a0n,function(r,e,a){var u=t(r),f=K1e(r),i=$Ye(r,n0n,function(r,n,t){return _We(a,f,r,n,t)},a),c=K1e(r),v=$Ye(r,t0n,function(r,n,t){return _We(e,c,r,n,t)},e),o=function(){switch(n){case 0:var r=2;break;case 1:r=6;break;case 2:r=8;break;default:r=4}return _Je(r)}(),A=U1e(),s=U1e(),b=KYe(r,e0n,function(r,n,t){return GL(e,r,n,s(r,n,GL(a,r,n,_We(A,o,r,n,t))))},function(r,n,t){return GL(e,r,n,v(r,n,GL(a,r,n,_We(i,u,r,n,t))))});return function(r,n,t){return GL(e,r,n,_We(a,b,r,n,t))}})}function X1e(r,n,t,e){var a=RJe(e,SYn),u=a[2],f=a[1],i=PL(t,e),c=PL(n,e),v=$Ye(e,[0,r,0],function(r,n,t){return _We(u,c,r,n,t)},function(r,n,t){return _We(u,i,r,n,t)});return function(r,n,t){return GL(f,r,n,_We(u,v,r,n,t))}}function J1e(r,n){return X1e(1,function(r){r:{if(17<=n){if(32!==n){if(64!==n)break r;var t=TYe(1);return function(r,n,e){return hWe(2,0,n,t(r,n,e))}}}else if(8!==n&&16>n)break r;var e=hJe(0),a=DJe(7,WH(iz,n+(64-OYe(7)|0)|0));return function(r,n,t){return _We(a,e,r,n,t)}}throw kQ([0,YL,zYn],1)},function(r){return function(r,n){var t=_Je(7),e=wJe($H(n)),a=tJe(r)(KXn,$Xn);return function(r,n,u){return a(r,n,_We(e,t,r,n,u))}}(r,n)},r)}function Y1e(r,n){var t=RJe(r,LYn),e=t[2],a=t[1];return X1e(1,function(r){r:{if(17<=n){if(32!==n){if(64!==n)break r;var t=TYe(1);return function(r,n,e){return hWe(2,0,n,t(r,n,e))}}}else if(8!==n&&16>n)break r;var u=hJe(0),f=DJe(7,WH(iz,(n-1|0)+(64-OYe(7)|0)|0)),i=DJe(NJe,VYn);return function(r,n,t){return GL(a,r,n,GL(e,r,n,GL(e,r,n,i(r,n,hWe(HYn,0,n,f(r,n,u(r,n,t)))))))}}throw kQ([0,YL,CYn],1)},function(r){return M1e(r,n)},r)}function r2e(r,n,t){var e=RJe(r,EYn),a=e[2],u=e[1],f=RJe(r,"eom"),i=f[2],c=f[1];if(t)var v=tJe(r)(PYn,MYn),o=function(r,t,e){return _We(n,v,r,t,e)};else{var A=tJe(r)(GYn,UYn);o=function(r,t,e){return _We(n,A,r,t,e)}}if(t)var s=tJe(r)(MJn,FJn),b=function(r,t,e){return _We(n,s,r,t,e)};else{var l=tJe(r)(UJn,PJn);b=function(r,t,e){return _We(n,l,r,t,e)}}var B=fJe(1,b,function(r,n,t){return GL(a,r,n,GL(i,r,n,hWe(NYn,0,n,o(r,n,t))))}),j=hJe(0),k=DJe(7,TYn),p=PJe(FYn),m=f1e(n),d=fJe(1,wJe(y1n),function(r,n,t){return m(r,n,hWe(x1n,0,n,t))}),_=DJe(0,w1n),h=DJe(EJe,O1n),x=DJe(7,R1n),y=f1e(n);return function(r,n,t){return function(r,n,t){return y(r,n,x(r,n,_We(_,h,r,n,d(r,n,t))))}(r,n,GL(u,r,n,GL(a,r,n,p(r,n,k(r,n,GL(c,r,n,GL(i,r,n,_We(j,B,r,n,t))))))))}}function n2e(r){var n=RJe(r,hYn),t=n[2],e=n[1],a=g1e(r),u=VYe(0,7),f=HYe(r,7,xYn,function(r,n,e){return _We(t,u,r,n,e)},function(r,n,e){return _We(t,a,r,n,e)});return function(r,n,a){return GL(e,r,n,_We(t,f,r,n,a))}}function t2e(r){var n=RJe(r,dYn),t=n[2],e=n[1],a=w1e(r),u=VYe(0,7),f=$H(RYe(7)),i=iJe(r,_Yn,function(r,n,e){return _We(t,u,r,n,e)},function(r,n,e){return _We(t,a,r,n,e)}),c=hJe(0),v=DJe(EJe,f);function o(r,n,t){return v(r,n,_We(c,i,r,n,t))}return function(r,n,a){return GL(e,r,n,_We(t,o,r,n,a))}}function e2e(r){var n=RJe(r,pYn),t=n[2],e=n[1],a=y1e(r),u=LYe(0,0,7),f=$Ye(r,mYn,function(r,n,e){return _We(t,u,r,n,e)},function(r,n,e){return _We(t,a,r,n,e)});return function(r,n,a){return GL(e,r,n,_We(t,f,r,n,a))}}function a2e(r){var n=RJe(r,jYn),t=n[2],e=n[1],a=tJe(r)(iYn,fYn);function u(r,n,t){return a(r,n,hWe(uYn,0,n,t))}var f=LYe(0,0,7),i=$Ye(r,kYn,function(r,n,e){return _We(t,f,r,n,e)},function(r,n,e){return _We(t,u,r,n,e)});return function(r,n,a){return GL(e,r,n,_We(t,i,r,n,a))}}function u2e(r){var n=RJe(r,lYn),t=n[2],e=n[1],a=tJe(r)(AYn,oYn),u=LYe(0,0,7),f=$Ye(r,BYn,function(r,n,e){return _We(t,u,r,n,e)},function(r,n,e){return _We(t,a,r,n,e)});return function(r,n,a){return GL(e,r,n,_We(t,f,r,n,a))}}function f2e(r,n){var t=RJe(r,sYn),e=t[2],a=t[1],u=tJe(r)(vYn,cYn);function f(r,t,e){return _We(n,u,r,t,e)}var i=LYe(0,0,7),c=$Ye(r,bYn,function(r,n,t){return _We(e,i,r,n,t)},function(r,n,t){return _We(e,f,r,n,t)});return function(r,n,t){return GL(a,r,n,_We(e,c,r,n,t))}}var i2e=lC(2,0,0);function c2e(r){var n=YYe(0,i2e),t=AYe(vJ);return function(r,e,a){return _We(t,n,r,e,a)}}function v2e(r,n,t){var e=t0e(r),a=tJe(r)(MXn,FXn),u=wJe(SYe([2,n]));return function(r,n,f){return u(r,n,GL(t,r,n,_We(a,e,r,n,f)))}}function o2e(r){var n=DJe(0,MH(aXe[2],lC(24,0,0))),t=AYe(vJ);return function(r,e,a){return _We(t,n,r,e,a)}}function A2e(r,n,t,e){var a=RJe(r,NXn),u=a[2],f=a[1],i=gJe(0),c=o2e(),v=[15,[0,wve,t]],o=v2e(r,n,e);return function(r,n,t){return o(r,n,GL(f,r,n,GL(u,r,n,c(r,n,i(r,n,GL(e,r,n,hWe(TXn,0,n,hWe(v,0,n,GL(u,r,n,t)))))))))}}function s2e(r,n,t){return u0e(3841,r,function(r){var e=DXe([0,[3,t],0]),a=UXe[29].call(null,e,r[11][1]),u=$H(HH(t));if(a)var f=a[1];else{var i=sJe(r,e),c=UXe[4].call(null,e,i,r[11][1]);r[11][1]=c;f=i}return A2e(r,n,f,wJe(u))})}function b2e(r,n,t){if(2<=n)var e=s2e(r,n,t);else e=BJe(r,[7,0===n?[7,t]:[6,t]],function(e){return s2e(r,n,t)});return f0e(r,e)}function l2e(r){return nYe(1,r,EXn,DXn,IXn,function(r,n){var t=c2e(),e=o2e();return function(r,a,u){return GL(n,r,a,e(r,a,_We(n,t,r,a,u)))}})}function B2e(r,n,t){var e=l2e(r),a=b2e(r,n,t);return function(r,n,t){return _We(a,e,r,n,t)}}function j2e(r,n,t,e){var a=RJe(r,gXn),u=a[2],f=a[1],i=gJe(0),c=o2e(),v=[15,[0,wve,t]],o=v2e(r,n,e);return function(r,n,t){return o(r,n,GL(f,r,n,GL(u,r,n,c(r,n,i(r,n,GL(e,r,n,hWe(qXn,0,n,hWe(v,0,n,GL(u,r,n,t)))))))))}}function k2e(r,n,t){var e=RH(TM,SYe([2,t])),a=RH(TM,SYe([2,n]));return nYe(1,r,UL(R3(mXn),a,e),_Xn,dXn,function(r,n){var e=RJe(r,pXn),a=e[2],u=e[1],f=bYe(),i=l2e(r),c=o2e(),v=c2e(),o=v2e(r,t,function(r,t,e){return _We(n,v,r,t,e)});return function(r,t,e){return o(r,t,GL(u,r,t,GL(a,r,t,c(r,t,GL(n,r,t,dWe(0,0,i(r,t,_We(f,a,r,t,e))))))))}})}function p2e(r,n,t,e,a){var u=RJe(r,jXn),f=u[2],i=u[1],c=RJe(r,kXn),v=c[2],o=c[1],A=PL(e,r),s=PL(a,r),b=o2e(),l=v2e(r,n,f),B=PL(t,r);return function(r,n,t){return GL(B,r,n,GL(i,r,n,l(r,n,GL(o,r,n,GL(v,r,n,b(r,n,GL(s,r,n,GL(f,r,n,_We(A,v,r,n,t)))))))))}}function m2e(r,n){var t=wJe(QWn),e=wJe(CWn);if(n)switch(n[1]){case 0:var a=HWn;break;case 1:a=VWn;break;case 2:a=LWn;break;case 3:a=zWn;break;case 4:a=SWn;break;default:a=ZWn}else a=WWn;return tYe(0,r,a,JWn,XWn,function(r,a,u){if(n)switch(n[1]){case 1:var f=m2e(r,TWn);return function(r,n,t){return GL(a,r,n,GL(u,r,n,_We(f,PYe,r,n,t)))};case 2:var i=m2e(r,FWn);return function(r,n,t){return GL(a,r,n,GL(u,r,n,_We(i,PYe,r,n,t)))};case 3:var c=m2e(r,MWn);return function(r,n,t){return GL(a,r,n,GL(u,r,n,_We(c,PYe,r,n,t)))}}var v=PWe(a),o=PWe(u),A=RJe(r,PWn),s=A[2],b=A[1],l=RJe(r,UWn),B=l[2],j=l[1],k=RJe(r,GWn),p=k[1],m=k[2],d=RJe(r,$Wn),_=d[2],h=d[1],x=RJe(r,KWn),y=x[2],w=x[1];if(n)switch(n[1]){case 0:var g=TYe(1);break;case 4:var q=_Je(7);g=function(r,n,t){return GL(s,r,n,_We(B,q,r,n,t))};break;case 5:var I=_Je(9);g=function(r,n,t){return GL(s,r,n,_We(B,I,r,n,t))};break;default:throw kQ([0,YL,OWn],1)}else{var D=fJe(1,IJe,e),E=_Je(5),N=fJe(1,t,function(r,n,t){return GL(s,r,n,GL(B,r,n,_We(E,D,r,n,t)))}),T=_Je(3);g=function(r,n,t){return GL(s,r,n,GL(B,r,n,_We(T,N,r,n,t)))}}var F=HJe(r,function(r){if(n)switch(n[1]){case 0:var e=TYe(0);break;case 4:var f=_Je(7);e=function(r,n,t){return GL(_,r,n,_We(y,f,r,n,t))};break;case 5:var i=_Je(9);e=function(r,n,t){return GL(_,r,n,_We(y,i,r,n,t))};break;default:throw kQ([0,YL,qWn],1)}else{var c=fJe(1,t,IJe),v=_Je(3);e=function(r,n,t){return GL(_,r,n,GL(y,r,n,_We(v,c,r,n,t)))}}var o=uJe(dWe,function(r,n,t){return e(r,n,hWe(4,0,n,t))}),A=_Je(0),s=o2e(),b=o2e();return function(n,t,e){return GL(a,n,t,b(n,t,GL(r,n,t,hWe(NWn,0,t,hWe(EWn,0,t,GL(h,n,t,GL(u,n,t,s(n,t,GL(r,n,t,hWe(DWn,0,t,hWe(IWn,0,t,GL(w,n,t,GL(_,n,t,GL(y,n,t,_We(A,o,n,t,e)))))))))))))))}});if(dH(n,RWn))var M=TYe(0),P=uJe(dWe,function(r,n,t){return M(r,n,hWe(4,0,n,t))}),U=_Je(0),G=function(r,n,t){return GL(s,r,n,GL(B,r,n,U(r,n,P(r,n,_We(s,p,r,n,t)))))};else{var $=uJe(function(r,n,t){return _We(s,p,r,n,t)},function(r,n,t){return _We(B,p,r,n,t)}),K=_Je(7);G=function(r,n,t){return GL(s,r,n,GL(B,r,n,_We(K,$,r,n,t)))}}var O=c2e(),R=c2e(),Q=AYe(vJ),C=AYe(vJ);return function(r,n,t){return GL(a,r,n,C(r,n,v(r,n,GL(u,r,n,Q(r,n,o(r,n,GL(a,r,n,R(r,n,GL(b,r,n,GL(u,r,n,O(r,n,GL(j,r,n,G(r,n,GL(m,r,n,_We(F,g,r,n,t)))))))))))))))}})}function d2e(r){var n=RJe(r,YWn),t=n[2],e=n[1],a=o2e(),u=v2e(r,0,t);return function(r,n,t){return GL(e,r,n,_We(u,a,r,n,t))}}var _2e=lC(3,0,0),h2e=lC(2,0,0),x2e=aBe([0,r1]);function y2e(r,n){for(var t=n0(function(r,n){return[0,n[2],$H(r)]},d0(KC,YY(function(n){var t=n[1];return[0,RXe(r,t),t]},n))),e=t,a=x2e[1];e;){var u=e[1];e=e[2],a=x2e[4].call(null,u[1],u[2],a)}var f=$H(x2e[19].call(null,a)),i=b2e(r,0,DXe([0,qXe(d0(function(r,n){return IC(r,n)},YY(function(n){return RXe(r,n[1])},n))),0]));return function(r){var t=OJe(r,1,"obj"),e=t[2],u=t[1],c=t0e(r),v=xWe(function(n){var t=n[2],u=r0e(0,MH(_2e,x2e[28].call(null,n[1],a))),f=PL(t,r);return function(r,n,t){return GL(e,r,n,_We(f,u,r,n,t))}},n),o=r0e(0,h2e),A=XYe(r,MH(_2e,f),0);return function(r,n,t){return A(r,n,GL(u,r,n,GL(e,r,n,i(r,n,o(r,n,GL(v,r,n,_We(e,c,r,n,t)))))))}}}function w2e(r,n){return y2e(r,YY(function(r){var n=r[2];return[0,r[1],function(r){return PL(n,0)}]},n))(r)}function g2e(r,n){return tYe(0,r,PL(R3(hWn),n),yWn,xWn,function(r,t,e){var a=PWe(t),u=RJe(r,_Wn),f=u[2],i=u[1],c=DJe(0,eJ),v=[3,[0,wve,1]],o=DJe(0,eJ),A=uJe(function(r,n,e){return GL(t,r,n,hWe(4,0,n,e))},function(r,n,e){return GL(f,r,n,o(r,n,GL(i,r,n,GL(t,r,n,c(r,n,a(r,n,hWe(v,0,n,e)))))))}),s=_Je(0),b=aXe[3],l=DJe(0,CH(eJ,MH(_2e,$H(n)))),B=DJe(0,CH(eJ,$H(n))),j=o2e(),k=YYe(0,h2e);function p(r,n,t){return GL(f,r,n,b(r,n,GL(e,r,n,_We(s,A,r,n,t))))}var m=AYe(vJ);return function(r,n,e){return GL(t,r,n,m(r,n,a(r,n,GL(t,r,n,k(r,n,j(r,n,B(r,n,GL(i,r,n,GL(t,r,n,l(r,n,a(r,n,EWe(p,r,n,hWe(0,0,n,e)))))))))))))}})}function q2e(r,n,t){var e=zme(dde(t,cde([0,t,0],n)[2])),a=YY(function(r){return r[2][1]},d0(function(r,n){var t=n[1],e=r[1];return cV(e,Tit)&&IH(t,Fit)?1:IH(e,Mit)&&cV(t,Pit)?-1:IC(e,t)},YY(function(n){return[0,RXe(r,n[1]),n]},cde([0,t,0],n)[2]))),u=Foe(t)(a);if(!u)throw kQ([0,YL,kWn],1);var f=u[1],i=e?tYe(1,r,PL(R3(pWn),f),dWn,mWn,function(r,n,t){var e=DJe(0,lC(16,0,0)),a=AYe(vJ),u=aXe[5],i=g2e(r,f);return function(r,f,c){return GL(n,r,f,GL(t,r,f,i(r,f,u(r,f,_We(a,e,r,f,c)))))}}):g2e(r,f),c=wJe(RXe(r,t));return function(r,n,t){return _We(c,i,r,n,t)}}function I2e(r,n){var t=aXe[5],e=g2e(r,0),a=wJe(RXe(r,n));return function(r,n,u){return _We(a,e,r,n,t(r,n,u))}}function D2e(r,n,t){var e=aXe[5],a=q2e(r,n,t);return function(r,n,t){return _We(a,e,r,n,t)}}function E2e(r){return tJe(r)(sWn,AWn)}function N2e(r){return tJe(r)(cWn,iWn)}function T2e(r){return mJe(r),tJe(r)(aWn,eWn)}function F2e(r){return mJe(r),tJe(r)(tWn,nWn)}function M2e(r){return mJe(r),tJe(r)(rWn,YZn)}function P2e(r){return mJe(r),tJe(r)(JZn,XZn)}function U2e(r){return mJe(r),tJe(r)(WZn,ZZn)}function G2e(r){return mJe(r),tJe(r)(SZn,zZn)}function $2e(r){return mJe(r),tJe(r)(LZn,VZn)}function K2e(r){return mJe(r),tJe(r)(HZn,CZn)}function O2e(r){return mJe(r),tJe(r)(QZn,RZn)}function R2e(r){return mJe(r),tJe(r)(OZn,KZn)}function Q2e(r){return mJe(r),tJe(r)($Zn,GZn)}function C2e(r){return mJe(r),tJe(r)(UZn,PZn)}function H2e(r){return mJe(r),tJe(r)(MZn,FZn)}function V2e(r){return mJe(r),tJe(r)(TZn,NZn)}function L2e(r){return tJe(r)(gZn,wZn)}function z2e(r){return tJe(r)(lZn,bZn)}function S2e(r,n){switch(n){case 1:throw kQ([0,YL,zSn],1);case 0:var t=LSn;break;case 2:t=SSn;break;case 3:t=ZSn;break;case 4:t=WSn;break;default:t=XSn}return tYe(1,r,t,YSn,JSn,function(r,t,e){switch(n){case 0:var a=_Je(0);break;case 1:throw kQ([0,YL,QSn],1);case 2:a=_Je(2);break;case 3:a=_Je(4);break;case 4:a=_Je(6);break;default:a=_Je(8)}var u=wJe(CSn),f=tJe(r)(VSn,HSn),i=AYe(vJ),c=AYe(vJ);return function(r,n,v){return GL(t,r,n,c(r,n,GL(e,r,n,i(r,n,f(r,n,_We(u,a,r,n,v))))))}})}var Z2e=lC(3,0,0),W2e=lC(2,0,0);function X2e(r){var n=YYe(0,W2e),t=AYe(vJ);return function(r,e,a){return _We(t,n,r,e,a)}}function J2e(r,n){var t=YYe(0,MH(n,Z2e)),e=AYe(vJ);return function(r,n,a){return _We(e,t,r,n,a)}}function Y2e(r){return tYe(1,r,RSn,OSn,KSn,function(r,n,t){var e=AYe(vJ),a=FJe(oJ),u=DJe(0,Z2e);return function(r,f,i){return GL(t,r,f,u(r,f,a(r,f,GL(n,r,f,e(r,f,hWe($Sn,0,f,i))))))}})}function r3e(r,n,t){return a0e(r,[0,n],rY([0,wJe(dve(LY(t))),0],t))}function n3e(r,n,t){return u0e(4524,r,function(r){return r3e(r,n,YY(function(n){return f0e(r,n)},t))})}function t3e(r,n,t){var e=tJe(r)(qSn,gSn),a=wJe(SYe([0,n]));return function(r,n,u){return a(r,n,_We(t,e,r,n,u))}}function e3e(r,n,t){var e=RJe(r,hSn),a=e[2],u=e[1],f=RJe(r,xSn),i=f[2],c=f[1],v=PWe(n),o=DJe(0,oJ),A=PL(t,i),s=_Je(3),b=CJe(0,function(r,n,t){return GL(i,r,n,_We(a,s,r,n,t))},function(r,n,t){return GL(A,r,n,GL(i,r,n,_We(o,c,r,n,t)))}),l=FJe(oJ),B=YYe(0,W2e),j=FJe(oJ),k=wJe(Z2e),p=AYe(vJ);return function(r,t,e){return GL(n,r,t,p(r,t,v(r,t,k(r,t,j(r,t,GL(n,r,t,hWe(wSn,0,t,GL(c,r,t,GL(n,r,t,B(r,t,l(r,t,GL(i,r,t,hWe(ySn,0,t,_We(u,b,r,t,e))))))))))))))}}function a3e(r,n){var t=RJe(r,jSn),e=t[2],a=t[1],u=RJe(r,kSn),f=u[2],i=u[1],c=RJe(r,pSn),v=c[2],o=c[1],A=t0e(r),s=e3e(r,f,function(n){var t=DJe(0,BSn),a=aXe[6],u=y0e(r,1,1),f=t2e(r),i=AYe(vJ);return function(r,c,A){return GL(n,r,c,GL(e,r,c,i(r,c,GL(v,r,c,f(r,c,GL(e,r,c,u(r,c,a(r,c,GL(v,r,c,_We(t,o,r,c,A))))))))))}}),b=wJe(mSn),l=t3e(r,n,f),B=u2e(r);return function(r,n,t){return GL(a,r,n,B(r,n,GL(i,r,n,l(r,n,GL(i,r,n,b(r,n,GL(o,r,n,s(r,n,_We(f,A,r,n,t)))))))))}}function u3e(r,n){if(1===n)var t=sSn;else{if(n)throw kQ([0,YL,oSn],1);t=ASn}return nYe(0,r,t,lSn,bSn,function(r,t){var e=RJe(r,cSn),a=e[2],u=e[1],f=RJe(r,vSn),i=f[2],c=f[1],v=t0e(r),o=HJe(r,function(n){var e=aXe[6],a=n1e(0,3),u=Q0e(3),f=o2e(),c=Y2e(r);return function(r,v,o){return GL(i,r,v,GL(n,r,v,c(r,v,GL(t,r,v,f(r,v,GL(n,r,v,hWe(iSn,0,v,hWe(fSn,0,v,u(r,v,_We(a,e,r,v,o))))))))))}}),A=t3e(r,n,a),s=c2e();return function(r,n,e){return GL(t,r,n,s(r,n,GL(u,r,n,A(r,n,GL(c,r,n,GL(a,r,n,o(r,n,_We(i,v,r,n,e))))))))}})}function f3e(r,n){var t=YYe(0,MH(Z2e,n)),e=AYe(vJ);return function(r,n,a){return e(r,n,_We(dWe,t,r,n,a))}}function i3e(r,n){if(0===n)return wJe(gXe);for(var t=0,e=n,a=PL(R3(Xzn),n);0!==e;)t=[0,[0,PL(R3(Wzn),e-1|0),1],t],e=e-1|0;return YJe(1,r,a,t,Jzn,function(r,t){for(var e=0,a=n;;){if(0===a)return r3e(r,2,e);e=[0,ZY(t,a-1|0),e],a=a-1|0}})}function c3e(r){switch(r){case 0:return gzn;case 1:return qzn;case 2:return Izn;case 3:return Dzn;case 4:return Ezn;case 5:return Nzn;case 6:return Tzn;case 7:return Fzn;case 8:return Mzn;case 9:return Pzn;case 10:return Uzn;default:return Gzn}}function v3e(r){var n=aXe[3],t=wJe(lC(Ld,0,0));return function(r,e,a){return _We(t,n,r,e,a)}}function o3e(r,n){var t=aXe[4],e=wJe(c3e(n)),a=wJe(lC(Ld,0,0));return function(r,n,u){return a(r,n,_We(e,t,r,n,u))}}function A3e(r){var n=GJe(c3e(11)),t=v3e(),e=GJe(c3e(10)),a=v3e();return function(r,u,f){return a(r,u,e(r,u,t(r,u,n(r,u,hWe(lzn,0,u,f)))))}}function s3e(r,n){return rYe(0,r,Nl+RH(TM,c3e(n)),0,function(r){var t=o3e(0,n);switch(n){case 0:var e=0;break;case 1:e=Bzn;break;case 2:e=jzn;break;case 3:e=kzn;break;case 4:e=pzn;break;case 5:e=mzn;break;case 6:e=dzn;break;case 7:e=_zn;break;case 8:e=hzn;break;case 9:e=xzn;break;case 10:e=yzn;break;default:e=wzn}var a=function t(e){if(e){var a=e[1],u=[3,[0,wve,1]],f=t(e[2]),i=uJe(function(r,n,t){return hWe(u,0,n,t)},dWe),c=GJe(c3e(a)),v=v3e();return function(r,n,t){return v(r,n,c(r,n,_We(i,f,r,n,t)))}}switch(n){case 0:var o=$zn;break;case 1:o=Kzn;break;case 2:o=Ozn;break;case 3:o=Rzn;break;case 4:o=Qzn;break;case 5:o=Czn;break;case 6:o=Hzn;break;case 7:o=Vzn;break;case 8:o=Lzn;break;case 9:o=zzn;break;case 10:o="InStabilization";break;default:o="InDestabilization"}var A=vJe(r,mO+o),s=uJe(vJe(r,"Messages are blocked during stabilization"),A),b=A3e();return function(r,n,t){return _We(b,s,r,n,t)}}(e);return function(r,n,e){return DWe(EX,a,r,n,t(r,n,e))}})}function b3e(r,n){var t=GJe(c3e(n)),e=v3e();return function(r,n,a){return _We(e,t,r,n,a)}}function l3e(r){var n=tJe(r)(B5n,l5n);return function(r,t,e){return n(r,t,hWe(b5n,0,t,e))}}function B3e(r){var n=[11,[0,wve,zXe(r,izn)]];return function(r,t,e){return hWe(n,0,t,e)}}function j3e(r){var n=[12,[0,wve,zXe(r,fzn)]];return function(r,t,e){return hWe(n,0,t,e)}}function k3e(r){var n=[12,[0,wve,zXe(r,azn)]];return function(r,t,e){return hWe(n,0,t,e)}}function p3e(r){return qoe(r,1)}function m3e(r,n){return tJe(r)(_Hn,n)}function d3e(r,n){return 1>>0?vJe(n,PL(R3(tHn),r)):m3e(n,r)}function _3e(r){var n=d3e(YCn,r);return function(r,t,e){return GL(n,r,t,hWe(JCn,0,t,e))}}function h3e(r){var n=[6,[0,wve,YXe(r,SCn)]];return function(r,t,e){return hWe(n,0,t,e)}}function x3e(r){var n=r[1];if(!n){return function(r,n,t){return hWe(0,0,n,t)}}if(3<=n){var t=h3e(r);return function(r,n,e){return t(r,n,hWe(0,0,n,e))}}var e=tYe(0,r,"ic_trap",HCn,0,function(r,n,t){var e=m3e(r,CCn);return function(r,a,u){return GL(n,r,a,_We(t,e,r,a,u))}});return function(r,n,t){return e(r,n,hWe(0,0,n,t))}}function y3e(r){var n=[6,[0,wve,YXe(r,mCn)]],t=s3e(r,8),e=uJe(function(r,e,a){return t(r,e,hWe(n,0,e,a))},dWe),a=[11,[0,wve,zXe(r,ezn)]],u=[6,[0,wve,YXe(r,AJ)]];return function(r,n,t){return hWe(u,0,n,hWe(a,0,n,e(r,n,t)))}}function w3e(r){var n=[6,[0,wve,YXe(r,sJ)]];return function(r,t,e){return hWe(n,0,t,e)}}function g3e(r){return 1>>0?vJe(r,aCn):rYe(1,r,fCn,uCn,function(r){return p2e(r,3,function(r){return m3e(r,nCn)},function(r){return m3e(r,tCn)},function(r){return wJe(eCn)})})}function q3e(r){return 1>>0?vJe(r,BQn):p2e(r,0,function(r){return m3e(r,sQn)},function(r){return m3e(r,bQn)},function(r){return wJe(lQn)})}function I3e(r){return rYe(1,r,rQn,YRn,function(r){return p2e(r,1,function(r){return m3e(r,WRn)},function(r){return m3e(r,XRn)},function(r){return wJe(JRn)})})}function D3e(r){return tYe(1,r,zRn,LRn,0,function(r,n,t){var e=m3e(r,HRn),a=m3e(r,VRn);return function(r,u,f){return GL(n,r,u,GL(t,r,u,_We(a,e,r,u,f)))}})}function E3e(r){var n=D3e(r),t=B2e(r,0,CRn);return function(r,e,a){return _We(t,n,r,e,a)}}function N3e(r,n){var t=tYe(1,r,QRn,RRn,ORn,function(r,n,t){return r3e(r,3,[0,n,[0,t,0]])}),e=b2e(r,1,n);return function(r,n,a){return dWe(0,0,_We(e,t,r,n,a))}}function T3e(r){var n=RJe(r,FRn),t=n[2],e=n[1],a=RJe(r,MRn),u=a[2],f=a[1],i=wJe(PRn),c=hYe(r,URn,function(n){var e=hYe(r,TRn,function(e){var a=GJe(qRn),f=l3e(r),i=m3e(r,IRn),c=wJe(DRn),v=m3e(r,ERn),o=wJe(NRn);return function(r,A,s){return GL(e,r,A,o(r,A,GL(u,r,A,v(r,A,GL(n,r,A,c(r,A,GL(t,r,A,i(r,A,GL(n,r,A,GL(e,r,A,GL(t,r,A,_We(f,a,r,A,s))))))))))))}});return function(r,n,t){return _We(u,e,r,n,t)}}),v=fJe(1,function(r,n,e){return _We(t,c,r,n,e)},i),o=_Je(0),A=m3e(r,GRn),s=m3e(r,$Rn);return function(r,n,a){return s(r,n,GL(e,r,n,A(r,n,GL(f,r,n,GL(t,r,n,GL(u,r,n,_We(o,v,r,n,a)))))))}}function F3e(r){var n=AJe(r,mRn),t=RJe(r,xRn),e=t[2],a=t[1],u=hYe(r,yRn,function(n){var t=_3e(r),a=m3e(r,_Rn),u=wJe(hRn);return function(r,f,i){return GL(n,r,f,u(r,f,GL(e,r,f,a(r,f,GL(n,r,f,_We(e,t,r,f,i))))))}}),f=m3e(r,wRn),i=T3e(r);return function(r,t,c){return i(r,t,f(r,t,GL(a,r,t,_We(e,u,r,t,hWe(dRn,0,t,n(r,t,c))))))}}function M3e(r){return nYe(1,r,YOn,JOn,XOn,function(r,n){var t=RJe(r,LOn),e=t[2],a=t[1],u=O1e(HX,D0e,q1e,r),f=L1e(r),i=Q0e(5),c=wJe(zOn),v=t2e(r),o=fJe(1,e,function(r,t,a){return GL(e,r,t,GL(n,r,t,hWe(SOn,0,t,v(r,t,c(r,t,i(r,t,_We(f,u,r,t,a)))))))}),A=hJe(0),s=t2e(r);return function(r,t,e){return GL(n,r,t,hWe(WOn,0,t,s(r,t,GL(a,r,t,GL(n,r,t,hWe(ZOn,0,t,_We(A,o,r,t,e)))))))}})}function P3e(r){var n=RJe(r,COn),t=n[2],e=n[1],a=e2e(r),u=e2e(r),f=z1e(r),i=Q0e(5),c=wJe(HOn),v=AJe(r,VOn),o=W1e(r,0),A=f0e(r,S1e(r,Oxe(2,hh)));return function(r,n,s){return GL(e,r,n,GL(t,r,n,A(r,n,o(r,n,v(r,n,GL(t,r,n,c(r,n,i(r,n,f(r,n,u(r,n,_We(t,a,r,n,s)))))))))))}}function U3e(r){return mJe(r),1>>0?nYe(0,r,kOn,jOn,BOn,function(r,n){var t=RJe(r,sOn),e=t[2],a=t[1],u=fJe(1,wJe(bOn),e),f=_Je(0),i=wJe(lOn);return function(r,t,c){return GL(n,r,t,hWe(10,0,t,GL(a,r,t,GL(e,r,t,i(r,t,_We(f,u,r,t,c))))))}}):m3e(r,pOn)}function G3e(r){return mJe(r),1>>0?rYe(0,r,oOn,vOn,function(r){return function(r,n,t){return hWe(9,0,n,t)}}):m3e(r,AOn)}function $3e(r){return mJe(r),1>>0?eYe(0,r,iOn,fOn,0,function(r,n,t,e){return function(r,a,u){return GL(n,r,a,GL(t,r,a,GL(e,r,a,hWe(11,0,a,u))))}}):m3e(r,cOn)}function K3e(r){return mJe(r),1>>0?eYe(0,r,aOn,eOn,0,function(r,n,t,e){return function(r,a,u){return GL(n,r,a,GL(t,r,a,GL(e,r,a,hWe(12,0,a,u))))}}):m3e(r,uOn)}var O3e=lC(3,0,0),R3e=lC(4,0,0),Q3e=lC(5,0,0),C3e=lC(6,0,0);function H3e(r){var n=[11,[0,wve,zXe(r,YKn)]];return function(r,t,e){return hWe(n,0,t,e)}}function V3e(r){var n=[12,[0,wve,zXe(r,JKn)]];return function(r,t,e){return hWe(n,0,t,e)}}function L3e(r){var n=[11,[0,wve,zXe(r,XKn)]];return function(r,t,e){return hWe(n,0,t,e)}}function z3e(r){var n=[12,[0,wve,zXe(r,WKn)]];return function(r,t,e){return hWe(n,0,t,e)}}function S3e(r){var n=oJe(r,VKn),t=_Je(9),e=wJe(lC(16,0,0)),a=H3e(r);return function(r,u,f){return a(r,u,e(r,u,hWe(LKn,0,u,_We(t,n,r,u,f))))}}function Z3e(r){return tYe(0,r,HKn,CKn,0,function(r,n,t){var e=oJe(r,$Kn),a=_Je(5),u=wJe(lC(16,0,0)),f=H3e(r),i=oJe(r,RKn),c=_Je(3),v=wJe(iz),o=S3e(r),A=uJe(function(r,t,e){return _We(n,o,r,t,e)},function(r,o,A){return v(r,o,GL(t,r,o,hWe(QKn,0,o,GL(n,r,o,c(r,o,i(r,o,GL(n,r,o,GL(t,r,o,hWe(OKn,0,o,f(r,o,u(r,o,hWe(KKn,0,o,_We(a,e,r,o,A)))))))))))))}),s=_Je(7);return function(r,n,e){return GL(t,r,n,IJe(r,n,_We(s,A,r,n,e)))}})}function W3e(r,n,t,e){if(!n)return dWe;if(dH(e,GKn))var a=S3e(r);else{var u=Z3e(r),f=wJe(e);a=function(r,n,t){return _We(f,u,r,n,t)}}return function(r,n,e){return _We(t,a,r,n,e)}}function X3e(r,n,t,e,a,u){var f=[0,e,0],i=n?PKn:"";return nYe(1,r,UL(R3(UKn),i,t),MKn,f,function(r,t){var e=dYe(r,FKn,UH(MH(a,TKn),NKn),function(n){var e=$3e(r),f=wJe(a);return function(r,a,i){return GL(n,r,a,GL(t,r,a,f(r,a,e(r,a,_We(n,u,r,a,i)))))}}),f=W3e(r,n,t,a);return function(r,n,t){return _We(f,e,r,n,t)}})}function J3e(r,n,t,e,a,u){var f=[0,IKn,[0,qKn,e]],i=n?DKn:"";return tYe(1,r,UL(R3(EKn),i,t),f,0,function(r,t,e){var f=dYe(r,gKn,UH(MH(a,wKn),yKn),function(n){var f=K3e(r),i=wJe(a);return function(r,a,c){return GL(n,r,a,GL(e,r,a,GL(u,r,a,GL(t,r,a,GL(n,r,a,_We(i,f,r,a,c))))))}}),i=W3e(r,n,t,a);return function(r,n,t){return _We(i,f,r,n,t)}})}function Y3e(r,n,t){return hWe(Ict,0,n,t)}function r6e(r,n,t){return hWe(Dct,0,n,t)}function n6e(r){return J3e(r,0,xKn,0,hKn,r6e)}function t6e(r){return X3e(r,0,mKn,0,pKn,Y3e)}function e6e(r){return nYe(0,r,BKn,lKn,bKn,function(r,n){var t=RJe(r,vKn),e=t[2],a=t[1],u=RJe(r,oKn),f=u[2],i=u[1],c=U3e(r),v=fJe(1,function(r,n,t){return _We(f,c,r,n,t)},e),o=_Je(4),A=wJe(AKn),s=G3e(r);return function(r,t,u){return s(r,t,GL(a,r,t,GL(n,r,t,GL(e,r,t,hWe(sKn,0,t,GL(i,r,t,GL(f,r,t,A(r,t,_We(o,v,r,t,u)))))))))}})}function a6e(r){return nYe(0,r,rKn,Y$n,J$n,function(r,n){var t=RJe(r,V$n),e=t[2],a=t[1],u=RJe(r,L$n),f=u[2],i=u[1],c=RJe(r,z$n),v=c[2],o=c[1],A=V3e(r),s=fJe(1,v,function(r,n,t){return GL(f,r,n,_We(A,e,r,n,t))}),b=_Je(2),l=wJe(S$n),B=e6e(r),j=wJe(W$n),k=fJe(1,function(r,n,t){return j(r,n,hWe(4,0,n,t))},function(r,t,a){return GL(e,r,t,GL(n,r,t,hWe(Z$n,0,t,GL(i,r,t,GL(f,r,t,B(r,t,GL(o,r,t,GL(v,r,t,l(r,t,_We(b,s,r,t,a))))))))))}),p=_Je(5),m=wJe(lC(ni,0,0)),d=H3e(r);return function(r,t,u){return d(r,t,GL(a,r,t,GL(e,r,t,GL(n,r,t,hWe(X$n,0,t,m(r,t,_We(p,k,r,t,u)))))))}})}function u6e(r,n,t,e,a){var u=PL(a,r),f=PL(e,r),i=tJe(r)(v$n,c$n),c=iJe(r,t,function(r,t,e){return i(r,t,_We(n,f,r,t,e))},function(r,t,e){return _We(n,u,r,t,e)}),v=_Je(0),o=wJe(C3e),A=L3e(r);return function(r,n,t){return A(r,n,o(r,n,_We(v,c,r,n,t)))}}function f6e(r){return tJe(r)(pGn,kGn)}function i6e(r){return tJe(r)(jGn,BGn)}function c6e(r){return 1===r?0:[0,r]}function v6e(r){var n=Pme(r);if("number"!=typeof n)switch(n[0]){case 2:var t=n[1];switch(t){case 1:case 2:case 7:case 15:case 16:case 18:return 0;case 12:return 1;case 13:return 2;case 0:case 17:case 19:break;default:return[1,t]}break;case 3:if(1===n[1])return 0;break;case 8:if(n[1])return 0}return KWe(tUn,jLe(n),0)}function o6e(r,n){if("number"==typeof n)switch(n){case 0:return JPn;case 1:return YPn;case 2:return rUn;default:return 0}switch(n[0]){case 0:return qoe(n[1],1);case 1:return nUn;default:return 0}}function A6e(r){if("number"==typeof r)switch(r){case 0:return VPn;case 1:return LPn;case 2:return zPn;default:return SPn}switch(r[0]){case 0:var n=r[1];return PL(R3(ZPn),n);case 1:return GWe(r[1],WPn);default:return XPn}}function s6e(r,n){if(PXe(r,n))return r;r:{n:{t:{if("number"==typeof r){if(3===r)return n}else switch(r[0]){case 0:var t=r[1];if("number"!=typeof n)switch(n[0]){case 0:if(t===n[1])return r;break r;case 2:break n;default:break r}switch(n){case 3:break;case 0:break n;default:break r}break;case 2:if("number"!=typeof n){if(2===n[0])return 0;break t}if(3!==n)break t}if("number"==typeof n&&3<=n)return r}if("number"!=typeof r&&2===r[0])return n}if("number"==typeof n){if(0===n)return 0}else if(2===n[0])return r;if("number"==typeof r&&!r)return 0}var e=A6e(n),a=A6e(r);return UL($3(tY,HPn),a,e),r}function b6e(r,n){r:{if("number"==typeof n){if(3!==n)break r}else switch(n[0]){case 0:return wWe(n[1],function(r){return function(r,n,t){return hWe(2,0,n,t)}});case 1:break r}return dWe}return function(r,n,t){return hWe(2,0,n,t)}}function l6e(r,n){return BJe(r,n,function(t){return function(r,n){if("number"==typeof n)return[0,gXe];switch(n[0]){case 0:var t=xve(bJe(r,PL(n[2],0)));return u0e(2462,r,function(r){var n=[0,wJe(R3n),0];return a0e(r,2,[0,wJe(t),n])});case 1:throw kQ([0,YL,UPn],1);case 2:return u0e(4169,r,y2e(r,YY(function(r){var n=r[2];return[0,r[1],function(r){return f0e(r,n)}]},YY(function(n){return[0,n[1],l6e(r,n[2])]},n[1]))));case 3:return n3e(r,0,YY(function(n){return l6e(r,n)},n[1]));case 4:return n3e(r,2,YY(function(n){return l6e(r,n)},n[1]));case 5:var e=n[1],a=e[1],u=l6e(r,e[2]);return u0e(6621,r,function(r){return d0e(r,a,f0e(r,u))});case 6:var f=l6e(r,n[1]);if(0!==f[0])return u0e(2283,r,function(r){return l0e(r,0,f0e(r,f))});var i=f[1];return dH(i,fJ)?u0e(2280,r,function(r){return s0e(r,ZYe)}):[0,i];default:var c=n[1];if("number"==typeof c)return[0,fJ];switch(c[0]){case 0:return[0,c[1]];case 1:return S1e(r,c[1]);case 2:return[0,NYe(c[1])];case 3:var v=c[2],o=c[1];return QYe(o,v)?[0,CYe(o,v)]:u0e(2507,r,function(r){return g0e(r,o,wJe(v))});case 4:var A=c[1];return u0e(2868,r,function(r){var n=a1e(r),t=e1e(A);return function(r,e,a){return _We(t,n,r,e,a)}});case 5:var s=c[1],b=fXe(13);return[0,ZH(WH($H(uve(s)),32),b)];case 6:return s2e(r,1,c[1]);default:return s2e(r,0,c[1])}}}(r,n)})}function B6e(r,n){return f0e(r,l6e(r,n))}function j6e(r,n,t){if(PXe(n,t))return dWe;if("number"==typeof n)switch(n){case 0:if("number"==typeof t)switch(t){case 1:return u1e();case 2:var e=LYe(0,0,13);return function(r,n,t){return e(r,n,hWe($Pn,0,n,hWe(GPn,0,n,t)))}}else switch(t[0]){case 0:var a=t[1];if(0===a){return function(r,n,t){return hWe(2,0,n,t)}}var u=PL(R3(Szn),a);return nYe(1,r,u,Zzn,qoe(a,1),function(r,n){return wWe(a,function(r){var t=f3e(0,$H(r));return function(r,e,a){return _We(n,t,r,e,a)}})});case 1:var f=t[1];switch(f){case 6:case 11:return I0e(r,f);case 3:case 4:case 5:case 8:case 9:case 10:case 14:return t1e(0,f)}}break;case 1:if("number"==typeof t&&!t)return a1e(r);break;case 2:if("number"==typeof t&&!t){var i=VYe(0,13);return function(r,n,t){return hWe(OPn,0,n,hWe(KPn,0,n,i(r,n,t)))}}break;default:if("number"==typeof t&&3<=t)return dWe;return function(r,n,t){return hWe(0,0,n,t)}}else r:switch(n[0]){case 0:if("number"==typeof t&&!t)return i3e(r,n[1]);break;case 1:var c=n[1];switch(c){case 6:case 11:if("number"==typeof t&&!t)return q0e(r,c);break;case 3:case 4:case 5:case 8:case 9:case 10:case 14:if("number"==typeof t&&!t)return n1e(0,c)}break;default:var v=n[1];if("number"==typeof t)switch(t){case 0:return B6e(r,v);case 3:break r}else switch(t[0]){case 0:if(0===t[1])return dWe;break;case 1:break;default:break r}if("number"!=typeof v)switch(v[0]){case 4:if("number"!=typeof t&&0===t[0]){var o=v[1];if(t[1]===LY(o))return xWe(function(n){return B6e(r,n)},o);throw kQ([0,YL,RPn],1)}break;case 7:var A=v[1];if("number"!=typeof A)switch(A[0]){case 0:if("number"!=typeof t&&1===t[0]){var s=A[1],b=t1e(0,t[1]),l=wJe(s);return function(r,n,t){return _We(l,b,r,n,t)}}break;case 3:if("number"!=typeof t&&1===t[0]){var B=A[2];if(A[1]===t[1])return wJe(B)}break;case 4:if("number"==typeof t&&2>t)return e1e(A[1]);break;case 5:if("number"==typeof t&&2<=t){var j=[16,[0,wve,[2,A[1]]]];return function(r,n,t){return hWe(j,0,n,t)}}}}}var k=A6e(t),p=A6e(n);throw UL($3(tY,QPn),p,k),kQ([0,YL,CPn],1)}function k6e(r){return r[0]<2?0:1}var p6e=aBe([0,r1]),m6e=[0,0,p6e[1],p6e[1]];function d6e(r){var n=r[3];return[0,1,p6e[16].call(null,function(r,n){return k6e(n[1])},r[2]),n]}function _6e(r,n){var t=p6e[29].call(null,n,r[2]);return t?[0,t[1]]:(PL($3(tY,PPn),n),0)}function h6e(r,n){var t=_6e(r,n);return t?[0,t[1][1]]:0}function x6e(r,n,t,e){var a=QXe(r,1);CXe(r,a,t);var u=n[3],f=p6e[4].call(null,t,[0,[1,a],e],n[2]);return[0,[0,n[1],f,u],a]}function y6e(r,n,t,e){var a=r[3],u=p6e[4].call(null,n,[0,[2,t],e],r[2]);return[0,r[1],u,a]}function w6e(r,n,t,e,a,u){var f=n[3],i=p6e[4].call(null,t,[0,[0,e,a],u],n[2]);return[0,n[1],i,f]}function g6e(r,n,t,e,a){if("number"==typeof e)switch(e){case 0:var u=1;break;case 1:u=3;break;case 2:u=2;break;default:u=RWe(ect)}else switch(e[0]){case 0:u=RWe(act);break;case 1:u=1;break;default:u=RWe(uct)}var f=QXe(r,u);return CXe(r,f,t),[0,w6e(0,n,t,e,f,a),f]}function q6e(r,n,t,e){for(var a=n,u=e;;){if(!u)return a;var f=u[2],i=u[1],c=i[2],v=i[1];if(PL(t,v)){var o=QXe(r,1);CXe(r,o,v);var A=a[3],s=p6e[4].call(null,v,[0,[0,0,o],c],a[2]);a=[0,a[1],s,A],u=f}else a=y6e(a,v,A0e(r),c),u=f}}function I6e(r){return r}function D6e(r){for(var n=r,t=0;;){var e=Pme(n);r:{if("number"==typeof e){if(1!==e)break r}else switch(e[0]){case 2:switch(e[1]){case 0:case 1:case 3:case 4:case 8:case 9:case 14:break;default:break r}break;case 6:var a=e[1];if(t)return 1;n=a,t=1;continue;case 7:if(e[1])break r;break;case 10:n=e[1];continue;default:break r}return 0}return 1}}function E6e(r,n,t){var e=_6e(n,t);if(!e)return PL(RWe(TPn),t);var a=e[1],u=a[1];switch(u[0]){case 0:var f=[9,[0,wve,u[2]]];return[0,dWe,u[1],function(r,n,t){return hWe(f,0,n,t)}];case 1:var i=u[1];if(D6e(a[2])){var c=e0e(r),v=DJe(0,lC(16,0,0)),o=DJe(0,aXe[2]),A=[8,[0,wve,i]],s=AYe(vJ);return[0,function(r,n,t){return hWe(A,0,n,s(r,n,_We(o,v,r,n,t)))},0,c]}var b=[8,[0,wve,i]];return[0,function(r,n,t){return hWe(b,0,n,t)},0,o0e(r)];case 2:var l=u[1];if(D6e(a[2])){var B=e0e(r),j=DJe(0,lC(16,0,0)),k=DJe(0,aXe[2]),p=AYe(vJ),m=lYe(r,l);return[0,function(r,n,t){return m(r,n,p(r,n,_We(k,j,r,n,t)))},0,B]}var d=o0e(r);return[0,lYe(r,l),0,d];case 3:return PL(RWe(EPn),t);default:return PL(RWe(NPn),t)}}function N6e(r,n,t){var e=E6e(r,n,t),a=e[3],u=e[1],f=j6e(r,0,e[2]);if(UWe(u))return function(r,n,t){return _We(f,a,r,n,t)};var i=RJe(r,DPn),c=i[2],v=i[1];return function(r,n,t){return GL(v,r,n,GL(u,r,n,GL(c,r,n,_We(f,a,r,n,t))))}}function T6e(r,n,t){var e=h6e(n,t);if(!e)throw kQ([0,YL,IPn],1);var a=e[1];switch(a[0]){case 0:var u=[8,[0,wve,a[2]]];return[0,a[1],function(r,n,t){return hWe(u,0,n,t)}];case 1:var f=a[1],i=v0e(),c=[8,[0,wve,f]];return[0,0,function(r,n,t){return hWe(c,0,n,i(r,n,t))}];case 2:var v=a[1],o=v0e(),A=lYe(r,v);return[0,0,function(r,n,t){return _We(A,o,r,n,t)}];case 3:return[0,[2,a[1]],dWe];default:var s=N3e(r,a[2]),b=g3e(r);return[0,0,function(r,n,t){return _We(b,s,r,n,t)}]}}function F6e(r,n,t){var e=h6e(n,t);if(e){var a=e[1];if(3===a[0]){var u=a[1];if("number"!=typeof u&&0===u[0]){var f=[6,[0,wve,PL(u[2],0)]];return function(r,n,t){return qJe(r,n,hWe(f,0,n,t))}}}}throw kQ([0,YL,yPn],1)}function M6e(r,n){var t=h6e(n,"@dedup");if(t){var e=t[1];if(3===e[0]){var a=e[1];if("number"!=typeof a&&0===a[0])return void(r[28][1]=[0,a[2]])}}throw kQ([0,YL,_Pn],1)}function P6e(r,n){return Hd+r+om+Fhe(n)+f_}function U6e(r){var n=PWe(r);return function(t,e,a){return GL(r,t,e,hWe(pPn,0,e,n(t,e,a)))}}function G6e(r,n,t){var e=PWe(n),a=DJe(0,t);return function(r,t,u){return GL(n,r,t,GL(n,r,t,_We(a,e,r,t,u)))}}function $6e(r,n,t){var e=RJe(r,kPn),a=e[2],u=e[1],f=U6e(n),i=x1e(r,a,n);return function(r,n,e){return GL(t,r,n,GL(u,r,n,_We(i,f,r,n,e)))}}function K6e(r,n,t){var e=U6e(n),a=wJe(lPn);return function(r,u,f){return GL(n,r,u,GL(t,r,u,hWe(jPn,0,u,hWe(BPn,0,u,_We(a,e,r,u,f)))))}}function O6e(r,n,t){var e=U6e(n);return function(r,a,u){return GL(n,r,a,GL(t,r,a,hWe(bPn,0,a,hWe(sPn,0,a,_We(IJe,e,r,a,u)))))}}function R6e(r,n,t){var e=RJe(r,APn),a=e[2],u=e[1],f=U6e(n),i=bYe(),c=o2e(),v=$6e(r,n,a),o=c2e();return function(r,e,A){return GL(t,r,e,o(r,e,GL(u,r,e,v(r,e,GL(n,r,e,GL(t,r,e,c(r,e,GL(a,r,e,i(r,e,_We(a,f,r,e,A))))))))))}}function Q6e(r){var n=r[26][1];if(n)return n[1];throw kQ([0,YL,ePn],1)}function C6e(r){var n=[11,[0,wve,zXe(r,NMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function H6e(r){var n=[12,[0,wve,zXe(r,EMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function V6e(r){var n=[12,[0,wve,zXe(r,IMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function L6e(r){var n=[12,[0,wve,zXe(r,gMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function z6e(r){var n=[11,[0,wve,zXe(r,wMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function S6e(r){var n=[12,[0,wve,zXe(r,yMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function Z6e(r){var n=[11,[0,wve,zXe(r,xMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function W6e(r){var n=[12,[0,wve,zXe(r,hMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function X6e(r){var n=[11,[0,wve,zXe(r,_Mn)]];return function(r,t,e){return hWe(n,0,t,e)}}function J6e(r){var n=[12,[0,wve,zXe(r,dMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function Y6e(r){var n=[12,[0,wve,zXe(r,pMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function r4e(r){var n=[12,[0,wve,zXe(r,jMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function n4e(r){var n=[12,[0,wve,zXe(r,lMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function t4e(r){var n=[11,[0,wve,zXe(r,aMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function e4e(r){var n=[12,[0,wve,zXe(r,eMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function a4e(r){var n=[11,[0,wve,zXe(r,tMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function u4e(r){var n=[11,[0,wve,zXe(r,rMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function f4e(r){var n=[11,[0,wve,zXe(r,JFn)]];return function(r,t,e){return hWe(n,0,t,e)}}function i4e(r){var n=[11,[0,wve,zXe(r,RFn)]];return function(r,t,e){return hWe(n,0,t,e)}}function c4e(r){var n=[11,[0,wve,zXe(r,KFn)]];return function(r,t,e){return hWe(n,0,t,e)}}function v4e(r){var n=[6,[0,wve,YXe(r,FFn)]];return function(r,t,e){return hWe(n,0,t,e)}}function o4e(r){return d0(function(r,n){return soe(r[1],n[1])},YY(function(r){return[0,eje(r[1]),r]},r))}var A4e=R1(ume);function s4e(r){return function(n){r:{if("number"!=typeof n){switch(n[0]){case 2:switch(n[1]){case 1:return BFn;case 2:return jFn;case 3:return kFn;case 4:return pFn;case 6:return mFn;case 7:return dFn;case 8:return _Fn;case 9:return hFn;case 10:return xFn;case 11:return yFn;case 12:return wFn;case 13:return gFn;case 15:return qFn;case 16:return r?IFn:0;case 18:return DFn;case 19:return EFn;case 17:break r;case 0:break;default:return NFn}break;case 7:if(n[1])break r;break;default:break r}return TFn}switch(n){case 0:return bFn;case 1:return lFn}}return 0}}var b4e=-19;function l4e(r){var n=RJe(r,"weak_value"),t=n[2],e=n[1],a=r0e(0,iJ),u=AYe(vJ);return function(r,n,f){return GL(e,r,n,u(r,n,_We(t,a,r,n,f)))}}var B4e=lC(3,0,0);function j4e(r,n){var t=A1e(n,wJe(g1n)),e=f1e(n),a=l1e(r,n,wJe(D1n));return function(r,n,u){return a(r,n,e(r,n,hWe(I1n,0,n,hWe(q1n,0,n,t(r,n,u)))))}}function k4e(r){return X1e(1,function(n){var t=RJe(r,wYn),e=t[1],a=h1e(d1e,t[2]),u=LYe(0,0,7);return function(r,n,t){return u(r,n,_We(e,a,r,n,t))}},function(r){return tJe(r)(JJn,XJn)},r)}function p4e(r){return X1e(1,function(n){var t=RJe(r,yYn),e=t[1],a=h1e(_1e,t[2]),u=LYe(0,0,7);return function(r,n,t){return u(r,n,_We(e,a,r,n,t))}},function(r){return tJe(r)(WJn,ZJn)},r)}function m4e(r){return rYe(1,r,ZRn,SRn,function(r){var n=i3e(r,2),t=I3e(r),e=function(r){return rYe(0,r,iQn,fQn,function(r){var n=RJe(r,nQn),t=n[2],e=n[1],a=VYe(0,5),u=a0(function(n,e){var a=n[2],u=n[1],f=fJe(1,d0e(r,u,wJe(gXe)),e),i=_Je(0),c=wJe(a);return function(r,n,e){return GL(t,r,n,c(r,n,_We(i,f,r,n,e)))}},eQn,d0e(r,tQn,function(r,n,e){return _We(t,a,r,n,e)})),f=m3e(r,uQn);return function(r,n,t){return f(r,n,hWe(aQn,0,n,_We(e,u,r,n,t)))}})}(r);return function(r,a,u){return e(r,a,_We(t,n,r,a,u))}})}var d4e=lC(2,0,0);function _4e(r,n,t){var e=_6e(n,t);if(e){var a=e[1],u=a[1];switch(u[0]){case 0:var f=a[2],i=u[2],c=j6e(r,u[1],0),v=[8,[0,wve,i]];return[0,function(r,n,t){return hWe(v,0,n,GL(c,r,n,t))},function(r,n){var e=g6e(r,n,t,0,f),a=[9,[0,wve,e[2]]];return[0,e[1],function(r){return function(n,t,e){return hWe(a,0,t,GL(r,n,t,e))}}]}];case 1:var o=a[2],A=[8,[0,wve,u[1]]];return[0,function(r,n,t){return hWe(A,0,n,t)},function(r,n){var e=x6e(r,n,t,o),a=[9,[0,wve,e[2]]];return[0,e[1],function(r){return function(n,t,e){return hWe(a,0,t,GL(r,n,t,e))}}]}]}}throw kQ([0,YL,qPn],1)}function h4e(r){var n=r[28][1];if(!n)throw kQ([0,YL,Sit],1);var t=[6,[0,wve,PL(n[1],0)]];return function(r,n,e){return hWe(t,0,n,e)}}function x4e(r,n,t){var e=U6e(n),a=RJe(r,IYn),u=a[2],f=a[1],i=RJe(r,DYn),c=i[2],v=i[1],o=X1e(1,function(r){var n=x1e(r,u,c),t=LYe(0,0,7);return function(r,e,a){return t(r,e,_We(f,n,r,e,a))}},function(r){var n=function(r){var n=RJe(r,CJn),t=n[2],e=n[1],a=RJe(r,HJn),u=a[2],f=a[1],i=tJe(r)(LJn,VJn),c=tJe(r)(SJn,zJn);return function(r,n,a){return GL(f,r,n,GL(e,r,n,GL(u,r,n,GL(t,r,n,c(r,n,_We(u,i,r,n,a))))))}}(r);return function(r,t,e){return hWe(2,0,t,GL(c,r,t,_We(u,n,r,t,e)))}},r);function A(r,n,t){return GL(f,r,n,GL(v,r,n,_We(u,o,r,n,t)))}return function(r,a,u){return GL(n,r,a,GL(t,r,a,_We(A,e,r,a,u)))}}function y4e(r,n,t){var e=U6e(n),a=RJe(r,gYn),u=a[2],f=a[1],i=RJe(r,qYn),c=i[2],v=i[1],o=X1e(1,function(r){var n=function(r,n,t){var e=h1e(_1e,n),a=tJe(r)(n1n,r1n);return function(r,u,f){return GL(n,r,u,GL(t,r,u,_We(a,e,r,u,f)))}}(r,u,c),t=LYe(0,0,7);return function(r,e,a){return t(r,e,_We(f,n,r,e,a))}},function(r){var n=function(r){var n=RJe(r,GJn),t=n[2],e=n[1],a=RJe(r,$Jn),u=a[2],f=a[1],i=tJe(r)(OJn,KJn),c=tJe(r)(QJn,RJn);return function(r,n,a){return GL(f,r,n,GL(e,r,n,GL(u,r,n,GL(t,r,n,c(r,n,_We(u,i,r,n,a))))))}}(r);return function(r,t,e){return hWe(2,0,t,GL(c,r,t,_We(u,n,r,t,e)))}},r);function A(r,n,t){return GL(f,r,n,GL(v,r,n,_We(u,o,r,n,t)))}return function(r,a,u){return GL(n,r,a,GL(t,r,a,_We(A,e,r,a,u)))}}function w4e(r){return i0e(r,function(r){var n=Q6e(r),t=function(r){var n=[11,[0,wve,zXe(r,fPn)]];return function(r,t,e){return hWe(n,0,t,e)}}(r);return j2e(r,0,n[1],t)})}function g4e(r){return i0e(r,function(r){var n=Q6e(r),t=function(r){var n=[11,[0,wve,zXe(r,uPn)]];return function(r,t,e){return hWe(n,0,t,e)}}(r);return j2e(r,0,n[2],t)})}function q4e(r){var n=[11,[0,wve,zXe(r,DMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function I4e(r){zXe(r,qMn)}function D4e(r){var n=[11,[0,wve,zXe(r,mMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function E4e(r){var n=[11,[0,wve,zXe(r,kMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function N4e(r){var n=[11,[0,wve,zXe(r,BMn)]];return function(r,t,e){return hWe(n,0,t,e)}}function T4e(r,n,t){var e=RJe(r,QFn),a=e[2],u=e[1],f=RJe(r,CFn),i=f[2],c=f[1],v=e4e(r),o=wJe(HFn),A=uJe(function(r,n,t){return _We(o,v,r,n,t)},dWe),s=_Je(3),b=t4e(r),l=e4e(r),B=f4e(r),j=wJe(LFn),k=uJe(function(r,n,t){return _We(j,u,r,n,t)},dWe),p=_Je(3),m=a4e(r),d=wJe(SFn),_=uJe(function(r,n,t){return d(r,n,m(r,n,hWe(zFn,0,n,GL(i,r,n,_We(p,k,r,n,t)))))},dWe),h=a4e(r),x=u4e(r),y=a4e(r),w=c2e(),g=uJe(function(r,t,e){return GL(n,r,t,w(r,t,GL(c,r,t,GL(i,r,t,y(r,t,hWe(WFn,0,t,x(r,t,hWe(ZFn,0,t,GL(u,r,t,h(r,t,_(r,t,GL(a,r,t,B(r,t,hWe(VFn,0,t,l(r,t,b(r,t,GL(a,r,t,_We(s,A,r,t,e))))))))))))))))))},dWe);return function(r,n,e){return _We(t,g,r,n,e)}}function F4e(r,n,t){var e=[0,NX],a=[0,A4e[1]];t0(function r(t){r:{var u=t;n:for(;;){var f=Pme(u);if(0!==s4e(n)(f))return 0;if(A4e[3].call(null,f,a[1]))return 0;var i=QWe(e[1],f),c=i[1];if(e[1]=i[2],a[1]=A4e[4].call(null,f,c,a[1]),"number"!=typeof f)switch(f[0]){case 2:if(16===f[1])return 0;break;case 3:break r;case 4:break n;case 5:var v=f[1];if("number"==typeof v){u=v;continue}if(10===v[0]){u=[5,v[1]];continue}u=v;continue;case 7:return t0(r,f[1]);case 8:var o=f[5];return t0(r,f[4]),t0(r,o);case 6:case 10:case 12:u=f[1];continue}var A=che(f);throw PL($3(tY,tFn),A),kQ([0,YL,eFn],1)}for(var s=f[1];;){if(!s)return 0;var b=s[2];r(s[1][2]),s=b}}for(var l=f[2];;){if(!l)return 0;var B=l[2];r(l[1][2]),l=B}},t);var u=a[1],f=CWe(e[1]),i=d2(16);function c(r){return w2(i,RY(r&GK))}function v(r){for(var n=r;;){var t=n&oj;if(iV(0,n)&&cV(n,hh))return c(t);c(t|hh),n=n>>>7|0}}function o(r){if(0<=r)return v(r);throw kQ([0,YL,AFn],1)}function A(r){for(var n=r;;){var t=n&oj;if(iV(-64,n)&&cV(n,64))return c(t);c(t|hh),n>>=7}}function s(r){var t=Pme(r),e=s4e(n)(t);if(e)return A(0|-e[1]);var a=Pme(t);return A(A4e[28].call(null,a,u))}function b(r){r:{n:{t:{e:{var t=r;a:for(;;){if("number"==typeof t){if(1===t)throw kQ([0,YL,aFn],1);break r}switch(t[0]){case 2:var e=t[1];if(16!==e){if(19>e)throw kQ([0,YL,uFn],1);return A(1),s(t)}if(0!==n)throw kQ([0,YL,fFn],1);t=iFn;break;case 3:break n;case 4:break t;case 5:var a=t[1];if("number"!=typeof a&&10===a[0]){var u=a[1];return A(1),s([5,u])}return A(b4e),s(a);case 6:var f=t[1];return A(-18),s(f);case 7:break e;case 8:break a;case 10:var b=t[1];return A(1),s(b);case 12:var l=t[1];return A(-131),s(l);default:break r}}var B=t[5],j=t[4],k=t[1],p=t[2];if(0===k)throw kQ([0,YL,cFn],1);if(A(-22),o(LY(j)),t0(s,j),o(LY(B)),t0(s,B),!p)return o(1),c(2);if(k)switch(k[1]){case 0:return o(1),c(1);case 1:return o(0);default:return o(1),c(3)}throw kQ([0,YL,vFn],1)}var m=t[1];A(n?-130:-20),o(LY(m));for(var d=m,_=0;;){if(!d)return;var h=d[2],x=d[1];o(_),s(x),d=h,_=_+1|0}}var y=t[1];A(-21),o(LY(y));for(var w=o4e(y);;){if(!w)return;var g=w[1],q=w[2],I=g[2];v(g[1]),s(I[2]),w=q}}switch(t[1]){case 1:var D=t[2];A(-23),o(LY(D));for(var E=D;;){if(!E)return;var N=E[1],T=E[2];o(HH(N[1])),q2(i,N[1]),s(N[2]),E=T}break;case 0:case 4:var F=t[2];A(-20),o(LY(F));for(var M=o4e(F);;){if(!M)return;var P=M[1],U=M[2],G=P[2];v(P[1]),s(G[2]),M=U}}}throw kQ([0,YL,oFn],1)}q2(i,sFn),o(LY(f));var l=YY(function(r){var n=i[2];return b(r),n},f);o(LY(t)),t0(s,t);var B=YY(function(r){var t=Pme(r),e=s4e(n)(t);if(e)return 0|-e[1];var a=Pme(t);return A4e[28].call(null,a,u)},t);return[0,_2(i),l,B]}function M4e(r,n){var t=Pme(n);return nYe(0,r,iR+The(t)+f_,cDn,iDn,function(r,n){var e=RJe(r,KIn),a=e[2],u=e[1],f=RJe(r,OIn),i=f[2],c=f[1];function v(r){return function(n,t,e){return GL(a,n,t,GL(r,n,t,hWe($In,0,t,GL(u,n,t,e))))}}function o(r,n){var t=RJe(r,GIn),e=t[1],a=v(h1e(d1e,t[2]));return function(r,t,u){return GL(n,r,t,_We(e,a,r,t,u))}}function A(r,n){var t=RJe(r,"inc"),e=t[1],a=v(t[2]),u=M4e(r,n);return function(r,n,t){return u(r,n,GL(i,r,n,hWe(UIn,0,n,GL(c,r,n,_We(e,a,r,n,t)))))}}var s=RJe(r,RIn),b=s[2],l=s[1],B=fJe(1,wJe(SYe(QIn)),b),j=_Je(9),k=wJe(SYe(12)),p=_Je(1),m=wJe(SYe(14)),d=_Je(1),_=wJe(SYe(13));function h(t){var e=RJe(r,qIn),a=e[2],u=e[1],f=PL(t,0),i=function(r,n){var t=sYe(cJ),e=wJe(SYe(n)),a=AYe(vJ);return function(r,n,u){return a(r,n,_We(e,t,r,n,u))}}(0,13),c=v(wJe(IIn)),o=uJe(v(wJe(DIn)),function(r,t,e){return c(r,t,GL(n,r,t,_We(i,f,r,t,e)))}),A=GJe(SYe(13)),s=AJe(r,EIn),h=GJe(SYe(10)),x=GJe(SYe(FIn)),y=GJe(SYe(1)),w=GJe(SYe(13)),g=GJe(SYe(11)),q=oJe(r,"object_size/Mut: Unexpected tag WeakRef"),I=GJe(SYe(11)),D=JYe();return function(r,t,e){return GL(n,r,t,D(r,t,GL(l,r,t,GL(b,r,t,_(r,t,d(r,t,GL(b,r,t,m(r,t,p(r,t,hWe(HIn,0,t,GL(b,r,t,k(r,t,j(r,t,hWe(CIn,0,t,B(r,t,GL(u,r,t,GL(a,r,t,I(r,t,q(r,t,GL(a,r,t,g(r,t,hWe(PIn,0,t,GL(a,r,t,w(r,t,GL(a,r,t,y(r,t,hWe(MIn,0,t,GL(a,r,t,x(r,t,hWe(TIn,0,t,GL(a,r,t,h(r,t,hWe(NIn,0,t,s(r,t,GL(a,r,t,_We(A,o,r,t,e))))))))))))))))))))))))))))))))))))}}var x=AJe(r,VIn),y=hJe(0);r:{n:{var w=DJe(EJe,LIn);if("number"!=typeof t){switch(t[0]){case 2:switch(t[1]){case 1:var g=v(IJe);break r;case 2:var q=k4e(r);g=v(function(r,t,e){return _We(n,q,r,t,e)});break r;case 7:var I=p4e(r);g=v(function(r,t,e){return _We(n,I,r,t,e)});break r;case 15:var D=RJe(r,SIn),E=D[2],N=D[1],T=v(E),F=o(r,E),M=L2e(r);g=function(r,t,e){return GL(n,r,t,M(r,t,GL(N,r,t,_We(F,T,r,t,e))))};break r;case 16:var P=RJe(r,ZIn),U=P[2],G=P[1],$=v(U),K=o(r,U),O=c2e();g=function(r,t,e){return GL(n,r,t,O(r,t,GL(G,r,t,_We(K,$,r,t,e))))};break r;case 19:g=h(function(t){var e=A(r,Gz),a=N2e(r),u=v(wJe(gIn));return function(r,t,f){return u(r,t,GL(n,r,t,_We(a,e,r,t,f)))}});break r;case 17:break n;case 18:break;case 0:g=dWe;break r;case 3:case 8:g=v(IJe);break r;case 4:case 9:g=v(wJe(WIn));break r;case 6:case 11:case 12:g=v(wJe(JIn));break r;default:g=v(wJe(XIn));break r}break;case 3:switch(t[1]){case 1:break;case 0:case 4:g=xWe(function(t){var e=t[2],a=A(r,e[2]),u=I2e(r,e[1]);return function(r,t,e){return GL(n,r,t,_We(u,a,r,t,e))}},o4e(t[2]));break r;default:break n}break;case 4:var R=t[1],Q=vJe(r,YIn);g=a0(function(t,e){var a=t[2],u=a[1],f=t[1],i=A(r,a[2]),c=_0e(),v=o(r,wJe($H(f))),s=uJe(function(r,t,e){return v(r,t,GL(n,r,t,_We(c,i,r,t,e)))},e),b=h0e(r,u);return function(r,t,e){return GL(n,r,t,_We(b,s,r,t,e))}},n0(function(r,n){return[0,r,n[2]]},o4e(R)),Q);break r;case 5:var C=t[1];if("number"!=typeof C&&10===C[0]){var H=C[1];g=h(function(t){var e=A(r,[5,H]);return function(r,t,a){return _We(n,e,r,t,a)}});break r}var V=HJe(r,function(t){var e=A(r,C),a=aXe[5],u=Y2e(r);return function(r,f,i){return GL(n,r,f,GL(t,r,f,u(r,f,_We(a,e,r,f,i))))}}),L=X2e(),z=X2e(),S=o(r,function(r,t,e){return _We(n,z,r,t,e)});g=function(r,t,e){return S(r,t,GL(n,r,t,_We(L,V,r,t,e)))};break r;case 6:var Z=t[1],W=A(r,Z),X=j0e(r,Z),J=uJe(function(r,t,e){return GL(n,r,t,_We(X,W,r,t,e))},dWe),Y=WYe(),rr=v(IJe);g=function(r,t,e){return rr(r,t,GL(n,r,t,_We(Y,J,r,t,e)))};break r;case 7:var nr=t[1];if(nr){g=yWe(function(t,e){var a=A(r,e),u=f3e(0,$H(t));return function(r,t,e){return GL(n,r,t,_We(u,a,r,t,e))}},nr);break r}g=dWe;break r;case 8:var tr=A(r,rDn),er=J2e(0,nDn),ar=A(r,tDn),ur=J2e(0,eDn),fr=v(IJe);g=function(r,t,e){return fr(r,t,GL(n,r,t,ur(r,t,ar(r,t,GL(n,r,t,_We(er,tr,r,t,e))))))};break r;case 10:var ir=t[1];g=h(function(t){var e=A(r,ir),a=v0e();return function(r,t,u){return GL(n,r,t,_We(a,e,r,t,u))}});break r;case 12:var cr=t[1],vr=h(function(t){var e=A(r,cr),a=k0e();return function(r,t,u){return GL(n,r,t,_We(a,e,r,t,u))}}),or=vJe(r,"buffer_size: Weak");g=function(r,n,t){return _We(or,vr,r,n,t)};break r;default:break n}var Ar=A(r,Gz),sr=v(IJe);g=function(r,t,e){return sr(r,t,_We(n,Ar,r,t,e))};break r}switch(t){case 1:g=vJe(r,zIn);break r;case 2:break;default:g=dWe;break r}}g=KWe(aDn,jLe(t),dWe)}var br=wJe(uDn),lr=wJe(fDn);return function(r,n,t){return lr(r,n,GL(u,r,n,br(r,n,GL(c,r,n,GL(g,r,n,GL(a,r,n,w(r,n,y(r,n,x(r,n,_We(a,i,r,n,t))))))))))}})}function P4e(r,n){var t=Pme(n);return eYe(0,r,P6e(RDn,[0,t,0]),CDn,QDn,function(r,n,e,a){var u=PWe(a);function f(r,n){var t=PWe(e),f=P4e(r,n);return function(r,n,i){return GL(e,r,n,GL(a,r,n,f(r,n,_We(u,t,r,n,i))))}}function i(t){var a=RJe(r,ADn),u=a[2],f=a[1],i=RJe(r,sDn),c=i[2],v=i[1],o=K6e(0,e,c),A=AJe(r,"64-bit offsets not yet supported during serialization"),s=_Je(8),b=wJe(bDn),l=AJe(r,lDn),B=_Je(2),j=wJe(BDn),k=oJe(r,kDn),p=GJe(SYe(10)),m=oJe(r,pDn),d=GJe(SYe(mDn)),_=oJe(r,dDn),h=GJe(SYe(1)),x=oJe(r,"unvisited mutable data in serialize_go (WeakRef)"),y=GJe(SYe(11)),w=O6e(0,e,IJe),g=PL(t,0),q=K6e(0,e,wJe(_Dn)),I=K6e(0,e,wJe(hDn)),D=r0e(0,cJ),E=AYe(vJ),N=O6e(0,e,wJe(xDn)),T=uJe(function(r,t,a){return N(r,t,GL(n,r,t,E(r,t,GL(e,r,t,D(r,t,I(r,t,_We(q,g,r,t,a)))))))},function(r,n,t){return w(r,n,GL(u,r,n,y(r,n,x(r,n,GL(u,r,n,h(r,n,_(r,n,GL(u,r,n,d(r,n,m(r,n,GL(u,r,n,p(r,n,k(r,n,GL(u,r,n,GL(e,r,n,hWe(jDn,0,n,GL(v,r,n,GL(c,r,n,j(r,n,B(r,n,l(r,n,GL(c,r,n,b(r,n,s(r,n,_We(A,o,r,n,t)))))))))))))))))))))))))}),F=GJe(SYe(13)),M=JYe();return function(r,t,e){return GL(n,r,t,M(r,t,GL(f,r,t,GL(u,r,t,_We(F,T,r,t,e)))))}}r:{n:{if("number"!=typeof t){switch(t[0]){case 2:var c=t[1];switch(c){case 1:var v=O6e(0,e,n);break r;case 2:v=x4e(r,e,n);break r;case 7:v=y4e(r,e,n);break r;case 12:var o=u1e(),A=G6e(0,e,gDn);v=function(r,t,e){return A(r,t,GL(n,r,t,o(r,t,hWe(wDn,0,t,e))))};break r;case 13:var s=j6e(r,0,2),b=G6e(0,e,IDn);v=function(r,t,e){return b(r,t,GL(n,r,t,GL(s,r,t,hWe(qDn,0,t,e))))};break r;case 14:var l=S0e();v=K6e(0,e,function(r,t,e){return _We(n,l,r,t,e)});break r;case 15:v=function(r,n,t){var e=RJe(r,oPn),a=e[2],u=e[1],f=U6e(n),i=tJe(r)(yZn,xZn),c=$6e(r,n,a),v=L2e(r);return function(r,e,o){return GL(t,r,e,v(r,e,GL(u,r,e,c(r,e,GL(t,r,e,GL(n,r,e,i(r,e,_We(a,f,r,e,o))))))))}}(r,e,n);break r;case 16:v=R6e(r,e,n);break r;case 19:v=i(function(t){var a=N2e(r),u=R6e(r,e,function(r,t,e){return _We(n,a,r,t,e)}),f=tJe(r)(oWn,vWn),i=K6e(0,e,function(r,t,e){return _We(n,f,r,t,e)}),c=E2e(r),v=G6e(0,e,oDn);return function(r,t,e){return v(r,t,GL(n,r,t,c(r,t,hWe(vDn,0,t,_We(i,u,r,t,e)))))}});break r;case 17:break n;case 18:break;case 0:v=dWe;break r;case 6:case 11:var B=I0e(r,c),j=G6e(0,e,EDn);v=function(r,t,e){return j(r,t,GL(n,r,t,B(r,t,hWe(DDn,0,t,e))))};break r;case 5:case 10:var k=R0e(c);v=K6e(0,e,function(r,t,e){return _We(n,k,r,t,e)});break r;case 4:case 9:var p=R0e(c),m=G6e(0,e,FDn);v=function(r,t,e){return m(r,t,GL(n,r,t,p(r,t,hWe(TDn,0,t,hWe(NDn,0,t,e)))))};break r;default:var d=R0e(c);v=O6e(0,e,function(r,t,e){return _We(n,d,r,t,e)});break r}break;case 3:switch(t[1]){case 1:break;case 0:case 4:v=xWe(function(t){var e=t[2],a=f(r,e[2]),u=I2e(r,e[1]);return function(r,t,e){return GL(n,r,t,_We(u,a,r,t,e))}},o4e(t[2]));break r;default:break n}break;case 4:var _=t[1],h=vJe(r,MDn);v=a0(function(t,a){var u=t[2],i=u[1],c=t[1],v=f(r,u[2]),o=_0e(),A=$6e(r,e,wJe($H(c))),s=uJe(function(r,t,e){return A(r,t,GL(n,r,t,_We(o,v,r,t,e)))},a),b=h0e(r,i);return function(r,t,e){return GL(n,r,t,_We(b,s,r,t,e))}},n0(function(r,n){return[0,r,n[2]]},o4e(_)),h);break r;case 5:var x=t[1];if("number"!=typeof x&&10===x[0]){var y=x[1];v=i(function(t){var e=f(r,[5,y]);return function(r,t,a){return _We(n,e,r,t,a)}});break r}var w=HJe(r,function(t){var e=f(r,x),a=aXe[5],u=Y2e(r);return function(r,f,i){return GL(n,r,f,GL(t,r,f,u(r,f,_We(a,e,r,f,i))))}}),g=X2e(),q=X2e(),I=$6e(r,e,function(r,t,e){return _We(n,q,r,t,e)});v=function(r,t,e){return I(r,t,GL(n,r,t,_We(g,w,r,t,e)))};break r;case 6:var D=t[1],E=O6e(0,e,wJe(PDn)),N=f(r,D),T=j0e(r,D),F=O6e(0,e,IJe),M=uJe(function(r,t,e){return F(r,t,GL(n,r,t,_We(T,N,r,t,e)))},E),P=WYe();v=function(r,t,e){return GL(n,r,t,_We(P,M,r,t,e))};break r;case 7:var U=t[1];if(U){v=yWe(function(t,e){var a=f(r,e),u=f3e(0,$H(t));return function(r,t,e){return GL(n,r,t,_We(u,a,r,t,e))}},U);break r}v=dWe;break r;case 8:var G=f(r,UDn),$=J2e(0,GDn),K=f(r,$Dn),O=J2e(0,KDn),R=O6e(0,e,IJe);v=function(r,t,e){return R(r,t,GL(n,r,t,O(r,t,K(r,t,GL(n,r,t,_We($,G,r,t,e))))))};break r;case 10:var Q=t[1];v=i(function(t){var e=f(r,Q),a=v0e();return function(r,t,u){return GL(n,r,t,_We(a,e,r,t,u))}});break r;case 12:var C=t[1],H=i(function(t){var e=f(r,C),a=k0e();return function(r,t,u){return GL(n,r,t,_We(a,e,r,t,u))}}),V=vJe(r,"serialize_go: Weak");v=function(r,n,t){return _We(V,H,r,n,t)};break r;default:break n}var L=f(r,Gz),z=O6e(0,e,IJe);v=function(r,t,e){return z(r,t,_We(n,L,r,t,e))};break r}switch(t){case 1:v=vJe(r,yDn);break r;case 2:break;default:v=dWe;break r}}v=KWe(ODn,jLe(t),dWe)}return function(r,n,t){return GL(v,r,n,_We(e,a,r,n,t))}})}function U4e(r,n,t,e,a){if(n)return PL(a,wJe(JTn));var u=_Ye(r,YTn,function(n){var u=PL(a,n),f=tJe(r)(XTn,WTn);return function(r,a,i){return GL(n,r,a,GL(t,r,a,GL(e,r,a,_We(f,u,r,a,i))))}}),f=tJe(r)(nFn,rFn);return function(r,n,a){return GL(t,r,n,GL(e,r,n,_We(f,u,r,n,a)))}}function G4e(r,n){var t=xve(HWe(r[15],n)),e=tYe(0,r,ZTn,STn,zTn,function(r,n,t){var e=tJe(r)(CTn,QTn),a=N4e(r),u=X6e(r),f=E4e(r),i=Z6e(r),c=D4e(r),v=z6e(r),o=C6e(r),A=AJe(r,LTn),s=C6e(r);return function(r,b,l){return s(r,b,A(r,b,o(r,b,v(r,b,c(r,b,i(r,b,f(r,b,u(r,b,a(r,b,GL(n,r,b,hWe(VTn,0,b,GL(t,r,b,hWe(HTn,0,b,e(r,b,hWe(RTn,0,b,l)))))))))))))))}}),a=o2e(),u=i0e(r,function(r){var n=Q6e(r),t=function(r){var n=[11,[0,wve,zXe(r,aPn)]];return function(r,t,e){return hWe(n,0,t,e)}}(r);return j2e(r,0,n[3],t)}),f=[13,[0,1,0,CH(t,Ect),0]];return function(r,n,t){return u(r,n,a(r,n,hWe(f,0,n,e(r,n,t))))}}function $4e(r,n){var t=Pme(n);return rYe(0,r,wk+The(t)+f_,ZNn,function(r){var n=gYe(r,bJ),e=gYe(r,lJ),a=gYe(r,BJ),u=C6e(r),f=q4e(r);I4e(r);var i=z6e(r);Z6e(r);var c=X6e(r),v=RJe(r,wNn),o=v[2];function A(r,n,t){return wYe(n,0,yNn,function(e){var a=$4e(n,t),u=IYe(n,BJ),i=r?IJe:qYe(n,dNn),c=IYe(n,lJ),v=wJe(_Nn),A=DJe(0,hNn),s=qYe(n,xNn),b=fJe(1,function(r,n,t){return _We(s,A,r,n,t)},v),l=_Je(0),B=f1e(f),j=IYe(n,bJ);return function(r,n,t){return j(r,n,B(r,n,GL(o,r,n,_We(l,b,r,n,c(r,n,i(r,n,_We(u,a,r,n,t)))))))}})}function s(r,n){return A(0,r,n)}function b(r,n){return A(1,r,n)}function l(n){var t=tJe(r)(pNn,kNn),e=gJe(0);return function(r,a,u){return f(r,a,i(r,a,GL(n,r,a,hWe(mNn,0,a,_We(e,t,r,a,u)))))}}var B=v[1],j=RJe(r,gNn),k=j[1];function p(r,n,t){return _We(IJe,k,r,n,t)}function m(r){var n=uJe(p,dWe),t=GJe(RX);return function(e,a,u){return GL(r,e,a,_We(t,n,e,a,u))}}function d(n){var t=wJe(RX),e=AJe(r,n);return function(r,n,u){return a(r,n,e(r,n,_We(IJe,k,r,n,t(r,n,u))))}}function _(r){var t=GJe($H(0|-PY(s4e(0)(r))));return function(r,e,a){return _We(n,t,r,e,a)}}function h(r,t){var e=d(KM+che(r)),a=l(n),u=fJe(1,t,function(r,n,t){return _We(a,e,r,n,t)}),f=_(r);return function(r,n,t){return _We(f,u,r,n,t)}}function x(n){if(n){var t=n[2];if(t&&!t[2]){var e=t[1],a=n[1],u=RJe(r,sNn),i=u[2],c=u[1],v=AJe(r,bNn),o=GJe(lNn),A=fJe(1,a,function(r,n,t){return GL(i,r,n,o(r,n,_We(v,e,r,n,t)))}),s=GJe(BNn),b=j1e(r,f);return function(r,n,t){return b(r,n,GL(c,r,n,GL(i,r,n,_We(s,A,r,n,t))))}}}throw kQ([0,YL,jNn],1)}function y(n){var t=RJe(r,oNn),e=t[2],a=t[1],u=RJe(r,ANn),i=u[2],c=u[1],v=m1e(r,f,e),o=o2e(),A=v2e(r,0,e),s=s1e(r,f);return function(r,n,t){return s(r,n,GL(a,r,n,A(r,n,GL(c,r,n,GL(i,r,n,o(r,n,_We(v,i,r,n,t)))))))}}function w(n,t){var e=RJe(r,fNn),a=e[2],u=e[1],i=RJe(r,iNn),c=i[2],v=i[1],o=m1e(r,f,a),A=o2e(),s=v2e(r,n,a),b=AJe(r,cNn),l=_Je(7),B=wJe(vNn),j=s1e(r,f);return function(r,n,t){return j(r,n,GL(u,r,n,GL(a,r,n,B(r,n,l(r,n,b(r,n,s(r,n,GL(v,r,n,GL(c,r,n,A(r,n,_We(o,c,r,n,t)))))))))))}}function g(n){var t=RJe(r,tNn),e=t[2],a=t[1],u=RJe(r,eNn),i=u[2],c=u[1],v=tJe(r)(EZn,DZn),o=tJe(r)(uNn,aNn),A=A1e(f,e),s=f1e(f),b=s1e(r,f);return function(r,n,t){return b(r,n,GL(a,r,n,s(r,n,GL(c,r,n,A(r,n,GL(i,r,n,GL(e,r,n,o(r,n,GL(i,r,n,_We(e,v,r,n,t))))))))))}}function q(n){var t=[0,w(3),0];return x([0,vJe(r,nNn),t])}function I(n,e,a){var u=d(KM+che(t)),c=l(n),v=fJe(1,dYe(r,ZX,SX,function(u){var c=d(KM+che(t)),v=l(n),o=fJe(1,PL(a,u),function(r,n,t){return _We(v,c,r,n,t)}),A=GJe($H(e)),s=b1e(r,u),b=v1e(u,i1e(f)),B=aXe[3],j=FJe(eJ),k=c1e(u,function(r,t,e){return i(r,t,GL(n,r,t,j(r,t,hWe(WEn,0,t,B(r,t,e)))))});return function(r,n,t){return k(r,n,b(r,n,s(r,n,_We(A,o,r,n,t))))}}),function(r,n,t){return _We(c,u,r,n,t)}),o=_Je(8),A=wJe(XEn);return function(r,t,e){return GL(n,r,t,A(r,t,_We(o,v,r,t,e)))}}function D(n){var t=AJe(r,zEn),e=GJe($H(0|-PY(s4e(0)(SEn)))),a=fJe(1,I(n,1,function(n){return b1e(r,n)}),function(r,a,u){return GL(n,r,a,e(r,a,_We(t,n,r,a,u)))}),u=_Je(8),f=wJe(ZEn);return function(r,t,e){return GL(n,r,t,f(r,t,_We(u,a,r,t,e)))}}function E(t){return I(n,-20,function(n){return dYe(r,LEn,VEn,function(e){var a=UL(t,n,e),u=aXe[4],f=s1e(r,n);return function(r,n,t){return GL(e,r,n,f(r,n,_We(u,a,r,n,t)))}})})}function N(r){var n=RJe(r,REn),t=n[2],e=n[1],a=AJe(r,"Pointer cannot be compressed to 32 bit"),u=_Je(7),f=wJe(QEn),i=DJe(0,aXe[1]),c=DJe(EJe,OX),v=DJe(0,aXe[2]);return function(r,n,o){return v(r,n,c(r,n,i(r,n,GL(e,r,n,GL(t,r,n,f(r,n,u(r,n,a(r,n,GL(t,r,n,hWe(INn,0,n,hWe(qNn,0,n,o)))))))))))}}function T(r,n){var t=RJe(r,KEn),e=t[2],a=t[1],u=DJe(0,aXe[1]),f=DJe(TJe,OX),i=DJe(0,aXe[2]),c=fJe(1,e,function(r,n,t){return GL(e,r,n,i(r,n,_We(f,u,r,n,t)))}),v=GJe(OEn),o=k1e(r,n);return function(r,n,t){return o(r,n,GL(a,r,n,GL(e,r,n,_We(v,c,r,n,t))))}}function F(r,t,e){var a=RJe(r,qEn),u=a[2],i=a[1],c=RJe(r,IEn),v=c[2],o=c[1],A=RJe(r,"cur"),s=A[2],b=A[1],l=RJe(r,DEn),B=l[2],j=l[1],k=RJe(r,EEn),p=k[2],m=k[1],d=uJe(c1e(f,s),dWe),_=AJe(r,Dl+The(t)),h=m2e(r,NEn),x=b2e(r,0,The(t)),y=T(r,f),w=UL(e,p,function(n){var e=N(r),a=b2e(r,0,The(t)),u=DJe(0,gEn),f=N(r);return function(r,t,i){return GL(n,r,t,GL(o,r,t,GL(B,r,t,GL(v,r,t,f(r,t,GL(B,r,t,u(r,t,_We(a,e,r,t,i))))))))}}),g=AJe(r,TEn),q=GJe(FEn),I=k1e(r,f),E=uJe(function(r,n,t){return I(r,n,q(r,n,_We(g,w,r,n,t)))},function(r,n,t){return y(r,n,x(r,n,_We(h,_,r,n,t)))}),F=GJe(MEn),M=T(r,f),P=f1e(f),U=RJe(r,PEn),G=U[2],$=U[1],K=DJe(0,UEn),O=A1e(f,function(r,n,t){return _We(G,K,r,n,t)}),R=f1e(f),Q=AJe(r,GEn),C=_Je(2),H=wJe($En),V=j4e(r,f),L=uJe(function(r,n,t){return V(r,n,GL($,r,n,GL(G,r,n,H(r,n,C(r,n,Q(r,n,R(r,n,_We(b,O,r,n,t))))))))},dWe),z=j1e(r,f),S=D(n);return function(r,n,t){return S(r,n,GL(m,r,n,z(r,n,GL(i,r,n,GL(u,r,n,L(r,n,P(r,n,GL(j,r,n,M(r,n,GL(o,r,n,GL(v,r,n,F(r,n,E(r,n,GL(u,r,n,_We(d,v,r,n,t)))))))))))))))}}var M=j[2],P=wJe(RX);r:{var U=uJe(function(r,n,t){return P(r,n,hWe(4,0,n,t))},dWe);if("number"==typeof t)switch(t){case 0:var G=l(n),$=function(r,n,t){return _We(G,ZYe,r,n,t)};break r;case 1:var K=d(DNn),O=l(n);$=function(r,n,t){return _We(O,K,r,n,t)};break r}else switch(t[0]){case 2:var R=t[1];switch(R){case 0:$=h(t,ZYe);break r;case 1:var Q=[0,TYe(1),0];$=h(t,x([0,TYe(0),Q]));break r;case 2:$=h(t,r2e(r,f,0));break r;case 7:var C=h(t,r2e(r,f,1)),H=fJe(1,r2e(r,f,0),C),V=_(ENn);$=function(r,n,t){return _We(V,H,r,n,t)};break r;case 12:var L=a1e(r),z=function(r,n){var t=A1e(n,wJe(k1n)),e=f1e(n),a=l1e(r,n,wJe(m1n));return function(r,n,u){return a(r,n,e(r,n,hWe(p1n,0,n,t(r,n,u))))}}(r,f);$=h(t,function(r,n,t){return _We(z,L,r,n,t)});break r;case 13:var S=j6e(r,2,0),Z=function(r,n){var t=A1e(n,wJe(l1n)),e=f1e(n),a=l1e(r,n,wJe(j1n));return function(r,n,u){return a(r,n,e(r,n,hWe(B1n,0,n,t(r,n,u))))}}(r,f);$=h(t,function(r,n,t){return _We(Z,S,r,n,t)});break r;case 14:var W=n1e(0,14),X=J0e(r),J=k1e(r,f);$=h(t,function(r,n,t){return J(r,n,_We(X,W,r,n,t))});break r;case 15:$=h(t,g());break r;case 16:var Y=RJe(r,NNn),rr=Y[2],nr=Y[1],tr=h4e(r),er=y(),ar=function(r,n,t){return er(r,n,GL(nr,r,n,qJe(r,n,_We(rr,tr,r,n,t))))};$=I(n,b4e,function(t){var e=d(CEn),a=l(n),u=fJe(1,ar,function(r,n,t){return _We(a,e,r,n,t)}),f=GJe(HEn),i=b1e(r,t);return function(r,n,t){return i(r,n,_We(f,u,r,n,t))}});break r;case 18:var ur=[0,w(2),0];$=h(t,x([0,vJe(r,TNn),ur]));break r;case 19:$=F(r,FNn,function(n,t){var e=RJe(r,_En),a=e[2],u=e[1],i=tJe(r)(lWn,bWn),c=y(),v=k1e(r,f),o=p1e(r,f),A=PL(t,a),s=tJe(r)(jWn,BWn),b=b2e(r,0,""),l=wJe(hEn),B=wJe(xEn),j=AJe(r,yEn),k=GJe($H(0|-PY(s4e(0)(wEn))));return function(r,t,e){return GL(n,r,t,k(r,t,j(r,t,B(r,t,l(r,t,b(r,t,s(r,t,GL(u,r,t,GL(A,r,t,GL(a,r,t,o(r,t,v(r,t,_We(c,i,r,t,e)))))))))))))}});break r;case 17:break;case 6:case 11:var fr=q0e(r,R),ir=p1e(r,f);$=h(t,function(r,n,t){return _We(ir,fr,r,n,t)});break r;case 5:case 10:var cr=n1e(0,R),vr=Q0e(R),or=k1e(r,f);$=h(t,function(r,n,t){return or(r,n,_We(vr,cr,r,n,t))});break r;case 4:case 9:var Ar=n1e(0,R),sr=Q0e(R),br=function(r,n){var t=A1e(n,wJe(M1n)),e=f1e(n),a=l1e(r,n,wJe(G1n));return function(r,n,u){return a(r,n,e(r,n,hWe(U1n,0,n,hWe(P1n,0,n,t(r,n,u)))))}}(r,f);$=h(t,function(r,n,t){return br(r,n,_We(sr,Ar,r,n,t))});break r;default:var lr=n1e(0,R),Br=Q0e(R),jr=j1e(r,f);$=h(t,function(r,n,t){return jr(r,n,_We(Br,lr,r,n,t))});break r}break;case 3:switch(t[1]){case 1:var kr=d(MNn),pr=l(n),mr=fJe(1,I(n,-23,function(r){return q()}),function(r,n,t){return _We(pr,kr,r,n,t)}),dr=TYe(1),_r=G4e(r,t),hr=fJe(1,function(r,t,e){return _We(n,_r,r,t,e)},dr);$=function(r,n,t){return u(r,n,_We(hr,mr,r,n,t))};break r;case 0:case 4:var xr=t[2];$=E(function(n,t){var e=RJe(r,pEn),a=e[2],u=e[1],c=tJe(r)(dEn,mEn),v=w2e(r,YY(function(e){var c=e[2],v=e[1];return[0,c[1],function(e){var o=Pme(c[2]);n:{if("number"==typeof o){if(0===o){var A=ZYe;break n}}else switch(o[0]){case 2:if(!o[1]){A=ZYe;break n}break;case 6:A=ZYe;break n}var b=c[1];A=d(PL(R3(BEn),b))}var l=m(a),B=s(r,c[2]),j=b1e(r,n),k=fJe(1,function(r,n,t){return j(r,n,B(r,n,GL(u,r,n,_We(l,a,r,n,t))))},A),p=tJe(r)(kEn,jEn),_=gJe(v);return function(r,e,a){return GL(n,r,e,f(r,e,i(r,e,_(r,e,GL(t,r,e,p(r,e,hWe(aJ,0,e,k(r,e,a))))))))}}]},o4e(xr)));return function(r,e,a){return v(r,e,GL(n,r,e,f(r,e,i(r,e,_We(t,c,r,e,a)))))}});break r}break;case 4:var yr=t[1],wr=RJe(r,PNn),gr=wr[2],qr=wr[1];$=I(n,-21,function(n){var t=RJe(r,vEn),e=t[2],a=t[1],u=RJe(r,oEn),i=u[2],c=u[1],v=RJe(r,AEn),o=v[2],A=v[1],b=RJe(r,sEn),B=b[2],j=b[1],k=d(bEn),p=l(B),_=a0(function(n,t){var e=n[2],a=e[2],u=e[1],f=n[1],i=m(gr),c=s(r,a),v=fJe(1,d0e(r,u,function(r,n,t){return GL(B,r,n,c(r,n,GL(qr,r,n,_We(i,gr,r,n,t))))}),t),A=GJe(xve(f));return function(r,n,t){return GL(o,r,n,_We(A,v,r,n,t))}},o4e(yr),function(r,n,t){return _We(p,k,r,n,t)}),h=b1e(r,n),x=s1e(r,n),y=HJe(r,function(t){var e=tJe(r)(fEn,uEn),a=tJe(r)(cEn,iEn);return function(r,t,u){return GL(n,r,t,a(r,t,_We(n,e,r,t,u)))}}),w=AJe(r,lEn),g=_Je(3),q=s1e(r,f),I=s1e(r,n);return function(r,n,t){return I(r,n,GL(a,r,n,q(r,n,GL(c,r,n,GL(i,r,n,GL(e,r,n,g(r,n,w(r,n,GL(i,r,n,y(r,n,x(r,n,GL(A,r,n,h(r,n,_We(j,_,r,n,t))))))))))))))}});break r;case 5:var Ir=t[1];if("number"!=typeof Ir&&10===Ir[0]){var Dr=Ir[1];$=F(r,[5,[10,Dr]],function(n,t){var e=RJe(r,nEn),a=e[2],u=e[1],i=RJe(r,tEn),c=i[2],v=i[1],o=RJe(r,eEn),A=o[2],b=o[1],l=RJe(r,aEn),B=l[2],j=l[1],k=t0e(r),p=HJe(r,function(n){var t=aXe[6],e=m(A),a=s(r,Dr),u=Y2e(r);return function(r,f,i){return GL(c,r,f,GL(n,r,f,u(r,f,GL(B,r,f,a(r,f,GL(b,r,f,e(r,f,_We(A,t,r,f,i))))))))}}),d=PL(t,c),_=t3e(r,1,a),h=s1e(r,f),x=I(n,b4e,function(n){return b1e(r,n)});return function(r,n,t){return x(r,n,GL(j,r,n,h(r,n,GL(u,r,n,_(r,n,GL(v,r,n,GL(d,r,n,GL(a,r,n,p(r,n,GL(c,r,n,k(r,n,hWe(2,0,n,t))))))))))))}});break r}var Er=RJe(r,UNn),Nr=Er[2],Tr=Er[1],Fr=RJe(r,GNn),Mr=Fr[2],Pr=Fr[1],Ur=RJe(r,$Nn),Gr=Ur[2],$r=Ur[1],Kr=RJe(r,KNn),Or=Kr[2],Rr=Kr[1];$=I(n,b4e,function(n){var t=t0e(r),e=HJe(r,function(n){var t=aXe[6],e=m(Gr),a=s(r,Ir),u=Y2e(r);return function(r,f,i){return GL(Mr,r,f,GL(n,r,f,u(r,f,GL(Or,r,f,a(r,f,GL($r,r,f,e(r,f,_We(Gr,t,r,f,i))))))))}}),a=t3e(r,0,Nr),u=v4e(r),i=FYe(0),c=s1e(r,f),v=b1e(r,n);return function(r,n,f){return v(r,n,GL(Rr,r,n,c(r,n,GL(Tr,r,n,i(r,n,GL(Nr,r,n,u(r,n,a(r,n,GL(Pr,r,n,GL(Nr,r,n,e(r,n,_We(Mr,t,r,n,f))))))))))))}});break r;case 6:var Qr=t[1],Cr=RJe(r,ONn),Hr=Cr[2],Vr=Cr[1],Lr=fJe(1,ZYe,l0e(r,Qr,Hr)),zr=GJe(RX),Sr=b(r,Qr),Zr=RJe(r,RNn),Wr=Zr[2],Xr=Zr[1],Jr=RJe(r,QNn),Yr=Jr[2],rn=Jr[1],nn=fJe(1,ZYe,l0e(r,Qr,Yr)),tn=GJe(RX),en=b(r,Qr),an=x([0,ZYe,[0,function(r,n,t){return GL(Wr,r,n,en(r,n,GL(rn,r,n,GL(Yr,r,n,_We(tn,nn,r,n,t)))))},0]]),un=I(n,-18,function(n){return b1e(r,n)}),fn=fJe(1,function(r,n,t){return un(r,n,_We(Xr,an,r,n,t))},function(r,t,e){return n(r,t,Sr(r,t,GL(Vr,r,t,GL(Hr,r,t,_We(zr,Lr,r,t,e)))))}),cn=wJe(YEn),vn=fJe(1,dYe(r,ZX,SX,function(t){var e=GJe(lC(16777198,$K,Ft)),a=b1e(r,t),u=v1e(t,i1e(f)),c=aXe[3],v=FJe(eJ),o=c1e(t,function(r,t,e){return i(r,t,n(r,t,v(r,t,hWe(JEn,0,t,c(r,t,e)))))});return function(r,n,t){return o(r,n,u(r,n,_We(a,e,r,n,t)))}}),cn),on=_Je(8),An=wJe(rNn),sn=fJe(1,ZYe,function(r,t,e){return n(r,t,An(r,t,_We(on,vn,r,t,fn(r,t,e))))}),bn=_(0),ln=fJe(1,ZYe,function(r,n,t){return _We(bn,sn,r,n,t)}),Bn=_(CNn);$=function(r,n,t){return _We(Bn,ln,r,n,t)};break r;case 7:var jn=t[1];if(jn){$=E(function(n,t){var e=RJe(r,JDn),a=e[2],u=e[1],c=i3e(r,LY(jn)),v=tJe(r)(rEn,YDn),o=yWe(function(e,c){var v=Pme(c);n:{if("number"==typeof v){if(0===v){var o=ZYe;break n}}else switch(v[0]){case 2:if(!v[1]){o=ZYe;break n}break;case 6:o=ZYe;break n}o=d(ZDn)}var A=m(a),b=s(r,c),l=b1e(r,n),B=fJe(1,function(r,n,t){return l(r,n,b(r,n,GL(u,r,n,_We(A,a,r,n,t))))},o),j=tJe(r)(XDn,WDn),k=gJe(e);return function(r,e,a){return GL(n,r,e,f(r,e,i(r,e,k(r,e,GL(t,r,e,j(r,e,hWe(aJ,0,e,B(r,e,a))))))))}},jn);return function(r,e,a){return GL(o,r,e,GL(n,r,e,f(r,e,i(r,e,GL(t,r,e,_We(v,c,r,e,a))))))}});break r}$=h(t,i3e(r,0));break r;case 8:var kn=d(HNn),pn=l(n),mn=fJe(1,I(n,-22,function(n){var t=RJe(r,LDn),e=t[2],a=t[1],u=RJe(r,zDn),f=u[1],i=r3e(r,3,[0,e,[0,u[2],0]]),c=g(),v=q();return x([0,vJe(r,SDn),[0,function(r,n,t){return v(r,n,GL(a,r,n,c(r,n,_We(f,i,r,n,t))))},0]])}),function(r,n,t){return _We(pn,kn,r,n,t)}),dn=TYe(1),_n=G4e(r,t),hn=fJe(1,function(r,t,e){return _We(n,_n,r,t,e)},dn);$=function(r,n,t){return u(r,n,_We(hn,mn,r,n,t))};break r;case 10:var xn=t[1];$=F(r,[10,xn],function(n,t){var e=RJe(r,VDn),a=e[2],u=e[1],f=o0e(r),i=s(r,xn),c=PL(t,a),v=c0e(r);return function(r,t,e){return v(r,t,GL(u,r,t,GL(c,r,t,GL(a,r,t,GL(n,r,t,_We(i,f,r,t,e))))))}});break r;case 12:var yn=t[1],wn=F(r,[12,yn],function(n,t){var e=RJe(r,HDn),a=e[2],u=e[1],f=l4e(r),i=s(r,yn),c=PL(t,a),v=a0e(r,11,[0,qJe,0]);return function(r,t,e){return v(r,t,GL(u,r,t,GL(c,r,t,GL(a,r,t,GL(n,r,t,_We(i,f,r,t,e))))))}}),gn=vJe(r,"deserialize_go: Weak");$=function(r,n,t){return _We(gn,wn,r,n,t)};break r}$=KJe(r,VNn,jLe(t))}var qn=f1e(f),In=AJe(r,LNn),Dn=_Je(7),En=FJe(zNn),Nn=DJe(0,SNn),Tn=v4e(r),Fn=FYe(1);return function(r,n,t){return Fn(r,n,IJe(r,n,Tn(r,n,e(r,n,c(r,n,Nn(r,n,En(r,n,Dn(r,n,In(r,n,qn(r,n,GL(B,r,n,GL($,r,n,_We(M,U,r,n,t)))))))))))))}})}function K4e(r,n){return nYe(0,r,P6e($Tn,n),OTn,KTn,function(r,t){var e=RJe(r,DTn),a=e[2],u=e[1],f=RJe(r,ETn),i=f[2],c=f[1],v=F4e(0,0,n)[1],o=$H(HH(v)),A=RJe(r,NTn),s=A[2],b=A[1],l=RJe(r,TTn),B=l[2],j=l[1],k=function(r,n,t,e){var a=DJe(0,e),u=DJe(1,e);return function(r,e,f){return GL(n,r,e,u(r,e,_We(t,a,r,e,f)))}}(0,s,a,o),p=AJe(r,FTn),m=GJe(MTn),d=function(r,n,t){var e=AJe(r,mPn),a=_Je(0);return function(r,u,f){return GL(n,r,u,GL(t,r,u,hWe(dPn,0,u,_We(a,e,r,u,f))))}}(r,s,a),_=AJe(r,PTn),h=_Je(0),x=FJe(eJ),y=P4e(r,hme(n)),w=d2e(r),g=FJe(eJ),q=function(r,n,t,e,a){var u=$H(HH(a)),f=DJe(0,u),i=bYe(),c=wJe(u),v=o2e(),o=b2e(r,0,a),A=d2e(r),s=DJe(0,u);return function(r,a,u){return GL(n,r,a,s(r,a,A(r,a,GL(t,r,a,GL(e,r,a,o(r,a,v(r,a,c(r,a,i(r,a,GL(e,r,a,_We(f,t,r,a,u)))))))))))}}(r,a,b,s,v),I=oJe(r,GTn),D=_Je(3),E=wJe(o),N=DJe(0,o),T=M4e(r,hme(n));return function(r,n,e){return GL(t,r,n,T(r,n,GL(c,r,n,GL(u,r,n,GL(a,r,n,N(r,n,E(r,n,D(r,n,I(r,n,q(r,n,GL(i,r,n,g(r,n,w(r,n,GL(j,r,n,GL(t,r,n,GL(s,r,n,GL(B,r,n,y(r,n,GL(B,r,n,GL(i,r,n,x(r,n,hWe(UTn,0,n,h(r,n,_(r,n,d(r,n,GL(i,r,n,m(r,n,_We(p,k,r,n,e))))))))))))))))))))))))))))}})}function O4e(r,n,t){var e=Fhe(t);return tYe(0,n,r?"@deserialize_extended<"+e+f_:"@deserialize<"+e+f_,ITn,YY(function(r){return 1},t),function(n,a,u){var f=RJe(n,mTn),i=f[2],c=f[1],v=RJe(n,dTn),o=v[2],A=v[1],s=RJe(n,_Tn),b=s[2],l=s[1],B=RJe(n,hTn)[2],j=RJe(n,xTn),k=j[2],p=j[1],m=RJe(n,yTn),d=m[2],_=m[1],h=dYe(n,gTn,wTn,function(f){return dYe(n,pTn,kTn,function(c){return dYe(n,jTn,BTn,function(v){return dYe(n,"get_global_typtbl_ptr",lTn,function(A){return dYe(n,"get_global_typtbl_end_ptr",bTn,function(s){return dYe(n,"get_global_typtbl_size_ptr",sTn,function(l){return dYe(n,ZX,SX,function(j){return dYe(n,ZX,SX,function(m){var h=$H(HH(F4e(0,0,t)[1])),x=c4e(n),y=i4e(n),w=wJe(h),g=aXe[3],q=aXe[3],I=U4e(n,r,function(r,n,t){return _We(f,q,r,n,t)},function(r,n,t){return _We(l,g,r,n,t)},function(r){var i=dYe(n,ZX,SX,function(r){var a=function(r){var n=n4e(r),t=wJe(uMn),e=r4e(r),a=wJe(fMn),u=Y6e(r),f=wJe(iMn),i=J6e(r),c=wJe(cMn),v=W6e(r),o=wJe(vMn),A=S6e(r),s=wJe(oMn),b=L6e(r),l=wJe(AMn),B=V6e(r),j=wJe(sMn),k=H6e(r),p=wJe(bMn);return function(r,m,d){return p(r,m,k(r,m,j(r,m,B(r,m,l(r,m,b(r,m,s(r,m,A(r,m,o(r,m,v(r,m,c(r,m,i(r,m,f(r,m,u(r,m,a(r,m,e(r,m,_We(t,n,r,m,d)))))))))))))))))}}(n),f=AJe(n,xf+e),i=B1e(0,m),o=AJe(n,yq+e),A=B1e(0,j),s=DJe(1,nTn),b=tJe(n)(eTn,tTn),l=gJe(0),B=b1e(n,r),h=aXe[3],x=UJe(5,uTn),y=CJe(0,function(r,n,t){return _We(k,x,r,n,t)},function(r,n,t){return GL(j,r,n,GL(c,r,n,h(r,n,B(r,n,hWe(aTn,0,n,l(r,n,b(r,n,GL(k,r,n,_We(s,p,r,n,t)))))))))}),w=xWe(function(t){function a(r){return ZYe}var f=Pme(t);r:{n:{if("number"==typeof f){if(0!==f)break n}else switch(f[0]){case 2:if(f[1])break n;var i=function(r){return wJe(RX)},c=a,v=u;break r;case 6:break;default:break n}i=a,c=a,v=TYe(1);break r}var o=function(r){var t=vJe(n,r),e=fJe(1,wJe(RX),t);return function(r,n,t){return _We(u,e,r,n,t)}};i=o,c=o,v=u}var A=fJe(1,i(XNn),d),s=GJe(RX),b=DJe(1,JNn),l=wYe(n,0,YNn,function(e){var a=$4e(n,t),u=IYe(n,BJ),f=IYe(n,lJ),i=wJe(WNn),c=IYe(n,bJ),o=b1e(n,r);return function(r,n,t){return o(r,n,c(r,n,i(r,n,f(r,n,GL(v,r,n,_We(u,a,r,n,t))))))}}),B=fJe(1,c(ai+e),function(r,n,t){return l(r,n,GL(_,r,n,GL(k,r,n,b(r,n,GL(p,r,n,GL(d,r,n,_We(s,A,r,n,t)))))))}),j=GJe(rTn);return function(r,n,t){return GL(k,r,n,_We(j,B,r,n,t))}},t),g=s1e(n,r),q=v1e(r,i1e(j)),I=aXe[3],D=c1e(r,function(r,n,t){return _We(v,I,r,n,t)});return function(r,n,t){return D(r,n,q(r,n,g(r,n,GL(p,r,n,GL(w,r,n,y(r,n,A(r,n,o(r,n,i(r,n,_We(f,a,r,n,t))))))))))}}),o=T4e(n,a,r),b=n4e(n),B=aXe[3],h=r4e(n),x=aXe[3],y=Y6e(n),w=aXe[3],g=J6e(n),q=aXe[3],I=W6e(n),D=aXe[3],E=S6e(n),N=aXe[3],T=L6e(n),F=V6e(n),M=H6e(n);return function(n,t,e){return GL(r,n,t,M(n,t,GL(j,n,t,F(n,t,GL(m,n,t,T(n,t,GL(c,n,t,N(n,t,E(n,t,GL(v,n,t,D(n,t,I(n,t,GL(f,n,t,q(n,t,g(n,t,GL(A,n,t,w(n,t,y(n,t,GL(s,n,t,x(n,t,h(n,t,GL(l,n,t,B(n,t,_We(b,o,n,t,i(n,t,e)))))))))))))))))))))))))}});if(r)var D=dWe;else{var E=tJe(n)(vTn,cTn),N=g4e(n),T=w4e(n);D=function(r,n,t){return T(r,n,N(r,n,GL(A,r,n,GL(s,r,n,_We(l,E,r,n,t)))))}}var F=tJe(n)(ATn,oTn),M=TYe(r),P=FJe(eJ),U=o1e(m,function(r,n,t){return _We(o,P,r,n,t)}),G=c1e(m,B),$=o1e(j,i),K=c1e(j,b);return function(r,n,t){return K(r,n,$(r,n,G(r,n,U(r,n,M(r,n,hWe(uJ,0,n,GL(j,r,n,w(r,n,y(r,n,hWe(iTn,0,n,x(r,n,hWe(fTn,0,n,GL(c,r,n,GL(f,r,n,GL(v,r,n,F(r,n,_We(D,I,r,n,t)))))))))))))))))}})})})})})})})}),x=wJe(qTn),y=o2e(),w=c2e();return function(r,n,t){return GL(a,r,n,w(r,n,GL(c,r,n,GL(a,r,n,y(r,n,GL(l,r,n,x(r,n,_We(A,h,r,n,t))))))))}})}function R4e(r,n){var t=O4e(0,r,n),e=TYe(0),a=q3e(r);return function(r,n,u){return GL(a,r,n,_We(e,t,r,n,u))}}function Q4e(r){var n=DJe(TJe,lC(16,0,0)),t=m3e(r,wIn);return function(r,e,a){return _We(t,n,r,e,a)}}function C4e(r,n,t,e){if(1===t)var a=J3e(r,0,_Kn,1,dKn,aXe[4]);else{if(t)throw kQ([0,YL,yIn],1);a=n6e(r)}var u=DJe(1,n),f=Q4e(r);return function(r,n,t){return f(r,n,u(r,n,_We(e,a,r,n,t)))}}function H4e(r,n,t){if(1===t)var e=X3e(r,0,kKn,1,jKn,aXe[3]);else{if(t)throw kQ([0,YL,xIn],1);e=t6e(r)}var a=DJe(1,n),u=Q4e(r);return function(r,n,t){return u(r,n,_We(a,e,r,n,t))}}function V4e(r,n,t){if(1===t)var e=wJe(hIn);else{if(t)throw kQ([0,YL,_In],1);e=gJe(0)}return C4e(r,n,t,e)}function L4e(r){return tJe(r)(cIn,iIn)}function z4e(r,n){var t=F4e(0,1,[0,n,0]),e=t[3],a=t[1],u=DXe([0,qXe(YY($H,t[2])),0]);if(!dH(e,nIn))throw kQ([0,YL,tIn],1);var f=b2e(r,0,u),i=b2e(r,0,a);return function(r,n,t){return _We(i,f,r,n,t)}}function S4e(r,n){var t=tJe(r)(rIn,Yqn),e=z4e(r,n);return function(r,n,a){return _We(e,t,r,n,a)}}function Z4e(r,n){var t=tJe(r)(Jqn,Xqn),e=z4e(r,n);return function(r,n,a){return _We(e,t,r,n,a)}}function W4e(r,n){var t=RJe(r,"old_actor"),e=t[2],a=t[1];function u(n){var t=fJe(1,function(r,n,t){if(dH(n[2],Wqn))return l0e(r,Ez,wJe(gXe));var e=I2e(r,n[1]);return function(r,n,a){return _We(t,e,r,n,a)}}(r,n,e),ZYe),a=function(r,n){var t=tJe(r)(gWn,wWn),e=wJe(RXe(r,n));return function(r,n,a){return e(r,n,t(r,n,hWe(aJ,0,n,a)))}}(r,n[1]);return function(r,n,u){return GL(e,r,n,_We(a,t,r,n,u))}}var f=w2e(r,YY(function(r){return[0,r[1],function(n){return u(r)}]},Zme(n)[2]));return function(r,n,t){return _We(a,f,r,n,t)}}function X4e(r){var n=tJe(r)(Zqn,Sqn);return function(r,t,e){return n(r,t,hWe(aJ,0,t,e))}}function J4e(r){var n=tJe(r)(Vqn,Hqn);return function(r,t,e){return n(r,t,hWe(aJ,0,t,e))}}function Y4e(r,n,t,e,a,u,f){var i=YY(function(r){return[0,r[2],1]},e),c=qoe(LY(u),1),v=d6e(n);return XJe(r,rY(Tqn,i),c,function(r){for(var n=[8,[0,wve,0]],u=AYe(vJ),i=GL(t,r,v,function(r,t,e){return hWe(n,0,t,u(r,t,e))}),c=1,o=i[1],A=e,s=i[2];A;){var b=A[1],l=A[2],B=w6e(0,o,b[2],0,c,b[3]);c=c+1|0,o=B,A=l}var j=PL(s,UL(a,r,o));return function(r,n,t){return gWe(f,j,r,0,t)}})}function r5e(r,n){if(n)switch(n[1]){case 0:return s3e(r,4);case 1:return s3e(r,3);default:return s3e(r,9)}throw kQ([0,YL,Nqn],1)}function n5e(r,n){if(n)switch(n[1]){case 0:return s3e(r,5);case 1:var t=s3e(r,2),e=oYe(r),a=uJe(dWe,function(r,n,a){return _We(e,t,r,n,a)}),u=GJe(c3e(11)),f=v3e(),i=GJe(c3e(10)),c=v3e();return function(r,n,t){return c(r,n,i(r,n,f(r,n,u(r,n,hWe(Dqn,0,n,a(r,n,t))))))};default:return s3e(r,9)}throw kQ([0,YL,Eqn],1)}function t5e(r){var n=uJe(dWe,r5e(r,Iqn)),t=b3e(0,9);return function(r,e,a){return _We(t,n,r,e,a)}}function e5e(r){var n=uJe(dWe,n5e(r,qqn)),t=b3e(0,9);return function(r,e,a){return _We(t,n,r,e,a)}}function a5e(r,n,t,e,a,u,f,i){var c=d6e(n);return XJe(r,0,0,function(r){var f=YY(function(r){return[0,r[2],r[3]]},a),v=YY(function(r){return r[2]},a),o=YY(function(r){return r[3]},a),A=function(r,n){function t(r){return 1}return function(e){return q6e(r,n,t,e)}}(r,c)(f),s=n5e(r,t),b=UL(u,r,A),l=xWe(function(n){return N6e(r,A,n)},XY(v)),B=R4e(r,o);if(0===e)var j=D3e(r),k=K4e(r,0),p=wJe(gXe),m=function(r,n,t){return p(r,n,_We(k,j,r,n,t))};else m=dWe;var d=F6e(0,n,hPn),_=F6e(0,n,xPn),h=r5e(r,t);return function(r,n,t){var e=i[2],a=i[1],u=[0,[0,a[1],a[2],a[3]],[0,e[1],e[2],e[3]]];return h(r,u,_(r,u,d(r,u,m(r,u,B(r,u,GL(l,r,u,_We(b,s,r,u,t)))))))}})}function u5e(r,n,t,e,a,u,f,i,c){if(0!==n){var v=ZXe(r)(e),o=v[2];return[0,[1,v[1]],function(r,e){return PL(o,a5e(r,e,n,t,a,u,0,c))}]}if(0!==t)throw kQ([0,YL,gqn],1);var A=XXe(r,e),s=r[27][1];return r[27][1]=s+1|0,[0,[0,s,function(r){return Loe(A)},f],function(r,n){function t(r,n,t){return[0,n,I6e]}return Voe(A,[W,function(e){return Y4e(r,n,t,a,u,i,c)}])}]}function f5e(r,n,t,e,a,u,f,i,c,v){var o=l0(function(r){var t=h6e(n,r);if(t)return 1-k6e(t[1]);throw kQ([0,YL,MPn],1)})(u);if(0===n[1]&&0!==o)throw kQ([0,YL,xqn],1);if(0===o){var A=u5e(r,e,a,t,f,i,0,c,v),s=A[1];return UL(A[2],r,n),[0,[2,s],dWe]}var b=0===e?1:0,l=RJe(r,t+KN),B=l[2],j=l[1],k=dve(LY(o));var p=function t(e,a){if(!a)return[0,dWe,function(r,n,t){return[0,n,I6e]}];var u=a[1],f=t(e+1|0,a[2]),i=f[2],c=f[1],v=_4e(r,n,u),o=v[2],A=v[1],s=function(r,n){var t=RJe(r,Q3n),e=t[2],a=t[1],u=r0e(0,MH(x0e,n)),f=AYe(vJ);return function(r,n,t){return GL(a,r,n,f(r,n,_We(e,u,r,n,t)))}}(r,dve(e));return[0,function(r,n,t){return GL(B,r,n,A(r,n,_We(s,c,r,n,t)))},function(r,n,t){var a=o(r,n),u=a[2],f=i(r,a[1],t),c=f[2];return[0,f[1],function(r){var n=u(PL(c,r)),a=function(r,n){var t=YYe(0,MH(x0e,n)),e=AYe(vJ);return function(r,n,a){return _We(e,t,r,n,a)}}(0,dve(e));return function(r,e,u){return GL(t,r,e,_We(a,n,r,e,u))}}]}]}(0,o),m=p[2],d=p[1];if(!b)throw kQ([0,YL,yqn],1);var _=Y4e(r,n,m,f,i,c,v),h=WXe(r)(t,_),x=t0e(r),y=r0e(0,B4e),w=wJe(k),g=r0e(0,iJ),q=wJe(xve(bJe(r,h))),I=XYe(r,MH(x0e,k),2);if(b)return[0,0,function(r,n,t){return I(r,n,GL(j,r,n,GL(B,r,n,q(r,n,g(r,n,GL(B,r,n,w(r,n,y(r,n,d(r,n,GL(B,r,n,x(r,n,hWe(2,0,n,GL(B,r,n,t)))))))))))))}];throw kQ([0,YL,wqn],1)}function i5e(r,n){if(n)var t=n[1],e=Ug+The([7,t])+f_,a=function(r){return R4e(r,t)},u=e,f=LY(t);else a=function(r){return p2e(r,0,function(r){return m3e(r,jqn)},function(r){return m3e(r,kqn)},function(r){return wJe(pqn)})},u=mqn,f=1;return JJe(r,u,dqn,0,function(r){var n=RJe(r,lqn),t=n[2],e=n[1],u=e5e(r),i=y0e(r,f,0),c=a(r),v=AYe(vJ),o=J2e(0,Bqn),A=DYe(r),s=[8,[0,wve,0]],b=t5e(r);return function(r,n,a){return b(r,n,hWe(s,0,n,A(r,n,o(r,n,GL(e,r,n,GL(t,r,n,v(r,n,c(r,n,GL(t,r,n,_We(i,u,r,n,a))))))))))}}),JJe(r,KX,_qn,0,function(r){var n=RJe(r,sqn),t=n[2],e=n[1],a=e5e(r),u=y0e(r,1,0),f=m4e(r),i=AYe(vJ),c=J2e(0,bqn),v=DYe(r),o=[8,[0,wve,0]],A=t5e(r);return function(r,n,s){return A(r,n,hWe(o,0,n,v(r,n,c(r,n,GL(e,r,n,GL(t,r,n,i(r,n,f(r,n,GL(t,r,n,_We(u,a,r,n,s))))))))))}}),function(n){var t=RJe(r,Aqn),e=t[2],a=t[1],f=wJe(xve(bJe(r,YXe(r,KX)))),i=wJe(xve(bJe(r,YXe(r,u)))),c=tJe(r)(T4n,N4n),v=r3e(r,2,n);return function(r,n,t){return v(r,n,c(r,n,GL(a,r,n,i(r,n,GL(e,r,n,_We(f,e,r,n,t))))))}}}function c5e(r,n){return i5e(r,[0,n])}function v5e(r,n,t,e,a,u){if(1>>0)return vJe(r,PL(R3(Xgn),n));var f=PL(R3(Jgn),n),i=RJe(r,Ygn),c=i[2],v=i[1],o=DYe(r),A=uJe(function(r,n,t){return GL(c,r,n,o(r,n,hWe(2,0,n,t)))},dWe),s=_Je(1),b=wJe(rqn),l=B3e(r),B=k3e(r),j=b2e(r,1,f),k=j3e(r),p=m3e(r,tqn),m=m3e(r,eqn),d=PL(a,c),_=m3e(r,aqn);JJe(r,GX,oqn,0,function(r){var n=RJe(r,cqn),t=n[2],e=n[1],a=y0e(r,0,0),u=AYe(vJ),f=J2e(0,vqn),i=DYe(r),c=[8,[0,wve,0]];return function(r,n,v){return hWe(c,0,n,i(r,n,f(r,n,GL(e,r,n,GL(t,r,n,u(r,n,_We(t,a,r,n,v)))))))}});var h=wJe(xve(bJe(r,YXe(r,GX)))),x=m3e(r,uqn),y=l2e(r),w=J2e(0,fqn),g=l2e(r),q=J2e(0,iqn);return function(r,n,a){return GL(t,r,n,q(r,n,g(r,n,GL(t,r,n,w(r,n,y(r,n,GL(e,r,n,GL(v,r,n,GL(c,r,n,x(r,n,h(r,n,GL(c,r,n,_(r,n,GL(d,r,n,m(r,n,GL(u,r,n,p(r,n,hWe(nqn,0,n,k(r,n,j(r,n,B(r,n,l(r,n,b(r,n,_We(s,A,r,n,a))))))))))))))))))))))))}}function o5e(r){var n=[11,[0,wve,zXe(r,bgn)]];return function(r,t,e){return hWe(n,0,t,e)}}function A5e(r){var n=oJe(r,"Async stabilization increment call failed"),t=m3e(r,cgn),e=m3e(r,vgn),a=wJe(ogn),u=wJe($H(bJe(r,YXe(r,_J)))),f=wJe(Agn),i=wJe($H(bJe(r,YXe(r,dJ)))),c=B2e(r,1,mJ),v=l2e(r),o=g3e(r);return function(r,A,s){return GL(o,r,A,v(r,A,c(r,A,i(r,A,f(r,A,u(r,A,a(r,A,e(r,A,t(r,A,hWe(ign,0,A,n(r,A,s)))))))))))}}function s5e(r,n){var t=tJe(r)(zqn,Lqn),e=z4e(r,n),a=w3e(r),u=tJe(r)(egn,tgn),f=uJe(dWe,function(r,n,f){return u(r,n,a(r,n,_We(e,t,r,n,f)))}),i=X4e(r);return function(r,n,t){return _We(i,f,r,n,t)}}function b5e(r){var n=oJe(r,"Async destabilization increment call failed"),t=m3e(r,Jwn),e=m3e(r,Ywn),a=wJe(rgn),u=wJe($H(bJe(r,YXe(r,yJ)))),f=wJe(ngn),i=wJe($H(bJe(r,YXe(r,xJ)))),c=B2e(r,1,hJ),v=l2e(r),o=g3e(r);return function(r,A,s){return GL(o,r,A,v(r,A,c(r,A,i(r,A,f(r,A,u(r,A,a(r,A,e(r,A,t(r,A,hWe(Xwn,0,A,n(r,A,s)))))))))))}}function l5e(r,n){var t=s3e(r,2),e=tJe(r)(Wwn,Zwn),a=y3e(r),u=[12,[0,wve,zXe(r,sgn)]],f=W4e(r,n),i=tJe(r)(Kqn,$qn),c=uJe(function(r,n,c){return _We(i,f,r,n,hWe(u,0,n,a(r,n,_We(e,t,r,n,c))))},dWe),v=tJe(r)(Rqn,Oqn),o=uJe(function(r,n,t){return v(r,n,hWe(aJ,0,n,c(r,n,t)))},dWe),A=hJe(0),s=o5e(r);return function(r,n,t){return s(r,n,_We(A,o,r,n,t))}}function B5e(r){var n=[11,[0,wve,zXe(r,Rwn)]];return function(r,t,e){return hWe(n,0,t,e)}}function j5e(r){var n=[11,[0,wve,zXe(r,Kwn)]];return function(r,t,e){return hWe(n,0,t,e)}}function k5e(r){var n=_Je(7),t=wJe(d4e),e=B5e(r);return function(r,a,u){return e(r,a,_We(t,n,r,a,u))}}function p5e(r){var n=GJe(R3e),t=B5e(r),e=GJe(O3e),a=B5e(r);return function(r,u,f){return a(r,u,e(r,u,t(r,u,n(r,u,hWe(Gwn,0,u,f)))))}}function m5e(r){var n=GJe(C3e),t=B5e(r),e=GJe(Q3e),a=B5e(r);return function(r,u,f){return a(r,u,e(r,u,t(r,u,n(r,u,hWe(Uwn,0,u,f)))))}}var d5e=[1,function(r){return r}];function _5e(r){if(0===r[0]){var n=r[1];return function(r){if(0===r[0]){var t=r[1];return[0,function(r,e,a){return _We(n,t,r,e,a)}]}var e=r[1];return[1,function(r){var t=PL(e,r);return function(r,e,a){return _We(n,t,r,e,a)}}]}}var t=r[1];return function(r){if(0===r[0]){var n=r[1];return[1,function(r){var e=PL(t,r);return function(r,t,a){return _We(e,n,r,t,a)}}]}var e=r[1];return[1,function(r){var n=PL(e,r),a=PL(t,r);return function(r,t,e){return _We(a,n,r,t,e)}}]}}function h5e(r,n){return 0===n[0]?n[1]:PL(n[1],r)}function x5e(r){if(0===r[0]){var n=r[1];return function(r){return[0,n]}}var t=r[1];return function(r){if(0===r[0]){var n=r[1],e=[0,0],a=TYe(0),u=uJe(dWe,n),f=TYe(1),i=PL(t,function(r,n,t){return a(r,n,FWe(e,r,n,t))}),c=MWe(1,e,function(r,n,t){return _We(i,f,r,n,t)});return[0,function(r,n,t){return _We(c,u,r,n,t)}]}var v=r[1];return[1,function(r){var n=[0,0],e=TYe(0),a=uJe(dWe,PL(v,r)),u=TYe(1),f=PL(t,function(r,t,a){return e(r,t,FWe(n,r,t,a))}),i=MWe(1,n,function(r,n,t){return _We(f,u,r,n,t)});return function(r,n,t){return _We(i,a,r,n,t)}}]}}function y5e(r,n){return h5e(vJe(r,MX),n)}function w5e(r,n){return y5e(r,a0(x5e,n,d5e))}function g5e(r,n,t){return PL(RWe(Nwn),r)}var q5e=dCe[9];function I5e(r,n,t){r:{n:{t:{e:{a:{u:{f:if("number"==typeof n){switch(n){case 0:if("number"==typeof t){if(0!==t)break f;var e=0;break r}if(0===t[0])break n;break t;case 1:if("number"!=typeof t||2>t)break u;break;default:if("number"!=typeof t)break a;switch(t){case 2:break f;case 0:break a}}e=RWe(Ewn);break r}if("number"!=typeof t)break a;switch(t){case 0:break a;case 1:break;default:break e}}e=1;break r}if("number"!=typeof n)break t}e=2;break r}if("number"==typeof t||0===t[0]){if("number"==typeof n)break n;if(0===n[0])break n;a=n[1]}else var a=t[1];e=[1,a];break r}e=[0,"number"==typeof t?n[1]:t[1]]}return[0,e]}var D5e=dCe[9];function E5e(r,n){return D5e(I5e,r,n)}function N5e(r){return function(r,n,t){return hWe(x3n,0,n,t)}}function T5e(r){return function(r,n,t){return hWe(_3n,0,n,t)}}function F5e(r){return O1e(LX,E0e,D1e,r)}function M5e(r){return Q1e(W0e,r)}function P5e(r){return Q1e(X0e,r)}function U5e(r){return O1e(zX,N0e,E1e,r)}function G5e(r){return tJe(r)(wJn,yJn)}function $5e(r){return tJe(r)(BJn,lJn)}function K5e(r){return tJe(r)(bJn,sJn)}function O5e(r){return tJe(r)(vJn,cJn)}function R5e(r){return tJe(r)(iJn,fJn)}function Q5e(r){return tYe(1,r,vXn,cXn,iXn,function(r,n,t){var e=n1e(0,3),a=Q0e(3),u=AYe(vJ),f=DJe(0,MH(aXe[2],lC(24,0,0))),i=AJe(r,fXn),c=_Je(3),v=c2e();return function(r,o,A){return GL(t,r,o,GL(n,r,o,v(r,o,c(r,o,i(r,o,GL(t,r,o,f(r,o,GL(n,r,o,u(r,o,hWe(uXn,0,o,hWe(aXn,0,o,_We(a,e,r,o,A))))))))))))}})}function C5e(r,n){var t=x3e(r),e=B2e(r,1,n);return function(r,n,a){return _We(e,t,r,n,a)}}function H5e(r){var n=(1===r[1]?1:0)||(2===r[1]?1:0);if(!n)return n;var t=XJe(r,0,0,function(r){var n=s3e(r,7),t=[6,[0,wve,YXe(r,cCn)]],e=oJe(r,vCn),a=EYe(r),u=uJe(dWe,function(r,n,t){return _We(a,e,r,n,t)}),f=function(r){var n=[18,[0,0]],t=gJe(r);return function(r,e,a){return t(r,e,hWe(n,0,e,hWe(Lit,0,e,a)))}}(3),i=m3e(r,oCn),c=s3e(r,6);return function(r,e,a){return c(r,e,i(r,e,f(r,e,u(r,e,hWe(t,0,e,n(r,e,a))))))}}),e=WXe(r)(ACn,t),a=XJe(r,0,0,function(r){var n=[6,[0,wve,YXe(r,iCn)]],t=s3e(r,1),e=function(r){var n=[12,[0,wve,zXe(r,tzn)]];return function(r,t,e){return hWe(n,0,t,e)}}(r);return function(r,a,u){return IJe(r,a,e(r,a,t(r,a,hWe(n,0,a,u))))}}),u=WXe(r)(sCn,a);return HXe(r,[0,wve,[0,xoe(bCn),[0,wve,[0,[0,wve,e]]]]]),HXe(r,[0,wve,[0,xoe(lCn),[0,wve,[0,[0,wve,u]]]]])}function V5e(r){return X3e(r,1,H$n,0,C$n,function(r,n,t){return hWe(Q$n,0,n,t)})}function L5e(r){return J3e(r,1,R$n,0,O$n,function(r,n,t){return hWe(K$n,0,n,t)})}function z5e(r){return X3e(r,1,$$n,0,G$n,function(r,n,t){return hWe(U$n,0,n,t)})}function S5e(r){return J3e(r,1,P$n,0,M$n,function(r,n,t){return hWe(F$n,0,n,t)})}function Z5e(r){return X3e(r,1,T$n,0,N$n,function(r,n,t){return hWe(E$n,0,n,t)})}function W5e(r){return J3e(r,1,D$n,0,I$n,function(r,n,t){return hWe(q$n,0,n,t)})}function X5e(r){return X3e(r,1,g$n,1,w$n,aXe[3])}function J5e(r){return J3e(r,1,y$n,1,x$n,aXe[4])}function Y5e(r){return X3e(r,1,h$n,3,_$n,function(r,n,t){return hWe(d$n,0,n,t)})}function r7e(r){return J3e(r,1,m$n,3,p$n,function(r,n,t){return hWe(k$n,0,n,t)})}function n7e(r){return tYe(0,r,j$n,B$n,l$n,function(r,n,t){var e=RJe(r,b$n),a=e[2],u=e[1],f=$3e(r),i=o2e(),c=v2e(r,0,t),v=Z3e(r);return function(r,e,o){return GL(n,r,e,GL(t,r,e,v(r,e,c(r,e,GL(u,r,e,GL(a,r,e,i(r,e,GL(n,r,e,GL(t,r,e,_We(f,a,r,e,o))))))))))}})}function t7e(r){return tYe(0,r,s$n,A$n,0,function(r,n,t){var e=RJe(r,o$n),a=e[2],u=e[1],f=K3e(r),i=o2e(),c=Z3e(r),v=c2e();return function(r,e,o){return GL(t,r,e,v(r,e,GL(u,r,e,GL(n,r,e,GL(a,r,e,c(r,e,GL(n,r,e,GL(t,r,e,i(r,e,_We(a,f,r,e,o))))))))))}})}function e7e(r,n,t){var e=h6e(n,t);if(e){var a=e[1];if(1===a[0]){var u=[9,[0,wve,a[1]]];return function(r,n,t){return hWe(u,0,n,t)}}}throw kQ([0,YL,wPn],1)}function a7e(r){return r[14][2][1]=1,rYe(0,r,"initialize_root_array",0,function(r){var n=$H(r[14][1][1][1]),t=function(r,n){return yWe(n,YY(function(r){return r[2]},CWe(r[14][1][1])))}(r,function(n,t){return rYe(0,r,PL(R3(Pqn),n),0,function(r){var e=tJe(r)(Mqn,Fqn),a=PL(t,r),u=wJe($H(n));return function(r,n,t){return u(r,n,_We(a,e,r,n,t))}})}),e=tJe(r)(Gqn,Uqn),a=wJe(n);return function(r,n,u){return a(r,n,_We(e,t,r,n,u))}})}function u7e(r){var n=[12,[0,wve,zXe(r,lgn)]];return function(r,t,e){return hWe(n,0,t,e)}}function f7e(r){var n=[12,[0,wve,zXe(r,$wn)]];return function(r,t,e){return hWe(n,0,t,e)}}function i7e(r,n){var t=s3e(r,2),e=y3e(r),a=uJe(dWe,s3e(r,11)),u=o5e(r),f=l5e(r,n[1]),i=uJe(function(r,n,t){return f(r,n,_We(u,a,r,n,t))},dWe),c=hJe(0),v=o5e(r),o=n[1],A=tJe(r)(Cqn,Qqn),s=z4e(r,o),b=uJe(function(r,n,t){return _We(s,A,r,n,v(r,n,_We(c,i,r,n,t)))},function(r,n,a){return _We(e,t,r,n,a)}),l=p5e(r),B=[12,[0,wve,zXe(r,Own)]],j=tJe(r)(Pwn,Mwn);return function(r,n,t){return j(r,n,hWe(B,0,n,_We(l,b,r,n,t)))}}function c7e(r,n){return q5e(g5e,r,n)}var v7e=dCe[1];function o7e(r,n){return"number"!=typeof n&&0!==n[0]?1:0}function A7e(r,n){return"number"==typeof n?0:1}function s7e(r,n,t,e){if(r){var a=_Ce[10].call(null,e,t),u=MCe(dCe[16].call(null,A7e,n)),f=_Ce[8].call(null,u,a),i=MCe(dCe[16].call(null,o7e,n)),c=_Ce[8].call(null,i,e);return FCe(1,_Ce[7].call(null,c,f))}var v=MCe(dCe[16].call(null,A7e,n));return FCe(2,_Ce[8].call(null,v,e))}function b7e(r){var n=Pme(r);if("number"!=typeof n&&2===n[0]){var t=n[1];switch(t){case 12:return 1;case 13:return 2;case 3:case 4:case 5:case 6:case 8:case 9:case 10:case 11:case 14:return[1,t]}}return 0}function l7e(r,n,t,e,a){var u=dCe[28].call(null,e,t);if("number"==typeof u)switch(u){case 0:return[0,n,dWe];case 1:var f=x6e(r,n,e,a),i=f[1],c=[9,[0,wve,f[2]]],v=c0e(r);return[0,i,function(r,n,t){return v(r,n,hWe(c,0,n,t))}];default:return[0,y6e(n,e,A0e(r),a),dWe]}return[0,g6e(r,n,e,u[1],a)[1],dWe]}function B7e(r){if("number"==typeof r)return 0;switch(r[0]){case 0:return[2,r[1]];case 2:return[0,Y0e(3,PL(wye[23],r[1]))];case 3:return[0,Y0e(4,PL(gye[23],r[1]))];case 4:return[0,Y0e(5,PL(qye[23],r[1]))];case 5:var n=PL(Iye[25],r[1]);return[3,6,Gxe(xxe(n,Oxe(2,63))?Ixe(n,Oxe(2,64)):n)];case 7:return[0,Y0e(8,PL(Dye[23],r[1]))];case 8:return[0,Y0e(9,PL(Eye[23],r[1]))];case 9:return[0,Y0e(10,PL(Nye[23],r[1]))];case 10:return[3,11,Gxe(PL(Tye[25],r[1]))];case 11:return[4,r[1]];case 12:return[5,r[1]];case 13:return[0,Y0e(14,$H(r[1]))];case 14:return[6,r[1]];case 15:return[7,r[1]];default:return[1,PL(xye[25],r[1])]}}function j7e(r){return[0,[2,[7,B7e(r)]],dWe]}function k7e(r,n,t){var e=j7e(t),a=e[2],u=j6e(r,e[1],n);return function(r,n,t){return _We(a,u,r,n,t)}}function p7e(r,n,t,e,a){var u=fJe(1,function(n,a,u){return GL(t,n,a,_We(e,r,n,a,u))},a),f=hJe(0),i=DJe(EJe,Eyn),c=DJe(TJe,Tyn),v=DJe(EJe,Fyn),o=DJe(TJe,Pyn);return function(r,n,a){return GL(t,r,n,GL(t,r,n,o(r,n,hWe(Myn,0,n,v(r,n,GL(e,r,n,GL(e,r,n,c(r,n,hWe(Nyn,0,n,i(r,n,hWe(Dyn,0,n,_We(f,u,r,n,a))))))))))))}}function m7e(r,n,t,e){return tYe(0,r,GWe(11,n),oyn,vyn,function(r,n,a){var u=RJe(r,cyn),f=u[2],i=u[1],c=e2e(r),v=AJe(r,TX),o=Y1e(r,64),A=PL(t,r),s=n2e(r),b=n2e(r);return $L(e,r,n,a,function(r,t,e){return GL(n,r,t,b(r,t,GL(a,r,t,s(r,t,GL(A,r,t,GL(i,r,t,GL(f,r,t,o(r,t,v(r,t,_We(f,c,r,t,e))))))))))})})}function d7e(r,n,t,e,a){var u=fJe(1,function(n,a,u){return GL(t,n,a,_We(e,r,n,a,u))},a),f=hJe(0),i=DJe(EJe,fyn),c=DJe(EJe,iyn);return function(r,n,a){return GL(t,r,n,c(r,n,GL(e,r,n,i(r,n,hWe(uyn,0,n,_We(f,u,r,n,a))))))}}function _7e(r,n,t,e){return tYe(0,r,GWe(6,n),Sxn,zxn,function(r,n,a){var u=RJe(r,Lxn),f=u[2],i=u[1],c=e2e(r),v=AJe(r,TX),o=J1e(r,64),A=PL(t,r),s=t2e(r),b=t2e(r);return $L(e,r,n,a,function(r,t,e){return GL(n,r,t,b(r,t,GL(a,r,t,s(r,t,GL(A,r,t,GL(i,r,t,GL(f,r,t,o(r,t,v(r,t,_We(f,c,r,t,e))))))))))})})}function h7e(r){var n=AJe(r,TX),t=hJe(0),e=DJe(7,Vxn);return function(r,a,u){return e(r,a,_We(t,n,r,a,u))}}function x7e(r,n,t){return tYe(0,r,GWe(10,n),Qxn,Rxn,function(r,n,e){var a=RJe(r,Gxn),u=a[2],f=a[1],i=DJe(TJe,$xn),c=function(r){var n=h7e(r),t=DJe(TJe,Hxn);return function(r,e,a){return t(r,e,hWe(Cxn,0,e,n(r,e,a)))}}(r),v=DJe(NJe,Kxn),o=[20,[1,t]],A=DJe(NJe,Oxn);return function(r,t,a){return GL(n,r,t,A(r,t,GL(e,r,t,v(r,t,hWe(o,0,t,GL(f,r,t,GL(u,r,t,GL(u,r,t,c(r,t,_We(u,i,r,t,a))))))))))}})}function y7e(r,n,t){return tYe(0,r,GWe(5,n),Uxn,Pxn,function(r,n,e){var a=RJe(r,Nxn),u=a[2],f=a[1],i=DJe(TJe,Txn),c=h7e(r),v=DJe(EJe,Fxn),o=[20,[1,t]],A=DJe(EJe,Mxn);return function(r,t,a){return GL(n,r,t,A(r,t,GL(e,r,t,v(r,t,hWe(o,0,t,GL(f,r,t,GL(u,r,t,c(r,t,_We(u,i,r,t,a)))))))))}})}function w7e(r,n){var t=AJe(r,TX),e=hJe(0),a=DJe(7,WH(iz,n));return function(r,n,u){return a(r,n,_We(e,t,r,n,u))}}function g7e(r,n){var t=w7e(r,n),e=DJe(TJe,Exn);return function(r,n,a){return e(r,n,hWe(Dxn,0,n,t(r,n,a)))}}function q7e(r,n,t,e){return tYe(0,r,GWe(n,t),Ixn,qxn,function(r,n,t){var a=RJe(r,xxn),u=a[2],f=a[1],i=DJe(TJe,yxn),c=g7e(r,16),v=DJe(NJe,wxn),o=DJe(NJe,gxn);return function(r,a,A){return GL(n,r,a,o(r,a,GL(t,r,a,v(r,a,GL(e,r,a,GL(f,r,a,GL(u,r,a,GL(u,r,a,c(r,a,_We(u,i,r,a,A))))))))))}})}function I7e(r,n,t,e){var a=[20,[1,e]];return q7e(r,n,t,function(r,n,t){return hWe(a,0,n,t)})}function D7e(r,n,t,e){return tYe(0,r,GWe(n,t),hxn,_xn,function(r,n,t){var a=RJe(r,kxn),u=a[2],f=a[1],i=DJe(TJe,pxn),c=w7e(r,16),v=DJe(EJe,mxn),o=DJe(EJe,dxn);return function(r,a,A){return GL(n,r,a,o(r,a,GL(t,r,a,v(r,a,GL(e,r,a,GL(f,r,a,GL(u,r,a,c(r,a,_We(u,i,r,a,A)))))))))}})}function E7e(r,n,t,e){var a=[20,[1,e]];return D7e(r,n,t,function(r,n,t){return hWe(a,0,n,t)})}function N7e(r,n,t){if(1===n){return[0,0,3,function(r,n,t){return hWe(0,0,n,t)}]}r:{n:if("number"==typeof n){if(1===n){var e=function(r,n,t){return hWe(0,0,n,t)};break r}}else if(2===n[0]){var a=n[1];t:{e:{a:{switch(a){case 2:switch(t){case 1:e=O1e(zX,N0e,E1e,r);break r;case 3:e=O1e(J0n,P5e,R5e,r);break r;case 4:e=O1e(Y0n,T5e,O5e,r);break r;case 5:e=V1e(r);break r;default:break t}case 3:if(2!==t)break a;var u=DJe(EJe,O_n);e=D7e(r,3,R_n,function(r,n,t){return u(r,n,hWe(K_n,0,n,t))});break r;case 4:if(2!==t)break a;e=E7e(r,4,Q_n,2);break r;case 5:if(3<=t)break a;switch(t){case 0:e=y7e(r,C_n,0);break r;case 1:e=y7e(r,H_n,1);break r;default:e=y7e(r,V_n,2);break r}case 6:switch(t){case 0:var f=function(r,n,t){return hWe(L_n,0,n,t)};e=_7e(r,z_n,R1e,function(r,n,t,e){return d7e(f,0,n,t,e)});break r;case 1:e=_7e(r,S_n,U5e,function(r,n,t){var e=AJe(r,TX),a=_Je(9);function u(r,u,f){return a(r,u,e(r,u,GL(n,r,u,GL(t,r,u,hWe($_n,0,u,f)))))}return function(r){return d7e(u,0,n,t,r)}});break r;case 2:var i=function(r,n,t){return hWe(Z_n,0,n,t)};e=_7e(r,W_n,H1e,function(r,n,t,e){return function(r,n,t,e,a){var u=fJe(1,function(n,a,u){return GL(t,n,a,_We(e,r,n,a,u))},a),f=_Je(9),i=wJe(nyn);return function(r,n,a){return GL(t,r,n,hWe(ayn,0,n,GL(e,r,n,hWe(eyn,0,n,hWe(tyn,0,n,i(r,n,_We(f,u,r,n,a)))))))}}(i,0,n,t,e)});break r;case 3:e=function(r,n,t){return hWe(X_n,0,n,t)};break r;case 4:e=function(r,n,t){return hWe(J_n,0,n,t)};break r;case 5:var c=T0e(r);e=_7e(r,Y_n,V1e,function(r,n,t,e){return function(r,n,t,e,a){var u=fJe(1,function(n,a,u){return GL(t,n,a,_We(e,r,n,a,u))},a),f=_Je(8),i=wJe(Zxn),c=DJe(1,Xxn),v=oJe(n,FX),o=_Je(9),A=wJe(Yxn),s=fJe(1,t,function(r,n,a){return GL(e,r,n,A(r,n,o(r,n,v(r,n,GL(t,r,n,hWe(Jxn,0,n,c(r,n,GL(e,r,n,hWe(Wxn,0,n,i(r,n,_We(f,u,r,n,a)))))))))))}),b=hJe(0),l=DJe(EJe,ryn),B=fJe(1,IJe,function(r,n,e){return GL(t,r,n,l(r,n,_We(b,s,r,n,e)))}),j=hJe(0);return function(r,n,t){return GL(e,r,n,_We(j,B,r,n,t))}}(c,r,n,t,e)});break r;case 10:e=function(r,n,t){return hWe(rhn,0,n,t)};break r;case 16:e=T0e(r);break r}break;case 7:switch(t){case 1:e=O1e(LX,E0e,D1e,r);break r;case 3:e=O1e(W0n,M5e,$5e,r);break r;case 4:e=O1e(X0n,N5e,K5e,r);break r;case 5:var v=V1e(r),o=RJe(r,nhn),A=o[2],s=o[1],b=RJe(r,thn),l=b[2],B=b[1],j=oJe(r,ehn),k=RJe(r,b0n),p=k[2],m=k[1],d=tJe(r)(XXn,WXn),_=function(r,n,t){return d(r,n,hWe(aJ,0,n,t))},h=_Je(2),x=wJe(l0n),y=U1e(),w=$Ye(r,B0n,function(r,n,t){return GL(p,r,n,y(r,n,_We(x,h,r,n,t)))},function(r,n,t){return _We(p,_,r,n,t)});e=function(r,n,t){return GL(B,r,n,GL(s,r,n,GL(l,r,n,function(r,n,t){return GL(m,r,n,_We(p,w,r,n,t))}(r,n,j(r,n,GL(A,r,n,_We(l,v,r,n,t)))))))};break r;default:break t}case 8:if(2!==t)break a;var g=DJe(NJe,uhn);e=q7e(r,8,fhn,function(r,n,t){return g(r,n,hWe(ahn,0,n,t))});break r;case 9:if(2!==t)break a;e=I7e(r,9,ihn,2);break r;case 10:if(3<=t)break a;switch(t){case 0:e=x7e(r,chn,0);break r;case 1:e=x7e(r,vhn,1);break r;default:e=x7e(r,ohn,2);break r}case 11:switch(t){case 0:var q=function(r,n,t){return hWe(Ahn,0,n,t)};e=m7e(r,shn,R1e,function(r,n,t,e){return p7e(q,0,n,t,e)});break r;case 1:var I=function(r,n,t){return hWe(bhn,0,n,t)};e=m7e(r,lhn,F5e,function(r,n,t,e){return p7e(I,0,n,t,e)});break r;case 2:var D=function(r,n,t){return hWe(Bhn,0,n,t)};e=m7e(r,jhn,H1e,function(r,n,t,e){return function(r,n,t,e,a){var u=fJe(1,function(n,a,u){return GL(t,n,a,_We(e,r,n,a,u))},a),f=_Je(9),i=wJe(_yn),c=DJe(TJe,wyn),v=DJe(TJe,Iyn);return function(r,n,a){return GL(t,r,n,GL(t,r,n,v(r,n,hWe(qyn,0,n,hWe(gyn,0,n,GL(e,r,n,GL(e,r,n,c(r,n,hWe(yyn,0,n,hWe(xyn,0,n,hWe(hyn,0,n,i(r,n,_We(f,u,r,n,a)))))))))))))}}(D,0,n,t,e)});break r;case 3:e=function(r,n,t){return hWe(khn,0,n,t)};break r;case 4:e=function(r,n,t){return hWe(phn,0,n,t)};break r;case 5:var E=RJe(r,mhn),N=E[2],T=E[1],F=T0e(r),M=m7e(r,dhn,V1e,function(r,n,t,e){return function(r,n,t,e,a){var u=fJe(1,function(n,a,u){return GL(t,n,a,_We(e,r,n,a,u))},a),f=_Je(8),i=wJe(Ayn),c=DJe(1,byn),v=DJe(TJe,jyn),o=oJe(n,FX),A=_Je(9),s=wJe(kyn),b=fJe(1,t,function(r,n,a){return GL(e,r,n,s(r,n,A(r,n,o(r,n,GL(t,r,n,GL(t,r,n,v(r,n,hWe(Byn,0,n,hWe(lyn,0,n,c(r,n,GL(e,r,n,hWe(syn,0,n,i(r,n,_We(f,u,r,n,a))))))))))))))}),l=hJe(0),B=DJe(NJe,pyn),j=fJe(1,IJe,t),k=hJe(0),p=fJe(1,function(r,n,t){return GL(e,r,n,IJe(r,n,hWe(myn,0,n,_We(k,j,r,n,t))))},function(r,n,e){return GL(t,r,n,B(r,n,_We(l,b,r,n,e)))}),m=_Je(0),d=wJe(dyn),_=fJe(1,IJe,function(r,n,e){return GL(t,r,n,d(r,n,_We(m,p,r,n,e)))}),h=hJe(0);return function(r,n,t){return GL(e,r,n,_We(h,_,r,n,t))}}(F,r,n,t,e)}),P=oJe(r,_hn),U=_Je(2),G=wJe(hhn);e=function(r,n,t){return GL(T,r,n,GL(N,r,n,G(r,n,U(r,n,P(r,n,_We(N,M,r,n,t))))))};break r;case 10:e=function(r,n,t){return hWe(xhn,0,n,t)};break r;case 16:e=tYe(1,r,f3n,u3n,a3n,function(r,n,t){var e=T0e(r),a=AJe(r,t3n),u=_Je(8),f=wJe(e3n);return function(r,i,c){return GL(t,r,i,f(r,i,u(r,i,a(r,i,GL(n,r,i,_We(t,e,r,i,c))))))}});break r}break;case 12:switch(t){case 0:e=function(r,n,t){return hWe(yhn,0,n,t)};break r;case 1:e=function(r,n,t){return hWe(whn,0,n,t)};break r;case 2:e=function(r,n,t){return hWe(ghn,0,n,t)};break r;case 3:e=function(r,n,t){return hWe(qhn,0,n,t)};break r;case 4:e=tJe(r)(Dhn,Ihn);break r;case 5:e=tJe(r)(Nhn,Ehn);break r;default:break n}case 13:switch(t){case 0:e=function(r,n,t){return hWe(Thn,0,n,t)};break r;case 1:e=function(r,n,t){return hWe(Fhn,0,n,t)};break r;case 2:e=function(r,n,t){return hWe(Mhn,0,n,t)};break r;case 3:e=function(r,n,t){return hWe(Phn,0,n,t)};break r;case 4:e=tJe(r)(Ghn,Uhn);break r;case 5:e=tJe(r)(Khn,$hn);break r;default:break n}case 15:if(17>t)break n;e=tJe(r)(IZn,qZn);break r;default:break n}switch(t){case 9:e=function(r,n,t){return hWe(Ohn,0,n,t)};break r;case 11:e=function(r,n,t){return hWe(Rhn,0,n,t)};break r;case 12:e=function(r,n,t){return hWe(Qhn,0,n,t)};break r;case 13:e=function(r,n,t){return hWe(Chn,0,n,t)};break r;case 14:e=function(r,n,t){return hWe(Hhn,0,n,t)};break r;case 15:e=function(r,n,t){return hWe(Vhn,0,n,t)};break r;case 6:case 7:case 8:break e;default:break n}}switch(t){case 9:var $=O0e(a),K=R0e(a);e=function(r,n,t){return K(r,n,$(r,n,hWe(Lhn,0,n,t)))};break r;case 11:e=tYe(1,r,GWe(a,l2n),b2n,s2n,function(r,n,t){var e=DJe(14,$H(M0e(a))),u=C0e(a),f=O0e(a),i=R0e(a);return function(r,a,c){return GL(n,r,a,GL(n,r,a,e(r,a,hWe(A2n,0,a,GL(t,r,a,i(r,a,f(r,a,hWe(o2n,0,a,u(r,a,c)))))))))}});break r;case 12:e=tYe(1,r,GWe(a,v2n),c2n,i2n,function(r,n,t){var e=DJe(13,$H(M0e(a))),u=C0e(a),f=O0e(a),i=R0e(a);return function(r,a,c){return GL(n,r,a,GL(n,r,a,e(r,a,hWe(f2n,0,a,GL(t,r,a,i(r,a,f(r,a,hWe(u2n,0,a,u(r,a,c)))))))))}});break r;case 13:e=function(r,n,t){return hWe(zhn,0,n,t)};break r;case 14:e=function(r,n,t){return hWe(Shn,0,n,t)};break r;case 15:var O=R0e(a);e=function(r,n,t){return O(r,n,hWe(E2n,0,n,t))};break r;case 0:case 1:switch(a-3|0){case 5:case 6:if(t){e=I7e(r,a,Zhn,1);break r}e=I7e(r,a,Whn,0);break r;case 2:case 7:break n;default:if(t){e=E7e(r,a,Xhn,1);break r}e=E7e(r,a,Jhn,0);break r}case 2:case 17:break n;case 6:case 7:case 8:break;default:if(8<=a)switch(t-3|0){case 1:e=function(r,n,t){return hWe(Yhn,0,n,t)};break r;case 2:e=tYe(0,r,GWe(a,txn),nxn,rxn,function(r,n,t){var e=RJe(r,E_n),u=e[2],f=e[1],i=M0e(a),c=PWe(n),v=PWe(t),o=Q0e(a);a:{var A=function(r,n,t){return _We(IJe,o,r,n,t)};if(10<=a){if(11>a){var s=11;break a}}else if(8<=a){s=10;break a}throw kQ([0,YL,N_n],1)}var b=0|-((2*M0e(s)|0)-2|0),l=Q0e(a),B=g7e(r,i),j=r1e(r,6),k=oJe(r,FX),p=_Je(2),m=wJe($H(b)),d=DJe(1,$H(i-1|0)),_=_1e(n),h=oJe(r,FX),x=_Je(9),y=wJe(F_n),w=Q0e(a),g=wJe(WH(fz,KH(U0e(a)))),q=Q0e(a),I=fJe(1,function(r,t,e){return _We(n,q,r,t,e)},g),D=fJe(1,function(r,n,e){return GL(t,r,n,IJe(r,n,hWe(M_n,0,n,I(r,n,e))))},function(r,t,e){return _We(n,w,r,t,e)}),E=_Je(2),N=fJe(1,function(r,t,e){return GL(n,r,t,qJe(r,t,_We(E,D,r,t,e)))},function(r,e,a){return GL(t,r,e,y(r,e,x(r,e,h(r,e,_(r,e,d(r,e,GL(t,r,e,hWe(T_n,0,e,m(r,e,p(r,e,k(r,e,GL(n,r,e,GL(t,r,e,j(r,e,GL(f,r,e,GL(u,r,e,GL(u,r,e,B(r,e,_We(u,l,r,e,a)))))))))))))))))))}),T=_Je(8),F=wJe(U_n),M=_Je(6),P=fJe(1,function(r,t,e){return GL(n,r,t,IJe(r,t,M(r,t,GL(n,r,t,F(r,t,T(r,t,hWe(P_n,0,t,N(r,t,e))))))))},A),U=oJe(r,G_n),G=_Je(2),$=R0e(a),K=R0e(a);return function(r,e,a){return GL(n,r,e,K(r,e,c(r,e,GL(t,r,e,$(r,e,v(r,e,GL(t,r,e,qJe(r,e,G(r,e,U(r,e,GL(t,r,e,_We(GYe,UYe,r,e,P(r,e,a)))))))))))))}});break r;case 7:var R=C0e(a),Q=O0e(a),C=R0e(a);e=function(r,n,t){return C(r,n,Q(r,n,hWe(exn,0,n,R(r,n,t))))};break r;case 13:e=tYe(1,r,GWe(a,k2n),m2n,p2n,function(r,n,t){switch(a){case 3:case 8:var e=3;break;case 4:case 9:e=4;break;case 5:case 10:e=5;break;case 6:case 11:e=6;break;default:throw kQ([0,YL,J2n],1)}var u=r1e(r,e),f=AJe(r,B2n),i=_Je(8),c=wJe(j2n);return function(r,e,a){return GL(t,r,e,c(r,e,i(r,e,f(r,e,GL(n,r,e,_We(t,u,r,e,a))))))}});break r;default:e=tYe(0,r,GWe(a,"div"),uxn,axn,function(r,n,t){var e=RJe(r,y_n),u=e[2],f=e[1],i=iJe(r,w_n,function(r,n,t){return hWe(0,0,n,t)},u),c=GJe(g_n),v=R0e(a),o=iJe(r,q_n,function(r,n,e){return GL(t,r,n,v(r,n,_We(c,i,r,n,e)))},u),A=GJe(I_n),s=Q0e(a);return function(r,e,a){return GL(n,r,e,GL(t,r,e,hWe(D_n,0,e,s(r,e,GL(f,r,e,GL(n,r,e,_We(A,o,r,e,a)))))))}});break r}switch(t-3|0){case 1:e=function(r,n,t){return hWe(fxn,0,n,t)};break r;case 2:e=tYe(0,r,GWe(a,vxn),cxn,ixn,function(r,n,t){var e=RJe(r,m_n),u=e[2],f=e[1],i=M0e(a),c=PWe(n),v=PWe(t),o=Q0e(a),A=Q0e(a);a:{var s=function(r,n,t){return _We(IJe,o,r,n,t)},b=function(r,t,e){return _We(n,A,r,t,e)};if(5<=a){if(6>a){var l=6;break a}}else if(3<=a){l=5;break a}throw kQ([0,YL,d_n],1)}var B=0|-((2*M0e(l)|0)-2|0),j=Q0e(a),k=w7e(r,i),p=r1e(r,6),m=oJe(r,FX),d=_Je(2),_=wJe($H(B)),h=DJe(1,$H(i)),x=d1e(n),y=oJe(r,FX),w=_Je(9),g=wJe(h_n),q=fJe(1,function(r,e,a){return GL(t,r,e,g(r,e,w(r,e,y(r,e,x(r,e,h(r,e,GL(t,r,e,hWe(__n,0,e,_(r,e,d(r,e,m(r,e,GL(n,r,e,GL(t,r,e,p(r,e,GL(f,r,e,GL(u,r,e,k(r,e,_We(u,j,r,e,a))))))))))))))))))},b),I=DJe(EJe,x_n),D=fJe(1,function(r,t,e){return GL(n,r,t,I(r,t,_We(GYe,UYe,r,t,q(r,t,e))))},s),E=R0e(a),N=R0e(a);return function(r,e,a){return GL(n,r,e,N(r,e,c(r,e,GL(t,r,e,E(r,e,v(r,e,GL(t,r,e,_We(GYe,UYe,r,e,D(r,e,a)))))))))}});break r;case 7:var H=C0e(a),V=O0e(a),L=R0e(a);e=function(r,n,t){return L(r,n,V(r,n,hWe(oxn,0,n,H(r,n,t))))};break r;case 13:e=r1e(r,a);break r;default:var z=Q0e(a);e=function(r,n,t){return hWe(Axn,0,n,z(r,n,t))};break r}}}switch(t-6|0){case 0:e=function(r,n,t){return hWe(sxn,0,n,t)};break r;case 1:e=function(r,n,t){return hWe(bxn,0,n,t)};break r;default:e=function(r,n,t){return hWe(lxn,0,n,t)};break r}}if(3>t)switch(t){case 0:e=O1e(HX,D0e,q1e,r);break r;case 2:e=O1e(VX,C1e,I1e,r);break r}}var S=[0,Jhe(n),0];e=KJe(r,jxn,[1,Bxn,[0,Nge(t),S]])}var Z=v6e(n);return[0,v6e(n),Z,e]}function T7e(r){return function(n){r:{if("number"!=typeof n){switch(n[0]){case 2:switch(n[1]){case 12:return xJe(0);case 13:return function(r,n,t){return hWe(j_n,0,n,hWe(B_n,0,n,t))};case 15:return S2e(r,0);case 2:case 7:return Z1e(r);case 16:case 18:break;case 0:case 17:case 19:break r;default:return _Je(0)}break;case 3:if(1!==n[1])break r;break;case 8:if(n[1])return function(r){var n=RJe(r,Egn),t=n[2],e=n[1],a=RJe(r,Ngn),u=a[2],f=a[1],i=TYe(0),c=m2e(r,Tgn),v=J2e(0,Fgn),o=J2e(0,Mgn),A=fJe(1,function(r,n,e){return GL(t,r,n,o(r,n,GL(u,r,n,_We(v,c,r,n,e))))},i),s=m2e(r,Pgn),b=J2e(0,Ugn),l=J2e(0,Ggn);return function(r,n,a){return GL(f,r,n,GL(e,r,n,GL(t,r,n,l(r,n,GL(u,r,n,b(r,n,_We(s,A,r,n,a)))))))}}(r);break r;default:break r}return m2e(r,p_n)}if(1===n){return function(r,n,t){return hWe(0,0,n,t)}}}return KJe(r,k_n,Jhe(n))}}function F7e(r,n,t,e){var a=tYe(1,r,TSn,NSn,ESn,function(r,n,t){var e=function(r){return tYe(1,r,GSn,USn,PSn,function(r,n,t){var e=AYe(vJ),a=FJe(oJ),u=DJe(0,Z2e),f=AJe(r,MSn),i=_Je(3),c=X2e();return function(r,v,o){return GL(t,r,v,GL(n,r,v,c(r,v,i(r,v,f(r,v,GL(t,r,v,u(r,v,a(r,v,GL(n,r,v,e(r,v,hWe(FSn,0,v,o)))))))))))}})}(r),a=f2e(r,b2e(r,1,DSn));return function(r,u,f){return GL(n,r,u,GL(t,r,u,_We(a,e,r,u,f)))}}),u=$7e(r,n,e),f=$7e(r,n,t);return function(r,n,t){return f(r,n,_We(u,a,r,n,t))}}function M7e(r,n,t,e,a){r:{n:{t:{e:{a:{u:{f:{i:{c:{v:{o:{A:{s:{b:{l:{B:{j:{k:{p:{m:{d:{_:{h:{var f=t,i=e;x:for(;;){let t=i;var c=function(e,a){var u=xWe(function(t){return U7e(r,n,e,t)},t);return[0,e,function(r,n,t){return _We(u,a,r,n,t)}]};if("number"==typeof f)break t;switch(f[0]){case 0:if(!i)break r;var v=i[2];if(!v)break r;if(v[2])break r;var o=v[1],A=i[1],s=rde(Ume(A[3][1])),b=s[2],l=s[1],B=s[5],j=LY(s[4]);switch(b){case 0:var k=LY(B);break;case 1:throw kQ([0,YL,Aln],1);default:k=0}var p=P7e(r,n,A),m=p[2],d=p[1];y:{if("number"!=typeof d&&2===d[0]){var _=d[1];if("number"!=typeof _&&0===_[0]&&_[3]){var h=o[2];if(0===j){var x=1;break y}if(1===j){x=1;break y}if(0===h[0]){var w=h[1],g=w[1];if("number"==typeof g&&!g&&LY(w[2])===j){x=1;break y}}x=0;break y}}x=0}if("number"==typeof d)break u;if(2!==d[0])break u;var I=d[1];if("number"==typeof I)break u;if(0!==I[0])break u;var D=I[3];if(!D)break a;var E=D[1];if(!x)break a;if(0!==l)throw kQ([0,YL,sln],1);var N=o[2];if(0===j)break e;if(1!==j){if(0===N[0]){var T=N[1],F=T[1];if("number"==typeof F&&!F){var M=T[2];if(LY(M)!==j)throw kQ([0,YL,bln],1);f=E,i=M;break}}throw kQ([0,zL,lln],1)}f=E,i=[0,o,0];break;case 1:break f;case 2:break i;case 3:break c;case 4:break v;case 5:if(!i)break r;if(i[2])break r;var P=f[1];return[0,0,d0e(r,P,$7e(r,n,i[1]))];case 6:break o;case 7:break A;case 8:break s;case 9:break b;case 12:break l;case 13:break B;case 14:break j;case 15:break k;case 16:break p;case 17:if(!i)break r;if(i[2])break r;return P7e(r,n,i[1]);case 18:break m;case 19:if(i)break r;return[0,0,g3e(r)];case 20:break d;case 23:break _;case 24:break h;case 25:break x;case 26:if(!i)break r;if(i[2])break r;return[0,mmn,vJe(r,"Deprecated with enhanced orthogonal persistence")];case 27:if(i)break r;return[0,nJ,Z4e(r,f[1])];default:break r}}if(i)break r;var U=f[1],G=tJe(r)(SKn,zKn),$=wJe(ZKn),K=vJe(r,"Detected implicit upgrade from classical orthogonal persistence to enhanced orthogonal persistence. Recompile with explicit flag --enhanced-orthogonal-persistence and redeploy to enable this irreversible migration."),O=AJe(r,Fwn),Q=k5e(r),C=S4e(r,U),H=z3e(r),V=wJe(C3e),L=AJe(r,"Unsupported stable memory version when upgrading from graph-copy-based stabilization"),z=GJe(R3e),S=L3e(r),Z=fJe(1,wJe(Q3e),function(r,n,t){return S(r,n,z(r,n,_We(L,V,r,n,t)))}),W=GJe(O3e),X=L3e(r),J=o5e(r),Y=oJe(r,"Destabilization is not yet completed: Call __motoko_destabilize_after_upgrade"),rr=hJe(0),tr=o5e(r),er=fJe(1,function(r,n,t){return tr(r,n,rr(r,n,_We(Y,J,r,n,X(r,n,W(r,n,_We(Z,H,r,n,C(r,n,t)))))))},function(r,n,t){return Q(r,n,_We(O,K,r,n,t))}),ar=p5e(r),ur=i6e(r),fr=aYe(r),ir=f6e(r),cr=QJe(r,AIn),vr=cr[2],or=cr[1],Ar=n6e(r),sr=wJe(sIn),br=V4e(r,pJ,0),lr=V4e(r,kJ,0),Br=V4e(r,jJ,1),jr=V3e(r),kr=H4e(r,jJ,1),pr=H4e(r,kJ,0),dr=AJe(r,UL(R3(bIn),RH(TM,Q3e),RH(TM,C3e))),_r=GJe(C3e),hr=L3e(r),xr=GJe(Q3e),yr=L3e(r),wr=z3e(r),qr=H4e(r,pJ,0),Ir=V3e(r),Dr=wJe(jIn),Er=uJe(function(r,n,t){return _We(Dr,Ir,r,n,t)},function(r,n,t){return qr(r,n,hWe(BIn,0,n,wr(r,n,yr(r,n,xr(r,n,hr(r,n,_r(r,n,hWe(lIn,0,n,dr(r,n,pr(r,n,GL(or,r,n,kr(r,n,jr(r,n,Br(r,n,lr(r,n,br(r,n,sr(r,n,_We(vr,Ar,r,n,t))))))))))))))))))}),Nr=hJe(0),Tr=Q4e(r),Fr=tJe(r)(aIn,eIn),Mr=W4e(r,U),Pr=L4e(r),Ur=fJe(1,w2e(r,YY(function(r){return[0,r[1],function(r){return ZYe}]},Zme(U)[2])),function(r,n,t){return Pr(r,n,_We(Mr,Fr,r,n,t))}),Gr=hJe(0),$r=L4e(r),Or=S4e(r,U),Qr=fJe(1,function(r,n,t){return Or(r,n,$r(r,n,Gr(r,n,Ur(r,n,Tr(r,n,_We(Nr,Er,r,n,ir(r,n,fr(r,n,hWe(lGn,0,n,ur(r,n,t))))))))))},function(r,n,t){return _We(ar,er,r,n,t)}),Cr=m5e(r);return[0,0,function(r,n,t){return Cr(r,n,Qr(r,n,_We($,G,r,n,t)))}]}if(i)break r;var Hr=f[1],Vr=i6e(r),Lr=aYe(r),zr=QJe(r,kIn),Zr=zr[2],Wr=zr[1],Xr=L3e(r),Jr=C4e(r,pJ,0,function(r,n,t){return Xr(r,n,hWe(pIn,0,n,t))}),Yr=C4e(r,kJ,0,Zr),rn=C4e(r,jJ,1,H3e(r)),nn=tYe(0,r,cKn,iKn,0,function(r,n,t){var e=RJe(r,"sum"),a=e[2],u=e[1],f=oJe(r,nKn),i=_Je(2),c=wJe(tKn),v=e6e(r),o=DJe(0,eKn),A=wJe(lC(16,0,0)),s=oJe(r,uKn),b=_Je(3);return function(r,e,l){return GL(n,r,e,GL(t,r,e,hWe(fKn,0,e,GL(u,r,e,GL(a,r,e,GL(n,r,e,b(r,e,s(r,e,GL(a,r,e,A(r,e,hWe(aKn,0,e,o(r,e,v(r,e,c(r,e,_We(i,f,r,e,l)))))))))))))))}}),tn=wJe(jJ),en=DJe(TJe,lC(16,0,0)),an=H3e(r),un=n6e(r),fn=gJe(0),cn=wJe(mIn),vn=t6e(r),on=wJe(dIn),An=uJe(dWe,function(r,n,t){return on(r,n,vn(r,n,GL(Wr,r,n,cn(r,n,fn(r,n,un(r,n,an(r,n,en(r,n,_We(tn,nn,r,n,rn(r,n,_We(Yr,Jr,r,n,t)))))))))))}),sn=hJe(0),bn=Q4e(r),ln=tJe(r)(fIn,uIn),Bn=w3e(r),jn=Z4e(r,Hr),kn=[3,[0,wve,1]],pn=uJe(dWe,function(r,n,t){return hWe(kn,0,n,t)}),mn=J4e(r),_n=function(r,n,t){return _We(mn,pn,r,n,t)},hn=s5e(r,Hr),xn=uJe(function(r,n,t){return hn(r,n,EWe(_n,r,n,t))},function(r,n,t){return jn(r,n,Bn(r,n,ln(r,n,bn(r,n,_We(sn,An,r,n,_We(Lr,Vr,r,n,t))))))}),yn=X4e(r);return[0,nJ,function(r,n,t){return _We(yn,xn,r,n,t)}]}if(!i)break r;if(i[2])break r;var wn=i[1],gn=f[1];if(1>>0)var qn=vJe(r,pmn);else{var In=D3e(r),En=K4e(r,gn),Nn=$7e(r,n,wn);qn=function(r,n,t){return Nn(r,n,_We(En,In,r,n,t))}}return[0,nJ,qn]}var Tn=f[1],Fn=UC(Tn,Q_);if(0>Fn){var Mn=UC(Tn,zq);if(0>Mn){var Pn=UC(Tn,Ru);if(0<=Pn){if(0>=Pn){if(!i)break r;var Un=i[2];if(!Un)break r;if(Un[2])break r;return c(tjn,z0e(r,9))}var Gn=UC(Tn,Yy);if(0<=Gn){if(0>=Gn){if(!i)break r;if(i[2])break r;return R7e(r,n,i[1],njn)}var $n=UC(Tn,aj);if(0<=$n){if(0>=$n){if(!i)break r;if(i[2])break r;var Kn=i[1],On=V0e(3),Rn=U7e(r,n,YBn,Kn);return[0,rjn,function(r,n,t){return _We(Rn,On,r,n,t)}]}if(Tn===hA){if(!i)break r;if(i[2])break r;var Qn=i[1],Cn=V0e(9),Hn=U7e(r,n,XBn,Qn);return[0,JBn,function(r,n,t){return _We(Hn,Cn,r,n,t)}]}if(Tn===bF){if(!i)break r;if(i[2])break r;var Vn=i[1],Ln=V0e(10),zn=U7e(r,n,ZBn,Vn);return[0,WBn,function(r,n,t){return _We(zn,Ln,r,n,t)}]}if(Tn===tA){if(!i)break r;if(i[2])break r;var Sn=U7e(r,n,zBn,i[1]);return[0,SBn,function(r,n,t){return Sn(r,n,hWe(LBn,0,n,t))}]}if(Tn!==vE){if(Tn!==Qv)break r;if(!i)break r;if(i[2])break r;var Zn=i[1],Wn=tJe(r)(jZn,BZn),Xn=S0e(),Jn=$7e(r,n,Zn);return[0,0,function(r,n,t){return Jn(r,n,Xn(r,n,hWe(kZn,0,n,Wn(r,n,t))))}]}if(!i)break r;if(i[2])break r;var Yn=i[1],nt=V0e(8),tt=U7e(r,n,HBn,Yn);return[0,VBn,function(r,n,t){return _We(tt,nt,r,n,t)}]}if(Tn===Ng){if(!i)break r;if(i[2])break r;return O7e(r,n,i[1],CBn)}if(Tn===cx){if(!i)break r;if(i[2])break r;return O7e(r,n,i[1],QBn)}if(Tn===Rr){if(!i)break r;if(i[2])break r;var et=i[1],at=V0e(4),ut=U7e(r,n,OBn,et);return[0,RBn,function(r,n,t){return _We(ut,at,r,n,t)}]}if(Tn!==RU){if(Tn!==y)break r;if(!i)break r;if(i[2])break r;var ft=U7e(r,n,UBn,i[1]);return[0,GBn,function(r,n,t){return ft(r,n,hWe(PBn,0,n,t))}]}if(!i)break r;if(i[2])break r;var it=i[1],ct=V0e(5),vt=U7e(r,n,$Bn,it);return[0,KBn,function(r,n,t){return _We(vt,ct,r,n,t)}]}var ot=UC(Tn,Cd);if(0<=ot){if(0>=ot){if(i)break r;return[0,0,g3e(r)]}if(Tn===Kr){if(i)break r;var At=1>>0?vJe(r,JQn):rYe(1,r,rCn,YQn,function(r){return p2e(r,3,function(r){return m3e(r,ZQn)},function(r){return m3e(r,WQn)},function(r){return wJe(XQn)})});return[0,0,At]}if(Tn===Tp){if(i)break r;return[0,MBn,d3e(ZCn,r)]}if(Tn===K_){if(!i)break r;if(i[2])break r;return R7e(r,n,i[1],FBn)}if(Tn!==Zd){if(Tn!==CG)break r;if(!i)break r;if(i[2])break r;return R7e(r,n,i[1],NBn)}if(!i)break r;if(i[2])break r;return R7e(r,n,i[1],TBn)}if(Tn===RA){if(!i)break r;var st=i[2];if(!st)break r;if(st[2])break r;return c(EBn,z0e(r,10))}if(Tn===fR){if(!i)break r;var bt=i[2];if(!bt)break r;if(bt[2])break r;return c(DBn,F0e(r))}if(Tn===qw){if(!i)break r;var lt=i[2];if(!lt)break r;if(lt[2])break r;return c(IBn,z0e(r,8))}if(Tn!==aO){if(Tn!==Wy)break r;if(i)break r;var Bt=Q0e(5),jt=B3e(r);return[0,qBn,function(r,n,t){return _We(jt,Bt,r,n,t)}]}if(i)break r;var kt=[11,[0,wve,zXe(r,uzn)]];return[0,0,function(r,n,t){return hWe(kt,0,n,t)}]}var pt=UC(Tn,no);if(0<=pt){if(0>=pt)return c(0,k2e(r,2,0));var mt=UC(Tn,Ux);if(0<=mt){if(0>=mt){if(!i)break r;if(i[2])break r;var dt=i[1],_t=nYe(1,r,GXn,UXn,PXn,function(r,n){var t=t2e(r),e=c2e();return function(r,a,u){return GL(n,r,a,_We(e,t,r,a,u))}}),ht=$7e(r,n,dt);return[0,0,function(r,n,t){return _We(ht,_t,r,n,t)}]}if(Tn===vy){if(!i)break r;if(i[2])break r;var xt=i[1],yt=tJe(r)(BXn,lXn),wt=$7e(r,n,xt);return[0,0,function(r,n,t){return _We(wt,yt,r,n,t)}]}if(Tn===Yx){if(!i)break r;var gt=i[2];if(!gt)break r;if(gt[2])break r;return c(gBn,z0e(r,4))}if(Tn===Dn){if(!i)break r;var qt=i[2];if(!qt)break r;if(qt[2])break r;return c(wBn,z0e(r,5))}if(Tn!==HM){if(Tn!==fd)break r;if(!i)break r;var It=i[2];if(!It)break r;if(It[2])break r;return c(xBn,z0e(r,3))}if(!i)break r;var Dt=i[2];if(!Dt)break r;if(Dt[2])break r;return c(yBn,F0e(r))}if(Tn===zo)return c(0,u3e(r,0));if(Tn===aI)return c(0,u3e(r,1));if(Tn===mr){if(!i)break r;var Et=i[2];if(!Et)break r;if(Et[2])break r;var Nt=Et[1],Tt=i[1],Ft=Q0e(8),Mt=m2e(r,0),Pt=$7e(r,n,Nt),Ut=$7e(r,n,Tt);return[0,hBn,function(r,n,t){return Ut(r,n,Pt(r,n,_We(Mt,Ft,r,n,t)))}]}if(Tn!==jq){if(Tn!==xE)break r;if(!i)break r;if(i[2])break r;var Gt=i[1],$t=Q0e(3),Kt=tJe(r)(AXn,oXn),Ot=$7e(r,n,Gt);return[0,_Bn,function(r,n,t){return Ot(r,n,_We(Kt,$t,r,n,t))}]}if(!i)break r;if(i[2])break r;var Rt=i[1],Qt=tJe(r)(bXn,sXn),Ct=$7e(r,n,Rt);return[0,0,function(r,n,t){return _We(Ct,Qt,r,n,t)}]}var Ht=UC(Tn,gx);if(0<=Ht){if(0>=Ht){if(!i)break r;if(i[2])break r;var Vt=i[1],Lt=WH(QYn,RYe(7)),zt=WH(Lt,64-OYe(7)|0),St=X1e(1,function(n){var t=RJe(r,$Yn),e=t[2],a=t[1],u=MJe(fXe(7)),f=G1e(),i=wJe(OYn),c=w1e(r),v=wJe(Lt),o=fJe(1,function(r,n,t){return _We(v,c,r,n,t)},function(r,n,t){return i(r,n,GL(e,r,n,hWe(KYn,0,n,f(r,n,t))))}),A=GJe(zt),s=fJe(1,function(r,n,t){return GL(e,r,n,_We(A,o,r,n,t))},function(r,n,t){return _We(e,u,r,n,t)}),b=_Je(2),l=wJe(RYn),B=U1e();return function(r,n,t){return B(r,n,GL(a,r,n,GL(e,r,n,l(r,n,_We(b,s,r,n,t)))))}},G5e,r),Zt=$7e(r,n,Vt);return[0,0,function(r,n,t){return _We(Zt,St,r,n,t)}]}if(Tn===HT)return c(0,k2e(r,2,3));if(Tn===Sc){if(!i)break r;if(i[2])break r;var Wt=i[1],Xt=tJe(r)(dBn,mBn),Jt=$7e(r,n,Wt),Yt=nYe(1,r,"weak_try_inject",X3n,W3n,function(r,n){var t=s0e(r,n),e=[0,[0,C3n,vJe(r,"weak reference of Float")],0],a=[0,[0,H3n,vJe(r,"weak reference of Int64")],e],u=[0,[0,V3n,vJe(r,"weak reference of Nat64")],a],f=[0,[0,6,vJe(r,"weak reference of Int")],u],i=n0e(r,L3n,n,[0,[0,3,s0e(r,n)],f]),c=iJe(r,z3n,function(r,t,e){return _We(n,i,r,t,e)},t),v=WYe(),o=iJe(r,S3n,vJe(r,"weak reference of `true`"),function(r,t,e){return GL(n,r,t,_We(v,c,r,t,e))}),A=GJe(YX),s=$Ye(r,Z3n,vJe(r,"weak reference of non-reference"),function(r,t,e){return GL(n,r,t,_We(A,o,r,t,e))}),b=oJe(r,"weak reference of null"),l=GJe(fJ);return function(r,t,e){return GL(n,r,t,l(r,t,b(r,t,_We(n,s,r,t,e))))}});return[0,0,function(r,n,t){return _We(Jt,Yt,r,n,Xt(r,n,t))}]}if(Tn!==No&&Tn!==ld){if(Tn!==lu)break r;if(!i)break r;if(i[2])break r;var re=i[1],ne=t2e(r),te=X2e(),ue=$7e(r,n,re);return[0,0,function(r,n,t){return ue(r,n,_We(te,ne,r,n,t))}]}return c(0,nYe(0,r,uSn,aSn,eSn,function(r,n){var t=RJe(r,nSn),e=t[2],a=t[1],u=RJe(r,tSn),f=u[2],i=u[1],c=HJe(r,function(t){var e=R0e(3),a=aXe[5],u=Y2e(r),i=o2e();return function(r,c,v){return GL(f,r,c,i(r,c,GL(t,r,c,hWe(rSn,0,c,GL(n,r,c,GL(t,r,c,u(r,c,a(r,c,e(r,c,hWe(Yzn,0,c,v))))))))))}}),v=v2e(r,0,e),o=X2e();return function(r,t,u){return GL(n,r,t,o(r,t,GL(a,r,t,v(r,t,GL(i,r,t,GL(e,r,t,_We(c,f,r,t,u)))))))}}))}if(Tn===sD){if(!i)break r;var fe=i[2];if(!fe)break r;if(fe[2])break r;var ie=RJe(r,dSn),ce=ie[2],ve=ie[1],oe=RJe(r,_Sn),Ae=oe[2],se=oe[1],be=t0e(r),le=e3e(r,Ae,function(r){var n=aXe[6];return function(t,e,a){return GL(r,t,e,_We(ce,n,t,e,a))}}),Be=t3e(r,1,Ae),je=u2e(r);return c(0,function(r,n,t){return GL(ve,r,n,je(r,n,GL(se,r,n,Be(r,n,GL(se,r,n,le(r,n,_We(Ae,be,r,n,t)))))))})}if(Tn===Sw){if(!i)break r;var ke=i[2];if(!ke)break r;if(ke[2])break r;return c(0,a3e(r,0))}if(Tn===zw){if(!i)break r;var pe=i[2];if(!pe)break r;if(pe[2])break r;return c(0,a3e(r,1))}if(Tn!==WE){if(Tn!==$N)break r;if(!i)break r;if(i[2])break r;var me=i[1],de=tJe(r)(ABn,oBn),he=wJe(Y0e(3,sBn)),xe=wJe(Y0e(3,bBn)),ye=U7e(r,n,2,me);return[0,0,function(r,n,t){return ye(r,n,hWe(lBn,0,n,xe(r,n,_We(he,de,r,n,t))))}]}if(!i)break r;if(i[2])break r;var we=i[1],ge=tJe(r)(jBn,BBn),qe=wJe(Y0e(3,kBn)),Ie=wJe(Y0e(3,pBn)),De=U7e(r,n,1,we);return[0,0,function(r,n,t){return De(r,n,Ie(r,n,_We(qe,ge,r,n,t)))}]}if(0>=Mn){if(!i)break r;var Ee=i[2];if(!Ee)break r;if(Ee[2])break r;var Ne=Ee[1],Te=i[1],Fe=tYe(0,r,gwn,wwn,[0,1,0],function(r,n,t){return dYe(r,ywn,xwn,function(e){var a=M3e(r),u=d3e(hwn,r);return function(r,f,i){return GL(n,r,f,GL(t,r,f,GL(e,r,f,GL(u,r,f,_We(e,a,r,f,i)))))}})}),Me=U7e(r,n,kkn,Ne),Pe=U7e(r,n,pkn,Te);return[0,0,function(r,n,t){return Pe(r,n,_We(Me,Fe,r,n,t))}]}var Ue=UC(Tn,u);if(0<=Ue){if(0>=Ue){if(!i)break r;if(i[2])break r;var Ge=i[1],$e=tJe(r)(jkn,Bkn),Ke=U7e(r,n,1,Ge);return[0,1,function(r,n,t){return _We(Ke,$e,r,n,t)}]}var Oe=UC(Tn,ee);if(0<=Oe){if(0>=Oe){if(!i)break r;var Re=i[2];if(!Re)break r;var Qe=Re[2];if(!Qe)break r;if(Qe[2])break r;var Ce=Qe[1],He=Re[1],Ve=i[1],Le=tJe(r)(lkn,bkn),ze=$7e(r,n,Ce),Se=$7e(r,n,He),Ze=U7e(r,n,1,Ve);return[0,0,function(r,n,t){return Ze(r,n,Se(r,n,_We(ze,Le,r,n,t)))}]}var We=UC(Tn,Bi);if(0<=We){if(0>=We){if(i)break r;var Xe=n1e(0,5),Je=Q0e(5),Ye=f4e(r),na=n1e(0,5),ta=Q0e(5),ea=u4e(r),aa=n1e(0,5),ua=Q0e(5),fa=a4e(r);return[0,skn,function(r,n,t){return fa(r,n,ua(r,n,aa(r,n,ea(r,n,ta(r,n,na(r,n,Ye(r,n,_We(Je,Xe,r,n,t))))))))}]}if(Tn===cv){if(i)break r;var ia=n1e(0,5),ca=Q0e(5),va=c4e(r),oa=n1e(0,5),Aa=Q0e(5),sa=i4e(r);return[0,Akn,function(r,n,t){return sa(r,n,Aa(r,n,oa(r,n,va(r,n,_We(ca,ia,r,n,t)))))}]}if(Tn===Up){if(i)break r;return[0,0,tJe(r)(okn,vkn)]}if(Tn!==Mp){if(Tn!==Sg)break r;if(!i)break r;if(i[2])break r;var ba=i[1],la=m3e(r,akn),ja=U7e(r,n,ukn,ba);return[0,fkn,function(r,n,t){return _We(ja,la,r,n,t)}]}if(i)break r;return[0,0,tJe(r)(ckn,ikn)]}if(Tn===Xd){if(!i)break r;if(i[2])break r;var ka=U7e(r,n,1,i[1]);return[0,1,function(r,n,t){return ka(r,n,hWe(ekn,0,n,t))}]}if(Tn===nE){if(!i)break r;if(i[2])break r;var pa=i[1],ma=tJe(r)(tkn,nkn),da=U7e(r,n,1,pa);return[0,1,function(r,n,t){return _We(da,ma,r,n,t)}]}if(Tn===vN){if(!i)break r;if(i[2])break r;var _a=U7e(r,n,1,i[1]);return[0,1,function(r,n,t){return _a(r,n,hWe(rkn,0,n,t))}]}if(Tn!==Av){if(Tn!==CI)break r;if(!i)break r;if(i[2])break r;var ha=U7e(r,n,1,i[1]);return[0,1,function(r,n,t){return ha(r,n,hWe(Xjn,0,n,t))}]}if(!i)break r;if(i[2])break r;var xa=i[1],ya=tJe(r)(Yjn,Jjn),wa=U7e(r,n,1,xa);return[0,1,function(r,n,t){return _We(wa,ya,r,n,t)}]}var ga=UC(Tn,mT);if(0<=ga){if(0>=ga){if(!i)break r;if(i[2])break r;var qa=i[1],Ia=tJe(r)(Wjn,Zjn),Da=U7e(r,n,1,qa);return[0,1,function(r,n,t){return _We(Da,Ia,r,n,t)}]}if(Tn===Wp){if(!i)break r;if(i[2])break r;var Ea=i[1],Na=tJe(r)(Sjn,zjn),Ta=U7e(r,n,1,Ea);return[0,1,function(r,n,t){return _We(Ta,Na,r,n,t)}]}if(Tn===Ua){if(!i)break r;if(i[2])break r;var Fa=U7e(r,n,1,i[1]);return[0,1,function(r,n,t){return Fa(r,n,hWe(Ljn,0,n,t))}]}if(Tn===bd){if(!i)break r;if(i[2])break r;var Ma=i[1],Pa=tJe(r)(Vjn,Hjn),Ga=U7e(r,n,1,Ma);return[0,1,function(r,n,t){return _We(Ga,Pa,r,n,t)}]}if(Tn!==gr){if(Tn!==vq)break r;if(!i)break r;var Ka=i[2];if(!Ka)break r;if(Ka[2])break r;var Oa=i[1],Ra=U7e(r,n,1,Ka[1]),Qa=U7e(r,n,1,Oa);return[0,1,function(r,n,t){return Qa(r,n,Ra(r,n,hWe(Qjn,0,n,t)))}]}if(!i)break r;var Ca=i[2];if(!Ca)break r;if(Ca[2])break r;var Va=i[1],za=U7e(r,n,1,Ca[1]),Wa=U7e(r,n,1,Va);return[0,1,function(r,n,t){return Wa(r,n,za(r,n,hWe(Cjn,0,n,t)))}]}if(Tn===Tc){if(!i)break r;if(i[2])break r;var Xa=i[1],Ya=tJe(r)(Rjn,Ojn),ru=U7e(r,n,1,Xa);return[0,1,function(r,n,t){return _We(ru,Ya,r,n,t)}]}if(Tn===ra){if(!i)break r;if(i[2])break r;var nu=i[1],tu=tJe(r)(Kjn,$jn),eu=U7e(r,n,1,nu);return[0,1,function(r,n,t){return _We(eu,tu,r,n,t)}]}if(Tn===UB){if(!i)break r;var au=i[2];if(!au)break r;if(au[2])break r;var uu=au[1],fu=i[1],iu=tJe(r)(Gjn,Ujn),vu=U7e(r,n,1,uu),ou=U7e(r,n,1,fu);return[0,1,function(r,n,t){return ou(r,n,_We(vu,iu,r,n,t))}]}if(Tn!==TI){if(Tn!==QB)break r;if(!i)break r;var Au=i[2];if(!Au)break r;if(Au[2])break r;var su=i[1],bu=U7e(r,n,1,Au[1]),Bu=U7e(r,n,1,su);return[0,1,function(r,n,t){return Bu(r,n,bu(r,n,hWe(Mjn,0,n,t)))}]}if(!i)break r;if(i[2])break r;var ju=U7e(r,n,1,i[1]);return[0,1,function(r,n,t){return ju(r,n,hWe(Pjn,0,n,t))}]}var ku=UC(Tn,Bo);if(0>ku){var mu=UC(Tn,mf);if(0<=mu){if(0>=mu){if(!i)break r;if(i[2])break r;var du=i[1],_u=L0e(4),hu=U7e(r,n,gjn,du);return[0,qjn,function(r,n,t){return _We(hu,_u,r,n,t)}]}if(Tn===eI){if(!i)break r;if(i[2])break r;var xu=i[1],wu=L0e(5),gu=U7e(r,n,yjn,xu);return[0,wjn,function(r,n,t){return _We(gu,wu,r,n,t)}]}if(Tn===$U){if(!i)break r;if(i[2])break r;var qu=U7e(r,n,hjn,i[1]);return[0,xjn,function(r,n,t){return qu(r,n,hWe(_jn,0,n,t))}]}if(Tn===dn){if(!i)break r;if(i[2])break r;var Iu=i[1],Eu=L0e(3),Nu=U7e(r,n,mjn,Iu);return[0,djn,function(r,n,t){return _We(Nu,Eu,r,n,t)}]}if(Tn!==vP){if(Tn!==yf)break r;if(!i)break r;if(i[2])break r;var Tu=i[1],Fu=L0e(10),Mu=U7e(r,n,Bjn,Tu);return[0,jjn,function(r,n,t){return _We(Mu,Fu,r,n,t)}]}if(!i)break r;if(i[2])break r;var Pu=i[1],Uu=L0e(9),Gu=U7e(r,n,kjn,Pu);return[0,pjn,function(r,n,t){return _We(Gu,Uu,r,n,t)}]}if(Tn===H_){if(i)break r;return[0,0,rYe(0,r,_wn,dwn,function(r){return dYe(r,mwn,pwn,function(n){var t=M3e(r),e=d3e(kwn,r);return function(r,a,u){return GL(n,r,a,GL(e,r,a,_We(n,t,r,a,u)))}})})]}if(Tn===GR){if(!i)break r;var $u=i[2];if(!$u)break r;if($u[2])break r;var Ku=$u[1],Ou=i[1],Qu=tYe(0,r,jwn,Bwn,[0,1,0],function(r,n,t){return dYe(r,lwn,bwn,function(e){var a=M3e(r),u=d3e(swn,r);return function(r,f,i){return GL(n,r,f,GL(t,r,f,GL(e,r,f,GL(u,r,f,_We(e,a,r,f,i)))))}})}),Cu=U7e(r,n,bjn,Ku),Hu=U7e(r,n,ljn,Ou);return[0,0,function(r,n,t){return Hu(r,n,_We(Cu,Qu,r,n,t))}]}if(Tn===Oj){if(!i)break r;var Vu=i[2];if(!Vu)break r;if(Vu[2])break r;var Lu=Vu[1],zu=i[1],Su=tYe(0,r,Awn,[0,[0,own,1],vwn],[0,1,cwn],function(r,n,t){return dYe(r,iwn,fwn,function(e){var a=M3e(r),u=j6e(r,ewn,0),f=Q0e(5),i=d3e(uwn,r),c=l2e(r),v=z2e(r);return function(r,o,A){return GL(n,r,o,v(r,o,c(r,o,GL(t,r,o,GL(e,r,o,GL(i,r,o,hWe(awn,0,o,f(r,o,GL(u,r,o,_We(e,a,r,o,A))))))))))}})}),Zu=R0e(5),Wu=U7e(r,n,Ajn,Lu),Xu=$7e(r,n,zu);return[0,sjn,function(r,n,t){return Xu(r,n,Wu(r,n,Zu(r,n,hWe(ojn,0,n,Su(r,n,t)))))}]}if(Tn!==sd){if(Tn!==j$)break r;if(!i)break r;if(i[2])break r;var Yu=i[1],rf=Q0e(5),nf=tJe(r)(ujn,ajn),tf=$7e(r,n,Yu);return[0,fjn,function(r,n,t){return tf(r,n,nf(r,n,hWe(ejn,0,n,rf(r,n,t))))}]}if(!i)break r;var ef=i[2];if(!ef)break r;if(ef[2])break r;var af=ef[1],uf=i[1],ff=tYe(0,r,twn,[0,[0,nwn,1],rwn],[0,1,Yyn],function(r,n,t){return dYe(r,Jyn,Xyn,function(e){var a=M3e(r),u=j6e(r,Syn,0),f=Q0e(5),i=d3e(Wyn,r),c=l2e(r),v=z2e(r);return function(r,o,A){return GL(n,r,o,v(r,o,c(r,o,GL(t,r,o,GL(e,r,o,GL(i,r,o,hWe(Zyn,0,o,f(r,o,GL(u,r,o,_We(e,a,r,o,A))))))))))}})}),cf=R0e(5),vf=U7e(r,n,cjn,af),of=$7e(r,n,uf);return[0,vjn,function(r,n,t){return of(r,n,vf(r,n,cf(r,n,hWe(ijn,0,n,ff(r,n,t)))))}]}if(0>=ku){if(!i)break r;if(i[2])break r;var Af=U7e(r,n,Tjn,i[1]);return[0,Fjn,function(r,n,t){return Af(r,n,hWe(Njn,0,n,t))}]}var sf=UC(Tn,DB);d:{if(0<=sf){_:if(0>>0?vJe(r,EQn):nYe(1,r,TQn,[0,NQn,1],[0,1,0],function(r,n){var t=RJe(r,yQn),e=t[2],a=t[1],u=RJe(r,wQn),f=u[2],i=u[1],c=RJe(r,gQn),v=c[2],o=c[1],A=B0e(0,v),s=m3e(r,qQn),b=o2e(),l=o2e(),B=v2e(r,1,f),j=m3e(r,IQn),k=o2e(),p=fJe(1,function(r,t,a){return GL(n,r,t,k(r,t,GL(e,r,t,j(r,t,GL(i,r,t,B(r,t,GL(o,r,t,GL(n,r,t,l(r,t,GL(e,r,t,GL(v,r,t,b(r,t,qJe(r,t,GL(f,r,t,_We(s,A,r,t,a)))))))))))))))},ZYe),m=m3e(r,DQn),d=o2e(),_=c2e();return function(r,t,u){return GL(n,r,t,_(r,t,GL(a,r,t,GL(n,r,t,d(r,t,GL(e,r,t,m(r,t,hWe(aJ,0,t,p(r,t,u)))))))))}}),Zf=$7e(r,n,zf);return[0,0,function(r,n,t){return _We(Zf,Sf,r,n,t)}]}if(Tn===bR){if(i)break r;var Wf=1>>0?vJe(r,OQn):rYe(1,r,RQn,[0,1,0],function(r){var n=RJe(r,GQn),t=n[2],e=n[1],a=RJe(r,$Qn),u=a[2],f=a[1],i=t0e(r),c=HJe(r,function(n){var t=RJe(r,FQn),e=t[2],a=t[1],f=RJe(r,MQn),i=f[2],c=f[1],v=m3e(r,PQn),o=o2e(),A=aXe[6],s=Y2e(r),b=v2e(r,1,e),l=m3e(r,UQn);return function(r,t,f){return GL(n,r,t,l(r,t,GL(a,r,t,b(r,t,GL(c,r,t,GL(u,r,t,GL(n,r,t,s(r,t,GL(i,r,t,A(r,t,GL(n,r,t,GL(i,r,t,o(r,t,qJe(r,t,GL(e,r,t,_We(v,i,r,t,f))))))))))))))))}}),v=t3e(r,0,t),o=m3e(r,KQn);return function(r,n,a){return o(r,n,GL(e,r,n,v(r,n,GL(f,r,n,GL(t,r,n,c(r,n,_We(u,i,r,n,a)))))))}});return[0,0,Wf]}if(Tn!==aT)break r}if(!i)break r;if(i[2])break r;var Xf=i[1],Jf=RJe(r,Epn),Yf=Jf[2],ri=Jf[1],ni=n1e(0,3),ti=DJe(TJe,Npn),ei=n1e(0,3),ai=DJe(7,Tpn),ui=t1e(0,Tn===XU?4:9),fi=$7e(r,n,Xf);return[0,Fpn,function(r,n,t){return fi(r,n,ui(r,n,GL(ri,r,n,GL(Yf,r,n,ai(r,n,ei(r,n,GL(Yf,r,n,_We(ti,ni,r,n,t))))))))}]}if(0>=Fn){if(!i)break r;if(i[2])break r;return[0,0,vJe(r,Dpn)]}var ii=UC(Tn,hl);if(0<=ii){if(0>=ii){if(i)break r;var ci=t2e(r),vi=H3e(r);return[0,0,function(r,n,t){return _We(vi,ci,r,n,t)}]}var oi=UC(Tn,ny);d:{if(0>oi){var Ai=UC(Tn,La);if(0>Ai){var si=UC(Tn,Ev);if(0<=si){if(0>=si){if(i)break r;var bi=t2e(r),li=G3e(r);return[0,0,function(r,n,t){return _We(li,bi,r,n,t)}]}if(Tn===iA){if(i)break r;var ji=t2e(r),ki=tJe(r)(x5n,h5n);return[0,0,function(r,n,t){return _We(ki,ji,r,n,t)}]}if(Tn===zU){if(i)break r;var pi=t2e(r),mi=f6e(r);return[0,0,function(r,n,t){return _We(mi,pi,r,n,t)}]}if(Tn===R){if(i)break r;return[0,0,tJe(r)(opn,vpn)]}if(Tn!==uo){if(Tn!==m$)break r;if(!i)break r;var di=i[2];if(!di)break r;if(di[2])break r;var _i=di[1],hi=i[1],xi=[12,[0,wve,zXe(r,$Fn)]],yi=R0e(5),wi=U7e(r,n,epn,_i),gi=[12,[0,wve,zXe(r,OFn)]],qi=R0e(5),Ii=U7e(r,n,apn,hi);return[0,nJ,function(r,n,t){return Ii(r,n,qi(r,n,hWe(gi,0,n,wi(r,n,yi(r,n,hWe(xi,0,n,t))))))}]}if(!i)break r;var Di=i[2];if(!Di)break r;var Ei=Di[2];if(!Ei)break r;if(Ei[2])break r;var Ni=Ei[1],Ti=Di[1],Fi=i[1],Mi=[12,[0,wve,zXe(r,XFn)]],Pi=R0e(5),Ui=U7e(r,n,upn,Ni),Gi=AJe(r,fpn),$i=u4e(r),Ki=[12,[0,wve,zXe(r,YFn)]],Oi=R0e(5),Ri=U7e(r,n,ipn,Ti),Qi=[12,[0,wve,zXe(r,nMn)]],Ci=R0e(5),Hi=U7e(r,n,cpn,Fi);return[0,nJ,function(r,n,t){return Hi(r,n,Ci(r,n,hWe(Qi,0,n,Ri(r,n,Oi(r,n,hWe(Ki,0,n,$i(r,n,Gi(r,n,Ui(r,n,Pi(r,n,hWe(Mi,0,n,t)))))))))))}]}if(Tn===yu){if(i)break r;var Vi=t2e(r),Li=tJe(r)(m5n,p5n);return[0,0,function(r,n,t){return _We(Li,Vi,r,n,t)}]}if(Tn===eb){if(i)break r;var zi=t2e(r),Si=wJe(lC(Ld,0,0));return[0,0,function(r,n,t){return _We(Si,zi,r,n,t)}]}if(Tn===jP){if(i)break r;var Zi=t2e(r);return[0,0,function(r,n,t){return hWe(5,0,n,MYe(r,n,Zi(r,n,t)))}]}if(Tn!==DU){if(Tn!==Oc)break r;if(i)break r;var Wi=t2e(r),Xi=tJe(r)(_5n,d5n);return[0,0,function(r,n,t){return _We(Xi,Wi,r,n,t)}]}if(i)break r;var Ji=t2e(r),Yi=uYe(r);return[0,0,function(r,n,t){return _We(Yi,Ji,r,n,t)}]}if(0>=Ai){if(!i)break r;if(i[2])break r;var ec=i[1],uc=tJe(r)(mpn,ppn),fc=$7e(r,n,ec);return[0,nJ,function(r,n,t){return _We(fc,uc,r,n,t)}]}var ic=UC(Tn,Dp);_:{if(0<=ic){h:if(0=Hc){if(i)break r;var Vc=N3e(r,Hz),Lc=g3e(r);return[0,0,function(r,n,t){return _We(Lc,Vc,r,n,t)}]}var zc=UC(Tn,Jp);if(0<=zc){if(0>=zc){if(!i)break r;if(i[2])break r;var Zc=i[1],Wc=tJe(r)(sZn,AZn),Xc=$7e(r,n,Zc);return[0,0,function(r,n,t){return _We(Xc,Wc,r,n,t)}]}if(Tn===Ab){if(!i)break r;if(i[2])break r;var Jc=i[1],Yc=tJe(r)(oZn,vZn),rv=$7e(r,n,Jc);return[0,0,function(r,n,t){return _We(rv,Yc,r,n,t)}]}if(Tn===Nh){if(!i)break r;if(i[2])break r;var nv=i[1],tv=x3e(r),ev=l2e(r),av=z2e(r),uv=$7e(r,n,nv);return[0,3,function(r,n,t){return uv(r,n,av(r,n,_We(ev,tv,r,n,t)))}]}if(Tn!==hO){if(Tn!==Ew)break r;if(!i)break r;if(i[2])break r;var fv=i[1],iv=tJe(r)(Ipn,qpn),vv=$7e(r,n,fv);return[0,0,function(r,n,t){return vv(r,n,iv(r,n,hWe(aJ,0,n,t)))}]}if(!i)break r;if(i[2])break r;var ov=i[1],sv=k0e(),bv=$7e(r,n,ov);return[0,0,function(r,n,t){return _We(bv,sv,r,n,t)}]}if(Tn===fp){if(!i)break r;var lv=i[2];if(!lv)break r;if(lv[2])break r;var Bv=lv[1],jv=i[1],kv=Q0e(8),pv=tJe(r)(wpn,ypn),mv=$7e(r,n,Bv),dv=$7e(r,n,jv);return[0,gpn,function(r,n,t){return dv(r,n,mv(r,n,_We(pv,kv,r,n,t)))}]}if(Tn===ob){if(!i)break r;if(i[2])break r;var _v=i[1],hv=tJe(r)(uZn,aZn),xv=$7e(r,n,_v);return[0,0,function(r,n,t){return _We(xv,hv,r,n,t)}]}if(Tn===$b){if(!i)break r;if(i[2])break r;var yv=i[1],wv=tJe(r)(eZn,tZn),gv=$7e(r,n,yv);return[0,0,function(r,n,t){return _We(gv,wv,r,n,t)}]}if(Tn!==DT){if(Tn!==wx)break r;if(!i)break r;if(i[2])break r;var qv=i[1],Iv=nYe(1,r,hZn,_Zn,dZn,function(r,n){var t=t2e(r),e=tJe(r)(mZn,pZn);return function(r,a,u){return GL(n,r,a,_We(e,t,r,a,u))}}),Dv=$7e(r,n,qv);return[0,0,function(r,n,t){return _We(Dv,Iv,r,n,t)}]}if(!i)break r;if(i[2])break r;var Nv=i[1],Tv=tJe(r)(nZn,rZn),Fv=$7e(r,n,Nv);return[0,xpn,function(r,n,t){return Fv(r,n,Tv(r,n,hWe(aJ,0,n,Z0e(r,n,t))))}]}var Mv=UC(Tn,cu);_:{h:{if(0<=Mv){x:if(0Ko){var Oo=UC(Tn,Du);if(0<=Oo){if(0>=Oo)return c(0,k2e(r,3,2));var Ro=UC(Tn,ac);if(0<=Ro){if(0>=Ro){if(!i)break r;var Qo=i[2];if(!Qo)break r;if(Qo[2])break r;var Co=Qo[1],Ho=i[1],Lo=H2e(r),So=U7e(r,n,Xkn,Co),Zo=U7e(r,n,0,Ho);return[0,1,function(r,n,t){return Zo(r,n,_We(So,Lo,r,n,t))}]}if(Tn!==_G){if(Tn===ZG)break h;if(Tn===Ju)break _;if(Tn===KO)break d;if(Tn!==Ha)break r}if(!i)break r;var Wo=i[2];if(!Wo)break r;if(Wo[2])break r;var Xo=Wo[1],Jo=i[1],Yo=Tn===Ha?4:9,rA=Q0e(Yo),nA=4===Yo?1:0,eA=$2e(r),aA=U7e(r,n,Ypn,Xo),uA=[21,[1,nA]],fA=U7e(r,n,0,Jo);return[0,[1,Yo],function(r,n,t){return fA(r,n,aA(r,n,eA(r,n,hWe(uA,0,n,rA(r,n,t)))))}]}if(Tn===Zv)return c(0,k2e(r,0,2));if(Tn===vU){if(!i)break r;if(i[2])break r;var cA=i[1],vA=nYe(1,r,zCn,LCn,0,function(r,n){var t=RJe(r,VCn),e=t[2],a=t[1],u=h3e(r),f=c2e(),i=o2e(),c=z2e(r);return function(r,t,v){return GL(n,r,t,c(r,t,GL(a,r,t,GL(e,r,t,i(r,t,GL(e,r,t,_We(f,u,r,t,v)))))))}}),oA=$7e(r,n,cA);return[0,nJ,function(r,n,t){return _We(oA,vA,r,n,t)}]}if(Tn===$a){if(!i)break r;var AA=i[2];if(!AA)break r;if(AA[2])break r;var sA=AA[1],bA=i[1],lA=F2e(r),BA=U7e(r,n,Zkn,sA),jA=U7e(r,n,0,bA);return[0,Wkn,function(r,n,t){return jA(r,n,_We(BA,lA,r,n,t))}]}if(Tn!==ol){if(Tn!==Ub)break r;if(!i)break r;var kA=i[2];if(!kA)break r;var pA=kA[2];if(!pA)break r;if(pA[2])break r;var mA=pA[1],dA=kA[1],_A=i[1],xA=M2e(r),yA=f2e(r,b2e(r,1,zkn)),wA=U7e(r,n,0,mA),gA=U7e(r,n,Skn,dA),qA=U7e(r,n,0,_A);return[0,0,function(r,n,t){return qA(r,n,gA(r,n,wA(r,n,_We(yA,xA,r,n,t))))}]}if(!i)break r;if(i[2])break r;var IA=i[1],DA=t2e(r),EA=E2e(r),NA=U7e(r,n,0,IA);return[0,0,function(r,n,t){return NA(r,n,_We(EA,DA,r,n,t))}]}var TA=UC(Tn,Aj);if(0<=TA){if(0>=TA){if(!i)break r;if(i[2])break r;var FA=U7e(r,n,Vkn,i[1]);return[0,Lkn,function(r,n,t){return FA(r,n,hWe(Hkn,0,n,t))}]}if(Tn===wy){if(!i)break r;if(i[2])break r;var MA=i[1],PA=Q0e(3),UA=U7e(r,n,Qkn,MA);return[0,Ckn,function(r,n,t){return UA(r,n,hWe(Rkn,0,n,PA(r,n,t)))}]}if(Tn===ry){if(!i)break r;if(i[2])break r;var GA=i[1],$A=Q0e(9),KA=U7e(r,n,Kkn,GA);return[0,Okn,function(r,n,t){return KA(r,n,hWe($kn,0,n,$A(r,n,t)))}]}if(Tn===XG){if(!i)break r;if(i[2])break r;var OA=i[1],QA=Q0e(10),CA=U7e(r,n,Ukn,OA);return[0,Gkn,function(r,n,t){return CA(r,n,hWe(Pkn,0,n,QA(r,n,t)))}]}if(Tn!==GF){if(Tn!==q)break r;if(!i)break r;if(i[2])break r;var HA=i[1],VA=Q0e(8),LA=U7e(r,n,Ekn,HA);return[0,Nkn,function(r,n,t){return LA(r,n,hWe(Dkn,0,n,VA(r,n,t)))}]}if(!i)break r;if(i[2])break r;var zA=U7e(r,n,Fkn,i[1]);return[0,Mkn,function(r,n,t){return zA(r,n,hWe(Tkn,0,n,t))}]}if(Tn===AP){if(!i)break r;if(i[2])break r;var SA=i[1],ZA=RJe(r,Ikn),WA=ZA[2],XA=ZA[1],JA=_3e(r),YA=c2e(),rs=o2e(),ns=$7e(r,n,SA);return[0,0,function(r,n,t){return ns(r,n,GL(XA,r,n,GL(WA,r,n,rs(r,n,GL(WA,r,n,_We(YA,JA,r,n,t))))))}]}if(Tn===_d){if(!i)break r;var ts=i[2];if(!ts)break r;if(ts[2])break r;var es=ts[1],as=i[1],us=L1e(r),fs=U7e(r,n,qkn,es),is=$7e(r,n,as);return[0,0,function(r,n,t){return is(r,n,_We(fs,us,r,n,t))}]}if(Tn===fK){if(!i)break r;if(i[2])break r;var cs=i[1],vs=d3e(rHn,r),os=U7e(r,n,wkn,cs);return[0,gkn,function(r,n,t){return os(r,n,hWe(nHn,0,n,GL(vs,r,n,t)))}]}if(Tn!==aM){if(Tn!==Sa)break r;if(!i)break r;if(i[2])break r;var As=i[1],ss=Q0e(5),bs=U7e(r,n,dkn,As);return[0,_kn,function(r,n,t){return bs(r,n,hWe(mkn,0,n,ss(r,n,t)))}]}if(!i)break r;if(i[2])break r;var ls=i[1],Bs=Q0e(4),ks=U7e(r,n,xkn,ls);return[0,ykn,function(r,n,t){return ks(r,n,hWe(hkn,0,n,Bs(r,n,t)))}]}if(0ps){var ms=UC(Tn,PT);if(0<=ms){if(0>=ms){if(!i)break r;var ds=i[2];if(!ds)break r;var _s=ds[2];if(!_s)break r;if(_s[2])break r;var hs=_s[1],xs=ds[1],ys=i[1],ws=V2e(r),gs=U7e(r,n,1,hs),qs=U7e(r,n,rpn,xs),Is=U7e(r,n,0,ys);return[0,nJ,function(r,n,t){return Is(r,n,qs(r,n,_We(gs,ws,r,n,t)))}]}if(Tn!==iF){if(Tn===gy)break w;if(Tn===q_)break y;if(Tn===qx)break x;if(Tn!==Bq)break r}if(!i)break r;var Ds=i[2];if(!Ds)break r;var Es=Ds[2];if(!Es)break r;if(Es[2])break r;var Ns=Es[1],Ts=Ds[1],Fs=i[1],Ms=Tn===Bq?4:9,Ps=K2e(r),Us=R0e(Ms),Gs=U7e(r,n,[1,Ms],Ns),$s=U7e(r,n,nmn,Ts),Ks=U7e(r,n,0,Fs);return[0,nJ,function(r,n,t){return Ks(r,n,$s(r,n,Gs(r,n,Us(r,n,hWe(rmn,0,n,Ps(r,n,t))))))}]}if(Tn===pP)break _;if(Tn===tc)break d;if(Tn===Hp){if(i)break r;return mJe(r),[0,0,tJe(r)(fWn,uWn)]}if(Tn!==kG){if(Tn!==ug)break r;if(!i)break r;var Os=i[2];if(!Os)break r;var Rs=Os[2];if(!Rs)break r;if(Rs[2])break r;var Qs=Rs[1],Cs=Os[1],Hs=i[1],Vs=P2e(r),Ls=U7e(r,n,0,Qs),zs=U7e(r,n,Jkn,Cs),Ss=U7e(r,n,0,Hs);return[0,nJ,function(r,n,t){return Ss(r,n,zs(r,n,_We(Ls,Vs,r,n,t)))}]}if(!i)break r;if(i[2])break r;var Zs=i[1],Ws=T2e(r),Xs=U7e(r,n,0,Zs);return[0,Ykn,function(r,n,t){return _We(Xs,Ws,r,n,t)}]}if(0=Js){if(i)break r;var Ys=t2e(r),rb=EYe(r);return[0,0,function(r,n,t){return _We(rb,Ys,r,n,t)}]}if(Tn===CF){if(i)break r;var tb=t2e(r),ab=tJe(r)(y4n,x4n);return[0,0,function(r,n,t){return _We(ab,tb,r,n,t)}]}if(Tn===$P){if(i)break r;var ub=t2e(r),fb=fYe(r);return[0,0,function(r,n,t){return _We(fb,ub,r,n,t)}]}if(Tn===Kj){if(i)break r;var ib=t2e(r),cb=tJe(r)(v5n,c5n);return[0,0,function(r,n,t){return _We(cb,ib,r,n,t)}]}if(Tn!==Ba){if(Tn!==pu)break r;if(i)break r;var vb=t2e(r),sb=iYe(r);return[0,0,function(r,n,t){return _We(sb,vb,r,n,t)}]}if(i)break r;if(!Mce[1])throw kQ([0,YL,tpn],1);var bb=G3e(r),lb=AJe(r,Twn),Bb=k5e(r),jb=fJe(1,TYe(1),function(r,n,t){return Bb(r,n,lb(r,n,bb(r,n,_We(GYe,UYe,r,n,t))))}),kb=p5e(r),pb=tJe(r)(oIn,vIn),mb=fJe(1,function(r,n,t){return pb(r,n,hWe(aJ,0,n,t))},function(r,n,t){return _We(kb,jb,r,n,t)}),db=m5e(r);return[0,0,function(r,n,t){return _We(db,mb,r,n,t)}]}if(Tn===Sr)break y;if(Tn===Ja)break x;if(Tn===QI){if(i)break r;var _b=d3e(XCn,r);return[0,0,function(r,n,t){return GL(_b,r,n,hWe(WCn,0,n,t))}]}if(Tn!==bw){if(Tn!==nr)break r;if(!i)break r;var hb=i[2];if(!hb)break r;if(hb[2])break r;var xb=hb[1],yb=i[1],wb=z1e(r),gb=U7e(r,n,npn,xb),qb=$7e(r,n,yb);return[0,0,function(r,n,t){return qb(r,n,_We(gb,wb,r,n,t))}]}if(i)break r;var Ib=1>>0?vJe(r,zQn):rYe(1,r,SQn,[0,1,0],function(r){return p2e(r,3,function(r){return m3e(r,HQn)},function(r){return m3e(r,VQn)},function(r){return wJe(LQn)})});return[0,0,Ib]}}if(!i)break r;var Db=i[2];if(!Db)break r;var Eb=Db[2];if(!Eb)break r;if(Eb[2])break r;var Nb=Eb[1],Tb=Db[1],Fb=i[1],Mb=Tn===rt?5:10,Pb=R2e(r),Gb=R0e(Mb),Kb=U7e(r,n,[1,Mb],Nb),Ob=U7e(r,n,amn,Tb),Rb=U7e(r,n,0,Fb);return[0,nJ,function(r,n,t){return Rb(r,n,Ob(r,n,Kb(r,n,Gb(r,n,hWe(emn,0,n,Pb(r,n,t))))))}]}if(!i)break r;var Qb=i[2];if(!Qb)break r;var Cb=Qb[2];if(!Cb)break r;if(Cb[2])break r;var Hb=Cb[1],Vb=Qb[1],Lb=i[1],zb=Tn===Sr?6:11,Sb=C2e(r),Zb=U7e(r,n,[1,zb],Hb),Wb=U7e(r,n,fmn,Vb),Xb=U7e(r,n,0,Lb);return[0,nJ,function(r,n,t){return Xb(r,n,Wb(r,n,_We(Zb,Sb,r,n,t)))}]}if(!i)break r;var Jb=i[2];if(!Jb)break r;var Yb=Jb[2];if(!Yb)break r;if(Yb[2])break r;var rl=Yb[1],nl=Jb[1],tl=i[1],el=Tn===Ja?3:8,al=G2e(r),ul=R0e(el),fl=U7e(r,n,[1,el],rl),il=U7e(r,n,Jpn,nl),cl=U7e(r,n,0,tl);return[0,nJ,function(r,n,t){return cl(r,n,il(r,n,fl(r,n,ul(r,n,hWe(Xpn,0,n,al(r,n,t))))))}]}}if(!i)break r;var vl=i[2];if(!vl)break r;if(vl[2])break r;var Al=vl[1],sl=i[1],bl=Tn===Th?5:10,ll=Q0e(bl),Bl=5===bl?1:0,jl=O2e(r),kl=U7e(r,n,tmn,Al),pl=[21,[1,Bl]],ml=U7e(r,n,0,sl);return[0,[1,bl],function(r,n,t){return ml(r,n,kl(r,n,jl(r,n,hWe(pl,0,n,ll(r,n,t)))))}]}if(!i)break r;var dl=i[2];if(!dl)break r;if(dl[2])break r;var _l=dl[1],xl=i[1],wl=Tn===pP?6:11,gl=Q2e(r),ql=U7e(r,n,umn,_l),Il=U7e(r,n,0,xl);return[0,[1,wl],function(r,n,t){return Il(r,n,_We(ql,gl,r,n,t))}]}if(!i)break r;var Dl=i[2];if(!Dl)break r;if(Dl[2])break r;var El=Dl[1],Nl=i[1],Tl=Tn===tc?3:8,Fl=Q0e(Tl),Ml=3===Tl?1:0,Pl=U2e(r),Ul=U7e(r,n,Wpn,El),Gl=[21,[1,Ml]],$l=U7e(r,n,0,Nl);return[0,[1,Tl],function(r,n,t){return $l(r,n,Ul(r,n,Pl(r,n,hWe(Gl,0,n,Fl(r,n,t)))))}]}if(!i)break r;if(i[2])break r;var Kl=i[1],Ol=RJe(r,iBn),Rl=Ol[2],Ql=Ol[1],Cl=k2e(r,0,3),Hl=AJe(r,cBn),Vl=_Je(7),Ll=wJe(vBn),zl=c2e(),Sl=$7e(r,n,Kl);return[0,0,function(r,n,t){return Sl(r,n,GL(Ql,r,n,GL(Rl,r,n,zl(r,n,Ll(r,n,Vl(r,n,Hl(r,n,_We(Rl,Cl,r,n,t))))))))}]}if(!i)break r;if(i[2])break r;var Zl=i[1],Wl=f[2],Xl=f[1];p:{m:{d:{switch(Xl){case 3:if(8===Wl)break m;break p;case 4:if(9===Wl)break m;break p;case 5:if(10===Wl)break d;break p;case 6:if(11!==Wl)break p;break;case 8:if(3===Wl)break m;break p;case 9:if(4===Wl)break m;break p;case 10:if(5===Wl)break d;break p;case 11:if(6!==Wl)break p;break;case 14:if(5!==Wl)break p;var Jl=Q0e(5),Yl=S0e(),rB=U7e(r,n,[1,Xl],Zl);return[0,uBn,function(r,n,t){return rB(r,n,_We(Yl,Jl,r,n,t))}];case 2:case 7:switch(Wl){case 6:case 11:var nB=e2e(r),tB=$7e(r,n,Zl);return[0,[1,Wl],function(r,n,t){return _We(tB,nB,r,n,t)}];case 3:case 4:case 5:case 8:case 9:case 10:var eB=DJe(TJe,U0e(Wl)),aB=e2e(r),uB=$7e(r,n,Zl);return[0,[1,Wl],function(r,n,t){return uB(r,n,_We(aB,eB,r,n,t))}];default:break p}default:break p}return[0,[1,Wl],U7e(r,n,[1,Xl],Zl)]}return[0,[1,Wl],U7e(r,n,[1,Xl],Zl)]}return[0,[1,Wl],U7e(r,n,[1,Xl],Zl)]}return[0,3,KJe(r,fBn,xLe(f))]}if(!i)break r;if(i[2])break r;var fB=i[1],iB=f[2],cB=f[1];k:{p:{m:{d:{_:{h:{switch(cB){case 2:if(6<=iB){if(7<=iB)break k;var vB=nYe(1,r,wln,yln,xln,function(r,n){var t=e2e(r),e=AJe(r,Rbn),a=J1e(r,64);return function(r,u,f){return GL(n,r,u,a(r,u,e(r,u,_We(n,t,r,u,f))))}}),oB=$7e(r,n,fB);return[0,gln,function(r,n,t){return _We(oB,vB,r,n,t)}]}if(3>iB)break k;var AB=nYe(1,r,GWe(iB,Dln),Iln,qln,function(r,n){var t=Q0e(iB),e=a2e(r),a=AJe(r,Obn),u=J1e(r,M0e(iB));return function(r,f,i){return GL(n,r,f,u(r,f,a(r,f,GL(n,r,f,_We(e,t,r,f,i)))))}}),sB=$7e(r,n,fB);return[0,v6e([2,iB]),function(r,n,t){return _We(sB,AB,r,n,t)}];case 3:if(4===iB)break m;break p;case 4:var bB=iB-3|0;if(2>>0)break p;switch(bB){case 1:break p;case 2:break m;default:break d}case 5:var lB=iB-4|0;if(10>>0)break p;switch(lB){case 10:var BB=J0e(r),jB=R0e(5),kB=U7e(r,n,Eln,fB);return[0,Nln,function(r,n,t){return kB(r,n,_We(jB,BB,r,n,t))}];case 2:break m;case 0:break d;default:break p}case 6:if(2===iB){var pB=t2e(r),mB=U7e(r,n,Tln,fB);return[0,0,function(r,n,t){return _We(mB,pB,r,n,t)}]}if(5===iB)break d;break k;case 7:if(8<=iB)switch(iB-8|0){case 3:var dB=nYe(1,r,Pln,Mln,Fln,function(r,n){var t=e2e(r),e=AJe(r,Kbn),a=Y1e(r,64);return function(r,u,f){return GL(n,r,u,a(r,u,e(r,u,_We(n,t,r,u,f))))}}),_B=$7e(r,n,fB);return[0,Uln,function(r,n,t){return _We(_B,dB,r,n,t)}];case 4:var hB=RJe(r,Gln),xB=hB[2],yB=hB[1],wB=tJe(r)(Kln,$ln),gB=LYe(0,0,7),qB=$Ye(r,Rln,function(r,n,t){return GL(xB,r,n,gB(r,n,hWe(Oln,0,n,t)))},function(r,n,t){return _We(xB,wB,r,n,t)}),IB=$7e(r,n,fB);return[0,1,function(r,n,t){return IB(r,n,GL(yB,r,n,_We(xB,qB,r,n,t)))}];case 0:case 1:case 2:var EB=nYe(1,r,GWe(iB,Hln),Cln,Qln,function(r,n){var t=Q0e(iB),e=a2e(r),a=AJe(r,$bn),u=Y1e(r,M0e(iB));return function(r,f,i){return GL(n,r,f,u(r,f,a(r,f,GL(n,r,f,_We(e,t,r,f,i)))))}}),NB=$7e(r,n,fB);return[0,v6e([2,iB]),function(r,n,t){return _We(NB,EB,r,n,t)}];default:break k}break k;case 8:if(9===iB)break h;break _;case 9:var TB=iB-8|0;if(2>>0)break _;switch(TB){case 1:break _;case 2:break h}break;case 10:var FB=iB-9|0;if(2>>0)break _;switch(FB){case 1:break _;case 2:break h}break;case 11:var MB=iB-7|0;if(5>>0)break k;switch(MB){case 0:var PB=n2e(r),GB=U7e(r,n,Vln,fB);return[0,0,function(r,n,t){return _We(GB,PB,r,n,t)}];case 5:var $B=U7e(r,n,zln,fB);return[0,1,function(r,n,t){return $B(r,n,hWe(Lln,0,n,t))}];case 3:break;default:break k}break;case 12:var KB=iB-7|0;if(6>>0)break k;switch(KB){case 0:var OB=tJe(r)(Zln,Sln),RB=U7e(r,n,1,fB);return[0,0,function(r,n,t){return _We(RB,OB,r,n,t)}];case 4:var CB=U7e(r,n,1,fB);return[0,Xln,function(r,n,t){return CB(r,n,hWe(Wln,0,n,t))}];case 6:var HB=U7e(r,n,1,fB);return[0,2,function(r,n,t){return HB(r,n,hWe(Jln,0,n,t))}];default:break k}case 13:if(12!==iB)break k;var VB=U7e(r,n,2,fB);return[0,1,function(r,n,t){return VB(r,n,hWe(Yln,0,n,t))}];default:break k}var LB=M0e(iB),zB=RJe(r,eBn),SB=zB[2],ZB=zB[1],WB=DJe(TJe,$H(LB)),XB=AJe(r,aBn),JB=T7e(r)([2,cB]),YB=DJe(NJe,$H(LB)),rj=DJe(TJe,$H(LB)),nj=U7e(r,n,[1,cB],fB);return[0,[1,iB],function(r,n,t){return nj(r,n,GL(ZB,r,n,GL(SB,r,n,rj(r,n,YB(r,n,GL(SB,r,n,GL(JB,r,n,XB(r,n,_We(SB,WB,r,n,t)))))))))}]}var tj=Q0e(iB),ej=R0e(cB),uj=U7e(r,n,[1,cB],fB);return[0,[1,iB],function(r,n,t){return uj(r,n,_We(ej,tj,r,n,t))}]}if(7!==iB)break k;var fj=U0e(cB),ij=n2e(r),cj=DJe(NJe,fj),vj=U7e(r,n,[1,cB],fB);return[0,0,function(r,n,t){return vj(r,n,_We(cj,ij,r,n,t))}]}var oj=M0e(iB),sj=RJe(r,nBn),bj=sj[2],lj=sj[1],Bj=DJe(TJe,$H(oj)),jj=oJe(r,tBn),kj=DJe(EJe,$H(64-oj|0)),pj=U7e(r,n,[1,cB],fB);return[0,[1,iB],function(r,n,t){return pj(r,n,GL(lj,r,n,GL(bj,r,n,kj(r,n,jj(r,n,_We(bj,Bj,r,n,t))))))}]}var mj=Q0e(iB),dj=R0e(cB),_j=U7e(r,n,[1,cB],fB);return[0,[1,iB],function(r,n,t){return _j(r,n,_We(dj,mj,r,n,t))}]}if(2===iB){var hj=U0e(cB),xj=t2e(r),yj=DJe(EJe,hj),wj=U7e(r,n,[1,cB],fB);return[0,0,function(r,n,t){return wj(r,n,_We(yj,xj,r,n,t))}]}}return[0,3,KJe(r,rBn,xLe(f))]}if(!i)break r;if(i[2])break r;var gj=f[1],qj=i[1];if(gj)if(gj[2]){for(var Ij=LY(gj),Dj=0,Ej=Ij,Nj=PL(R3(dln),Ij);0!==Ej;)Dj=[0,[0,PL(R3(Qbn),Ej-1|0),1],Dj],Ej=Ej-1|0;var Tj=YJe(0,r,Nj,Dj,_ln,function(r,n){for(var t=0,e=Ij;0!==e;)t=[0,ZY(n,e-1|0),t],e=e-1|0;return function n(e){if(!e)return l0e(r,[7,gj],r3e(r,2,t));var a=e[1],u=fJe(1,ZYe,n(e[2])),f=GJe(RX);return function(r,n,t){return GL(a,r,n,_We(f,u,r,n,t))}}(t)})}else{var Fj=gj[1],Mj=RJe(r,hln),Pj=Mj[2],Uj=Mj[1],Gj=fJe(1,ZYe,l0e(r,Fj,Pj)),$j=GJe(RX);Tj=function(r,n,t){return GL(Uj,r,n,GL(Pj,r,n,_We($j,Gj,r,n,t)))}}else Tj=l0e(r,Ez,wJe(gXe));var Rj=O4e(0,r,gj),Qj=TYe(1),Cj=$7e(r,n,qj);return[0,0,function(r,n,t){return Cj(r,n,Qj(r,n,_We(Rj,Tj,r,n,t)))}]}if(!i)break r;if(i[2])break r;var Hj=f[1],Vj=i[1],Lj=O4e(0,r,Hj),zj=TYe(0),Sj=$7e(r,n,Vj);return[0,c6e(LY(Hj)),function(r,n,t){return Sj(r,n,_We(zj,Lj,r,n,t))}]}if(!i)break r;if(i[2])break r;var Zj=i[1],Wj=f[1],Xj=tYe(0,r,wXn,yXn,xXn,function(r,n,t){var e=RJe(r,hXn),a=e[2],u=e[1],f=bYe(),i=o2e(),c=v2e(r,0,t);return function(r,e,v){return c(r,e,GL(u,r,e,GL(a,r,e,i(r,e,GL(n,r,e,GL(t,r,e,_We(f,a,r,e,v)))))))}}),Jj=K4e(r,Wj),Yj=$7e(r,n,Zj);return[0,0,function(r,n,t){return Yj(r,n,_We(Jj,Xj,r,n,t))}]}if(!i)break r;if(i[2])break r;var rk=f[1],nk=i[1],tk=p6e[29].call(null,rk,n[3]);if(!tk)throw kQ([0,OWe,PL(R3(FPn),rk)],1);var ek=tk[1],ak=$7e(r,n,nk);return[0,3,function(r,n,t){return ak(r,n,FWe(ek,r,n,t))}]}var uk=f[1],fk=YY(function(t){return $7e(r,n,t)},i);return[0,0,r3e(r,1===uk?1:0,fk)]}if(!i)break r;if(i[2])break r;var ik=i[1],ck=N3e(r,f[1]),vk=$7e(r,n,ik);return[0,0,function(r,n,t){return _We(vk,ck,r,n,t)}]}if(!i)break r;if(i[2])break r;var ok=i[1],Ak=f[1],sk=P7e(r,n,ok),bk=sk[2],lk=sk[1];if("number"!=typeof lk&&2===lk[0]){var Bk=lk[1];if("number"!=typeof Bk&&2===Bk[0])return[0,[2,o0(Ak,Bk[1])],bk]}var jk=D2e(r,ok[3][1],Ak),kk=j6e(r,lk,0);return[0,0,function(r,n,t){return GL(bk,r,n,_We(kk,jk,r,n,t))}]}if(!i)break r;if(i[2])break r;var pk=i[1],mk=f3e(0,$H(f[1])),dk=$7e(r,n,pk);return[0,0,function(r,n,t){return _We(dk,mk,r,n,t)}]}var _k=f[1];if("number"!=typeof _k&&2===_k[0]&&1===_k[1]&&!f[2]){if(!i)break r;var hk=i[2];if(!hk)break r;var xk=hk[1][2];if(2===xk[0]){var yk=xk[1];if("number"!=typeof yk&&0===yk[0]&&!yk[1]){var wk=i[1];if(hk[2])break r;var gk=hJe(0),qk=K7e(r,n,wk);return[0,0,function(r,n,t){return _We(qk,gk,r,n,t)}]}}}if(!i)break r;var Ik=i[2];if(!Ik)break r;if(Ik[2])break r;var Dk=f[2],Ek=Ik[1],Nk=i[1];if(1===_k)var Tk=[0,0,function(r,n,t){return hWe(0,0,n,t)}];else{c:{v:{if("number"!=typeof _k&&2===_k[0])switch(_k[1]){case 12:switch(Dk){case 2:var Fk=xJe(2);break c;case 3:Fk=xJe(3);break c;case 4:Fk=xJe(4);break c;case 5:Fk=xJe(5);break c;case 0:break;default:break v}break;case 13:switch(Dk){case 2:Fk=yJe(2);break c;case 3:Fk=yJe(3);break c;case 4:Fk=yJe(4);break c;case 5:Fk=yJe(5);break c;case 0:break;default:break v}break;case 15:Fk=S2e(r,Dk);break c;case 16:case 18:Fk=m2e(r,[0,Dk]);break c}if(!Dk){Fk=T7e(r)(_k);break c}if("number"!=typeof _k&&2===_k[0]){var Mk=_k[1];if(12>=Mk-2>>>0){switch(Dk){case 0:var Pk=VJ(v_n);break;case 1:throw kQ([0,YL,o_n],1);case 2:Pk=A_n;break;case 3:Pk=s_n;break;case 4:Pk=b_n;break;default:Pk=l_n}var Uk=Pk[3],Gk=Pk[2],$k=Pk[1];switch(Mk){case 2:case 7:Fk=W1e(r,$k);break c;case 8:case 9:case 10:case 11:Fk=_Je(Uk);break c;case 3:case 4:case 5:case 6:case 14:Fk=_Je(Gk);break c;default:Fk=KJe(r,c_n,She(Mk));break c}}}}Fk=KJe(r,i_n,Tge(Dk))}Tk=[0,v6e(_k),Fk]}var Kk=Tk[1],Ok=Tk[2],Rk=U7e(r,n,Kk,Ek),Qk=U7e(r,n,Kk,Nk);return[0,0,function(r,n,t){return Qk(r,n,_We(Rk,Ok,r,n,t))}]}if(!i)break r;var Ck=i[2];if(!Ck)break r;if(Ck[2])break r;var Hk=Ck[1],Vk=i[1],Lk=N7e(r,f[1],f[2]),zk=Lk[1],Sk=Lk[3],Zk=Lk[2],Wk=U7e(r,n,zk,Hk),Xk=U7e(r,n,zk,Vk);return[0,Zk,function(r,n,t){return Xk(r,n,_We(Wk,Sk,r,n,t))}]}var Jk=f[2],Yk=f[1];if(!Jk){if(!i)break r;if(i[2])break r;return P7e(r,n,i[1])}if(!i)break r;if(i[2])break r;f:{var rp=i[1];if("number"==typeof Yk){if(1===Yk){var np=[0,0,3,function(r,n,t){return hWe(0,0,n,t)}];break f}}else if(2===Yk[0])switch(Jk){case 1:var tp=Yk[1];if(7<=tp)switch(tp-7|0){case 0:var ep=WH(v0n,RYe(7)),ap=WH(ep,64-OYe(7)|0);np=[0,0,0,nYe(0,r,s0n,A0n,o0n,function(r,n){var t=tJe(r)(xJn,hJn),e=G1e(),a=U1e(),u=U1e(),f=wJe(i0n),i=w1e(r),c=wJe(ep),v=fJe(1,function(r,n,t){return _We(c,i,r,n,t)},function(r,t,i){return f(r,t,GL(n,r,t,u(r,t,hWe(f0n,0,t,_We(a,e,r,t,i)))))}),o=GJe(ap),A=U1e(),s=$Ye(r,c0n,function(r,t,e){return GL(n,r,t,A(r,t,_We(o,v,r,t,e)))},function(r,e,a){return _We(n,t,r,e,a)});return function(r,t,e){return _We(n,s,r,t,e)}})];break f;case 5:np=[0,1,1,function(r,n,t){return hWe($yn,0,n,t)}];break f;case 6:np=[0,2,2,function(r,n,t){return hWe(Kyn,0,n,t)}];break f;case 1:case 2:case 3:case 4:var up=nYe(1,r,GWe(tp,Qyn),Ryn,Oyn,function(r,n){var t=oJe(r,FX),e=GJe(Gyn);return function(r,a,u){return GL(n,r,a,e(r,a,t(r,a,qJe(r,a,GL(n,r,a,hWe(Uyn,0,a,u))))))}}),ip=v6e(Yk);np=[0,v6e(Yk),ip,up];break f}break;case 2:var cp=Yk[1];switch(cp){case 6:case 11:np=[0,[1,cp],[1,cp],PJe(Cyn)];break f;case 3:case 4:case 5:case 8:case 9:case 10:var vp=wJe(K0e(cp)),Ap=v6e(Yk);np=[0,v6e(Yk),Ap,function(r,n,t){return vp(r,n,hWe(Hyn,0,n,t))}];break f}}var sp=[0,0,3,vJe(r,Vyn)];np=KWe(zyn,[1,Lyn,[0,Ege(Jk),0]],sp)}var bp=np[3],lp=np[2],Bp=U7e(r,n,np[1],rp);return[0,lp,function(r,n,t){return _We(Bp,bp,r,n,t)}]}if(!l){var jp=RJe(r,mln),kp=jp[2],pp=jp[1],mp=y0e(r,j,k),dp=U7e(r,n,c6e(j),o),_p=AYe(vJ),hp=j6e(r,d,0);return[0,c6e(k),function(r,n,t){return GL(m,r,n,GL(hp,r,n,GL(pp,r,n,GL(kp,r,n,_p(r,n,dp(r,n,_We(kp,mp,r,n,t)))))))}]}if(0!==b)throw kQ([0,YL,jln],1);var xp=RJe(r,kln),yp=xp[2],wp=xp[1],gp=RJe(r,pln),qp=gp[2],Ip=gp[1],Ep=rde(A[3][1])[4],Np=F6e(0,n,QX);if(1>>0)throw kQ([0,YL,$gn],1);var Fp=k3e(r),Pp=b2e(r,1,Kgn),Gp=j3e(r),$p=m3e(r,Rgn),Kp=m3e(r,Qgn),Op=K4e(r,Ep),Rp=m3e(r,Cgn),Qp=wJe(Hgn),Cp=wJe($X),Vp=wJe(Vgn),Lp=wJe($X),zp=l2e(r),Sp=J2e(0,Lgn),Zp=l2e(r),Xp=J2e(0,zgn),Yp=$7e(r,n,o),rm=j6e(r,d,0);return[0,c6e(k),function(r,n,t){return GL(m,r,n,GL(rm,r,n,GL(wp,r,n,Yp(r,n,GL(Ip,r,n,GL(yp,r,n,Xp(r,n,Zp(r,n,GL(yp,r,n,Sp(r,n,zp(r,n,Lp(r,n,Vp(r,n,Cp(r,n,Qp(r,n,Rp(r,n,GL(qp,r,n,Op(r,n,Kp(r,n,Np(r,n,$p(r,n,hWe(Ogn,0,n,Gp(r,n,_We(Pp,Fp,r,n,t))))))))))))))))))))))))}]}var nm=I[2];if(0!==l)throw kQ([0,YL,Bln],1);var tm=ZJe(r,qoe(k,1)),em=[6,[0,wve,PL(nm,0)]],am=U7e(r,n,c6e(j),o);return[0,c6e(k),function(r,n,t){return GL(m,r,n,qJe(r,n,am(r,n,hWe(em,0,n,GL(tm,r,n,t)))))}]}var um=M7e(r,n,E,0,a),fm=um[2],im=um[1],cm=U7e(r,n,c6e(0),o);return[0,im,function(r,n,t){return GL(m,r,n,_We(cm,fm,r,n,t))}]}switch(f){case 0:var vm=xWe(function(t){return $7e(r,n,t)},i);return[0,[0,LY(i)],vm];case 1:if(!i)break r;if(i[2])break r;var om=i[1],Am=$7e(r,n,om);return[0,0,l0e(r,om[3][1],Am)];case 2:if(!i)break r;var sm=i[2];if(!sm)break r;if(sm[2])break r;var bm=aXe[5],lm=F7e(r,n,i[1],sm[1]);return[0,0,function(r,n,t){return _We(lm,bm,r,n,t)}];case 3:if(!i)break r;var Bm=i[2];if(!Bm)break r;if(Bm[2])break r;var jm=Bm[1],km=i[1],pm=tYe(1,r,eXn,tXn,nXn,function(r,n,t){var e=Q5e(r),a=f2e(r,b2e(r,1,rXn));return function(r,u,f){return GL(n,r,u,GL(t,r,u,_We(a,e,r,u,f)))}}),mm=$7e(r,n,jm),dm=$7e(r,n,km);return[0,0,function(r,n,t){return dm(r,n,_We(mm,pm,r,n,t))}];case 4:if(!i)break r;if(i[2])break r;var _m=i[1],hm=SJe(r,qoe(r[21],1)),xm=U7e(r,n,c6e(r[21]),_m);return[0,3,function(r,n,t){return xm(r,n,GL(hm,r,n,hWe(4,0,n,t)))}];case 5:if(!i)break r;if(i[2])break r;var ym=a[2],wm=i[1],gm=ym[3],qm=ym[2],Im=[0,Pie(a[2][1]),qm,gm],Dm=a[1],Em=Dm[3],Nm=Dm[2],Tm=Wle([0,[0,Pie(a[1][1]),Nm,Em],Im]),Fm=uJe(dWe,vJe(r,PL(R3(KRn),Tm))),Mm=U7e(r,n,0,wm);return[0,nJ,function(r,n,t){return _We(Mm,Fm,r,n,t)}];case 7:if(!i)break r;if(i[2])break r;var Pm=RJe(r,fZn),Um=Pm[2],Gm=Pm[1],$m=B0e(0,Um),Km=k2e(r,0,1),Om=fJe(1,function(r,n,t){return GL(Um,r,n,Km(r,n,_We(Gm,$m,r,n,t)))},ZYe),Rm=tJe(r)(cZn,iZn),Qm=l2e(r);return c(0,function(r,n,t){return GL(Gm,r,n,GL(Um,r,n,Qm(r,n,Rm(r,n,hWe(aJ,0,n,Om(r,n,t))))))});case 8:if(!i)break r;if(i[2])break r;return c(0,z2e(r));case 10:if(!i)break r;if(i[2])break r;return c(0,tJe(r)(Hbn,Cbn));case 11:if(i)break r;var Cm=1>>0?vJe(r,QQn):m3e(r,CQn);return[0,Vbn,Cm];case 12:if(!i)break r;if(i[2])break r;var Hm=i[1],Vm=DJe(0,WH(Lbn,64-OYe(7)|0)),Lm=$7e(r,n,Hm);return[0,0,function(r,n,t){return _We(Lm,Vm,r,n,t)}];case 13:if(!i)break r;var zm=i[2];if(!zm)break r;if(zm[2])break r;var Sm=zm[1],Zm=i[1],Xm=_Je(0),Jm=$7e(r,n,Sm),Ym=$7e(r,n,Zm);return[0,0,function(r,n,t){return Ym(r,n,Jm(r,n,Xm(r,n,t)))}];case 14:if(!i)break r;var rd=i[2];if(!rd)break r;if(rd[2])break r;var nd=rd[1],td=i[1],ed=AYe(Z2e),ad=DJe(TJe,Sbn),ud=LYe(0,0,7),id=$7e(r,n,nd),cd=AYe(vJ),vd=$7e(r,n,td);return[0,0,function(r,n,t){return vd(r,n,cd(r,n,id(r,n,ud(r,n,ad(r,n,hWe(zbn,0,n,ed(r,n,t)))))))}];case 15:if(!i)break r;if(i[2])break r;var od=i[1];if(!QYe(7,lC($K,$K,8191)))throw kQ([0,YL,Zbn],1);var Ad=VYe(0,7),Bd=DJe(1,Wbn),jd=X2e(),kd=function(r,n,t){return Ad(r,n,t)},pd=$7e(r,n,od);return[0,0,function(r,n,t){return pd(r,n,jd(r,n,_We(Bd,kd,r,n,t)))}];case 16:if(!i)break r;if(i[2])break r;var md=i[1],dd=nYe(0,r,$On,GOn,0,function(r,n){var t=1>>0?vJe(r,BRn):m3e(r,jRn),e=P3e(r);return function(r,a,u){return GL(n,r,a,_We(e,t,r,a,u))}}),hd=$7e(r,n,md);return[0,nJ,function(r,n,t){return _We(hd,dd,r,n,t)}];case 17:if(!i)break r;if(i[2])break r;var xd=i[1],yd=nYe(0,r,UOn,POn,MOn,function(r,n){return dYe(r,FOn,TOn,function(t){var e=M3e(r),a=1>>0?vJe(r,bRn):m3e(r,lRn),u=P3e(r);return function(r,f,i){return GL(n,r,f,u(r,f,GL(t,r,f,GL(a,r,f,_We(t,e,r,f,i)))))}})}),wd=$7e(r,n,xd);return[0,0,function(r,n,t){return _We(wd,yd,r,n,t)}];case 18:if(i)break r;return[0,0,rYe(0,r,NOn,EOn,function(r){return dYe(r,DOn,IOn,function(n){var t=M3e(r),e=1>>0?vJe(r,ARn):m3e(r,sRn);return function(r,a,u){return GL(n,r,a,GL(e,r,a,_We(n,t,r,a,u)))}})})];case 19:if(i)break r;return[0,0,rYe(0,r,QOn,ROn,function(r){return dYe(r,OOn,KOn,function(n){var t=M3e(r),e=1>>0?vJe(r,kRn):m3e(r,pRn);return function(r,a,u){return GL(n,r,a,GL(e,r,a,_We(n,t,r,a,u)))}})})];case 20:if(i)break r;return[0,0,rYe(0,r,qOn,gOn,function(r){return dYe(r,wOn,yOn,function(n){var t=M3e(r),e=1>>0?vJe(r,vRn):m3e(r,oRn);return function(r,a,u){return GL(n,r,a,GL(e,r,a,_We(n,t,r,a,u)))}})})];case 21:if(!i)break r;if(i[2])break r;var gd=i[1],qd=nYe(0,r,xOn,hOn,_On,function(r,n){return dYe(r,dOn,mOn,function(t){var e=M3e(r),a=1>>0?vJe(r,iRn):m3e(r,cRn),u=P3e(r);return function(r,f,i){return GL(n,r,f,u(r,f,GL(t,r,f,GL(a,r,f,_We(t,e,r,f,i)))))}})}),Id=$7e(r,n,gd);return[0,0,function(r,n,t){return _We(Id,qd,r,n,t)}];case 22:if(!i)break r;if(i[2])break r;var Dd=i[1],Ed=m3e(r,Xbn),Nd=R0e(5),Td=U7e(r,n,Ybn,Dd);return[0,nJ,function(r,n,t){return Td(r,n,Nd(r,n,hWe(Jbn,0,n,Ed(r,n,t))))}];case 23:if(!i)break r;if(i[2])break r;var Fd=i[1];if(1>>0)var Md=vJe(r,uRn);else{var Pd=m3e(r,fRn),Ud=l2e(r);Md=function(r,n,t){return _We(Ud,Pd,r,n,t)}}var Gd=$7e(r,n,Fd);return[0,nJ,function(r,n,t){return _We(Gd,Md,r,n,t)}];case 24:if(i)break r;if(1>>0)var $d=vJe(r,eRn);else{var Kd=fJe(1,B0e(0,p2e(r,0,function(r){return m3e(r,rRn)},function(r){return m3e(r,nRn)},function(r){return wJe(tRn)})),ZYe),Od=m3e(r,aRn);$d=function(r,n,t){return Od(r,n,hWe(aJ,0,n,Kd(r,n,t)))}}return[0,0,$d];case 25:if(i)break r;return[0,nJ,oYe(r)];case 26:if(!i)break r;if(i[2])break r;var Rd=$7e(r,n,i[1]);if(1>>0)var Qd=vJe(r,cQn);else{var Hd=m3e(r,vQn),Vd=l2e(r),zd=z2e(r);Qd=function(r,n,t){return Rd(r,n,zd(r,n,_We(Vd,Hd,r,n,t)))}}return[0,nJ,Qd];case 27:if(i)break r;var Sd=1>>0?vJe(r,xQn):p2e(r,2,function(r){return m3e(r,dQn)},function(r){return m3e(r,_Qn)},function(r){return wJe(hQn)});return[0,0,Sd];case 28:if(!i)break r;var Wd=i[2];if(!Wd)break r;var Jd=Wd[2];if(!Jd)break r;var Yd=Jd[2];if(!Yd)break r;var r_=Yd[2];if(!r_)break r;if(r_[2])break r;var n_=Jd[1],t_=i[1],e_=r_[1],a_=Yd[1],u_=Wd[1],f_=rde(t_[3][1])[4],i_=rde(n_[3][1])[4],c_=RJe(r,rln),v_=c_[2],o_=c_[1],A_=RJe(r,nln),s_=A_[2],b_=A_[1],l_=RJe(r,tln),B_=l_[2],j_=l_[1],k_=RJe(r,eln),p_=k_[2],m_=k_[1],d_=RJe(r,aln),__=d_[2],h_=d_[1],x_=F6e(0,n,QX),y_=v5e(r,Wgn,v_,c5e(r,i_)([0,B_,[0,p_,[0,__,0]]]),function(n){var t=K4e(r,f_);return function(r,n,e){return _We(s_,t,r,n,e)}},x_),w_=$7e(r,n,e_),g_=$7e(r,n,a_),I_=$7e(r,n,n_),D_=$7e(r,n,u_),E_=$7e(r,n,t_);return[0,nJ,function(r,n,t){return E_(r,n,GL(o_,r,n,D_(r,n,GL(b_,r,n,I_(r,n,GL(j_,r,n,g_(r,n,GL(m_,r,n,w_(r,n,_We(h_,y_,r,n,t))))))))))}];case 29:if(!i)break r;var N_=i[2];if(!N_)break r;var T_=N_[2];if(!T_)break r;var F_=T_[2];if(!F_)break r;var M_=F_[2];if(!M_)break r;var P_=M_[2];if(!P_)break r;if(P_[2])break r;var U_=P_[1],G_=M_[1],$_=F_[1],O_=T_[1],R_=N_[1],C_=i[1],V_=RJe(r,uln),L_=V_[2],z_=V_[1],S_=RJe(r,fln),Z_=S_[2],W_=S_[1],X_=RJe(r,iln),J_=X_[2],Y_=X_[1],rh=RJe(r,cln),nh=rh[2],th=rh[1],eh=RJe(r,vln),ah=eh[2],uh=eh[1],fh=F6e(0,n,QX),ih=v5e(r,Zgn,L_,i5e(r,0)([0,J_,[0,nh,[0,ah,0]]]),function(n){var t=l2e(r);return function(r,n,e){return _We(Z_,t,r,n,e)}},fh),ch=$7e(r,n,U_),vh=$7e(r,n,G_),oh=$7e(r,n,$_),Ah=$7e(r,n,O_),sh=i3e(r,2),bh=AYe(vJ),lh=z2e(r),Bh=$7e(r,n,R_),jh=$7e(r,n,C_);return[0,nJ,function(r,n,t){return jh(r,n,Bh(r,n,lh(r,n,bh(r,n,sh(r,n,GL(z_,r,n,Ah(r,n,GL(W_,r,n,oh(r,n,GL(Y_,r,n,vh(r,n,GL(th,r,n,ch(r,n,_We(uh,ih,r,n,t))))))))))))))}];case 30:if(i)break r;var kh=1>>0?vJe(r,mQn):p2e(r,1,function(r){return m3e(r,jQn)},function(r){return m3e(r,kQn)},function(r){return wJe(pQn)});return[0,0,kh];case 31:if(i)break r;var ph=1>>0?vJe(r,oQn):m3e(r,AQn);return[0,oln,ph];case 32:if(i)break r;return[0,0,q3e(r)];case 9:break;default:break r}}if(i&&!i[2])return c(0,tJe(r)(_mn,dmn))}return[0,3,KJe(r,hmn,xLe(f))]}function P7e(r,n,t){return G7e(r,n,0,t)}function U7e(r,n,t,e){var a=G7e(r,n,[0,t],e),u=a[2],f=j6e(r,a[1],t);return function(r,n,t){return _We(u,f,r,n,t)}}function G7e(r,n,t,e){r:if(e[3][3]){var a=z7e(r,n,e),u=a[1];UL(a[2],r,n);var f=[0,[2,u],dWe]}else{var i=e[2];switch(i[0]){case 0:var c=i[1],v=c[2];n:{for(var o=v,A=c[1];o;){var s=o[2],b=Gme(o[1][3][1]);if(b){var l=b;break n}o=s}l=0}if(l){var B=xWe(function(t){return function(r,n,t){var e=P7e(r,n,t),a=e[2],u=b6e(0,e[1]);return function(r,n,t){return _We(a,u,r,n,t)}}(r,n,t)},v);f=[0,3,function(r,n,t){return GL(B,r,n,hWe(0,0,n,t))}];break r}f=M7e(r,n,A,c[2],e[1]);break r;case 1:f=T6e(r,n,i[2]);break r;case 2:f=j7e(i[1]);break r;case 3:var j=i[1],k=j[2],p=i[2];switch(k[0]){case 0:var m=E6e(r,n,k[1]);break;case 1:var d=k[1],_=k[2],h=Ume(d[3][1]);if("number"!=typeof h&&5===h[0]){if(D6e(h[1])){var x=e0e(r),y=DJe(0,aXe[2]),w=F7e(r,n,d,_);m=[0,function(r,n,t){return _We(w,y,r,n,t)},0,x];break}var g=aXe[6];m=[0,F7e(r,n,d,k[2]),0,g];break}throw kQ([0,YL,ISn],1);default:var q=k[1],I=k[2];if(D6e(dde(I,cde([0,I,0],q[3][1])[2]))){var D=e0e(r),E=DJe(0,aXe[2]),N=q2e(r,q[3][1],I),T=$7e(r,n,q);m=[0,function(r,n,t){return T(r,n,_We(N,E,r,n,t))},0,D]}else{var F=aXe[6],M=q2e(r,q[3][1],k[2]),P=$7e(r,n,q);m=[0,function(r,n,t){return _We(P,M,r,n,t)},0,F]}}var U=m[3],G=m[1],$=j[1],K=j[1],O=U7e(r,n,m[2],p);f=[0,nJ,function(r,n,t){return gWe(K,G,r,0,O(r,n,gWe($,U,r,0,t)))}];break r;case 4:var R=i[1],Q=R[2],C=R[1],H=L7e(r,n,C,KCe(LCe(Q))),V=H[2],L=G7e(r,H[1],t,Q);f=[0,L[1],V(L[2])];break r;case 5:var z=i[3],S=i[2],Z=K7e(r,n,i[1]),W=G7e(r,n,t,S),X=W[1],J=W[2],Y=G7e(r,n,t,z),rr=Y[1],nr=Y[2],tr=t?t[1]:s6e(X,rr),er=j6e(r,rr,tr),ar=j6e(r,X,tr),ur=o6e(0,tr),fr=ZJe(r,ur),ir=SJe(r,ur),cr=SJe(r,ur),vr=iJe(r,LJe(ur),function(r,n,t){return _We(J,ar,r,n,GL(cr,r,n,t))},function(r,n,t){return _We(nr,er,r,n,GL(ir,r,n,t))});f=[0,tr,function(r,n,t){return Z(r,n,_We(vr,fr,r,n,t))}];break r;case 6:var or=i[1],Ar=i[2],sr=or[3][1];n:{if(Ar){var br=Ar[1][2][1][2];if("number"!=typeof br&&5===br[0]){var lr=br[1];if(!Ar[2]&&"number"!=typeof sr&&4===sr[0]){var Br=sr[1];if(Br&&!Br[2]){var jr=lr===Br[1][1]?1:0;break n}}}}jr=0}if(jr){var kr=$7e(r,n,or);if(Ar){var pr=Ar[1][2],mr=pr[1],dr=mr[2];if("number"!=typeof dr&&5===dr[0]){var _r=dr[2],hr=pr[2];if(!Ar[2]){var xr=C7e(r,n,[0,mr[1],[5,"",_r],mr[3]]),yr=xr[2],wr=G7e(r,xr[1],t,hr),gr=wr[1],qr=wr[2],Ir=t?t[1]:gr;f=[0,Ir,WJe(r,o6e(0,Ir),function(n){var t=_5e(yr)([0,qr]),e=w5e(r,YY(function(t){var e=t[2],a=j6e(r,t[1],Ir);return _5e(e)([0,function(r,t,e){return _We(a,n,r,t,e)}])},[0,[0,gr,_5e([0,kr])(t)],0]));return function(r,n,t){return GL(e,r,n,hWe(0,0,n,t))}})];break r}}}throw kQ([0,XL,xmn],1)}var Dr=i[2],Er=$7e(r,n,or),Nr=RJe(r,ymn),Tr=or[3][1];n:{var Fr=Nr[2],Mr=Nr[1];if(Dr){var Pr=Dr[1],Ur=Pr[2][1][2];if("number"==typeof Ur||5!==Ur[0])var Gr=Dr;else{var $r=Ur[1],Kr=Dr[2],Or=Ur[2];if(Kr){var Rr=Kr[1],Qr=Rr[2],Cr=Qr[1],Hr=Cr[2];if("number"==typeof Hr||5!==Hr[0])Gr=Dr;else{var Vr=Hr[1],Lr=Hr[2],zr=Qr[2];if(Kr[2]||"number"==typeof Tr||4!==Tr[0])Gr=Dr;else{var Sr=Tr[1];if(Sr){var Zr=Sr[2];if(Zr&&!Zr[2]){var Wr=Zr[1][1],Xr=Sr[1][1];if(lLe(Or)){if($r!==Xr&&$r!==Wr){Gr=Dr;break n}if(Vr!==Xr&&Vr!==Wr){Gr=Dr;break n}Gr=[0,Pr,[0,[0,Rr[1],[0,[0,Cr[1],[5,"",Lr],Cr[3]],zr],Rr[3]],0]]}else Gr=Dr}else Gr=Dr}else Gr=Dr}}}else Gr=Dr}}else Gr=Dr}var Jr=YY(function(e){var a=e[2],u=a[2],f=C7e(r,n,a[1]),i=f[2],c=G7e(r,f[1],t,u),v=c[1],o=[0,c[2]],A=_5e(i)(o);return[0,v,_5e([0,Fr])(A)]},Gr),Yr=t?t[1]:e0(s6e,3,YY(function(r){return r[1]},Jr)),rn=WJe(r,o6e(0,Yr),function(n){var t=w5e(r,YY(function(t){var e=t[2],a=j6e(r,t[1],Yr);return _5e(e)([0,function(r,t,e){return _We(a,n,r,t,e)}])},Jr));return function(r,n,e){return GL(t,r,n,hWe(0,0,n,e))}});f=[0,Yr,function(r,n,t){return Er(r,n,_We(Mr,rn,r,n,t))}];break r;case 7:var nn=[3,[0,wve,0]],tn=U7e(r,[0,1,n[2],n[3]],nJ,i[1]),en=function(r,n,t){return tn(r,n,hWe(nn,0,n,t))};f=[0,3,function(r,n,t){return EWe(en,r,n,hWe(0,0,n,t))}];break r;case 8:var an=i[3],un=i[1],fn=TWe(function(t){var e=p6e[4].call(null,un,t,n[3]);return $7e(r,[0,n[1],n[2],e],an)});f=[0,0,cJe(r,o6e(0,0),fn)];break r;case 10:var cn=i[3],vn=x6e(r,n,i[1],i[2]),on=vn[2],An=P7e(r,vn[1],cn),sn=An[2],bn=An[1],ln=[9,[0,wve,on]],Bn=c0e(r);f=[0,bn,function(r,n,t){return Bn(r,n,hWe(ln,0,n,GL(sn,r,n,t)))}];break r;case 11:var jn=i[3],kn=E6e(r,n,i[1]),pn=kn[3],mn=kn[1],dn=U7e(r,n,kn[2],jn);f=[0,nJ,function(r,n,t){return GL(mn,r,n,_We(dn,pn,r,n,t))}];break r;case 12:var _n=i[3],hn=i[7],xn=i[6],yn=i[5],wn=i[2],gn=i[1],qn=rHe(e);switch(_n){case 1:throw kQ([0,YL,wmn],1);case 2:var In=0;break;default:In=xn}var Dn=LY(In);f=f5e(r,n,gn,wn,_n,qn,yn,function(r,n){return U7e(r,n,c6e(Dn),hn)},In,e[1]);break r;case 13:var En=i[2],Nn=i[5],Tn=i[4],Fn=i[3],Mn=i[1],Pn=RJe(r,gmn),Un=Pn[2],Gn=Pn[1],$n=RJe(r,qmn),Kn=$n[2],On=$n[1],Rn=RJe(r,Imn),Qn=Rn[2],Cn=Rn[1],Hn=RJe(r,Dmn),Vn=Hn[2],Ln=Hn[1],zn=rHe(En),Sn=F6e(0,n,QX),Zn=N3e(r,Cz),Wn=g3e(r),Xn=v5e(r,Sgn,function(r,n,t){return _We(Wn,Zn,r,n,t)},c5e(r,Mn)([0,Kn,[0,Qn,[0,Vn,[0,Un,0]]]]),function(n){var t=K4e(r,[0,Fz,0]),e=Q0e(5);return function(r,a,u){return GL(n,r,a,_We(e,t,r,a,u))}},Sn),Jn=$7e(r,n,Nn),Yn=$7e(r,n,Tn),rt=$7e(r,n,Fn),nt=AYe(vJ),tt=f5e(r,n,hqn,0,0,zn,0,function(r,n){return U7e(r,n,nJ,En)},0,e[1]),et=tt[2],at=j6e(r,tt[1],0);f=[0,nJ,function(r,n,t){return _We(et,at,r,n,nt(r,n,GL(Gn,r,n,rt(r,n,GL(On,r,n,Yn(r,n,GL(Cn,r,n,Jn(r,n,_We(Ln,Xn,r,n,t)))))))))}];break r;case 14:f=RWe(Emn);break r;case 15:if(1>>0){f=[0,0,w2e(r,YY(function(t){return[0,t[2][1],function(e){return zme(t[3])?function(r,n,t){var e=h6e(n,t);if(e){var a=e[1];switch(a[0]){case 1:var u=[8,[0,wve,a[1]]];return function(r,n,t){return hWe(u,0,n,t)};case 2:return lYe(r,a[1])}}throw kQ([0,YL,gPn],1)}(r,n,t[2][2]):function(r,n,t){var e=T6e(r,n,t),a=e[2],u=j6e(r,e[1],0);return function(r,n,t){return _We(a,u,r,n,t)}}(r,n,t[2][2])}]},i[2]))];break r}}f=[0,nJ,KJe(r,Nmn,pLe(e))]}var ut=f[2],ft=e[1];return[0,f[1],function(r,n,t){return gWe(ft,ut,r,0,t)}]}function $7e(r,n,t){return U7e(r,n,0,t)}function K7e(r,n,t){var e=P7e(r,n,t),a=e[1],u=e[2],f=0!==a?j6e(r,a,0):dWe;return function(r,n,t){return _We(u,f,r,n,t)}}function O7e(r,n,t,e){var a=tJe(r)(Fmn,e),u=S0e(),f=U7e(r,n,Pmn,t);return[0,Umn,function(r,n,t){return f(r,n,u(r,n,hWe(Mmn,0,n,a(r,n,hWe(Tmn,0,n,Z0e(r,n,t))))))}]}function R7e(r,n,t,e){var a=tJe(r)(Gmn,e),u=S0e(),f=U7e(r,n,Kmn,t);return[0,0,function(r,n,t){return f(r,n,u(r,n,hWe($mn,0,n,a(r,n,hWe(aJ,0,n,t)))))}]}function Q7e(r,n,t){var e=t[2];if(BLe(t))var a=[0,function(r,n,t){return hWe(2,0,n,t)}];else{if("number"==typeof e)throw kQ([0,YL,Ymn],1);switch(e[0]){case 0:a=[0,N6e(r,n,e[1])];break;case 1:var u=e[1];a=[1,function(n){var t=uJe(dWe,n),e=function(r,n){if("number"==typeof n)return GJe(fJ);switch(n[0]){case 0:return n[1]?dWe:hJe(0);case 2:var t=T7e(r)(Omn),e=k7e(r,0,n);return function(r,n,a){return _We(e,t,r,n,a)};case 3:var a=T7e(r)(Rmn),u=k7e(r,0,n);return function(r,n,t){return _We(u,a,r,n,t)};case 4:var f=T7e(r)(Fz),i=k7e(r,0,n);return function(r,n,t){return _We(i,f,r,n,t)};case 5:var c=T7e(r)(Qmn),v=k7e(r,Cmn,n),o=I0e(r,6);return function(r,n,t){return o(r,n,_We(v,c,r,n,t))};case 7:var A=T7e(r)(Hmn),s=k7e(r,0,n);return function(r,n,t){return _We(s,A,r,n,t)};case 8:var b=T7e(r)(Vmn),l=k7e(r,0,n);return function(r,n,t){return _We(l,b,r,n,t)};case 9:var B=T7e(r)(Lmn),j=k7e(r,0,n);return function(r,n,t){return _We(j,B,r,n,t)};case 10:var k=T7e(r)(zmn),p=k7e(r,Smn,n),m=I0e(r,11);return function(r,n,t){return m(r,n,_We(p,k,r,n,t))};case 13:var d=T7e(r)(Zmn),_=k7e(r,0,n);return function(r,n,t){return _We(_,d,r,n,t)};case 14:var h=S2e(r,0),x=k7e(r,0,n);return function(r,n,t){return _We(x,h,r,n,t)};case 15:var y=m2e(r,Wmn),w=k7e(r,0,n);return function(r,n,t){return _We(w,y,r,n,t)};case 1:case 6:var g=Z1e(r),q=k7e(r,0,n);return function(r,n,t){return _We(q,g,r,n,t)};default:return KJe(r,Xmn,gLe(n))}}(r,u);return function(r,n,a){return _We(e,t,r,n,a)}}];break;case 2:var f=e[1],i=RJe(r,rdn),c=i[2],v=function(t,e){if(!e)return[0,dWe];var a=e[2],u=Q7e(r,n,e[1]),f=v(MH(t,Jmn),a),i=_5e(u)(f),o=f3e(0,t);return _5e([0,function(r,n,t){return _We(c,o,r,n,t)}])(i)},o=i[1],A=v(ndn,f);a=_5e([0,o])(A);break;case 3:var s=e[1],b=t[3],l=RJe(r,tdn),B=l[2],j=function(t){if(!t)return[0,dWe];var e=t[1][2],a=e[1],u=t[2],f=Q7e(r,n,e[2]),i=j(u),c=_5e(f)(i),v=D2e(r,b,a);return _5e([0,function(r,n,t){return _We(B,v,r,n,t)}])(c)},k=l[1],p=j(s);a=_5e([0,k])(p);break;case 4:var m=e[1];if(BLe(m))a=[1,function(r){var n=uJe(dWe,r),t=WYe();return function(r,e,a){return _We(t,n,r,e,a)}}];else{var d=RJe(r,edn),_=d[2],h=d[1];a=[1,function(t){var e=h5e(t,Q7e(r,n,m)),a=j0e(r,m[3]),u=uJe(function(r,n,t){return GL(_,r,n,_We(a,e,r,n,t))},t),f=WYe();return function(r,n,t){return GL(h,r,n,GL(_,r,n,_We(f,u,r,n,t)))}}]}break;case 5:var x=e[1];if(x!==fQ)if(BLe(e[2]))a=[1,function(n){var t=uJe(dWe,n),e=h0e(r,x);return function(r,n,a){return _We(e,t,r,n,a)}}];else{var y=e[2],w=RJe(r,adn),g=w[2],q=w[1];a=[1,function(t){var e=h5e(t,Q7e(r,n,y)),a=_0e(),u=uJe(function(r,n,t){return GL(g,r,n,_We(a,e,r,n,t))},t),f=h0e(r,x);return function(r,n,t){return GL(q,r,n,GL(g,r,n,_We(f,u,r,n,t)))}}]}else{var I=e[2];if(BLe(I))a=[0,function(r,n,t){return hWe(2,0,n,t)}];else{var D=Q7e(r,n,I);a=_5e([0,_0e()])(D)}}break;default:var E=e[2],N=Q7e(r,n,e[1]),T=Q7e(r,n,E),F=RJe(r,udn),M=F[2],P=F[1],U=_5e([0,M])(T),G=x5e(_5e([0,M])(N))(U);a=_5e([0,P])(G)}}var $=t[1];if(0===a[0]){var K=a[1];return[0,function(r,n,t){return gWe($,K,r,0,t)}]}var O=a[1];return[1,function(r){var n=PL(O,r);return function(r,t,e){return gWe($,n,r,0,e)}}]}function C7e(r,n,t){var e=RCe(t),a=dCe[13].call(null,function(n,t,e){return g6e(r,e,n,0,t)[1]},e,n);return[0,a,Q7e(r,a,t)]}function H7e(r,n,t,e,a){var u=a[2];switch(u[0]){case 0:var f=u[1],i=f[2];if("number"!=typeof i&&0===i[0]){var c=i[1],v=u[2];if(VWe[3].call(null,c,e)){var o=z7e(r,n,v),A=o[1],s=o[2];if("number"!=typeof A&&1===A[0]){var b=A[1],l=v[3][1],B=VWe[28].call(null,c,e),j=n[3],k=p6e[4].call(null,c,[0,[4,b,B],l],n[2]),p=[0,[0,n[1],k,j],dWe,function(n){return UL(s,r,n),dWe}];break}throw kQ([0,YL,idn],1)}}var m=u[2];if(m[3][3]){if(!m[3][3])throw kQ([0,YL,pdn],1);if(S7e(m6e,f,z7e(r,n,m)[1])?1:0){var d=Z7e(r,n,a),_=d[2];p=[0,PL(d[1],n),dWe,function(n){return UL(_,r,n),dWe}]}else p=[0,n,dWe,function(n){return vJe(r,MX)}]}else{var h=u[2],x=RCe(f),y=dCe[13].call(null,function(n,e,a){var u=a[2],f=l7e(r,a[1],t,n,e),i=f[2];return[0,f[1],function(r,n,t){return _We(u,i,r,n,t)}]},x,[0,n,dWe]),w=y[1],g=y[2],q=f[1],I=f[2];r:{var D=function(r,n,t){return gWe(q,g,r,0,t)};if("number"==typeof I)var E=dWe,N=0,T=dWe;else{switch(I[0]){case 0:var F=E6e(r,w,I[1]);E=F[3],N=[0,F[2]],T=F[1];break r;case 2:var M=I[1];if(1!==LY(M)){var P=yWe(function(n,t){return y5e(r,Q7e(r,w,t))},XY(M));E=P,N=[0,[0,LY(M)]],T=dWe;break r}}E=y5e(r,Q7e(r,w,f)),N=fdn,T=dWe}}var U=f[1],G=f[1];p=[0,w,D,function(n){var t=function(r,n,t,e){var a=G7e(r,n,t,e),u=a[1],f=a[2],i=t?j6e(r,u,t[1]):b6e(0,u),c=e[1];return function(r,n,t){var e=c[2],a=c[1];return _We(f,i,r,[0,[0,a[1],a[2],a[3]],[0,e[1],e[2],e[3]]],t)}}(r,n,N,h);return function(r,n,e){return gWe(U,T,r,0,t(r,n,gWe(G,E,r,0,e)))}}]}break;case 1:var $=u[1],K=u[3],O=u[2],R=dCe[29].call(null,$,t);r:{n:if(R){var Q=R[1];if("number"==typeof Q){if(0===Q)break n}else if(0===Q[0])break n;var C=1;break r}C=0}if(!C)throw kQ([0,YL,cdn],1);var H=l7e(r,n,t,$,[10,O]);p=[0,H[1],H[2],function(n){var t=E6e(r,n,$),e=t[3],a=t[1],u=U7e(r,n,t[2],K);return function(r,n,t){return GL(a,r,n,_We(u,e,r,n,t))}}];break;default:var V=u[1],L=u[3][2],z=u[2];if(2!==L[0])throw kQ([0,YL,vdn],1);var S=L[2],Z=L[1],W=dCe[28].call(null,V,t);if("number"==typeof W&&1===W){p=[0,x6e(r,n,V,z)[1],dWe,function(n){var t=e7e(0,n,V),e=I2e(r,S),a=$7e(r,n,Z);return function(r,n,u){return a(r,n,_We(e,t,r,n,u))}}];break}throw kQ([0,YL,qwn],1)}var X=p[3],J=p[2],Y=a[1];return[0,p[1],function(r,n,t){return gWe(Y,J,r,0,t)},function(r,n){var t=X(r),e=a[1];return function(r,a,u){return gWe(e,t,r,0,GL(n,r,a,u))}}]}function V7e(r,n,t,e,a){for(var u=n[1],f=dCe[34].call(null,function(r){var n=r[1];switch(n[0]){case 0:return[1,n[1]];case 1:return 1;case 2:return 2;case 3:return 0;default:return Dwn}},n[2]),i=nHe(t)[2],c=TCe(f,i),v=dCe[34].call(null,function(r){return 0},i),o=MCe(i),A=v,s=_Ce[8].call(null,o,a);;){for(var b=t,l=[0,_Ce[1],A];b;){var B=b[1],j=l[2],k=l[1],p=b[2],m=UL(c7e,c,j),d=YCe(B),_=d[2],h=KCe(d[1]),x=MCe(j),y=_Ce[8].call(null,x,h),w=B[2];switch(w[0]){case 0:var g=w[2][3][3]?dCe[34].call(null,function(r){return 0},_):dCe[34].call(null,function(r){return[0,b7e(r)]},_);break;case 1:g=dCe[34].call(null,function(r){return[1,b7e(r)]},_);break;default:g=dCe[34].call(null,function(r){return 1},_)}var q=e0(E5e,v7e,[0,j,[0,g,[0,s7e(u,m,k,y),0]]]),I=MCe(_);b=p,l=[0,_Ce[7].call(null,k,I),q]}var D=l[2],E=l[1],N=MCe(i);if(!_Ce[12].call(null,E,N))throw kQ([0,YL,Iwn],1);var T=UL(E5e,D,s7e(u,D,E,s));if(dCe[11].call(null,dH,A,T))break;A=T}var F=function n(t,a){if(!a)return[0,t,dWe,function(r){return I6e}];var u=a[1];if(!a[2])return H7e(r,t,T,e,u);var f=a[2],i=H7e(r,t,T,e,u),c=i[3],v=i[2],o=n(i[1],f),A=o[3],s=o[2];return[0,o[1],function(r,n,t){return _We(v,s,r,n,t)},function(r){function n(n){return c(r,n)}var t=PL(A,r);return function(r){return PL(n,PL(t,r))}}]}(n,t),M=F[1],P=F[3],U=F[2];return[0,M,function(r){var n=UL(P,M,r);return function(r,t,e){return _We(U,n,r,t,e)}}]}function L7e(r,n,t,e){return V7e(r,n,t,VWe[1],e)}function z7e(r,n,t){var e=t[2];switch(e[0]){case 0:var a=e[1],u=a[1];if("number"==typeof u)switch(u){case 0:var f=a[2];if(!f)return[0,0,function(r,n){return 0}];var i=p0(YY(function(t){return z7e(r,n,t)},f)),c=i[2];return[0,[4,i[1]],function(r,n){for(var t=c;;){if(!t)return 0;var e=t[2];UL(t[1],r,n),t=e}}];case 1:var v=a[2];if(v&&!v[2]){var o=z7e(r,n,v[1]);return[0,[6,o[1]],o[2]]}}else switch(u[0]){case 4:var A=a[2];if(A&&!A[2]){var s=u[1],b=z7e(r,n,A[1]),l=b[1],B=b[2];if("number"==typeof l||4!==l[0])j=RWe(bdn);else var j=l[1];return[0,ZY(j,s),B]}break;case 5:var k=a[2];if(k&&!k[2]){var p=u[1],m=z7e(r,n,k[1]);return[0,[5,[0,p,m[1]]],m[2]]}break;case 6:var d=a[2];if(d&&!d[2]){var _=u[1],h=z7e(r,n,d[1]),x=h[1],y=h[2];if("number"==typeof x||2!==x[0])w=RWe(ldn);else var w=x[1];return[0,o0(_,w),y]}break;case 8:if(!u[1]){var g=p0(YY(function(t){return z7e(r,n,t)},a[2])),q=g[2];return[0,[3,g[1]],function(r,n){for(var t=q;;){if(!t)return 0;var e=t[2];UL(t[1],r,n),t=e}}]}}break;case 1:var I=e[2],D=h6e(n,I);r:{if(D){var E=D[1];if(3===E[0]){var N=E[1];break r}}N=PL(RWe(Bdn),I)}return[0,N,function(r,n){return 0}];case 2:return[0,[7,B7e(e[1])],function(r,n){return 0}];case 4:var T=e[1],F=function(n,t){if(!t)return[0,function(r){return r},function(r,n){}];var e=t[1];if(!t[2])return Z7e(r,n,e);var a=t[2],u=Z7e(r,n,e),f=u[1],i=u[2],c=F(PL(f,n),a),v=c[2],o=c[1];return[0,function(r){return PL(o,PL(f,r))},function(r,n){return UL(i,r,n),UL(v,r,n)}]},M=T[2],P=F(n,T[1]),U=P[1],G=P[2],$=z7e(r,PL(U,n),M),K=$[2];return[0,$[1],function(r,n){var t=PL(U,n);return UL(G,r,t),UL(K,r,t)}];case 12:var O=e[7],R=e[5],Q=e[3],C=e[2],H=e[1],V=O[2];r:{var L=e[6],z=e[4];if(!C&&!Q&&!z&&0===V[0]){var S=V[1],Z=S[2],W=S[1];n:{if("number"==typeof W)switch(W){case 4:var X=0;break n;case 6:X=RWe(sdn);break n}else if(9===W[0]){X=0;break n}X=1}if(X){var J=LY(Z);if(LY(R)===J)for(var Y=Z,rr=R;;){n:{if(rr){if(Y){var nr=dH(Y[1][2],[1,0,rr[1][2]]),tr=Y[2],er=rr[2];if(nr){Y=tr,rr=er;continue}var ar=nr;break n}}else if(!Y){ar=1;break n}ar=LJ(ez)}if(!ar)break;var ur=[0,W];break r}}}ur=0}switch(Q){case 1:throw kQ([0,YL,jdn],1);case 2:var fr=0;break;default:fr=L}return u5e(r,C,Q,H,R,function(r,n){for(var t=LCe(O),e=dCe[45].call(null,t);;){if(!e)return U7e(r,n,c6e(LY(fr)),O);var a=e[2],u=e[1];1-p6e[3].call(null,u,n[2])?(UL(RWe(Adn),H,u),e=a):e=a}},ur,fr,t[1]);case 15:if(1>>0)return[0,[2,YY(function(r){var t=h6e(n,r[2][2]);r:{if(t){var e=t[1];if(3===e[0]){var a=e[1];break r}}var u=r[2][2];a=PL(RWe(odn),u)}return[0,r[2][1],a]},e[2])],function(r,n){return 0}]}throw kQ([0,YL,kdn],1)}function S7e(r,n,t){r:{var e=n,a=t;n:for(;;){var u=e[2];if("number"==typeof u)return[0,r];t:switch(u[0]){case 0:var f=r[3],i=p6e[4].call(null,u[1],[0,[3,a],e[3]],r[2]);return[0,[0,r[1],i,f]];case 1:var c=u[1];if("number"!=typeof a&&7===a[0]){var v=a[1];if(0===NXe(B7e(c),v))return[0,r]}return 0;case 2:break r;case 3:break n;case 4:var o=u[1];if("number"!=typeof a)switch(a[0]){case 6:e=o,a=a[1];break t;case 7:if("number"==typeof a[1])return 0}throw kQ([0,YL,hdn],1);case 5:var A=u[2],s=u[1];if("number"!=typeof a&&5===a[0]){var b=a[1],l=b[2];if(s!==b[1])return 0;e=A,a=l;break}throw kQ([0,YL,xdn],1);default:var B=u[2],j=S7e(r,u[1],a);if(0!==j)return j;e=B}}var k=u[1];if("number"!=typeof a&&2===a[0])for(var p=k,m=[0,r],d=a[1];;){if(!p)return m;for(var _=p[2],h=p[1],x=d;;){if(x){var y=x[1],w=x[2];if(h[2][1]!==y[1]){x=w;continue}var g=[0,y]}else g=0;if(!m){p=_,m=0;break}if(!g)throw kQ([0,YL,mdn],1);p=_,m=S7e(m[1],h[2][2],g[1][2]);break}}throw kQ([0,YL,_dn],1)}var q=u[1];if("number"==typeof a)var I=0;else{if(4!==a[0])throw kQ([0,YL,ddn],1);I=a[1]}for(var D=I,E=q,N=[0,r];;){if(E){if(D){var T=D[2],F=E[2],M=D[1],P=E[1];if(N){D=T,E=F,N=S7e(N[1],P,M);continue}D=T,E=F,N=0;continue}}else if(!D)return N;return LJ(tz)}}function Z7e(r,n,t){var e=t[2];if(0!==e[0])return RWe(wdn);var a=e[1],u=z7e(r,n,e[2]),f=u[2],i=u[1];return[0,function(r){var n=S7e(r,a,i);if(n)return n[1];throw kQ([0,YL,ydn],1)},function(r,n){return UL(f,r,n)}]}function W7e(r,n){var t=n[2],e=n[1];if(t[1])throw kQ([0,YL,gdn],1);if(t[5])throw kQ([0,YL,qdn],1);if(t[4])throw kQ([0,YL,Idn],1);if(t[3])throw kQ([0,YL,Ddn],1);if(t[2])throw kQ([0,YL,Edn],1);switch(e[0]){case 0:return RWe(Ndn);case 1:var a=e[1];return JJe(r,Tdn,0,0,function(r){var n=L7e(r,m6e,a,_Ce[1]),t=n[2];return M6e(r,n[1]),t(dWe)});default:var u=e[4],f=e[3],i=e[2],c=e[1],v=u[9],o=u[8];if(JJe(r,dJ,fgn,0,function(r){var n=A5e(r),t=uJe(E3e(r),n),e=function(r){var n=[11,[0,wve,zXe(r,Bgn)]];return function(r,t,e){return hWe(n,0,t,e)}}(r);return function(r,n,a){return _We(e,t,r,n,a)}}),JJe(r,_J,ugn,0,function(r){var n=m3e(r,agn),t=l2e(r),e=I3e(r);return function(r,a,u){return e(r,a,_We(t,n,r,a,u))}}),1>=r[1]-1>>>0){JJe(r,mJ,0,0,function(r){var n=E3e(r),t=u7e(r),e=J4e(r),a=s3e(r,10),u=F3e(r);return function(r,f,i){return u(r,f,a(r,f,e(r,f,_We(t,n,r,f,i))))}});var A=[0,wve,[0,[0,wve,YXe(r,mJ)]]];HXe(r,[0,wve,[0,xoe(KI+AD),A]])}var s=v[2];if(1>=r[1]-1>>>0){JJe(r,UX,0,0,function(r){var n=A5e(r),t=s5e(r,s),e=s3e(r,10),a=F3e(r);return function(r,u,f){return a(r,u,e(r,u,_We(t,n,r,u,f)))}});var b=[0,wve,[0,[0,wve,YXe(r,UX)]]];HXe(r,[0,wve,[0,xoe(KI+GP),b]])}JJe(r,xJ,Swn,0,function(r){var n=E3e(r),t=uJe(b5e(r),n),e=hJe(0),a=o5e(r);return function(r,n,u){return a(r,n,_We(e,t,r,n,u))}}),JJe(r,yJ,zwn,0,function(r){var n=m3e(r,Lwn),t=l2e(r),e=I3e(r);return function(r,a,u){return e(r,a,_We(t,n,r,a,u))}});var l=v[1];if(1>=r[1]-1>>>0){JJe(r,hJ,0,0,function(r){var n=E3e(r),t=l5e(r,l),e=F3e(r);return function(r,a,u){return e(r,a,_We(t,n,r,a,u))}});var B=[0,wve,[0,[0,wve,YXe(r,hJ)]]];HXe(r,[0,wve,[0,xoe(KI+tm),B]])}if(1>=r[1]-1>>>0){JJe(r,PX,0,0,function(r){var n=b5e(r),t=F3e(r);return function(r,e,a){return _We(t,n,r,e,a)}});var j=[0,wve,[0,[0,wve,YXe(r,PX)]]];HXe(r,[0,wve,[0,xoe(KI+Is),j]])}var k=X7e(Ldn,u[1][2]);r[18][1]=k;var p=X7e(zdn,u[1][1][2]);r[17][1]=p;var m=X7e(Sdn,u[1][1][1]);return r[16][1]=m,JJe(r,AJ,0,0,function(n){var t=KCe(zCe(i,f,u)),e=c?c[1]:0,a=YY(function(r){return[0,r[2],r[3]]},e),v=YY(function(r){return r[2]},e),A=YY(function(r){return r[3]},e),s=q6e(n,m6e,function(r){return 1-_Ce[3].call(null,r,t)},a),b=YY(function(r){return[0,r[2][2],r[2][1]]},f),l=VWe[46].call(null,b),B=V7e(n,s,i,l,KCe(SCe(u))),j=B[1],k=B[2];M6e(n,j);for(var p=f;p;){var m=p[1],d=p[2],_=h6e(j,m[2][2]);if(_){var h=_[1];if(4===h[0]){var x=[0,wve,[0,[0,wve,h[1]]]];if(1>>0)throw kQ([0,YL,Mdn],1);var y=Pme(m[3]);if("number"!=typeof y&&8===y[0]){var w=y[1];if(w){switch(w[1]){case 0:var g=lB+m[2][1];break;case 1:g=KI+m[2][1];break;default:g=Yl+m[2][1]}HXe(n,[0,wve,[0,xoe(g),x]]),p=d;continue}}throw kQ([0,YL,Pdn],1)}}throw kQ([0,YL,Fdn],1)}JJe(n,Udn,0,0,function(r){return U7e(r,j,nJ,u[2])}),JJe(n,Gdn,0,0,function(r){return U7e(r,j,nJ,u[3])}),H5e(n);var q=u[4][2];r:{if(0===q[0]){var I=q[1],D=I[1];if("number"==typeof D&&!D&&!I[2])break r}JJe(n,$dn,0,0,function(r){return U7e(r,j,nJ,u[4])}),function(r){if(1!==r[1]&&2!==r[1])throw kQ([0,YL,MCn],1);var n=XJe(r,0,0,function(r){var n=oYe(r),t=[6,[0,wve,YXe(r,FCn)]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),t=[0,wve,[0,[0,wve,WXe(r)(PCn,n)]]];HXe(r,[0,wve,[0,xoe(UCn),t]])}(n)}var E=u[5][2];r:{if(0===E[0]){var N=E[1],T=N[1];if("number"==typeof T&&!T&&!N[2])break r}JJe(n,Kdn,0,0,function(r){return U7e(r,j,nJ,u[5])}),function(r){if(1!==r[1]&&2!==r[1])throw kQ([0,YL,ECn],1);var n=XJe(r,0,0,function(r){var n=oYe(r),t=[6,[0,wve,YXe(r,DCn)]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),t=[0,wve,[0,[0,wve,WXe(r)(NCn,n)]]];HXe(r,[0,wve,[0,xoe(TCn),t]])}(n)}var F=u[6][2];r:{if(0===F[0]){var M=F[1],P=M[1];if("number"==typeof P&&!P&&!M[2])break r}JJe(n,Odn,0,0,function(r){return U7e(r,j,nJ,u[6])}),function(r){if(1!==r[1]&&2!==r[1])throw kQ([0,YL,gCn],1);var n=XJe(r,0,0,function(r){var n=m3e(r,yCn),t=[6,[0,wve,YXe(r,wCn)]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),t=[0,wve,[0,[0,wve,WXe(r)(qCn,n)]]];HXe(r,[0,wve,[0,xoe(ICn),t]])}(n)}var U=u[7][2];r:{if(0===U[0]){var G=U[1],$=G[1];if("number"==typeof $&&!$&&!G[2])break r}JJe(n,Rdn,0,0,function(r){return U7e(r,j,nJ,u[7])}),function(r){if(1!==r[1]&&2!==r[1])throw kQ([0,YL,_Cn],1);var n=XJe(r,0,0,function(r){var n=oYe(r),t=[6,[0,wve,YXe(r,dCn)]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),t=[0,wve,[0,[0,wve,WXe(r)(hCn,n)]]];HXe(r,[0,wve,[0,xoe(xCn),t]])}(n)}JJe(r,sJ,0,Qdn,function(r){return U7e(r,j,0,o)});var K=k(dWe);if(KV(u[5][1],Lle))var O=m3e(n,Cdn),R=function(r,n,t){return IJe(r,n,O(r,n,hWe(2,0,n,t)))};else R=dWe;if(c&&c[1])var Q=xWe(function(r){return N6e(n,s,r)},XY(v)),C=O4e(0,n,A),H=TYe(0),V=j5e(n),L=function(r,n,t){return V(r,n,H(r,n,_We(C,Q,r,n,t)))};else{if(0!==A)throw kQ([0,YL,Hdn],1);var z=O4e(0,n,A),S=TYe(0),Z=j5e(n),W=uJe(dWe,function(r,n,t){return Z(r,n,_We(S,z,r,n,t))}),X=GJe(Vdn),J=c2e(),Y=j5e(n);L=function(r,n,t){return Y(r,n,J(r,n,_We(X,W,r,n,t)))}}return function(r,n,t){return L(r,n,_We(R,K,r,n,t))}}),JJe(r,Zdn,0,0,function(r){var n=i7e(r,v),t=f7e(r),e=q3e(r),a=function(r){var n=k3e(r),t=b2e(r,1,"");return function(r,e,a){return _We(t,n,r,e,a)}}(r);return function(r,u,f){return a(r,u,GL(e,r,u,_We(t,n,r,u,f)))}})}}function X7e(r,n){return v0(r,0)?0:[0,[0,v0(r,wce[1]),n]]}function J7e(r,n,t){if(function(r){var n=XJe(r,vUn,cUn,function(r){var n=[8,[0,wve,0]],t=n2e(r);return function(r,e,a){return hWe(n,0,e,t(r,e,a))}}),t=[0,wve,[0,[0,wve,WXe(r)(oUn,n)]]];HXe(r,[0,wve,[0,xoe(AUn),t]]);var e=XJe(r,0,0,function(r){return vJe(r,iUn)}),a=[0,wve,[0,[0,wve,WXe(r)(sUn,e)]]];HXe(r,[0,wve,[0,xoe(bUn),a]]);var u=XJe(r,0,lUn,function(r){var n=GJe(c3e(1)),t=v3e(),e=GJe(c3e(3)),a=v3e();return function(r,u,f){return a(r,u,e(r,u,t(r,u,n(r,u,hWe(fUn,0,u,hWe(uJ,0,u,f))))))}}),f=[0,wve,[0,[0,wve,WXe(r)(BUn,u)]]];HXe(r,[0,wve,[0,xoe(jUn),f]]);var i=XJe(r,kUn,0,function(r){var n=[8,[0,wve,0]],t=[8,[0,wve,1]],e=x3e(r);return function(r,a,u){return hWe(n,0,a,hWe(t,0,a,hWe(uUn,0,a,e(r,a,u))))}}),c=[0,wve,[0,[0,wve,WXe(r)(pUn,i)]]];if(HXe(r,[0,wve,[0,xoe(mUn),c]]),3===r[1])var v=XJe(r,_Un,dUn,function(r){return vJe(r,"ic0_performance_counter is not supposed to be called in WASI")}),o=WXe(r)(hUn,v);else o=eJe(r)(yUn,xUn);HXe(r,[0,wve,[0,xoe(wUn),[0,wve,[0,[0,wve,o]]]]]);var A=XJe(r,0,gUn,function(r){var n=b3e(0,1),t=b3e(0,3);return function(r,e,a){return t(r,e,n(r,e,hWe(aUn,0,e,hWe(uJ,0,e,a))))}}),s=[0,wve,[0,[0,wve,WXe(r)(qUn,A)]]];if(HXe(r,[0,wve,[0,xoe(IUn),s]]),1>>0)var b=XJe(r,DUn,0,function(r){if(!dJe(r))return vJe(r,CX);var n=[8,[0,wve,0]],t=[8,[0,wve,1]],e=[8,[0,wve,2]],a=K3e(r);return function(r,u,f){return hWe(n,0,u,hWe(t,0,u,hWe(e,0,u,a(r,u,f))))}}),l=WXe(r)(EUn,b);else l=eJe(r)(TUn,NUn);if(HXe(r,[0,wve,[0,xoe(FUn),[0,wve,[0,[0,wve,l]]]]]),1>>0)var B=XJe(r,MUn,0,function(r){if(!dJe(r))return vJe(r,CX);var n=[8,[0,wve,0]],t=[8,[0,wve,1]],e=[8,[0,wve,2]],a=$3e(r);return function(r,u,f){return hWe(n,0,u,hWe(t,0,u,hWe(e,0,u,a(r,u,f))))}}),j=WXe(r)(PUn,B);else j=eJe(r)(GUn,UUn);if(HXe(r,[0,wve,[0,xoe($Un),[0,wve,[0,[0,wve,j]]]]]),1>>0)var k=XJe(r,0,KUn,function(r){return dJe(r)?G3e(r):wJe(eUn)}),p=WXe(r)(OUn,k);else p=eJe(r)(QUn,RUn);if(HXe(r,[0,wve,[0,xoe(CUn),[0,wve,[0,[0,wve,p]]]]]),1>>0)var m=XJe(r,VUn,HUn,function(r){if(!dJe(r))return vJe(r,CX);var n=U3e(r),t=[8,[0,wve,0]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),d=WXe(r)(LUn,m);else d=eJe(r)(SUn,zUn);HXe(r,[0,wve,[0,xoe(ZUn),[0,wve,[0,[0,wve,d]]]]]);var _=XJe(r,XUn,WUn,function(r){if(!dJe(r))return vJe(r,CX);var n=a6e(r),t=[8,[0,wve,0]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),h=[0,wve,[0,[0,wve,WXe(r)(JUn,_)]]];HXe(r,[0,wve,[0,xoe(YUn),h]]);var x=XJe(r,0,rGn,function(r){return dJe(r)?H3e(r):vJe(r,CX)}),y=[0,wve,[0,[0,wve,WXe(r)(nGn,x)]]];HXe(r,[0,wve,[0,xoe(tGn),y]]);var w=XJe(r,eGn,0,function(r){if(1>>0)return vJe(r,"moc_stable_mem_set_size is not supposed to be called in WASI");var n=V3e(r),t=[8,[0,wve,0]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),g=[0,wve,[0,[0,wve,WXe(r)(aGn,w)]]];HXe(r,[0,wve,[0,xoe(uGn),g]]);var q=XJe(r,0,fGn,function(r){return L3e(r)}),I=[0,wve,[0,[0,wve,WXe(r)(iGn,q)]]];HXe(r,[0,wve,[0,xoe(cGn),I]]);var D=XJe(r,vGn,0,function(r){var n=z3e(r),t=[8,[0,wve,0]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),E=[0,wve,[0,[0,wve,WXe(r)(oGn,D)]]];HXe(r,[0,wve,[0,xoe(AGn),E]]);var N=[0,wve,[0,[0,wve,YXe(r,sGn)]]];HXe(r,[0,wve,[0,xoe(bGn),N]])}(r),1>=r[1]-1>>>0){JJe(r,Cz,0,0,function(r){var n=RJe(r,qgn),t=n[2],e=n[1],a=n5e(r,Ign),u=y0e(r,0,0),f=AYe(vJ),i=tJe(r)(I4n,q4n),c=R0e(5),v=R4e(r,[0,Fz,0]),o=function(r){var n=AJe(r,gRn),t=T3e(r);return function(r,e,a){return _We(t,n,r,e,a)}}(r),A=r5e(r,Dgn);return function(r,n,s){return A(r,n,o(r,n,v(r,n,c(r,n,i(r,n,GL(e,r,n,GL(t,r,n,f(r,n,GL(t,r,n,_We(u,a,r,n,s))))))))))}});var e=[0,wve,[0,[0,wve,YXe(r,Cz)]]];HXe(r,[0,wve,[0,xoe(KI+tj),e]])}if(1>=r[1]-1>>>0){JJe(r,Vz,0,0,function(r){var n=s3e(r,2),t=vYe(r),e=kJe(r,1),a=cYe(r),u=E3e(r),f=F3e(r),i=r5e(r,ggn);return function(r,c,v){return i(r,c,f(r,c,u(r,c,a(r,c,e(r,c,_We(t,n,r,c,v))))))}});var a=[0,wve,[0,[0,wve,YXe(r,Vz)]]];HXe(r,[0,wve,[0,xoe(KI+Oa),a]])}var u=XJe(r,0,dgn,function(r){var n=wJe(dz[1]),t=fJe(1,wJe(dz[2]),n),e=A3e();return function(r,n,a){return _We(e,t,r,n,a)}}),f=[0,wve,[0,[0,wve,WXe(r)(_gn,u)]]];HXe(r,[0,wve,[0,xoe(hgn),f]]);var i=XJe(r,0,xgn,function(r){var n=wJe(Gce),t=fJe(1,wJe(Uce),n),e=A3e();return function(r,n,a){return _We(e,t,r,n,a)}}),c=[0,wve,[0,[0,wve,WXe(r)(ygn,i)]]];HXe(r,[0,wve,[0,xoe(wgn),c]]);var v=n[3],o=n[2],A=n[1],s=Q6e(r),b=F4e(0,0,CWe(r[15][1])),l=b[3],B=b[2];PL(A,lJe(r,s[1],[0,[3,b[1]],0]));var j=[0,qXe(YY($H,B)),0];PL(o,lJe(r,s[2],j));var k=[0,qXe(YY(xve,l)),0];PL(v,lJe(r,s[3],k));var p=VXe(r,Jdn,0);SXe(r,Ydn);var m=XJe(r,0,o5n,function(r){return function(r){var n=[11,[0,wve,zXe(r,y5n)]];return function(r,t,e){return hWe(n,0,t,e)}}(r)}),d=[0,wve,[0,[0,wve,WXe(r)(A5n,m)]]];function _(r,n,t){var e=fJe(1,n,t),a=_Je(3);return function(r,u,f){return GL(n,r,u,GL(t,r,u,_We(a,e,r,u,f)))}}HXe(r,[0,wve,[0,xoe(s5n),d]]),JJe(r,pHn,kHn,0,function(r){var n=r[1];if(!n)return dWe;if(3<=n){var t=[8,[0,wve,1]],e=[8,[0,wve,0]],a=function(r,n,e){return hWe(t,0,n,e)};return dYe(r,BHn,lHn,function(n){var u=tJe(r)(aHn,eHn),f=tJe(r)(fHn,uHn),i=$Je(20),c=VJe(r,n),v=gJe(1),o=$Je(8),A=VJe(r,n),s=gJe(1),b=tJe(r)(cHn,iHn),l=$Je(20),B=VJe(r,n),j=gJe(1),k=VJe(r,n),p=gJe(1),m=gJe(10),d=gJe(1),h=$Je(16),x=VJe(r,n),y=VJe(r,a),w=VJe(r,u),g=bYe(),q=PWe(a),I=_(0,wJe(lC(BB,0,0)),a);return function(r,a,_){return I(r,a,q(r,a,u(r,a,hWe(e,0,a,hWe(t,0,a,g(r,a,GL(n,r,a,w(r,a,hWe(bHn,0,a,GL(n,r,a,y(r,a,hWe(sHn,0,a,GL(n,r,a,x(r,a,h(r,a,hWe(AHn,0,a,GL(n,r,a,d(r,a,hWe(oHn,0,a,GL(n,r,a,m(r,a,hWe(vHn,0,a,p(r,a,k(r,a,j(r,a,B(r,a,l(r,a,b(r,a,hWe(2,0,a,s(r,a,A(r,a,o(r,a,v(r,a,c(r,a,i(r,a,f(r,a,hWe(2,0,a,_)))))))))))))))))))))))))))))))))))))}})}var u=m3e(r,jHn),f=[8,[0,wve,1]],i=[8,[0,wve,0]];return function(r,n,t){return hWe(i,0,n,hWe(f,0,n,u(r,n,t)))}});var h=[0,wve,[0,[0,wve,YXe(r,mHn)]]];HXe(r,[0,wve,[0,xoe(dHn),h]]),p(lC(4194312,0,0));var x=XJe(r,0,0,function(n){if(t)var e=[6,t[1]],a=function(r,n,t){return hWe(e,0,n,t)};else a=o3e(0,0);var u=a7e(r),f=tJe(r)(Xdn,Wdn);return function(r,n,t){return f(r,n,_We(u,a,r,n,t))}}),y=WXe(r)(r_n,x),w=[0,wve,[2,[0,wve,0]]],g=3<=r[1]?RCn:"mem";HXe(r,[0,wve,[0,xoe(g),w]]),HXe(r,[0,wve,[0,xoe(QCn),[0,wve,[1,[0,wve,0]]]]]);var q=nXe(r[4]),I=q[2],D=q[3],E=q[1],N=lC(65,0,0);if(1>>0&&r[25][1])var T=[0,[0,wve,[0,[0,[0,uz,0],1]]],0];else T=0;var F=ZWe(r[4]),M=YY(function(r){return[0,wve,[0,r,[0,wve,0]]]},CWe(r[12][1])),P=YY(function(r){var n=[0,[0,wve,r[1]],0];return[0,wve,[0,[0,wve,0],[0,wve,pWe(wJe($H(r[2])))],n]]},OXe[20].call(null,r[6][1])),U=r[7][1],G=CWe(r[5][1]),$=YY(function(r){return r[1]},F),K=YY(function(r){return Coe(r[1])},CWe(r[8][1])),O=Qqe(D,[0,YY($We,XWe(r[4])),K,[0,[0,wve,[0,[1,[0,$H(U),[0,$H(U)]],0]]],0],[0,[0,wve,[0,[0,[0,N,0],1]]],T],$,[0,[0,wve,y]],P,M,E,G]),R=$Xe[23].call(null,r[24][1]),Q=X7e(t_n,MY(0,mz)),C=r[18][1],H=[0,GXe[23].call(null,r[19][1]),C,Q],V=[0,r[16][1],r[17][1]],L=fS[10],z=fS[9],S=fS[8],Z=fS[7],W=fS[6],X=fS[5],J=fS[4],Y=n0(function(r,n){return[0,I+r|0,n[3]]},F),rr=n0(function(r,n){return[0,I+r|0,n[2]]},F),nr=[0,O,[0,fS[1],rr,Y,J,X,W,Z,S,z,L],0,V,H,n_n,0,R],tr=r[2];return tr?BWe(nr,e_n,tr[1]):nr}var Y7e=lC(ni,0,0);function r8e(r){if(Fce[1])switch(r){case 3:return Ld;case 4:return c;case 5:return 8;case 6:return 4;case 8:return dD;case 9:return 49152;case 10:return 24;case 11:return 12;case 14:return BB;case 2:case 7:return 2;default:throw kQ([0,YL,Gre],1)}r:{if(12<=r){if(14!==r)break r}else if(2>r)break r;return 0}throw kQ([0,YL,$re],1)}function n8e(r){return[2,YY(function(r){return[0,r]},r)]}function t8e(r,n){switch(n[0]){case 0:return D2(r,n[1]);case 1:return E2(r,n[1]);case 2:for(var t=n[1];;){if(!t)return;var e=t[2];t8e(r,t[1]),t=e}break;default:return q2(r,n[1])}}function e8e(r){for(var n=d2(16),t=r;;){if(!t)return _2(n);var e=t[2];t8e(n,t[1]),t=e}}function a8e(r){return[0,[0,0],r]}function u8e(r,n){return"number"!=typeof r&&3===r[0]&&"number"!=typeof n&&3===n[0]?r[1][1]===n[1][1]?1:0:dH(r,n)}function f8e(r,n){var t=pve(LY(r[1]));return r[1]=rY(r[1],[0,n,0]),t}var i8e=aBe([0,r1]),c8e=O1([0,r1]),v8e=O1([0,r1]),o8e=aBe([0,j1]);function A8e(r,n){var t=c8e[4].call(null,n,r[21][1]);return r[21][1]=t,Ope(n)}function s8e(r,n){var t=f8e(r[24],n);return jve(r[22],t)}function b8e(r,n,t){f8e(r[25],[0,n,t])}function l8e(r,n){f8e(r[5],n)}function B8e(r,n,t){if(VWe[3].call(null,n,r[9][1]))throw kQ([0,YL,Nre],1);var e=f8e(r[8],[0,t,n]),a=VWe[4].call(null,n,e,r[9][1]);r[9][1]=a}function j8e(r,n,t){var e=[0,0];return B8e(r,n,e),function(r){return Roe(e,[0,wve,[0,[0,0,t],[0,wve,kWe(hWe([16,[0,wve,[0,r]]],0,wve,0))]]])}}function k8e(r,n,t,e){return j8e(r,n,t)(e)}function p8e(r,n,t,e){var a=[0,0];return B8e(r,n,a),Roe(a,[0,wve,[0,[0,1,t],[0,wve,kWe(hWe([16,[0,wve,[1,e]]],0,wve,0))]]])}function m8e(r,n){var t=VWe[29].call(null,n,r[9][1]);if(t)return t[1];throw kQ([0,zL,PL(R3(Ere),n)],1)}function d8e(r,n){var t=[0,wve,[3,[0,wve,m8e(r,n)]]];return l8e(r,[0,wve,[0,xoe(n),t]])}function _8e(r){var n=r[4];return function(r){return zWe(n,r)}}function h8e(r){var n=r[4];return function(r,t){return SWe(n,r,t)}}function x8e(r,n){return Hoe(function(t){return _8e(r)(n)})}function y8e(r,n){var t=VWe[29].call(null,n,r[10][1]);if(t)return t[1];var e=x8e(r,n),a=VWe[4].call(null,n,e,r[10][1]);return r[10][1]=a,e}function w8e(r,n){return Loe(y8e(r,n))}function g8e(r){var n=r[4];return function(r){return WWe(n,r)}}function q8e(r){var n=r[4];return function(r,t,e,a){return JWe(n,r,t,e,a)}}function I8e(r){var n=r[4];return function(r,t){return rXe(n,r,t)}}function D8e(r){var n=r[4];return function(r,t){return YWe(n,r,t)}}function E8e(r,n){return n?n[2]?[0,[0,wve,g8e(r)([0,0,n])]]:[1,[0,n[1]]]:Dre}function N8e(r,n,t,e){var a=E8e(r,n);return function(r,n,u){return qWe(a,t,e,r,n,u)}}function T8e(r,n,t){var e=E8e(r,n);return function(r,n,a){return DWe(e,t,r,n,a)}}function F8e(r,n){return UL(r[3],r,n)}function M8e(r,n){var t=F8e(r,n);return function(r,n,e){return qWe(DX,t,dWe,r,n,e)}}function P8e(r,n){var t=F8e(r,n);return function(r,n,e){return qWe(DX,dWe,t,r,n,e)}}function U8e(r,n){if(r[15][1])throw kQ([0,zL,"Static memory frozen"],1);var t=r[13][1];return r[13][1]=t+(n+3&-4)|0,t}function G8e(r,n,t){var e=rY(r[14][1],[0,[0,n,t],0]);r[14][1]=e}function $8e(r,n){var t=o8e[29].call(null,n,r[6][1]);if(t)return t[1];var e=r[7][1],a=o8e[4].call(null,n,e,r[6][1]);return r[6][1]=a,r[7][1]=r[7][1]+1|0,e}function K8e(r,n){var t=e8e(n),e=i8e[29].call(null,t,r[11][1]);if(e)return e[1];var a=U8e(r,HH(t)),u=rY(r[14][1],[0,[0,a,t],0]);r[14][1]=u;var f=a+eXe[1]|0,i=i8e[4].call(null,t,f,r[11][1]);return r[11][1]=i,f}function O8e(r,n){var t=eXe[2];return K8e(r,n)+t|0}function R8e(r){return r[15][1]=1,r[13][1]}function Q8e(r){switch(r){case 0:throw kQ([0,YL,yre],1);case 1:return wre;case 2:return gre;case 3:return qre;default:return Ire}}function C8e(r,n){var t=Q8e(Dce[1]),e=n||Ece[1]?t:iv+t;return I8e(r)(xre,e+"_gc")}function H8e(r,n){var t=v8e[4].call(null,n,r[26][1]);r[26][1]=t}function V8e(r){if(1-r[27][1]&&(r[27][1]=1,1>>0))return H8e(r,_re),H8e(r,hre)}function L8e(r){var n=[16,[0,wve,[0,r]]];return function(r,t,e){return hWe(n,0,t,e)}}function z8e(r){var n=[16,[0,wve,[1,r]]];return function(r,t,e){return hWe(n,0,t,e)}}var S8e=L8e(0),Z8e=L8e(1);function W8e(r,n){var t=[20,[0,r]],e=L8e(n);return function(r,n,a){return e(r,n,hWe(t,0,n,a))}}var X8e=12,J8e=11,Y8e=10;function r9e(r){if(!KV(r,0)){return function(r,n,t){return hWe(2,0,n,S8e(r,n,t))}}if(!KV(r,1))return dWe;if(DH(r,0)){var n=qye[22].call(null,r),t=qye[31].call(null,n);if(dH(PL(qye[21],t),1)){var e=qye[22].call(null,r),a=qye[33].call(null,e);return W8e(Y8e,PL(qye[21],a))}}return W8e(2,r)}function n9e(r){return KV(r,0)?W8e(8,r):dWe}function t9e(r,n){var t=[18,[0,r]],e=L8e(n);return function(r,n,a){return e(r,n,hWe(t,0,n,a))}}function e9e(r){return KV(r,0)?t9e(0,r):function(r,n,t){return hWe(dre,0,n,t)}}function a9e(r,n){var t=[20,[1,r]],e=z8e(n);return function(r,n,a){return e(r,n,hWe(t,0,n,a))}}function u9e(r){return KV(r,mre)?a9e(12,r):dWe}function f9e(r){return KV(r,pre)?a9e(11,r):dWe}function i9e(r){return KV(r,kre)?a9e(10,r):dWe}function c9e(r){return KV(r,lre)?a9e(9,r):dWe}function v9e(r){var n=z8e(r);return function(r,t,e){return n(r,t,hWe(bre,0,t,e))}}function o9e(r){var n=d2(4),t=r;return w2(n,RY(t&GK)),w2(n,RY((t>>>8|0)&GK)),w2(n,RY((t>>>16|0)&GK)),w2(n,RY((t>>>24|0)&GK)),_2(n)}function A9e(r,n,t){return KWe(n,t,F8e(r,rm+n))}function s9e(r,n,t){var e=s8e(r,n);b8e(r,e,t);var a=[8,[0,wve,e]],u=[9,[0,wve,e]];return[0,function(r,n,t){return hWe(u,0,n,t)},function(r,n,t){return hWe(a,0,n,t)},e]}function b9e(r,n){var t=s9e(r,0,n);return[0,t[1],t[2]]}function l9e(r,n){var t=s9e(r,1,n);return[0,t[1],t[2]]}function B9e(r,n,t){var e=[3,[0,wve,1]];function a(r,n,a){return GL(t,r,n,hWe(e,0,n,a))}function u(r,t,e){return GL(n,r,t,qWe(DX,a,dWe,r,t,e))}return function(r,n,t){return EWe(u,r,n,t)}}function j9e(r,n){var t=b9e(r,ore),e=t[2],a=t[1],u=b9e(r,Are),f=u[2],i=u[1],c=W8e(0,1),v=PL(n,f),o=B9e(0,function(r,n,t){return GL(f,r,n,GL(e,r,n,hWe(sre,0,n,t)))},function(r,n,t){return GL(v,r,n,GL(f,r,n,_We(c,i,r,n,t)))}),A=L8e(0);return function(r,n,t){return GL(a,r,n,A(r,n,_We(i,o,r,n,t)))}}function k9e(r){return 1=LY(n))return dWe;var t=LY(n)-1|0;return yWe(function(n,e){if(0!==e)throw kQ([0,YL,ire],1);var a=[11,[0,wve,p9e(r,t-n|0)]];return function(r,n,t){return hWe(a,0,n,t)}},n)}function _9e(r,n,t){var e=d9e(r,n),a=TWe(function(e){var a=m9e(r,n);return PL(t,function(r,n,t){return GL(a,r,n,FWe(e,r,n,t))})}),u=T8e(r,k9e(n),a);return function(r,n,t){return _We(u,e,r,n,t)}}function h9e(r,n,t,e){for(var a=LY(t),u=LY(n),f=[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],u,a,[0,0],[0,0],r[26],r[27]],i=n,c=0;i;){var v=i[2];b8e(f,c,i[1][1]),i=v,c=c+1|0}var o=k9e(t),A=[0,YY(function(r){return r[2]},n),o],s=m9e(f,t),b=kWe(_We(PL(e,f),s,0,wve,0)),l=f[25][1],B=f[24][1];return[0,[0,wve,[0,[0,wve,g8e(r)(A)],B,b]],l]}function x9e(r,n,t,e,a){return Voe(y8e(r,n),[W,function(n){return h9e(r,t,e,a)}])}function y9e(r,n,t,e,a,u){if(0===r){var f=n0(function(r,n){var t=[8,[0,wve,r]];return function(r,n,e){return hWe(t,0,n,e)}},e);x9e(n,t,e,a,function(r){return UL(u,r,f)});var i=d9e(n,a),c=[6,[0,wve,w8e(n,t)]];return function(r,n,t){return hWe(c,0,n,GL(i,r,n,t))}}if(1!==r)throw kQ([0,YL,fre],1);var v=YY(function(r){return s9e(n,r[2],r[1])},e),o=a0(function(r,n){var t=r[1];return function(r,e,a){return _We(n,t,r,e,a)}},v,dWe),A=YY(function(r){return r[2]},v),s=d9e(n,a),b=m9e(n,a),l=UL(u,n,A);return function(r,n,t){return GL(o,r,n,GL(l,r,n,_We(b,s,r,n,t)))}}function w9e(r,n,t,e,a){return y9e(r,n,t,0,e,function(r,n){if(n)throw kQ([0,XL,ure],1);return PL(a,r)})}function g9e(r,n,t,e,a,u){return y9e(r,n,t,[0,e,0],a,function(r,n){if(n&&!n[2])return UL(u,r,n[1]);throw kQ([0,XL,are],1)})}function q9e(r,n,t,e,a,u){return y9e(r,n,t,[0,e[1],[0,e[2],0]],a,function(r,n){if(n){var t=n[2];if(t&&!t[2])return GL(u,r,n[1],t[1])}throw kQ([0,XL,ere],1)})}function I9e(r,n,t,e,a,u){return y9e(r,n,t,[0,e[1],[0,e[2],[0,e[3],0]]],a,function(r,n){if(n){var t=n[2];if(t){var e=t[2];if(e&&!e[2])return $L(u,r,n[1],t[1],e[1])}}throw kQ([0,XL,tre],1)})}function D9e(r){var n=I8e(r)(YYt,JYt);return function(r,t,e){return _We(S8e,n,r,t,e)}}function E9e(r){var n=[11,[0,wve,m8e(r,HYt)]];return function(r,t,e){return hWe(n,0,t,e)}}function N9e(r){var n=[11,[0,wve,m8e(r,QYt)]];return function(r,t,e){return hWe(n,0,t,e)}}function T9e(r){var n=[11,[0,wve,m8e(r,OYt)]];return function(r,t,e){return hWe(n,0,t,e)}}function F9e(r){if(4===Dce[1])throw kQ([0,YL,$Yt],1);var n=[11,[0,wve,m8e(r,GYt)]];return function(r,t,e){return hWe(n,0,t,e)}}function M9e(r){if(4===Dce[1])throw kQ([0,YL,UYt],1);var n=[12,[0,wve,m8e(r,PYt)]];return function(r,t,e){return hWe(n,0,t,e)}}function P9e(r){if(1>>0)return dWe;var n=[12,[0,wve,m8e(r,CYt)]],t=D9e(r);return function(r,e,a){return t(r,e,hWe(n,0,e,a))}}function U9e(r){if(1>>0)return dWe;var n=[12,[0,wve,m8e(r,RYt)]],t=E9e(r),e=D9e(r);return function(r,a,u){return e(r,a,t(r,a,hWe(MYt,0,a,hWe(n,0,a,u))))}}function G9e(r){if(1>>0)var n=dWe;else{var t=[12,[0,wve,m8e(r,KYt)]],e=N9e(r),a=T9e(r),u=E9e(r);n=function(r,n,f){return u(r,n,a(r,n,hWe(FYt,0,n,e(r,n,hWe(TYt,0,n,hWe(t,0,n,f))))))}}var f=U9e(r),i=C8e(r,0),c=P9e(r);return function(r,t,e){return c(r,t,i(r,t,_We(f,n,r,t,e)))}}r:{var $9e=function(r,n,t,e){if(!Fce[1])throw kQ([0,YL,a_n],1);if(4!==Dce[1])throw kQ([0,YL,u_n],1);var a=[0,$Xe[1]],u=[0,GXe[1]],f=[0,KXe[1]],i=[0,UXe[1]],c=[0,VWe[1]],v=[0,VWe[1]],o=[0,OXe[1]],A=[0,r,t,C5e,LWe(),[0,NX],o,[0,0],[0,NX],v,c,i,[0,NX],f,[0,[0,NX],[0,0]],[0,NX],[0,0],[0,0],[0,0],u,0,0,[0,NX],[0,NX],a,[0,0],[0,0],[0,0],[0,0],n];LXe(A,vzn,1,czn),LXe(A,Azn,1,ozn),LXe(A,bzn,1,szn),LXe(A,e5n,1,lC(Ld,0,0)),LXe(A,a5n,1,lC(Ld,0,0)),SXe(A,u5n),LXe(A,P5n,1,M5n),LXe(A,G5n,1,U5n),LXe(A,K5n,1,$5n),LXe(A,nOn,1,rOn),LXe(A,tOn,1,Q3e),LXe(A,FMn,1,TMn),LXe(A,PMn,1,MMn),LXe(A,GMn,1,UMn),LXe(A,KMn,1,$Mn),LXe(A,RMn,1,OMn),LXe(A,CMn,1,QMn),LXe(A,VMn,1,HMn),LXe(A,zMn,1,LMn),LXe(A,ZMn,1,SMn),LXe(A,WMn,1,Tct),LXe(A,XMn,1,Nct),LXe(A,JMn,1,Fct),LXe(A,rPn,1,YMn),LXe(A,nPn,1,Mct),LXe(A,tPn,1,Pct),JJe(A,GFn,UFn,0,function(r){var n=e4e(r),t=[8,[0,wve,1]],e=t4e(r),a=uJe(function(r,a,u){return e(r,a,hWe(t,0,a,hWe(MFn,0,a,n(r,a,u))))},dWe),u=oJe(r,PFn),f=_Je(3),i=[8,[0,wve,0]],c=[8,[0,wve,1]],v=t4e(r),o=uJe(function(r,n,t){return v(r,n,hWe(c,0,n,f(r,n,u(r,n,hWe(i,0,n,hWe(aJ,0,n,a(r,n,t)))))))},dWe),A=C6e(r);return function(r,n,t){return _We(A,o,r,n,t)}}),LXe(A,kgn,1,jgn),LXe(A,mgn,1,pgn),LXe(A,Cwn,1,Qwn),LXe(A,Vwn,1,Hwn);var s=VXe(A,iPn,0),b=VXe(A,cPn,0),l=[0,VXe(A,vPn,0),b,s],B=[0,[0,sJe(A,""),sJe(A,""),sJe(A,"")]];switch(A[26][1]=B,A[1]){case 3:nJe(A)(wHn,yHn,xHn,hHn);break;case 0:break;default:!function(r){nJe(r)(qHn,gHn,0,0);var n=qoe(2,1);nJe(r)(DHn,IHn,n,0);var t=p3e(2);nJe(r)(NHn,EHn,t,0),nJe(r)(MHn,FHn,THn,0);var e=qoe(8,1);nJe(r)(UHn,PHn,e,0),nJe(r)(KHn,$Hn,0,GHn);var a=qoe(2,1);nJe(r)(RHn,OHn,a,0),nJe(r)(CHn,QHn,[0,1,0],0);var u=qoe(3,1);nJe(r)(VHn,HHn,u,0),nJe(r)(zHn,LHn,0,[0,1,0]),nJe(r)(WHn,ZHn,0,SHn),nJe(r)(YHn,JHn,0,XHn);var f=qoe(3,1);nJe(r)(nVn,rVn,f,0),nJe(r)(eVn,tVn,0,[0,1,0]),nJe(r)(fVn,uVn,0,aVn);var i=qoe(2,1);nJe(r)(vVn,cVn,i,iVn);var c=qoe(3,1);nJe(r)(AVn,oVn,c,0),nJe(r)(bVn,sVn,0,[0,1,0]);var v=qoe(2,1);nJe(r)(BVn,lVn,v,0);var o=qoe(3,1);nJe(r)(kVn,jVn,o,0),nJe(r)(mVn,pVn,0,[0,1,0]);var A=qoe(3,1);nJe(r)(_Vn,dVn,A,0),nJe(r)(xVn,hVn,0,[0,1,0]),nJe(r)(wVn,yVn,[0,1,0],0),nJe(r)(qVn,gVn,[0,1,0],0),nJe(r)(DVn,IVn,[0,1,[0,1,[0,1,0]]],0),nJe(r)(NVn,EVn,[0,1,[0,1,[0,1,0]]],0),nJe(r)(FVn,TVn,[0,1,[0,1,[0,1,0]]],0),nJe(r)(PVn,MVn,[0,1,0],0),nJe(r)(GVn,UVn,[0,1,[0,1,[0,1,0]]],0),nJe(r)(OVn,KVn,[0,1,[0,1,[0,0,[0,1,0]]]],$Vn),nJe(r)(CVn,QVn,[0,1,[0,1,[0,0,[0,1,0]]]],RVn);var s=qoe(2,1);nJe(r)(VVn,HVn,s,0),nJe(r)(SVn,zVn,0,LVn),nJe(r)(WVn,ZVn,0,[0,1,0]);var b=qoe(3,1);nJe(r)(JVn,XVn,b,0),nJe(r)(rLn,YVn,0,[0,1,0]);var l=qoe(3,1);nJe(r)(tLn,nLn,l,0),nJe(r)(uLn,aLn,0,eLn),nJe(r)(iLn,fLn,0,[0,1,0]);var B=qoe(3,1);nJe(r)(vLn,cLn,B,0);var j=qoe(2,1);nJe(r)(ALn,oLn,j,0);var k=qoe(2,1);nJe(r)(bLn,sLn,k,0),nJe(r)(BLn,lLn,0,0),nJe(r)(pLn,kLn,0,jLn),nJe(r)(hLn,_Ln,dLn,mLn);var p=qoe(2,1);nJe(r)(yLn,xLn,p,0);var m=p3e(3);nJe(r)(gLn,wLn,m,0);var d=p3e(3);nJe(r)(ILn,qLn,d,0),nJe(r)(NLn,ELn,0,DLn),nJe(r)(PLn,MLn,FLn,TLn),nJe(r)(GLn,ULn,0,[0,1,0]),nJe(r)(KLn,$Ln,[0,1,0],[0,1,0]);var _=qoe(4,1);nJe(r)(RLn,OLn,_,0),nJe(r)(HLn,CLn,[0,1,[0,1,0]],QLn),nJe(r)(LLn,VLn,[0,1,[0,1,0]],[0,1,0]);var h=qoe(5,1);nJe(r)(SLn,zLn,h,0),nJe(r)(XLn,WLn,0,ZLn),nJe(r)(nzn,rzn,YLn,JLn)}(A)}!function(r){nJe(r)(C5n,Q5n,0,0),nJe(r)(V5n,H5n,0,0),nJe(r)(z5n,L5n,0,0),nJe(r)(W5n,Z5n,S5n,0),nJe(r)(r7n,Y5n,J5n,X5n),nJe(r)(e7n,t7n,0,n7n),nJe(r)(f7n,u7n,a7n,0),nJe(r)(v7n,c7n,i7n,0),nJe(r)(s7n,A7n,0,o7n),nJe(r)(B7n,l7n,0,b7n),nJe(r)(p7n,k7n,j7n,0),nJe(r)(d7n,m7n,0,0),nJe(r)(y7n,x7n,h7n,_7n),nJe(r)(q7n,g7n,w7n,0),nJe(r)(N7n,E7n,D7n,I7n),nJe(r)(M7n,F7n,T7n,0),nJe(r)(G7n,U7n,P7n,0),nJe(r)(O7n,K7n,0,$7n),nJe(r)(H7n,C7n,Q7n,R7n),nJe(r)(z7n,L7n,0,V7n),nJe(r)(W7n,Z7n,S7n,0),nJe(r)(Y7n,J7n,X7n,0),nJe(r)(e8n,t8n,n8n,r8n),nJe(r)(f8n,u8n,a8n,0),nJe(r)(o8n,v8n,c8n,i8n),nJe(r)(l8n,b8n,s8n,A8n),nJe(r)(p8n,k8n,j8n,B8n),nJe(r)(h8n,_8n,d8n,m8n),nJe(r)(g8n,w8n,y8n,x8n),nJe(r)(E8n,D8n,I8n,q8n),nJe(r)(M8n,F8n,T8n,N8n),nJe(r)($8n,G8n,U8n,P8n),nJe(r)(Q8n,R8n,O8n,K8n),nJe(r)(L8n,V8n,H8n,C8n),nJe(r)(W8n,Z8n,S8n,z8n),nJe(r)(r9n,Y8n,J8n,X8n),nJe(r)(a9n,e9n,t9n,n9n),nJe(r)(c9n,i9n,f9n,u9n),nJe(r)(s9n,A9n,o9n,v9n),nJe(r)(j9n,B9n,l9n,b9n),nJe(r)(d9n,m9n,p9n,k9n),nJe(r)(y9n,x9n,h9n,_9n),nJe(r)(I9n,q9n,g9n,w9n),nJe(r)(T9n,N9n,E9n,D9n),nJe(r)(U9n,P9n,M9n,F9n),nJe(r)(O9n,K9n,$9n,G9n),nJe(r)(H9n,C9n,Q9n,R9n),nJe(r)(S9n,z9n,L9n,V9n),nJe(r)(J9n,X9n,W9n,Z9n),nJe(r)(trt,nrt,rrt,Y9n),nJe(r)(frt,urt,art,ert),nJe(r)(ort,vrt,crt,irt),nJe(r)(lrt,brt,srt,Art),nJe(r)(prt,krt,jrt,Brt),nJe(r)(_rt,drt,mrt,0),nJe(r)(wrt,yrt,xrt,hrt),nJe(r)(Drt,Irt,qrt,grt),nJe(r)(Frt,Trt,Nrt,Ert),nJe(r)(Urt,Prt,Mrt,0),nJe(r)(Ort,Krt,$rt,Grt),nJe(r)(Hrt,Crt,Qrt,Rrt),nJe(r)(zrt,Lrt,Vrt,0),nJe(r)(Wrt,Zrt,Srt,0),nJe(r)(rnt,Yrt,Jrt,Xrt),nJe(r)(ent,tnt,nnt,0),nJe(r)(fnt,unt,ant,0),nJe(r)(vnt,cnt,int,0),nJe(r)(bnt,snt,Ant,ont),nJe(r)(jnt,Bnt,lnt,0),nJe(r)(dnt,mnt,pnt,knt),nJe(r)(ynt,xnt,hnt,_nt),nJe(r)(Int,qnt,gnt,wnt),nJe(r)(Nnt,Ent,0,Dnt),nJe(r)(Mnt,Fnt,0,Tnt),nJe(r)($nt,Gnt,Unt,Pnt),nJe(r)(Qnt,Rnt,Ont,Knt),nJe(r)(Lnt,Vnt,Hnt,Cnt),nJe(r)(Wnt,Znt,Snt,znt),nJe(r)(rtt,Ynt,Jnt,Xnt),nJe(r)(att,ett,ttt,ntt),nJe(r)(ctt,itt,ftt,utt),nJe(r)(stt,Att,ott,vtt),nJe(r)(jtt,Btt,ltt,btt),nJe(r)(dtt,mtt,ptt,ktt),nJe(r)(xtt,htt,_tt,0),nJe(r)(qtt,gtt,wtt,ytt),nJe(r)(Ntt,Ett,Dtt,Itt),nJe(r)(Mtt,Ftt,Ttt,0),nJe(r)($tt,Gtt,Utt,Ptt),nJe(r)(Rtt,Ott,Ktt,0),nJe(r)(Htt,Ctt,0,Qtt),nJe(r)(Stt,ztt,Ltt,Vtt),nJe(r)(Jtt,Xtt,Wtt,Ztt),nJe(r)(tet,net,ret,Ytt),nJe(r)(fet,uet,aet,eet),nJe(r)(oet,vet,cet,iet),nJe(r)(Bet,bet,set,Aet),nJe(r)(pet,ket,jet,0),nJe(r)(het,_et,det,met),nJe(r)(wet,yet,xet,0),nJe(r)(Det,Iet,qet,get),nJe(r)(Tet,Net,Eet,0),nJe(r)(Uet,Pet,Met,Fet),nJe(r)(Ket,$et,Get,0),nJe(r)(Cet,Qet,Ret,Oet),nJe(r)(Let,Vet,Het,0),nJe(r)(Wet,Zet,Set,zet),nJe(r)(Yet,Jet,Xet,0),nJe(r)(tat,nat,0,rat),nJe(r)(fat,uat,aat,eat),nJe(r)(oat,vat,cat,iat),nJe(r)(lat,bat,sat,Aat),nJe(r)(pat,kat,jat,Bat),nJe(r)(hat,_at,dat,mat),nJe(r)(gat,wat,yat,xat),nJe(r)(Eat,Dat,Iat,qat),nJe(r)(Mat,Fat,Tat,Nat),nJe(r)($at,Gat,Uat,Pat),nJe(r)(Qat,Rat,Oat,Kat),nJe(r)(Lat,Vat,Hat,Cat),nJe(r)(Wat,Zat,Sat,zat),nJe(r)(rut,Yat,Jat,Xat),nJe(r)(aut,eut,tut,nut),nJe(r)(cut,iut,fut,uut),nJe(r)(sut,Aut,out,vut),nJe(r)(jut,But,lut,but),nJe(r)(dut,mut,put,kut),nJe(r)(yut,xut,hut,_ut),nJe(r)(Iut,qut,gut,wut),nJe(r)(Tut,Nut,Eut,Dut),nJe(r)(Uut,Put,Mut,Fut),nJe(r)(Out,Kut,$ut,Gut),nJe(r)(Hut,Cut,Qut,Rut),nJe(r)(Sut,zut,Lut,Vut),nJe(r)(Jut,Xut,Wut,Zut),nJe(r)(nft,rft,0,Yut),nJe(r)(aft,eft,0,tft),nJe(r)(cft,ift,fft,uft),nJe(r)(Aft,oft,0,vft),nJe(r)(lft,bft,0,sft),nJe(r)(pft,kft,jft,Bft),nJe(r)(hft,_ft,dft,mft),nJe(r)(wft,yft,0,xft),nJe(r)(qft,gft,0,0),nJe(r)(Dft,Ift,0,0),nJe(r)(Tft,Nft,0,Eft),nJe(r)(Pft,Mft,Fft,0),nJe(r)($ft,Gft,0,Uft),nJe(r)(Rft,Oft,Kft,0),nJe(r)(Hft,Cft,0,Qft),nJe(r)(zft,Lft,0,Vft),nJe(r)(Wft,Zft,0,Sft),nJe(r)(rit,Yft,Jft,Xft),nJe(r)(ait,eit,tit,nit),nJe(r)(iit,fit,0,uit),nJe(r)(oit,vit,cit,0),nJe(r)(bit,sit,0,Ait),nJe(r)(jit,Bit,lit,0)}(A),W7e(A,e);var j=A[1];if(j)if(3<=j){if(3!==A[1])throw kQ([0,YL,jCn],1);var k=XJe(A,0,0,function(r){var n=s3e(A,2),t=[6,[0,wve,YXe(A,BCn)]],e=s3e(A,1);return function(r,a,u){return e(r,a,hWe(t,0,a,n(r,a,u)))}}),p=[0,wve,[0,[0,wve,WXe(A)(kCn,k)]]];HXe(A,[0,wve,[0,xoe(pCn),p]]);var m=0}else{if(1!==A[1]&&2!==A[1])throw kQ([0,YL,$Cn],1);var d=XJe(A,0,0,function(r){var n=[6,[0,wve,YXe(r,GCn)]],t=s3e(r,1);return function(r,e,a){return t(r,e,hWe(n,0,e,a))}}),_=[0,wve,[0,[0,wve,WXe(A)(KCn,d)]]];HXe(A,[0,wve,[0,xoe(OCn),_]]);m=0}else m=[0,[0,wve,YXe(A,f_n)]];return J7e(A,l,m)},K9e=13,O9e=function(r,n,t,e,a,u){return y9e(r,n,t,[0,e[1],[0,e[2],[0,e[3],[0,e[4],[0,e[5],[0,e[6],0]]]]]],a,function(r,n){if(n){var t=n[2];if(t){var e=t[2];if(e){var a=e[2];if(a){var f=a[2];if(f){var i=f[2];if(i&&!i[2])return RL(u,r,n[1],t[1],e[1],a[1],f[1],i[1])}}}}}throw kQ([0,XL,nre],1)})},R9e=function(r){q8e(r)(e0t,t0t,n0t,r0t),q8e(r)(f0t,u0t,0,a0t),q8e(r)(v0t,c0t,i0t,0),q8e(r)(b0t,s0t,A0t,o0t),q8e(r)(j0t,B0t,l0t,0),q8e(r)(d0t,m0t,p0t,k0t),q8e(r)(y0t,x0t,h0t,_0t),q8e(r)(I0t,q0t,g0t,w0t),q8e(r)(T0t,N0t,E0t,D0t),q8e(r)(U0t,P0t,M0t,F0t),q8e(r)(O0t,K0t,$0t,G0t),q8e(r)(H0t,C0t,Q0t,R0t),q8e(r)(S0t,z0t,L0t,V0t),q8e(r)(J0t,X0t,W0t,Z0t),q8e(r)(t1t,n1t,r1t,Y0t),q8e(r)(f1t,u1t,a1t,e1t),q8e(r)(o1t,v1t,c1t,i1t),q8e(r)(l1t,b1t,s1t,A1t),q8e(r)(p1t,k1t,j1t,B1t),q8e(r)(h1t,_1t,d1t,m1t),q8e(r)(g1t,w1t,y1t,x1t),q8e(r)(E1t,D1t,I1t,q1t),q8e(r)(M1t,F1t,T1t,N1t),q8e(r)($1t,G1t,U1t,P1t),q8e(r)(Q1t,R1t,O1t,K1t),q8e(r)(L1t,V1t,H1t,C1t),q8e(r)(W1t,Z1t,S1t,z1t),q8e(r)(r2t,Y1t,J1t,X1t),q8e(r)(a2t,e2t,t2t,n2t),q8e(r)(c2t,i2t,f2t,u2t),q8e(r)(s2t,A2t,o2t,v2t),q8e(r)(j2t,B2t,l2t,b2t),q8e(r)(d2t,m2t,p2t,k2t),q8e(r)(y2t,x2t,h2t,_2t),q8e(r)(I2t,q2t,g2t,w2t),q8e(r)(T2t,N2t,E2t,D2t),q8e(r)(U2t,P2t,M2t,F2t),q8e(r)(O2t,K2t,$2t,G2t),q8e(r)(C2t,Q2t,R2t,0),q8e(r)(L2t,V2t,H2t,0),q8e(r)(W2t,Z2t,S2t,z2t),q8e(r)(r3t,Y2t,J2t,X2t),q8e(r)(a3t,e3t,t3t,n3t),q8e(r)(i3t,f3t,u3t,0),q8e(r)(o3t,v3t,c3t,0),q8e(r)(l3t,b3t,s3t,A3t),q8e(r)(p3t,k3t,j3t,B3t),q8e(r)(_3t,d3t,m3t,0),q8e(r)(y3t,x3t,h3t,0),q8e(r)(I3t,q3t,g3t,w3t),q8e(r)(N3t,E3t,D3t,0),q8e(r)(M3t,F3t,T3t,0),q8e(r)(G3t,U3t,P3t,0),q8e(r)(R3t,O3t,K3t,$3t),q8e(r)(H3t,C3t,Q3t,0),q8e(r)(S3t,z3t,L3t,V3t),q8e(r)(J3t,X3t,W3t,Z3t),q8e(r)(t6t,n6t,r6t,Y3t),q8e(r)(u6t,a6t,0,e6t),q8e(r)(c6t,i6t,0,f6t),q8e(r)(s6t,A6t,o6t,v6t),q8e(r)(j6t,B6t,l6t,b6t),q8e(r)(d6t,m6t,p6t,k6t),q8e(r)(y6t,x6t,h6t,_6t),q8e(r)(I6t,q6t,g6t,w6t),q8e(r)(T6t,N6t,E6t,D6t),q8e(r)(U6t,P6t,M6t,F6t),q8e(r)(O6t,K6t,$6t,G6t),q8e(r)(H6t,C6t,Q6t,R6t),q8e(r)(S6t,z6t,L6t,V6t),q8e(r)(X6t,W6t,Z6t,0),q8e(r)(n4t,r4t,Y6t,J6t),q8e(r)(u4t,a4t,e4t,t4t),q8e(r)(c4t,i4t,f4t,0),q8e(r)(s4t,A4t,o4t,v4t),q8e(r)(B4t,l4t,b4t,0),q8e(r)(p4t,k4t,0,j4t),q8e(r)(h4t,_4t,d4t,m4t),q8e(r)(g4t,w4t,y4t,x4t),q8e(r)(E4t,D4t,I4t,q4t),q8e(r)(M4t,F4t,T4t,N4t),q8e(r)($4t,G4t,U4t,P4t),q8e(r)(Q4t,R4t,O4t,K4t),q8e(r)(V4t,H4t,C4t,0),q8e(r)(Z4t,S4t,z4t,L4t),q8e(r)(J4t,X4t,W4t,0),q8e(r)(t5t,n5t,r5t,Y4t),q8e(r)(u5t,a5t,e5t,0),q8e(r)(v5t,c5t,i5t,f5t),q8e(r)(s5t,A5t,o5t,0),q8e(r)(j5t,B5t,l5t,b5t),q8e(r)(m5t,p5t,k5t,0),q8e(r)(x5t,h5t,_5t,d5t),q8e(r)(g5t,w5t,y5t,0),q8e(r)(D5t,I5t,0,q5t),q8e(r)(F5t,T5t,N5t,E5t),q8e(r)(G5t,U5t,P5t,M5t),q8e(r)(R5t,O5t,K5t,$5t),q8e(r)(V5t,H5t,C5t,Q5t),q8e(r)(Z5t,S5t,z5t,L5t),q8e(r)(Y5t,J5t,X5t,W5t),q8e(r)(e7t,t7t,n7t,r7t),q8e(r)(i7t,f7t,u7t,a7t),q8e(r)(A7t,o7t,v7t,c7t),q8e(r)(B7t,l7t,b7t,s7t),q8e(r)(m7t,p7t,k7t,j7t),q8e(r)(x7t,h7t,_7t,d7t),q8e(r)(q7t,g7t,w7t,y7t),q8e(r)(N7t,E7t,D7t,I7t),q8e(r)(P7t,M7t,F7t,T7t),q8e(r)(K7t,$7t,G7t,U7t),q8e(r)(C7t,Q7t,R7t,O7t),q8e(r)(z7t,L7t,V7t,H7t),q8e(r)(X7t,W7t,Z7t,S7t),q8e(r)(n8t,r8t,Y7t,J7t),q8e(r)(u8t,a8t,e8t,t8t),q8e(r)(v8t,c8t,i8t,f8t),q8e(r)(b8t,s8t,A8t,o8t),q8e(r)(k8t,j8t,B8t,l8t),q8e(r)(_8t,d8t,m8t,p8t),q8e(r)(w8t,y8t,x8t,h8t),q8e(r)(I8t,q8t,0,g8t),q8e(r)(N8t,E8t,0,D8t),q8e(r)(P8t,M8t,F8t,T8t),q8e(r)($8t,G8t,0,U8t),q8e(r)(R8t,O8t,0,K8t),q8e(r)(V8t,H8t,C8t,Q8t),q8e(r)(Z8t,S8t,z8t,L8t),q8e(r)(Y8t,J8t,X8t,W8t),q8e(r)(t9t,n9t,r9t,0),q8e(r)(u9t,a9t,e9t,0),q8e(r)(c9t,i9t,f9t,0),q8e(r)(A9t,"stream_split",o9t,v9t),q8e(r)(l9t,b9t,s9t,0),q8e(r)(p9t,k9t,j9t,B9t),q8e(r)(_9t,d9t,m9t,0),q8e(r)(y9t,x9t,0,h9t),4===Dce[1]?(q8e(r)($9t,G9t,0,0),q8e(r)(O9t,K9t,0,0),q8e(r)(Q9t,R9t,0,0),q8e(r)(V9t,H9t,C9t,0),q8e(r)(Z9t,S9t,z9t,L9t),q8e(r)(X9t,W9t,0,0),q8e(r)(rre,Y9t,0,J9t)):(q8e(r)(w9t,"initialize_copying_gc",0,0),q8e(r)(g9t,"initialize_compacting_gc",0,0),q8e(r)(q9t,"initialize_generational_gc",0,0),q8e(r)(I9t,"schedule_copying_gc",0,0),q8e(r)(D9t,"schedule_compacting_gc",0,0),q8e(r)(E9t,"schedule_generational_gc",0,0),q8e(r)(N9t,"copying_gc",0,0),q8e(r)(T9t,"compacting_gc",0,0),q8e(r)(F9t,"generational_gc",0,0),q8e(r)(U9t,P9t,M9t,0))},Q9e=function(r){var n=[11,[0,wve,m8e(r,NYt)]];return function(r,t,e){return hWe(n,0,t,e)}};if(DH(Y7e,Bre)){var C9e=Iye[24].call(null,Y7e),H9e=Iye[31].call(null,C9e);if(dH(PL(Iye[23],H9e),jre)){var V9e=Iye[24].call(null,Y7e),L9e=Iye[33].call(null,V9e),z9e=i9e(PL(Iye[23],L9e));break r}}z9e=a9e(2,Y7e)}function S9e(r,n){var t=I8e(r)(yYt,xYt),e=L8e(n);return function(r,n,a){return _We(e,t,r,n,a)}}function Z9e(r){var n=[13,[0,0,2,$H(hC(4,r)+eXe[2]|0),0]];return function(r,t,e){return hWe(n,0,t,e)}}function W9e(r){var n=[14,[0,0,2,$H(hC(4,r)+eXe[2]|0),0]];return function(r,t,e){return hWe(n,0,t,e)}}function X9e(r){return function(r,n,t){return hWe(8,0,n,t)}}function J9e(r){var n=Tce[1];if(n)return n[1];throw kQ([0,YL,BYt],1)}function Y9e(r){return hC(J9e(),ni)}function rra(r){var n=[11,[0,wve,m8e(r,AYt)]];return function(r,t,e){return hWe(n,0,t,e)}}function nra(r){var n=[12,[0,wve,m8e(r,oYt)]];return function(r,t,e){return hWe(n,0,t,e)}}function tra(r){return w9e(1,r,vYt,0,function(r){var n=L8e(-4);return function(r,t,e){return n(r,t,hWe(cYt,0,t,hWe(0,0,t,e)))}})}function era(r,n){var t=hC(n,4);if(t>=(J9e()*ni|0))throw kQ([0,YL,uYt],1);if(IH(t,ni))var e=tra(r),a=rra(r),u=function(r,n,t){return a(r,n,hWe(fYt,0,n,qWe(DX,dWe,e,r,n,t)))};else u=dWe;var f=rra(r),i=nra(r),c=L8e(t),v=rra(r);return function(r,n,t){return v(r,n,c(r,n,hWe(iYt,0,n,i(r,n,_We(f,u,r,n,t)))))}}function ara(r,n){var t=nra(r),e=L8e(hC(n,4)),a=rra(r);return function(r,n,u){return a(r,n,e(r,n,hWe(aYt,0,n,t(r,n,u))))}}function ura(r,n,t,e){var a=b9e(r,n),u=a[2],f=a[1],i=ara(r,t),c=PL(e,u),v=era(r,t);return function(r,n,t){return v(r,n,GL(f,r,n,_We(c,i,r,n,t)))}}function fra(r,n,t){var e=b9e(r,rYt),a=e[2],u=e[1],f=b9e(r,n),i=f[2],c=f[1],v=nra(r),o=r9e(4),A=rra(r),s=PL(t,i),b=rra(r),l=nra(r),B=r9e(4),j=rra(r),k=tra(r),p=W8e(4,4),m=rra(r);return function(r,n,t){return GL(u,r,n,m(r,n,p(r,n,GL(a,r,n,hWe(eYt,0,n,qWe(DX,k,dWe,r,n,j(r,n,GL(a,r,n,B(r,n,hWe(tYt,0,n,l(r,n,b(r,n,GL(c,r,n,GL(s,r,n,A(r,n,GL(a,r,n,o(r,n,hWe(nYt,0,n,v(r,n,t)))))))))))))))))))}}function ira(r,n,t){var e=fra(r,n,t),a=W8e(4,4),u=W8e(0,3);return function(r,n,t){return u(r,n,_We(a,e,r,n,t))}}function cra(r){var n=[11,[0,wve,m8e(r,YJt)]];return function(r,t,e){return hWe(n,0,t,e)}}function vra(r){var n=[12,[0,wve,m8e(r,JJt)]];return function(r,t,e){return hWe(n,0,t,e)}}function ora(r,n,t,e){var a=ara(r,t+1|0),u=vra(r),f=cra(r),i=P8e(r,ZJt),c=rra(r),v=cra(r),o=PL(e,0),A=vra(r),s=rra(r),b=cra(r),l=era(r,t+1|0);return function(r,n,t){return l(r,n,b(r,n,hWe(XJt,0,n,s(r,n,A(r,n,GL(o,r,n,v(r,n,c(r,n,hWe(WJt,0,n,i(r,n,f(r,n,hWe(SJt,0,n,_We(u,a,r,n,t)))))))))))))}}function Ara(r,n){var t=[13,[0,0,2,$H(hC(n+1|0,4)),0]],e=cra(r);return function(r,n,a){return e(r,n,hWe(t,0,n,a))}}function sra(r,n){var t=[13,[0,0,2,$H(hC(n+1|0,4)),0]],e=cra(r);return function(r,n,a){return e(r,n,hWe(zJt,0,n,hWe(t,0,n,a)))}}function bra(r,n){var t=hC(n+1|0,4);return g9e(1,r,$I+wH(TM,n),LJt,0,function(r,n){var e=[14,[0,0,2,$H(t),0]],a=cra(r);return function(r,t,u){return a(r,t,GL(n,r,t,hWe(e,0,t,u)))}})}function lra(r){return I8e(r)(CJt,QJt)}function Bra(r){return I8e(r)(KJt,$Jt)}function jra(r){return r?1:0}function kra(r){return L8e(jra(r))}function pra(r){return e9e(1)}function mra(r,n,t,e){var a=N8e(r,n,e,t),u=W8e(7,1);return function(r,n,t){return _We(u,a,r,n,t)}}function dra(r,n,t,e){var a=N8e(r,n,e,t),u=W8e(7,1);return function(r,n,t){return hWe(PJt,0,n,_We(u,a,r,n,t))}}function _ra(r){if(Fce[1])switch(r){case 14:return 21;case 2:case 7:return 30;case 6:case 11:return 28;case 5:case 10:return 27;case 4:case 9:return 16;case 3:case 8:return 8;default:throw kQ([0,YL,Pre],1)}switch(r){case 14:return 21;case 2:case 7:case 6:case 11:case 5:case 10:return 31;case 4:case 9:return 16;case 3:case 8:return 8;default:throw kQ([0,YL,Ure],1)}}function hra(r){return _ra(r)-1|0}function xra(r,n){switch(r){case 5:case 6:var t=WH(FJt,_ra(r)),e=iV(MJt,n);return e?cV(n,t):e;case 2:case 7:case 10:case 11:var a=hra(r),u=iV(OH(WH(NJt,a)),n),f=WH(TJt,a);return u?cV(n,f):u;default:throw kQ([0,YL,EJt],1)}}function yra(r,n){if(12>r)switch(r){case 0:case 1:case 3:case 4:case 8:case 9:break;default:var t=KH(n)<<(32-_ra(r)|0);return r8e(r)|t}throw kQ([0,YL,DJt],1)}function wra(r,n,t,e,a){switch(n){case 5:case 6:var u=N8e(r,t,e,a),f=g9e(1,r,GWe(n,IJt),qJt,gJt,function(r,t){var e=u9e($H(_ra(n)));return function(r,n,a){return GL(t,r,n,e(r,n,hWe(mJt,0,n,a)))}});return function(r,n,t){return _We(f,u,r,n,t)};case 2:case 7:case 10:case 11:var i=N8e(r,t,e,a),c=g9e(1,r,GWe(n,wJt),yJt,xJt,function(r,t){var e=u9e($H(hra(n))),a=f9e($H(64-hra(n)|0));return function(r,n,u){return GL(t,r,n,GL(t,r,n,a(r,n,hWe(_Jt,0,n,e(r,n,hWe(dJt,0,n,u))))))}});return function(r,n,t){return _We(c,i,r,n,t)};default:throw kQ([0,YL,hJt],1)}}function gra(r,n){var t=_ra(n),e=n9e(r8e(n)),a=W8e(Y8e,32-t|0);return function(r,n,t){return hWe(kJt,0,n,_We(a,e,r,n,t))}}function qra(r,n,t){switch(t){case 5:case 6:var e=W8e(X8e,32-_ra(t)|0);return function(r,n,t){return e(r,n,hWe(jJt,0,n,t))};case 2:case 7:case 10:case 11:var a=W8e(J8e,32-_ra(t)|0);return function(r,n,t){return a(r,n,hWe(BJt,0,n,t))};default:throw kQ([0,YL,lJt],1)}}function Ira(r,n,t,e,a){switch(n){case 5:case 6:var u=N8e(r,t,e,a),f=g9e(1,r,GWe(n,bJt),sJt,AJt,function(r,t){var e=W8e(X8e,_ra(n));return function(r,n,a){return GL(t,r,n,e(r,n,hWe(aJt,0,n,a)))}});return function(r,n,t){return _We(f,u,r,n,t)};case 2:case 7:case 10:case 11:var i=N8e(r,t,e,a),c=g9e(1,r,GWe(n,oJt),vJt,cJt,function(r,t){var e=W8e(X8e,hra(n)),a=W8e(J8e,32-hra(n)|0);return function(r,n,u){return GL(t,r,n,GL(t,r,n,a(r,n,hWe(fJt,0,n,e(r,n,hWe(uJt,0,n,u))))))}});return function(r,n,t){return _We(c,i,r,n,t)};default:throw kQ([0,YL,iJt],1)}}function Dra(r,n){var t=_ra(n),e=n9e(r8e(n)),a=W8e(Y8e,32-t|0);return function(r,n,t){return _We(a,e,r,n,t)}}function Era(r,n,t){switch(t){case 5:case 6:var e=W8e(X8e,32-_ra(t)|0);return function(r,n,t){return e(r,n,t)};case 2:case 7:case 10:case 11:var a=W8e(J8e,32-_ra(t)|0);return function(r,n,t){return a(r,n,t)};default:throw kQ([0,YL,eJt],1)}}function Nra(r,n){return KV(r8e(n),0)?W8e(7,(1<<32-_ra(n))-1^-1):dWe}function Tra(r){if("number"==typeof r)switch(r){case 0:return 1;case 1:return 17;case 2:return 19;case 3:return 21;case 4:return 23;case 5:return 33;case 6:return 35;case 7:return 37;case 8:return 47;case 9:return 49;case 10:return 51;case 11:return 39;case 12:return 52;case 13:return-1;default:return-2}switch(r[0]){case 0:switch(r[1]){case 0:return 3;case 1:return 5;case 2:return 7;default:return 9}case 1:switch(r[1]){case 0:return 11;case 1:return 13;default:return 15}case 2:switch(r[1]){case 0:return 25;case 1:return 27;case 2:return 29;default:return 31}default:switch(r[1]){case 0:return 41;case 1:return 43;default:return 45}}}function Fra(r){return 4===Dce[1]?2:1}function Mra(r){var n=S9e(r,0);return function(r,t,e){return n(r,t,hWe(2,0,t,e))}}function Pra(r){if(4===Dce[1])return 1;throw kQ([0,YL,tJt],1)}function Ura(r,n,t){if(!DH(n,1))throw kQ([0,YL,YXt],1);var e=Tra(t);return w9e(1,r,UL(R3(rJt),n,e),nJt,function(r){var e=b9e(r,XXt),a=e[2],u=hC(n,4),f=e[1];if(4===Dce[1])var i=W9e(Pra()),c=function(r,n,t){return GL(a,r,n,_We(a,i,r,n,t))};else c=dWe;var v=W9e(0),o=L8e(Tra(t));r:{if(4!==Dce[1]&&cV(u,AM)){var A=u,s=Mra(r);if(0A){var b=gye[20].call(null,A),l=gye[31].call(null,b),B=1===PL(gye[19],l)?u:0,j=gye[20].call(null,A),k=gye[32].call(null,j),p=W8e(7,B|Ft&-1<<16-PL(gye[19],k)),m=F9e(r),d=M9e(r),_=W8e(0,u),h=F9e(r),x=F9e(r),y=function(r,n,t){return x(r,n,h(r,n,_(r,n,d(r,n,m(r,n,p(r,n,qWe(DX,dWe,s,r,n,t)))))))};break r}throw kQ([0,YL,JXt],1)}y=S9e(r,n)}return function(r,n,t){return y(r,n,GL(f,r,n,GL(a,r,n,o(r,n,v(r,n,_We(c,a,r,n,t))))))}})}function Gra(r){return 4===Dce[1]?Z9e(Pra()):dWe}function $ra(r){var n=Z9e(0),t=Gra();return function(r,e,a){return _We(t,n,r,e,a)}}function Kra(r,n){var t=Z9e(n);return function(r,n,e){return t(r,n,e)}}function Ora(r,n){var t=W9e(n);return function(r,n,e){return t(r,n,e)}}function Rra(r,n){var t=[13,[0,1,2,$H(hC(4,n)),0]];return function(r,n,e){return hWe(t,0,n,e)}}function Qra(r,n,t,e){var a=b9e(r,WXt),u=a[2];var f=a[1],i=function e(a){if(!a)return t;var f=a[1],i=f[2],c=f[1],v=N8e(r,n,i,e(a[2])),o=e9e(Tra(c));return function(r,n,t){return GL(u,r,n,_We(o,v,r,n,t))}}(e),c=$ra();return function(r,n,t){return c(r,n,_We(f,i,r,n,t))}}function Cra(r){return 4===Dce[1]?I8e(r)(ZXt,SXt):dWe}function Hra(r){var n=b9e(r,QXt),t=n[2],e=n[1],a=b9e(r,CXt),u=a[2],f=eXe[4],i=a[1],c=I8e(r)(VXt,HXt);function v(r,n,e){return GL(u,r,n,_We(t,f,r,n,e))}function o(r,n,e){return GL(u,r,n,_We(t,c,r,n,e))}var A=I8e(r)(zXt,LXt);return function(r,n,t){return GL(e,r,n,GL(i,r,n,A(r,n,qWe(DX,o,v,r,n,t))))}}function Vra(r,n,t){var e=LY(t),a=Fra(),u=pve(e)+a|0,f=b9e(r,RXt),i=f[2],c=f[1],v=Cra(r),o=yWe(function(r,n){var t=Fra(),e=W9e(pve(r)+t|0);return function(r,t,a){return GL(i,r,t,_We(n,e,r,t,a))}},t),A=Ura(r,u,n);return function(r,n,t){return A(r,n,GL(c,r,n,GL(o,r,n,_We(i,v,r,n,t))))}}function Lra(r,n,t){var e=e8e(t),a=U8e(r,hC(4,Fra())+HH(e)|0),u=a+eXe[1]|0,f=o9e(Tra(n)),i=o9e(u);return 4===Dce[1]?G8e(r,a,f+i+e):G8e(r,a,f+e),u}function zra(r,n,t){var e=o9e(Tra(n))+e8e(t),a=i8e[29].call(null,e,r[12][1]);if(a)return a[1];var u=Lra(r,n,t),f=i8e[4].call(null,e,u,r[12][1]);return r[12][1]=f,u}function Sra(r){return Vra(r,1,[0,S8e,0])}function Zra(r){var n=Lra(r,1,OXt);return r[16][1]=[0,n,r[16][1]],n}function Wra(r){var n=Kra(0,Fra()),t=Gra();return function(r,e,a){return _We(t,n,r,e,a)}}function Xra(r){var n=b9e(r,KXt),t=n[2],e=n[1],a=Ora(0,Fra()),u=Gra();return function(r,n,f){return GL(e,r,n,u(r,n,_We(t,a,r,n,f)))}}function Jra(r){return zra(r,8,0)}function Yra(r){return L8e(Jra(r))}function rna(r,n){return zra(r,3,[0,[0,n],0])}function nna(r){var n=Yra(r);return function(r,t,e){return n(r,t,hWe($Xt,0,t,e))}}function tna(r,n){var t=Ume(n);r:{if("number"==typeof t){if(0!==t)break r}else switch(t[0]){case 2:if(t[1])break r;break;case 1:case 6:break;default:break r}return 0}return 1}function ena(r,n,t){if(tna(0,n))return t;var e=g9e(1,r,GXt,UXt,PXt,function(r,n){var t=[0,[0,3,Vra(r,3,[0,n,0])],0],e=Qra(r,TXt,n,[0,[0,8,L8e(rna(r,Jra(r)))],t]),a=N8e(r,FXt,n,function(r,t,a){return _We(n,e,r,t,a)}),u=pra(),f=mra(r,MXt,n,function(r,t,e){return GL(n,r,t,_We(u,a,r,t,e))});return function(r,t,e){return _We(n,f,r,t,e)}});return function(r,n,a){return _We(t,e,r,n,a)}}function ana(r,n){var t=Gra();return function(r,e,a){return _We(n,t,r,e,a)}}function una(r,n){return tna(0,n)?dWe:g9e(1,r,NXt,EXt,DXt,function(r,n){var t=[0,[0,8,F8e(r,"Internal error: opt_project: null!")],0],e=function(){var r=Kra(0,Fra()),n=Gra();return function(t,e,a){return _We(n,r,t,e,a)}}(),a=Qra(r,gXt,n,[0,[0,3,function(r,t,a){return _We(n,e,r,t,a)}],t]),u=N8e(r,qXt,n,function(r,t,e){return _We(n,a,r,t,e)}),f=pra(),i=mra(r,IXt,n,function(r,t,e){return GL(n,r,t,_We(f,u,r,t,e))});return function(r,t,e){return _We(n,i,r,t,e)}})}function fna(r){return function(n){return A8e(r,n)}}function ina(r,n,t){return Vra(r,4,[0,L8e(fna(r)(n)),[0,t,0]])}function cna(r){var n=Kra(0,Fra()+1|0),t=Gra();return function(r,e,a){return _We(t,n,r,e,a)}}function vna(r,n){var t=e9e(fna(r)(n)),e=Kra(0,Fra()),a=Gra();return function(r,n,u){return _We(a,e,r,n,t(r,n,u))}}function ona(r){return Fra()+2|0}function Ana(r,n,t){var e=k9e(qoe(t,0)),a=[0,[0,0,qoe(n,0)],e],u=g8e(r)(a),f=d9e(r,qoe(t,0)),i=Kra(0,Fra()),c=[7,[0,wve,0],[0,wve,u]],v=Gra();return function(r,n,t){return v(r,n,i(r,n,hWe(c,0,n,GL(f,r,n,t))))}}function sna(r,n){if(6===n)return xXt;if(11===n)return hXt;throw kQ([0,YL,_Xt],1)}function bna(r,n){return g9e(1,r,GWe(n,mXt),pXt,kXt,function(r,t){var e=function(r,n,t){var e=b9e(r,dXt),a=e[2],u=e[1],f=4===Dce[1]?4:3,i=Cra(r),c=[14,[0,1,2,$H(hC(4,Fra())+eXe[2]|0),0]],v=Ura(r,f,sna(0,n));return function(r,n,e){return v(r,n,GL(u,r,n,GL(a,r,n,GL(t,r,n,hWe(c,0,n,_We(a,i,r,n,e))))))}}(r,n,t),a=gra(0,n),u=wra(r,n,jXt,function(r,n,e){return _We(t,a,r,n,e)},e);return function(r,n,e){return _We(t,u,r,n,e)}})}function lna(r,n){return g9e(1,r,GWe(n,BXt),lXt,bXt,function(r,t){var e=function(r,n){var t=[13,[0,1,2,$H(hC(4,n)+eXe[2]|0),0]];return function(r,n,e){return hWe(t,0,n,e)}}(0,Fra());sna(0,n);var a=Gra(),u=qra(0,0,n),f=mra(r,sXt,function(r,n,e){return _We(t,u,r,n,e)},function(r,n,u){return GL(t,r,n,a(r,n,_We(dWe,e,r,n,u)))});return function(r,n,e){return _We(t,f,r,n,e)}})}function Bna(r){return function(r,n,t){return hWe(AXt,0,n,t)}}function jna(r){return function(r,n,t){return hWe(oXt,0,n,t)}}function kna(r){return q9e(1,r,aXt,eXt,tXt,function(r,n,t){var e=M8e(r,rXt);return function(r,a,u){return GL(n,r,a,GL(t,r,a,hWe(nXt,0,a,e(r,a,GL(n,r,a,GL(t,r,a,hWe(YWt,0,a,u)))))))}})}function pna(r){return q9e(0,r,GWe(6,WWt),JWt,XWt,function(r,n,t){var e=PWe(n),a=PWe(t),u=l9e(r,KWt),f=u[2],i=u[1],c=u9e(RWt),v=[3,[0,wve,1]];function o(r,t,e){return GL(f,r,t,GL(n,r,t,hWe(CWt,0,t,GL(i,r,t,e))))}var A=i9e(VWt);function s(r,u,f){return GL(t,r,u,A(r,u,hWe(HWt,0,u,qWe(DX,dWe,o,r,u,GL(n,r,u,GL(n,r,u,hWe(QWt,0,u,e(r,u,GL(t,r,u,c(r,u,a(r,u,hWe(v,0,u,f))))))))))))}var b=z8e(zWt);function l(r,n,e){return GL(t,r,n,b(r,n,hWe(LWt,0,n,qWe(DX,dWe,s,r,n,e))))}function B(r,t,e){return EWe(l,r,t,GL(f,r,t,GL(n,r,t,hWe(OWt,0,t,e))))}var j=IWe(1);function k(r,n,t){return j(f,B,r,n,t)}var p=z8e(ZWt);return function(r,n,e){return p(r,n,GL(i,r,n,GL(t,r,n,hWe(SWt,0,n,GL(k,r,n,e)))))}})}function mna(r){var n=l9e(r,DWt),t=n[2],e=n[1],a=z8e(TWt);return function(r,n,u){return GL(e,r,n,a(r,n,GL(t,r,n,hWe(NWt,0,n,hWe(EWt,0,n,u)))))}}function dna(r,n){if(5===n)return IWt;if(10===n)return qWt;throw kQ([0,YL,gWt],1)}function _na(r,n){return g9e(1,r,GWe(n,"box"),wWt,yWt,function(r,t){var e=function(r,n,t){var e=b9e(r,"boxed_i32"),a=e[2],u=e[1],f=4===Dce[1]?3:2,i=Cra(r),c=Ora(0,Fra()),v=Ura(r,f,dna(0,n));return function(r,n,e){return v(r,n,GL(u,r,n,GL(a,r,n,GL(t,r,n,c(r,n,_We(a,i,r,n,e))))))}}(r,n,t),a=Dra(0,n),u=Ira(r,n,xWt,function(r,n,e){return _We(t,a,r,n,e)},e);return function(r,n,e){return _We(t,u,r,n,e)}})}function hna(r,n){return g9e(1,r,GWe(n,"unbox"),hWt,_Wt,function(r,t){var e=Kra(0,Fra());dna(0,n);var a=Gra(),u=Era(0,0,n),f=mra(r,dWt,function(r,n,e){return _We(t,u,r,n,e)},function(r,n,u){return GL(t,r,n,a(r,n,_We(dWe,e,r,n,u)))});return function(r,n,e){return _We(t,f,r,n,e)}})}function xna(r){switch(r){case 14:return 21;case 3:case 8:return 8;case 4:case 9:return 16;case 5:case 10:return 32;default:throw kQ([0,YL,pWt],1)}}function yna(r){switch(r){case 5:case 10:return 0;case 3:case 4:case 8:case 9:case 14:return r8e(r);default:throw kQ([0,YL,kWt],1)}}function wna(r){return 32-xna(r)|0}function gna(r,n){return n<r)switch(r){case 3:case 8:var n=7;break r;case 4:case 9:n=15;break r}n=KWe(jWt,She(r),0)}return W8e(7,n)}return dWe}function Ena(r){switch(r){case 14:case 3:case 4:return W8e(X8e,wna(r));case 5:case 10:return dWe;case 8:case 9:return W8e(J8e,wna(r));default:throw kQ([0,YL,BWt],1)}}function Nna(r){return 5!==r&&10!==r?W8e(Y8e,wna(r)):dWe}function Tna(r){return 5!==r&&10!==r?W8e(7,Ina(r)):dWe}function Fna(r){return 5!==r&&10!==r?n9e(qna(r)):dWe}function Mna(r){var n=Nna(r),t=Fna(r);return function(r,e,a){return t(r,e,hWe(lWt,0,e,n(r,e,a)))}}function Pna(r){var n=Nna(r),t=W8e(14,wna(r)),e=Fna(r);return function(r,a,u){return e(r,a,t(r,a,hWe(bWt,0,a,n(r,a,u))))}}function Una(r,n){var t=b9e(r,oWt),e=t[2],a=t[1],u=Nna(n),f=Dna(n),i=Ena(n),c=Ena(n);return function(r,n,t){return c(r,n,GL(a,r,n,i(r,n,Z8e(r,n,GL(e,r,n,f(r,n,hWe(sWt,0,n,hWe(AWt,0,n,u(r,n,t)))))))))}}function Gna(r){return Ena(14)}var $na=Nna(14);function Kna(r){return function(r,n,t){return hWe(cXt,0,n,t)}}function Ona(r){return function(r,n,t){return hWe(fXt,0,n,t)}}function Rna(r){return g9e(0,r,vWt,cWt,iWt,function(r,n){var t=M8e(r,nWt),e=L8e(v),a=L8e(He),u=L8e(Xn);return function(r,f,i){return GL(n,r,f,u(r,f,hWe(fWt,0,f,GL(n,r,f,a(r,f,hWe(uWt,0,f,hWe(aWt,0,f,GL(n,r,f,e(r,f,hWe(eWt,0,f,hWe(tWt,0,f,t(r,f,_We(n,$na,r,f,i)))))))))))))}})}function Qna(r,n){var t=n<=t>>>0)switch(t){case 0:case 1:case 5:case 6:case 11:return n9e(yna(n))}throw kQ([0,YL,IZt],1)}function Vna(r,n){var t=n-3|0;if(11>=t>>>0)switch(t){case 0:case 1:case 5:case 6:case 11:var e=Nra(0,n);return function(r,n,t){return e(r,n,t)}}throw kQ([0,YL,qZt],1)}function Lna(r){return g9e(1,r,wZt,yZt,xZt,function(r,n){var t=b9e(r,_Zt),e=t[2],a=t[1],u=Fra()+2|0,f=Cra(r),i=function(r,n){var t=[14,[0,3,2,$H(hC(4,n)+eXe[2]|0),0]];return function(r,n,e){return hWe(t,0,n,e)}}(0,Fra()),c=Ura(r,u,hZt);return function(r,t,u){return c(r,t,GL(a,r,t,GL(e,r,t,GL(n,r,t,i(r,t,_We(e,f,r,t,u))))))}})}function zna(r){var n=[13,[0,3,2,$H(hC(4,Fra())+eXe[2]|0),0]],t=Gra();return function(r,e,a){return t(r,e,dWe(0,0,hWe(n,0,e,a)))}}function Sna(r){return g9e(1,r,"box_f32",mZt,pZt,function(r,n){var t=b9e(r,"boxed_f32"),e=t[2],a=t[1],u=Fra()+1|0,f=Cra(r),i=function(r,n){var t=[14,[0,2,2,$H(hC(4,n)+eXe[2]|0),0]];return function(r,n,e){return hWe(t,0,n,e)}}(0,Fra()),c=Ura(r,u,kZt);return function(r,t,u){return c(r,t,GL(a,r,t,GL(e,r,t,GL(n,r,t,i(r,t,_We(e,f,r,t,u))))))}})}function Zna(r){var n=[13,[0,2,2,$H(hC(4,Fra())+eXe[2]|0),0]],t=Gra();return function(r,e,a){return t(r,e,dWe(0,0,hWe(n,0,e,a)))}}function Wna(r){return function(n,t,e){return GL(r,n,t,hWe(jZt,0,t,e))}}function Xna(r){var n=[13,[0,0,2,lC(4,0,0),0]];return function(t,e,a){return GL(r,t,e,hWe(n,0,e,a))}}function Jna(r,n){return function(t,e,a){return GL(r,t,e,GL(n,t,e,hWe(BZt,0,e,a)))}}function Yna(r,n){var t=[14,[0,0,2,lC(4,0,0),0]];return function(e,a,u){return GL(r,e,a,GL(n,e,a,hWe(t,0,a,u)))}}function rta(r,n){var t=Wna(r);return Yna(r,function(r,e,a){return t(r,e,GL(n,r,e,hWe(lZt,0,e,a)))})}function nta(r,n){return ura(r,bZt,2,n)}function tta(r,n){var t=Wna(r);return Jna(r,function(r,e,a){return t(r,e,GL(n,r,e,hWe(sZt,0,e,a)))})}function eta(r,n){var t=I8e(r)(AZt,oZt);return function(r,e,a){return _We(n,t,r,e,a)}}function ata(r,n){var t=I8e(r)(vZt,cZt);return function(r,e,a){return _We(n,t,r,e,a)}}function uta(r,n,t){var e=P8e(r,uZt),a=Wna(n),u=Xna(n);return function(r,n,f){return GL(t,r,n,u(r,n,a(r,n,hWe(iZt,0,n,hWe(fZt,0,n,e(r,n,f))))))}}function fta(r,n){var t=Wna(n),e=Xna(n);return function(r,n,a){return e(r,n,t(r,n,hWe(aZt,0,n,a)))}}function ita(r,n){var t=tta(n,Z8e),e=Wna(n),a=uta(r,n,Z8e);return function(r,n,u){return a(r,n,e(r,n,hWe(eZt,0,n,t(r,n,u))))}}function cta(r,n){var t=tta(n,L8e(4)),e=Wna(n),a=uta(r,n,L8e(4));return function(r,n,u){return a(r,n,e(r,n,hWe(nZt,0,n,t(r,n,u))))}}function vta(r,n){var t=tta(n,L8e(8)),e=Wna(n),a=uta(r,n,L8e(8));return function(r,n,u){return a(r,n,e(r,n,hWe(JSt,0,n,t(r,n,u))))}}function ota(r,n,t){var e=tta(n,t),a=X9e(),u=Wna(n),f=uta(r,n,t);return function(r,n,i){return f(r,n,u(r,n,GL(t,r,n,_We(a,e,r,n,i))))}}function Ata(r){return function(n,t,e){return GL(r,n,t,hWe(VSt,0,t,e))}}function sta(r){var n=W8e(Y8e,1);return function(t,e,a){return GL(r,t,e,n(t,e,GL(r,t,e,hWe(HSt,0,e,hWe(CSt,0,e,a)))))}}function bta(r,n){var t=W8e(4,7),e=PL(r,n),a=L8e(38);function u(r,n,u){return a(r,n,GL(e,r,n,hWe(QSt,0,n,t(r,n,u))))}var f=IWe(0);function i(r,n,t){return f(u,Z8e,r,n,t)}return function(r,t,e){return _We(n,i,r,t,e)}}function lta(r,n,t){var e=bta(Ata,n),a=I8e(r)(RSt,OSt);return function(r,u,f){return GL(n,r,u,GL(t,r,u,_We(a,e,r,u,f)))}}function Bta(r,n,t){var e=bta(sta,n),a=I8e(r)(KSt,$St);return function(r,u,f){return GL(n,r,u,GL(t,r,u,_We(a,e,r,u,f)))}}function jta(r){return I8e(r)(dLt,mLt)}function kta(r){return I8e(r)(lLt,bLt)}function pta(r){return I8e(r)(sLt,ALt)}function mta(r){return I8e(r)(cLt,iLt)}function dta(r){return I8e(r)(wVt,yVt)}function _ta(r){return I8e(r)(xVt,hVt)}function hta(r){return I8e(r)(_Vt,dVt)}function xta(r){var n=g9e(1,r,PVt,MVt,FVt,function(r,n){var t=M8e(r,EVt),e=I8e(r)(TVt,NVt);return function(r,a,u){return GL(n,r,a,e(r,a,_We(t,n,r,a,u)))}}),t=I8e(r)(BVt,lVt);return function(r,e,a){return _We(t,n,r,e,a)}}function yta(r){return I8e(r)(vVt,cVt)}function wta(r){return I8e(r)(iVt,fVt)}function gta(r,n){var t=L8e(n),e=I8e(r)(VHt,HHt);return function(r,n,a){return e(r,n,t(r,n,hWe(CHt,0,n,a)))}}function qta(r){return gta(r,_ra(7))}function Ita(r){return Nra(0,7)}function Dta(r){var n=Ita();return function(r,t,e){return n(r,t,hWe(FSt,0,t,e))}}function Eta(r){var n=n9e(r8e(7));return function(r,t,e){return hWe(NSt,0,t,n(r,t,e))}}function Nta(r){var n=$H(_ra(7)),t=mta(r),e=f9e(YH(ESt,n));return function(r,n,a){return _We(e,t,r,n,a)}}function Tta(r){var n=Nta(r),t=Dta();return function(r,e,a){return _We(t,n,r,e,a)}}function Fta(r,n,t,e){return q9e(0,e,r,DSt,ISt,function(r,e,a){var u=b9e(r,hSt),f=u[2],i=u[1],c=l9e(r,xSt),v=c[2],o=c[1],A=Dra(0,7),s=jta(r);function b(r,n,t){return GL(f,r,n,_We(s,A,r,n,t))}var l=IWe(0),B=qta(r),j=PL(t,r),k=Tta(r),p=mra(r,ySt,function(r,n,t){return _We(a,k,r,n,t)},a),m=Tta(r);function d(r,n,t){return l(b,f,r,n,t)}var _=mra(r,wSt,function(r,n,t){return _We(e,m,r,n,t)},e),h=Nta(r),x=Eta(),y=function(r,n,t,e){var a=$H(_ra(7)),u=wra(r,7,n,t,e),f=f9e(YH(TSt,a));return function(r,n,t){return _We(f,u,r,n,t)}}(r,gSt,function(r,n,t){return _We(v,x,r,n,t)},function(r,n,t){return _We(v,h,r,n,t)}),w=PL(n,r),g=Dta(),q=Dta(),I=dra(r,qSt,function(r,n,t){return GL(e,r,n,q(r,n,GL(a,r,n,g(r,n,GL(w,r,n,GL(o,r,n,_We(v,y,r,n,t)))))))},function(r,n,t){return GL(e,r,n,_(r,n,GL(a,r,n,p(r,n,GL(j,r,n,GL(i,r,n,GL(f,r,n,_We(B,d,r,n,t))))))))});return function(r,n,t){return GL(e,r,n,_We(a,I,r,n,t))}})}function Mta(r){return Fta(TJ,Bna,dta,r)}function Pta(r,n){var t=i9e($H(32-_ra(7)|0)),e=PL(r,n);return function(r,n,a){return _We(e,t,r,n,a)}}function Uta(r){function n(r,n,t){return hWe(vXt,0,n,t)}var t=f9e($H(32-_ra(7)|0));return function(r,e,a){return _We(t,n,r,e,a)}}function Gta(r){return Fta(FJ,Uta,_ta,r)}function $ta(r){return q9e(0,r,_St,dSt,mSt,function(r,n,t){var e=b9e(r,iSt),a=e[2],u=e[1],f=l9e(r,cSt),i=f[2],c=f[1],v=Dra(0,7),o=jta(r);function A(r,n,t){return GL(a,r,n,_We(o,v,r,n,t))}var s=IWe(0),b=qta(r),l=yta(r),B=Tta(r),j=mra(r,vSt,function(r,n,e){return _We(t,B,r,n,e)},t),k=Tta(r);function p(r,n,t){return s(A,a,r,n,t)}var m=mra(r,oSt,function(r,t,e){return _We(n,k,r,t,e)},n),d=l9e(r,"a64"),_=d[2],h=d[1],x=l9e(r,"b64"),y=x[2],w=x[1],g=Dra(0,7),q=jta(r);function I(r,n,t){return GL(a,r,n,_We(q,g,r,n,t))}var D=IWe(0),E=qta(r),N=yta(r),T=mta(r);function F(r,n,t){return D(I,a,r,n,t)}var M=mta(r),P=pta(r),U=gra(0,7),G=wra(r,7,ASt,function(r,n,t){return _We(i,U,r,n,t)},function(r,n,t){return _We(i,P,r,n,t)}),$=pna(r);function K(r,n,t){return GL(_,r,n,M(r,n,GL(y,r,n,T(r,n,N(r,n,GL(u,r,n,GL(a,r,n,_We(E,F,r,n,t))))))))}function O(r,n,t){return GL(_,r,n,GL(y,r,n,$(r,n,GL(c,r,n,_We(i,G,r,n,t)))))}var R=IWe(0),Q=z8e(bSt),C=z8e(kSt),H=f9e($H(32-_ra(7)|0)),V=Dta(),L=f9e($H(32-_ra(7)|0));function z(r,n,t){return R(O,K,r,n,t)}var S=Dta(),Z=dra(r,pSt,function(r,e,a){return GL(n,r,e,S(r,e,L(r,e,GL(h,r,e,GL(t,r,e,V(r,e,H(r,e,GL(w,r,e,C(r,e,GL(_,r,e,hWe(jSt,0,e,hWe(BSt,0,e,GL(y,r,e,hWe(lSt,0,e,Q(r,e,hWe(sSt,0,e,GL(z,r,e,a)))))))))))))))))},function(r,e,f){return GL(n,r,e,m(r,e,GL(t,r,e,j(r,e,l(r,e,GL(u,r,e,GL(a,r,e,_We(b,p,r,e,f))))))))});return function(r,e,a){return GL(n,r,e,_We(t,Z,r,e,a))}})}function Kta(r){return q9e(0,r,fSt,uSt,aSt,function(r,n,t){var e=wta(r),a=l9e(r,"remember"),u=a[2],f=a[1],i=b9e(r,Zzt),c=i[2],v=i[1],o=wta(r),A=I8e(r)(jLt,BLt),s=W8e(J8e,32-_ra(7)|0),b=n9e(r8e(7));function l(r,e,a){return GL(n,r,e,s(r,e,A(r,e,_We(t,o,r,e,a))))}function B(r,n,t){return _We(c,b,r,n,t)}var j=IWe(0),k=t9e(7,42);function p(r,n,t){return j(B,l,r,n,t)}var m=Ita(),d=mra(r,eSt,function(r,e,a){return GL(n,r,e,m(r,e,hWe(tSt,0,e,GL(t,r,e,hWe(nSt,0,e,hWe(rSt,0,e,GL(f,r,e,GL(u,r,e,hWe(Yzt,0,e,GL(v,r,e,GL(c,r,e,hWe(Jzt,0,e,GL(u,r,e,hWe(Xzt,0,e,GL(t,r,e,k(r,e,hWe(Wzt,0,e,GL(p,r,e,a))))))))))))))))))},function(r,a,u){return GL(n,r,a,_We(t,e,r,a,u))});return function(r,t,e){return _We(n,d,r,t,e)}})}function Ota(r){return q9e(0,r,Szt,zzt,Lzt,function(r,n,t){var e=b9e(r,Qzt),a=e[2],u=e[1],f=Dra(0,7),i=jta(r);function c(r,n,t){return GL(a,r,n,_We(i,f,r,n,t))}var v=IWe(0),o=qta(r);function A(r,n,t){return v(c,a,r,n,t)}var s=I8e(r)(uVt,aVt),b=n9e(r8e(7)),l=t9e(7,_ra(7)),B=W8e(7,-1<<32-_ra(7)),j=Ita(),k=mra(r,Vzt,function(r,e,a){return GL(n,r,e,j(r,e,GL(t,r,e,hWe(Hzt,0,e,B(r,e,GL(t,r,e,l(r,e,hWe(Czt,0,e,b(r,e,a)))))))))},function(r,e,f){return GL(n,r,e,GL(t,r,e,s(r,e,GL(u,r,e,GL(a,r,e,_We(o,A,r,e,f))))))});return function(r,t,e){return _We(n,k,r,t,e)}})}function Rta(r,n){if(Txe(n)&&xra(7,Gxe(n)))return yra(7,Gxe(n));var t=0<=n[1]?0:1,e=mxe(n),a=Oxe(2,28);var u=function r(n){if(0===n[1])return 0;var t=Dxe(n,a),e=t[2],u=r(t[1]);return rY([0,Pxe(e),0],u)}(e),f=LY(u);return zra(r,6,[0,[0,f],[0,[0,f],[0,[0,t],[0,UVt,[0,n8e(u),0]]]]])}function Qta(r){return q9e(0,r,Izt,qzt,gzt,function(r,n,t){var e=I8e(r)(eVt,tVt),a=Tta(r),u=mra(r,hzt,function(r,n,e){return _We(t,a,r,n,e)},t),f=Tta(r),i=mra(r,xzt,function(r,t,e){return _We(n,f,r,t,e)},n),c=dra(r,yzt,kra(0),function(r,a,f){return GL(n,r,a,i(r,a,GL(t,r,a,_We(u,e,r,a,f))))}),v=kra(1);function o(r,e,a){return GL(n,r,e,_We(t,c,r,e,a))}var A=IWe(0);function s(r,n,t){return A(v,o,r,n,t)}return function(r,e,a){return GL(n,r,e,GL(t,r,e,hWe(wzt,0,e,GL(s,r,e,a))))}})}function Cta(r,n){function t(r){switch(n){case 0:var t=2;break;case 1:t=6;break;case 2:t=8;break;default:t=4}return function(r,n){var t=[18,[1,n]];return function(r,n,e){return hWe(t,0,n,e)}}(0,t)}switch(n){case 0:var e=LSt;break;case 1:e=zSt;break;case 2:e=SSt;break;default:e=ZSt}return q9e(0,r,e,Fzt,Tzt,function(r,e,a){var u=function(r){switch(n){case 0:return I8e(r)(zHt,LHt);case 1:return I8e(r)(ZHt,SHt);case 2:return I8e(r)(XHt,WHt);default:return I8e(r)(YHt,JHt)}}(r),f=Tta(r),i=mra(r,Dzt,function(r,n,t){return _We(a,f,r,n,t)},a),c=Tta(r),v=mra(r,Ezt,function(r,n,t){return _We(e,c,r,n,t)},e),o=t(),A=Dta(),s=Dta(),b=dra(r,Nzt,function(r,n,t){return GL(e,r,n,s(r,n,GL(a,r,n,_We(A,o,r,n,t))))},function(r,n,t){return GL(e,r,n,v(r,n,GL(a,r,n,_We(i,u,r,n,t))))});return function(r,n,t){return GL(e,r,n,_We(a,b,r,n,t))}})}function Hta(r,n,t,e){var a=b9e(e,_zt),u=a[2],f=a[1],i=PL(t,e),c=PL(n,e),v=mra(e,[0,r,0],function(r,n,t){return _We(u,c,r,n,t)},function(r,n,t){return _We(u,i,r,n,t)});return function(r,n,t){return GL(f,r,n,_We(u,v,r,n,t))}}function Vta(r,n){return Hta(0,function(r){r:{if(17<=n){if(32!==n&&64!==n)break r;var t=kra(1);return function(r,n,e){return hWe(2,0,n,t(r,n,e))}}if(!(8!==n&&16>n)){var e=W8e(7,-1<n)){var u=W8e(7,-1<<(n-1|0)+(32-_ra(7)|0)),f=W8e(J8e,1);return function(r,n,t){return GL(a,r,n,GL(e,r,n,GL(e,r,n,f(r,n,hWe(kzt,0,n,u(r,n,hWe(jzt,0,n,t)))))))}}}throw kQ([0,YL,Bzt],1)},function(r){return gta(r,n)},r)}function zta(r,n,t){var e=l9e(r,ezt),a=e[2],u=e[1],f=l9e(r,"eom"),i=f[2],c=f[1];if(t)var v=I8e(r)(vzt,czt),o=function(r,t,e){return _We(n,v,r,t,e)};else{var A=I8e(r)(Azt,ozt);o=function(r,t,e){return _We(n,A,r,t,e)}}function s(r,n,t){return GL(a,r,n,GL(i,r,n,hWe(azt,0,n,o(r,n,t))))}if(t)var b=I8e(r)($Vt,GVt),l=function(r,t,e){return _We(n,b,r,t,e)};else{var B=I8e(r)(OVt,KVt);l=function(r,t,e){return _We(n,B,r,t,e)}}var j=IWe(0),k=a9e(7,fzt),p=c9e(izt),m=Wna(n),d=z8e(rZt);function _(r,n,t){return m(r,n,hWe(YSt,0,n,t))}var h=IWe(1),x=W8e(0,8),y=W8e(X8e,16),w=W8e(7,Ft),g=Wna(n);function q(r,n,t){return h(d,_,r,n,t)}function I(r,n,t){return j(l,s,r,n,t)}return function(r,n,t){return function(r,n,t){return g(r,n,w(r,n,_We(x,y,r,n,GL(q,r,n,t))))}(r,n,GL(u,r,n,GL(a,r,n,p(r,n,k(r,n,GL(c,r,n,GL(i,r,n,hWe(uzt,0,n,GL(I,r,n,t)))))))))}}function Sta(r){var n=b9e(r,RLt),t=n[2],e=n[1],a=I8e(r)(oLt,vLt),u=Dra(0,7),f=Ira(r,7,QLt,function(r,n,e){return _We(t,u,r,n,e)},function(r,n,e){return _We(t,a,r,n,e)});return function(r,n,a){return GL(e,r,n,_We(t,f,r,n,a))}}function Zta(r){var n=l9e(r,KLt),t=n[2],e=n[1],a=mta(r),u=gra(0,7),f=wra(r,7,OLt,function(r,n,e){return _We(t,u,r,n,e)},function(r,n,e){return _We(t,a,r,n,e)});return function(r,n,a){return GL(e,r,n,_We(t,f,r,n,a))}}function Wta(r){var n=b9e(r,ULt),t=n[2],e=n[1],a=pta(r),u=Dra(0,7),f=hra(7),i=N8e(r,$Lt,function(r,n,e){return GL(t,r,n,hWe(GLt,0,n,a(r,n,e)))},function(r,n,e){return _We(t,u,r,n,e)}),c=W8e(X8e,f);function v(r,n,t){return _We(c,i,r,n,t)}return function(r,n,a){return GL(e,r,n,_We(t,v,r,n,a))}}function Xta(r){var n=l9e(r,MLt),t=n[2],e=n[1],a=pta(r),u=gra(0,7),f=$H(hra(7)),i=N8e(r,PLt,function(r,n,e){return _We(t,u,r,n,e)},function(r,n,e){return _We(t,a,r,n,e)}),c=u9e(f);function v(r,n,t){return c(r,n,hWe(pJt,0,n,i(r,n,t)))}return function(r,n,a){return GL(e,r,n,_We(t,v,r,n,a))}}function Jta(r){var n=b9e(r,TLt),t=n[2],e=n[1],a=I8e(r)(pLt,kLt),u=qra(0,0,7),f=mra(r,FLt,function(r,n,e){return _We(t,u,r,n,e)},function(r,n,e){return _We(t,a,r,n,e)});return function(r,n,a){return GL(e,r,n,_We(t,f,r,n,a))}}function Yta(r){var n=b9e(r,ELt),t=n[2],e=n[1],a=jta(r),u=Era(0,0,7),f=mra(r,NLt,function(r,n,e){return _We(t,u,r,n,e)},function(r,n,e){return _We(t,a,r,n,e)});return function(r,n,a){return GL(e,r,n,_We(t,f,r,n,a))}}function rea(r){var n=b9e(r,ILt),t=n[2],e=n[1],a=I8e(r)(yLt,xLt),u=Era(0,0,7),f=mra(r,DLt,function(r,n,e){return _We(t,u,r,n,e)},function(r,n,e){return _We(t,a,r,n,e)});return function(r,n,a){return GL(e,r,n,_We(t,f,r,n,a))}}function nea(r){var n=b9e(r,wLt),t=n[2],e=n[1],a=b9e(r,gLt),u=a[2],f=a[1],i=I8e(r)(hLt,_Lt),c=Era(0,0,7),v=mra(r,qLt,function(r,n,e){return _We(t,c,r,n,e)},function(r,n,e){return GL(t,r,n,_We(u,i,r,n,e))});return function(r,n,a){return GL(f,r,n,GL(e,r,n,_We(t,v,r,n,a)))}}function tea(r){return Fra()+2|0}function eea(r){return Fra()+1|0}var aea=aBe([0,r1]);function uea(r,n){for(var t=n0(function(r,n){return[0,n[2],r]},d0(KC,YY(function(n){var t=n[1];return[0,A8e(r,t),t]},n))),e=t,a=aea[1];e;){var u=e[1];e=e[2],a=aea[4].call(null,u[1],u[2],a)}var f=aea[19].call(null,a),i=K8e(r,[0,n8e(d0(PC,YY(function(n){return A8e(r,n[1])},n))),0]),c=s9e(r,0,"obj"),v=c[2],o=c[1],A=Cra(r),s=xWe(function(r){var n=r[2],t=aea[28].call(null,r[1],a),e=Ora(0,tea()+t|0),u=PL(n,0);return function(r,n,t){return GL(v,r,n,_We(u,e,r,n,t))}},n),b=Ora(0,eea()),l=L8e(i),B=Ora(0,0|Fra()),j=L8e(f),k=Ura(r,tea()+f|0,0);return function(r,n,t){return k(r,n,GL(o,r,n,GL(v,r,n,j(r,n,B(r,n,GL(v,r,n,l(r,n,b(r,n,GL(s,r,n,_We(v,A,r,n,t))))))))))}}function fea(r,n){return q9e(0,r,PL(R3(GHt),n),KHt,$Ht,function(r,t,e){var a=PWe(t),u=b9e(r,PHt),f=u[2],i=u[1],c=W8e(0,4),v=[3,[0,wve,1]],o=W8e(0,4);function A(r,n,e){return GL(f,r,n,o(r,n,GL(i,r,n,GL(t,r,n,c(r,n,a(r,n,hWe(v,0,n,e)))))))}function s(r,n,e){return GL(t,r,n,hWe(4,0,n,e))}var b=eXe[3],l=W8e(0,hC(4,tea()+n|0)),B=W8e(0,eXe[2]+hC(4,n)|0),j=Kra(0,eea());function k(r,n,t){return GL(f,r,n,b(r,n,GL(e,r,n,hWe(UHt,0,n,qWe(DX,s,A,r,n,t)))))}var p=Gra();return function(r,n,e){return GL(t,r,n,p(r,n,a(r,n,GL(t,r,n,j(r,n,B(r,n,GL(i,r,n,GL(t,r,n,l(r,n,a(r,n,EWe(k,r,n,hWe(0,0,n,e))))))))))))}})}function iea(r,n,t){return dde(t,cde([0,t,0],n)[2])}function cea(r,n,t){var e=zme(dde(t,cde([0,t,0],n)[2])),a=YY(function(r){return r[2][1]},d0(function(r,n){return soe(r[1],n[1])},YY(function(n){return[0,A8e(r,n[1]),n]},cde([0,t,0],n)[2]))),u=Foe(t)(a);if(!u)throw kQ([0,YL,NHt],1);var f=u[1],i=e?q9e(1,r,PL(R3(THt),f),MHt,FHt,function(r,n,t){var e=W8e(0,hC(Fra(),4)),a=Gra(),u=eXe[5],i=fea(r,f);return function(r,f,c){return GL(n,r,f,GL(t,r,f,i(r,f,u(r,f,_We(a,e,r,f,c)))))}}):fea(r,f),c=L8e(A8e(r,t));return function(r,n,t){return _We(c,i,r,n,t)}}function vea(r,n){var t=eXe[5],e=fea(r,0),a=L8e(A8e(r,n));return function(r,n,u){return _We(a,e,r,n,t(r,n,u))}}function oea(r,n,t){var e=eXe[5],a=cea(r,n,t);return function(r,n,t){return _We(a,e,r,n,t)}}function Aea(r){return Fra()+1|0}function sea(r){return 0|Fra()}function bea(r){var n=Kra(0,sea()),t=Gra();return function(r,e,a){return _We(t,n,r,e,a)}}function lea(r,n,t){return zra(r,[2,n],[0,[0,HH(t)],[0,[3,t],0]])}function Bea(r,n,t){return L8e(lea(r,n,t))}function jea(r,n){var t=L8e(HH(n)),e=K8e(r,[0,[3,n],0]),a=L8e(eXe[2]+e|0);return function(r,n,e){return _We(a,t,r,n,e)}}function kea(r,n,t){var e=Cra(r),a=I8e(r)(qHt,gHt),u=L8e(Tra([2,n]));return function(r,n,f){return u(r,n,GL(t,r,n,_We(a,e,r,n,f)))}}function pea(r){var n=hC(4,Aea()),t=W8e(0,eXe[2]+n|0),e=Gra();return function(r,n,a){return _We(e,t,r,n,a)}}function mea(r){return g9e(1,r,wHt,yHt,xHt,function(r,n){var t=bea(),e=pea();return function(r,a,u){return GL(n,r,a,e(r,a,_We(n,t,r,a,u)))}})}function dea(r,n,t){var e=wH(TM,Tra([2,t])),a=wH(TM,Tra([2,n]));return g9e(1,r,UL(R3(jHt),a,e),pHt,kHt,function(r,n){var e=b9e(r,BHt),a=e[2],u=e[1],f=X9e(),i=mea(r),c=pea(),v=bea(),o=kea(r,t,function(r,t,e){return _We(n,v,r,t,e)});return function(r,t,e){return o(r,t,GL(u,r,t,GL(a,r,t,c(r,t,GL(n,r,t,dWe(0,0,i(r,t,_We(f,a,r,t,e))))))))}})}function _ea(r,n,t,e,a){var u=b9e(r,bHt),f=u[2],i=u[1],c=b9e(r,lHt),v=c[2],o=c[1],A=PL(e,r),s=PL(a,r),b=pea(),l=kea(r,n,f),B=PL(t,r);return function(r,n,t){return GL(B,r,n,GL(i,r,n,l(r,n,GL(o,r,n,GL(v,r,n,b(r,n,GL(s,r,n,GL(f,r,n,_We(A,v,r,n,t)))))))))}}function hea(r,n){var t=L8e(Qna(8,-1)),e=L8e(Qna(8,1)),a=L8e(Qna(8,0));if(n)switch(n[1]){case 0:var u=GCt;break;case 1:u=$Ct;break;case 2:u=KCt;break;case 3:u=OCt;break;case 4:u=RCt;break;default:u=QCt}else u=CCt;return q9e(0,r,u,VCt,HCt,function(r,u,f){if(n)switch(n[1]){case 1:var i=hea(r,_Ct);return function(r,n,t){return GL(u,r,n,GL(f,r,n,i(r,n,hWe(GJ,0,n,t))))};case 2:var c=hea(r,hCt);return function(r,n,t){return GL(u,r,n,GL(f,r,n,c(r,n,hWe(GJ,0,n,t))))};case 3:var v=hea(r,xCt);return function(r,n,t){return GL(u,r,n,GL(f,r,n,v(r,n,hWe(GJ,0,n,t))))}}var o=PWe(u),A=PWe(f),s=b9e(r,yCt),b=s[2],l=s[1],B=b9e(r,wCt),j=B[2],k=B[1],p=b9e(r,gCt),m=p[1],d=p[2],_=b9e(r,qCt),h=_[2],x=_[1],y=b9e(r,ICt),w=y[2],g=y[1];if(n)switch(n[1]){case 0:var q=kra(1);break;case 4:q=function(r,n,t){return GL(b,r,n,GL(j,r,n,hWe(DCt,0,n,t)))};break;case 5:q=function(r,n,t){return GL(b,r,n,GL(j,r,n,hWe(ECt,0,n,t)))};break;default:throw kQ([0,YL,FCt],1)}else{var I=IWe(0),D=function(r,n,t){return I(e,a,r,n,t)},E=function(r,n,t){return GL(b,r,n,GL(j,r,n,hWe(NCt,0,n,GL(D,r,n,t))))},N=IWe(0),T=function(r,n,e){return N(t,E,r,n,e)};q=function(r,n,t){return GL(b,r,n,GL(j,r,n,hWe(TCt,0,n,GL(T,r,n,t))))}}var F=j9e(r,function(r){if(n)switch(n[1]){case 0:var a=kra(0);break;case 4:a=function(r,n,t){return GL(h,r,n,GL(w,r,n,hWe(sCt,0,n,t)))};break;case 5:a=function(r,n,t){return GL(h,r,n,GL(w,r,n,hWe(bCt,0,n,t)))};break;default:throw kQ([0,YL,BCt],1)}else{var i=IWe(0),c=function(r,n,a){return i(t,e,r,n,a)};a=function(r,n,t){return GL(h,r,n,GL(w,r,n,hWe(lCt,0,n,GL(c,r,n,t))))}}var v=pea();function o(r,n,t){return a(r,n,hWe(4,0,n,t))}var A=pea();return function(n,t,e){return GL(u,n,t,A(n,t,GL(r,n,t,hWe(dCt,0,t,hWe(mCt,0,t,GL(x,n,t,GL(f,n,t,v(n,t,GL(r,n,t,hWe(pCt,0,t,hWe(kCt,0,t,GL(g,n,t,GL(h,n,t,GL(w,n,t,hWe(jCt,0,t,qWe(DX,dWe,o,n,t,e))))))))))))))))}});if(dH(n,MCt))var M=kra(0),P=function(r,n,t){return M(r,n,hWe(4,0,n,t))},U=function(r,n,t){return GL(b,r,n,GL(j,r,n,hWe(PCt,0,n,qWe(DX,dWe,P,r,n,_We(b,m,r,n,t)))))};else{var G=function(r,n,t){return _We(j,m,r,n,t)},$=function(r,n,t){return _We(b,m,r,n,t)};U=function(r,n,t){return GL(b,r,n,GL(j,r,n,hWe(UCt,0,n,qWe(DX,$,G,r,n,t))))}}var K=bea(),O=bea(),R=Gra(),Q=Gra();return function(r,n,t){return GL(u,r,n,Q(r,n,o(r,n,GL(f,r,n,R(r,n,A(r,n,GL(u,r,n,O(r,n,GL(l,r,n,GL(f,r,n,K(r,n,GL(k,r,n,U(r,n,GL(d,r,n,_We(F,q,r,n,t)))))))))))))))}})}function xea(r){var n=b9e(r,ZCt),t=n[2],e=n[1],a=pea(),u=kea(r,0,t);return function(r,n,t){return GL(e,r,n,_We(u,a,r,n,t))}}function yea(r){return I8e(r)(iCt,fCt)}function wea(r){return I8e(r)(eCt,tCt)}function gea(r){return V8e(r),I8e(r)(YQt,JQt)}function qea(r){return V8e(r),I8e(r)(XQt,WQt)}function Iea(r){return V8e(r),I8e(r)(ZQt,SQt)}function Dea(r){return V8e(r),I8e(r)(zQt,LQt)}function Eea(r){return V8e(r),I8e(r)(VQt,HQt)}function Nea(r){return V8e(r),I8e(r)(CQt,QQt)}function Tea(r){return V8e(r),I8e(r)(RQt,OQt)}function Fea(r){return V8e(r),I8e(r)(KQt,$Qt)}function Mea(r){return V8e(r),I8e(r)(GQt,UQt)}function Pea(r){return V8e(r),I8e(r)(PQt,MQt)}function Uea(r){return V8e(r),I8e(r)(FQt,TQt)}function Gea(r){return V8e(r),I8e(r)(NQt,EQt)}function $ea(r){return V8e(r),I8e(r)(DQt,IQt)}function Kea(r){return V8e(r),I8e(r)(qQt,gQt)}function Oea(r){return I8e(r)(wQt,yQt)}function Rea(r){return I8e(r)(_Qt,dQt)}function Qea(r){return I8e(r)(oQt,vQt)}function Cea(r,n){switch(n){case 1:throw kQ([0,YL,CRt],1);case 0:var t=QRt;break;case 2:t=HRt;break;case 3:t=VRt;break;case 4:t=LRt;break;default:t=zRt}return q9e(1,r,t,ZRt,SRt,function(r,t,e){switch(n){case 0:var a=function(r,n,t){return hWe(MRt,0,n,t)};break;case 1:throw kQ([0,YL,PRt],1);case 2:a=function(r,n,t){return hWe(URt,0,n,t)};break;case 3:a=function(r,n,t){return hWe(GRt,0,n,t)};break;case 4:a=function(r,n,t){return hWe($Rt,0,n,t)};break;default:a=function(r,n,t){return hWe(KRt,0,n,t)}}var u=L8e(0),f=I8e(r)(RRt,ORt),i=Gra(),c=Gra();return function(r,n,v){return GL(t,r,n,c(r,n,GL(e,r,n,i(r,n,f(r,n,_We(u,a,r,n,v))))))}})}function Hea(r){return Fra()+1|0}function Vea(r){return 0|Fra()}function Lea(r){var n=Kra(0,Vea()),t=Gra();return function(r,e,a){return _We(t,n,r,e,a)}}function zea(r,n){var t=Kra(0,n+Hea()|0),e=Gra();return function(r,n,a){return _We(e,t,r,n,a)}}function Sea(r){return q9e(1,r,FRt,TRt,NRt,function(r,n,t){var e=Gra(),a=r9e(4),u=W8e(0,Hea());return function(r,f,i){return GL(t,r,f,u(r,f,a(r,f,GL(n,r,f,e(r,f,hWe(ERt,0,f,i))))))}})}function Zea(r,n){var t=Ume(n);if("number"!=typeof t&&5===t[0])return t[1];throw kQ([0,YL,mRt],1)}function Wea(r,n,t){var e=[0,n8e(t),0];return zra(r,[0,n],[0,[0,LY(t)],e])}function Xea(r,n,t){return Vra(r,[0,n],rY([0,L8e(pve(LY(t))),0],t))}function Jea(r,n,t){var e=I8e(r)(pRt,kRt),a=L8e(Tra([0,n]));return function(r,n,u){return a(r,n,_We(t,e,r,n,u))}}function Yea(r,n,t){var e=b9e(r,sRt),a=e[2],u=e[1],f=b9e(r,bRt),i=f[2],c=f[1],v=PWe(n),o=W8e(0,4),A=PL(t,i),s=B9e(0,function(r,n,t){return GL(i,r,n,GL(a,r,n,hWe(lRt,0,n,t)))},function(r,n,t){return GL(A,r,n,GL(i,r,n,_We(o,c,r,n,t)))}),b=r9e(4),l=Kra(0,Vea()),B=r9e(4),j=L8e(Hea()),k=Gra();return function(r,t,e){return GL(n,r,t,k(r,t,v(r,t,j(r,t,B(r,t,GL(n,r,t,hWe(jRt,0,t,GL(c,r,t,GL(n,r,t,l(r,t,b(r,t,GL(i,r,t,hWe(BRt,0,t,_We(u,s,r,t,e))))))))))))))}}function raa(r,n){var t=b9e(r,iRt),e=t[2],a=t[1],u=b9e(r,cRt),f=u[2],i=u[1],c=b9e(r,vRt),v=c[2],o=c[1],A=Cra(r),s=Yea(r,f,function(n){var t=W8e(0,1),a=eXe[6],u=Ana(r,1,1),f=Wta(r),i=Gra();return function(r,c,A){return GL(n,r,c,GL(e,r,c,i(r,c,GL(v,r,c,f(r,c,GL(e,r,c,u(r,c,a(r,c,GL(v,r,c,_We(t,o,r,c,A))))))))))}}),b=L8e(0),l=Jea(r,n,f),B=rea(r);return function(r,n,t){return GL(a,r,n,B(r,n,GL(i,r,n,l(r,n,GL(i,r,n,b(r,n,GL(o,r,n,s(r,n,_We(f,A,r,n,t)))))))))}}function naa(r,n){if(1===n)var t=aRt;else{if(n)throw kQ([0,YL,tRt],1);t=eRt}return g9e(0,r,t,fRt,uRt,function(r,t){var e=b9e(r,rRt),a=e[2],u=e[1],f=b9e(r,nRt),i=f[2],c=f[1],v=Cra(r),o=j9e(r,function(n){var e=eXe[6],a=Hna(0,3),u=Nna(3),f=pea(),c=Sea(r);return function(r,v,o){return GL(i,r,v,GL(n,r,v,c(r,v,GL(t,r,v,f(r,v,GL(n,r,v,hWe(YOt,0,v,hWe(JOt,0,v,u(r,v,_We(a,e,r,v,o))))))))))}}),A=Jea(r,n,a),s=bea();return function(r,n,e){return GL(t,r,n,s(r,n,GL(u,r,n,A(r,n,GL(c,r,n,GL(a,r,n,o(r,n,_We(i,v,r,n,e))))))))}})}function taa(r){return Fce[1]?yk:0}function eaa(r){return L8e(taa())}function aaa(r,n){var t=Kra(0,Hea()+n|0),e=Gra();return function(r,n,a){return e(r,n,_We(dWe,t,r,n,a))}}function uaa(r,n){if(0===n)return eaa();for(var t=0,e=n,a=PL(R3(COt),n);0!==e;)t=[0,[0,PL(R3(QOt),e-1|0),0],t],e=e-1|0;return y9e(1,r,a,t,HOt,function(r,t){for(var e=0,a=n;;){if(0===a)return Xea(r,2,e);e=[0,ZY(t,a-1|0),e],a=a-1|0}})}function faa(r){switch(r){case 0:return 0;case 1:return 3;case 2:return 4;case 3:return 5;case 4:return 6;case 5:return 7;case 6:return 8;case 7:return 9;case 8:return 10;default:return 11}}function iaa(r){return Y9e()}function caa(r){var n=eXe[3],t=L8e(iaa());return function(r,e,a){return _We(t,n,r,e,a)}}function vaa(r,n){var t=eXe[4],e=L8e(faa(n)),a=L8e(iaa());return function(r,n,u){return a(r,n,_We(e,t,r,n,u))}}function oaa(r,n){return w9e(0,r,Nl+wH(TM,faa(n)),0,function(r){var t=vaa(0,n);switch(n){case 0:var e=0;break;case 1:e=_Ot;break;case 2:e=hOt;break;case 3:e=xOt;break;case 4:e=yOt;break;case 5:e=wOt;break;case 6:e=gOt;break;case 7:e=qOt;break;case 8:e=IOt;break;default:e=DOt}var a=function t(e){if(e){var a=e[1],u=[3,[0,wve,1]],f=t(e[2]),i=e9e(faa(a)),c=function(r,n,t){return hWe(u,0,n,t)},v=caa();return function(r,n,t){return v(r,n,i(r,n,qWe(DX,c,dWe,r,n,GL(f,r,n,t))))}}switch(n){case 0:var o=EOt;break;case 1:o=NOt;break;case 2:o=TOt;break;case 3:o=FOt;break;case 4:o=MOt;break;case 5:o=POt;break;case 6:o=UOt;break;case 7:o=GOt;break;case 8:o=$Ot;break;default:o=KOt}return F8e(r,mO+o)}(e);return function(r,n,e){return DWe(EX,a,r,n,t(r,n,e))}})}function Aaa(r,n){var t=e9e(faa(n)),e=caa();return function(r,n,a){return _We(e,t,r,n,a)}}function saa(r){var n=[11,[0,wve,m8e(r,pOt)]];return function(r,t,e){return hWe(n,0,t,e)}}function baa(r){var n=[12,[0,wve,m8e(r,kOt)]];return function(r,t,e){return hWe(n,0,t,e)}}function laa(r){var n=[12,[0,wve,m8e(r,BOt)]];return function(r,t,e){return hWe(n,0,t,e)}}function Baa(r){return qoe(r,1)}function jaa(r,n){return I8e(r)(MGt,n)}function kaa(r,n){return 1>>0?F8e(n,PL(R3(pGt),r)):jaa(n,r)}function paa(r){var n=[6,[0,wve,w8e(r,kGt)]];return function(r,t,e){return hWe(n,0,t,e)}}function maa(r){var n=r[1];if(!n){return function(r,n,t){return hWe(0,0,n,t)}}if(3<=n){var t=paa(r);return function(r,n,e){return t(r,n,hWe(0,0,n,e))}}var e=jaa(r,bGt);return function(r,n,t){return e(r,n,hWe(0,0,n,t))}}function daa(r){return 1>>0?F8e(r,IUt):w9e(1,r,EUt,DUt,function(r){return _ea(r,3,function(r){return jaa(r,gUt)},function(r){return jaa(r,qUt)},function(r){return L8e(0)})})}function _aa(r){return 1>>0?F8e(r,HPt):_ea(r,0,function(r){return jaa(r,QPt)},function(r){return jaa(r,CPt)},function(r){return L8e(0)})}function haa(r){return q9e(1,r,yPt,xPt,0,function(r,n,t){var e=jaa(r,_Pt),a=jaa(r,hPt);return function(r,u,f){return GL(n,r,u,GL(t,r,u,_We(a,e,r,u,f)))}})}function xaa(r,n){var t=q9e(1,r,dPt,mPt,pPt,function(r,n,t){return Xea(r,3,[0,n,[0,t,0]])}),e=Bea(r,1,n);return function(r,n,a){return dWe(0,0,_We(e,t,r,n,a))}}function yaa(r){var n=b9e(r,APt),t=n[2],e=n[1],a=b9e(r,sPt),u=a[2],f=a[1],i=L8e(0),c=ira(r,bPt,function(n){var e=ira(r,oPt,function(e){var a=e9e(0),f=I8e(r)(hYt,_Yt),i=jaa(r,cPt),c=L8e(0),v=jaa(r,vPt),o=L8e(0);return function(r,A,s){return GL(e,r,A,o(r,A,GL(u,r,A,v(r,A,GL(n,r,A,c(r,A,GL(t,r,A,i(r,A,GL(n,r,A,GL(e,r,A,GL(t,r,A,_We(f,a,r,A,s))))))))))))}});return function(r,n,t){return _We(u,e,r,n,t)}});function v(r,n,e){return _We(t,c,r,n,e)}var o=IWe(0),A=jaa(r,BPt);function s(r,n,t){return o(v,i,r,n,t)}var b=jaa(r,jPt);return function(r,n,a){return b(r,n,GL(e,r,n,A(r,n,GL(f,r,n,GL(t,r,n,GL(u,r,n,hWe(lPt,0,n,GL(s,r,n,a))))))))}}function waa(r){return g9e(1,r,UMt,PMt,MMt,function(r,n){var t=b9e(r,DMt),e=t[2],a=t[1],u=Fta(TJ,Bna,dta,r),f=Kta(r),i=L8e(64),c=Xta(r);function v(r,t,a){return GL(e,r,t,GL(n,r,t,hWe(EMt,0,t,c(r,t,i(r,t,_We(f,u,r,t,a))))))}var o=IWe(0);function A(r,n,t){return o(e,v,r,n,t)}var s=Xta(r);return function(r,t,e){return GL(n,r,t,hWe(FMt,0,t,s(r,t,GL(a,r,t,GL(n,r,t,hWe(TMt,0,t,hWe(NMt,0,t,GL(A,r,t,e))))))))}})}function gaa(r){var n=b9e(r,qMt),t=n[2],e=n[1],a=Jta(r),u=Jta(r),f=Ota(r),i=L8e(64),c=P8e(r,IMt),v=Cta(r,0),o=L8e(Rta(r,Oxe(2,hh)));return function(r,n,A){return GL(e,r,n,GL(t,r,n,o(r,n,v(r,n,c(r,n,GL(t,r,n,i(r,n,f(r,n,u(r,n,_We(t,a,r,n,A))))))))))}}function qaa(r,n){var t=M8e(r,"stable64 overflow"),e=u9e(iMt);return function(r,a,u){return GL(n,r,a,e(r,a,hWe(fMt,0,a,t(r,a,GL(n,r,a,hWe(uMt,0,a,u))))))}}function Iaa(r){return V8e(r),1>>0?w9e(0,r,ZFt,SFt,function(r){return function(r,n,t){return hWe(9,0,n,hWe(zFt,0,n,t))}}):jaa(r,WFt)}function Daa(r){return V8e(r),1>>0?I9e(0,r,VFt,HFt,0,function(r,n,t,e){var a=qaa(r,e),u=qaa(r,t),f=qaa(r,n);return function(r,n,t){return f(r,n,u(r,n,a(r,n,hWe(11,0,n,t))))}}):jaa(r,LFt)}function Eaa(r){return V8e(r),1>>0?I9e(0,r,QFt,RFt,0,function(r,n,t,e){var a=qaa(r,e),u=qaa(r,t),f=qaa(r,n);return function(r,n,t){return f(r,n,u(r,n,a(r,n,hWe(12,0,n,t))))}}):jaa(r,CFt)}function Naa(r){var n=[11,[0,wve,m8e(r,GFt)]];return function(r,t,e){return hWe(n,0,t,e)}}function Taa(r){var n=[12,[0,wve,m8e(r,UFt)]];return function(r,t,e){return hWe(n,0,t,e)}}function Faa(r){var n=[11,[0,wve,m8e(r,PFt)]];return function(r,t,e){return hWe(n,0,t,e)}}function Maa(r){var n=[12,[0,wve,m8e(r,MFt)]];return function(r,t,e){return hWe(n,0,t,e)}}function Paa(r){var n=M8e(r,NFt),t=z8e(lC(16,0,0)),e=Naa(r);return function(r,a,u){return e(r,a,t(r,a,hWe(FFt,0,a,hWe(TFt,0,a,n(r,a,u)))))}}function Uaa(r){return q9e(0,r,EFt,DFt,0,function(r,n,t){var e=M8e(r,mFt),a=z8e(lC(16,0,0)),u=Naa(r),f=M8e(r,yFt),i=z8e(iz);function c(r,c,v){return i(r,c,GL(t,r,c,hWe(qFt,0,c,hWe(gFt,0,c,GL(n,r,c,hWe(wFt,0,c,f(r,c,GL(n,r,c,GL(t,r,c,hWe(xFt,0,c,hWe(hFt,0,c,u(r,c,a(r,c,hWe(_Ft,0,c,hWe(dFt,0,c,e(r,c,v))))))))))))))))}var v=Paa(r);function o(r,t,e){return _We(n,v,r,t,e)}return function(r,n,e){return GL(t,r,n,Z8e(r,n,hWe(IFt,0,n,qWe(DX,o,c,r,n,e))))}})}function Gaa(r,n,t,e){if(!n)return dWe;if(dH(e,1))var a=Paa(r);else{var u=Uaa(r),f=L8e(e);a=function(r,n,t){return _We(f,u,r,n,t)}}return function(r,n,e){return _We(t,a,r,n,e)}}function $aa(r,n,t,e,a,u){var f=[0,e,0],i=n?kFt:"";return g9e(1,r,UL(R3(pFt),i,t),jFt,f,function(r,t){var e=ura(r,BFt,AH(a+3|0,4),function(n){var e=Daa(r),f=z8e($H(a));return function(r,a,i){return GL(n,r,a,hWe(lFt,0,a,GL(t,r,a,f(r,a,e(r,a,_We(n,u,r,a,i))))))}}),f=Gaa(r,n,t,a);return function(r,n,t){return _We(f,e,r,n,t)}})}function Kaa(r,n,t,e,a,u){var f=[0,AFt,[0,oFt,e]],i=n?sFt:"";return q9e(1,r,UL(R3(bFt),i,t),f,0,function(r,t,e){var f=ura(r,vFt,AH(a+3|0,4),function(n){var f=Eaa(r),i=z8e($H(a));return function(r,a,c){return GL(n,r,a,GL(e,r,a,GL(u,r,a,GL(t,r,a,GL(n,r,a,hWe(cFt,0,a,_We(i,f,r,a,c)))))))}}),i=Gaa(r,n,t,a);return function(r,n,t){return _We(i,f,r,n,t)}})}function Oaa(r){return Kaa(r,0,iFt,0,4,eXe[4])}function Raa(r){return Kaa(r,0,fFt,1,8,function(r,n,t){return hWe(uFt,0,n,t)})}function Qaa(r,n,t,e,a,u,f){return g9e(0,r,PL(R3(aFt),n),eFt,[0,t,0],function(r,n){return ura(r,tFt,AH(e+3|0,4),function(i){var c=s9e(r,t,YTt),v=c[2],o=c[1],A=Eaa(r),s=z8e($H(e)),b=Daa(r),l=z8e($H(e));return function(r,t,e){return GL(i,r,t,hWe(nFt,0,t,GL(n,r,t,l(r,t,b(r,t,GL(i,r,t,GL(u,r,t,GL(o,r,t,GL(i,r,t,GL(a,r,t,GL(f,r,t,GL(n,r,t,GL(i,r,t,hWe(rFt,0,t,s(r,t,_We(A,v,r,t,e))))))))))))))))}})})}function Caa(r){var n=eXe[4],t=eXe[3];return Qaa(r,JTt,0,4,L8e(0),t,n)}function Haa(r){return Qaa(r,XTt,1,8,z8e(WTt),function(r,n,t){return hWe(ZTt,0,n,t)},function(r,n,t){return hWe(STt,0,n,t)})}function Vaa(r){return g9e(0,r,zTt,LTt,VTt,function(r,n){var t=l9e(r,OTt),e=t[2],a=t[1],u=l9e(r,RTt),f=u[2],i=u[1],c=function(r){return V8e(r),1>>0?g9e(0,r,eMt,tMt,nMt,function(r,n){var t=b9e(r,XFt),e=t[2],a=t[1],u=z8e(YFt);function f(r,n,t){return GL(e,r,n,hWe(JFt,0,n,t))}var i=IWe(1),c=L8e(-1);function v(r,n,t){return i(u,f,r,n,t)}var o=qaa(r,n);return function(r,n,t){return o(r,n,hWe(10,0,n,GL(a,r,n,GL(e,r,n,c(r,n,hWe(rMt,0,n,GL(v,r,n,t)))))))}}):jaa(r,aMt)}(r);function v(r,n,t){return _We(f,c,r,n,t)}var o=IWe(1),A=z8e(CTt);function s(r,n,t){return o(v,e,r,n,t)}var b=Iaa(r);return function(r,t,u){return b(r,t,GL(a,r,t,GL(n,r,t,GL(e,r,t,hWe(HTt,0,t,GL(i,r,t,GL(f,r,t,A(r,t,hWe(QTt,0,t,GL(s,r,t,u))))))))))}})}function Laa(r){return q9e(0,r,KTt,$Tt,0,function(r,n,t){var e=l9e(r,"sum"),a=e[2],u=e[1],f=M8e(r,ETt),i=z8e(TTt),c=Vaa(r),v=a9e(0,FTt),o=z8e(lC(16,0,0)),A=M8e(r,PTt);return function(r,e,s){return GL(n,r,e,GL(t,r,e,hWe(GTt,0,e,GL(u,r,e,GL(a,r,e,GL(n,r,e,hWe(UTt,0,e,A(r,e,GL(a,r,e,o(r,e,hWe(MTt,0,e,v(r,e,c(r,e,i(r,e,hWe(NTt,0,e,f(r,e,s))))))))))))))))}})}function zaa(r){return g9e(0,r,DTt,ITt,qTt,function(r,n){var t=l9e(r,pTt),e=t[2],a=t[1],u=l9e(r,mTt),f=u[2],i=u[1],c=l9e(r,dTt),v=c[2],o=c[1],A=Taa(r);function s(r,n,t){return GL(f,r,n,_We(A,e,r,n,t))}var b=IWe(1),l=z8e(hTt);function B(r,n,t){return b(v,s,r,n,t)}var j=Vaa(r),k=z8e(yTt);function p(r,t,a){return GL(e,r,t,GL(n,r,t,hWe(xTt,0,t,GL(i,r,t,GL(f,r,t,j(r,t,GL(o,r,t,GL(v,r,t,l(r,t,hWe(_Tt,0,t,GL(B,r,t,a)))))))))))}function m(r,n,t){return k(r,n,hWe(4,0,n,t))}var d=IWe(1),_=z8e(lC(ni,0,0));function h(r,n,t){return d(m,p,r,n,t)}var x=Naa(r);return function(r,t,u){return x(r,t,GL(a,r,t,GL(e,r,t,GL(n,r,t,hWe(gTt,0,t,_(r,t,hWe(wTt,0,t,GL(h,r,t,u))))))))}})}function Saa(r,n,t,e,a){var u=PL(a,r),f=PL(e,r),i=I8e(r)(HNt,CNt),c=N8e(r,t,function(r,t,e){return i(r,t,_We(n,f,r,t,e))},function(r,t,e){return _We(n,u,r,t,e)}),v=L8e(2),o=Faa(r);return function(r,n,t){return o(r,n,v(r,n,hWe(QNt,0,n,c(r,n,t))))}}function Zaa(r){var n=PWe(r);return function(t,e,a){return GL(r,t,e,hWe(rEt,0,e,n(t,e,a)))}}function Waa(r,n,t){var e=b9e(r,YDt),a=e[2],u=e[1],f=Zaa(n),i=lta(r,a,n);return function(r,n,e){return GL(t,r,n,GL(u,r,n,_We(i,f,r,n,e)))}}function Xaa(r){return Hta(0,function(n){var t=b9e(r,HLt),e=t[1],a=bta(Ata,t[2]),u=Era(0,0,7);return function(r,n,t){return u(r,n,_We(e,a,r,n,t))}},function(r){return I8e(r)(fLt,uLt)},r)}function Jaa(r){return Hta(0,function(n){var t=b9e(r,CLt),e=t[1],a=bta(sta,t[2]),u=Era(0,0,7);return function(r,n,t){return u(r,n,_We(e,a,r,n,t))}},function(r){return I8e(r)(aLt,eLt)},r)}function Yaa(r){function n(r){var n=[11,[0,wve,m8e(r,CDt)]];return function(r,t,e){return hWe(n,0,t,e)}}function t(r){var n=[11,[0,wve,m8e(r,qDt)]];return function(r,t,e){return hWe(n,0,t,e)}}function e(r){var n=[11,[0,wve,m8e(r,BDt)]];return function(r,t,e){return hWe(n,0,t,e)}}function a(r){var n=[12,[0,wve,m8e(r,lDt)]];return function(r,t,e){return hWe(n,0,t,e)}}function u(r){var n=[11,[0,wve,m8e(r,bDt)]];return function(r,t,e){return hWe(n,0,t,e)}}function f(r){var n=[11,[0,wve,m8e(r,ADt)]];return function(r,t,e){return hWe(n,0,t,e)}}function i(r){var n=[11,[0,wve,m8e(r,vDt)]];return function(r,t,e){return hWe(n,0,t,e)}}var c=[0,,,,,,function(r){return k8e(r,IDt,1,0),k8e(r,DDt,1,0),k8e(r,EDt,1,0),k8e(r,NDt,1,0),k8e(r,TDt,1,0),k8e(r,FDt,1,0),k8e(r,MDt,1,1),k8e(r,PDt,1,1),k8e(r,UDt,1,1024),p8e(r,$Dt,1,GDt),k8e(r,KDt,1,16),k8e(r,ODt,1,1024)},t,function(r){var n=[12,[0,wve,m8e(r,gDt)]];return function(r,t,e){return hWe(n,0,t,e)}},function(r){var n=[11,[0,wve,m8e(r,wDt)]];return function(r,t,e){return hWe(n,0,t,e)}},function(r){var n=[12,[0,wve,m8e(r,yDt)]];return function(r,t,e){return hWe(n,0,t,e)}},function(r){m8e(r,xDt)},function(r){var n=[12,[0,wve,m8e(r,hDt)]];return function(r,t,e){return hWe(n,0,t,e)}},function(r){var n=[11,[0,wve,m8e(r,_Dt)]];return function(r,t,e){return hWe(n,0,t,e)}},function(r){var n=[12,[0,wve,m8e(r,dDt)]];return function(r,t,e){return hWe(n,0,t,e)}},function(r){var n=[11,[0,wve,m8e(r,mDt)]];return function(r,t,e){return hWe(n,0,t,e)}},function(r){var n=[12,[0,wve,m8e(r,pDt)]];return function(r,t,e){return hWe(n,0,t,e)}},function(r){var n=[11,[0,wve,m8e(r,kDt)]];return function(r,t,e){return hWe(n,0,t,e)}},function(r){var n=[12,[0,wve,m8e(r,jDt)]];return function(r,t,e){return hWe(n,0,t,e)}},,,u,function(r){var n=[12,[0,wve,m8e(r,sDt)]];return function(r,t,e){return hWe(n,0,t,e)}},f,function(r){var n=[12,[0,wve,m8e(r,oDt)]];return function(r,t,e){return hWe(n,0,t,e)}},i,function(r){var n=[12,[0,wve,m8e(r,cDt)]];return function(r,t,e){return hWe(n,0,t,e)}},function(r){var n=[11,[0,wve,m8e(r,iDt)]];return function(r,t,e){return hWe(n,0,t,e)}},function(r){var n=[12,[0,wve,m8e(r,fDt)]];return function(r,t,e){return hWe(n,0,t,e)}},function(r){var n=[11,[0,wve,m8e(r,uDt)]];return function(r,t,e){return hWe(n,0,t,e)}},function(r){var n=[12,[0,wve,m8e(r,aDt)]];return function(r,t,e){return hWe(n,0,t,e)}},function(r,n,t){var c=l9e(r,SIt),v=c[2],o=c[1],A=a(r),s=z8e(ZIt),b=e(r),l=a(r),B=i(r),j=f(r),k=u(r);function p(r,n,t){return _We(s,A,r,n,t)}var m=bea();function d(r,t,e){return GL(n,r,t,m(r,t,hWe(eDt,0,t,k(r,t,hWe(tDt,0,t,hWe(nDt,0,t,j(r,t,hWe(rDt,0,t,hWe(YIt,0,t,GL(o,r,t,GL(v,r,t,B(r,t,hWe(JIt,0,t,hWe(XIt,0,t,l(r,t,b(r,t,GL(v,r,t,hWe(WIt,0,t,qWe(DX,p,dWe,r,t,e)))))))))))))))))))}return function(r,n,e){return GL(t,r,n,qWe(DX,d,dWe,r,n,e))}},function(r){return x9e(r,zIt,LIt,0,function(r){var n=a(r),u=[8,[0,wve,1]],f=e(r),i=M8e(r,HIt);function c(r,t,e){return f(r,t,hWe(u,0,t,hWe(CIt,0,t,n(r,t,e))))}var v=[8,[0,wve,0]],o=[8,[0,wve,1]],A=e(r);function s(r,n,t){return A(r,n,hWe(o,0,n,hWe(VIt,0,n,i(r,n,hWe(v,0,n,qWe(DX,c,dWe,r,n,t))))))}var b=t(r);return function(r,n,t){return b(r,n,qWe(DX,s,dWe,r,n,t))}})},function(r){var n=[6,[0,wve,w8e(r,QIt)]];return function(r,t,e){return hWe(n,0,t,e)}}];function v(r){return d0(function(r,n){return soe(r[1],n[1])},YY(function(r){return[0,eje(r[1]),r]},r))}var o=R1(ume);function A(r){r:{if("number"!=typeof r){switch(r[0]){case 2:switch(r[1]){case 1:return wIt;case 2:return gIt;case 3:return qIt;case 4:return IIt;case 6:return DIt;case 7:return EIt;case 8:return NIt;case 9:return TIt;case 10:return FIt;case 11:return MIt;case 12:return PIt;case 13:return UIt;case 15:return GIt;case 18:return $It;case 19:return KIt;case 0:break;case 5:case 14:return OIt;default:break r}break;case 7:if(r[1])break r;break;default:break r}return RIt}switch(r){case 0:return xIt;case 1:return yIt}}return 0}var s=-19;function b(r){var n=[11,[0,wve,m8e(r,HDt)]];return function(r,t,e){return hWe(n,0,t,e)}}function l(r){var n=[11,[0,wve,m8e(r,QDt)]];return function(r,t,e){return hWe(n,0,t,e)}}function B(r,n){var t=[0,0],e=[0,o[1]];t0(function r(n){r:{var a=n;n:for(;;){var u=Pme(a);if(0!==A(u))return 0;if(o[3].call(null,u,e[1]))return 0;var f=e[1],i=Goe(t[1]);if(e[1]=o[4].call(null,u,i,f),t[1]=rY(t[1],[0,u,0]),"number"!=typeof u)switch(u[0]){case 2:if(16===u[1])return 0;break;case 3:break r;case 4:break n;case 5:var c=u[1];if("number"==typeof c){a=c;continue}if(10===c[0]){a=[5,c[1]];continue}a=c;continue;case 7:return t0(r,u[1]);case 8:var v=u[5];return t0(r,u[4]),t0(r,v);case 6:case 10:a=u[1];continue}var s=che(u);throw PL($3(tY,bIt),s),kQ([0,YL,lIt],1)}for(var b=u[1];;){if(!b)return 0;var l=b[2];r(b[1][2]),b=l}}for(var B=u[2];;){if(!B)return 0;var j=B[2];r(B[1][2]),B=j}},n);var a=e[1],u=t[1],f=d2(16);function i(r){return w2(f,RY(r&GK))}function c(r){for(var n=r;;){var t=n&oj;if(iV(0,n)&&cV(n,hh))return i(t);i(t|hh),n=n>>>7|0}}function b(r){if(0<=r)return c(r);throw kQ([0,YL,_It],1)}function l(r){for(var n=r;;){var t=n&oj;if(iV(-64,n)&&cV(n,64))return i(t);i(t|hh),n>>=7}}function B(r){var n=Pme(r),t=A(n);if(t)return l(0|-t[1]);var e=Pme(n);return l(o[28].call(null,e,a))}q2(f,hIt),b(LY(u));var j=YY(function(r){var n=f[2];return function(r){r:{n:{t:{e:{var n=r;a:for(;;){if("number"==typeof n){if(1===n)throw kQ([0,YL,BIt],1);break r}switch(n[0]){case 2:var t=n[1];if(16!==t){if(19>t)throw kQ([0,YL,jIt],1);return l(1),B(n)}n=kIt;break;case 3:break n;case 4:break t;case 5:var e=n[1];if("number"!=typeof e&&10===e[0]){var a=e[1];return l(1),B([5,a])}return l(s),B(e);case 6:var u=n[1];return l(-18),B(u);case 7:break e;case 8:break a;case 10:var o=n[1];return l(1),B(o);default:break r}}var A=n[5],j=n[4],k=n[1],p=n[2];if(0===k)throw kQ([0,YL,pIt],1);if(l(-22),b(LY(j)),t0(B,j),b(LY(A)),t0(B,A),!p)return b(1),i(2);if(k)switch(k[1]){case 0:return b(1),i(1);case 1:return b(0);default:return b(1),i(3)}throw kQ([0,YL,mIt],1)}var m=n[1];l(-20),b(LY(m));for(var d=m,_=0;;){if(!d)return;var h=d[2],x=d[1];b(_),B(x),d=h,_=_+1|0}}var y=n[1];l(-21),b(LY(y));for(var w=v(y);;){if(!w)return;var g=w[1],q=w[2],I=g[2];c(g[1]),B(I[2]),w=q}}switch(n[1]){case 1:var D=n[2];l(-23),b(LY(D));for(var E=D;;){if(!E)return;var N=E[1],T=E[2];b(HH(N[1])),q2(f,N[1]),B(N[2]),E=T}break;case 0:case 4:var F=n[2];l(-20),b(LY(F));for(var M=v(F);;){if(!M)return;var P=M[1],U=M[2],G=P[2];c(P[1]),B(G[2]),M=U}}}throw kQ([0,YL,dIt],1)}(r),n},u);b(LY(n)),t0(B,n);var k=YY(function(r){var n=Pme(r),t=A(n);if(t)return 0|-t[1];var e=Pme(n);return o[28].call(null,e,a)},n);return[0,_2(f),j,k]}function j(r,n){var t=Pme(n);return g9e(0,r,iR+The(t)+f_,kwt,jwt,function(r,n){var e=l9e(r,Zyt),a=e[2],u=e[1],f=b9e(r,Wyt),i=f[2],c=f[1];function o(r){return function(n,t,e){return GL(a,n,t,GL(r,n,t,hWe(Syt,0,t,hWe(zyt,0,t,GL(u,n,t,e)))))}}function A(r,n){var t=b9e(r,Lyt),e=t[1],a=o(bta(Ata,t[2]));return function(r,t,u){return GL(n,r,t,_We(e,a,r,t,u))}}function s(r,n){var t=b9e(r,"inc"),e=t[1],a=o(t[2]),u=j(r,n);return function(r,n,t){return u(r,n,GL(i,r,n,hWe(Vyt,0,n,GL(c,r,n,_We(e,a,r,n,t)))))}}var b=b9e(r,Xyt),l=b[2],B=b[1],k=L8e(Tra(Jyt)),p=IWe(0),m=L8e(Tra(12)),d=L8e(Tra(14));function _(r,n,t){return p(k,l,r,n,t)}var h=L8e(Tra(13));function x(t){var e=b9e(r,Kyt),a=e[2],u=e[1],f=PL(t,0),i=function(r,n){var t=W9e(0),e=L8e(Tra(n)),a=Gra();return function(r,n,u){return a(r,n,_We(e,t,r,n,u))}}(0,13),c=o(L8e(9)),v=o(L8e(5)),A=e9e(Tra(13)),s=P8e(r,Oyt),b=e9e(Tra(11)),j=e9e(Tra(Cyt)),k=e9e(Tra(1)),p=e9e(Tra(13));function x(r,t,e){return c(r,t,GL(n,r,t,_We(i,f,r,t,e)))}var y=$ra();return function(r,t,e){return GL(n,r,t,y(r,t,GL(B,r,t,GL(l,r,t,h(r,t,hWe(ewt,0,t,GL(l,r,t,d(r,t,hWe(twt,0,t,hWe(nwt,0,t,GL(l,r,t,m(r,t,hWe(rwt,0,t,hWe(Yyt,0,t,GL(_,r,t,GL(u,r,t,GL(a,r,t,p(r,t,GL(a,r,t,k(r,t,hWe(Hyt,0,t,GL(a,r,t,j(r,t,hWe(Qyt,0,t,GL(a,r,t,b(r,t,hWe(Ryt,0,t,s(r,t,GL(a,r,t,A(r,t,qWe(DX,v,x,r,t,e)))))))))))))))))))))))))))))))}}var y=P8e(r,uwt);r:{n:{var w=u9e(iwt);if("number"!=typeof t){switch(t[0]){case 2:switch(t[1]){case 1:var g=o(Z8e);break r;case 2:var q=Xaa(r);g=o(function(r,t,e){return _We(n,q,r,t,e)});break r;case 7:var I=Jaa(r);g=o(function(r,t,e){return _We(n,I,r,t,e)});break r;case 15:var D=b9e(r,vwt),E=D[2],N=D[1],T=o(E),F=A(r,E),M=Rea(r);g=function(r,t,e){return GL(n,r,t,M(r,t,GL(N,r,t,_We(F,T,r,t,e))))};break r;case 16:var P=b9e(r,owt),U=P[2],G=P[1],$=o(U),K=A(r,U),O=bea();g=function(r,t,e){return GL(n,r,t,O(r,t,GL(G,r,t,_We(K,$,r,t,e))))};break r;case 19:g=x(function(t){var e=s(r,Gz),a=wea(r),u=o(L8e(12));return function(r,t,f){return u(r,t,GL(n,r,t,_We(a,e,r,t,f)))}});break r;case 17:break n;case 18:break;case 0:g=dWe;break r;case 3:case 8:g=o(Z8e);break r;case 4:case 9:g=o(L8e(2));break r;case 6:case 11:case 12:g=o(L8e(8));break r;default:g=o(L8e(4));break r}break;case 3:switch(t[1]){case 1:break;case 0:case 4:g=xWe(function(t){var e=t[2],a=s(r,e[2]),u=vea(r,e[1]);return function(r,t,e){return GL(n,r,t,_We(u,a,r,t,e))}},v(t[2]));break r;default:break n}break;case 4:var R=t[1],Q=F8e(r,Awt);g=a0(function(t,e){var a=t[2],u=a[1],f=t[1],i=s(r,a[2]),c=cna(),v=A(r,L8e(f));function o(r,t,e){return v(r,t,GL(n,r,t,_We(c,i,r,t,e)))}var b=vna(r,u);return function(r,t,a){return GL(n,r,t,b(r,t,qWe(DX,o,e,r,t,a)))}},n0(function(r,n){return[0,r,n[2]]},v(R)),Q);break r;case 5:var C=t[1];if("number"!=typeof C&&10===C[0]){var H=C[1];g=x(function(t){var e=s(r,[5,H]);return function(r,t,a){return _We(n,e,r,t,a)}});break r}var V=j9e(r,function(t){var e=s(r,C),a=eXe[5],u=Sea(r);return function(r,f,i){return GL(n,r,f,GL(t,r,f,u(r,f,_We(a,e,r,f,i))))}}),L=Lea(),z=Lea(),S=A(r,function(r,t,e){return _We(n,z,r,t,e)});g=function(r,t,e){return S(r,t,GL(n,r,t,_We(L,V,r,t,e)))};break r;case 6:var Z=t[1],W=s(r,Z),X=una(r,Z),J=nna(r),Y=function(r,t,e){return GL(n,r,t,_We(X,W,r,t,e))},rr=o(Z8e);g=function(r,t,e){return rr(r,t,GL(n,r,t,J(r,t,qWe(DX,Y,dWe,r,t,e))))};break r;case 7:var nr=t[1];if(nr){g=yWe(function(t,e){var a=s(r,e),u=aaa(0,t);return function(r,t,e){return GL(n,r,t,_We(u,a,r,t,e))}},nr);break r}g=dWe;break r;case 8:var tr=s(r,swt),er=zea(0,1),ar=s(r,bwt),ur=zea(0,0),fr=o(Z8e);g=function(r,t,e){return fr(r,t,GL(n,r,t,ur(r,t,ar(r,t,GL(n,r,t,_We(er,tr,r,t,e))))))};break r;case 10:var ir=t[1];g=x(function(t){var e=s(r,ir),a=Wra();return function(r,t,u){return GL(n,r,t,_We(a,e,r,t,u))}});break r;default:break n}var cr=s(r,Gz),vr=o(Z8e);g=function(r,t,e){return vr(r,t,_We(n,cr,r,t,e))};break r}switch(t){case 1:g=F8e(r,cwt);break r;case 2:break;default:g=dWe;break r}}g=KWe(lwt,jLe(t),dWe)}var or=L8e(0),Ar=z8e(Bwt);return function(r,n,t){return Ar(r,n,GL(u,r,n,or(r,n,GL(c,r,n,GL(g,r,n,GL(a,r,n,w(r,n,hWe(fwt,0,n,y(r,n,GL(a,r,n,hWe(awt,0,n,GL(i,r,n,t))))))))))))}})}function k(n,t){var e=Pme(t);return I9e(0,n,UL(r[13],Gwt,[0,e,0]),Kwt,$wt,function(n,t,a,u){var f=PWe(u);function i(n,t){var e=UL(r[14],n,a),i=k(n,t);return function(r,n,t){return GL(a,r,n,GL(u,r,n,i(r,n,_We(f,e,r,n,t))))}}function c(e){var u=b9e(n,mwt),f=u[2],i=u[1],c=b9e(n,dwt),v=c[2],o=c[1],A=GL(r[3],n,a,v),s=P8e(n,_wt),b=L8e(0),l=UL(r[10],n,a),B=M8e(n,ywt),j=e9e(Tra(11)),k=M8e(n,wwt),p=e9e(Tra(gwt)),m=M8e(n,qwt),d=e9e(Tra(1)),_=GL(r[1],n,a,Z8e),h=PL(e,0),x=L8e(0),y=GL(r[3],n,a,x),w=L8e(0),g=GL(r[3],n,a,w),q=Ora(0,0),I=UL(r[10],n,a),D=Gra(),E=L8e(0),N=GL(r[1],n,a,E),T=e9e(Tra(13));function F(r,n,t){return GL(_,r,n,GL(f,r,n,d(r,n,m(r,n,GL(f,r,n,p(r,n,k(r,n,GL(f,r,n,j(r,n,B(r,n,GL(f,r,n,GL(l,r,n,hWe(xwt,0,n,GL(o,r,n,GL(v,r,n,b(r,n,hWe(hwt,0,n,_We(s,A,r,n,t))))))))))))))))))}function M(r,n,e){return GL(N,r,n,GL(t,r,n,D(r,n,GL(I,r,n,q(r,n,GL(g,r,n,_We(y,h,r,n,e)))))))}var P=$ra();return function(r,n,e){return GL(t,r,n,P(r,n,GL(i,r,n,GL(f,r,n,T(r,n,qWe(DX,M,F,r,n,e))))))}}r:{n:{if("number"!=typeof e){switch(e[0]){case 2:var o=e[1];switch(o){case 1:var A=GL(r[1],n,a,t);break r;case 2:A=GL(r[6],n,a,t);break r;case 7:A=GL(r[7],n,a,t);break r;case 12:var s=zna(),b=GL(r[15],n,a,8);A=function(r,n,e){return GL(b,r,n,GL(t,r,n,s(r,n,hWe(Dwt,0,n,e))))};break r;case 13:var l=Zna(),B=GL(r[15],n,a,4);A=function(r,n,e){return GL(B,r,n,GL(t,r,n,l(r,n,hWe(Ewt,0,n,e))))};break r;case 14:var j=Gna();A=GL(r[3],n,a,function(r,n,e){return _We(t,j,r,n,e)});break r;case 15:A=GL(r[5],n,a,t);break r;case 16:A=GL(r[4],n,a,t);break r;case 19:A=c(function(e){var u=wea(n),f=GL(r[4],n,a,function(r,n,e){return _We(t,u,r,n,e)}),i=I8e(n)(uCt,aCt),c=GL(r[3],n,a,function(r,n,e){return _We(t,i,r,n,e)}),v=yea(n),o=GL(r[15],n,a,8);return function(r,n,e){return GL(o,r,n,GL(t,r,n,v(r,n,hWe(pwt,0,n,_We(c,f,r,n,e)))))}});break r;case 17:break n;case 18:break;case 0:A=dWe;break r;case 6:case 11:var p=lna(n,o),m=GL(r[15],n,a,8);A=function(r,n,e){return GL(m,r,n,GL(t,r,n,p(r,n,hWe(Nwt,0,n,e))))};break r;case 5:case 10:var d=hna(n,o);A=GL(r[3],n,a,function(r,n,e){return _We(t,d,r,n,e)});break r;case 4:case 9:var _=Ena(o),h=GL(r[15],n,a,2);A=function(r,n,e){return GL(h,r,n,GL(t,r,n,_(r,n,hWe(Twt,0,n,e))))};break r;default:var x=Ena(o);A=GL(r[1],n,a,function(r,n,e){return _We(t,x,r,n,e)});break r}break;case 3:switch(e[1]){case 1:break;case 0:case 4:A=xWe(function(r){var e=r[2],a=i(n,e[2]),u=vea(n,e[1]);return function(r,n,e){return GL(t,r,n,_We(u,a,r,n,e))}},v(e[2]));break r;default:break n}break;case 4:var y=e[1],w=F8e(n,Fwt);A=a0(function(e,u){var f=e[2],c=f[1],v=e[1],o=i(n,f[2]),A=cna(),s=L8e(v),b=GL(r[2],n,a,s);function l(r,n,e){return GL(b,r,n,GL(t,r,n,_We(A,o,r,n,e)))}var B=vna(n,c);return function(r,n,e){return GL(t,r,n,B(r,n,qWe(DX,l,u,r,n,e)))}},n0(function(r,n){return[0,r,n[2]]},v(y)),w);break r;case 5:var g=e[1];if("number"!=typeof g&&10===g[0]){var q=g[1];A=c(function(r){var e=i(n,[5,q]);return function(r,n,a){return _We(t,e,r,n,a)}});break r}var I=j9e(n,function(r){var e=i(n,g),a=eXe[5],u=Sea(n);return function(n,f,i){return GL(t,n,f,GL(r,n,f,u(n,f,_We(a,e,n,f,i))))}}),D=Lea(),E=Lea(),N=GL(r[2],n,a,function(r,n,e){return _We(t,E,r,n,e)});A=function(r,n,e){return GL(N,r,n,GL(t,r,n,_We(D,I,r,n,e)))};break r;case 6:var T=e[1],F=L8e(0),M=GL(r[1],n,a,F),P=i(n,T),U=una(n,T),G=GL(r[1],n,a,Z8e),$=function(r,n,e){return GL(G,r,n,GL(t,r,n,_We(U,P,r,n,e)))},K=nna(n);A=function(r,n,e){return GL(t,r,n,K(r,n,qWe(DX,$,M,r,n,e)))};break r;case 7:var O=e[1];if(O){A=yWe(function(r,e){var a=i(n,e),u=aaa(0,r);return function(r,n,e){return GL(t,r,n,_We(u,a,r,n,e))}},O);break r}A=dWe;break r;case 8:var R=i(n,Mwt),Q=zea(0,1),C=i(n,Pwt),H=zea(0,0),V=GL(r[1],n,a,Z8e);A=function(r,n,e){return GL(V,r,n,GL(t,r,n,H(r,n,C(r,n,GL(t,r,n,_We(Q,R,r,n,e))))))};break r;case 10:var L=e[1];A=c(function(r){var e=i(n,L),a=Wra();return function(r,n,u){return GL(t,r,n,_We(a,e,r,n,u))}});break r;default:break n}var z=i(n,Gz),S=GL(r[1],n,a,Z8e);A=function(r,n,e){return GL(S,r,n,_We(t,z,r,n,e))};break r}switch(e){case 1:A=F8e(n,Iwt);break r;case 2:break;default:A=dWe;break r}}A=KWe(Uwt,jLe(e),dWe)}return function(r,n,t){return GL(A,r,n,_We(a,u,r,n,t))}})}function p(r){return zra(r,14,0)}function m(r,t){var e=f8e(r[17],t),a=O9e(0,r,iIt,fIt,uIt,function(r,t,e,a,u,f,i){var c=I8e(r)(eIt,tIt),v=n(r),o=l(r),A=b(r),s=P8e(r,aIt);return function(r,n,b){return GL(t,r,n,s(r,n,GL(t,r,n,GL(e,r,n,A(r,n,GL(a,r,n,o(r,n,GL(u,r,n,v(r,n,GL(f,r,n,_We(i,c,r,n,b)))))))))))}}),u=[13,[0,0,0,$H(hC(e,4)),0]],f=function(r){var n=[11,[0,wve,m8e(r,RDt)]];return function(r,t,e){return hWe(n,0,t,e)}}(r);return function(r,n,t){return f(r,n,hWe(u,0,n,a(r,n,t)))}}var d=[0,0,1,2];function _(r,t,e,a){if(t)return PL(a,L8e(0));var u=fra(r,oIt,function(t){var u=PL(a,t),f=I8e(r)(vIt,cIt),i=n(r);return function(r,n,a){return GL(t,r,n,GL(e,r,n,i(r,n,_We(f,u,r,n,a))))}}),f=I8e(r)(sIt,AIt),i=n(r);return function(r,n,t){return GL(e,r,n,i(r,n,_We(f,u,r,n,t)))}}function h(r,n){var t=Pme(n);return w9e(0,r,wk+The(t)+f_,yqt,function(r){var n=Ara(r,d[1]),e=Ara(r,d[2]),a=Ara(r,d[3]),u=c[7].call(null,r),f=c[9].call(null,r);c[11].call(null,r);var i=c[13].call(null,r),o=c[15].call(null,r),b=c[17].call(null,r),l=b9e(r,eqt),B=l[2];function j(r,n,t){return ora(n,0,3,function(e){var a=h(n,t),u=bra(n,d[3]),i=r?Z8e:sra(n,2),c=bra(n,d[2]),v=L8e(0),o=W8e(0,1),A=sra(n,1);function s(r,n,t){return _We(A,o,r,n,t)}var b=IWe(0),l=Wna(f);function j(r,n,t){return b(s,v,r,n,t)}var k=bra(n,d[1]);return function(r,n,t){return k(r,n,l(r,n,GL(B,r,n,hWe(tqt,0,n,GL(j,r,n,c(r,n,i(r,n,_We(u,a,r,n,t))))))))}})}function k(r,n){return j(0,r,n)}function _(r,n){return j(1,r,n)}function x(n){var t=I8e(r)(nqt,rqt),e=L8e(0);return function(r,a,u){return f(r,a,i(r,a,GL(n,r,a,_We(e,t,r,a,u))))}}var y=l[1],w=b9e(r,aqt),g=w[1];function q(r,n,t){return _We(Z8e,g,r,n,t)}function I(n){var t=e9e(p(r));return function(r,e,a){return GL(n,r,e,t(r,e,qWe(DX,q,dWe,r,e,a)))}}function D(n){var t=L8e(p(r)),e=P8e(r,n);return function(r,n,u){return a(r,n,e(r,n,_We(Z8e,g,r,n,t(r,n,u))))}}function E(r){var t=e9e(0|-PY(A(r)));return function(r,e,a){return _We(n,t,r,e,a)}}function N(r,t){var e=D(KM+che(r)),a=x(n);function u(r,n,t){return _We(a,e,r,n,t)}var f=IWe(0);function i(r,n,e){return f(t,u,r,n,e)}var c=E(r);return function(r,n,t){return _We(c,i,r,n,t)}}function T(n){if(n){var t=n[2];if(t&&!t[2]){var e=t[1],a=n[1],u=b9e(r,Xgt),i=u[2],c=u[1],v=P8e(r,Jgt),o=e9e(1),A=function(r,n,t){return GL(i,r,n,o(r,n,_We(v,e,r,n,t)))},s=IWe(0),b=e9e(0),l=function(r,n,t){return s(a,A,r,n,t)},B=ita(r,f);return function(r,n,t){return B(r,n,GL(c,r,n,GL(i,r,n,_We(b,l,r,n,t))))}}}throw kQ([0,YL,Ygt],1)}function F(n){var t=b9e(r,Zgt),e=t[2],a=t[1],u=b9e(r,Wgt),i=u[2],c=u[1],v=ota(r,f,e),o=pea(),A=kea(r,0,e),s=eta(r,f);return function(r,n,t){return s(r,n,GL(a,r,n,A(r,n,GL(c,r,n,GL(i,r,n,o(r,n,_We(v,i,r,n,t)))))))}}function M(n,t){var e=b9e(r,Vgt),a=e[2],u=e[1],i=b9e(r,Lgt),c=i[2],v=i[1],o=ota(r,f,a),A=pea(),s=kea(r,n,a),b=P8e(r,zgt),l=L8e(29),B=eta(r,f);return function(r,n,t){return B(r,n,GL(u,r,n,GL(a,r,n,l(r,n,hWe(Sgt,0,n,b(r,n,s(r,n,GL(v,r,n,GL(c,r,n,A(r,n,_We(o,c,r,n,t)))))))))))}}function P(n){var t=b9e(r,Rgt),e=t[2],a=t[1],u=b9e(r,Qgt),i=u[2],c=u[1],v=Oea(r),o=I8e(r)(Hgt,Cgt),A=tta(f,e),s=Wna(f),b=eta(r,f);return function(r,n,t){return b(r,n,GL(a,r,n,s(r,n,GL(c,r,n,A(r,n,GL(i,r,n,GL(e,r,n,o(r,n,GL(i,r,n,_We(e,v,r,n,t))))))))))}}function U(n){var t=[0,M(3),0];return T([0,F8e(r,Ogt),t])}function G(n,e,a){var u=D(KM+che(t)),c=x(n),v=nta(r,function(u){var c=D(KM+che(t)),v=x(n),o=PL(a,u);function A(r,n,t){return _We(v,c,r,n,t)}var s=IWe(0),b=e9e(e),l=ata(r,u),B=Yna(u,Xna(f)),j=eXe[3],k=r9e(4);function p(r,n,t){return s(o,A,r,n,t)}var m=Jna(u,function(r,t,e){return i(r,t,GL(n,r,t,k(r,t,hWe(Ugt,0,t,j(r,t,e)))))});return function(r,n,t){return m(r,n,B(r,n,l(r,n,_We(b,p,r,n,t))))}});function o(r,n,t){return _We(c,u,r,n,t)}var A=IWe(0);function s(r,n,t){return A(v,o,r,n,t)}var b=L8e(0);return function(r,t,e){return GL(n,r,t,b(r,t,hWe(Ggt,0,t,GL(s,r,t,e))))}}function $(n){var t=P8e(r,Fgt),e=e9e(0|-PY(A(Mgt))),a=G(n,1,function(n){return ata(r,n)});function u(r,a,u){return GL(n,r,a,e(r,a,_We(t,n,r,a,u)))}var f=IWe(0);function i(r,n,t){return f(a,u,r,n,t)}var c=L8e(0);return function(r,t,e){return GL(n,r,t,c(r,t,hWe(Pgt,0,t,GL(i,r,t,e))))}}function K(t){return G(n,-20,function(n){return ura(r,Tgt,1,function(e){var a=UL(t,n,e),u=eXe[4],f=eta(r,n);return function(r,n,t){return GL(e,r,n,f(r,n,_We(u,a,r,n,t)))}})})}function O(r,t,e){var a=b9e(r,hgt),u=a[2],i=a[1],c=b9e(r,xgt),v=c[2],o=c[1],A=b9e(r,"cur"),s=A[2],b=A[1],l=b9e(r,ygt),B=l[2],j=l[1],k=b9e(r,wgt),p=k[2],m=k[1],d=Jna(f,s),_=P8e(r,Dl+The(t)),h=Bea(r,0,The(t)),x=cta(r,f),y=UL(e,p,function(n){var e=eXe[4],a=Bea(r,0,The(t)),u=W8e(0,4),f=eXe[4];return function(r,t,i){return GL(n,r,t,GL(o,r,t,GL(B,r,t,GL(v,r,t,f(r,t,GL(B,r,t,u(r,t,_We(a,e,r,t,i))))))))}}),w=P8e(r,qgt),g=e9e(0),q=cta(r,f),I=e9e(0),D=cta(r,f),E=Wna(f),N=b9e(r,Igt),T=N[2],F=N[1],M=W8e(0,-4),P=tta(f,function(r,n,t){return _We(T,M,r,n,t)}),U=Wna(f),G=P8e(r,Dgt),K=L8e(0),O=cta(r,f),R=ita(r,f);function Q(r,n,t){return x(r,n,h(r,n,hWe(ggt,0,n,_(r,n,t))))}function C(r,n,t){return q(r,n,g(r,n,_We(w,y,r,n,t)))}function H(r,n,t){return O(r,n,GL(F,r,n,GL(T,r,n,K(r,n,hWe(Egt,0,n,G(r,n,U(r,n,_We(b,P,r,n,t))))))))}var V=$(n);return function(r,n,t){return V(r,n,GL(m,r,n,R(r,n,GL(i,r,n,GL(u,r,n,qWe(DX,H,dWe,r,n,E(r,n,GL(j,r,n,D(r,n,GL(o,r,n,GL(v,r,n,I(r,n,qWe(DX,C,Q,r,n,GL(u,r,n,qWe(DX,d,dWe,r,n,GL(v,r,n,t))))))))))))))))}}var R=w[2],Q=L8e(p(r));r:{var C=function(r,n,t){return Q(r,n,hWe(4,0,n,t))};if("number"==typeof t)switch(t){case 0:var H=Yra(r),V=x(n),L=function(r,n,t){return _We(V,H,r,n,t)};break r;case 1:var z=D(uqt),S=x(n);L=function(r,n,t){return _We(S,z,r,n,t)};break r}else switch(t[0]){case 2:var Z=t[1];switch(Z){case 0:L=N(t,Yra(r));break r;case 1:var W=[0,kra(1),0];L=N(t,T([0,kra(0),W]));break r;case 2:L=N(t,zta(r,f,0));break r;case 7:var X=N(t,zta(r,f,1)),J=zta(r,f,0),Y=IWe(0),rr=function(r,n,t){return Y(J,X,r,n,t)},nr=E(fqt);L=function(r,n,t){return _We(nr,rr,r,n,t)};break r;case 12:var tr=Lna(r),er=function(r,n){var t=tta(n,L8e(8)),e=Wna(n),a=uta(r,n,L8e(8));return function(r,n,u){return a(r,n,e(r,n,hWe(XSt,0,n,t(r,n,u))))}}(r,f);L=N(t,function(r,n,t){return _We(er,tr,r,n,t)});break r;case 13:var ar=Sna(r),ur=function(r,n){var t=tta(n,L8e(4)),e=Wna(n),a=uta(r,n,L8e(4));return function(r,n,u){return a(r,n,e(r,n,hWe(WSt,0,n,t(r,n,u))))}}(r,f);L=N(t,function(r,n,t){return _We(ur,ar,r,n,t)});break r;case 14:var fr=Hna(0,14),ir=Rna(r),cr=cta(r,f);L=N(t,function(r,n,t){return cr(r,n,_We(ir,fr,r,n,t))});break r;case 15:L=N(t,P());break r;case 16:var vr=F();L=G(n,s,function(t){var e=D(Ngt),a=x(n);function u(r,n,t){return _We(a,e,r,n,t)}var f=IWe(0),i=e9e(-5);function c(r,n,t){return f(vr,u,r,n,t)}var v=ata(r,t);return function(r,n,t){return v(r,n,_We(i,c,r,n,t))}});break r;case 18:var or=[0,M(2),0];L=N(t,T([0,F8e(r,iqt),or]));break r;case 19:L=O(r,cqt,function(n,t){var e=b9e(r,pgt),a=e[2],u=e[1],i=I8e(r)(vCt,cCt),c=F(),v=cta(r,f),o=vta(r,f),s=PL(t,a),b=I8e(r)(ACt,oCt),l=Bea(r,0,""),B=L8e(0),j=z8e(mgt),k=P8e(r,dgt),p=e9e(0|-PY(A(_gt)));return function(r,t,e){return GL(n,r,t,p(r,t,k(r,t,j(r,t,B(r,t,l(r,t,b(r,t,GL(u,r,t,GL(s,r,t,GL(a,r,t,o(r,t,v(r,t,_We(c,i,r,t,e)))))))))))))}});break r;case 17:break;case 6:case 11:var Ar=bna(r,Z),sr=vta(r,f);L=N(t,function(r,n,t){return _We(sr,Ar,r,n,t)});break r;case 5:case 10:var br=_na(r,Z),lr=cta(r,f);L=N(t,function(r,n,t){return _We(lr,br,r,n,t)});break r;case 4:case 9:var Br=Hna(0,Z),jr=Nna(Z),kr=function(r,n){var t=tta(n,L8e(2)),e=Wna(n),a=uta(r,n,L8e(2));return function(r,n,u){return a(r,n,e(r,n,hWe(tZt,0,n,t(r,n,u))))}}(r,f);L=N(t,function(r,n,t){return kr(r,n,_We(jr,Br,r,n,t))});break r;default:var pr=Hna(0,Z),mr=Nna(Z),dr=ita(r,f);L=N(t,function(r,n,t){return dr(r,n,_We(mr,pr,r,n,t))});break r}break;case 3:switch(t[1]){case 1:var _r=D(vqt),hr=x(n),xr=G(n,-23,function(r){return U()}),yr=function(r,n,t){return _We(hr,_r,r,n,t)},wr=IWe(0),gr=kra(1),qr=m(r,t),Ir=function(r,n,t){return wr(xr,yr,r,n,t)},Dr=function(r,t,e){return u(r,t,i(r,t,o(r,t,b(r,t,_We(n,qr,r,t,e)))))},Er=IWe(0),Nr=function(r,n,t){return Er(Dr,gr,r,n,t)};L=function(r,n,t){return u(r,n,_We(Nr,Ir,r,n,t))};break r;case 0:case 4:var Tr=t[2];L=K(function(n,t){var e=b9e(r,Bgt),a=e[2],u=e[1],c=I8e(r)(kgt,jgt),o=uea(r,YY(function(e){var c=e[2],v=e[1];return[0,c[1],function(e){var o=Pme(c[2]);n:{t:{if("number"==typeof o){if(0!==o)break t}else switch(o[0]){case 2:if(o[1])break t;break;case 6:break;default:break t}var A=Yra(r);break n}var s=c[1];A=D(PL(R3(sgt),s))}var b=I(a),l=k(r,c[2]),B=ata(r,n);function j(r,n,t){return B(r,n,l(r,n,GL(u,r,n,_We(b,a,r,n,t))))}var p=IWe(0),m=I8e(r)(lgt,bgt);function d(r,n,t){return p(j,A,r,n,t)}var _=L8e(v);return function(r,e,a){return GL(n,r,e,f(r,e,i(r,e,_(r,e,GL(t,r,e,_We(m,d,r,e,a))))))}}]},v(Tr)));return function(r,e,a){return o(r,e,GL(n,r,e,f(r,e,i(r,e,_We(t,c,r,e,a)))))}});break r}break;case 4:var Fr=t[1],Mr=b9e(r,oqt),Pr=Mr[2],Ur=Mr[1];L=G(n,-21,function(n){var t=b9e(r,ugt),e=t[2],a=t[1],u=b9e(r,fgt),i=u[2],c=u[1],o=b9e(r,igt),A=o[2],s=o[1],b=b9e(r,cgt),l=b[2],B=b[1],j=D(vgt),p=x(l),m=a0(function(n,t){var e=n[2],a=e[2],u=e[1],f=n[1],i=I(Pr),c=k(r,a),v=ina(r,u,function(r,n,t){return GL(l,r,n,c(r,n,GL(Ur,r,n,_We(i,Pr,r,n,t))))}),o=IWe(0);function s(r,n,e){return o(v,t,r,n,e)}var b=e9e(f);return function(r,n,t){return GL(A,r,n,_We(b,s,r,n,t))}},v(Fr),function(r,n,t){return _We(p,j,r,n,t)}),d=ata(r,n),_=eta(r,n),h=j9e(r,function(t){var e=I8e(r)(tgt,ngt),a=I8e(r)(agt,egt);return function(r,t,u){return GL(n,r,t,a(r,t,_We(n,e,r,t,u)))}}),y=P8e(r,ogt),w=eta(r,f),g=eta(r,n);return function(r,n,t){return g(r,n,GL(a,r,n,w(r,n,GL(c,r,n,GL(i,r,n,GL(e,r,n,hWe(Agt,0,n,y(r,n,GL(i,r,n,h(r,n,_(r,n,GL(s,r,n,d(r,n,_We(B,m,r,n,t))))))))))))))}});break r;case 5:var Gr=t[1];if("number"!=typeof Gr&&10===Gr[0]){var $r=Gr[1];L=O(r,[5,[10,$r]],function(n,t){var e=b9e(r,Xwt),a=e[2],u=e[1],i=b9e(r,Jwt),c=i[2],v=i[1],o=b9e(r,Ywt),A=o[2],b=o[1],l=b9e(r,rgt),B=l[2],j=l[1],p=Cra(r),m=j9e(r,function(n){var t=eXe[6],e=I(A),a=k(r,$r),u=Sea(r);return function(r,f,i){return GL(c,r,f,GL(n,r,f,u(r,f,GL(B,r,f,a(r,f,GL(b,r,f,e(r,f,_We(A,t,r,f,i))))))))}}),d=PL(t,c),_=Jea(r,1,a),h=eta(r,f),x=G(n,s,function(n){return ata(r,n)});return function(r,n,t){return x(r,n,GL(j,r,n,h(r,n,GL(u,r,n,_(r,n,GL(v,r,n,GL(d,r,n,GL(a,r,n,m(r,n,GL(c,r,n,p(r,n,hWe(2,0,n,t))))))))))))}});break r}var Kr=b9e(r,Aqt),Or=Kr[2],Rr=Kr[1],Qr=b9e(r,sqt),Cr=Qr[2],Hr=Qr[1],Vr=b9e(r,bqt),Lr=Vr[2],zr=Vr[1],Sr=b9e(r,lqt),Zr=Sr[2],Wr=Sr[1];L=G(n,s,function(n){var t=Cra(r),e=j9e(r,function(n){var t=eXe[6],e=I(Lr),a=k(r,Gr),u=Sea(r);return function(r,f,i){return GL(Cr,r,f,GL(n,r,f,u(r,f,GL(Zr,r,f,a(r,f,GL(zr,r,f,e(r,f,_We(Lr,t,r,f,i))))))))}}),a=Jea(r,0,Or),u=c[33].call(null,r),i=L8e(0),v=eta(r,f),o=ata(r,n);return function(r,n,f){return o(r,n,GL(Wr,r,n,v(r,n,GL(Rr,r,n,i(r,n,GL(Or,r,n,hWe(Wwt,0,n,u(r,n,a(r,n,GL(Hr,r,n,GL(Or,r,n,e(r,n,_We(Cr,t,r,n,f)))))))))))))}});break r;case 6:var Xr=t[1],Jr=b9e(r,Bqt),Yr=Jr[2],rn=Jr[1],nn=ena(r,Xr,Yr),tn=Yra(r),en=IWe(0),an=e9e(p(r)),un=function(r,n,t){return en(tn,nn,r,n,t)},fn=_(r,Xr),cn=b9e(r,jqt),vn=cn[2],on=cn[1],An=b9e(r,kqt),sn=An[2],bn=An[1],ln=ena(r,Xr,sn),Bn=Yra(r),jn=IWe(0),kn=e9e(p(r)),pn=function(r,n,t){return jn(Bn,ln,r,n,t)},mn=_(r,Xr),dn=T([0,Yra(r),[0,function(r,n,t){return GL(vn,r,n,mn(r,n,GL(bn,r,n,GL(sn,r,n,_We(kn,pn,r,n,t)))))},0]]),_n=G(n,-18,function(n){return ata(r,n)}),hn=function(r,t,e){return n(r,t,fn(r,t,GL(rn,r,t,GL(Yr,r,t,_We(an,un,r,t,e)))))},xn=function(r,n,t){return _n(r,n,_We(on,dn,r,n,t))},yn=IWe(0),wn=L8e(0),gn=nta(r,function(t){var e=e9e(-18),a=ata(r,t),u=Yna(t,Xna(f)),c=eXe[3],v=r9e(4),o=Jna(t,function(r,t,e){return i(r,t,n(r,t,v(r,t,hWe($gt,0,t,c(r,t,e)))))});return function(r,n,t){return o(r,n,u(r,n,_We(a,e,r,n,t)))}}),qn=IWe(0),In=function(r,n,t){return qn(gn,wn,r,n,t)},Dn=L8e(0),En=function(r,n,t){return yn(xn,hn,r,n,t)},Nn=Yra(r),Tn=function(r,t,e){return n(r,t,Dn(r,t,hWe(Kgt,0,t,GL(In,r,t,GL(En,r,t,e)))))},Fn=IWe(0),Mn=function(r,n,t){return Fn(Nn,Tn,r,n,t)},Pn=E(0),Un=Yra(r),Gn=function(r,n,t){return _We(Pn,Mn,r,n,t)},$n=IWe(0),Kn=function(r,n,t){return $n(Un,Gn,r,n,t)},On=E(pqt);L=function(r,n,t){return _We(On,Kn,r,n,t)};break r;case 7:var Rn=t[1];if(Rn){L=K(function(n,t){var e=b9e(r,zwt),a=e[2],u=e[1],c=uaa(r,LY(Rn)),v=I8e(r)(Zwt,Swt),o=yWe(function(e,c){var v=Pme(c);n:{t:{if("number"==typeof v){if(0!==v)break t}else switch(v[0]){case 2:if(v[1])break t;break;case 6:break;default:break t}var o=Yra(r);break n}o=D(Hwt)}var A=I(a),s=k(r,c),b=ata(r,n);function l(r,n,t){return b(r,n,s(r,n,GL(u,r,n,_We(A,a,r,n,t))))}var B=IWe(0),j=I8e(r)(Lwt,Vwt);function p(r,n,t){return B(l,o,r,n,t)}var m=L8e(e);return function(r,e,a){return GL(n,r,e,f(r,e,i(r,e,m(r,e,GL(t,r,e,_We(j,p,r,e,a))))))}},Rn);return function(r,e,a){return GL(o,r,e,GL(n,r,e,f(r,e,i(r,e,GL(t,r,e,_We(v,c,r,e,a))))))}});break r}L=N(t,uaa(r,0));break r;case 8:var Qn=D(mqt),Cn=x(n),Hn=G(n,-22,function(n){var t=b9e(r,Rwt),e=t[2],a=t[1],u=b9e(r,Qwt),f=u[1],i=Xea(r,3,[0,e,[0,u[2],0]]),c=P(),v=U();return T([0,F8e(r,Cwt),[0,function(r,n,t){return v(r,n,GL(a,r,n,c(r,n,_We(f,i,r,n,t))))},0]])}),Vn=function(r,n,t){return _We(Cn,Qn,r,n,t)},Ln=IWe(0),zn=kra(1),Sn=m(r,t),Zn=function(r,n,t){return Ln(Hn,Vn,r,n,t)},Wn=function(r,t,e){return u(r,t,i(r,t,o(r,t,b(r,t,_We(n,Sn,r,t,e)))))},Xn=IWe(0),Jn=function(r,n,t){return Xn(Wn,zn,r,n,t)};L=function(r,n,t){return u(r,n,_We(Jn,Zn,r,n,t))};break r;case 10:var Yn=t[1];L=O(r,[10,Yn],function(n,t){var e=b9e(r,Owt),a=e[2],u=e[1],f=Xra(r),i=k(r,Yn),c=PL(t,a),v=Sra(r);return function(r,t,e){return v(r,t,GL(u,r,t,GL(c,r,t,GL(a,r,t,GL(n,r,t,_We(i,f,r,t,e))))))}});break r}L=A9e(r,dqt,jLe(t))}var rt=Wna(f),nt=P8e(r,_qt),tt=r9e(2),et=W8e(0,1),at=c[33].call(null,r),ut=z8e(xqt);return function(r,n,t){return Z8e(r,n,ut(r,n,at(r,n,e(r,n,b(r,n,et(r,n,tt(r,n,hWe(hqt,0,n,nt(r,n,rt(r,n,GL(y,r,n,GL(L,r,n,GL(R,r,n,qWe(DX,C,dWe,r,n,t))))))))))))))}})}function x(r,n,t){var e=Fhe(t);return q9e(0,n,"@deserialize"+(r?"_extended<":Rqt)+(e+f_),Qqt,YY(function(r){return 0},t),function(n,a,u){var f=b9e(n,Mqt),i=f[2],v=f[1],o=b9e(n,Pqt),A=o[2],s=o[1],b=b9e(n,Uqt),l=b[2],j=b[1],k=b9e(n,Gqt)[2],m=b9e(n,$qt),x=m[2],y=m[1],w=b9e(n,Kqt),g=w[2],q=w[1],I=ura(n,Oqt,1,function(f){return ura(n,Fqt,1,function(v){return ura(n,Tqt,1,function(o){return nta(n,function(s){return nta(n,function(b){var j=HH(B(0,t)[1]),m=c[29].call(null,n),w=c[27].call(null,n),I=L8e(j),D=eXe[3],E=_(n,r,function(r,n,t){return _We(f,D,r,n,t)},function(r){var i=nta(n,function(r){var a=P8e(n,xf+e),f=fta(0,b),i=P8e(n,yq+e),c=fta(0,s),A=W8e(1,1),l=I8e(n)(qqt,gqt),B=L8e(0),j=ata(n,r),k=eXe[3],m=t9e(5,0),_=B9e(0,function(r,n,t){return _We(x,m,r,n,t)},function(r,n,t){return GL(s,r,n,GL(v,r,n,k(r,n,j(r,n,B(r,n,l(r,n,GL(x,r,n,_We(A,y,r,n,t))))))))}),w=xWe(function(t){function a(r){return Yra(n)}var f=Pme(t);r:{n:{if("number"==typeof f){if(0!==f)break n}else switch(f[0]){case 2:if(f[1])break n;var i=function(r){return L8e(p(n))},c=a,v=u;break r;case 6:break;default:break n}i=a,c=a,v=kra(1);break r}var o=function(r){var t=F8e(n,r),e=L8e(p(n)),a=IWe(0);function f(r,n,u){return a(e,t,r,n,u)}return function(r,n,t){return _We(u,f,r,n,t)}};i=o,c=o,v=u}var A=i(wqt),s=IWe(0),b=e9e(p(n)),l=W8e(1,1);function B(r,n,t){return s(A,g,r,n,t)}var j=ora(n,0,3,function(e){var a=h(n,t),u=bra(n,d[3]),f=bra(n,d[2]),i=L8e(0),c=bra(n,d[1]),o=ata(n,r);return function(r,n,t){return o(r,n,c(r,n,i(r,n,f(r,n,GL(v,r,n,_We(u,a,r,n,t))))))}}),k=c(ai+e);function m(r,n,t){return j(r,n,GL(q,r,n,GL(x,r,n,l(r,n,GL(y,r,n,GL(g,r,n,_We(b,B,r,n,t)))))))}var _=IWe(0);function w(r,n,t){return _(k,m,r,n,t)}var I=e9e(0);return function(r,n,t){return GL(x,r,n,_We(I,w,r,n,t))}},t),I=eta(n,r),D=Yna(r,Xna(s)),E=eXe[3],N=Jna(r,function(r,n,t){return _We(o,E,r,n,t)});return function(r,n,t){return N(r,n,D(r,n,I(r,n,GL(y,r,n,GL(w,r,n,_(r,n,c(r,n,i(r,n,_We(f,a,r,n,t)))))))))}}),A=c[31].call(null,n,a,r),l=c[18].call(null,n),B=eXe[3],j=c[16].call(null,n),k=eXe[3],m=c[14].call(null,n),_=eXe[3],w=c[12].call(null,n),I=c[10].call(null,n),D=c[8].call(null,n);return function(n,t,e){return GL(r,n,t,D(n,t,GL(s,n,t,I(n,t,GL(b,n,t,w(n,t,GL(v,n,t,_(n,t,m(n,t,GL(o,n,t,k(n,t,j(n,t,GL(f,n,t,B(n,t,_We(l,A,n,t,i(n,t,e))))))))))))))))}}),N=I8e(n)(Nqt,Eqt),T=kra(r),F=r9e(4),M=rta(b,function(r,n,t){return _We(A,F,r,n,t)}),P=Jna(b,k),U=rta(s,i),G=Jna(s,l);return function(r,n,t){return G(r,n,U(r,n,P(r,n,M(r,n,T(r,n,GL(s,r,n,I(r,n,w(r,n,hWe(Dqt,0,n,m(r,n,hWe(Iqt,0,n,GL(v,r,n,GL(f,r,n,GL(o,r,n,_We(N,E,r,n,t)))))))))))))))}})})})})}),D=L8e(0),E=pea(),N=bea();return function(r,n,t){return GL(a,r,n,N(r,n,GL(v,r,n,GL(a,r,n,E(r,n,GL(j,r,n,D(r,n,_We(s,I,r,n,t))))))))}})}return[0,r,function(r){var n=j8e(r,VDt,0),t=j8e(r,LDt,0),e=j8e(r,zDt,0);return[0,j8e(r,SDt,0),e,t,n]},,,,,c,,,,,,,,,,,B,function(r,n){var t=n[4],e=n[3],a=n[2],u=n[1],f=B(0,r[17][1]),i=f[2],c=f[1],v=f[3],o=O8e(r,[0,[3,c],0]),A=O8e(r,[0,n8e(YY(function(r){return o+r|0},i)),0]),s=O8e(r,[0,n8e(v),0]);return PL(u,A),PL(a,o+HH(c)|0),PL(e,LY(i)),PL(t,s)},j,,p,,,,,function(n,t){return g9e(0,n,UL(r[13],Yqt,t),nIt,rIt,function(n,e){var a=b9e(n,Cqt),u=a[2],f=a[1],i=b9e(n,Hqt),c=i[2],v=i[1],o=B(0,t)[1],A=HH(o),s=b9e(n,Vqt),b=s[2],l=s[1],p=b9e(n,Lqt),m=p[2],d=p[1],_=$L(r[11],n,b,u,A),h=P8e(n,zqt),x=e9e(0),y=GL(r[9],n,b,u),w=P8e(n,Sqt),g=r9e(4),q=k(n,hme(t)),I=xea(n),D=r9e(4),E=KL(r[8],n,u,l,b,o),N=M8e(n,Xqt),T=L8e(A),F=W8e(0,A),M=j(n,hme(t));return function(r,n,t){return GL(e,r,n,M(r,n,GL(v,r,n,GL(f,r,n,GL(u,r,n,F(r,n,T(r,n,hWe(Jqt,0,n,N(r,n,GL(E,r,n,GL(c,r,n,D(r,n,I(r,n,GL(d,r,n,GL(e,r,n,GL(b,r,n,GL(m,r,n,q(r,n,GL(m,r,n,GL(c,r,n,g(r,n,hWe(Wqt,0,n,hWe(Zqt,0,n,w(r,n,GL(y,r,n,GL(c,r,n,x(r,n,_We(h,_,r,n,t))))))))))))))))))))))))))))}})},x,function(r,n){var t=x(0,r,n),e=kra(0),a=_aa(r);return function(r,n,u){return GL(a,r,n,_We(e,t,r,n,u))}}]}var rua=Yaa([0,function(r,n,t){var e=Zaa(n);return function(r,a,u){return GL(n,r,a,GL(t,r,a,hWe(XDt,0,a,_We(Z8e,e,r,a,u))))}},Waa,function(r,n,t){var e=Zaa(n),a=L8e(4);return function(r,u,f){return GL(n,r,u,GL(t,r,u,hWe(JDt,0,u,_We(a,e,r,u,f))))}},function(r,n,t){var e=b9e(r,WDt),a=e[2],u=e[1],f=Zaa(n),i=X9e(),c=pea(),v=Waa(r,n,a),o=bea();return function(r,e,A){return GL(t,r,e,o(r,e,GL(u,r,e,v(r,e,GL(n,r,e,GL(t,r,e,c(r,e,GL(a,r,e,i(r,e,_We(a,f,r,e,A))))))))))}},function(r,n,t){var e=b9e(r,ZDt),a=e[2],u=e[1],f=Zaa(n),i=I8e(r)(mQt,pQt),c=Waa(r,n,a),v=Rea(r);return function(r,e,o){return GL(t,r,e,v(r,e,GL(u,r,e,c(r,e,GL(t,r,e,GL(n,r,e,i(r,e,_We(a,f,r,e,o))))))))}},function(r,n,t){var e=Zaa(n),a=b9e(r,nzt),u=a[2],f=a[1],i=b9e(r,tzt),c=i[2],v=i[1],o=Hta(0,function(r){var n=lta(r,u,c),t=Era(0,0,7);return function(r,e,a){return t(r,e,_We(f,n,r,e,a))}},function(r){var n=function(r){var n=b9e(r,XVt),t=n[2],e=n[1],a=b9e(r,JVt),u=a[2],f=a[1],i=I8e(r)(rLt,YVt),c=I8e(r)(tLt,nLt);return function(r,n,a){return GL(f,r,n,GL(e,r,n,GL(u,r,n,GL(t,r,n,c(r,n,_We(u,i,r,n,a))))))}}(r);return function(r,t,e){return hWe(2,0,t,GL(c,r,t,_We(u,n,r,t,e)))}},r);function A(r,n,t){return GL(f,r,n,GL(v,r,n,_We(u,o,r,n,t)))}return function(r,a,u){return GL(n,r,a,GL(t,r,a,_We(A,e,r,a,u)))}},function(r,n,t){var e=Zaa(n),a=b9e(r,YLt),u=a[2],f=a[1],i=b9e(r,rzt),c=i[2],v=i[1],o=Hta(0,function(r){var n=Bta(r,u,c),t=Era(0,0,7);return function(r,e,a){return t(r,e,_We(f,n,r,e,a))}},function(r){var n=function(r){var n=b9e(r,CVt),t=n[2],e=n[1],a=b9e(r,HVt),u=a[2],f=a[1],i=I8e(r)(LVt,VVt),c=I8e(r)(SVt,zVt);return function(r,n,a){return GL(f,r,n,GL(e,r,n,GL(u,r,n,GL(t,r,n,c(r,n,_We(u,i,r,n,a))))))}}(r);return function(r,t,e){return hWe(2,0,t,GL(c,r,t,_We(u,n,r,t,e)))}},r);function A(r,n,t){return GL(f,r,n,GL(v,r,n,_We(u,o,r,n,t)))}return function(r,a,u){return GL(n,r,a,GL(t,r,a,_We(A,e,r,a,u)))}},function(r,n,t,e,a){var u=HH(a),f=W8e(0,u),i=X9e(),c=L8e(u),v=pea(),o=Bea(r,0,a),A=xea(r),s=W8e(0,u);return function(r,a,u){return GL(n,r,a,s(r,a,A(r,a,GL(t,r,a,GL(e,r,a,o(r,a,v(r,a,c(r,a,i(r,a,GL(e,r,a,_We(f,t,r,a,u)))))))))))}},function(r,n,t){var e=P8e(r,nEt);return function(r,a,u){return GL(n,r,a,GL(t,r,a,hWe(eEt,0,a,hWe(tEt,0,a,e(r,a,u)))))}},function(r,n){return n},function(r,n,t,e){var a=W8e(0,e),u=W8e(1,e);return function(r,e,f){return GL(n,r,e,u(r,e,_We(t,a,r,e,f)))}},function(r){return r},function(r,n){return Hd+r+om+Fhe(n)+f_},function(r,n){return PWe(n)},function(r,n,t){var e=PWe(n),a=W8e(0,t);return function(r,t,u){return GL(n,r,t,GL(n,r,t,_We(a,e,r,t,u)))}}]);function nua(r,n,t){var e=I8e(r)(Myt,Fyt),a=L8e(t);return function(r,t,u){return GL(n,r,t,_We(a,e,r,t,u))}}function tua(r,n,t){var e=b9e(r,Eyt),a=e[2],u=e[1],f=I8e(r)(Tyt,Nyt),i=bta(Ata,a),c=lta(r,a,function(r,t,e){return GL(n,r,t,_We(i,f,r,t,e))});return function(r,n,e){return GL(t,r,n,GL(u,r,n,c(r,n,hWe(2,0,n,e))))}}function eua(r){return function(n,t,e){return GL(r,n,t,hWe(_yt,0,t,e))}}function aua(r){return sea()+1|0}var uua=Yaa([0,function(r,n,t){var e=I8e(r)(Iyt,qyt);return function(r,a,u){return GL(n,r,a,_We(t,e,r,a,u))}},tua,function(r,n,t){var e=nua(r,n,4);return function(r,n,a){return e(r,n,GL(t,r,n,hWe(Dyt,0,n,a)))}},function(r,n,t){var e=b9e(r,yyt),a=e[2],u=e[1],f=I8e(r)(gyt,wyt),i=pea(),c=tua(r,n,a),v=bea();return function(r,e,o){return GL(t,r,e,v(r,e,GL(u,r,e,c(r,e,GL(n,r,e,GL(t,r,e,i(r,e,_We(a,f,r,e,o))))))))}},function(r,n,t){var e=I8e(r)(xyt,hyt),a=Rea(r),u=tua(r,n,function(r,n,e){return _We(t,a,r,n,e)});return function(r,a,f){return u(r,a,GL(n,r,a,_We(t,e,r,a,f)))}},function(r,n,t){var e=b9e(r,XLt),a=e[2],u=e[1],f=b9e(r,JLt),i=f[2],c=f[1],v=Hta(0,function(r){var n=I8e(r)(WLt,ZLt),t=bta(Ata,a),e=lta(r,a,function(r,e,a){return GL(i,r,e,_We(t,n,r,e,a))}),f=Era(0,0,7);return function(r,n,t){return f(r,n,_We(u,e,r,n,t))}},function(r){var n=I8e(r)(WVt,ZVt);return function(r,t,e){return hWe(2,0,t,GL(i,r,t,GL(a,r,t,_We(n,S8e,r,t,e))))}},r);function o(r,n,t){return GL(u,r,n,GL(c,r,n,GL(a,r,n,v(r,n,hWe(2,0,n,t)))))}return function(r,e,a){return GL(n,r,e,_We(t,o,r,e,a))}},function(r,n,t){var e=b9e(r,zLt),a=e[2],u=e[1],f=b9e(r,SLt),i=f[2],c=f[1],v=Hta(0,function(r){var n=I8e(r)(LLt,VLt),t=bta(sta,a),e=Bta(r,a,function(r,e,a){return GL(i,r,e,_We(t,n,r,e,a))}),f=Era(0,0,7);return function(r,n,t){return f(r,n,_We(u,e,r,n,t))}},function(r){var n=I8e(r)(QVt,RVt);return function(r,t,e){return hWe(2,0,t,GL(i,r,t,GL(a,r,t,_We(n,S8e,r,t,e))))}},r);function o(r,n,t){return GL(u,r,n,GL(c,r,n,GL(a,r,n,v(r,n,hWe(2,0,n,t)))))}return function(r,e,a){return GL(n,r,e,_We(t,o,r,e,a))}},function(r,n,t,e,a){var u=b9e(r,Byt),f=u[2],i=u[1],c=l9e(r,jyt),v=c[2],o=c[1],A=I8e(r)(pyt,kyt),s=eua(f),b=Laa(r),l=eua(f),B=a9e(0,dyt),j=i9e(lC(16,0,0)),k=Naa(r),p=W8e(0,HH(a)),m=L8e(AM),d=I8e(r)(Uyt,Pyt),_=Bea(r,0,a),h=I8e(r)($yt,Gyt),x=W8e(0,HH(a));return function(r,a,u){return m(r,a,x(r,a,h(r,a,GL(t,r,a,GL(e,r,a,_We(_,d,r,a,GL(n,r,a,p(r,a,GL(i,r,a,k(r,a,j(r,a,B(r,a,GL(o,r,a,GL(v,r,a,l(r,a,b(r,a,GL(e,r,a,GL(v,r,a,GL(v,r,a,s(r,a,hWe(myt,0,a,A(r,a,u))))))))))))))))))))))}},function(r,n,t){return function(r,n,t){return hWe(2,0,n,t)}},function(r,n){var t=Rra(0,aua()+2|0),e=Rra(0,aua()),a=[13,[0,0,2,$H(hC(4,sea()+8|0)),0]];return function(r,u,f){return GL(n,r,u,hWe(a,0,u,GL(n,r,u,e(r,u,GL(n,r,u,t(r,u,hWe(vyt,0,u,hWe(cyt,0,u,hWe(iyt,0,u,f)))))))))}},function(r,n,t,e){var a=a9e(1,Ayt),u=i9e(lC(16,0,0)),f=Naa(r),i=Rra(0,aua()),c=I8e(r)(lyt,byt);return function(r,t,e){return GL(n,r,t,c(r,t,S8e(r,t,GL(n,r,t,i(r,t,f(r,t,u(r,t,hWe(syt,0,t,a(r,t,hWe(oyt,0,t,e))))))))))}},function(r){return dWe},function(r,n){return"@Sm_"+r+om+Fhe(n)+f_},function(r,n){return function(r,n,t){return hWe(2,0,n,t)}},nua]);function fua(r){return 1===r?0:[0,r]}function iua(r){var n=Pme(r);if("number"!=typeof n)switch(n[0]){case 2:var t=n[1];switch(t){case 1:case 2:case 7:case 15:case 16:case 18:return 0;case 12:return 1;case 13:return 2;case 6:case 11:return[1,t];case 5:case 10:default:return[2,t];case 0:case 17:case 19:}break;case 3:if(1===n[1])return 0;break;case 8:if(n[1])return 0}return KWe(cxt,jLe(n),0)}function cua(r,n){if("number"==typeof n)switch(n){case 0:return ext;case 1:return axt;case 2:return uxt;default:return 0}switch(n[0]){case 0:return qoe(n[1],0);case 1:return fxt;case 2:return ixt;default:return 0}}function vua(r){if("number"==typeof r)switch(r){case 0:return Wht;case 1:return Xht;case 2:return Jht;default:return Yht}switch(r[0]){case 0:var n=r[1];return PL(R3(rxt),n);case 1:return GWe(r[1],nxt);case 2:return GWe(r[1],"UnboxedWord32");default:return txt}}function oua(r,n){if(u8e(r,n))return r;r:{n:{t:{if("number"==typeof r){if(3===r)return n}else switch(r[0]){case 0:var t=r[1];if("number"!=typeof n)switch(n[0]){case 0:if(t===n[1])return r;break r;case 3:break n;default:break r}switch(n){case 3:break;case 0:break n;default:break r}break;case 3:if("number"!=typeof n){if(3===n[0])return 0;break t}if(3!==n)break t}if("number"==typeof n&&3<=n)return r}if("number"!=typeof r&&3===r[0])return n}if("number"==typeof n){if(0===n)return 0}else if(3===n[0])return r;if("number"==typeof r&&!r)return 0}var e=vua(n),a=vua(r);return UL($3(tY,Zht),a,e),r}function Aua(r,n){r:{if("number"==typeof n){if(3!==n)break r}else switch(n[0]){case 0:return wWe(n[1],function(r){return function(r,n,t){return hWe(2,0,n,t)}});case 3:break;default:break r}return dWe}return function(r,n,t){return hWe(2,0,n,t)}}function sua(r,n){var t=n[1],e=n[2];if(1-Qoe(t)){var a=bua(r,e);1-Qoe(t)&&Roe(t,a)}return Coe(t)}function bua(r,n){if("number"==typeof n)return taa();switch(n[0]){case 0:return zra(r,2,[0,[0,$8e(r,PL(n[1],0))],yXt]);case 1:throw kQ([0,YL,Oht],1);case 2:var t=YY(function(n){return[0,n[1],sua(r,n[2])]},n[1]),e=p0(d0(KC,YY(function(r){var n=r[2];return[0,Ope(r[1]),n]},t))),a=e[2],u=[0,[0,K8e(r,[0,n8e(e[1]),0])],[0,n8e(a),0]];return zra(r,0,[0,[0,LY(t)],u]);case 3:return Wea(r,0,YY(function(n){return sua(r,n)},n[1]));case 4:return Wea(r,2,YY(function(n){return sua(r,n)},n[1]));case 5:var f=n[1],i=f[1],c=[0,[0,sua(r,f[2])],0];return zra(r,4,[0,[0,fna(r)(i)],c]);case 6:for(var v=n[1],o=v;;){var A=o[2];r:{if("number"!=typeof A)switch(A[0]){case 6:o=A[1];continue;case 7:if("number"==typeof A[1]){var s=0;break r}}s=[0,bua(r,o[2])]}return s?s[1]:rna(r,sua(r,v))}default:var b=n[1];if("number"==typeof b)return Jra(r);switch(b[0]){case 0:return b[1];case 1:return Rta(r,b[1]);case 2:return jra(b[1]);case 3:var l=b[2],B=b[1];return xra(B,$H(l))?yra(B,$H(l)):zra(r,dna(0,B),[0,[0,l],0]);case 4:var j=b[2],k=b[1];return xra(k,j)?yra(k,j):zra(r,sna(0,k),[0,[1,j],0]);case 5:return zra(r,gZt,[0,[1,ove(b[1])],0]);case 6:return zra(r,dZt,[0,[0,bC(PL(Pye,b[1]))],0]);case 7:return lea(r,1,b[1]);default:return lea(r,0,b[1])}}}function lua(r,n,t){if(u8e(n,t))return dWe;if("number"==typeof n)switch(n){case 0:if("number"==typeof t)switch(t){case 1:return zna();case 2:return Zna()}else switch(t[0]){case 0:var e=t[1];if(0===e){return function(r,n,t){return hWe(2,0,n,t)}}var a=PL(R3(OOt),e);return g9e(1,r,a,ROt,qoe(e,0),function(r,n){return wWe(e,function(r){var t=aaa(0,r);return function(r,e,a){return _We(n,t,r,e,a)}})});case 1:var u=t[1];if(6!==u&&11!==u)throw kQ([0,YL,Rht],1);return lna(r,u);case 2:var f=t[1];switch(f){case 5:case 10:return hna(r,f);case 3:case 4:case 8:case 9:case 14:return Vna(0,f)}}break;case 1:if("number"==typeof t&&3>t)switch(t){case 0:return Lna(r);case 2:return function(r,n,t){return hWe(Qht,0,n,t)}}break;case 2:if("number"==typeof t){if(1===t)return function(r,n,t){return hWe(Cht,0,n,t)};if(!t)return Sna(r)}break;default:if("number"==typeof t&&3<=t)return dWe;return function(r,n,t){return hWe(0,0,n,t)}}else r:switch(n[0]){case 0:if("number"==typeof t&&!t)return uaa(r,n[1]);break;case 1:if("number"==typeof t&&!t){var i=n[1];if(6!==i&&11!==i)throw kQ([0,YL,Hht],1);return bna(r,i)}break;case 2:var c=n[1],v=c-3|0;if(11>=v>>>0)switch(v){case 0:case 1:case 5:case 6:case 11:if("number"!=typeof t)break r;if(t)break r;return Hna(0,c)}if("number"==typeof t&&!t){if(5!==c&&10!==c)throw kQ([0,YL,Vht],1);return _na(r,c)}break;default:var o=n[1],A=o[2];if("number"!=typeof A&&7===A[0]){var s=A[1];if("number"!=typeof s)switch(s[0]){case 0:var b=s[1];if("number"==typeof t){if(0!==t)break r}else switch(t[0]){case 2:var l=Vna(0,t[1]),B=L8e(b);return function(r,n,t){return _We(B,l,r,n,t)};case 0:break;default:break r}break;case 2:var j=s[1];if("number"==typeof t){if(0===t)return kra(j);break r}if(0!==t[0])break r;break;case 3:var k=s[2],p=s[1];if("number"==typeof t){if(0!==t)break r}else switch(t[0]){case 2:if(p===t[1])return L8e(k);break r;case 0:break;default:break r}break;case 4:var m=s[2],d=s[1];if("number"==typeof t){if(0!==t)break r}else switch(t[0]){case 1:if(d===t[1])return z8e(m);break r;case 0:break;default:break r}break;case 5:var _=s[1];if("number"==typeof t)switch(t){case 1:var h=[16,[0,wve,[3,_]]];return function(r,n,t){return hWe(h,0,n,t)};case 0:break;default:break r}else if(0!==t[0])break r;break;case 6:var x=s[1];if("number"==typeof t)switch(t){case 2:var y=[16,[0,wve,[2,ave(bC(PL(Pye,x)))]]];return function(r,n,t){return hWe(y,0,n,t)};case 0:break;default:break r}else if(0!==t[0])break r}}if("number"==typeof t){if(0===t)return L8e(sua(r,o))}else if(0===t[0]){if(0===t[1])return dWe;if("number"!=typeof A&&4===A[0]){var w=A[1];if(t[1]===LY(w))return xWe(function(n){return L8e(sua(r,n))},w);throw kQ([0,YL,Lht],1)}}}var g=vua(t),q=vua(n);throw UL($3(tY,zht),q,g),kQ([0,YL,Sht],1)}function Bua(r){return r[0]<2?0:1}var jua=aBe([0,r1]),kua=[0,0,jua[1],jua[1]];function pua(r){return w9e(1,r,gPt,wPt,function(r){var n=uaa(r,2),t=function(r){return w9e(1,r,EPt,DPt,function(r){return _ea(r,1,function(r){return jaa(r,qPt)},function(r){return jaa(r,IPt)},function(r){return L8e(0)})})}(r),e=function(r){return w9e(0,r,GPt,UPt,function(r){var n=b9e(r,TPt),t=n[2],e=n[1],a=_na(r,5),u=a0(function(n,e){var a=n[2],u=n[1],f=ina(r,u,eaa()),i=IWe(0);function c(r,n,t){return i(f,e,r,n,t)}var v=L8e(a);return function(r,n,e){return GL(t,r,n,v(r,n,hWe(NPt,0,n,GL(c,r,n,e))))}},MPt,ina(r,FPt,function(r,n,e){return _We(t,a,r,n,e)})),f=jaa(r,PPt);return function(r,n,t){return f(r,n,_We(e,u,r,n,t))}})}(r);return function(r,a,u){return e(r,a,_We(t,n,r,a,u))}})}function mua(r){var n=r[3];return[0,1,jua[16].call(null,function(r,n){return Bua(n[1])},r[2]),n]}function dua(r,n){var t=jua[29].call(null,n,r[2]);return t?[0,t[1]]:(PL($3(tY,Kht),n),0)}function _ua(r,n){var t=dua(r,n);return t?[0,t[1][1]]:0}function hua(r,n,t,e){var a=s8e(r,0);b8e(r,a,t);var u=n[3],f=jua[4].call(null,t,[0,[1,a],e],n[2]);return[0,[0,n[1],f,u],a]}function xua(r,n,t,e){var a=r[3],u=jua[4].call(null,n,[0,[2,t],e],r[2]);return[0,r[1],u,a]}function yua(r,n,t,e,a,u){var f=n[3],i=jua[4].call(null,t,[0,[0,e,a],u],n[2]);return[0,n[1],i,f]}function wua(r,n,t,e,a){if("number"==typeof e)switch(e){case 0:var u=0;break;case 1:u=3;break;case 2:u=2;break;default:u=RWe(Tre)}else switch(e[0]){case 0:u=RWe(Fre);break;case 1:u=1;break;case 2:u=0;break;default:u=RWe(Mre)}var f=s8e(r,u);return b8e(r,f,t),[0,yua(0,n,t,e,f,a),f]}function gua(r,n,t,e){for(var a=n,u=e;;){if(!u)return a;var f=u[2],i=u[1],c=i[2],v=i[1];if(PL(t,v)){var o=s8e(r,0);b8e(r,o,v);var A=a[3],s=jua[4].call(null,v,[0,[0,0,o],c],a[2]);a=[0,a[1],s,A],u=f}else a=xua(a,v,Zra(r),c),u=f}}function qua(r){return r}function Iua(r){for(var n=r,t=0;;){var e=Pme(n);r:{if("number"==typeof e){if(1!==e)break r}else switch(e[0]){case 2:switch(e[1]){case 0:case 1:case 3:case 4:case 8:case 9:case 14:break;default:break r}break;case 6:var a=e[1];if(t)return 1;n=a,t=1;continue;case 7:if(e[1])break r;break;case 10:n=e[1];continue;default:break r}return 0}return 1}}function Dua(r,n,t){var e=dua(n,t),a=Dce[1];if(!e)return PL(RWe(Uht),t);var u=e[1],f=u[1];switch(f[0]){case 0:var i=[9,[0,wve,f[2]]];return[0,dWe,f[1],function(r,n,t){return hWe(i,0,n,t)}];case 1:var c=f[1],v=u[2];if(3===a){if(Iua(v)){var o=I8e(r)(Nht,Eht),A=W8e(0,hC(Fra(),4)),s=W8e(0,eXe[2]),b=Gra(),l=[8,[0,wve,c]],B=Xra(r),j=[8,[0,wve,c]];return[0,function(r,n,t){return hWe(j,0,n,t)},0,function(r,n,t){return B(r,n,hWe(l,0,n,b(r,n,s(r,n,_We(A,o,r,n,t)))))}]}}else if(4<=a&&Iua(v)){var k=Hra(r),p=W8e(0,hC(Fra(),4)),m=W8e(0,eXe[2]),d=Gra(),_=[8,[0,wve,c]];return[0,function(r,n,t){return hWe(_,0,n,d(r,n,_We(m,p,r,n,t)))},0,k]}var h=[8,[0,wve,c]];return[0,function(r,n,t){return hWe(h,0,n,t)},0,Xra(r)];case 2:var x=f[1],y=u[2];if(3===a){if(Iua(y)){var w=I8e(r)(Fht,Tht),g=W8e(0,hC(Fra(),4)),q=W8e(0,eXe[2]),I=Gra(),D=L8e(x),E=Xra(r);return[0,L8e(x),0,function(r,n,t){return E(r,n,D(r,n,I(r,n,q(r,n,_We(g,w,r,n,t)))))}]}}else if(4<=a&&Iua(y)){var N=Hra(r),T=W8e(0,hC(Fra(),4)),F=W8e(0,eXe[2]),M=Gra(),P=L8e(x);return[0,function(r,n,t){return P(r,n,M(r,n,_We(F,T,r,n,t)))},0,N]}var U=Xra(r);return[0,L8e(x),0,U];case 3:return PL(RWe(Mht),t);default:return PL(RWe(Pht),t)}}function Eua(r,n,t){var e=Dua(r,n,t),a=e[3],u=e[1],f=lua(r,0,e[2]);if(UWe(u))return function(r,n,t){return _We(f,a,r,n,t)};var i=b9e(r,Dht),c=i[2],v=i[1];return function(r,n,t){return GL(v,r,n,GL(u,r,n,GL(c,r,n,_We(f,a,r,n,t))))}}function Nua(r,n,t){var e=_ua(n,t);if(!e)throw kQ([0,YL,Iht],1);var a=e[1];switch(a[0]){case 0:var u=[8,[0,wve,a[2]]];return[0,a[1],function(r,n,t){return hWe(u,0,n,t)}];case 1:var f=a[1],i=Wra(),c=[8,[0,wve,f]];return[0,0,function(r,n,t){return hWe(c,0,n,i(r,n,t))}];case 2:var v=a[1],o=Wra(),A=L8e(v);return[0,0,function(r,n,t){return _We(A,o,r,n,t)}];case 3:return[0,[3,a[1]],dWe];default:var s=xaa(r,a[2]),b=daa(r);return[0,0,function(r,n,t){return _We(b,s,r,n,t)}]}}function Tua(r,n,t){var e=dua(n,t);if(e){var a=e[1],u=a[1];switch(u[0]){case 0:var f=a[2],i=u[2],c=lua(r,u[1],0),v=[8,[0,wve,i]];return[0,function(r,n,t){return hWe(v,0,n,GL(c,r,n,t))},function(r,n){var e=wua(r,n,t,0,f),a=[9,[0,wve,e[2]]];return[0,e[1],function(r){return function(n,t,e){return hWe(a,0,t,GL(r,n,t,e))}}]}];case 1:var o=a[2],A=[8,[0,wve,u[1]]];return[0,function(r,n,t){return hWe(A,0,n,t)},function(r,n){var e=hua(r,n,t,o),a=[9,[0,wve,e[2]]];return[0,e[1],function(r){return function(n,t,e){return hWe(a,0,t,GL(r,n,t,e))}}]}]}}throw kQ([0,YL,qht],1)}function Fua(r,n,t){var e=_ua(n,t);if(e){var a=e[1];if(3===a[0]){var u=a[1][2];if("number"!=typeof u&&0===u[0]){var f=[6,[0,wve,PL(u[1],0)]];return function(r,n,t){return S8e(r,n,hWe(f,0,n,t))}}}}throw kQ([0,YL,yht],1)}function Mua(r,n,t,e,a,u,f){var i=YY(function(r){return[0,r[2],0]},e),c=qoe(LY(u),0),v=mua(n);return h9e(r,rY(_ht,i),c,function(r){for(var n=Gra(),u=[8,[0,wve,0]],i=GL(t,r,v,function(r,t,e){return hWe(u,0,t,n(r,t,e))}),c=1,o=i[1],A=e,s=i[2];A;){var b=A[1],l=A[2],B=yua(0,o,b[2],0,c,b[3]);c=c+1|0,o=B,A=l}var j=PL(s,UL(a,r,o));return function(r,n,t){return gWe(f,j,r,0,t)}})}function Pua(r,n){if(n)switch(n[1]){case 0:return oaa(r,4);case 1:return oaa(r,3);default:return oaa(r,9)}throw kQ([0,YL,dht],1)}function Uua(r,n){if(n)switch(n[1]){case 0:return oaa(r,5);case 1:var t=oaa(r,2),e=G9e(r);return function(r,n,a){return _We(e,t,r,n,a)};default:return oaa(r,9)}throw kQ([0,YL,mht],1)}function Gua(r){var n=Pua(r,pht),t=Aaa(0,9);return function(r,e,a){return t(r,e,qWe(DX,dWe,n,r,e,a))}}function $ua(r){var n=Uua(r,kht),t=Aaa(0,9);return function(r,e,a){return t(r,e,qWe(DX,dWe,n,r,e,a))}}function Kua(r,n,t,e,a,u,f,i){var c=mua(n);return h9e(r,0,0,function(r){var f=YY(function(r){return[0,r[2],r[3]]},a),v=YY(function(r){return r[2]},a),o=YY(function(r){return r[3]},a),A=function(r,n){function t(r){return 1}return function(e){return gua(r,n,t,e)}}(r,c)(f),s=Uua(r,t),b=UL(u,r,A),l=xWe(function(n){return Eua(r,A,n)},XY(v)),B=rua[29].call(null,r,o);if(0===e)var j=haa(r),k=rua[27].call(null,r,0),p=eaa(),m=function(r,n,t){return p(r,n,_We(k,j,r,n,t))};else m=dWe;var d=Fua(0,n,hht),_=Fua(0,n,xht),h=Pua(r,t);return function(r,n,t){var e=i[2],a=i[1],u=[0,[0,a[1],a[2],a[3]],[0,e[1],e[2],e[3]]];return h(r,u,_(r,u,d(r,u,m(r,u,B(r,u,GL(l,r,u,_We(b,s,r,u,t)))))))}})}function Oua(r,n,t,e,a,u,f,i,c){if(0!==n){var v=_8e(r)(e),o=v[2];return[0,a8e([1,v[1]]),function(r,e){return PL(o,Kua(r,e,n,t,a,u,0,c))}]}if(0!==t)throw kQ([0,YL,jht],1);var A=x8e(r,e);return[0,a8e([0,function(r){return Loe(A)},f]),function(r,n){function t(r,n,t){return[0,n,qua]}return Voe(A,[W,function(e){return Mua(r,n,t,a,u,i,c)}])}]}function Rua(r,n,t,e,a,u,f,i,c,v){var o=l0(function(r){var t=_ua(n,r);if(t)return 1-Bua(t[1]);throw kQ([0,YL,$ht],1)})(u);if(0===n[1]&&0!==o)throw kQ([0,YL,bht],1);if(0===o){var A=Oua(r,e,a,t,f,i,0,c,v),s=A[1];return UL(A[2],r,n),[0,[3,s],dWe]}var b=0===e?1:0,l=b9e(r,t+KN),B=l[2],j=l[1],k=pve(LY(o));var p=function t(e,a){if(!a)return[0,dWe,function(r,n,t){return[0,n,qua]}];var u=a[1],f=t(e+1|0,a[2]),i=f[2],c=f[1],v=Tua(r,n,u),o=v[2],A=v[1],s=function(r,n){var t=Ora(0,ona()+n|0);if(4===Dce[1])var e=b9e(r,wXt),a=e[2],u=e[1],f=Gra(),i=function(r,n,t){return GL(u,r,n,_We(f,a,r,n,t))};else i=dWe;return function(r,n,e){return _We(i,t,r,n,e)}}(r,pve(e));return[0,function(r,n,t){return GL(B,r,n,A(r,n,_We(s,c,r,n,t)))},function(r,n,t){var a=o(r,n),u=a[2],f=i(r,a[1],t),c=f[2];return[0,f[1],function(r){var n=u(PL(c,r)),a=function(r,n){var t=Kra(0,ona()+n|0),e=Gra();return function(r,n,a){return _We(e,t,r,n,a)}}(0,pve(e));return function(r,e,u){return GL(t,r,e,_We(a,n,r,e,u))}}]}]}(0,o),m=p[2],d=p[1];if(!b)throw kQ([0,YL,lht],1);var _=Mua(r,n,m,f,i,c,v),h=h8e(r)(t,_),x=Cra(r),y=Ora(0,1+Fra()|0),w=L8e(k),g=Ora(0,Fra()),q=L8e($8e(r,h)),I=Ura(r,ona()+k|0,2);if(b)return[0,0,function(r,n,t){return I(r,n,GL(j,r,n,GL(B,r,n,q(r,n,g(r,n,GL(B,r,n,w(r,n,y(r,n,d(r,n,GL(B,r,n,x(r,n,hWe(2,0,n,GL(B,r,n,t)))))))))))))}];throw kQ([0,YL,Bht],1)}function Qua(r,n){if(n)var t=n[1],e=Ug+The([7,t])+f_,a=function(r){return rua[29].call(null,r,t)},u=e,f=LY(t);else a=function(r){return _ea(r,0,function(r){return jaa(r,iht)},function(r){return jaa(r,cht)},function(r){return L8e(0)})},u=vht,f=1;return x9e(r,u,oht,0,function(r){var n=b9e(r,fht),t=n[2],e=n[1],u=$ua(r),i=Ana(r,f,0),c=a(r),v=Gra(),o=zea(0,0),A=lra(r),s=[8,[0,wve,0]],b=Gua(r);return function(r,n,a){return b(r,n,hWe(s,0,n,A(r,n,o(r,n,GL(e,r,n,GL(t,r,n,v(r,n,c(r,n,GL(t,r,n,_We(i,u,r,n,a))))))))))}}),x9e(r,DJ,Aht,0,function(r){var n=b9e(r,uht),t=n[2],e=n[1],a=$ua(r),u=Ana(r,1,0),f=pua(r),i=Gra(),c=zea(0,1),v=lra(r),o=[8,[0,wve,0]],A=Gua(r);return function(r,n,s){return A(r,n,hWe(o,0,n,v(r,n,c(r,n,GL(e,r,n,GL(t,r,n,i(r,n,f(r,n,GL(t,r,n,_We(u,a,r,n,s))))))))))}}),function(n){var t=b9e(r,aht),e=t[2],a=t[1],f=L8e($8e(r,w8e(r,DJ))),i=L8e($8e(r,w8e(r,u))),c=I8e(r)(VJt,HJt),v=Xea(r,2,n);return function(r,n,t){return v(r,n,c(r,n,GL(a,r,n,i(r,n,GL(e,r,n,_We(f,e,r,n,t))))))}}}function Cua(r,n){return Qua(r,[0,n])}function Hua(r){return L8e(-1)}function Vua(r,n,t,e,a,u){if(1>>0)return F8e(r,PL(R3(Z_t),n));var f=PL(R3(W_t),n),i=b9e(r,X_t),c=i[2],v=i[1],o=lra(r),A=saa(r),s=laa(r),b=Bea(r,1,f),l=baa(r),B=jaa(r,J_t),j=jaa(r,Y_t),k=PL(a,c),p=jaa(r,rht);x9e(r,IJ,eht,0,function(r){var n=b9e(r,tht),t=n[2],e=n[1],a=Ana(r,0,0),u=Gra(),f=zea(0,2),i=lra(r),c=[8,[0,wve,0]];return function(r,n,v){return hWe(c,0,n,i(r,n,f(r,n,GL(e,r,n,GL(t,r,n,u(r,n,_We(t,a,r,n,v)))))))}});var m=L8e($8e(r,w8e(r,IJ))),d=jaa(r,nht),_=mea(r),h=zea(0,1),x=mea(r),y=zea(0,0);function w(r,n,t){return GL(c,r,n,o(r,n,hWe(2,0,n,t)))}return function(r,n,a){return GL(t,r,n,y(r,n,x(r,n,GL(t,r,n,h(r,n,_(r,n,GL(e,r,n,GL(v,r,n,GL(c,r,n,d(r,n,m(r,n,GL(c,r,n,p(r,n,GL(k,r,n,j(r,n,GL(u,r,n,B(r,n,l(r,n,b(r,n,s(r,n,A(r,n,qWe(DX,w,dWe,r,n,a))))))))))))))))))))))}}var Lua=[1,function(r){return r}];function zua(r){if(0===r[0]){var n=r[1];return function(r){if(0===r[0]){var t=r[1];return[0,function(r,e,a){return _We(n,t,r,e,a)}]}var e=r[1];return[1,function(r){var t=PL(e,r);return function(r,e,a){return _We(n,t,r,e,a)}}]}}var t=r[1];return function(r){if(0===r[0]){var n=r[1];return[1,function(r){var e=PL(t,r);return function(r,t,a){return _We(e,n,r,t,a)}}]}var e=r[1];return[1,function(r){var n=PL(e,r),a=PL(t,r);return function(r,t,e){return _We(a,n,r,t,e)}}]}}function Sua(r,n){return 0===n[0]?n[1]:PL(n[1],r)}function Zua(r){if(0===r[0]){var n=r[1];return function(r){return[0,n]}}var t=r[1];return function(r){if(0===r[0]){var n=r[1],e=[0,0],a=kra(0),u=kra(1),f=PL(t,function(r,n,t){return a(r,n,FWe(e,r,n,t))}),i=MWe(0,e,function(r,n,t){return _We(f,u,r,n,t)});return[0,function(r,t,e){return i(r,t,qWe(DX,dWe,n,r,t,e))}]}var c=r[1];return[1,function(r){var n=[0,0],e=kra(0),a=PL(c,r),u=kra(1),f=PL(t,function(r,t,a){return e(r,t,FWe(n,r,t,a))}),i=MWe(0,n,function(r,n,t){return _We(f,u,r,n,t)});return function(r,n,t){return i(r,n,qWe(DX,dWe,a,r,n,t))}}]}}function Wua(r,n){return Sua(F8e(r,qJ),n)}function Xua(r,n){return Wua(r,a0(Zua,n,Lua))}function Jua(r,n,t){return PL(RWe(N_t),r)}var Yua=dCe[9];function rfa(r,n,t){r:{n:{t:{e:{a:{u:{f:if("number"==typeof n){switch(n){case 0:if("number"==typeof t){if(0!==t)break f;var e=0;break r}if(0===t[0])break n;break t;case 1:if("number"!=typeof t||2>t)break u;break;default:if("number"!=typeof t)break a;switch(t){case 2:break f;case 0:break a}}e=RWe(E_t);break r}if("number"!=typeof t)break a;switch(t){case 0:break a;case 1:break;default:break e}}e=1;break r}if("number"!=typeof n)break t}e=2;break r}if("number"==typeof t||0===t[0]){if("number"==typeof n)break n;if(0===n[0])break n;a=n[1]}else var a=t[1];e=[1,a];break r}e=[0,"number"==typeof t?n[1]:t[1]]}return[0,e]}var nfa=dCe[9];function tfa(r,n){return nfa(rfa,r,n)}function efa(r){return function(r,n,t){return hWe(iXt,0,n,t)}}function afa(r){return function(r,n,t){return hWe(uXt,0,n,t)}}function ufa(r){return Fta(MJ,jna,hta,r)}function ffa(r){return Pta(Kna,r)}function ifa(r){return Pta(Ona,r)}function cfa(r){return Fta(PJ,kna,xta,r)}function vfa(r){return I8e(r)(DVt,IVt)}function ofa(r){return I8e(r)(mVt,pVt)}function Afa(r){return I8e(r)(kVt,jVt)}function sfa(r){return I8e(r)(bVt,sVt)}function bfa(r){return I8e(r)(AVt,oVt)}function lfa(r){return q9e(1,r,fHt,uHt,aHt,function(r,n,t){var e=Hna(0,3),a=Nna(3),u=Gra(),f=hC(Aea(),4),i=W8e(0,eXe[2]+f|0),c=P8e(r,tHt),v=bea();return function(r,f,o){return GL(t,r,f,GL(n,r,f,v(r,f,hWe(eHt,0,f,c(r,f,GL(t,r,f,i(r,f,GL(n,r,f,u(r,f,hWe(nHt,0,f,hWe(rHt,0,f,_We(a,e,r,f,o))))))))))))}})}function Bfa(r,n){var t=maa(r),e=jea(r,n);return function(r,n,a){return _We(e,t,r,n,a)}}function jfa(r){var n=P8e(r,nPt),t=b9e(r,aPt),e=t[2],a=t[1],u=ira(r,uPt,function(n){var t=kaa(KJ,r),a=jaa(r,ePt),u=L8e(0);return function(r,f,i){return GL(n,r,f,u(r,f,GL(e,r,f,a(r,f,GL(n,r,f,_We(e,t,r,f,i))))))}}),f=jaa(r,fPt),i=yaa(r);return function(r,t,c){return i(r,t,f(r,t,GL(a,r,t,_We(e,u,r,t,hWe(tPt,0,t,n(r,t,c))))))}}function kfa(r){return $aa(r,1,kTt,0,4,eXe[3])}function pfa(r){return Kaa(r,1,jTt,0,4,eXe[4])}function mfa(r){return $aa(r,1,BTt,0,1,function(r,n,t){return hWe(lTt,0,n,t)})}function dfa(r){return Kaa(r,1,bTt,0,1,eXe[4])}function _fa(r){return $aa(r,1,sTt,0,2,function(r,n,t){return hWe(ATt,0,n,t)})}function hfa(r){return Kaa(r,1,oTt,0,2,eXe[4])}function xfa(r){return $aa(r,1,vTt,1,8,function(r,n,t){return hWe(cTt,0,n,t)})}function yfa(r){return Kaa(r,1,iTt,1,8,function(r,n,t){return hWe(fTt,0,n,t)})}function wfa(r){return $aa(r,1,uTt,3,8,function(r,n,t){return hWe(aTt,0,n,t)})}function gfa(r){return Kaa(r,1,eTt,3,8,function(r,n,t){return hWe(tTt,0,n,t)})}function qfa(r){return q9e(0,r,nTt,rTt,YNt,function(r,n,t){var e=b9e(r,WNt),a=e[2],u=e[1],f=Daa(r),i=pea(),c=kea(r,0,t),v=Uaa(r);return function(r,e,o){return GL(n,r,e,GL(t,r,e,v(r,e,c(r,e,GL(u,r,e,GL(a,r,e,i(r,e,hWe(JNt,0,e,GL(n,r,e,GL(t,r,e,hWe(XNt,0,e,_We(f,a,r,e,o))))))))))))}})}function Ifa(r){return q9e(0,r,ZNt,SNt,0,function(r,n,t){var e=b9e(r,VNt),a=e[2],u=e[1],f=Eaa(r),i=pea(),c=Uaa(r),v=bea();return function(r,e,o){return GL(t,r,e,v(r,e,GL(u,r,e,GL(n,r,e,GL(a,r,e,c(r,e,GL(n,r,e,GL(t,r,e,i(r,e,hWe(zNt,0,e,GL(a,r,e,hWe(LNt,0,e,f(r,e,o)))))))))))))}})}function Dfa(r,n,t){var e=_ua(n,t);if(e){var a=e[1];switch(a[0]){case 1:var u=[8,[0,wve,a[1]]];return function(r,n,t){return hWe(u,0,n,t)};case 2:return L8e(a[1])}}throw kQ([0,YL,ght],1)}function Efa(r,n,t){var e=_ua(n,t);if(e){var a=e[1];if(1===a[0]){var u=[9,[0,wve,a[1]]];return function(r,n,t){return hWe(u,0,n,t)}}}throw kQ([0,YL,wht],1)}function Nfa(r,n){return Yua(Jua,r,n)}var Tfa=dCe[1];function Ffa(r,n){return"number"!=typeof n&&0!==n[0]?1:0}function Mfa(r,n){return"number"==typeof n?0:1}function Pfa(r,n,t,e){if(r){var a=_Ce[10].call(null,e,t),u=MCe(dCe[16].call(null,Mfa,n)),f=_Ce[8].call(null,u,a),i=MCe(dCe[16].call(null,Ffa,n)),c=_Ce[8].call(null,i,e);return FCe(1,_Ce[7].call(null,c,f))}var v=MCe(dCe[16].call(null,Mfa,n));return FCe(2,_Ce[8].call(null,v,e))}function Ufa(r){var n=Pme(r);if("number"!=typeof n&&2===n[0]){var t=n[1];switch(t){case 12:return 1;case 13:return 2;case 6:case 11:return[1,t];case 3:case 4:case 5:case 8:case 9:case 10:case 14:return[2,t]}}return 0}function Gfa(r,n,t,e,a){var u=dCe[28].call(null,e,t);if("number"==typeof u)switch(u){case 0:return[0,n,dWe];case 1:var f=hua(r,n,e,a),i=f[1],c=[9,[0,wve,f[2]]],v=Sra(r);return[0,i,function(r,n,t){return v(r,n,hWe(c,0,n,t))}];default:return[0,xua(n,e,Zra(r),a),dWe]}return[0,wua(r,n,e,u[1],a)[1],dWe]}function $fa(r){if("number"==typeof r)return 0;switch(r[0]){case 0:return[2,r[1]];case 2:return[0,Qna(3,PL(wye[19],r[1]))];case 3:return[0,Qna(4,PL(gye[19],r[1]))];case 4:var n=PL(qye[25],r[1]);return[3,5,Pxe(xxe(n,Oxe(2,31))?Ixe(n,Oxe(2,32)):n)];case 5:var t=PL(Iye[25],r[1]);return[4,6,Gxe(xxe(t,Oxe(2,63))?Ixe(t,Oxe(2,64)):t)];case 7:return[0,Qna(8,PL(Dye[19],r[1]))];case 8:return[0,Qna(9,PL(Eye[19],r[1]))];case 9:return[3,10,Pxe(PL(Nye[25],r[1]))];case 10:return[4,11,Gxe(PL(Tye[25],r[1]))];case 11:return[5,r[1]];case 12:return[6,r[1]];case 13:return[0,Qna(14,r[1])];case 14:return[7,r[1]];case 15:return[8,r[1]];default:return[1,PL(xye[25],r[1])]}}function Kfa(r){return[0,[3,a8e([7,$fa(r)])],dWe]}function Ofa(r,n,t){var e=Kfa(t),a=e[2],u=lua(r,e[1],n);return function(r,n,t){return _We(a,u,r,n,t)}}function Rfa(r,n,t,e,a){function u(n,a,u){return GL(t,n,a,_We(e,r,n,a,u))}var f=IWe(1),i=u9e(Tdt),c=i9e(Mdt),v=u9e(Pdt);function o(r,n,t){return f(u,a,r,n,t)}var A=i9e(Gdt);return function(r,n,a){return GL(t,r,n,GL(t,r,n,A(r,n,hWe(Udt,0,n,v(r,n,GL(e,r,n,GL(e,r,n,c(r,n,hWe(Fdt,0,n,i(r,n,hWe(Ndt,0,n,hWe(Edt,0,n,GL(o,r,n,a)))))))))))))}}function Qfa(r,n,t,e){return q9e(0,r,GWe(11,n),ndt,rdt,function(r,n,a){var u=b9e(r,Ymt),f=u[2],i=u[1],c=Jta(r),v=P8e(r,wJ),o=Lta(r,64),A=PL(t,r),s=Zta(r),b=Zta(r);return $L(e,r,n,a,function(r,t,e){return GL(n,r,t,b(r,t,GL(a,r,t,s(r,t,GL(A,r,t,GL(i,r,t,GL(f,r,t,o(r,t,v(r,t,_We(f,c,r,t,e))))))))))})})}function Cfa(r,n,t,e,a){function u(n,a,u){return GL(t,n,a,_We(e,r,n,a,u))}var f=IWe(1),i=u9e(Xmt);function c(r,n,t){return f(u,a,r,n,t)}var v=u9e(Jmt);return function(r,n,a){return GL(t,r,n,v(r,n,GL(e,r,n,i(r,n,hWe(Wmt,0,n,hWe(Zmt,0,n,GL(c,r,n,a)))))))}}function Hfa(r,n,t,e){return q9e(0,r,GWe(6,n),Tmt,Nmt,function(r,n,a){var u=b9e(r,Emt),f=u[2],i=u[1],c=Jta(r),v=P8e(r,wJ),o=Vta(r,64),A=PL(t,r),s=Xta(r),b=Xta(r);return $L(e,r,n,a,function(r,t,e){return GL(n,r,t,b(r,t,GL(a,r,t,s(r,t,GL(A,r,t,GL(i,r,t,GL(f,r,t,o(r,t,v(r,t,_We(f,c,r,t,e))))))))))})})}function Vfa(r){var n=P8e(r,wJ),t=a9e(7,Dmt);return function(r,e,a){return t(r,e,hWe(Imt,0,e,n(r,e,a)))}}function Lfa(r){var n=Vfa(r),t=i9e(qmt);return function(r,e,a){return t(r,e,hWe(gmt,0,e,n(r,e,a)))}}function zfa(r,n,t){return q9e(0,r,GWe(10,n),wmt,ymt,function(r,n,e){var a=l9e(r,dmt),u=a[2],f=a[1],i=Lfa(r),c=[20,[1,t]];return function(r,t,a){return GL(n,r,t,hWe(xmt,0,t,GL(e,r,t,hWe(hmt,0,t,hWe(c,0,t,GL(f,r,t,GL(u,r,t,GL(u,r,t,i(r,t,GL(u,r,t,hWe(_mt,0,t,a)))))))))))}})}function Sfa(r,n,t){return q9e(0,r,GWe(5,n),mmt,pmt,function(r,n,e){var a=l9e(r,lmt),u=a[2],f=a[1],i=Vfa(r),c=[20,[1,t]];return function(r,t,a){return GL(n,r,t,hWe(kmt,0,t,GL(e,r,t,hWe(jmt,0,t,hWe(c,0,t,GL(f,r,t,GL(u,r,t,i(r,t,GL(u,r,t,hWe(Bmt,0,t,a))))))))))}})}function Zfa(r,n){var t=M8e(r,gJ),e=W8e(7,-1<t)break n;e=I8e(r)(xQt,hQt);break r;default:break n}switch(t){case 6:e=function(r,n,t){return hWe(wpt,0,n,t)};break r;case 7:e=function(r,n,t){return hWe(gpt,0,n,t)};break r;case 8:e=function(r,n,t){return hWe(qpt,0,n,t)};break r;case 9:e=function(r,n,t){return hWe(Ipt,0,n,t)};break r;case 11:e=function(r,n,t){return hWe(Dpt,0,n,t)};break r;case 12:e=function(r,n,t){return hWe(Ept,0,n,t)};break r;case 13:e=function(r,n,t){return hWe(Npt,0,n,t)};break r;case 14:e=function(r,n,t){return hWe(Tpt,0,n,t)};break r;case 15:e=function(r,n,t){return hWe(Fpt,0,n,t)};break r;default:break n}}e:switch(t){case 6:e=function(r,n,t){return hWe(Mpt,0,n,t)};break r;case 7:e=function(r,n,t){return hWe(Ppt,0,n,t)};break r;case 8:e=function(r,n,t){return hWe(Upt,0,n,t)};break r;case 9:var P=Dna(a),U=Ena(a);e=function(r,n,t){return U(r,n,P(r,n,hWe(Gpt,0,n,t)))};break r;case 13:e=function(r,n,t){return hWe($pt,0,n,t)};break r;case 14:e=function(r,n,t){return hWe(Kpt,0,n,t)};break r;case 15:var G=Ena(a);e=function(r,n,t){return G(r,n,hWe(rWt,0,n,t))};break r;case 2:case 17:break n;case 4:case 10:case 16:break;default:switch(a-3|0){case 2:case 7:if(3<=t)switch(t-3|0){case 8:e=function(r,n,t){return hWe(Jpt,0,n,t)};break r;case 9:e=function(r,n,t){return hWe(Ypt,0,n,t)};break r;case 2:break n;default:break e}break n;case 5:case 6:switch(t){case 1:e=Jfa(r,a,Opt,1);break r;case 3:e=q9e(0,r,GWe(a,"div"),Qpt,Rpt,function(r,n,t){var e=b9e(r,Ljt),u=e[2],f=e[1],i=N8e(r,cua(0,[2,a]),function(r,n,t){return hWe(0,0,n,t)},u),c=e9e(-1),v=Ena(a),o=N8e(r,cua(0,zjt),function(r,n,e){return GL(t,r,n,v(r,n,_We(c,i,r,n,e)))},u),A=e9e(XM),s=Nna(a);return function(r,e,a){return GL(n,r,e,GL(t,r,e,hWe(Sjt,0,e,s(r,e,GL(f,r,e,GL(n,r,e,_We(A,o,r,e,a)))))))}});break r;case 5:e=q9e(0,r,GWe(a,Vpt),Hpt,Cpt,function(r,n,t){var e=b9e(r,Rjt),u=e[2],f=e[1],i=xna(a),c=Nna(a),v=Nna(a),o=Wfa(r,i),A=Cna(r,5),s=Ena(a),b=Ena(a),l=M8e(r,gJ),B=L8e(-30),j=Ena(a),k=W8e(1,i-1|0),p=sta(n);function m(r,e,a){return p(r,e,k(r,e,GL(t,r,e,j(r,e,hWe(Cjt,0,e,B(r,e,hWe(Qjt,0,e,l(r,e,GL(n,r,e,b(r,e,GL(t,r,e,s(r,e,A(r,e,GL(f,r,e,GL(u,r,e,GL(u,r,e,o(r,e,_We(u,v,r,e,a))))))))))))))))))}var d=IWe(0);function _(r,t,e){return d(m,n,r,t,e)}var h=W8e(J8e,33-i|0);function x(r,n,t){return _We(Z8e,c,r,n,t)}function y(r,t,e){return GL(n,r,t,_We(h,_,r,t,e))}var w=IWe(0);function g(r,n,t){return w(y,x,r,n,t)}var q=M8e(r,Hjt);return function(r,n,e){return GL(t,r,n,S8e(r,n,hWe(Vjt,0,n,q(r,n,_We(t,g,r,n,e)))))}});break r;case 11:case 12:break;default:e=Jfa(r,a,Lpt,0);break r}break;default:switch(t){case 1:e=ria(r,a,zpt,1);break r;case 5:e=q9e(0,r,GWe(a,Wpt),Zpt,Spt,function(r,n,t){var e=b9e(r,$jt),u=e[2],f=e[1],i=xna(a),c=L8e(1<t){if(4>t)break n;e=function(r,n,t){return hWe(nmt,0,n,t)};break r}if(16<=t){e=q9e(1,r,GWe(a,RZt),CZt,QZt,function(r,n,t){switch(a){case 3:case 8:var e=3;break;case 4:case 9:e=4;break;case 5:case 10:e=5;break;default:throw kQ([0,YL,mWt],1)}var u=Cna(r,e),f=P8e(r,KZt),i=L8e(0);return function(r,e,a){return GL(t,r,e,i(r,e,hWe(OZt,0,e,f(r,e,GL(n,r,e,_We(t,u,r,e,a))))))}});break r}var $=Tna(a),K=Dna(a),O=Ena(a);e=function(r,n,t){return O(r,n,K(r,n,hWe(rmt,0,n,$(r,n,t))))};break r}if(10<=t){if(16<=t){e=Cna(r,a);break r}var R=Tna(a),Q=Dna(a),C=Ena(a);e=function(r,n,t){return C(r,n,Q(r,n,hWe(tmt,0,n,R(r,n,t))))};break r}if(4<=t){e=function(r,n,t){return hWe(emt,0,n,t)};break r}var H=Nna(a);e=function(r,n,t){return hWe(amt,0,n,H(r,n,t))};break r}if(3>t)switch(t){case 0:e=Fta(TJ,Bna,dta,r);break r;case 2:e=Fta(FJ,Uta,_ta,r);break r}}var V=[0,Jhe(n),0];e=A9e(r,fmt,[1,umt,[0,Nge(t),V]])}var L=iua(n);return[0,iua(n),L,e]}function tia(r){return function(n){r:{if("number"!=typeof n){switch(n[0]){case 2:switch(n[1]){case 12:return function(r,n,t){return hWe(Tjt,0,n,t)};case 13:return function(r,n,t){return hWe(Fjt,0,n,t)};case 15:return Cea(r,0);case 2:case 7:return Qta(r);case 6:case 11:return function(r,n,t){return hWe(Mjt,0,n,t)};case 16:case 18:break;case 0:case 17:case 19:break r;default:return function(r,n,t){return hWe(Pjt,0,n,t)}}break;case 3:if(1!==n[1])break r;break;case 8:if(n[1])return function(r){var n=b9e(r,G_t),t=n[2],e=n[1],a=b9e(r,$_t),u=a[2],f=a[1],i=kra(0),c=hea(r,K_t),v=zea(0,1),o=zea(0,1);function A(r,n,e){return GL(t,r,n,o(r,n,GL(u,r,n,_We(v,c,r,n,e))))}var s=IWe(0),b=hea(r,O_t),l=zea(0,0);function B(r,n,t){return s(A,i,r,n,t)}var j=zea(0,0);return function(r,n,a){return GL(f,r,n,GL(e,r,n,GL(t,r,n,j(r,n,GL(u,r,n,l(r,n,_We(b,B,r,n,a)))))))}}(r);break r;default:break r}return hea(r,Gjt)}if(1===n){return function(r,n,t){return hWe(0,0,n,t)}}}return A9e(r,Ujt,Jhe(n))}}function eia(r){var n=[18,[3,r]];return function(r,t,e){return hWe(n,0,t,e)}}function aia(r){var n=[18,[2,r]];return function(r,t,e){return hWe(n,0,t,e)}}function uia(r,n,t,e){var a=q9e(1,r,xRt,hRt,_Rt,function(r,n,t){var e=function(r){return q9e(1,r,DRt,IRt,qRt,function(r,n,t){var e=Gra(),a=r9e(4),u=W8e(0,Hea()),f=P8e(r,wRt),i=Lea();return function(r,c,v){return GL(t,r,c,GL(n,r,c,i(r,c,hWe(gRt,0,c,f(r,c,GL(t,r,c,u(r,c,a(r,c,GL(n,r,c,e(r,c,hWe(yRt,0,c,v)))))))))))}})}(r),a=nea(r),u=Bea(r,1,dRt);return function(r,f,i){return GL(n,r,f,GL(t,r,f,u(r,f,_We(a,e,r,f,i))))}}),u=oia(r,n,e),f=oia(r,n,t);return function(r,n,t){return f(r,n,_We(u,a,r,n,t))}}function fia(r,n,t,e,a){r:{n:{t:{e:{a:{u:{f:{i:{c:{v:{o:{A:{s:{b:{l:{B:{j:{k:{p:{m:{d:{_:{h:{x:{var f=t,i=e;y:for(;;){let t=i;var c=function(e,a){var u=xWe(function(t){return cia(r,n,e,t)},t);return[0,e,function(r,n,t){return _We(u,a,r,n,t)}]};if("number"==typeof f)break t;switch(f[0]){case 0:if(!i)break r;var v=i[2];if(!v)break r;if(v[2])break r;var o=v[1],A=i[1],s=rde(Ume(A[3][1])),b=s[2],l=s[1],B=s[5],j=LY(s[4]);switch(b){case 0:var k=LY(B);break;case 1:throw kQ([0,YL,svt],1);default:k=0}var p=iia(r,n,A),m=p[2],d=p[1];w:{if("number"!=typeof d&&3===d[0]){var _=d[1][2];if("number"!=typeof _&&0===_[0]&&_[2]){var h=o[2];if(0===j){var x=1;break w}if(1===j){x=1;break w}if(0===h[0]){var w=h[1],g=w[1];if("number"==typeof g&&!g&&LY(w[2])===j){x=1;break w}}x=0;break w}}x=0}if("number"==typeof d)break u;if(3!==d[0])break u;var I=d[1][2];if("number"==typeof I)break u;if(0!==I[0])break u;var D=I[2],E=I[1];if(!D)break a;var N=D[1];if(!x)break a;if(0!==l)throw kQ([0,YL,bvt],1);var T=o[2];if(0===j)break e;if(1!==j){if(0===T[0]){var F=T[1],M=F[1];if("number"==typeof M&&!M){var P=F[2];if(LY(P)!==j)throw kQ([0,YL,lvt],1);f=N,i=P;break}}throw kQ([0,zL,Bvt],1)}f=N,i=[0,o,0];break;case 1:break f;case 2:break i;case 3:break c;case 4:break v;case 5:if(!i)break r;if(i[2])break r;var U=f[1];return[0,0,ina(r,U,oia(r,n,i[1]))];case 6:break o;case 7:break A;case 8:break s;case 9:break b;case 12:break l;case 13:break B;case 14:break j;case 15:break k;case 16:break p;case 17:if(!i)break r;if(i[2])break r;return iia(r,n,i[1]);case 18:break m;case 19:if(i)break r;return[0,0,daa(r)];case 20:break d;case 23:break _;case 24:break h;case 25:break x;case 26:break y;default:break r}}if(!i)break r;if(i[2])break r;var G=f[1],$=i[1],K=W8e(0,HH(rua[18].call(null,r,[0,G,0])[1])),O=rua[20].call(null,r,G),Q=oia(r,n,$);return[0,Olt,function(r,n,t){return Q(r,n,O(r,n,hWe(2,0,n,K(r,n,hWe(Klt,0,n,t)))))}]}if(i)break r;var C=f[1],H=I8e(r)($lt,Glt),V=L8e(0),L=Maa(r);if(1>>0)throw kQ([0,YL,sxt],1);var z=l9e(r,"instructions"),S=z[2],Z=z[1],W=z8e(bxt),X=function(r,n,t){return _We(W,Z,r,n,t)},J=v9e(lxt),Y=function(r,n,t){return GL(S,r,n,J(r,n,qWe(DX,X,dWe,r,n,t)))},rr=l9e(r,Bxt),tr=rr[2],er=rr[1],ar=[12,[0,wve,m8e(r,VEt)]],ur=D9e(r),fr=function(r,n,t){return GL(S,r,n,ur(r,n,hWe(jxt,0,n,t)))},ir=IWe(1),cr=v9e(kxt),vr=b9e(r,"marker"),or=vr[2],Ar=vr[1],sr=b9e(r,pxt),br=sr[2],lr=sr[1],Br=l9e(r,mxt),jr=Br[2],kr=Br[1],pr=b9e(r,dxt),dr=pr[2],_r=pr[1],hr=b9e(r,_xt),xr=hr[2],yr=hr[1],wr=Eaa(r),qr=bea(),Ir=eua(function(r,n,t){return _We(dr,qr,r,n,t)}),Dr=pea(),Er=eua(function(r,n,t){return _We(dr,Dr,r,n,t)}),Nr=g9e(0,r,"blob_clear",SCt,0,function(r,n){var t=b9e(r,LCt),e=t[2],a=t[1],u=b9e(r,zCt),f=u[2],i=u[1],c=j9e(r,function(r){var n=W8e(0,4),t=eXe[4],u=L8e(0);return function(r,f,i){return GL(e,r,f,u(r,f,t(r,f,GL(e,r,f,_We(n,a,r,f,i)))))}}),v=W8e(4,4),o=W8e(0,3),A=mea(r);return function(r,t,e){return GL(n,r,t,A(r,t,GL(i,r,t,GL(a,r,t,GL(f,r,t,o(r,t,_We(v,c,r,t,e)))))))}}),Tr=rua[28].call(null,1,r,[0,C,0]),Fr=kra(0),Mr=Daa(r),Pr=eua(br),Ur=pea(),Gr=eua(function(r,n,t){return _We(dr,Ur,r,n,t)}),$r=kea(r,0,br),Or=l9e(r,hxt),Qr=Or[2],Cr=Or[1],Hr=Haa(r),Vr=eua(br),Lr=a9e(1,wxt),zr=eua(br),Zr=L8e(0),Wr=z8e(qxt),Xr=i9e(lC(16,0,0)),Jr=Iaa(r),Yr=P8e(r,"unexpected, non-zero stable memory size"),rn=function(r,n,t){return GL(jr,r,n,Vr(r,n,hWe(xxt,0,n,_We(Hr,Z,r,n,t))))},nn=Naa(r),tn=l9e(r,Dxt),en=tn[2],an=tn[1],un=b9e(r,Ext),fn=un[2],cn=un[1],vn=l9e(r,Nxt),on=vn[2],An=vn[1],sn=Haa(r),bn=a9e(0,lC(PG,0,0)),ln=a9e(0,lC(PG,0,0)),Bn=eua(br),jn=a9e(0,Mxt),kn=Caa(r),pn=i9e(lC(16,0,0)),mn=Naa(r),_n=Taa(r),hn=eua(Caa(r)),xn=a9e(0,lC(65524,0,0)),yn=Oaa(r),wn=Caa(r),gn=a9e(0,lC(Fu,0,0)),qn=z8e(Pxt),In=M8e(r,PL(R3(Uxt),wH(TM,2))),En=L8e(2),Nn=Caa(r),Tn=a9e(0,lC(65532,0,0)),Fn=i9e(lC(16,0,0)),Mn=a9e(1,$xt),Pn=function(r,n,t){return GL(en,r,n,bn(r,n,_We(sn,Z,r,n,t)))},Un=Iaa(r),Gn=Caa(r),$n=function(r,n,t){return nn(r,n,hWe(Ixt,0,n,Yr(r,n,Jr(r,n,Xr(r,n,GL(Cr,r,n,GL(or,r,n,GL(lr,r,n,Wr(r,n,GL(kr,r,n,Zr(r,n,L(r,n,GL(jr,r,n,zr(r,n,hWe(gxt,0,n,GL(Qr,r,n,Lr(r,n,hWe(yxt,0,n,qWe(DX,rn,dWe,r,n,Y(r,n,t))))))))))))))))))))},Kn=function(r,n,t){return Un(r,n,Mn(r,n,Fn(r,n,GL(an,r,n,GL(en,r,n,Tn(r,n,Nn(r,n,GL(cn,r,n,GL(fn,r,n,L(r,n,GL(fn,r,n,En(r,n,hWe(Gxt,0,n,In(r,n,qn(r,n,GL(en,r,n,gn(r,n,wn(r,n,yn(r,n,GL(en,r,n,xn(r,n,hn(r,n,_n(r,n,mn(r,n,pn(r,n,GL(An,r,n,GL(on,r,n,kn(r,n,GL(lr,r,n,GL(on,r,n,jn(r,n,GL(kr,r,n,GL(jr,r,n,Bn(r,n,hWe(Fxt,0,n,GL(en,r,n,ln(r,n,hWe(Txt,0,n,qWe(DX,Pn,dWe,r,n,Y(r,n,t))))))))))))))))))))))))))))))))))))))))},On=z8e(Oxt),Rn=uea(r,YY(function(n){return[0,n[1],function(n){return Yra(r)}]},Zme(C)[2])),Qn=Maa(r),Cn=L8e(0),Hn=P8e(r,"StableMem.mem_size non-zero"),Vn=Naa(r),Ln=function(r,n,t){return On(r,n,Gn(r,n,GL(Ar,r,n,GL(or,r,n,hWe(Kxt,0,n,qWe(DX,Kn,$n,r,n,$r(r,n,GL(_r,r,n,Gr(r,n,GL(jr,r,n,Pr(r,n,Mr(r,n,GL(dr,r,n,Fr(r,n,Tr(r,n,GL(yr,r,n,GL(dr,r,n,Nr(r,n,GL(jr,r,n,Er(r,n,Ir(r,n,_We(wr,xr,r,n,t))))))))))))))))))))))},zn=function(r,n,t){return Vn(r,n,hWe(Rxt,0,n,Hn(r,n,Cn(r,n,_We(Qn,Rn,r,n,t)))))},Sn=IWe(0),Zn=Iaa(r),Wn=function(r,n,t){return ir(S,fr,r,n,t)},Xn=function(r,n,t){return Sn(zn,Ln,r,n,t)},Jn=z8e(Cxt);return[0,0,function(r,n,t){return Jn(r,n,GL(Z,r,n,Zn(r,n,GL(er,r,n,GL(tr,r,n,hWe(Qxt,0,n,GL(Xn,r,n,GL(S,r,n,cr(r,n,GL(Wn,r,n,hWe(ar,0,n,_We(V,H,r,n,t))))))))))))}]}if(i)break r;var Yn=f[1],nt=b9e(r,Hxt),tt=nt[2],et=nt[1],at=b9e(r,Vxt),ut=at[2],ft=at[1],it=l9e(r,Lxt),ct=it[2],vt=it[1],ot=l9e(r,zxt),At=ot[2],st=ot[1],bt=Oaa(r),lt=Faa(r),Bt=P8e(r,"StableMem.get_version() > version_max"),jt=t9e(7,2),kt=Faa(r),pt=P8e(r,"StableMem.get_version() == version_no_stable_memory"),mt=t9e(5,0),dt=Faa(r),_t=a9e(0,lC(65532,0,0)),ht=Oaa(r),xt=Caa(r),yt=z8e(Sxt),wt=a9e(0,lC(Fu,0,0)),gt=Oaa(r),qt=Naa(r),It=a9e(0,lC(65524,0,0)),Dt=Raa(r),Et=D9e(r),Nt=a9e(0,lC(PG,0,0)),Tt=i9e(lC(16,0,0)),Ft=a9e(1,Wxt),Mt=Iaa(r),Pt=Eaa(r),Ut=eua(ut),Gt=eua(tt),$t=a9e(0,Xxt),Kt=PL(uua[1][12],function(r,n,t){return GL(ct,r,n,$t(r,n,Gt(r,n,_We(Ut,Pt,r,n,t))))}),Ot=Oaa(r),Rt=Laa(r),Qt=a9e(0,Jxt),Ct=eua(ut),Ht=i9e(lC(16,0,0)),Vt=Naa(r),Lt=Raa(r),zt=D9e(r),St=a9e(0,Yxt),Zt=eua(ut),Wt=Eaa(r),Xt=eua(ut),Jt=eua(tt),Yt=z8e(ryt),re=PL(uua[1][12],function(r,n,t){return Yt(r,n,Jt(r,n,_We(Xt,Wt,r,n,t)))}),ne=Oaa(r),te=z8e(nyt),ue=Laa(r),fe=a9e(0,tyt),ie=eua(ut),ce=z8e(eyt),ve=P8e(r,"StableMem.get_version() != version_no_stable_memory"),oe=e9e(0),Ae=Faa(r),se=Naa(r),be=uua[27].call(null,r,[0,Yn,0]),le=function(r,n,t){return Vt(r,n,Ht(r,n,GL(vt,r,n,GL(ct,r,n,Ct(r,n,Qt(r,n,Rt(r,n,GL(ct,r,n,GL(ut,r,n,Ot(r,n,GL(Kt,r,n,Mt(r,n,Ft(r,n,Tt(r,n,GL(st,r,n,GL(At,r,n,Nt(r,n,Et(r,n,Dt(r,n,GL(At,r,n,It(r,n,qt(r,n,hWe(Zxt,0,n,gt(r,n,GL(At,r,n,wt(r,n,yt(r,n,xt(r,n,ht(r,n,GL(At,r,n,_t(r,n,dt(r,n,mt(r,n,pt(r,n,kt(r,n,jt(r,n,Bt(r,n,_We(lt,bt,r,n,t))))))))))))))))))))))))))))))))))))))},Be=function(r,n,t){return Ae(r,n,oe(r,n,ve(r,n,ce(r,n,ie(r,n,fe(r,n,ue(r,n,te(r,n,GL(ut,r,n,ne(r,n,GL(re,r,n,Zt(r,n,St(r,n,_We(zt,Lt,r,n,t))))))))))))))},je=4===Dce[1]?I8e(r)(fyt,uyt):dWe,ke=[6,[0,wve,w8e(r,$J)]];return[0,UJ,function(r,n,t){return hWe(ke,0,n,je(r,n,be(r,n,GL(ft,r,n,GL(et,r,n,se(r,n,hWe(ayt,0,n,qWe(DX,Be,le,r,n,t))))))))}]}if(!i)break r;if(i[2])break r;var pe=i[1],me=f[1];if(1>>0)var de=F8e(r,Ult);else{var he=haa(r),xe=rua[27].call(null,r,me),ye=oia(r,n,pe);de=function(r,n,t){return ye(r,n,_We(xe,he,r,n,t))}}return[0,UJ,de]}var we=f[1],ge=UC(we,Q_);if(0>ge){var qe=UC(we,Qv);if(0<=qe){if(0>=qe){if(!i)break r;if(i[2])break r;var Ie=i[1],De=I8e(r)(sQt,AQt),Ee=Gna(),Ne=oia(r,n,Ie);return[0,0,function(r,n,t){return Ne(r,n,_We(Ee,De,r,n,t))}]}var Te=UC(we,IU);if(0<=Te){if(0>=Te){if(!i)break r;if(i[2])break r;var Fe=cia(r,n,1,i[1]);return[0,1,function(r,n,t){return Fe(r,n,hWe(Jst,0,n,t))}]}var Me=UC(we,vq);if(0<=Me){if(0>=Me){if(!i)break r;var Pe=i[2];if(!Pe)break r;if(Pe[2])break r;var Ue=i[1],Ge=cia(r,n,1,Pe[1]),$e=cia(r,n,1,Ue);return[0,1,function(r,n,t){return $e(r,n,Ge(r,n,hWe(Xst,0,n,t)))}]}var Ke=UC(we,CI);if(0<=Ke){if(0>=Ke){if(!i)break r;if(i[2])break r;var Oe=cia(r,n,1,i[1]);return[0,1,function(r,n,t){return Oe(r,n,hWe(Wst,0,n,t))}]}if(we===Bi){if(i)break r;var Re=_na(r,5),Qe=rua[7][25].call(null,r),Ce=_na(r,5),He=rua[7][23].call(null,r),Ve=_na(r,5),Le=rua[7][21].call(null,r);return[0,Zst,function(r,n,t){return Le(r,n,Ve(r,n,He(r,n,Ce(r,n,_We(Qe,Re,r,n,t)))))}]}if(we===cv){if(i)break r;var ze=_na(r,5),Se=rua[7][29].call(null,r),Ze=_na(r,5),We=rua[7][27].call(null,r);return[0,Sst,function(r,n,t){return We(r,n,Ze(r,n,_We(Se,ze,r,n,t)))}]}if(we!==Mp){if(we!==Sg)break r;if(!i)break r;if(i[2])break r;var Xe=i[1],Je=jaa(r,Vst),Ye=cia(r,n,Lst,Xe);return[0,zst,function(r,n,t){return _We(Ye,Je,r,n,t)}]}if(i)break r;return[0,0,Yra(r)]}if(we===ee){if(!i)break r;var na=i[2];if(!na)break r;var ta=na[2];if(!ta)break r;if(ta[2])break r;var ea=ta[1],aa=na[1],ua=i[1],fa=I8e(r)(Hst,Cst),ia=oia(r,n,ea),ca=oia(r,n,aa),va=cia(r,n,1,ua);return[0,0,function(r,n,t){return va(r,n,ca(r,n,_We(ia,fa,r,n,t)))}]}if(we===Xd){if(!i)break r;if(i[2])break r;var oa=cia(r,n,1,i[1]);return[0,1,function(r,n,t){return oa(r,n,hWe(Qst,0,n,t))}]}if(we===nE){if(!i)break r;if(i[2])break r;var Aa=i[1],sa=I8e(r)(Rst,Ost),ba=cia(r,n,1,Aa);return[0,1,function(r,n,t){return _We(ba,sa,r,n,t)}]}if(we!==vN){if(we!==Av)break r;if(!i)break r;if(i[2])break r;var la=i[1],ja=I8e(r)($st,Gst),ka=cia(r,n,1,la);return[0,1,function(r,n,t){return _We(ka,ja,r,n,t)}]}if(!i)break r;if(i[2])break r;var pa=cia(r,n,1,i[1]);return[0,1,function(r,n,t){return pa(r,n,hWe(Kst,0,n,t))}]}var ma=UC(we,QB);if(0<=ma){if(0>=ma){if(!i)break r;var da=i[2];if(!da)break r;if(da[2])break r;var _a=i[1],ha=cia(r,n,1,da[1]),xa=cia(r,n,1,_a);return[0,1,function(r,n,t){return xa(r,n,ha(r,n,hWe(Ust,0,n,t)))}]}if(we===mT){if(!i)break r;if(i[2])break r;var ya=i[1],wa=I8e(r)(Pst,Mst),ga=cia(r,n,1,ya);return[0,1,function(r,n,t){return _We(ga,wa,r,n,t)}]}if(we===Wp){if(!i)break r;if(i[2])break r;var qa=i[1],Ia=I8e(r)(Fst,Tst),Da=cia(r,n,1,qa);return[0,1,function(r,n,t){return _We(Da,Ia,r,n,t)}]}if(we===Ua){if(!i)break r;if(i[2])break r;var Ea=cia(r,n,1,i[1]);return[0,1,function(r,n,t){return Ea(r,n,hWe(Nst,0,n,t))}]}if(we!==bd){if(we!==gr)break r;if(!i)break r;var Na=i[2];if(!Na)break r;if(Na[2])break r;var Ta=i[1],Fa=cia(r,n,1,Na[1]),Ma=cia(r,n,1,Ta);return[0,1,function(r,n,t){return Ma(r,n,Fa(r,n,hWe(Ist,0,n,t)))}]}if(!i)break r;if(i[2])break r;var Pa=i[1],Ga=I8e(r)(Est,Dst),Ka=cia(r,n,1,Pa);return[0,1,function(r,n,t){return _We(Ka,Ga,r,n,t)}]}if(we===u){if(!i)break r;if(i[2])break r;var Oa=i[1],Ra=I8e(r)(qst,gst),Qa=cia(r,n,1,Oa);return[0,1,function(r,n,t){return _We(Qa,Ra,r,n,t)}]}if(we===Tc){if(!i)break r;if(i[2])break r;var Ca=i[1],Va=I8e(r)(wst,yst),La=cia(r,n,1,Ca);return[0,1,function(r,n,t){return _We(La,Va,r,n,t)}]}if(we===ra){if(!i)break r;if(i[2])break r;var za=i[1],Wa=I8e(r)(xst,hst),Xa=cia(r,n,1,za);return[0,1,function(r,n,t){return _We(Xa,Wa,r,n,t)}]}if(we!==UB){if(we!==TI)break r;if(!i)break r;if(i[2])break r;var Ya=cia(r,n,1,i[1]);return[0,1,function(r,n,t){return Ya(r,n,hWe(mst,0,n,t))}]}if(!i)break r;var ru=i[2];if(!ru)break r;if(ru[2])break r;var nu=ru[1],tu=i[1],eu=I8e(r)(_st,dst),au=cia(r,n,1,nu),uu=cia(r,n,1,tu);return[0,1,function(r,n,t){return uu(r,n,_We(au,eu,r,n,t))}]}var fu=UC(we,yf);if(0>fu){var iu=UC(we,j$);if(0<=iu){if(0>=iu){if(!i)break r;if(i[2])break r;var vu=i[1],ou=I8e(r)(vst,cst),Au=oia(r,n,vu);return[0,ost,function(r,n,t){return _We(Au,ou,r,n,t)}]}if(we===mf){if(!i)break r;if(i[2])break r;var su=i[1],bu=Pna(4),Bu=cia(r,n,fst,su);return[0,ist,function(r,n,t){return _We(Bu,bu,r,n,t)}]}if(we===eI){if(!i)break r;if(i[2])break r;var ju=cia(r,n,ast,i[1]);return[0,ust,function(r,n,t){return ju(r,n,hWe(est,0,n,t))}]}if(we===$U){if(!i)break r;if(i[2])break r;var ku=cia(r,n,nst,i[1]);return[0,tst,function(r,n,t){return ku(r,n,hWe(rst,0,n,t))}]}if(we!==dn){if(we!==vP)break r;if(!i)break r;if(i[2])break r;var mu=i[1],du=Pna(9),_u=cia(r,n,WAt,mu);return[0,XAt,function(r,n,t){return _We(_u,du,r,n,t)}]}if(!i)break r;if(i[2])break r;var hu=i[1],xu=Pna(3),wu=cia(r,n,JAt,hu);return[0,YAt,function(r,n,t){return _We(wu,xu,r,n,t)}]}if(we===zq){if(!i)break r;var gu=i[2];if(!gu)break r;if(gu[2])break r;var qu=gu[1],Iu=i[1],Eu=q9e(0,r,g_t,w_t,[0,0,0],function(r,n,t){return ura(r,y_t,4,function(e){var a=waa(r),u=kaa(x_t,r);return function(r,f,i){return GL(n,r,f,GL(t,r,f,GL(e,r,f,GL(u,r,f,_We(e,a,r,f,i)))))}})}),Nu=cia(r,n,SAt,qu),Tu=cia(r,n,ZAt,Iu);return[0,0,function(r,n,t){return Tu(r,n,_We(Nu,Eu,r,n,t))}]}if(we===H_){if(i)break r;return[0,0,w9e(0,r,h_t,[0,0,0],function(r){return ura(r,__t,4,function(n){var t=waa(r),e=kaa(d_t,r);return function(r,a,u){return GL(n,r,a,GL(e,r,a,_We(n,t,r,a,u)))}})})]}if(we===GR){if(!i)break r;var Mu=i[2];if(!Mu)break r;if(Mu[2])break r;var Pu=Mu[1],Uu=i[1],Gu=q9e(0,r,m_t,p_t,[0,0,0],function(r,n,t){return ura(r,k_t,4,function(e){var a=waa(r),u=kaa(j_t,r);return function(r,f,i){return GL(n,r,f,GL(t,r,f,GL(e,r,f,GL(u,r,f,_We(e,a,r,f,i)))))}})}),$u=cia(r,n,LAt,Pu),Ku=cia(r,n,zAt,Uu);return[0,0,function(r,n,t){return Ku(r,n,_We($u,Gu,r,n,t))}]}if(we!==Oj){if(we!==sd)break r;if(!i)break r;var Ou=i[2];if(!Ou)break r;if(Ou[2])break r;var Qu=Ou[1],Cu=i[1],Hu=q9e(0,r,c_t,[0,[0,i_t,0],f_t],[0,0,u_t],function(r,n,t){return ura(r,a_t,4,function(e){var a=waa(r),u=lua(r,t_t,0),f=kaa(e_t,r),i=mea(r),c=Qea(r);return function(r,v,o){return GL(n,r,v,c(r,v,i(r,v,GL(t,r,v,GL(e,r,v,GL(f,r,v,GL(u,r,v,_We(e,a,r,v,o))))))))}})}),Vu=cia(r,n,QAt,Qu),Lu=oia(r,n,Cu);return[0,CAt,function(r,n,t){return Lu(r,n,_We(Vu,Hu,r,n,t))}]}if(!i)break r;var zu=i[2];if(!zu)break r;if(zu[2])break r;var Su=zu[1],Zu=i[1],Wu=q9e(0,r,B_t,[0,[0,l_t,0],b_t],[0,0,s_t],function(r,n,t){return ura(r,A_t,4,function(e){var a=waa(r),u=lua(r,v_t,0),f=kaa(o_t,r),i=mea(r),c=Qea(r);return function(r,v,o){return GL(n,r,v,c(r,v,i(r,v,GL(t,r,v,GL(e,r,v,GL(f,r,v,GL(u,r,v,_We(e,a,r,v,o))))))))}})}),Xu=cia(r,n,HAt,Su),Yu=oia(r,n,Zu);return[0,VAt,function(r,n,t){return Yu(r,n,_We(Xu,Wu,r,n,t))}]}if(0>=fu){if(!i)break r;if(i[2])break r;var rf=cia(r,n,kst,i[1]);return[0,pst,function(r,n,t){return rf(r,n,hWe(jst,0,n,t))}]}var nf=UC(we,aT);if(0>nf){if(we===Bo){if(!i)break r;if(i[2])break r;var tf=cia(r,n,lst,i[1]);return[0,Bst,function(r,n,t){return tf(r,n,hWe(bst,0,n,t))}]}if(we===js){if(!i)break r;if(i[2])break r;var ef=i[1],af=Pna(8),uf=cia(r,n,Ast,ef);return[0,sst,function(r,n,t){return _We(uf,af,r,n,t)}]}if(we===bq)break n;if(we!==rc){if(we!==bR)break r;if(i)break r;var ff=1>>0?F8e(r,bUt):w9e(1,r,lUt,[0,0,0],function(r){var n=b9e(r,oUt),t=n[2],e=n[1],a=b9e(r,AUt),u=a[2],f=a[1],i=Cra(r),c=j9e(r,function(n){var t=b9e(r,fUt),e=t[2],a=t[1],f=b9e(r,iUt),i=f[2],c=f[1],v=jaa(r,cUt),o=pea(),A=eXe[6],s=Sea(r),b=kea(r,1,e),l=jaa(r,vUt);return function(r,t,f){return GL(n,r,t,l(r,t,GL(a,r,t,b(r,t,GL(c,r,t,GL(u,r,t,GL(n,r,t,s(r,t,GL(i,r,t,A(r,t,GL(n,r,t,GL(i,r,t,o(r,t,S8e(r,t,GL(e,r,t,_We(v,i,r,t,f))))))))))))))))}}),v=Jea(r,0,t),o=jaa(r,sUt);return function(r,n,a){return o(r,n,GL(e,r,n,v(r,n,GL(f,r,n,GL(t,r,n,c(r,n,_We(u,i,r,n,a)))))))}});return[0,0,ff]}if(!i)break r;if(i[2])break r;var cf=i[1],vf=1>>0?F8e(r,eUt):g9e(1,r,uUt,[0,aUt,0],[0,0,0],function(r,n){var t=b9e(r,XPt),e=t[2],a=t[1],u=Yra(r),f=b9e(r,JPt),i=f[2],c=f[1],v=b9e(r,YPt),o=v[2],A=v[1],s=ana(0,o),b=jaa(r,rUt),l=pea(),B=pea(),j=kea(r,1,i),k=jaa(r,nUt),p=pea();function m(r,t,a){return GL(n,r,t,p(r,t,GL(e,r,t,k(r,t,GL(c,r,t,j(r,t,GL(A,r,t,GL(n,r,t,B(r,t,GL(e,r,t,GL(o,r,t,l(r,t,S8e(r,t,GL(i,r,t,_We(b,s,r,t,a)))))))))))))))}var d=IWe(0),_=jaa(r,tUt),h=pea();function x(r,n,t){return d(m,u,r,n,t)}var y=bea();return function(r,t,u){return GL(n,r,t,y(r,t,GL(a,r,t,GL(n,r,t,h(r,t,GL(e,r,t,_We(_,x,r,t,u)))))))}}),of=oia(r,n,cf);return[0,0,function(r,n,t){return _We(of,vf,r,n,t)}]}d:if(0=ni){if(!i)break r;var ti=i[2];if(!ti)break r;if(ti[2])break r;return c(RAt,Una(r,9))}var ei=UC(we,Yy);if(0<=ei){if(0>=ei){if(!i)break r;if(i[2])break r;return bia(r,n,i[1],OAt)}var ai=UC(we,aj);if(0<=ai){if(0>=ai){if(!i)break r;if(i[2])break r;var ui=i[1],fi=Mna(3),ii=cia(r,n,$At,ui);return[0,KAt,function(r,n,t){return _We(ii,fi,r,n,t)}]}if(we===hA){if(!i)break r;if(i[2])break r;var ci=i[1],vi=Mna(9),oi=cia(r,n,UAt,ci);return[0,GAt,function(r,n,t){return _We(oi,vi,r,n,t)}]}if(we===bF){if(!i)break r;if(i[2])break r;var Ai=cia(r,n,MAt,i[1]);return[0,PAt,function(r,n,t){return Ai(r,n,hWe(FAt,0,n,t))}]}if(we!==tA){if(we!==vE)break r;if(!i)break r;if(i[2])break r;var si=i[1],bi=Mna(8),li=cia(r,n,IAt,si);return[0,DAt,function(r,n,t){return _We(li,bi,r,n,t)}]}if(!i)break r;if(i[2])break r;var ji=cia(r,n,NAt,i[1]);return[0,TAt,function(r,n,t){return ji(r,n,hWe(EAt,0,n,t))}]}if(we===Ng){if(!i)break r;if(i[2])break r;return sia(r,n,i[1],qAt)}if(we===cx){if(!i)break r;if(i[2])break r;return sia(r,n,i[1],gAt)}if(we===Rr){if(!i)break r;if(i[2])break r;var ki=i[1],pi=Mna(4),mi=cia(r,n,yAt,ki);return[0,wAt,function(r,n,t){return _We(mi,pi,r,n,t)}]}if(we!==RU){if(we!==y)break r;if(!i)break r;if(i[2])break r;var di=cia(r,n,mAt,i[1]);return[0,dAt,function(r,n,t){return di(r,n,hWe(pAt,0,n,t))}]}if(!i)break r;if(i[2])break r;var _i=cia(r,n,hAt,i[1]);return[0,xAt,function(r,n,t){return _i(r,n,hWe(_At,0,n,t))}]}var hi=UC(we,Cd);if(0<=hi){if(0>=hi){if(i)break r;return[0,0,daa(r)]}if(we===Kr){if(i)break r;var xi=1>>0?F8e(r,xUt):w9e(1,r,wUt,yUt,function(r){return _ea(r,3,function(r){return jaa(r,_Ut)},function(r){return jaa(r,hUt)},function(r){return L8e(0)})});return[0,0,xi]}if(we===Tp){if(i)break r;return[0,kAt,kaa(Qre,r)]}if(we===K_){if(!i)break r;if(i[2])break r;return bia(r,n,i[1],jAt)}if(we!==Zd){if(we!==CG)break r;if(!i)break r;if(i[2])break r;return bia(r,n,i[1],lAt)}if(!i)break r;if(i[2])break r;return bia(r,n,i[1],BAt)}if(we===RA){if(!i)break r;var yi=i[2];if(!yi)break r;if(yi[2])break r;return c(bAt,Una(r,10))}if(we===fR){if(!i)break r;var wi=i[2];if(!wi)break r;if(wi[2])break r;return c(sAt,mna(r))}if(we===qw){if(!i)break r;var gi=i[2];if(!gi)break r;if(gi[2])break r;return c(AAt,Una(r,8))}if(we!==aO){if(we!==Wy)break r;if(i)break r;return[0,oAt,saa(r)]}if(i)break r;var qi=[11,[0,wve,m8e(r,jOt)]];return[0,0,function(r,n,t){return hWe(qi,0,n,t)}]}var Ii=UC(we,no);if(0<=Ii){if(0>=Ii)return c(0,dea(r,2,0));var Di=UC(we,Ux);if(0<=Di){if(0>=Di){if(!i)break r;if(i[2])break r;var Ei=i[1],Ni=g9e(1,r,EHt,DHt,IHt,function(r,n){var t=Wta(r),e=bea();return function(r,a,u){return GL(n,r,a,_We(e,t,r,a,u))}}),Ti=oia(r,n,Ei);return[0,0,function(r,n,t){return _We(Ti,Ni,r,n,t)}]}if(we===vy){if(!i)break r;if(i[2])break r;var Fi=i[1],Mi=I8e(r)(sHt,AHt),Pi=oia(r,n,Fi);return[0,0,function(r,n,t){return _We(Pi,Mi,r,n,t)}]}if(we===Yx){if(!i)break r;var Ui=i[2];if(!Ui)break r;if(Ui[2])break r;return c(vAt,Una(r,4))}if(we===Dn){if(!i)break r;var Gi=i[2];if(!Gi)break r;if(Gi[2])break r;return c(cAt,Una(r,5))}if(we!==HM){if(we!==fd)break r;if(!i)break r;var $i=i[2];if(!$i)break r;if($i[2])break r;return c(fAt,Una(r,3))}if(!i)break r;var Ki=i[2];if(!Ki)break r;if(Ki[2])break r;return c(iAt,mna(r))}if(we===zo)return c(0,naa(r,0));if(we===aI)return c(0,naa(r,1));if(we===mr){if(!i)break r;var Oi=i[2];if(!Oi)break r;if(Oi[2])break r;var Ri=Oi[1],Qi=i[1],Ci=hea(r,0),Hi=oia(r,n,Ri),Vi=oia(r,n,Qi);return[0,0,function(r,n,t){return Vi(r,n,_We(Hi,Ci,r,n,t))}]}if(we!==jq){if(we!==xE)break r;if(!i)break r;if(i[2])break r;var Li=i[1],zi=Nna(3),Si=I8e(r)(cHt,iHt),Zi=oia(r,n,Li);return[0,uAt,function(r,n,t){return Zi(r,n,_We(Si,zi,r,n,t))}]}if(!i)break r;if(i[2])break r;var Wi=i[1],Xi=I8e(r)(oHt,vHt),Ji=oia(r,n,Wi);return[0,0,function(r,n,t){return _We(Ji,Xi,r,n,t)}]}var Yi=UC(we,gx);if(0<=Yi){if(0>=Yi){if(!i)break r;if(i[2])break r;var ec=i[1],uc=1<=ge){if(!i)break r;if(i[2])break r;return[0,0,F8e(r,olt)]}var Gc=UC(we,pu);if(0<=Gc){if(0>=Gc){if(i)break r;var $c=Xta(r),Kc=T9e(r);return[0,0,function(r,n,t){return _We(Kc,$c,r,n,t)}]}var Rc=UC(we,ny);d:{if(0>Rc){var Qc=UC(we,m$);if(0>Qc){var Cc=UC(we,Oc);if(0<=Cc){if(0>=Cc){if(i)break r;var Hc=Xta(r),Vc=I8e(r)(IYt,qYt);return[0,0,function(r,n,t){return _We(Vc,Hc,r,n,t)}]}if(we===Ev){if(i)break r;var Lc=Xta(r),zc=Iaa(r);return[0,0,function(r,n,t){return _We(zc,Lc,r,n,t)}]}if(we===iA){if(i)break r;var Zc=Xta(r),Wc=I8e(r)(EYt,DYt);return[0,0,function(r,n,t){return _We(Wc,Zc,r,n,t)}]}if(we===zU){if(i)break r;var Xc=Xta(r),Jc=[11,[0,wve,m8e(r,LEt)]];return[0,0,function(r,n,t){return hWe(Jc,0,n,Xc(r,n,t))}]}if(we!==R){if(we!==uo)break r;if(!i)break r;var Yc=i[2];if(!Yc)break r;var rv=Yc[2];if(!rv)break r;if(rv[2])break r;var nv=rv[1],tv=Yc[1],ev=i[1],av=rua[7][26].call(null,r),uv=cia(r,n,$bt,nv),fv=P8e(r,Kbt),iv=rua[7][23].call(null,r),vv=rua[7][24].call(null,r),ov=cia(r,n,Obt,tv),sv=rua[7][22].call(null,r),bv=cia(r,n,Rbt,ev);return[0,UJ,function(r,n,t){return bv(r,n,sv(r,n,ov(r,n,vv(r,n,iv(r,n,fv(r,n,_We(uv,av,r,n,t)))))))}]}if(i)break r;return[0,0,I8e(r)(Cbt,Qbt)]}if(we===hl){if(i)break r;var lv=Xta(r),Bv=Naa(r);return[0,0,function(r,n,t){return _We(Bv,lv,r,n,t)}]}if(we===yu){if(i)break r;var jv=Wta(r),kv=I8e(r)(gYt,wYt);return[0,0,function(r,n,t){return _We(kv,jv,r,n,t)}]}if(we===eb){if(i)break r;var pv=Wta(r),mv=L8e(Y9e());return[0,0,function(r,n,t){return _We(mv,pv,r,n,t)}]}if(we!==jP){if(we!==DU)break r;if(i)break r;var dv=Xta(r),_v=E9e(r);return[0,0,function(r,n,t){return _We(_v,dv,r,n,t)}]}if(i)break r;var hv=Xta(r);return[0,0,function(r,n,t){return hWe(5,0,n,hWe(Kre,0,n,z9e(r,n,hv(r,n,t))))}]}if(0>=Qc){if(!i)break r;var xv=i[2];if(!xv)break r;if(xv[2])break r;var yv=xv[1],wv=i[1],gv=rua[7][30].call(null,r),qv=cia(r,n,Zbt,yv),Iv=rua[7][28].call(null,r),Dv=cia(r,n,Wbt,wv);return[0,UJ,function(r,n,t){return Dv(r,n,Iv(r,n,_We(qv,gv,r,n,t)))}]}var Nv=UC(we,Tw);_:{h:{if(0<=Nv){if(0=io){if(i)break r;var co=xaa(r,Hz),vo=daa(r);return[0,0,function(r,n,t){return _We(vo,co,r,n,t)}]}var oo=UC(we,Jp);if(0<=oo){if(0>=oo){if(!i)break r;if(i[2])break r;var Ao=i[1],so=I8e(r)(cQt,iQt),bo=oia(r,n,Ao);return[0,0,function(r,n,t){return _We(bo,so,r,n,t)}]}if(we===Ab){if(!i)break r;if(i[2])break r;var lo=i[1],jo=I8e(r)(fQt,uQt),ko=oia(r,n,lo);return[0,0,function(r,n,t){return _We(ko,jo,r,n,t)}]}if(we===Nh){if(!i)break r;if(i[2])break r;var po=i[1],mo=maa(r),_o=mea(r),ho=Qea(r),xo=oia(r,n,po);return[0,3,function(r,n,t){return xo(r,n,ho(r,n,_We(_o,mo,r,n,t)))}]}if(we!==hO){if(we!==Ew)break r;if(!i)break r;if(i[2])break r;return QBe([0,gBe(Lle,flt,ult,0,0,0,alt),0]),Jce(0)}if(!i)break r;if(i[2])break r;return QBe([0,gBe(Lle,vlt,clt,0,0,0,ilt),0]),Jce(0)}if(we===fp){if(!i)break r;var yo=i[2];if(!yo)break r;if(yo[2])break r;var wo=yo[1],go=i[1],qo=Nna(8),Io=I8e(r)(tlt,nlt),Do=oia(r,n,wo),Eo=oia(r,n,go);return[0,elt,function(r,n,t){return Eo(r,n,Do(r,n,_We(Io,qo,r,n,t)))}]}if(we===ob){if(!i)break r;if(i[2])break r;var To=i[1],Fo=I8e(r)(nQt,rQt),Mo=oia(r,n,To);return[0,0,function(r,n,t){return _We(Mo,Fo,r,n,t)}]}if(we===$b){if(!i)break r;if(i[2])break r;var Po=i[1],Go=I8e(r)(YRt,JRt),$o=oia(r,n,Po);return[0,0,function(r,n,t){return _We($o,Go,r,n,t)}]}if(we!==DT){if(we!==wx)break r;if(!i)break r;if(i[2])break r;var Ko=i[1],Oo=g9e(1,r,kQt,jQt,BQt,function(r,n){var t=Wta(r),e=I8e(r)(lQt,bQt);return function(r,a,u){return GL(n,r,a,_We(e,t,r,a,u))}}),Ro=oia(r,n,Ko);return[0,0,function(r,n,t){return _We(Ro,Oo,r,n,t)}]}if(!i)break r;if(i[2])break r;var Qo=i[1],Co=I8e(r)(XRt,WRt),Ho=oia(r,n,Qo);return[0,rlt,function(r,n,t){return Ho(r,n,_We(Co,$na,r,n,t))}]}var Lo=UC(we,cu);_:{h:{if(0<=Lo){x:if(0CA){var HA=UC(we,Du);if(0<=HA){if(0>=HA)return c(0,dea(r,3,2));var VA=UC(we,ac);if(0<=VA){if(0>=VA){if(!i)break r;var LA=i[2];if(!LA)break r;if(LA[2])break r;var zA=LA[1],SA=i[1],ZA=$ea(r),WA=cia(r,n,Nbt,zA),XA=cia(r,n,0,SA);return[0,1,function(r,n,t){return XA(r,n,_We(WA,ZA,r,n,t))}]}if(we!==_G){if(we===ZG)break h;if(we===Ju)break _;if(we===KO)break d;if(we!==Ha)break r}if(!i)break r;var JA=i[2];if(!JA)break r;if(JA[2])break r;var YA=JA[1],rs=i[1],ns=we===Ha?4:9,ts=Nna(ns),es=Tea(r),as=cia(r,n,hlt,YA),us=cia(r,n,0,rs);return[0,[2,ns],function(r,n,t){return us(r,n,as(r,n,_We(es,ts,r,n,t)))}]}if(we===Zv)return c(0,dea(r,0,2));if(we===vU){if(!i)break r;if(i[2])break r;var fs=i[1],is=g9e(1,r,jGt,BGt,0,function(r,n){var t=b9e(r,lGt),e=t[2],a=t[1],u=paa(r),f=bea(),i=pea(),c=Qea(r);return function(r,t,v){return GL(n,r,t,c(r,t,GL(a,r,t,GL(e,r,t,i(r,t,GL(e,r,t,_We(f,u,r,t,v)))))))}}),cs=oia(r,n,fs);return[0,UJ,function(r,n,t){return _We(cs,is,r,n,t)}]}if(we===$a){if(!i)break r;var vs=i[2];if(!vs)break r;if(vs[2])break r;var os=vs[1],As=i[1],ss=qea(r),bs=cia(r,n,Dbt,os),ls=cia(r,n,0,As);return[0,Ebt,function(r,n,t){return ls(r,n,_We(bs,ss,r,n,t))}]}if(we!==ol){if(we!==Ub)break r;if(!i)break r;var Bs=i[2];if(!Bs)break r;var ks=Bs[2];if(!ks)break r;if(ks[2])break r;var ps=ks[1],ms=Bs[1],ds=i[1],_s=Iea(r),hs=nea(r),xs=Bea(r,1,qbt),ys=cia(r,n,0,ps),ws=cia(r,n,Ibt,ms),gs=cia(r,n,0,ds);return[0,0,function(r,n,t){return gs(r,n,ws(r,n,ys(r,n,xs(r,n,_We(hs,_s,r,n,t)))))}]}if(!i)break r;if(i[2])break r;var qs=i[1],Is=Xta(r),Ds=yea(r),Es=cia(r,n,0,qs);return[0,0,function(r,n,t){return Es(r,n,_We(Ds,Is,r,n,t))}]}var Ns=UC(we,Aj);if(0<=Ns){if(0>=Ns){if(!i)break r;if(i[2])break r;var Ts=cia(r,n,wbt,i[1]);return[0,gbt,function(r,n,t){return Ts(r,n,hWe(ybt,0,n,t))}]}if(we===wy){if(!i)break r;if(i[2])break r;var Fs=i[1],Ms=Nna(3),Ps=cia(r,n,hbt,Fs);return[0,xbt,function(r,n,t){return Ps(r,n,hWe(_bt,0,n,Ms(r,n,t)))}]}if(we===ry){if(!i)break r;if(i[2])break r;var Us=i[1],Gs=Nna(9),$s=cia(r,n,mbt,Us);return[0,dbt,function(r,n,t){return $s(r,n,hWe(pbt,0,n,Gs(r,n,t)))}]}if(we===XG){if(!i)break r;if(i[2])break r;var Ks=cia(r,n,jbt,i[1]);return[0,kbt,function(r,n,t){return Ks(r,n,hWe(Bbt,0,n,t))}]}if(we!==GF){if(we!==q)break r;if(!i)break r;if(i[2])break r;var Os=i[1],Rs=Nna(8),Qs=cia(r,n,obt,Os);return[0,Abt,function(r,n,t){return Qs(r,n,hWe(vbt,0,n,Rs(r,n,t)))}]}if(!i)break r;if(i[2])break r;var Cs=cia(r,n,bbt,i[1]);return[0,lbt,function(r,n,t){return Cs(r,n,hWe(sbt,0,n,t))}]}if(we===AP){if(!i)break r;if(i[2])break r;var Hs=i[1],Vs=b9e(r,cbt),Ls=Vs[2],zs=Vs[1],Ss=kaa(KJ,r),Zs=bea(),Ws=pea(),Xs=oia(r,n,Hs);return[0,0,function(r,n,t){return Xs(r,n,GL(zs,r,n,GL(Ls,r,n,Ws(r,n,GL(Ls,r,n,_We(Zs,Ss,r,n,t))))))}]}if(we===_d){if(!i)break r;var Js=i[2];if(!Js)break r;if(Js[2])break r;var Ys=Js[1],rb=i[1],tb=Kta(r),ab=cia(r,n,ibt,Ys),ub=oia(r,n,rb);return[0,0,function(r,n,t){return ub(r,n,_We(ab,tb,r,n,t))}]}if(we===fK){if(!i)break r;if(i[2])break r;var fb=i[1],ib=kaa(Ore,r),cb=cia(r,n,ubt,fb);return[0,fbt,function(r,n,t){return _We(cb,ib,r,n,t)}]}if(we!==aM){if(we!==Sa)break r;if(!i)break r;if(i[2])break r;var vb=cia(r,n,rbt,i[1]);return[0,nbt,function(r,n,t){return vb(r,n,hWe(Yst,0,n,t))}]}if(!i)break r;if(i[2])break r;var sb=i[1],bb=Nna(4),lb=cia(r,n,ebt,sb);return[0,abt,function(r,n,t){return lb(r,n,hWe(tbt,0,n,bb(r,n,t)))}]}if(0Bb){var jb=UC(we,PT);if(0<=jb){if(0>=jb){if(!i)break r;var kb=i[2];if(!kb)break r;var pb=kb[2];if(!pb)break r;if(pb[2])break r;var mb=pb[1],db=kb[1],_b=i[1],hb=Kea(r),xb=cia(r,n,1,mb),yb=cia(r,n,Mbt,db),wb=cia(r,n,0,_b);return[0,UJ,function(r,n,t){return wb(r,n,yb(r,n,_We(xb,hb,r,n,t)))}]}if(we!==iF){if(we===gy)break w;if(we===q_)break y;if(we===qx)break x;if(we!==Bq)break r}if(!i)break r;var gb=i[2];if(!gb)break r;var qb=gb[2];if(!qb)break r;if(qb[2])break r;var Ib=qb[1],Db=gb[1],Eb=i[1],Nb=we===Bq?4:9,Tb=Fea(r),Fb=Ena(Nb),Mb=cia(r,n,[2,Nb],Ib),Pb=cia(r,n,xlt,Db),Gb=cia(r,n,0,Eb);return[0,UJ,function(r,n,t){return Gb(r,n,Pb(r,n,Mb(r,n,_We(Fb,Tb,r,n,t))))}]}if(we===pP)break _;if(we===tc)break d;if(we===Hp){if(i)break r;return V8e(r),[0,0,I8e(r)(nCt,rCt)]}if(we!==kG){if(we!==ug)break r;if(!i)break r;var Kb=i[2];if(!Kb)break r;var Ob=Kb[2];if(!Ob)break r;if(Ob[2])break r;var Rb=Ob[1],Qb=Kb[1],Cb=i[1],Hb=Dea(r),Vb=cia(r,n,0,Rb),Lb=cia(r,n,Tbt,Qb),zb=cia(r,n,0,Cb);return[0,UJ,function(r,n,t){return zb(r,n,Lb(r,n,_We(Vb,Hb,r,n,t)))}]}if(!i)break r;if(i[2])break r;var Sb=i[1],Zb=gea(r),Wb=cia(r,n,0,Sb);return[0,Fbt,function(r,n,t){return _We(Wb,Zb,r,n,t)}]}if(0=Xb){if(i)break r;var Jb=Wta(r),Yb=Bra(r);return[0,0,function(r,n,t){return _We(Yb,Jb,r,n,t)}]}if(we===CF){if(i)break r;var rl=Wta(r),nl=I8e(r)(GJt,UJt);return[0,0,function(r,n,t){return _We(nl,rl,r,n,t)}]}if(we===$P){if(i)break r;var tl=Xta(r),el=N9e(r);return[0,0,function(r,n,t){return _We(el,tl,r,n,t)}]}if(we!==Kj){if(we!==Ba)break r;if(i)break r;if(Mce[1])throw kQ([0,YL,Ubt],1);var al=Iaa(r);return[0,0,function(r,n,t){return al(r,n,hWe(Gbt,0,n,hWe(GJ,0,n,t)))}]}if(i)break r;var ul=Wta(r),fl=I8e(r)(kYt,jYt);return[0,0,function(r,n,t){return _We(fl,ul,r,n,t)}]}if(we===Sr)break y;if(we===Ja)break x;if(we===QI){if(i)break r;return[0,0,kaa(Rre,r)]}if(we!==bw){if(we!==nr)break r;if(!i)break r;var il=i[2];if(!il)break r;if(il[2])break r;var cl=il[1],vl=i[1],Al=Ota(r),sl=cia(r,n,Pbt,cl),bl=oia(r,n,vl);return[0,0,function(r,n,t){return bl(r,n,_We(sl,Al,r,n,t))}]}if(i)break r;var ll=1>>0?F8e(r,mUt):w9e(1,r,dUt,[0,0,0],function(r){return _ea(r,3,function(r){return jaa(r,kUt)},function(r){return jaa(r,pUt)},function(r){return L8e(0)})});return[0,0,ll]}}if(!i)break r;var Bl=i[2];if(!Bl)break r;var jl=Bl[2];if(!jl)break r;if(jl[2])break r;var kl=jl[1],pl=Bl[1],ml=i[1],dl=Pea(r),_l=cia(r,n,[2,we===rt?5:10],kl),xl=cia(r,n,wlt,pl),wl=cia(r,n,0,ml);return[0,UJ,function(r,n,t){return wl(r,n,xl(r,n,_We(_l,dl,r,n,t)))}]}if(!i)break r;var gl=i[2];if(!gl)break r;var ql=gl[2];if(!ql)break r;if(ql[2])break r;var Il=ql[1],Dl=gl[1],El=i[1],Nl=Gea(r),Tl=cia(r,n,[1,we===Sr?6:11],Il),Fl=cia(r,n,qlt,Dl),Ml=cia(r,n,0,El);return[0,UJ,function(r,n,t){return Ml(r,n,Fl(r,n,_We(Tl,Nl,r,n,t)))}]}if(!i)break r;var Pl=i[2];if(!Pl)break r;var Ul=Pl[2];if(!Ul)break r;if(Ul[2])break r;var Gl=Ul[1],$l=Pl[1],Kl=i[1],Ol=we===Ja?3:8,Rl=Nea(r),Ql=Ena(Ol),Cl=cia(r,n,[2,Ol],Gl),Hl=cia(r,n,_lt,$l),Vl=cia(r,n,0,Kl);return[0,UJ,function(r,n,t){return Vl(r,n,Hl(r,n,Cl(r,n,_We(Ql,Rl,r,n,t))))}]}}if(!i)break r;var Ll=i[2];if(!Ll)break r;if(Ll[2])break r;var zl=Ll[1],Sl=i[1],Zl=Mea(r),Wl=cia(r,n,ylt,zl),Xl=cia(r,n,0,Sl);return[0,[2,we===Th?5:10],function(r,n,t){return Xl(r,n,_We(Wl,Zl,r,n,t))}]}if(!i)break r;var Jl=i[2];if(!Jl)break r;if(Jl[2])break r;var Yl=Jl[1],rB=i[1],nB=Uea(r),tB=cia(r,n,glt,Yl),eB=cia(r,n,0,rB);return[0,[1,we===pP?6:11],function(r,n,t){return eB(r,n,_We(tB,nB,r,n,t))}]}if(!i)break r;var aB=i[2];if(!aB)break r;if(aB[2])break r;var uB=aB[1],fB=i[1],iB=we===tc?3:8,cB=Nna(iB),vB=Eea(r),oB=cia(r,n,dlt,uB),AB=cia(r,n,0,fB);return[0,[2,iB],function(r,n,t){return AB(r,n,oB(r,n,_We(vB,cB,r,n,t)))}]}if(!i)break r;if(i[2])break r;var sB=i[1],bB=b9e(r,Sot),lB=bB[2],BB=bB[1],jB=dea(r,0,3),kB=P8e(r,Zot),pB=L8e(29),mB=bea(),dB=oia(r,n,sB);return[0,0,function(r,n,t){return dB(r,n,GL(BB,r,n,GL(lB,r,n,mB(r,n,pB(r,n,hWe(Wot,0,n,kB(r,n,_We(lB,jB,r,n,t))))))))}]}if(!i)break r;if(i[2])break r;var _B=i[1],hB=f[2],xB=f[1];p:{m:{d:{switch(xB){case 3:if(8===hB)break m;break p;case 4:if(9===hB)break m;break p;case 5:if(10===hB)break d;break p;case 6:if(11!==hB)break p;break;case 8:if(3===hB)break m;break p;case 9:if(4===hB)break m;break p;case 10:if(5===hB)break d;break p;case 11:if(6!==hB)break p;break;case 14:if(5!==hB)break p;var yB=Gna(),wB=cia(r,n,[2,xB],_B);return[0,Lot,function(r,n,t){return _We(wB,yB,r,n,t)}];case 2:case 7:switch(hB){case 5:case 10:var gB=Yta(r),qB=oia(r,n,_B);return[0,[2,hB],function(r,n,t){return _We(qB,gB,r,n,t)}];case 6:case 11:var IB=Jta(r),EB=oia(r,n,_B);return[0,[1,hB],function(r,n,t){return _We(EB,IB,r,n,t)}];case 3:case 4:case 8:case 9:var NB=W8e(Y8e,wna(hB)),TB=Yta(r),FB=oia(r,n,_B);return[0,[2,hB],function(r,n,t){return FB(r,n,_We(TB,NB,r,n,t))}];default:break p}default:break p}return[0,[1,hB],cia(r,n,[1,xB],_B)]}return[0,[2,hB],cia(r,n,[2,xB],_B)]}return[0,[2,hB],cia(r,n,[2,xB],_B)]}return[0,3,A9e(r,zot,xLe(f))]}if(!i)break r;if(i[2])break r;var MB=i[1],PB=f[2],GB=f[1];k:{p:{switch(GB){case 2:if(6<=PB){if(7<=PB)break k;var $B=g9e(1,r,qvt,gvt,wvt,function(r,n){var t=Jta(r),e=P8e(r,Vct),a=Vta(r,64);return function(r,u,f){return GL(n,r,u,a(r,u,e(r,u,_We(n,t,r,u,f))))}}),KB=oia(r,n,MB);return[0,Ivt,function(r,n,t){return _We(KB,$B,r,n,t)}]}if(3>PB)break k;var OB=g9e(1,r,GWe(PB,Nvt),Evt,Dvt,function(r,n){var t=Nna(PB),e=Yta(r),a=P8e(r,Hct),u=Vta(r,xna(PB));return function(r,f,i){return GL(n,r,f,u(r,f,a(r,f,GL(n,r,f,_We(e,t,r,f,i)))))}}),RB=oia(r,n,MB);return[0,iua([2,PB]),function(r,n,t){return _We(RB,OB,r,n,t)}];case 3:if(4!==PB)break p;var CB=Nna(4),HB=Ena(3),VB=cia(r,n,Tvt,MB);return[0,Fvt,function(r,n,t){return VB(r,n,_We(HB,CB,r,n,t))}];case 4:var LB=PB-3|0;if(2>>0)break p;switch(LB){case 0:var zB=xna(PB),SB=b9e(r,Mvt),ZB=SB[2],WB=SB[1],XB=W8e(Y8e,zB),JB=M8e(r,Pvt),YB=W8e(X8e,32-zB|0),rj=cia(r,n,Uvt,MB);return[0,Gvt,function(r,n,t){return rj(r,n,GL(WB,r,n,GL(ZB,r,n,YB(r,n,JB(r,n,_We(ZB,XB,r,n,t))))))}];case 2:var nj=Nna(5),tj=Ena(4),ej=cia(r,n,$vt,MB);return[0,Kvt,function(r,n,t){return ej(r,n,_We(tj,nj,r,n,t))}];default:break p}case 5:switch(PB){case 2:var uj=Wta(r),fj=cia(r,n,Ovt,MB);return[0,0,function(r,n,t){return _We(fj,uj,r,n,t)}];case 4:var ij=xna(PB),cj=b9e(r,Rvt),vj=cj[2],oj=cj[1],sj=W8e(Y8e,ij),bj=M8e(r,Qvt),lj=W8e(X8e,ij),Bj=cia(r,n,Cvt,MB);return[0,[2,PB],function(r,n,t){return Bj(r,n,GL(oj,r,n,GL(vj,r,n,lj(r,n,bj(r,n,_We(vj,sj,r,n,t))))))}];case 6:var jj=cia(r,n,Vvt,MB);return[0,Lvt,function(r,n,t){return jj(r,n,hWe(Hvt,0,n,t))}];case 14:var kj=Rna(r),pj=cia(r,n,zvt,MB);return[0,Svt,function(r,n,t){return _We(pj,kj,r,n,t)}];default:break k}case 6:if(2===PB){var mj=Xta(r),dj=cia(r,n,rot,MB);return[0,0,function(r,n,t){return _We(dj,mj,r,n,t)}]}if(5!==PB)break k;var _j=$H(xna(PB)),hj=l9e(r,Zvt),xj=hj[2],yj=hj[1],wj=M8e(r,Xvt),gj=u9e(_j),qj=cia(r,n,Yvt,MB);return[0,[2,PB],function(r,n,t){return qj(r,n,GL(yj,r,n,GL(xj,r,n,gj(r,n,hWe(Jvt,0,n,wj(r,n,GL(xj,r,n,hWe(Wvt,0,n,t))))))))}];case 7:if(8<=PB)switch(PB-8|0){case 3:var Ij=g9e(1,r,eot,tot,not,function(r,n){var t=Jta(r),e=P8e(r,Cct),a=Lta(r,64);return function(r,u,f){return GL(n,r,u,a(r,u,e(r,u,_We(n,t,r,u,f))))}}),Dj=oia(r,n,MB);return[0,aot,function(r,n,t){return _We(Dj,Ij,r,n,t)}];case 4:var Ej=b9e(r,uot),Nj=Ej[2],Tj=Ej[1],Fj=I8e(r)(iot,fot),Mj=Era(0,0,7),Pj=mra(r,oot,function(r,n,t){return GL(Nj,r,n,Mj(r,n,hWe(vot,0,n,hWe(cot,0,n,t))))},function(r,n,t){return _We(Nj,Fj,r,n,t)}),Uj=oia(r,n,MB);return[0,1,function(r,n,t){return Uj(r,n,GL(Tj,r,n,_We(Nj,Pj,r,n,t)))}];case 0:case 1:case 2:var Gj=g9e(1,r,GWe(PB,bot),sot,Aot,function(r,n){var t=Nna(PB),e=Yta(r),a=P8e(r,Qct),u=Lta(r,xna(PB));return function(r,f,i){return GL(n,r,f,u(r,f,a(r,f,GL(n,r,f,_We(e,t,r,f,i)))))}}),$j=oia(r,n,MB);return[0,iua([2,PB]),function(r,n,t){return _We($j,Gj,r,n,t)}];default:break k}break k;case 8:if(9===PB){var Rj=W8e(J8e,8),Qj=cia(r,n,lot,MB);return[0,Bot,function(r,n,t){return _We(Qj,Rj,r,n,t)}]}break;case 9:var Cj=PB-8|0;if(2>=Cj>>>0)switch(Cj){case 0:var Hj=xna(PB),Vj=b9e(r,jot),Lj=Vj[2],zj=Vj[1],Sj=W8e(Y8e,Hj),Zj=P8e(r,kot),Wj=tia(r)(pot),Xj=W8e(J8e,Hj),Jj=W8e(Y8e,Hj),Yj=cia(r,n,mot,MB);return[0,dot,function(r,n,t){return Yj(r,n,GL(zj,r,n,GL(Lj,r,n,Jj(r,n,Xj(r,n,GL(Lj,r,n,GL(Wj,r,n,Zj(r,n,_We(Lj,Sj,r,n,t)))))))))}];case 2:var rk=W8e(J8e,16),nk=cia(r,n,_ot,MB);return[0,hot,function(r,n,t){return _We(nk,rk,r,n,t)}]}break;case 10:if(12<=PB)break k;switch(PB){case 7:var tk=Sta(r),ek=cia(r,n,xot,MB);return[0,0,function(r,n,t){return _We(ek,tk,r,n,t)}];case 9:var ak=xna(PB),uk=b9e(r,yot),fk=uk[2],ik=uk[1],ck=W8e(Y8e,ak),vk=P8e(r,wot),ok=tia(r)(Fz),Ak=W8e(J8e,ak),sk=W8e(Y8e,ak),bk=cia(r,n,got,MB);return[0,qot,function(r,n,t){return bk(r,n,GL(ik,r,n,GL(fk,r,n,sk(r,n,Ak(r,n,GL(fk,r,n,GL(ok,r,n,vk(r,n,_We(fk,ck,r,n,t)))))))))}];case 11:var lk=cia(r,n,Dot,MB);return[0,Eot,function(r,n,t){return lk(r,n,hWe(Iot,0,n,t))}];default:break k}case 11:var Bk=PB-7|0;if(5>>0)break k;switch(Bk){case 0:var jk=Zta(r),kk=cia(r,n,Not,MB);return[0,0,function(r,n,t){return _We(kk,jk,r,n,t)}];case 3:var pk=xna(PB),mk=l9e(r,Tot),dk=mk[2],_k=mk[1],hk=P8e(r,Mot),xk=tia(r)(Pot),yk=f9e($H(pk)),wk=i9e($H(pk)),gk=cia(r,n,Uot,MB);return[0,[2,PB],function(r,n,t){return gk(r,n,GL(_k,r,n,GL(dk,r,n,wk(r,n,yk(r,n,GL(dk,r,n,GL(xk,r,n,hk(r,n,GL(dk,r,n,hWe(Fot,0,n,t))))))))))}];case 5:var qk=cia(r,n,$ot,MB);return[0,1,function(r,n,t){return qk(r,n,hWe(Got,0,n,t))}];default:break k}case 12:var Ik=PB-7|0;if(6>>0)break k;switch(Ik){case 0:var Dk=I8e(r)(Oot,Kot),Ek=cia(r,n,1,MB);return[0,0,function(r,n,t){return _We(Ek,Dk,r,n,t)}];case 4:var Nk=cia(r,n,1,MB);return[0,Qot,function(r,n,t){return Nk(r,n,hWe(Rot,0,n,t))}];case 6:var Tk=cia(r,n,1,MB);return[0,2,function(r,n,t){return Tk(r,n,hWe(Cot,0,n,t))}];default:break k}case 13:if(12!==PB)break k;var Fk=cia(r,n,2,MB);return[0,1,function(r,n,t){return Fk(r,n,hWe(Hot,0,n,t))}];default:break k}if(7!==PB)break k;var Mk=wna(GB),Pk=Sta(r),Uk=W8e(J8e,Mk),Gk=cia(r,n,[2,GB],MB);return[0,0,function(r,n,t){return Gk(r,n,_We(Uk,Pk,r,n,t))}]}if(2===PB){var $k=wna(GB),Kk=Wta(r),Ok=W8e(X8e,$k),Rk=cia(r,n,[2,GB],MB);return[0,0,function(r,n,t){return Rk(r,n,_We(Ok,Kk,r,n,t))}]}}return[0,3,A9e(r,Vot,xLe(f))]}if(!i)break r;if(i[2])break r;var Qk=f[1],Ck=i[1];if(Qk)if(Qk[2]){for(var Hk=LY(Qk),Vk=0,Lk=Hk,zk=PL(R3(hvt),Hk);0!==Lk;)Vk=[0,[0,PL(R3(Lct),Lk-1|0),0],Vk],Lk=Lk-1|0;var Sk=y9e(0,r,zk,Vk,xvt,function(r,n){for(var t=0,e=Hk;0!==e;)t=[0,ZY(n,e-1|0),t],e=e-1|0;return function n(e){if(!e)return ena(r,[7,Qk],Xea(r,2,t));var a=e[1],u=n(e[2]),f=Yra(r),i=IWe(0);function c(r,n,t){return i(f,u,r,n,t)}var v=e9e(rua[22].call(null,r));return function(r,n,t){return GL(a,r,n,_We(v,c,r,n,t))}}(t)})}else{var Zk=Qk[1],Wk=b9e(r,yvt),Xk=Wk[2],Jk=Wk[1],Yk=ena(r,Zk,Xk),rp=Yra(r),np=IWe(0),tp=function(r,n,t){return np(rp,Yk,r,n,t)},ep=e9e(rua[22].call(null,r));Sk=function(r,n,t){return GL(Jk,r,n,GL(Xk,r,n,_We(ep,tp,r,n,t)))}}else Sk=ena(r,Ez,eaa());var ap=rua[28].call(null,0,r,Qk),up=kra(1),ip=oia(r,n,Ck);return[0,0,function(r,n,t){return ip(r,n,up(r,n,_We(ap,Sk,r,n,t)))}]}if(!i)break r;if(i[2])break r;var cp=f[1],vp=i[1],Ap=rua[28].call(null,0,r,cp),sp=kra(0),bp=oia(r,n,vp);return[0,fua(LY(cp)),function(r,n,t){return bp(r,n,_We(sp,Ap,r,n,t))}]}if(!i)break r;if(i[2])break r;var lp=i[1],Bp=f[1],jp=q9e(0,r,hHt,_Ht,dHt,function(r,n,t){var e=b9e(r,mHt),a=e[2],u=e[1],f=X9e(),i=pea(),c=kea(r,0,t);return function(r,e,v){return c(r,e,GL(u,r,e,GL(a,r,e,i(r,e,GL(n,r,e,GL(t,r,e,_We(f,a,r,e,v)))))))}}),kp=rua[27].call(null,r,Bp),pp=oia(r,n,lp);return[0,0,function(r,n,t){return pp(r,n,_We(kp,jp,r,n,t))}]}if(!i)break r;if(i[2])break r;var mp=f[1],dp=i[1],_p=jua[29].call(null,mp,n[3]);if(!_p)throw kQ([0,OWe,PL(R3(Ght),mp)],1);var hp=_p[1],xp=oia(r,n,dp);return[0,3,function(r,n,t){return xp(r,n,FWe(hp,r,n,t))}]}var yp=f[1],wp=YY(function(t){return oia(r,n,t)},i);return[0,0,Xea(r,1===yp?1:0,wp)]}if(!i)break r;if(i[2])break r;var gp=i[1],qp=xaa(r,f[1]),Ip=oia(r,n,gp);return[0,0,function(r,n,t){return _We(Ip,qp,r,n,t)}]}if(!i)break r;if(i[2])break r;var Ep=i[1],Np=f[1],Fp=iia(r,n,Ep),Pp=Fp[2],Up=Fp[1];if("number"!=typeof Up&&3===Up[0]){var Gp=Up[1][2];if("number"!=typeof Gp&&2===Gp[0])return[0,[3,o0(Np,Gp[1])],Pp]}var $p=oea(r,Ep[3][1],Np),Kp=lua(r,Up,0);return[0,0,function(r,n,t){return GL(Pp,r,n,_We(Kp,$p,r,n,t))}]}if(!i)break r;if(i[2])break r;var Op=i[1],Rp=aaa(0,f[1]),Qp=oia(r,n,Op);return[0,0,function(r,n,t){return _We(Qp,Rp,r,n,t)}]}var Cp=f[1];if("number"!=typeof Cp&&2===Cp[0]&&1===Cp[1]&&!f[2]){if(!i)break r;var Vp=i[2];if(!Vp)break r;var Lp=Vp[1][2];if(2===Lp[0]){var zp=Lp[1];if("number"!=typeof zp&&0===zp[0]&&!zp[1]){var Sp=i[1];if(Vp[2])break r;var Zp=Aia(r,n,Sp);return[0,0,function(r,n,t){return Zp(r,n,hWe(_vt,0,n,t))}]}}}if(!i)break r;var Xp=i[2];if(!Xp)break r;if(Xp[2])break r;var Yp=f[2],rm=Xp[1],nm=i[1];if(1===Cp)var tm=[0,0,function(r,n,t){return hWe(0,0,n,t)}];else{c:{v:{if("number"!=typeof Cp&&2===Cp[0])switch(Cp[1]){case 12:switch(Yp){case 2:var em=eia(2);break c;case 3:em=eia(3);break c;case 4:em=eia(4);break c;case 5:em=eia(5);break c;case 0:break;default:break v}break;case 13:switch(Yp){case 2:em=aia(2);break c;case 3:em=aia(3);break c;case 4:em=aia(4);break c;case 5:em=aia(5);break c;case 0:break;default:break v}break;case 15:em=Cea(r,Yp);break c;case 16:case 18:em=hea(r,[0,Yp]);break c}if(!Yp){em=tia(r)(Cp);break c}if("number"!=typeof Cp&&2===Cp[0]){var am=Cp[1];if(12>=am-2>>>0){switch(Yp){case 0:var um=VJ(gjt);break;case 1:throw kQ([0,YL,qjt],1);case 2:um=Ijt;break;case 3:um=Djt;break;case 4:um=Ejt;break;default:um=Njt}var fm=um[5],im=um[4],cm=um[3],vm=um[2],om=um[1];switch(am){case 6:var Am=[18,[1,vm]];em=function(r,n,t){return hWe(Am,0,n,t)};break c;case 11:var sm=[18,[1,cm]];em=function(r,n,t){return hWe(sm,0,n,t)};break c;case 2:case 7:em=Cta(r,om);break c;case 8:case 9:case 10:var bm=[18,[0,fm]];em=function(r,n,t){return hWe(bm,0,n,t)};break c;case 3:case 4:case 5:case 14:var lm=[18,[0,im]];em=function(r,n,t){return hWe(lm,0,n,t)};break c;default:em=A9e(r,wjt,She(am));break c}}}}em=A9e(r,yjt,Tge(Yp))}tm=[0,iua(Cp),em]}var Bm=tm[1],jm=tm[2],km=cia(r,n,Bm,rm),pm=cia(r,n,Bm,nm);return[0,0,function(r,n,t){return pm(r,n,_We(km,jm,r,n,t))}]}if(!i)break r;var mm=i[2];if(!mm)break r;if(mm[2])break r;var dm=mm[1],_m=i[1],hm=nia(r,f[1],f[2]),xm=hm[1],ym=hm[3],wm=hm[2],gm=cia(r,n,xm,dm),qm=cia(r,n,xm,_m);return[0,wm,function(r,n,t){return qm(r,n,_We(gm,ym,r,n,t))}]}var Im=f[2],Dm=f[1];if(!Im){if(!i)break r;if(i[2])break r;return iia(r,n,i[1])}if(!i)break r;if(i[2])break r;f:{var Em=i[1];if("number"==typeof Dm){if(1===Dm){var Nm=[0,0,3,function(r,n,t){return hWe(0,0,n,t)}];break f}}else if(2===Dm[0])switch(Im){case 1:var Tm=Dm[1];switch(Tm){case 7:var Fm=1<>>0)throw kQ([0,YL,R_t],1);var id=laa(r),cd=Bea(r,1,Q_t),vd=baa(r),od=jaa(r,C_t),Ad=jaa(r,H_t),Bd=rua[27].call(null,r,ad),jd=jaa(r,V_t),kd=Hua(),pd=Hua(),md=mea(r),dd=zea(0,1),hd=mea(r),xd=zea(0,0),yd=oia(r,n,o),wd=lua(r,d,0);return[0,fua(k),function(r,n,t){return GL(m,r,n,GL(wd,r,n,GL(rd,r,n,yd(r,n,GL(ed,r,n,GL(Ym,r,n,xd(r,n,hd(r,n,GL(Ym,r,n,dd(r,n,md(r,n,pd(r,n,S8e(r,n,kd(r,n,S8e(r,n,jd(r,n,GL(td,r,n,Bd(r,n,Ad(r,n,ud(r,n,od(r,n,vd(r,n,_We(cd,id,r,n,t)))))))))))))))))))))))}]}if(0!==l)throw kQ([0,YL,jvt],1);var gd=d9e(r,qoe(k,0)),qd=[6,[0,wve,PL(E,0)]],Id=cia(r,n,fua(j),o);return[0,fua(k),function(r,n,t){return GL(m,r,n,S8e(r,n,Id(r,n,hWe(qd,0,n,GL(gd,r,n,t)))))}]}var Dd=fia(r,n,N,0,a),Ed=Dd[2],Nd=Dd[1],Td=cia(r,n,fua(0),o);return[0,Nd,function(r,n,t){return GL(m,r,n,_We(Td,Ed,r,n,t))}]}switch(f){case 0:var Fd=xWe(function(t){return oia(r,n,t)},i);return[0,[0,LY(i)],Fd];case 1:if(!i)break r;if(i[2])break r;var Md=i[1],Pd=oia(r,n,Md);return[0,0,ena(r,Md[3][1],Pd)];case 2:if(!i)break r;var Ud=i[2];if(!Ud)break r;if(Ud[2])break r;var Gd=eXe[5],$d=uia(r,n,i[1],Ud[1]);return[0,0,function(r,n,t){return _We($d,Gd,r,n,t)}];case 3:if(!i)break r;var Kd=i[2];if(!Kd)break r;if(Kd[2])break r;var Od=Kd[1],Rd=i[1],Qd=q9e(1,r,YCt,JCt,XCt,function(r,n,t){var e=lfa(r),a=nea(r),u=Bea(r,1,WCt);return function(r,f,i){return GL(n,r,f,GL(t,r,f,u(r,f,_We(a,e,r,f,i))))}}),Hd=oia(r,n,Od),Vd=oia(r,n,Rd);return[0,0,function(r,n,t){return Vd(r,n,_We(Hd,Qd,r,n,t))}];case 4:if(!i)break r;if(i[2])break r;var Ld=i[1],zd=m9e(r,qoe(r[23],0)),Sd=cia(r,n,fua(r[23]),Ld);return[0,3,function(r,n,t){return Sd(r,n,GL(zd,r,n,hWe(4,0,n,t)))}];case 5:if(!i)break r;if(i[2])break r;var Wd=a[2],Jd=i[1],Yd=Wd[3],r_=Wd[2],n_=[0,Pie(a[2][1]),r_,Yd],t_=a[1],e_=t_[3],a_=t_[2],u_=Wle([0,[0,Pie(a[1][1]),a_,e_],n_]),f_=F8e(r,PL(R3(kPt),u_)),i_=cia(r,n,0,Jd);return[0,UJ,function(r,n,t){return i_(r,n,qWe(DX,dWe,f_,r,n,t))}];case 7:if(!i)break r;if(i[2])break r;var c_=b9e(r,tQt),v_=c_[2],o_=c_[1],A_=Yra(r),s_=ana(0,v_),b_=Oea(r),l_=mea(r),B_=function(r,n,t){return GL(v_,r,n,l_(r,n,b_(r,n,_We(o_,s_,r,n,t))))},j_=IWe(0),k_=I8e(r)(aQt,eQt),p_=function(r,n,t){return j_(B_,A_,r,n,t)},m_=mea(r);return c(0,function(r,n,t){return GL(o_,r,n,GL(v_,r,n,m_(r,n,_We(k_,p_,r,n,t))))});case 8:if(!i)break r;if(i[2])break r;return c(0,Qea(r));case 10:if(!i)break r;if(i[2])break r;return c(0,I8e(r)(Sct,zct));case 11:if(i)break r;var d_=1>>0?F8e(r,BUt):jaa(r,jUt);return[0,Zct,d_];case 12:if(!i)break r;if(i[2])break r;var __=i[1],h_=W8e(0,1<<32-_ra(7)),x_=oia(r,n,__);return[0,0,function(r,n,t){return _We(x_,h_,r,n,t)}];case 13:if(!i)break r;var y_=i[2];if(!y_)break r;if(y_[2])break r;var w_=i[1],g_=oia(r,n,y_[1]),I_=oia(r,n,w_);return[0,0,function(r,n,t){return I_(r,n,g_(r,n,hWe(Wct,0,n,t)))}];case 14:if(!i)break r;var D_=i[2];if(!D_)break r;if(D_[2])break r;var E_=D_[1],N_=i[1],T_=Z9e(Hea()),F_=W8e(Y8e,2),M_=Era(0,0,7),P_=oia(r,n,E_),U_=Gra(),G_=oia(r,n,N_);return[0,0,function(r,n,t){return G_(r,n,U_(r,n,P_(r,n,M_(r,n,F_(r,n,hWe(Xct,0,n,T_(r,n,t)))))))}];case 15:if(!i)break r;if(i[2])break r;var $_=i[1];if(!xra(7,lC($K,31,0)))throw kQ([0,YL,Jct],1);var O_=Dra(0,7),R_=W8e(1,1),C_=Lea(),V_=function(r,n,t){return O_(r,n,t)},L_=oia(r,n,$_);return[0,0,function(r,n,t){return L_(r,n,C_(r,n,_We(R_,V_,r,n,t)))}];case 16:if(!i)break r;if(i[2])break r;var z_=i[1],S_=g9e(0,r,xMt,hMt,0,function(r,n){var t=1>>0?F8e(r,XMt):jaa(r,JMt),e=gaa(r);return function(r,a,u){return GL(n,r,a,_We(e,t,r,a,u))}}),Z_=oia(r,n,z_);return[0,UJ,function(r,n,t){return _We(Z_,S_,r,n,t)}];case 17:if(!i)break r;if(i[2])break r;var W_=i[1],X_=g9e(0,r,_Mt,dMt,mMt,function(r,n){return ura(r,pMt,4,function(t){var e=waa(r),a=1>>0?F8e(r,ZMt):jaa(r,WMt),u=gaa(r);return function(r,f,i){return GL(n,r,f,u(r,f,GL(t,r,f,GL(a,r,f,_We(t,e,r,f,i)))))}})}),J_=oia(r,n,W_);return[0,0,function(r,n,t){return _We(J_,X_,r,n,t)}];case 18:if(i)break r;return[0,0,w9e(0,r,kMt,jMt,function(r){return ura(r,BMt,4,function(n){var t=waa(r),e=1>>0?F8e(r,zMt):jaa(r,SMt);return function(r,a,u){return GL(n,r,a,GL(e,r,a,_We(n,t,r,a,u)))}})})];case 19:if(i)break r;return[0,0,w9e(0,r,gMt,wMt,function(r){return ura(r,yMt,4,function(n){var t=waa(r),e=1>>0?F8e(r,YMt):jaa(r,rPt);return function(r,a,u){return GL(n,r,a,GL(e,r,a,_We(n,t,r,a,u)))}})})];case 20:if(i)break r;return[0,0,w9e(0,r,lMt,bMt,function(r){return ura(r,sMt,4,function(n){var t=waa(r),e=1>>0?F8e(r,VMt):jaa(r,LMt);return function(r,a,u){return GL(n,r,a,GL(e,r,a,_We(n,t,r,a,u)))}})})];case 21:if(!i)break r;if(i[2])break r;var Y_=i[1],rh=g9e(0,r,AMt,oMt,vMt,function(r,n){return ura(r,cMt,4,function(t){var e=waa(r),a=1>>0?F8e(r,CMt):jaa(r,HMt),u=gaa(r);return function(r,f,i){return GL(n,r,f,u(r,f,GL(t,r,f,GL(a,r,f,_We(t,e,r,f,i)))))}})}),nh=oia(r,n,Y_);return[0,0,function(r,n,t){return _We(nh,rh,r,n,t)}];case 22:if(!i)break r;if(i[2])break r;var th=i[1],eh=jaa(r,Yct),ah=cia(r,n,rvt,th);return[0,UJ,function(r,n,t){return _We(ah,eh,r,n,t)}];case 23:if(!i)break r;if(i[2])break r;var uh=i[1];if(1>>0)var fh=F8e(r,RMt);else{var ih=jaa(r,QMt),ch=mea(r);fh=function(r,n,t){return _We(ch,ih,r,n,t)}}var vh=oia(r,n,uh);return[0,UJ,function(r,n,t){return _We(vh,fh,r,n,t)}];case 24:if(i)break r;if(1>>0)var oh=F8e(r,KMt);else{var Ah=Yra(r),sh=ana(0,_ea(r,0,function(r){return jaa(r,GMt)},function(r){return jaa(r,$Mt)},function(r){return L8e(0)})),bh=IWe(0),lh=function(r,n,t){return bh(sh,Ah,r,n,t)},Bh=jaa(r,OMt);oh=function(r,n,t){return _We(Bh,lh,r,n,t)}}return[0,0,oh];case 25:if(i)break r;return[0,UJ,G9e(r)];case 26:if(!i)break r;if(i[2])break r;var jh=oia(r,n,i[1]);if(1>>0)var kh=F8e(r,$Pt);else{var ph=jaa(r,KPt),mh=mea(r),dh=Qea(r);kh=function(r,n,t){return jh(r,n,dh(r,n,_We(mh,ph,r,n,t)))}}return[0,UJ,kh];case 27:if(i)break r;var _h=1>>0?F8e(r,WPt):_ea(r,2,function(r){return jaa(r,SPt)},function(r){return jaa(r,ZPt)},function(r){return L8e(0)});return[0,0,_h];case 28:if(!i)break r;var hh=i[2];if(!hh)break r;var xh=hh[2];if(!xh)break r;var yh=xh[2];if(!yh)break r;var wh=yh[2];if(!wh)break r;if(wh[2])break r;var gh=xh[1],qh=i[1],Ih=wh[1],Dh=yh[1],Eh=hh[1],Fh=rde(qh[3][1])[4],Mh=rde(gh[3][1])[4],Uh=b9e(r,nvt),Gh=Uh[2],$h=Uh[1],Kh=b9e(r,tvt),Oh=Kh[2],Rh=Kh[1],Qh=b9e(r,evt),Ch=Qh[2],Hh=Qh[1],Vh=b9e(r,avt),Lh=Vh[2],zh=Vh[1],Sh=b9e(r,uvt),Zh=Sh[2],Wh=Sh[1],Xh=Fua(0,n,EJ),Jh=Vua(r,S_t,Gh,Cua(r,Mh)([0,Ch,[0,Lh,[0,Zh,0]]]),function(n){var t=rua[27].call(null,r,Fh);return function(r,n,e){return _We(Oh,t,r,n,e)}},Xh),Yh=oia(r,n,Ih),rx=oia(r,n,Dh),nx=oia(r,n,gh),tx=oia(r,n,Eh),ex=oia(r,n,qh);return[0,UJ,function(r,n,t){return ex(r,n,GL($h,r,n,tx(r,n,GL(Rh,r,n,nx(r,n,GL(Hh,r,n,rx(r,n,GL(zh,r,n,Yh(r,n,_We(Wh,Jh,r,n,t))))))))))}];case 29:if(!i)break r;var ax=i[2];if(!ax)break r;var ux=ax[2];if(!ux)break r;var fx=ux[2];if(!fx)break r;var vx=fx[2];if(!vx)break r;var ox=vx[2];if(!ox)break r;if(ox[2])break r;var Ax=ox[1],sx=vx[1],bx=fx[1],lx=ux[1],Bx=ax[1],jx=i[1],kx=b9e(r,fvt),px=kx[2],mx=kx[1],dx=b9e(r,ivt),_x=dx[2],hx=dx[1],xx=b9e(r,cvt),yx=xx[2],Ix=xx[1],Dx=b9e(r,vvt),Ex=Dx[2],Nx=Dx[1],Tx=b9e(r,ovt),Fx=Tx[2],Mx=Tx[1],Px=Fua(0,n,EJ),Gx=Vua(r,z_t,px,Qua(r,0)([0,yx,[0,Ex,[0,Fx,0]]]),function(n){var t=mea(r);return function(r,n,e){return _We(_x,t,r,n,e)}},Px),$x=oia(r,n,Ax),Kx=oia(r,n,sx),Ox=oia(r,n,bx),Rx=oia(r,n,lx),Qx=uaa(r,2),Cx=Gra(),Hx=Qea(r),Vx=oia(r,n,Bx),Lx=oia(r,n,jx);return[0,UJ,function(r,n,t){return Lx(r,n,Vx(r,n,Hx(r,n,Cx(r,n,Qx(r,n,GL(mx,r,n,Rx(r,n,GL(hx,r,n,Ox(r,n,GL(Ix,r,n,Kx(r,n,GL(Nx,r,n,$x(r,n,_We(Mx,Gx,r,n,t))))))))))))))}];case 30:if(i)break r;var zx=1>>0?F8e(r,zPt):_ea(r,1,function(r){return jaa(r,VPt)},function(r){return jaa(r,LPt)},function(r){return L8e(0)});return[0,0,zx];case 31:if(i)break r;var Sx=1>>0?F8e(r,OPt):jaa(r,RPt);return[0,Avt,Sx];case 32:if(i)break r;return[0,0,_aa(r)];case 9:break;default:break r}}if(i&&!i[2])return c(0,I8e(r)(Qlt,Rlt))}return[0,3,A9e(r,Clt,xLe(f))]}function iia(r,n,t){return via(r,n,0,t)}function cia(r,n,t,e){var a=via(r,n,[0,t],e),u=a[2],f=lua(r,a[1],t);return function(r,n,t){return _We(u,f,r,n,t)}}function via(r,n,t,e){r:if(e[3][3]){var a=mia(r,n,e),u=a[1];UL(a[2],r,n);var f=[0,[3,u],dWe]}else{var i=e[2];switch(i[0]){case 0:var c=i[1],v=c[2];n:{for(var o=v,A=c[1];o;){var s=o[2],b=Gme(o[1][3][1]);if(b){var l=b;break n}o=s}l=0}if(l){var B=xWe(function(t){return function(r,n,t){var e=iia(r,n,t),a=e[2],u=Aua(0,e[1]);return function(r,n,t){return _We(a,u,r,n,t)}}(r,n,t)},v);f=[0,3,function(r,n,t){return GL(B,r,n,hWe(0,0,n,t))}];break r}f=fia(r,n,A,c[2],e[1]);break r;case 1:f=Nua(r,n,i[2]);break r;case 2:f=Kfa(i[1]);break r;case 3:var j=i[1],k=j[2],p=Dce[1],m=i[2];switch(k[0]){case 0:var d=Dua(r,n,k[1]);break;case 1:var _=k[1],h=k[2];if(3===p){if(Iua(Zea(0,_[3][1]))){var x=b9e(r,Uct),y=x[2],w=x[1],g=I8e(r)($ct,Gct),q=W8e(0,eXe[2]),I=eXe[6],D=uia(r,n,_,h);d=[0,function(r,n,t){return D(r,n,_We(w,y,r,n,t))},0,function(r,n,t){return I(r,n,GL(y,r,n,_We(q,g,r,n,t)))}];break}}else if(4<=p&&Iua(Zea(0,_[3][1]))){var E=Hra(r),N=W8e(0,eXe[2]),T=uia(r,n,_,h);d=[0,function(r,n,t){return _We(T,N,r,n,t)},0,E];break}var F=eXe[6];d=[0,uia(r,n,_,k[2]),0,F];break;default:var M=k[1],P=k[2];if(3===p){if(Iua(iea(0,M[3][1],P))){var U=b9e(r,Kct),G=U[2],$=U[1],K=I8e(r)(Rct,Oct),O=W8e(0,eXe[2]),R=eXe[6],Q=cea(r,M[3][1],P),C=oia(r,n,M);d=[0,function(r,n,t){return C(r,n,Q(r,n,_We($,G,r,n,t)))},0,function(r,n,t){return R(r,n,GL(G,r,n,_We(O,K,r,n,t)))}];break}}else if(4<=p&&Iua(iea(0,M[3][1],P))){var H=Hra(r),V=W8e(0,eXe[2]),L=cea(r,M[3][1],P),z=oia(r,n,M);d=[0,function(r,n,t){return z(r,n,_We(L,V,r,n,t))},0,H];break}var S=eXe[6],Z=cea(r,M[3][1],k[2]),W=oia(r,n,M);d=[0,function(r,n,t){return _We(W,Z,r,n,t)},0,S]}var X=d[3],J=d[1],Y=j[1],rr=j[1],nr=cia(r,n,d[2],m);f=[0,UJ,function(r,n,t){return gWe(rr,J,r,0,nr(r,n,gWe(Y,X,r,0,t)))}];break r;case 4:var tr=i[1],er=tr[2],ar=tr[1],ur=pia(r,n,ar,KCe(LCe(er))),fr=ur[2],ir=via(r,ur[1],t,er);f=[0,ir[1],fr(ir[2])];break r;case 5:var cr=i[3],vr=i[2],or=Aia(r,n,i[1]),Ar=via(r,n,t,vr),sr=Ar[1],br=Ar[2],lr=via(r,n,t,cr),Br=lr[1],jr=lr[2],kr=t?t[1]:oua(sr,Br),pr=lua(r,Br,kr),mr=lua(r,sr,kr),dr=cua(0,kr),_r=d9e(r,dr),hr=m9e(r,dr),xr=m9e(r,dr),yr=N8e(r,k9e(dr),function(r,n,t){return _We(br,mr,r,n,GL(xr,r,n,t))},function(r,n,t){return _We(jr,pr,r,n,GL(hr,r,n,t))});f=[0,kr,function(r,n,t){return or(r,n,_We(yr,_r,r,n,t))}];break r;case 6:var wr=i[1],gr=i[2],qr=wr[3][1];n:{if(gr){var Ir=gr[1][2][1][2];if("number"!=typeof Ir&&5===Ir[0]){var Dr=Ir[1];if(!gr[2]&&"number"!=typeof qr&&4===qr[0]){var Er=qr[1];if(Er&&!Er[2]){var Nr=Dr===Er[1][1]?1:0;break n}}}}Nr=0}if(Nr){var Tr=oia(r,n,wr);if(gr){var Fr=gr[1][2],Mr=Fr[1],Pr=Mr[2];if("number"!=typeof Pr&&5===Pr[0]){var Ur=Pr[2],Gr=Fr[2];if(!gr[2]){var $r=Bia(r,n,[0,Mr[1],[5,"",Ur],Mr[3]]),Kr=$r[2],Or=via(r,$r[1],t,Gr),Rr=Or[1],Qr=Or[2],Cr=t?t[1]:Rr;f=[0,Cr,_9e(r,cua(0,Cr),function(n){var t=zua(Kr)([0,Qr]),e=Xua(r,YY(function(t){var e=t[2],a=lua(r,t[1],Cr);return zua(e)([0,function(r,t,e){return _We(a,n,r,t,e)}])},[0,[0,Rr,zua([0,Tr])(t)],0]));return function(r,n,t){return GL(e,r,n,hWe(0,0,n,t))}})];break r}}}throw kQ([0,XL,Hlt],1)}var Hr=i[2],Vr=oia(r,n,wr),Lr=b9e(r,Vlt),zr=wr[3][1];n:{var Sr=Lr[2],Zr=Lr[1];if(Hr){var Wr=Hr[1],Xr=Wr[2][1][2];if("number"==typeof Xr||5!==Xr[0])var Jr=Hr;else{var Yr=Xr[1],rn=Hr[2],nn=Xr[2];if(rn){var tn=rn[1],en=tn[2],an=en[1],un=an[2];if("number"==typeof un||5!==un[0])Jr=Hr;else{var fn=un[1],cn=un[2],vn=en[2];if(rn[2]||"number"==typeof zr||4!==zr[0])Jr=Hr;else{var on=zr[1];if(on){var An=on[2];if(An&&!An[2]){var sn=An[1][1],bn=on[1][1];if(lLe(nn)){if(Yr!==bn&&Yr!==sn){Jr=Hr;break n}if(fn!==bn&&fn!==sn){Jr=Hr;break n}Jr=[0,Wr,[0,[0,tn[1],[0,[0,an[1],[5,"",cn],an[3]],vn],tn[3]],0]]}else Jr=Hr}else Jr=Hr}else Jr=Hr}}}else Jr=Hr}}else Jr=Hr}var ln=YY(function(e){var a=e[2],u=a[2],f=Bia(r,n,a[1]),i=f[2],c=via(r,f[1],t,u),v=c[1],o=[0,c[2]],A=zua(i)(o);return[0,v,zua([0,Sr])(A)]},Jr),Bn=t?t[1]:e0(oua,3,YY(function(r){return r[1]},ln)),jn=_9e(r,cua(0,Bn),function(n){var t=Xua(r,YY(function(t){var e=t[2],a=lua(r,t[1],Bn);return zua(e)([0,function(r,t,e){return _We(a,n,r,t,e)}])},ln));return function(r,n,e){return GL(t,r,n,hWe(0,0,n,e))}});f=[0,Bn,function(r,n,t){return Vr(r,n,_We(Zr,jn,r,n,t))}];break r;case 7:var kn=[3,[0,wve,0]],pn=cia(r,[0,1,n[2],n[3]],UJ,i[1]),mn=function(r,n,t){return pn(r,n,hWe(kn,0,n,t))};f=[0,3,function(r,n,t){return EWe(mn,r,n,hWe(0,0,n,t))}];break r;case 8:var dn=i[3],_n=i[1],hn=TWe(function(t){var e=jua[4].call(null,_n,t,n[3]);return oia(r,[0,n[1],n[2],e],dn)});f=[0,0,T8e(r,cua(0,0),hn)];break r;case 10:var xn=i[3],yn=hua(r,n,i[1],i[2]),wn=yn[2],gn=iia(r,yn[1],xn),qn=gn[2],In=gn[1],Dn=[9,[0,wve,wn]],En=Sra(r);f=[0,In,function(r,n,t){return En(r,n,hWe(Dn,0,n,GL(qn,r,n,t)))}];break r;case 11:var Nn=i[3],Tn=Dua(r,n,i[1]),Fn=Tn[3],Mn=Tn[1],Pn=cia(r,n,Tn[2],Nn);f=[0,UJ,function(r,n,t){return GL(Mn,r,n,_We(Pn,Fn,r,n,t))}];break r;case 12:var Un=i[3],Gn=i[7],$n=i[6],Kn=i[5],On=i[2],Rn=i[1],Qn=rHe(e);switch(Un){case 1:throw kQ([0,YL,Llt],1);case 2:var Cn=0;break;default:Cn=$n}var Hn=LY(Cn);f=Rua(r,n,Rn,On,Un,Qn,Kn,function(r,n){return cia(r,n,fua(Hn),Gn)},Cn,e[1]);break r;case 13:var Vn=i[2],Ln=i[5],zn=i[4],Sn=i[3],Zn=i[1],Wn=b9e(r,zlt),Xn=Wn[2],Jn=Wn[1],Yn=b9e(r,Slt),rt=Yn[2],nt=Yn[1],tt=b9e(r,Zlt),et=tt[2],at=tt[1],ut=b9e(r,Wlt),ft=ut[2],it=ut[1],ct=rHe(Vn),vt=Fua(0,n,EJ),ot=xaa(r,Cz),At=daa(r),st=Vua(r,L_t,function(r,n,t){return _We(At,ot,r,n,t)},Cua(r,Zn)([0,rt,[0,et,[0,ft,[0,Xn,0]]]]),function(n){var t=rua[27].call(null,r,[0,Fz,0]),e=_na(r,5);return function(r,a,u){return GL(n,r,a,_We(e,t,r,a,u))}},vt),bt=oia(r,n,Ln),lt=oia(r,n,zn),Bt=oia(r,n,Sn),jt=Gra(),kt=Rua(r,n,sht,0,0,ct,0,function(r,n){return cia(r,n,UJ,Vn)},0,e[1]),pt=kt[2],mt=lua(r,kt[1],0);f=[0,UJ,function(r,n,t){return _We(pt,mt,r,n,jt(r,n,GL(Jn,r,n,Bt(r,n,GL(nt,r,n,lt(r,n,GL(at,r,n,bt(r,n,_We(it,st,r,n,t)))))))))}];break r;case 14:f=RWe(Xlt);break r;case 15:if(1>>0){f=[0,0,uea(r,YY(function(t){return[0,t[2][1],function(e){return zme(t[3])?Dfa(0,n,t[2][2]):function(r,n,t){var e=Nua(r,n,t),a=e[2],u=lua(r,e[1],0);return function(r,n,t){return _We(a,u,r,n,t)}}(r,n,t[2][2])}]},i[2]))];break r}}f=[0,UJ,A9e(r,Jlt,pLe(e))]}var dt=f[2],_t=e[1];return[0,f[1],function(r,n,t){return gWe(_t,dt,r,0,t)}]}function oia(r,n,t){return cia(r,n,0,t)}function Aia(r,n,t){var e=iia(r,n,t),a=e[1],u=e[2],f=0!==a?lua(r,a,0):dWe;return function(r,n,t){return _We(u,f,r,n,t)}}function sia(r,n,t,e){var a=I8e(r)(Ylt,e),u=Gna(),f=cia(r,n,rBt,t);return[0,nBt,function(r,n,t){return f(r,n,u(r,n,_We(a,$na,r,n,t)))}]}function bia(r,n,t,e){var a=I8e(r)(tBt,e),u=Gna(),f=cia(r,n,eBt,t);return[0,0,function(r,n,t){return f(r,n,_We(u,a,r,n,t))}]}function lia(r,n,t){var e=t[2];if(BLe(t))var a=[0,function(r,n,t){return hWe(2,0,n,t)}];else{if("number"==typeof e)throw kQ([0,YL,dBt],1);switch(e[0]){case 0:a=[0,Eua(r,n,e[1])];break;case 1:var u=e[1];a=[1,function(n){var t=function(r,n){if("number"!=typeof n)switch(n[0]){case 0:return n[1]?dWe:function(r,n,t){return hWe(uBt,0,n,t)};case 2:var t=tia(r)(fBt),e=Ofa(r,0,n);return function(r,n,a){return _We(e,t,r,n,a)};case 3:var a=tia(r)(iBt),u=Ofa(r,0,n);return function(r,n,t){return _We(u,a,r,n,t)};case 4:var f=tia(r)(Fz),i=Ofa(r,cBt,n),c=hna(r,5);return function(r,n,t){return c(r,n,_We(i,f,r,n,t))};case 5:var v=tia(r)(vBt),o=Ofa(r,oBt,n),A=lna(r,6);return function(r,n,t){return A(r,n,_We(o,v,r,n,t))};case 7:var s=tia(r)(ABt),b=Ofa(r,0,n);return function(r,n,t){return _We(b,s,r,n,t)};case 8:var l=tia(r)(sBt),B=Ofa(r,0,n);return function(r,n,t){return _We(B,l,r,n,t)};case 9:var j=tia(r)(bBt),k=Ofa(r,lBt,n),p=hna(r,10);return function(r,n,t){return p(r,n,_We(k,j,r,n,t))};case 10:var m=tia(r)(BBt),d=Ofa(r,jBt,n),_=lna(r,11);return function(r,n,t){return _(r,n,_We(d,m,r,n,t))};case 13:var h=tia(r)(kBt),x=Ofa(r,0,n);return function(r,n,t){return _We(x,h,r,n,t)};case 14:var y=Cea(r,0),w=Ofa(r,0,n);return function(r,n,t){return _We(w,y,r,n,t)};case 15:var g=hea(r,pBt),q=Ofa(r,0,n);return function(r,n,t){return _We(q,g,r,n,t)};case 1:case 6:var I=Qta(r),D=Ofa(r,0,n);return function(r,n,t){return _We(D,I,r,n,t)};default:return A9e(r,mBt,gLe(n))}var E=Ofa(r,0,n);return function(r,n,t){return E(r,n,hWe(aBt,0,n,t))}}(r,u);return function(r,e,a){return GL(t,r,e,qWe(DX,dWe,n,r,e,a))}}];break;case 2:var f=e[1],i=b9e(r,_Bt),c=i[2],v=function(t,e){if(!e)return[0,dWe];var a=e[2],u=lia(r,n,e[1]),f=v(t+1|0,a),i=zua(u)(f),o=aaa(0,t);return zua([0,function(r,n,t){return _We(c,o,r,n,t)}])(i)},o=i[1],A=v(0,f);a=zua([0,o])(A);break;case 3:var s=e[1],b=t[3],l=b9e(r,hBt),B=l[2],j=function(t){if(!t)return[0,dWe];var e=t[1][2],a=e[1],u=t[2],f=lia(r,n,e[2]),i=j(u),c=zua(f)(i),v=oea(r,b,a);return zua([0,function(r,n,t){return _We(B,v,r,n,t)}])(c)},k=l[1],p=j(s);a=zua([0,k])(p);break;case 4:var m=e[1];if(BLe(m))a=[1,function(n){var t=nna(r);return function(r,e,a){return t(r,e,qWe(DX,dWe,n,r,e,a))}}];else{var d=b9e(r,xBt),_=d[2],h=d[1];a=[1,function(t){var e=Sua(t,lia(r,n,m)),a=una(r,m[3]);function u(r,n,t){return GL(_,r,n,_We(a,e,r,n,t))}var f=nna(r);return function(r,n,e){return GL(h,r,n,GL(_,r,n,f(r,n,qWe(DX,u,t,r,n,e))))}}]}break;case 5:var x=e[1];if(x!==fQ)if(BLe(e[2]))a=[1,function(n){var t=vna(r,x);return function(r,e,a){return t(r,e,qWe(DX,dWe,n,r,e,a))}}];else{var y=e[2],w=b9e(r,yBt),g=w[2],q=w[1];a=[1,function(t){var e=Sua(t,lia(r,n,y)),a=cna();function u(r,n,t){return GL(g,r,n,_We(a,e,r,n,t))}var f=vna(r,x);return function(r,n,e){return GL(q,r,n,GL(g,r,n,f(r,n,qWe(DX,u,t,r,n,e))))}}]}else{var I=e[2];if(BLe(I))a=[0,function(r,n,t){return hWe(2,0,n,t)}];else{var D=lia(r,n,I);a=zua([0,cna()])(D)}}break;default:var E=e[2],N=lia(r,n,e[1]),T=lia(r,n,E),F=b9e(r,wBt),M=F[2],P=F[1],U=zua([0,M])(T),G=Zua(zua([0,M])(N))(U);a=zua([0,P])(G)}}var $=t[1];if(0===a[0]){var K=a[1];return[0,function(r,n,t){return gWe($,K,r,0,t)}]}var O=a[1];return[1,function(r){var n=PL(O,r);return function(r,t,e){return gWe($,n,r,0,e)}}]}function Bia(r,n,t){var e=RCe(t),a=dCe[13].call(null,function(n,t,e){return wua(r,e,n,0,t)[1]},e,n);return[0,a,lia(r,a,t)]}function jia(r,n,t,e,a){var u=a[2];switch(u[0]){case 0:var f=u[1],i=f[2];if("number"!=typeof i&&0===i[0]){var c=i[1],v=u[2];if(VWe[3].call(null,c,e)){var o=mia(r,n,v),A=o[1][2],s=o[2];if("number"!=typeof A&&1===A[0]){var b=A[1],l=v[3][1],B=VWe[28].call(null,c,e),j=n[3],k=jua[4].call(null,c,[0,[4,b,B],l],n[2]),p=[0,[0,n[1],k,j],dWe,function(n){return UL(s,r,n),dWe}];break}throw kQ([0,YL,qBt],1)}}var m=u[2];if(m[3][3]){if(!m[3][3])throw kQ([0,YL,$Bt],1);if(dia(kua,f,mia(r,n,m)[1])?1:0){var d=_ia(r,n,a),_=d[2];p=[0,PL(d[1],n),dWe,function(n){return UL(_,r,n),dWe}]}else p=[0,n,dWe,function(n){return F8e(r,qJ)}]}else{var h=u[2],x=RCe(f),y=dCe[13].call(null,function(n,e,a){var u=a[2],f=Gfa(r,a[1],t,n,e),i=f[2];return[0,f[1],function(r,n,t){return _We(u,i,r,n,t)}]},x,[0,n,dWe]),w=y[1],g=y[2],q=f[1],I=f[2];r:{var D=function(r,n,t){return gWe(q,g,r,0,t)};if("number"==typeof I)var E=dWe,N=0,T=dWe;else{switch(I[0]){case 0:var F=Dua(r,w,I[1]);E=F[3],N=[0,F[2]],T=F[1];break r;case 2:var M=I[1];if(1!==LY(M)){var P=yWe(function(n,t){return Wua(r,lia(r,w,t))},XY(M));E=P,N=[0,[0,LY(M)]],T=dWe;break r}}E=Wua(r,lia(r,w,f)),N=gBt,T=dWe}}var U=f[1],G=f[1];p=[0,w,D,function(n){var t=function(r,n,t,e){var a=via(r,n,t,e),u=a[1],f=a[2],i=t?lua(r,u,t[1]):Aua(0,u),c=e[1];return function(r,n,t){var e=c[2],a=c[1];return _We(f,i,r,[0,[0,a[1],a[2],a[3]],[0,e[1],e[2],e[3]]],t)}}(r,n,N,h);return function(r,n,e){return gWe(U,T,r,0,t(r,n,gWe(G,E,r,0,e)))}}]}break;case 1:var $=u[1],K=u[3],O=u[2],R=dCe[29].call(null,$,t);r:{n:if(R){var Q=R[1];if("number"==typeof Q){if(0===Q)break n}else if(0===Q[0])break n;var C=1;break r}C=0}if(!C)throw kQ([0,YL,IBt],1);var H=Gfa(r,n,t,$,[10,O]);p=[0,H[1],H[2],function(n){var t=Dua(r,n,$),e=t[3],a=t[1],u=cia(r,n,t[2],K);return function(r,n,t){return GL(a,r,n,_We(u,e,r,n,t))}}];break;default:var V=u[1],L=u[3][2],z=u[2];if(2!==L[0])throw kQ([0,YL,DBt],1);var S=L[2],Z=L[1],W=dCe[28].call(null,V,t);if("number"==typeof W&&1===W){p=[0,hua(r,n,V,z)[1],dWe,function(n){var t=Efa(0,n,V),e=vea(r,S),a=oia(r,n,Z);return function(r,n,u){return a(r,n,_We(e,t,r,n,u))}}];break}throw kQ([0,YL,q_t],1)}var X=p[3],J=p[2],Y=a[1];return[0,p[1],function(r,n,t){return gWe(Y,J,r,0,t)},function(r,n){var t=X(r),e=a[1];return function(r,a,u){return gWe(e,t,r,0,GL(n,r,a,u))}}]}function kia(r,n,t,e,a){for(var u=n[1],f=dCe[34].call(null,function(r){var n=r[1];switch(n[0]){case 0:return[1,n[1]];case 1:return 1;case 2:return 2;case 3:return 0;default:return D_t}},n[2]),i=nHe(t)[2],c=TCe(f,i),v=dCe[34].call(null,function(r){return 0},i),o=MCe(i),A=v,s=_Ce[8].call(null,o,a);;){for(var b=t,l=[0,_Ce[1],A];b;){var B=b[1],j=l[2],k=l[1],p=b[2],m=UL(Nfa,c,j),d=YCe(B),_=d[2],h=KCe(d[1]),x=MCe(j),y=_Ce[8].call(null,x,h),w=B[2];switch(w[0]){case 0:var g=w[2][3][3]?dCe[34].call(null,function(r){return 0},_):dCe[34].call(null,function(r){return[0,Ufa(r)]},_);break;case 1:g=dCe[34].call(null,function(r){return[1,Ufa(r)]},_);break;default:g=dCe[34].call(null,function(r){return 1},_)}var q=e0(tfa,Tfa,[0,j,[0,g,[0,Pfa(u,m,k,y),0]]]),I=MCe(_);b=p,l=[0,_Ce[7].call(null,k,I),q]}var D=l[2],E=l[1],N=MCe(i);if(!_Ce[12].call(null,E,N))throw kQ([0,YL,I_t],1);var T=UL(tfa,D,Pfa(u,D,E,s));if(dCe[11].call(null,dH,A,T))break;A=T}var F=function n(t,a){if(!a)return[0,t,dWe,function(r){return qua}];var u=a[1];if(!a[2])return jia(r,t,T,e,u);var f=a[2],i=jia(r,t,T,e,u),c=i[3],v=i[2],o=n(i[1],f),A=o[3],s=o[2];return[0,o[1],function(r,n,t){return _We(v,s,r,n,t)},function(r){function n(n){return c(r,n)}var t=PL(A,r);return function(r){return PL(n,PL(t,r))}}]}(n,t),M=F[1],P=F[3],U=F[2];return[0,M,function(r){var n=UL(P,M,r);return function(r,t,e){return _We(U,n,r,t,e)}}]}function pia(r,n,t,e){return kia(r,n,t,VWe[1],e)}function mia(r,n,t){var e=t[2];switch(e[0]){case 0:var a=e[1],u=a[1];if("number"==typeof u)switch(u){case 0:var f=a[2];if(!f)return[0,a8e(0),function(r,n){return 0}];var i=p0(YY(function(t){return mia(r,n,t)},f)),c=i[2];return[0,a8e([4,i[1]]),function(r,n){for(var t=c;;){if(!t)return 0;var e=t[2];UL(t[1],r,n),t=e}}];case 1:var v=a[2];if(v&&!v[2]){var o=mia(r,n,v[1]),A=o[2];return[0,a8e([6,o[1]]),A]}}else switch(u[0]){case 4:var s=a[2];if(s&&!s[2]){var b=u[1],l=mia(r,n,s[1]),B=l[1][2],j=l[2];if("number"==typeof B||4!==B[0])k=RWe(FBt);else var k=B[1];return[0,ZY(k,b),j]}break;case 5:var p=a[2];if(p&&!p[2]){var m=u[1],d=mia(r,n,p[1]),_=d[2];return[0,a8e([5,[0,m,d[1]]]),_]}break;case 6:var h=a[2];if(h&&!h[2]){var x=u[1],y=mia(r,n,h[1]),w=y[1][2],g=y[2];if("number"==typeof w||2!==w[0])q=RWe(MBt);else var q=w[1];return[0,o0(x,q),g]}break;case 8:if(!u[1]){var I=p0(YY(function(t){return mia(r,n,t)},a[2])),D=I[2];return[0,a8e([3,I[1]]),function(r,n){for(var t=D;;){if(!t)return 0;var e=t[2];UL(t[1],r,n),t=e}}]}}break;case 1:var E=e[2],N=_ua(n,E);r:{if(N){var T=N[1];if(3===T[0]){var F=T[1];break r}}F=PL(RWe(PBt),E)}return[0,F,function(r,n){return 0}];case 2:return[0,a8e([7,$fa(e[1])]),function(r,n){return 0}];case 4:var M=e[1],P=function(n,t){if(!t)return[0,function(r){return r},function(r,n){}];var e=t[1];if(!t[2])return _ia(r,n,e);var a=t[2],u=_ia(r,n,e),f=u[1],i=u[2],c=P(PL(f,n),a),v=c[2],o=c[1];return[0,function(r){return PL(o,PL(f,r))},function(r,n){return UL(i,r,n),UL(v,r,n)}]},U=M[2],G=P(n,M[1]),$=G[1],K=G[2],O=mia(r,PL($,n),U),R=O[2];return[0,O[1],function(r,n){var t=PL($,n);return UL(K,r,t),UL(R,r,t)}];case 12:var Q=e[7],C=e[5],H=e[3],V=e[2],L=e[1],z=Q[2];r:{var S=e[6],Z=e[4];if(!V&&!H&&!Z&&0===z[0]){var W=z[1],X=W[2],J=W[1];n:{if("number"==typeof J)switch(J){case 4:var Y=0;break n;case 6:Y=RWe(TBt);break n}else if(9===J[0]){Y=0;break n}Y=1}if(Y){var rr=LY(X);if(LY(C)===rr)for(var nr=X,tr=C;;){n:{if(tr){if(nr){var er=dH(nr[1][2],[1,0,tr[1][2]]),ar=nr[2],ur=tr[2];if(er){nr=ar,tr=ur;continue}var fr=er;break n}}else if(!nr){fr=1;break n}fr=LJ(ez)}if(!fr)break;var ir=[0,J];break r}}}ir=0}switch(H){case 1:throw kQ([0,YL,UBt],1);case 2:var cr=0;break;default:cr=S}return Oua(r,V,H,L,C,function(r,n){for(var t=LCe(Q),e=dCe[45].call(null,t);;){if(!e)return cia(r,n,fua(LY(cr)),Q);var a=e[2],u=e[1];1-jua[3].call(null,u,n[2])?(UL(RWe(NBt),L,u),e=a):e=a}},ir,cr,t[1]);case 15:if(1>>0)return[0,a8e([2,YY(function(r){var t=_ua(n,r[2][2]);r:{if(t){var e=t[1];if(3===e[0]){var a=e[1];break r}}var u=r[2][2];a=PL(RWe(EBt),u)}return[0,r[2][1],a]},e[2])]),function(r,n){return 0}]}throw kQ([0,YL,GBt],1)}function dia(r,n,t){r:{n:{var e=n,a=t;t:for(;;){var u=e[2];if("number"==typeof u)return[0,r];e:switch(u[0]){case 0:var f=r[3],i=jua[4].call(null,u[1],[0,[3,a],e[3]],r[2]);return[0,[0,r[1],i,f]];case 1:break r;case 2:break n;case 3:break t;case 4:var c=a[2],v=u[1];if("number"!=typeof c)switch(c[0]){case 6:e=v,a=c[1];break e;case 7:if("number"==typeof c[1])return 0}throw kQ([0,YL,QBt],1);case 5:var o=a[2],A=u[2],s=u[1];if("number"!=typeof o&&5===o[0]){var b=o[1],l=b[2];if(s!==b[1])return 0;e=A,a=l;break}throw kQ([0,YL,CBt],1);default:var B=u[2],j=dia(r,u[1],a);if(0!==j)return j;e=B}}var k=a[2],p=u[1];if("number"!=typeof k&&2===k[0])for(var m=p,d=[0,r],_=k[1];;){if(!m)return d;for(var h=m[2],x=m[1],y=_;;){if(y){var w=y[1],g=y[2];if(x[2][1]!==w[1]){y=g;continue}var q=[0,w]}else q=0;if(!d){m=h,d=0;break}if(!q)throw kQ([0,YL,KBt],1);m=h,d=dia(d[1],x[2][2],q[1][2]);break}}throw kQ([0,YL,RBt],1)}var I=a[2],D=u[1];if("number"==typeof I)var E=0;else{if(4!==I[0])throw kQ([0,YL,OBt],1);E=I[1]}for(var N=E,T=D,F=[0,r];;){if(T){if(N){var M=N[2],P=T[2],U=N[1],G=T[1];if(F){N=M,T=P,F=dia(F[1],G,U);continue}N=M,T=P,F=0;continue}}else if(!N)return F;return LJ(tz)}}var $=a[2],K=u[1];if("number"!=typeof $&&7===$[0]){var O=$[1],R=$fa(K);r:{n:{if("number"!=typeof R){switch(R[0]){case 0:if("number"==typeof O)break n;if(0!==O[0])break n;var Q=dH(R[1],O[1]);break r;case 1:if("number"==typeof O)break n;if(1!==O[0])break n;Q=_xe(R[1],O[1]);break r;case 2:if("number"==typeof O)break n;if(2!==O[0])break n;Q=R[1]===O[1]?1:0;break r;case 3:if("number"==typeof O)break n;if(3!==O[0])break n;var C=R[1]===O[1]?1:0,H=O[2],V=R[2];if(C){Q=dH(V,H);break r}Q=C;break r;case 4:if("number"==typeof O)break n;if(4!==O[0])break n;var L=R[1]===O[1]?1:0,z=O[2],S=R[2];if(L){Q=dH(S,z);break r}Q=L;break r;case 5:if("number"==typeof O)break n;if(5!==O[0])break n;Q=dH(R[1],O[1]);break r;case 6:if("number"==typeof O)break n;if(6!==O[0])break n;Q=dH(R[1],O[1]);break r;case 7:if("number"==typeof O)break n;if(7!==O[0])break n;var Z=O[1],W=R[1];break;default:if("number"==typeof O)break n;if(8!==O[0])break n;Z=O[1],W=R[1]}Q=W===Z?1:0;break r}if("number"==typeof O){Q=1;break r}}Q=0}if(Q)return[0,r]}return 0}function _ia(r,n,t){var e=t[2];if(0!==e[0])return RWe(VBt);var a=e[1],u=mia(r,n,e[2]),f=u[2],i=u[1];return[0,function(r){var n=dia(r,a,i);if(n)return n[1];throw kQ([0,YL,HBt],1)},function(r,n){return UL(f,r,n)}]}function hia(r,n){return v0(r,0)?0:[0,[0,v0(r,wce[1]),n]]}function xia(r,n,t){if(function(r){var n=h9e(r,iEt,fEt,function(r){var n=[8,[0,wve,0]],t=Sta(r);return function(r,e,a){return hWe(n,0,e,t(r,e,a))}}),t=[0,wve,[0,[0,wve,h8e(r)(cEt,n)]]];l8e(r,[0,wve,[0,xoe(vEt),t]]);var e=h9e(r,0,0,function(r){return F8e(r,uEt)}),a=[0,wve,[0,[0,wve,h8e(r)(oEt,e)]]];l8e(r,[0,wve,[0,xoe(AEt),a]]);var u=h9e(r,sEt,0,function(r){var n=[8,[0,wve,0]],t=[8,[0,wve,1]],e=maa(r);return function(r,a,u){return hWe(n,0,a,hWe(t,0,a,e(r,a,u)))}}),f=[0,wve,[0,[0,wve,h8e(r)(bEt,u)]]];l8e(r,[0,wve,[0,xoe(lEt),f]]);var i=h9e(r,0,BEt,function(r){var n=e9e(faa(1)),t=caa(),e=e9e(faa(3)),a=caa();return function(r,u,f){return a(r,u,e(r,u,t(r,u,n(r,u,hWe(aEt,0,u,f)))))}}),c=[0,wve,[0,[0,wve,h8e(r)(jEt,i)]]];if(l8e(r,[0,wve,[0,xoe(kEt),c]]),4!==Dce[1]){var v=h9e(r,pEt,0,function(r){var n=M9e(r),t=[8,[0,wve,0]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),o=[0,wve,[0,[0,wve,h8e(r)("__set_hp",v)]]];l8e(r,[0,wve,[0,xoe("setHP"),o]]);var A=h9e(r,0,mEt,function(r){return F9e(r)}),s=[0,wve,[0,[0,wve,h8e(r)("__get_hp",A)]]];l8e(r,[0,wve,[0,xoe("getHP"),s]])}if(1>>0)var b=h9e(r,dEt,0,function(r){if(!r[27][1])return F8e(r,NJ);var n=[8,[0,wve,0]],t=[8,[0,wve,1]],e=[8,[0,wve,2]],a=Eaa(r);return function(r,u,f){return hWe(n,0,u,hWe(t,0,u,hWe(e,0,u,a(r,u,f))))}}),l=h8e(r)(_Et,b);else l=D8e(r)(xEt,hEt);if(l8e(r,[0,wve,[0,xoe(yEt),[0,wve,[0,[0,wve,l]]]]]),1>>0)var B=h9e(r,wEt,0,function(r){if(!r[27][1])return F8e(r,NJ);var n=[8,[0,wve,0]],t=[8,[0,wve,1]],e=[8,[0,wve,2]],a=Daa(r);return function(r,u,f){return hWe(n,0,u,hWe(t,0,u,hWe(e,0,u,a(r,u,f))))}}),j=h8e(r)(gEt,B);else j=D8e(r)(IEt,qEt);l8e(r,[0,wve,[0,xoe(DEt),[0,wve,[0,[0,wve,j]]]]]);var k=h9e(r,NEt,EEt,function(r){if(!r[27][1])return F8e(r,NJ);var n=zaa(r),t=[8,[0,wve,0]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),p=[0,wve,[0,[0,wve,h8e(r)(TEt,k)]]];l8e(r,[0,wve,[0,xoe(FEt),p]]);var m=h9e(r,0,MEt,function(r){return r[27][1]?Naa(r):F8e(r,NJ)}),d=[0,wve,[0,[0,wve,h8e(r)(PEt,m)]]];l8e(r,[0,wve,[0,xoe(UEt),d]]);var _=h9e(r,0,GEt,function(r){return Faa(r)}),h=[0,wve,[0,[0,wve,h8e(r)($Et,_)]]];l8e(r,[0,wve,[0,xoe(KEt),h]]);var x=h9e(r,OEt,0,function(r){var n=Maa(r),t=[8,[0,wve,0]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),y=[0,wve,[0,[0,wve,h8e(r)(REt,x)]]];l8e(r,[0,wve,[0,xoe(QEt),y]]);var w=[0,wve,[0,[0,wve,w8e(r,CEt)]]];l8e(r,[0,wve,[0,xoe(HEt),w]])}(r),1>=r[1]-1>>>0){x9e(r,Cz,0,0,function(r){var n=b9e(r,M_t),t=n[2],e=n[1],a=Uua(r,P_t),u=Ana(r,0,0),f=Gra(),i=I8e(r)(RJt,OJt),c=hna(r,5),v=rua[29].call(null,r,[0,Fz,0]),o=function(r){var n=P8e(r,iPt),t=yaa(r);return function(r,e,a){return _We(t,n,r,e,a)}}(r),A=Pua(r,U_t);return function(r,n,s){return A(r,n,o(r,n,v(r,n,c(r,n,i(r,n,GL(e,r,n,GL(t,r,n,f(r,n,GL(t,r,n,_We(u,a,r,n,s))))))))))}});var e=[0,wve,[0,[0,wve,w8e(r,Cz)]]];l8e(r,[0,wve,[0,xoe(KI+tj),e]])}if(1>=r[1]-1>>>0){x9e(r,Vz,0,0,function(r){var n=oaa(r,2),t=U9e(r),e=C8e(r,1),a=P9e(r),u=haa(r),f=jea(r,T_t),i=jfa(r),c=Pua(r,F_t);return function(r,v,o){return c(r,v,i(r,v,f(r,v,u(r,v,a(r,v,e(r,v,_We(t,n,r,v,o)))))))}});var a=[0,wve,[0,[0,wve,w8e(r,Vz)]]];l8e(r,[0,wve,[0,xoe(KI+Oa),a]])}rua[19].call(null,r,n);var u=Wea(r,1,r[16][1]),f=j8e(r,pjt,0);d8e(r,mjt);var i=h9e(r,0,pYt,function(r){return Q9e(r)}),c=[0,wve,[0,[0,wve,h8e(r)(mYt,i)]]];l8e(r,[0,wve,[0,xoe(dYt),c]]);var v=h9e(r,0,vxt,function(r){return L8e(u)}),o=[0,wve,[0,[0,wve,h8e(r)(oxt,v)]]];l8e(r,[0,wve,[0,xoe(Axt),o]]),x9e(r,NGt,EGt,0,function(r){var n=r[1];if(!n)return dWe;if(3<=n){var t=[8,[0,wve,0]],e=[8,[0,wve,1]];return ura(r,IGt,6,function(n){var a=I8e(r)(dGt,mGt),u=W8e(0,20),f=W8e(0,8),i=I8e(r)(hGt,_Gt),c=W8e(0,20),v=L8e(10),o=W8e(0,16);return function(r,A,s){return GL(n,r,A,hWe(t,0,A,hWe(qGt,0,A,GL(n,r,A,hWe(e,0,A,hWe(gGt,0,A,GL(n,r,A,GL(n,r,A,o(r,A,hWe(wGt,0,A,GL(n,r,A,Z8e(r,A,hWe(yGt,0,A,GL(n,r,A,v(r,A,hWe(xGt,0,A,Z8e(r,A,GL(n,r,A,Z8e(r,A,GL(n,r,A,c(r,A,i(r,A,hWe(2,0,A,Z8e(r,A,GL(n,r,A,f(r,A,Z8e(r,A,GL(n,r,A,u(r,A,a(r,A,hWe(2,0,A,s)))))))))))))))))))))))))))))))}})}var a=jaa(r,DGt),u=[8,[0,wve,1]],f=[8,[0,wve,0]];return function(r,n,t){return hWe(f,0,n,hWe(u,0,n,a(r,n,t)))}});var A=[0,wve,[0,[0,wve,w8e(r,TGt)]]];l8e(r,[0,wve,[0,xoe(FGt),A]]),f(R8e(r));var s=h9e(r,0,0,function(n){if(t)var e=[6,t[1]],a=function(r,n,t){return hWe(e,0,n,t)};else a=vaa(0,0);var u="initialize_"+Q8e(Dce[1])+"_gc",f=I8e(r)(kjt,u);return function(r,n,t){return _We(f,a,r,n,t)}}),b=h8e(r)(djt,s),l=[0,wve,[2,[0,wve,0]]],B=3<=r[1]?AGt:"mem";l8e(r,[0,wve,[0,xoe(B),l]]),l8e(r,[0,wve,[0,xoe(sGt),[0,wve,[1,[0,wve,0]]]]]);var j=nXe(r[4]),k=j[2],p=j[3],m=j[1];if(1>>0&&r[27][1])var d=[0,[0,wve,[0,[0,[0,uz,0],0]]],0];else d=0;var _=[0,[0,wve,[0,[0,[0,$H(AH(R8e(r),ni)+1|0),0],0]]],d],h=ZWe(r[4]),x=YY(function(r){var n=r[2];return[0,wve,[0,n,[0,wve,[0,[0,wve,0],[0,wve,pWe(L8e(r[1]))]]]]]},r[14][1]),y=YY(function(r){var n=[0,[0,wve,r[1]],0];return[0,wve,[0,[0,wve,0],[0,wve,pWe(L8e(r[2]))],n]]},o8e[20].call(null,r[6][1])),w=r[7][1],g=r[5][1],q=YY(function(r){return r[1]},h),I=YY(function(r){return Coe(r[1])},r[8][1]),D=Qqe(p,[0,YY($We,XWe(r[4])),I,[0,[0,wve,[0,[0,[0,w,[0,w]],0]]],0],_,q,[0,[0,wve,b]],y,x,m,g]),E=v8e[23].call(null,r[26][1]),N=hia(_jt,MY(0,mz)),T=r[20][1],F=[0,c8e[23].call(null,r[21][1]),T,N],M=[0,r[18][1],r[19][1]],P=fS[10],U=fS[9],G=fS[8],$=fS[7],K=fS[6],O=fS[5],R=fS[4],Q=n0(function(r,n){return[0,k+r|0,n[3]]},h),C=n0(function(r,n){return[0,k+r|0,n[2]]},h),H=[0,D,[0,fS[1],C,Q,R,O,K,$,G,U,P],0,M,F,0,0,E],V=r[2];return V?BWe(H,hjt,V[1]):H}var yia=R1([0,KC]),wia=O1([0,KC]),gia=R1([0,r1]);function qia(r,n,t,e){return MBe(r,gBe(n,"M0006",lne,0,0,0,UL(R3(bne),t,e)))}function Iia(r,n,t,e){return MBe(r,gBe(Lle,sne,Ane,0,0,0,GL(R3(one),t,n,e)))}function Dia(r,n){return gBe(r,"M0009",ine,0,0,0,PL(R3(fne),n))}function Eia(r,n){var t=n+cR,e=$ie(n,Xre);return KY(moe(Jre,n))?e:PL(r,t)?t:e}function Nia(r,n,t){var e=zoe(UL(t,JV,n));return JV(e)?[0,e]:[1,Dia(r,e)]}function Tia(r,n,t,e,a){var u=Nia(e,a[2],Eia);if(0!==u[0])return MBe(r,u[1]);var f=[0,[0,a[1],u[1]]];t[1]=f,n[1]=yia[4].call(null,f,e,n[1])}function Fia(r,n,t,e,a,u){if(!JV(a))return MBe(r,Dia(e,a));t[1]=[1,[0,a,u]],n[1]=yia[4].call(null,t[1],e,n[1])}function Mia(r,n){return r===Qu?n:$ie(r,n)}function Pia(r,n,t,e,a,u,f){var i=f[3],c=f[2],v=f[1];function o(n){if(!t)return MBe(r,gBe(i,"M0008",vne,0,0,0,R3(cne)));var e=t[1];return Fia(r,u,c,i,Mia(e,Vxe(n)+".did"),[1,n])}var A=zxe(v);if(0!==A[0])return qia(r,i,v,A[1]);var s=A[1];if("number"==typeof s)return c[1]=1,void(u[1]=yia[4].call(null,1,i,u[1]));switch(s[0]){case 0:var b=s[1],l=b[1],B=b[2],j=gia[29].call(null,l,a);return j?Tia(r,u,c,i,[0,[0,l],Mia(j[1],B)]):MBe(r,gBe(i,"M0010",une,0,0,0,PL(R3(ane),l)));case 1:return Tia(r,u,c,i,[0,0,Mia(n,s[1])]);case 2:var k=s[1];return 29 = { next : () -> ?T_ };\n\nvar @cycles : Nat = 0;\nvar @timeout : ?Nat32 = null;\n\n// Function called by backend to add funds to call.\n// DO NOT RENAME without modifying compilation.\nfunc @add_cycles() {\n let cycles = @cycles;\n @reset_cycles();\n if (cycles != 0) {\n (prim "cyclesAdd" : Nat -> ()) cycles;\n };\n switch @timeout {\n case (?timeout) {\n @timeout := null;\n (prim "timeoutSet" : Nat32 -> ()) timeout;\n };\n case null ();\n };\n};\n\n// Function called by backend to zero cycles on context switch.\n// DO NOT RENAME without modifying compilation.\nfunc @reset_cycles() {\n @cycles := 0;\n};\n\n// The @ in the name ensures that this cannot be shadowed by user code, so\n// compiler passes can rely on them being in scope\n\n// Implementations for overloaded dot operations\n// Note that these return functions!\n// (Some optimizations in the backend might be feasible.)\n\nfunc @immut_array_get(xs : [A]) : Nat -> A = func(n : Nat) : A = xs[n];\nfunc @mut_array_get(xs : [var A]) : Nat -> A = func(n : Nat) : A = xs[n];\nfunc @immut_array_size(xs : [A]) : () -> Nat = func() : Nat = (prim "array_len" : [A] -> Nat) xs;\nfunc @mut_array_size(xs : [var A]) : () -> Nat = func() : Nat = (prim "array_len" : [var A] -> Nat) xs;\nfunc @mut_array_put(xs : [var A]) : (Nat, A) -> () = func(n : Nat, x : A) = (xs[n] := x);\nfunc @immut_array_keys(xs : [A]) : () -> @Iter = func() : @Iter = object {\n var i = 0;\n let l = xs.size();\n public func next() : ?Nat { if (i >= l) null else { let j = i; i += 1; ?j } };\n};\nfunc @mut_array_keys(xs : [var A]) : () -> @Iter = func() : @Iter = object {\n var i = 0;\n let l = xs.size();\n public func next() : ?Nat { if (i >= l) null else { let j = i; i += 1; ?j } };\n};\nfunc @immut_array_vals(xs : [A]) : () -> @Iter = func() : @Iter = object {\n var i = 0;\n let l = xs.size();\n public func next() : ?A {\n if (i >= l) null else { let j = i; i += 1; ?xs[j] };\n };\n};\nfunc @mut_array_vals(xs : [var A]) : () -> @Iter = func() : @Iter = object {\n var i = 0;\n let l = xs.size();\n public func next() : ?A {\n if (i >= l) null else { let j = i; i += 1; ?xs[j] };\n };\n};\nfunc @blob_size(b : Blob) : () -> Nat = func() : Nat = (prim "blob_size" : Blob -> Nat) b;\nfunc @blob_keys(b : Blob) : () -> @Iter = func() : @Iter = object {\n var i = 0;\n let l = (prim "blob_size" : Blob -> Nat) b;\n public func next() : ?Nat { if (i >= l) null else { let j = i; i += 1; ?j } };\n};\nfunc @blob_get(b : Blob) : Nat -> Nat8 = func(n : Nat) : Nat8 = b[n];\nfunc @blob_vals(xs : Blob) : () -> @Iter = func() : @Iter = object {\n type BlobIter = Any; // not exposed\n let i = (prim "blob_vals_iter" : Blob -> BlobIter) xs;\n public func next() : ?Nat8 {\n if ((prim "blob_iter_done" : BlobIter -> Bool) i) null else ?((prim "blob_iter_next" : BlobIter -> Nat8) i);\n };\n};\nfunc @text_size(xs : Text) : () -> Nat = func() : Nat = (prim "text_len" : Text -> Nat) xs;\nfunc @text_chars(xs : Text) : () -> @Iter = func() : @Iter = object {\n type TextIter = Any; // not exposed\n let i = (prim "text_iter" : Text -> TextIter) xs;\n public func next() : ?Char {\n if ((prim "text_iter_done" : TextIter -> Bool) i) null else ?((prim "text_iter_next" : TextIter -> Char) i);\n };\n};\n\n// Internal helper functions for the show translation\n\n// The text_of functions do not need to be exposed; the user can just use\n// the show above.\n\nfunc @text_of_num(x : Nat, base : Nat, sep : Nat, digits : Nat -> Text) : Text {\n var text = "";\n var n = x;\n\n if (n == 0) return "0";\n\n var i = 0;\n while (n > 0) {\n let rem = n % base;\n if (sep > 0 and i == sep) { text := "_" # text; i := 0 };\n text := digits rem # text;\n n := n / base;\n i += 1;\n };\n text;\n};\n\nfunc @left_pad(pad : Nat, char : Text, t : Text) : Text {\n if (pad > t.size()) {\n var i : Nat = pad - t.size();\n var text = t;\n while (i > 0) {\n text := char # text;\n i -= 1;\n };\n text;\n } else {\n t;\n };\n};\n\nfunc @digits_dec(x : Nat) : Text = (prim "conv_Char_Text" : Char -> Text)((prim "num_conv_Nat32_Char" : Nat32 -> Char)((prim "num_wrap_Int_Nat32" : Int -> Nat32)(x + 0x30)));\n\nfunc @text_of_Nat(x : Nat) : Text {\n @text_of_num(x, 10, 3, @digits_dec);\n};\n\nfunc @text_of_Int(x : Int) : Text {\n if (x == 0) "0" else (if (x < 0) "-" else "+") #\n @text_of_Nat((prim "abs" : Int -> Nat) x);\n};\n\nfunc @digits_hex(x : Nat) : Text = (prim "conv_Char_Text" : Char -> Text)((prim "num_conv_Nat32_Char" : Nat32 -> Char)((prim "num_wrap_Int_Nat32" : Int -> Nat32)(x + (if (x < 10) 0x30 else 55))));\n\n// There is some duplication with the prim_module, but we need these here\n// before we can load the prim module\nfunc @int64ToInt(n : Int64) : Int = (prim "num_conv_Int64_Int" : Int64 -> Int) n;\nfunc @int32ToInt(n : Int32) : Int = (prim "num_conv_Int32_Int" : Int32 -> Int) n;\nfunc @int16ToInt(n : Int16) : Int = (prim "num_conv_Int16_Int" : Int16 -> Int) n;\nfunc @int8ToInt(n : Int8) : Int = (prim "num_conv_Int8_Int" : Int8 -> Int) n;\nfunc @nat64ToNat(n : Nat64) : Nat = (prim "num_conv_Nat64_Nat" : Nat64 -> Nat) n;\nfunc @nat32ToNat(n : Nat32) : Nat = (prim "num_conv_Nat32_Nat" : Nat32 -> Nat) n;\nfunc @nat16ToNat(n : Nat16) : Nat = (prim "num_conv_Nat16_Nat" : Nat16 -> Nat) n;\nfunc @nat8ToNat(n : Nat8) : Nat = (prim "num_conv_Nat8_Nat" : Nat8 -> Nat) n;\n\nfunc @text_of_Nat8(x : Nat8) : Text = @text_of_Nat(@nat8ToNat x);\nfunc @text_of_Nat16(x : Nat16) : Text = @text_of_Nat(@nat16ToNat x);\nfunc @text_of_Nat32(x : Nat32) : Text = @text_of_Nat(@nat32ToNat x);\nfunc @text_of_Nat64(x : Nat64) : Text = @text_of_Nat(@nat64ToNat x);\nfunc @text_of_Int8(x : Int8) : Text = @text_of_Int(@int8ToInt x);\nfunc @text_of_Int16(x : Int16) : Text = @text_of_Int(@int16ToInt x);\nfunc @text_of_Int32(x : Int32) : Text = @text_of_Int(@int32ToInt x);\nfunc @text_of_Int64(x : Int64) : Text = @text_of_Int(@int64ToInt x);\nfunc @text_of_Float(x : Float) : Text = (prim "Float->Text" : Float -> Text) x;\nfunc @text_of_Float32(x : Float32) : Text = (prim "Float32->Text" : Float32 -> Text) x;\n\nfunc @text_of_Bool(b : Bool) : Text {\n if (b) "true" else "false";\n};\n\nfunc @text_of_Text(t : Text) : Text {\n // TODO: Escape properly\n "\\"" # t # "\\"";\n};\n\nfunc @text_of_Char(c : Char) : Text {\n // TODO: Escape properly\n "\\\'" # (prim "conv_Char_Text" : Char -> Text) c # "\\\'";\n};\n\nfunc @text_of_Blob(blob : Blob) : Text {\n var t = "\\"";\n for (b in blob.values()) {\n // Could do more clever escaping, e.g. leave ascii and utf8 in place\n t #= "\\\\" # @left_pad(2, "0", @text_of_num(@nat8ToNat b, 16, 0, @digits_hex));\n };\n t #= "\\"";\n return t;\n};\n\nfunc @text_has_parens(t : Text) : Bool {\n switch (t.chars().next()) {\n case (?\'(\') true;\n case _ false;\n };\n};\n\nfunc @text_needs_parens(t : Text) : Bool {\n switch (t.chars().next()) {\n case (?(\'+\' or \'-\' or \'?\' or \'#\')) true;\n case _ false;\n };\n};\n\nfunc @text_of_option(f : T -> Text, x : ?T) : Text {\n switch (x) {\n case (?y) {\n let fy = f y;\n if (@text_needs_parens(fy)) "?(" # fy # ")" else "?" # fy;\n };\n case null { "null" };\n };\n};\n\nfunc @text_of_variant(l : Text, f : T -> Text, x : T) : Text {\n let fx = f x;\n if (fx == "()") "#" # l else if (@text_has_parens(fx)) "#" # l # fx else "#" # l # "(" # fx # ")";\n};\n\nfunc @text_of_array(f : T -> Text, xs : [T]) : Text {\n var text = "[";\n var first = true;\n for (x in xs.values()) {\n if first {\n first := false;\n } else {\n text #= ", ";\n };\n text #= f x;\n };\n text # "]";\n};\n\nfunc @text_of_array_mut(f : T -> Text, xs : [var T]) : Text {\n var text = "[var";\n var first = true;\n for (x in xs.values()) {\n if first {\n first := false;\n text #= " ";\n } else {\n text #= ", ";\n };\n text #= f x;\n };\n text # "]";\n};\n\nfunc @equal_array(eq : (T, T) -> Bool, a : [T], b : [T]) : Bool {\n if (a.size() != b.size()) {\n return false;\n };\n var i = 0;\n let s = a.size();\n while (i < s) {\n if (not eq(a[i], b[i])) {\n return false;\n };\n i += 1;\n };\n return true;\n};\n\ntype @CleanCont = () -> ();\ntype @BailCont = @CleanCont;\ntype @Cont = T -> ();\ntype @Async = (@Cont, @Cont, @BailCont) -> {\n #suspend;\n #schedule : () -> ();\n};\n\ntype @Refund = Nat;\ntype @Result = { #ok : (refund : @Refund, value : T); #error : Error };\n\ntype @Waiter = (@Refund, T) -> ();\n\nvar @refund : @Refund = 0;\n\n// Function called by backend to zero refunds on context switch.\n// DO NOT RENAME without modifying compilation.\nfunc @reset_refund() {\n @refund := 0;\n};\n\nfunc @getSystemRefund() : @Refund {\n return (prim "cyclesRefunded" : () -> Nat)();\n};\n\n// trivial cleanup action\nfunc @cleanup() {};\n\nfunc @new_async() : (@Async, @Cont, @Cont, @CleanCont) {\n let w_null = func(r : @Refund, t : T) {};\n let r_null = func(_ : Error) {};\n var result : ?(@Result) = null;\n var ws : @Waiter = w_null;\n var rs : @Cont = r_null;\n let getRefund = @cycles != 0;\n\n func fulfill(t : T) {\n switch result {\n case null {\n let refund = if getRefund @getSystemRefund() else 0;\n result := ?(#ok(refund, t));\n let ws_ = ws;\n ws := w_null;\n rs := r_null;\n ws_(refund, t);\n };\n case (?_) { assert false };\n };\n };\n\n func fail(e : Error) {\n switch result {\n case null {\n result := ?(#error e);\n let rs_ = rs;\n ws := w_null;\n rs := r_null;\n rs_(e);\n };\n case (?_) { assert false };\n };\n };\n\n var cleanup : @BailCont = @cleanup;\n\n func enqueue(k : @Cont, r : @Cont, b : @BailCont) : {\n #suspend;\n #schedule : () -> ();\n } {\n cleanup := b;\n switch result {\n case null {\n let ws_ = ws;\n ws := func(r : @Refund, t : T) {\n ws_(r, t);\n @reset_cycles();\n @refund := r;\n k(t);\n };\n let rs_ = rs;\n rs := func(e : Error) {\n rs_(e);\n @reset_cycles();\n @reset_refund();\n r(e);\n };\n #suspend;\n };\n case (?#ok(r, t)) {\n #schedule(func() { @refund := r; k(t) });\n };\n case (?#error e) {\n #schedule(func _ = r(e));\n };\n };\n };\n\n (enqueue, fulfill, fail, func() = cleanup());\n};\n\n// Subset of IC management canister interface required for our use\nmodule @ManagementCanister = {\n public type wasm_module = Blob;\n public type canister_settings = {\n controllers : ?[Principal];\n compute_allocation : ?Nat;\n memory_allocation : ?Nat;\n freezing_threshold : ?Nat;\n };\n};\n\ntype @WasmMemoryPersistence = {\n #keep;\n #replace;\n};\n\ntype @UpgradeOptions = {\n wasm_memory_persistence : ?@WasmMemoryPersistence;\n};\n\nlet @ic00 = actor "aaaaa-aa" : actor {\n create_canister : {\n settings : ?@ManagementCanister.canister_settings;\n sender_canister_version : ?Nat64;\n } -> async { canister_id : Principal };\n install_code : {\n mode : {\n #install;\n #reinstall;\n #upgrade : ?@UpgradeOptions;\n };\n canister_id : Principal;\n wasm_module : @ManagementCanister.wasm_module;\n arg : Blob;\n sender_canister_version : ?Nat64;\n } -> async ();\n};\n\nfunc @install_actor_helper(\n install_arg : {\n #new : { settings : ?@ManagementCanister.canister_settings };\n #install : Principal;\n #reinstall : actor {};\n #upgrade : actor {};\n #upgrade_with_persistence : {\n wasm_memory_persistence : @WasmMemoryPersistence;\n canister : actor {};\n };\n },\n enhanced_orthogonal_persistence : Bool,\n wasm_module : Blob,\n arg : Blob,\n) : async* Principal = async* {\n let (mode, canister_id) = switch install_arg {\n case (#new settings) {\n let available = (prim "cyclesAvailable" : () -> Nat)();\n let accepted = (prim "cyclesAccept" : Nat -> Nat) available;\n let sender_canister_version = ?(prim "canister_version" : () -> Nat64)();\n @cycles += accepted;\n let { canister_id } = await @ic00.create_canister {\n settings with sender_canister_version;\n };\n (#install, canister_id);\n };\n case (#install principal1) { (#install, principal1) };\n case (#reinstall actor1) {\n (#reinstall, (prim "principalOfActor" : (actor {}) -> Principal) actor1);\n };\n case (#upgrade actor2) {\n let wasm_memory_persistence = if enhanced_orthogonal_persistence {\n ?(#keep);\n } else {\n null;\n };\n let upgradeOptions = {\n wasm_memory_persistence;\n };\n ((#upgrade(?upgradeOptions)), (prim "principalOfActor" : (actor {}) -> Principal) actor2);\n };\n case (#upgrade_with_persistence { wasm_memory_persistence; canister }) {\n let upgradeOptions = {\n wasm_memory_persistence = ?wasm_memory_persistence;\n };\n ((#upgrade(?upgradeOptions)), (prim "principalOfActor" : (actor {}) -> Principal) canister);\n };\n };\n await @ic00.install_code {\n mode;\n canister_id;\n wasm_module;\n arg;\n sender_canister_version = ?(prim "canister_version" : () -> Nat64)();\n };\n return canister_id;\n};\n\n// It would be desirable if create_actor_helper can be defined\n// without paying the extra self-remote-call-cost\n// TODO: This helper is now only used by Prim.createActor and could be removed, except\n// that Prim.createActor was mentioned on the forum and might be in use. (#3420)\nfunc @create_actor_helper(wasm_module : Blob, arg : Blob) : async Principal = async {\n let available = (prim "cyclesAvailable" : () -> Nat)();\n let accepted = (prim "cyclesAccept" : Nat -> Nat)(available);\n let sender_canister_version = ?(prim "canister_version" : () -> Nat64)();\n @cycles += accepted;\n let { canister_id } = await @ic00.create_canister {\n settings = null;\n sender_canister_version;\n };\n await @ic00.install_code {\n mode = #install;\n canister_id;\n wasm_module;\n arg;\n sender_canister_version = ?(prim "canister_version" : () -> Nat64)();\n };\n return canister_id;\n};\n\n// raw calls\nfunc @call_raw(p : Principal, m : Text, a : Blob) : async Blob {\n let available = (prim "cyclesAvailable" : () -> Nat)();\n if (available != 0) {\n @cycles := (prim "cyclesAccept" : Nat -> Nat) available;\n };\n await (prim "call_raw" : (Principal, Text, Blob) -> async Blob)(p, m, a);\n};\n\n// helpers for reifying ic0.call_perform failures as errors\nfunc @call_succeeded() : Bool {\n (prim "call_perform_status" : () -> Nat32)() == 0;\n};\n\nfunc @call_error() : Error {\n let status = (prim "call_perform_status" : () -> Nat32)();\n let message = (prim "call_perform_message" : () -> Text)();\n let code = #call_error({ err_code = status });\n (prim "cast" : ({ #call_error : { err_code : Nat32 } }, Text) -> Error)(code, message);\n};\n\n// default timer mechanism implementation\n// fundamental node invariant: max_exp pre <= expire <= min_exp post\n// corollary: if expire == 0 then the pre is completely expired\n//\n// Note: Below the `expire` field is an encoding of an aliased mutable field with\n// a single-element mutable array. It eliminates `--experimental-field-aliasing`\n// while compiling this file at the cost of slightly higher syntactic noise\n// as well as increased allocation and runtime cost accessing the data. Oh well.\n//\ntype @Node = {\n expire : [var Nat64];\n id : Nat;\n delay : ?Nat64;\n job : () -> async ();\n pre : ?@Node;\n post : ?@Node;\n};\n\nvar @timers : ?@Node = null;\n\nfunc @prune(n : ?@Node) : ?@Node = switch n {\n case null null;\n case (?n) {\n if (n.expire[0] == 0) {\n @prune(n.post) // by corollary\n } else {\n ?{ n with pre = @prune(n.pre) };\n };\n };\n};\n\nfunc @nextExpiration(n : ?@Node) : Nat64 = switch n {\n case null 0;\n case (?n) {\n let pivot = n.expire[0];\n if (pivot == 0) return @nextExpiration(n.post);\n let exp = @nextExpiration(n.pre);\n if (exp == 0) pivot else exp;\n };\n};\n\n// Function called by backend to run eligible timed actions.\n// DO NOT RENAME without modifying compilation.\nfunc @timer_helper() : async () {\n func Array_init(len : Nat, x : T) : [var T] {\n (prim "Array.init" : (Nat, T) -> [var T]) (len, x);\n };\n\n let now = (prim "time" : () -> Nat64)();\n\n var gathered = 0;\n let thunks = Array_init async ())>(10, null); // we want max 10\n\n func gatherExpired(n : ?@Node) = switch n {\n case null ();\n case (?n) {\n let pivot = n.expire[0];\n if (pivot > 0) gatherExpired(n.pre); // by corollary\n if (pivot <= now and gathered < thunks.size()) {\n if (pivot > 0) {\n // not expunged yet\n thunks[gathered] := ?(n.job);\n switch (n.delay) {\n case (null or ?0) n.expire[0] := 0;\n case (?delay) {\n // re-add the node, skipping past expirations\n let expire = pivot + delay * (1 + (now - pivot) / delay);\n n.expire[0] := 0;\n // N.B. reinsert only works on pruned nodes\n func reinsert(m : ?@Node) : @Node = switch m {\n case null ({\n n with expire = [var expire];\n pre = null;\n post = null;\n });\n case (?m) {\n assert m.expire[0] != 0;\n if (expire < m.expire[0]) ({ m with pre = ?reinsert(m.pre) }) else ({\n m with post = ?reinsert(m.post)\n });\n };\n };\n @timers := ?reinsert(@prune(@timers));\n };\n };\n gathered += 1;\n };\n gatherExpired(n.post);\n };\n };\n };\n\n gatherExpired(@timers);\n\n let exp = @nextExpiration @timers;\n ignore (prim "global_timer_set" : Nat64 -> Nat64) exp;\n if (exp == 0) @timers := null;\n\n var failed : Nat64 = 0;\n func reinsert(job : () -> async ()) {\n if (failed == 0) {\n @timers := @prune @timers;\n ignore (prim "global_timer_set" : Nat64 -> Nat64) 1;\n };\n failed += 1;\n @timers := ?(\n switch @timers {\n case (?{ id = 0; pre; post; job = j; expire; delay })\n // push top node\'s contents into pre\n ({\n expire = [var failed];\n id = 0;\n delay;\n job;\n post;\n pre = ?{ id = 0; expire; pre; post = null; delay; job = j };\n });\n case _ ({\n expire = [var failed];\n id = 0;\n delay = null;\n job;\n pre = null;\n post = @timers;\n });\n }\n );\n };\n\n for (o in thunks.values()) {\n switch o {\n case (?thunk) try ignore thunk() catch _ reinsert thunk;\n case _ return;\n };\n };\n};\n\nvar @lastTimerId = 0;\n\nfunc @setTimer(delayNanos : Nat64, recurring : Bool, job : () -> async ()) : (id : Nat) {\n @lastTimerId += 1;\n let id = @lastTimerId;\n let now = (prim "time" : () -> Nat64)();\n let expire = now + delayNanos;\n let delay = if recurring ?delayNanos else null;\n // only works on pruned nodes\n func insert(n : ?@Node) : @Node = switch n {\n case null ({\n expire = [var expire];\n id;\n delay;\n job;\n pre = null;\n post = null;\n });\n case (?n) {\n assert n.expire[0] != 0;\n if (expire < n.expire[0]) ({ n with pre = ?insert(n.pre) }) else ({\n n with post = ?insert(n.post)\n });\n };\n };\n @timers := ?insert(@prune(@timers));\n\n let exp = @nextExpiration @timers;\n if (exp == 0) @timers := null;\n ignore (prim "global_timer_set" : Nat64 -> Nat64) exp;\n\n id;\n};\n\nfunc @cancelTimer(id : Nat) {\n func graft(onto : ?@Node, branch : ?@Node) : ?@Node = switch (onto, branch) {\n case (null, null) null;\n case (null, _) branch;\n case (_, null) onto;\n case (?onto, _) { ?{ onto with post = graft(onto.post, branch) } };\n };\n\n func hunt(n : ?@Node) : ?@Node = switch n {\n case null n;\n case (?{ id = node; pre; post }) {\n if (node == id) {\n graft(pre, post);\n } else do ? { { n! with pre = hunt pre; post = hunt post } };\n };\n };\n\n @timers := hunt @timers;\n\n if (@nextExpiration @timers == 0) {\n // no more expirations ahead\n ignore (prim "global_timer_set" : Nat64 -> Nat64) 0;\n @timers := null;\n };\n};\n\nfunc @set_global_timer(time : Nat64) = ignore (prim "global_timer_set" : Nat64 -> Nat64) time;\n\n// Function that deduplicates a blob.\nfunc @dedup(b : Blob) : Blob {\n // WeakRef type.\n type WeakRef = {\n ref : weak Blob;\n };\n // A linked list of WeakRefs.\n type List = {\n var next : ?List;\n value : ?WeakRef;\n originalBlob : Blob;\n index : Nat;\n };\n func Array_tabulate(len : Nat, gen : Nat -> T) : [T] {\n (prim "Array.tabulate" : (Nat, Nat -> T) -> [T]) (len, gen);\n };\n func Array_tabulateVar(len : Nat, gen : Nat -> T) : [var T] {\n (prim "Array.tabulateVar" : (Nat, Nat -> T) -> [var T]) (len, gen);\n };\n let HASH_ARRAY_SIZE = 16_384;\n // Debug print. Will be removed.\n func debugPrint(x : Text) { (prim "print" : Text -> ()) x };\n // Simple hash function.\n func hashBlob(b : Blob) : Nat32 { (prim "crc32Hash" : Blob -> Nat32) b };\n // Import weakref allocation from rts.\n func allocWeakRef(obj : T) : weak T {\n (prim "alloc_weak_ref" : T -> weak T)(obj);\n };\n // Dereference a weak ref.\n func weakGet(w : weak T) : ?T {\n (prim "weak_get" : weak T -> ?T)(w);\n };\n func getDedupTable() : ?[var List] {\n (prim "get_dedup_table" : () -> ?[var List])();\n };\n func setDedupTable(dedupTable : [var List]) {\n (prim "set_dedup_table" : [var List] -> ())(dedupTable);\n };\n func arrayToBlob(a : [Nat8]) : Blob = (prim "arrayToBlob" : [Nat8] -> Blob) a;\n func getOriginalBlob(b : Blob) : Blob {\n // Creates a copy of the blob without the first 5 magic bytes ("!caf!").\n let copiedArr = Array_tabulate(b.size() - 5, func(i : Nat) : Nat8 = b[i + 5]);\n let originalBlob = arrayToBlob(copiedArr);\n originalBlob;\n };\n func blobCompare(b1 : Blob, b2 : Blob) : Int8 = (prim "blob_compare" : (Blob, Blob) -> Int8)(b1, b2);\n\n // Helper functions for the hash array.\n //\n //\n func addToList(list : List, originalBlob : Blob, weakRef : WeakRef) : List {\n let newList = {\n var next = ?list;\n value = ?weakRef;\n originalBlob = originalBlob;\n index = list.index + 1;\n };\n newList;\n };\n\n func getFromList(list : List, originalBlob : Blob) : ?WeakRef {\n var copy = list;\n loop {\n if (blobCompare(copy.originalBlob, originalBlob) == 0) {\n return copy.value;\n } else {\n let next = copy.next;\n switch next {\n case null { return null };\n case (?next) { copy := next };\n };\n };\n };\n };\n\n func getListLen(list : List) : Nat {\n list.index;\n };\n\n func getHashArrayLen(hashArray : [var List]) : Nat {\n var len = 0;\n var i = 0;\n while (i < HASH_ARRAY_SIZE) {\n len += getListLen(hashArray[i]);\n i += 1;\n };\n len;\n };\n\n func addToHashArray(hashArray : [var List], b : Blob) {\n let hashValue = hashBlob(b);\n let index = @nat32ToNat(hashValue) % HASH_ARRAY_SIZE;\n let list = hashArray[index];\n let weakRef = { ref = allocWeakRef(b) };\n // Use a copy of the original blob (minus the magic bytes).\n hashArray[index] := addToList(list, getOriginalBlob(b), weakRef);\n };\n\n func getFromHashArray(hashArray : [var List], b : Blob) : ?WeakRef {\n let hashValue = hashBlob(b);\n let index = @nat32ToNat(hashValue) % HASH_ARRAY_SIZE;\n let list = hashArray[index];\n // Use the original blob (minus the magic bytes).\n getFromList(list, getOriginalBlob(b));\n };\n //\n // End helper functions.\n\n // Check if the blob has magic bytes.\n // We only deduplicate blobs which have the first 5 bytes (!caf!).\n // Otherwise, we return the original blob so that the system works as usual.\n if (b.size() < 5) {\n return b;\n };\n if (b[0] != 0x21 or b[1] != 0x63 or b[2] != 0x61 or b[3] != 0x66 or b[4] != 0x21) {\n //debugPrint("The blob doesn\'t have magic bytes so we return the original.");\n return b;\n };\n\n // Get the dedup table from the RTS.\n let ptr = getDedupTable();\n let hashArray = switch ptr {\n case (?dedupTable) {\n dedupTable;\n };\n case null {\n // This means that the dedup table was not yet created.\n let arr = Array_tabulateVar(HASH_ARRAY_SIZE, func(i : Nat) : List = { var next = null; value = null; originalBlob = ""; index = 0 });\n // We need to set it via the RTS so that it is persisted.\n setDedupTable(arr);\n arr;\n };\n };\n\n // Get the WeakRef from the hash table.\n let dedupedBlobWeakRef = getFromHashArray(hashArray, b);\n let result = switch dedupedBlobWeakRef {\n case (?weakRef) {\n // It was in the hash so we dereference the WeakRef.\n let derefed = weakGet(weakRef.ref);\n switch derefed {\n case (?derefed) { derefed };\n case null {\n // This will only happen if the blob was deallocated by the GC.\n // We put it back in the hash table so that it can be deduplicated again.\n addToHashArray(hashArray, b);\n b;\n };\n };\n };\n // It wasn\'t in the hash so we put it in\n // and return the original.\n case null {\n addToHashArray(hashArray, b);\n b;\n };\n };\n\n result;\n};\n\n// envvar-indirection for principals\nfunc @envvar_principal(envvar : Text) : Blob =\n switch ((prim "env_var" : Text -> ?Text) envvar) {\n case (?envvar) (prim "decode_principal" : Text -> Blob) envvar;\n case _ (prim "trap" : Text -> None)("envvar `" # envvar # "` not set")\r\n };\n',nca),aca=eca[2],uca=eca[1];function fca(r,n){return EBe(Oia(0,Qne,x1(0,r),xPe,n),function(r){return qBe(r)})}function ica(r){var n=iY(r),t=EBe(Oia(0,Rne,h1(0,n),xPe,r),function(r){return qBe(r)});return hV(n),t}function cca(r,n){return PL($3(tY,Kne),r),QBe(n),Jce(1)}function vca(r){var n=Ria(0,kMe,x1(0,wqe(1)),yPe,ete);if(0!==n[0])return cca($ne,n[1]);var t=n[1][1],e=[0,Lle,[0,0,[0,Lle,[2,0,YY(function(r){var n=tBe(nBe(t[3][2],r[1])),e=r[1];return Vle([0,r,Vle([0,n],Lle),0],e)},t[2])],Yz]],[0,Une,rBe]],a=Xia(aca,0,e);return 0===a[0]?[0,e,_Ee(aca,a[1][1])]:cca(Gne,a[1])}function oca(r){var n=r[2];if("number"==typeof n)return 0===n?"/* unresolved */":Pne;switch(n[0]){case 0:var t=n[1][2];break;case 1:t=n[1][1];break;default:t=n[1]}return t}function Aca(r,n,t,e){var a=[0,wia[1]],u=[0,n],f=[0,0],i=[0,e];function c(n,t){var e=t[2],c=oca(t);if("number"==typeof e){if(0===e)throw kQ([0,YL,Nne],1);if(M_e[3].call(null,Tne,u[1][2]))return qBe(0);var o=vca(),A=o[2];return f[1]=[0,o[1],f[1]],u[1]=_Ee(u[1],A),i[1]=M_e[4].call(null,c,A,i[1]),qBe(0)}switch(e[0]){case 0:var s=e[1],b=s[2],l=s[1];if(M_e[3].call(null,b,u[1][2]))return qBe(0);if(wia[3].call(null,e,a[1])){var B=PL(R3(Fne),b);return DBe(t[1],"M0003",Mne,B)}return a[1]=wia[4].call(null,e,a[1]),EBe(UL(r,t[1],b),function(r){var t=r[2],o=r[1];return EBe(function(r){return HBe(0,function(n){for(var t=r[2],e=[0,n,0,0,0];;){if(!t)return[0,0];var a=t[2];MEe(e,t[1]),t=a}})}(o),function(r){var A=0===l?n:l;return EBe($ia(Sia(0,t,A),o,t),function(r){return EBe(v(A,r),function(r){var n=Lge(1,o),t=[0,n[1],n[2],[0,b,n[3][2]]];return EBe(Xia(u[1],A,t),function(r){return f[1]=[0,t,f[1]],u[1]=_Ee(u[1],r),i[1]=M_e[4].call(null,c,r,i[1]),a[1]=wia[6].call(null,e,a[1]),qBe(0)})})})})});case 1:var j=e[1][1];return EBe(vXe(j),function(r){var n=r[3],e=r[2];if(0===n){var a=PL(R3(qne),j);return DBe(t[1],"M0004",Ine,a)}try{var f=_Xe(e,n)}catch(r){var v=iL(r);if(v[1]!==zBe)throw kQ(v,0);var o=[0,v[2],0],A=PL(R3(Dne),j);return[1,[0,gBe(t[1],"M0153",Ene,0,0,0,A),o]]}var s=xEe(j,f);return u[1]=_Ee(u[1],s),i[1]=M_e[4].call(null,c,s,i[1]),qBe(0)});default:var k=xEe(e[1],Gz);return u[1]=_Ee(u[1],k),qBe(0)}}function v(r,n){return TBe(function(n){return function(r,n){var t=oca(n),e=M_e[29].call(null,t,i[1]);return e?(u[1]=_Ee(u[1],e[1]),qBe(0)):Npe([0,t],function(t){return c(r,n)})}(r,n)},n)}var o=v(0,t);if(0!==o[0])return[1,o[1]];var A=o[1][2],s=i[1],b=u[1];return[0,[0,[0,XY(f[1]),b,s],A]]}function sca(r,n,t,e,a,u){var f=n?n[1]:0;return EBe(NBe(PL(t,Lle),e),function(n){return EBe(NBe(Zia,n),function(n){for(var e=YY(function(r){return r[1]},n),i=n,c=0;i;){var v=i[2],o=WY(i[1][2],c);i=v,c=o}return EBe(Aca(t,a,XY(c),u),function(t){var a=t[2],u=t[3],i=t[1];return EBe(function(r,n,t){return r&&r[1]?HBe(0,function(r){try{var e=Sge(t)[2],a=ZEe(r,n),u=function(r){if(r){var n=r[1][1],t=Noe(r)[1][2];return wNe(0,0,0,a,[0,n[1],t],aNr,eNr)}};r:{for(var f=0,i=Cge(e)[2];;){if(!i){var c=0;break r}var v=i[1],o=i[2],A=v[2];n:{switch(A[0]){case 0:var s=A[1];break;case 1:s=A[2];break;case 4:var b=1===A[3][2]?1:0;break n;default:b=0;break n}b=Hge(s)}if(b)break;f=[0,v,f],i=i[2]}var l=(0!==f?1:0)||(0!==o?1:0);c=l?(u(XY(f)),u(o),TNe(tNr,a,v[1],nNr,0,0,0,rNr)):l}return[0,c]}catch(f){var B=iL(f);if(B===rNe)return 0;throw kQ(B,0)}}):qBe(0)}(r,a,e),function(r){return EBe(function(r,n,t){var e=r?r[1]:0;return function r(n,t,a){if(!a)return qBe([0,XY(t),n]);var u=a[1],f=a[2],i=u[3][1];switch(Lge(0,u)[2][2][2][0]){case 0:var c=gce[1]?1:[2,Che];break;case 2:throw kQ([0,YL,Lne],1);case 3:c=1;break;default:c=[2,Che]}return EBe(Npe([0,i],function(r){return Wia([0,e],n,0,c,u)}),function(e){var a=e[2];return r(_Ee(n,a),[0,a,t],f)})}(n,0,t)}([0,f],a,e),function(r){var t=r[2];return qBe([0,i,u0(function(r,n){return[0,r[1],YY(oca,r[2]),n]},n,r[1]),t,u])})})})})})}function bca(r,n,t,e){return EBe(sca(r,0,n,t,e,M_e[1]),function(r){var n=r[3];return qBe([0,r[1],YY(function(r){return r[1]},r[2]),n])})}function lca(r,n){return Npe([0,n[3][1]],function(t){return function(r,n,t){pQe[1]=0;try{var e=fQe(r,tQe,n),a=[0,e[1],e[2],e[3],e[4],e[5],[0,function(r){return oQe(kQe[1],Grn)}],e[7],e[8]];if(!pwe[3].call(null,"",a[8][1])){var u=a[8][1],f=_we(1,0,1,function(r,n,t){return PQe(a,Lle,function(r,n){for(var t=OC(32),e=0;;)for(;;){var a=w6(Kue),u=a%xv|0;if(1073741568>=(a-u|0)){eC(t,e,RY(u));var f=e+1|0;if(31===e)return PL(r,[14,XV(t)]);e=f;break}}},t)}),i=[19,pwe[6].call(null,"raw_rand",f)],c=pwe[4].call(null,"",i,u);a[8][1]=c}sQe[1]=0;var v=[0,0],o=[0,pwe[1]];k2(function(r){return ACe(a,t[2],[0,o],function(r){return v[1]=[0,r],0})},dQe),_Qe();var A=v[1],s=[0,o[1],n[2]];return A?[0,[0,A[1],s]]:0}catch(v){var b=iL(v);if(b[1]===vQe){var l=b[2];return PL($3(tY,$rn),l),0}var B=j6();$3(nY,onn);var j=Wle(kQe[1]),k=b6(b);return UL($3(tY,Ann),j,k),$3(tY,snn),pwe[12].call(null,function(n,t){var e=NQe(r)(t);return UL($3(tY,vnn),n,e)},jQe[1][2]),$3(tY,bnn),PL($3(tY,lnn),B),$3(tY,Bnn),0}}([0,0,2],r,n)})}function Bca(r,n){for(var t=r,e=n;;){if(!e)return t;var a=e[1],u=a[3][1],f=e[2];Pie(u);let r=t,n=a,i=[0,0,2];t=eQe(t,Npe([0,u],function(t){return hXe(i,r,n)})),e=f}}function jca(r,n){var t=lca(n,r);return t?eQe(n,t[1][2]):Jia("initializing",r[3][1],0)}function kca(r,n,t){var e=Y9e()+4|0,a=[0,v8e[1]],u=[0,c8e[1]],f=[0,i8e[1]],i=[0,i8e[1]],c=[0,VWe[1]],v=[0,VWe[1]],o=[0,o8e[1]],A=[0,r,n,Bfa,LWe(),[0,0],o,[0,0],[0,0],v,c,i,f,[0,e],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],u,0,0,[0,0],[0,0],a,[0,0]];k8e(A,mOt,1,0),k8e(A,dOt,1,0),k8e(A,sYt,1,Y9e()),k8e(A,bYt,1,Y9e()),d8e(A,lYt),p8e(A,LYt,1,VYt),p8e(A,SYt,1,zYt),p8e(A,WYt,1,ZYt),4!==Dce[1]&&k8e(A,XYt,1,0),p8e(A,KFt,1,$Ft),k8e(A,OFt,1,0),rua[7][6].call(null,A),rua[7][32].call(null,A),p8e(A,SEt,1,zEt);var s=rua[2].call(null,A);switch(A[1]){case 3:q8e(A)($Gt,GGt,UGt,PGt);break;case 0:break;default:!function(r){q8e(r)(OGt,KGt,0,0);var n=qoe(2,0);q8e(r)(QGt,RGt,n,0);var t=Baa(2);q8e(r)(HGt,CGt,t,0),q8e(r)(zGt,LGt,VGt,0);var e=qoe(8,0);q8e(r)(ZGt,SGt,e,0),q8e(r)(JGt,XGt,0,WGt);var a=qoe(2,0);q8e(r)(r$t,YGt,a,0),q8e(r)(t$t,n$t,[0,0,0],0);var u=qoe(3,0);q8e(r)(a$t,e$t,u,0),q8e(r)(f$t,u$t,0,[0,0,0]),q8e(r)(v$t,c$t,0,i$t),q8e(r)(s$t,A$t,0,o$t);var f=qoe(3,0);q8e(r)(l$t,b$t,f,0),q8e(r)(j$t,B$t,0,[0,0,0]),q8e(r)(m$t,p$t,0,k$t);var i=qoe(2,0);q8e(r)(h$t,_$t,i,d$t);var c=qoe(3,0);q8e(r)(y$t,x$t,c,0),q8e(r)(g$t,w$t,0,[0,0,0]);var v=qoe(2,0);q8e(r)(I$t,q$t,v,0);var o=qoe(3,0);q8e(r)(E$t,D$t,o,0),q8e(r)(T$t,N$t,0,[0,0,0]);var A=qoe(3,0);q8e(r)(M$t,F$t,A,0),q8e(r)(U$t,P$t,0,[0,0,0]),q8e(r)($$t,G$t,[0,0,0],0),q8e(r)(O$t,K$t,[0,0,0],0),q8e(r)(Q$t,R$t,[0,1,[0,1,[0,0,0]]],0),q8e(r)(H$t,C$t,[0,1,[0,1,[0,0,0]]],0),q8e(r)(L$t,V$t,[0,1,[0,1,[0,0,0]]],0),q8e(r)(S$t,z$t,[0,0,0],0),q8e(r)(W$t,Z$t,[0,1,[0,1,[0,0,0]]],0),q8e(r)(Y$t,J$t,[0,0,[0,0,[0,0,[0,0,0]]]],X$t),q8e(r)(tKt,nKt,[0,0,[0,0,[0,0,[0,0,0]]]],rKt);var s=qoe(2,0);q8e(r)(aKt,eKt,s,0),q8e(r)(iKt,fKt,0,uKt),q8e(r)(vKt,cKt,0,[0,0,0]);var b=qoe(3,0);q8e(r)(AKt,oKt,b,0),q8e(r)(bKt,sKt,0,[0,0,0]);var l=qoe(3,0);q8e(r)(BKt,lKt,l,0),q8e(r)(pKt,kKt,0,jKt),q8e(r)(dKt,mKt,0,[0,0,0]);var B=qoe(3,0);q8e(r)(hKt,_Kt,B,0);var j=qoe(2,0);q8e(r)(yKt,xKt,j,0);var k=qoe(2,0);q8e(r)(gKt,wKt,k,0),q8e(r)(IKt,qKt,0,0),q8e(r)(NKt,EKt,0,DKt),q8e(r)(PKt,MKt,FKt,TKt);var p=qoe(2,0);q8e(r)(GKt,UKt,p,0);var m=Baa(3);q8e(r)(KKt,$Kt,m,0);var d=Baa(3);q8e(r)(RKt,OKt,d,0),q8e(r)(HKt,CKt,0,QKt),q8e(r)(SKt,zKt,LKt,VKt),q8e(r)(WKt,ZKt,0,[0,0,0]),q8e(r)(JKt,XKt,[0,0,0],[0,0,0]);var _=qoe(4,0);q8e(r)(rOt,YKt,_,0),q8e(r)(eOt,tOt,[0,0,[0,0,0]],nOt),q8e(r)(uOt,aOt,[0,0,[0,0,0]],[0,0,0]);var h=qoe(5,0);q8e(r)(iOt,fOt,h,0),q8e(r)(oOt,vOt,0,cOt),q8e(r)(lOt,bOt,sOt,AOt)}(A)}R9e(A);var b=t[2],l=t[1];if(b[1])throw kQ([0,YL,LBt],1);if(b[5])throw kQ([0,YL,zBt],1);if(b[4])throw kQ([0,YL,SBt],1);if(b[3])throw kQ([0,YL,ZBt],1);if(b[2])throw kQ([0,YL,WBt],1);switch(l[0]){case 0:RWe(XBt);break;case 1:var B=l[1];x9e(A,JBt,0,0,function(r){return pia(r,kua,B,_Ce[1])[2].call(null,dWe)});break;default:var j=l[4],k=l[3],p=l[2],m=l[1],d=j[8];x9e(A,jjt,0,0,function(r){for(var n=KCe(zCe(p,k,j)),t=m?m[1]:0,e=YY(function(r){return[0,r[2],r[3]]},t),a=YY(function(r){return r[2]},t),u=YY(function(r){return r[3]},t),f=gua(r,kua,function(r){return 1-_Ce[3].call(null,r,n)},e),i=YY(function(r){return[0,r[2][2],r[2][1]]},k),c=VWe[46].call(null,i),v=kia(r,f,p,c,KCe(SCe(j))),o=v[1],s=k,b=v[2];s;){var l=s[1],B=s[2],_=_ua(o,l[2][2]);if(_){var h=_[1];if(4===h[0]){var x=[0,wve,[0,[0,wve,h[1]]]];if(1>>0)throw kQ([0,YL,rjt],1);var y=Pme(l[3]);if("number"!=typeof y&&8===y[0]){var w=y[1];if(w){switch(w[1]){case 0:var g=lB+l[2][1];break;case 1:g=KI+l[2][1];break;default:g=Yl+l[2][1]}l8e(r,[0,wve,[0,xoe(g),x]]),s=B;continue}}throw kQ([0,YL,njt],1)}}throw kQ([0,YL,YBt],1)}x9e(r,tjt,0,0,function(r){return cia(r,o,UJ,j[2])}),x9e(r,ejt,0,0,function(r){return cia(r,o,UJ,j[3])}),function(r){var n=(1===r[1]?1:0)||(2===r[1]?1:0);if(!n)return n;var t=h9e(r,0,0,function(r){var n=oaa(r,7),t=[6,[0,wve,w8e(r,FUt)]],e=M8e(r,MUt),a=Bra(r),u=e9e(3),f=jaa(r,PUt);function i(r,n,t){return _We(a,e,r,n,t)}var c=oaa(r,6);return function(r,e,a){return c(r,e,f(r,e,u(r,e,qWe(DX,dWe,i,r,e,hWe(t,0,e,n(r,e,a))))))}}),e=h8e(r)(UUt,t),a=h9e(r,0,0,function(r){var n=G9e(r),t=oaa(r,2),e=[6,[0,wve,w8e(r,NUt)]],a=oaa(r,8),u=[6,[0,wve,w8e(r,TUt)]],f=oaa(r,1);return function(r,i,c){return f(r,i,hWe(u,0,i,a(r,i,hWe(e,0,i,_We(t,n,r,i,c)))))}}),u=h8e(r)(GUt,a);l8e(r,[0,wve,[0,xoe($Ut),[0,wve,[0,[0,wve,e]]]]]),l8e(r,[0,wve,[0,xoe(KUt),[0,wve,[0,[0,wve,u]]]]])}(r);var q=j[4][2];r:{if(0===q[0]){var I=q[1],D=I[1];if("number"==typeof D&&!D&&!I[2])break r}x9e(r,ajt,0,0,function(r){return cia(r,o,UJ,j[4])}),function(r){if(1!==r[1]&&2!==r[1])throw kQ([0,YL,aGt],1);var n=h9e(r,0,0,function(r){var n=G9e(r),t=[6,[0,wve,w8e(r,eGt)]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),t=[0,wve,[0,[0,wve,h8e(r)(uGt,n)]]];l8e(r,[0,wve,[0,xoe(fGt),t]])}(r)}var E=j[5][2];r:{if(0===E[0]){var N=E[1],T=N[1];if("number"==typeof T&&!T&&!N[2])break r}x9e(r,ujt,0,0,function(r){return cia(r,o,UJ,j[5])}),function(r){if(1!==r[1]&&2!==r[1])throw kQ([0,YL,rGt],1);var n=h9e(r,0,0,function(r){var n=G9e(r),t=[6,[0,wve,w8e(r,YUt)]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),t=[0,wve,[0,[0,wve,h8e(r)(nGt,n)]]];l8e(r,[0,wve,[0,xoe(tGt),t]])}(r)}var F=j[6][2];r:{if(0===F[0]){var M=F[1],P=M[1];if("number"==typeof P&&!P&&!M[2])break r}x9e(r,fjt,0,0,function(r){return cia(r,o,UJ,j[6])}),function(r){if(1!==r[1]&&2!==r[1])throw kQ([0,YL,WUt],1);var n=h9e(r,0,0,function(r){var n=jaa(r,SUt),t=[6,[0,wve,w8e(r,ZUt)]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),t=[0,wve,[0,[0,wve,h8e(r)(XUt,n)]]];l8e(r,[0,wve,[0,xoe(JUt),t]])}(r)}var U=j[7][2];r:{if(0===U[0]){var G=U[1],$=G[1];if("number"==typeof $&&!$&&!G[2])break r}x9e(r,ijt,0,0,function(r){return cia(r,o,UJ,j[7])}),function(r){if(1!==r[1]&&2!==r[1])throw kQ([0,YL,VUt],1);var n=h9e(r,0,0,function(r){var n=G9e(r),t=[6,[0,wve,w8e(r,HUt)]];return function(r,e,a){return hWe(t,0,e,n(r,e,a))}}),t=[0,wve,[0,[0,wve,h8e(r)(LUt,n)]]];l8e(r,[0,wve,[0,xoe(zUt),t]])}(r)}x9e(A,$J,0,cjt,function(r){return cia(r,o,0,d)});var K=hia(vjt,j[1][2]);r[20][1]=K;var O=hia(ojt,j[1][1][2]);r[19][1]=O;var R=hia(Ajt,j[1][1][1]);r[18][1]=R;var Q=b(dWe),C=function(r){var n=laa(r),t=Bea(r,1,"");return function(r,e,a){return _We(t,n,r,e,a)}}(r);if(KV(j[5][1],Lle))var H=jaa(r,sjt),V=z8e(bjt),L=function(r,n,t){return V(r,n,H(r,n,hWe(2,0,n,t)))};else L=dWe;if(m&&m[1])var z=xWe(function(n){return Eua(r,f,n)},XY(a)),S=rua[29].call(null,r,u),Z=function(r,n,t){return _We(S,z,r,n,t)};else{if(0!==u)throw kQ([0,YL,ljt],1);var W=rua[29].call(null,r,u),X=jaa(r,Bjt);Z=function(r,n,t){return X(r,n,qWe(DX,W,dWe,r,n,t))}}return function(r,n,t){return Z(r,n,L(r,n,_We(C,Q,r,n,t)))}})}var _=A[1];if(_)if(3<=_){if(3!==A[1])throw kQ([0,YL,RUt],1);var h=h9e(A,0,0,function(r){var n=oaa(A,2),t=[6,[0,wve,w8e(A,OUt)]],e=oaa(A,1);return function(r,a,u){return e(r,a,hWe(t,0,a,n(r,a,u)))}}),x=[0,wve,[0,[0,wve,h8e(A)(QUt,h)]]];l8e(A,[0,wve,[0,xoe(CUt),x]]);var y=0}else{if(1!==A[1]&&2!==A[1])throw kQ([0,YL,cGt],1);var w=h9e(A,0,0,function(r){var n=oaa(r,2),t=G9e(r),e=[6,[0,wve,w8e(r,iGt)]],a=oaa(r,1);return function(r,u,f){return a(r,u,hWe(e,0,u,_We(t,n,r,u,f)))}}),g=[0,wve,[0,[0,wve,h8e(A)(vGt,w)]]];l8e(A,[0,wve,[0,xoe(oGt),g]]);y=0}else y=[0,[0,wve,w8e(A,xjt)]];return xia(A,s,y)}function pca(r,n,t,e,a){if(!t)return e;var u=PL(n,e);return Kia(pce,u),mce[1]&&mze(0,r,u),u}function mca(r){var n=Dce[1];r:{if(Mce[1]){if(4>n)break r;var t='\0asm\0\0\0\0\bdylink.0¸‰\0Ú4`~~~`~`~~`~~~\0`~`\0~`~~`~\0`\0\0`~\0`\0`~\0`~~~`~~\0`~~~\0`~~~~`~~~~\0`\t~~~~~`~~~~~`~\0`~`\b~~~~~`~~~~~`~~\0`||`~~~~`|||`|~`~|``~~~~`~~\0`|~~~`}}}`~~~~~\0`\t~~~~~~~`~~~~~\0`~~|`~~|\0`~|\0`}}`||`|||`}}`~~~~\0`~|`~|`~~\0`~|`~~`~~~`~~~»envmemoryenv__indirect_function_tablepenv__stack_pointer~env\r__memory_base~\0env\f__table_base~\0envic0_stable64_read\0envic0_stable64_write\0envic0_performance_counter\0envmoc_stable_mem_get_version\0envmoc_stable_mem_get_size\0envmoc_stable_mem_grow\0envmoc_stable_mem_set_version\0envic0_stable64_size\0envic0_stable64_grow\0env\vbigint_trap\0\benv\brts_trap\0\tenvkeep_memory_reserve\0\nenv\fint_from_i64\0env#moc_stabilization_instruction_limit\0envmoc_stable_memory_access_limit\0envidl_limit_check\0\venvmoc_stable_mem_set_size\0ÊÈ\b\b\b\f\r\r\r\b\b\b\f\r\f\f\r\r\r\r\0\0\f\f\r\f\f\r\f\f\f\f\f\r\f\f\f\r !\b\n\n\n"#\f\b\b\n\r\f\r$!\f%\f&\r\n\b\r\r\b\r\b\f\f\f\r\r\b\'()*!!+,,--.-\f\0\f/\t\t\f""""\0\0\0\0\t\r\r01\r\0\0\r1\t\x0021\0\0\x0033\r\0\0\0~BÏÁ\0\v~B\0\v~B\v–¦__wasm_call_ctors\0__wasm_apply_data_relocs\0allocation_barrier\0memcmp\0 acos\0G\valloc_array\0H\nalloc_blob\0I\falloc_region\0Jalloc_weak_ref\0K\valloc_words\0Lasin\0Massign_stable_type\0Natan\0Oatan2\0Pbigint_2complement_bits\0Q\nbigint_abs\0R\nbigint_add\0Sbigint_count_bits\0T\nbigint_div\0U\tbigint_eq\0V\tbigint_ge\0W\tbigint_gt\0X\fbigint_isneg\0Y\tbigint_le\0Zbigint_leb128_decode\0[bigint_leb128_decode_word64\0\\bigint_leb128_encode\0]bigint_leb128_size\0^\nbigint_lsh\0_\tbigint_lt\0`\nbigint_mul\0a\nbigint_neg\0bbigint_of_float64\0cbigint_of_int64\0dbigint_of_word64\0e\nbigint_pow\0f\nbigint_rem\0g\nbigint_rsh\0hbigint_sleb128_decode\0ibigint_sleb128_decode_word64\0jbigint_sleb128_encode\0kbigint_sleb128_size\0l\nbigint_sub\0mbigint_to_float64\0nbigint_to_word32_trap\0obigint_to_word32_trap_with\0pbigint_to_word32_wrap\0qbigint_to_word64_trap\0rbigint_to_word64_trap_with\0sbigint_to_word64_wrap\0t\fblob_compare\0u\tblob_iter\0vblob_iter_done\0wblob_iter_next\0xblob_of_principal\0y\vtext_to_buf\0z\fblob_of_text\0{buffer_in_32_bit_range\0|char_is_alphabetic\0}char_is_lowercase\0~char_is_uppercase\0char_is_whitespace\0€\rchar_to_lower\0\rchar_to_upper\0‚\rcompute_crc32\0ƒcontains_field\0„continuation_count\0…continuation_table_size\0†cos\0‡exp\0ˆ\nfind_field\0‰\bskip_any\0Š\tfloat_fmt\0‹fmod\0Œfmodf\0free_stable_actor\0Žget_dedup_table\0get_graph_destabilized_actor\0\rget_heap_size\0‘get_max_live_size\0’get_migrations\0“\rget_reclaimed\0”get_static_variable\0•get_total_allocations\0–get_upgrade_instructions\0—graph_destabilization_increment\0˜graph_stabilization_increment\0™has_stable_actor\0šidl_alloc_typtbl\0›idl_sub\0œidl_sub_buf_init\0idl_sub_buf_words\0žincremental_gc\0Ÿ\vinit_region\0 initialize_incremental_gc\0¡initialize_static_variables\0¢is_graph_stabilization_started\0£\rleb128_decode\0¤\rleb128_encode\0¥load_stable_actor\0¦log\0§\tmp_calloc\0¨mp_free\0©\nmp_realloc\0ªparse_idl_header\0«peek_future_continuation\0¬pow\0­powf\0®principal_of_blob\0¯read_persistence_version\0°recall_continuation\0±\vregion0_get\0²\vregion_grow\0³\tregion_id\0´\vregion_init\0µregion_load_blob\0¶region_load_float64\0·region_load_word16\0¸region_load_word32\0¹region_load_word64\0ºregion_load_word8\0»\nregion_new\0¼region_page_count\0½region_store_blob\0¾region_store_float64\0¿region_store_word16\0Àregion_store_word32\0Áregion_store_word64\0Âregion_store_word8\0Ãregion_vec_pages\0Äregister_stable_type\0Åremember_continuation\0Æ\nrunning_gc\0Çsave_stable_actor\0Èschedule_incremental_gc\0Éset_dedup_table\0Êset_migrations\0Ëset_static_variable\0Ìset_upgrade_instructions\0Ísin\0Î\vskip_fields\0Ï\vskip_leb128\0Ðsleb128_decode\0Ñsleb128_encode\0Òstart_gc_after_destabilization\0Óstart_graph_destabilization\0Ôstart_graph_stabilization\0Õstop_gc_before_stabilization\0Ötan\0×\ftext_compare\0Ø\vtext_concat\0Ù\ttext_iter\0Útext_iter_done\0Ûtext_iter_next\0Ü\btext_len\0Ýtext_lowercase\0Þtext_of_ptr_size\0ßtext_singleton\0àtext_uppercase\0á\nutf8_valid\0â\rutf8_validate\0ãversion\0äweak_ref_is_live\0åwrite_with_barrier\0æ\vregion_size\0½\ttext_size\0´\b\t\r\0#\v—˜DEF\nÄ­\nÈ\0\v•\0Bè‡#|#B|7\0Bð‡#|#B|7\0Bø‡#|#B|7\0B€ˆ#|#BÀÓ\0|7\0Bˆ#|#BÈÛ\0|7\0B ˆ#|#BÐÛ\0|7\0BÀˆ#|#B˜Ü\0|7\0BЈ#|#Bîä\0|7\0Bàˆ#|#Bžë\0|7\0\v\0#BÏÁ\0|$#B\0|$#B|$\v©~#€€€€\0B€\b}"$€€€€\0 \0)\0! B\x007\0  B\b€€€€\0 )\0! A\0B€\bü\v\0@ B{V\r\0 B|! !@    }"B€\b B€\bT"€€€\0  |" T\r\0\v\v B|BˆB|•€€€\0"B| 7\0 B\t| 7\0 B|B7\0 B| B\b|" €€€€\0 A\0B€\bü\v\0@   |"Z\r\0@    }"B€\b B€\bT"€€€\0  |" T\r\0\v\v –€€€\0! \0 7\0 B€\b|$€€€€\0 \vŸ~@ \0B†"B€€ T\r\0 œ€€€\0\vB¨ !@B\0)À¹ "B€T\r\0@@ B€|"B€ƒB€R\r\0B¨¹ !\0 !\f\v BˆB|Bƒ!B¨¹ !\0 !@ B€|! \0)\0"B€8|!\0 B|"B\0R\r\0\v\v B€T\r\0@ \0)\0)€8)€8)€8)€8)€8)€8)€8"B€8|!\0 B€x|"Bÿ\0V\r\0\v\v@  Bÿ\0ƒB8~|"\0)\0B†" \0)| \0) "|"  }B€€€ |X\r\0 €€€\0\v@@  |"B€€|V\r\0@ Bÿÿ|Bˆ"?\0"X\r\0  }@\0BQ\r \0) !\v \0  |7 B|\v#€€€\0B€€€€€€€€€\0|B›€€€\0\0\v#€€€\0B€€€€€€€€€\0|B›€€€\0\0\vØ~~@B\0(  "AF\r\0@@@@@@@@@@@@@@ AqAG\r\0 \0B|"Bˆ!B¨ !@ B€€€€ T\r\0B¨ ! !@ )€8! B€|"Bÿ\0V\r\0\v\v  Bÿ\0ƒB8~|"-\0\t\r )( BˆBÿÿ?ƒ|"-\0\0"A §AvAqt"q\r\r   r:\0\0 °€€€\0!  ) B†|7\f\r\v AG\r\fB\0-\0й AG\r\f \0B|")\0"B|"B,V\r@ §-\0\n\n\n\n\r\r\r\t\b\r\r\r\r\r\v\0\v@ )"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B|!B! P\r\0 )\b!\v  7 B\t|)\0B|)\0Bˆ"P\r\fB\0!@ BQ\r\0 Bƒ! B |! Bþÿÿÿÿÿÿÿƒ!\bB\0!@@ Bx|"\t)\0"BƒP\r\0@ B|"\nBV\r\0 \n§\0\0\0\0\0\vB!\n@ B|"P\r\0 )\b!\n\v \t \n7\0\v@ )\0"BƒP\r\0@ B|"\tBV\r\0 \t§\0\0\0\0\0\vB!\t@ B|"P\r\0 )\b!\t\v  \t7\0\v B|! \b B|"R\r\0\v P\r\r\v B| B†|")\0"BƒP\r\f@ B|"BV\r\0 §\r\0\0\0\0\0\r\r\vB!@ B|"P\r\0 )\b!\v  7\0\f\f\vB¨  ±€€€\0\f\v\v B-V\r\v#€€€\0B»‹€€€€€€€\0|B*›€€€\0\0\v@ )"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B|´€€€\0\v ) "BƒP\r\b B |! B|"BV\r §\b\b\b\v ) "BƒP\r B |! B|"BV\r §\v )"BƒP\r B|! B|"BV\r §\v )"BƒP\r B|! B|"BV\r §\v )"P\rB\0!@ BQ\r\0 Bƒ! B(|! B~ƒ!\bB\0!@@ Bx|"\t)\0"BƒP\r\0@ B|"\nBV\r\0 \n§\0\0\0\0\0\vB!\n@ B|"P\r\0 )\b!\n\v \t \n7\0\v@ )\0"BƒP\r\0@ B|"\tBV\r\0 \t§\0\0\0\0\0\vB!\t@ B|"P\r\0 )\b!\t\v  \t7\0\v B|! \b B|"R\r\0\v P\r\v B | B†|")\0"BƒP\r@ B|"BV\r\0 §\0\0\0\0\0\vB!@ B|"P\r\0 )\b!\v  7\0\f\v )"BƒP\r B|! B|"BV\r §\v B|)\0" Bÿÿÿÿÿÿÿÿ?ƒB\0 B-V"X\r B|!@  }BƒP\r\0 B†!\t ! \t B||"\b)\0"\tBƒP\r\0@ \tB|"\nBV\r\0 ! \n§\0\0\0\0\0\vB!@ \tB|"\tP\r\0 \t)\b!\v \b 7\0 !\v  Q\r  }! B† |B |!@@ Bx|")\0"BƒP\r\0@ B|"\tBV\r\0 \t§\0\0\0\0\0\vB!\t@ B|"P\r\0 )\b!\t\v  \t7\0\v@ )\0"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\vB!@ B|"P\r\0 )\b!\v  7\0\v B|! B~|"PE\r\0\f\v\v )"BƒP\r B|! B|"BV\r\0 §\0\0\0\0\0\vB{!@ B{Q\r\0B! B|"P\r\0 )\b!\v  7\0\vB\0(  AF\r\0B\0B\0)€º B|7€º \v \0\vó~#€€€€\0B}"$€€€€\0@ )\0" \0Z\r\0@ B\b| )X"B\b€€€€\0  B\b|7X@@ )\b"BƒPE\r\0 !\f\v@ B|"\bBV\r\0 ! \b§\0\0\0\0\0\vB\0! B|)\0BQ\r\0  ˜€€€\0! )XBx|!\v  7\b  B\b|B\b€€€\0  B|"7\0 )X )P"} )` }|" )0} ) V\r  )8B|"78@@@ BçV\r\0 B )@"B€€|"  TT\r\v  7@ B\x0078 A\0‚€€€\0 )(} )V"\t:\0H \t\r\f\v -\0H\r\v \0 R\r\0\v\v B|$€€€€\0\vì\t~~#€€€€\0B0}"$€€€€\0@@@@@ B|")\0B!Q\r\0 )\bB|")\0"B!R\r !\v )\b!\f\v \0)P! \0)`!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ B|"B,V\r\0B!\b §-\0\0\0\0\0\0\r\0\0\0\0\0)\0\0\f\0\v\0\0\0\0\0\0\0\0\0\0\0\0(\v B.T\r\v B=ˆBƒ B}| B-V"BZ\rAÕ\0 §AÿqvAqE\r #€€€\0B¨›€€€€€€€\0| B†|)\x007( )\b! B‡€|Bˆ"‡€€€\0"X\r  }ˆ€€€\0BR\r#€€€\0Bˆ–€€€€€€€\0|B›€€€\0\0\vB\t!\b\f\t\vB\n!\b\f\b\vB\r!\f\t\v  B(|B\b€€€\0  B|"B|)\x007\0@ B€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r"\v B\b| B\b€€€\0 \0 B|7` B|)\0"P\r$ B—€|! B|!@  )\x007@ Bˆ"\b‡€€€\0"\tX\r\0 \b \t}ˆ€€€\0BQ\r"\v Bùÿ{| B|B\b€€€\0 \0 B€||7` B\b|! B\b|! B|"B\0R\r\0\f%\v\v B7\0 )\b!@ B‡€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\v  B\b€€€\0  B|)\x007@ B€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\v B\b| B|B\b€€€\0 \0 B|7`\f#\v B7( )\b!@ B‡€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\v  B(|B\b€€€\0 B|"B|)\0"B\t|)\0!@@ B|)\0B!R\r\0 B|  |B|B€€€€\0 )"B|BZ\r BR\r )! B|)\0!\f\v B|)\0!\v  7\b  Bˆ7\0@ B—€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\v B\b| B€€€\0 \0 B|7` B|)\0"B\t|)\0! B|)\0B!R\r B|  |B|B€€€€\0 )"B|BZ\r BR\r\0 )!\f\v\0\v B|)\0!\v Bˆ"P\r BŸ€|! B|!@  )\x007@ Bˆ"\b‡€€€\0"\tX\r\0 \b \t}ˆ€€€\0BQ\r\v Bùÿ{| B|B\b€€€\0 \0 B€||7` B\b|! B\b|! B|"B\0R\r\0\f \v\vB\b!\b\v  \b7\0 )\b!@ B‡€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\v  B\b€€€\0  B|"B|)\x007@ B€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\v B\b| B|B\b€€€\0@ B|)\0" B|"|"\bBÿÿ|Bˆ"\t‡€€€\0"\nX\r\0 \t \n}ˆ€€€\0BQ\r\v  B| €€€\0 \0 \b7`  B|Bxƒ"Q\r  }!  |B€|!@@ Bˆ"‡€€€\0"\bX\r\0  \b}ˆ€€€\0BQ\r\v B€€||#€€€\0Bȇ€€€€€€€\0|B€€€\0 \0 B€||7` B|! B|"B\0R\r\0\f\v\vB\f!\v  7\0 )\b!@ B‡€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\f\v  B\b€€€\0  B|)\x007@ B€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\v\v B\b| B|B\b€€€\0 \0 B|7`\f\v B7\0 )\b!@ B‡€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\t\v  B\b€€€\0  B!|)\x007  B|)\x007  B|)\x007@ BŸ€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\b\v B\b| B|B€€€\0 \0 B |7`\f\v B7\0 )\b!@ B‡€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\v  B\b€€€\0 B|)\0!  B|)\x007  7@ B—€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\v B\b| B|B€€€\0 \0 B|7`\f\v B7\0 )\b!@ B‡€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\v  B\b€€€\0  B!|)\x007  B|)\x007  B|)\x007@ BŸ€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\v B\b| B|B€€€\0 \0 B |7`\f\v B7( )\b!@@ B‡€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\v  B(|B\b€€€\0 B|"(!\v@@ ("\f\r\0B\0!\f\v \f¬B|"B<~  B†|)(y}BÀ\0|!\v  7  \vA\0G:\0@@ B—€|Bˆ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\v B\b| B|B€€€\0 \0 B|"\n7` 4"\bB\0Q\r \bB|"B<~  B†|)(y}BÇ\0|Bˆ"\rP\r B(|!A\0!\vB\0!\tB\0!B\0!@@@  \bT\r\0 \t!A\0!\v\f\v  B†|! \t!@@ B|! )\0"\t \v­† „!AÀ\0 \vk"\fA< \fAƒ†"\vƒP\rA!\r\f\v\v \0)\0\0 \0)\0 \n| \0)\0~ \v|"\vBˆBøÿÿÿÿÿÿÿƒ|"\n \0)\0\bX\r#€€€\0B”Œ€€€€€€€\0|B·€€€\0\0\v \0)\0\0" \0)\0" \v~ \n|"BˆBøÿÿÿÿÿÿÿƒ|"\f \0)\0\b"V\r \0)\0! \f)\0"B B†B>ƒ†"ƒP\r   \v| ~ \n|"BˆBøÿÿÿÿÿÿÿƒ|" V\r )\0 B†B>ƒˆBƒP\rA!\r\f\t\v \n)\0"\fB \vB†B>ƒ†"\vƒP\rA!\r\f\b\v \n \f \v„7\0\f\v \n \f \v„7\0\f\v \f  „7\0   \v| ~ \n|"\vBˆBøÿÿÿÿÿÿÿƒ|"\n V\r \n \n)\0B \vB†B>ƒ†„7\0\f\v#€€€\0B”Œ€€€€€€€\0|B·€€€\0\0\v#€€€\0B”Œ€€€€€€€\0|B·€€€\0\0\v#€€€\0B”Œ€€€€€€€\0|B·€€€\0\0\v#€€€\0B”Œ€€€€€€€\0|B·€€€\0\0\v@@@@@@@@@@ AJ\r\0@@ AnK\r\0 AhF\r\0 Aÿ\0jA~I\r AL\r\f\v AJ\r\v  G\r AnK AhFr AjAIrE\rA!\r\f\n\v  ­B†|)\0!\n \t 7@ \n Z\r\0A\0!\rB\0!\v@ \n-\0\0"Aÿ\0q!@ \rA?G\r\0 AjAþ\0I\r\v ­ \r­† \v„!\v@ ÀAJ\r\0 \rAj!\r \nB|"\n Q\r\f\v\v \t \nB|"\f7 \vB\0B\0B \rAj"\r­† AÀ\0I \rA?K„"\nB€€€€\b|B€€€€Z\r \n§!\f\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v \t 7 \t 7 !\f\v@@@@@@ AJ\r\0 \t 7( \t 7 !\n\f\v  ­B†|)\0!\n \t 7( \n Z\rA\0!\rB\0!\v@ \n-\0\0"Aÿ\0q!@ \rA?G\r\0 AjAþ\0I\r\v ­ \r­† \v„!\v@ ÀAJ\r\0 \rAj!\r \nB|"\n Q\r\f\v\v \t \nB|"\n7 \vB\0B\0B \rAj"\r­† AÀ\0I \rA?K„"\vB€€€€\b|B€€€€Z\r \v§!\v@@@@@@@@@@@@ Aj\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v ApG\rA\0!\r\f\v AF\rA\0!\r\f\vA!\r Aj\v \f Z\rA\0!\rB\0!\v@ \f-\0\0"Aÿ\0q!@ \rA?G\r\0 AjAþ\0I\r\v ­ \r­† \v„!\v@ ÀAJ\r\0 \rAj!\r \fB|"\f Q\r\t\f\v\v \t \fB|7 \vB\0B\0B \rAj"\r­† AÀ\0I \rA?K„"\vB€€€€\b|B€€€€Z\r\f \n Z\r \v§!A\0!\rB\0!\v@ \n-\0\0"Aÿ\0q!@ \rA?G\r\0 AjAþ\0I\r\v ­ \r­† \v„!\v@ ÀAJ\r\0 \rAj!\r \nB|"\n Q\r\b\f\v\v \vB\0B\0B \rAj"\r­† AÀ\0I \rA?K„"\nB€€€€\b|B€€€€Z\r\f \0A      \n§A\0­€€€\0!\r\f\vA\0!\r\f\v A}F\r\r@ AG\r\0A\0!\r\f\vA\0!\r@@@ Aj\0\v Aý~F\r\vA\0!\r Aj\b\t\n\v AnG\r \0      \tB|½€€€\0 \tB |½€€€\0A\0­€€€\0!\r\f\v Aj"\rAI\r\f\r\v Aþ~G\r\f Aþ~G\r\fA\0!\r \tB|¼€€€\0" \tB |¼€€€\0G\r Aj!@ Aj"E!\r E\r \tB|¼€€€\0! \tB|½€€€\0! \tB |¼€€€\0! \tB |½€€€\0!\b  G\r \0       \bA\0­€€€\0E\r\f\0\v\v AmG\r\v \0      \tB|½€€€\0 \tB |½€€€\0A\0­€€€\0!\r\f\v AjG\r\n@ \tB|¼€€€\0"\r \tB |¼€€€\0F\r\0A\0!\r\f\v \rAj!A€\b AtAøqv!@@ Aj"\r\0A\0!\r \tB|¼€€€\0" \tB |¼€€€\0G\r Aj!@@ Aj"\r\0A\0!A\0!\bA\0!A\0!@ \tB|¼€€€\0"\rE\r\0A\0! \t)!\v \t)!\nA\0!A\0!\b@@ \n \vZ\r@@@@ \n-\0\0Aj\0\vA!\f\vA!\f\vA!\b\v \nB|!\n \rAj"\r\r\0\f\v\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\vA\0!A\0!@ \tB |¼€€€\0"\rE\r\0A\0! \t)(!\v \t) !\nA\0!A\0!@@ \n \vZ\r@@@@ \n-\0\0Aj\0\vA!\f\vA!\f\vA!\v \nB|!\n \rAj"\r\r\0\f\v\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\vA\0!\r  sAq\r  sAq\r \b sAs!\r\f\vA\0!\r \tB |½€€€\0! \0      \tB|½€€€\0 A\0­€€€\0E\r\f\0\v\vA\0!\r \tB|½€€€\0! \0      \tB |½€€€\0 A\0­€€€\0E\r\f\0\v\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v AiG\rA\0!\b \tB|¼€€€\0! \tB |¼€€€\0! \t)!\n AÿqAF!@@@@@ \b G\r\0 AÿqAG Er!\r\f\v@ \r\0A\0!\r\f\v \t \tB |¾€€€\0@ \t) \t5\0"|"\v \t)(V\r\0 \bAj!\b \t)\b! \t \v7 \tB |½€€€\0! \t)!@ \n Z\rA\0!\rB\0!\f@ \n-\0\0!@ \rA?G\r\0 AÿqAK\r\n\v ­Bÿ\0ƒ \r­† \f„!\f@ ÀAJ\r\0 \rAj!\r \nB|"\n Q\r\f\v\v \fB€€€€Z\r\b \n \f|B|"\v V\r \nB|! \t \v7B\0!A\0!\r@ \v Z\r \v-\0\0! \t \vB|"\n7 Aÿ\0q!@ \rA?G\r\0 AjAþ\0I\r\n\v ­ \r­† „! \n!\v \rAj"!\r ÀAL\r\0\v B\0B\0B ­† AÀ\0I A?K„"\vB€€€€\b|B€€€€Z\r\b    \f  \fT ‚€€\0"\r \f V \f Tk \r!\r Aj!@ \r\0 \rAJ\r\0 \r\v\v@ \rE\r\0A\0!\r\f\vA\0!\r \0      \v§ A\0­€€€\0E\r\f\v\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\f\v AkG\rA\0! \tB|¼€€€\0! \tB |¼€€€\0! \t) !\n AÿqAF!@@@  G\r\0 AÿqAG Er!\r\f\v\v@ \r\0A\0!\r\f\v\v Aj! \tB|¼€€€\0!\b \tB|½€€€\0! \t)(!@@ \n Z\rA\0!\rB\0!\f@ \n-\0\0!@ \rA?G\r\0 AÿqAK\r\v ­Bÿ\0ƒ \r­† \f„!\f@ ÀAJ\r\0 \rAj!\r \nB|"\n Q\r\f\v\v \t \nB|"\v7 \fB€€€€Z\r \f§!B\0!\fA\0!\r@ \v Z\r \v-\0\0! \t \vB|"\n7 Aÿ\0q!@ \rA?G\r\0 AjAþ\0I\r\v ­ \r­† \f„!\f \n!\v \rAj"!\r ÀAL\r\0\v \fB\0B\0B ­† AÀ\0I A?K„"\vB€€€€\b|B€€€€Z\r Aj!@ \r\0 \b M\r\0 \r\v\v@ \b F\r\0A\0!\r\f\f\vA\0!\r \0       \v§A\0­€€€\0E\r\v\f\v\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v AlG\r@ \b\r\0 \tB|¼€€€\0"Aj!A\0! \tB |¼€€€\0!@@  G\r\0  F!\r\f\n\vA\0!\r \tB |¼€€€\0! \tB |½€€€\0!  Aj"F\r\t \tB|¼€€€\0! \tB|½€€€\0!\b  G\r\tA\0!\r \0      \b A\0­€€€\0E\r\t\f\0\v\v Aÿq\r\0 \tB|¼€€€\0!\b \tB |¼€€€\0!@@@ \bE\r\0 \r\v \bE!\r\f\t\v Aj! \tB|¼€€€\0! \tB|½€€€\0! \tB |¼€€€\0! \tB |½€€€\0!@  F\r\0@  O!\r  I\r\n@  K\r\0@\f\0\v\v E\r\n Aj! \tB |¼€€€\0! \tB |½€€€\0!  G\r\0\v\v \bAj!\bA\0!\r \0A\0      A\0­€€€\0E\r\b\f\0\v\v\0\v AnG\rA!\r\f\v@ Aý~F\r\0A\0!\r AnF\r\f\v \0      \tB|½€€€\0 \tB |½€€€\0A\0­€€€\0!\r\f\vA\0!\r Aj\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\vA\0!\r\f\v AÿqAG!\r\f\v \rAF!\r\v \tB0|$€€€€\0 \rAq\vöZ\t~~#€€€€\0Bà\0}"$€€€€\0@@@@B\x005  "BV\r\0@ §\0\vB\0)ð¹ !B¨ !@B\0)À¹ "B€T\r\0@@ B€|"B€ƒB€R\r\0B¨¹ ! !\f\v BˆB|Bƒ!\bB¨¹ ! !@ B€|! )\0"B€8|! \bB|"\bB\0R\r\0\v\v B€T\r\0@ )\0)€8)€8)€8)€8)€8)€8)€8"B€8|! B€x|"Bÿ\0V\r\0\v\vB\0  Bÿ\0ƒB8~|) |B\0)ø¹ }B\0)ع |7ðº \v B\0)€º B\0B2B\0‚€€\0@@ )\bPE\r\0 )\0!\f\vB!\v#€€€\0B¨‰€€€€€€\0|A:\0\0 B\x007(B  ! B  7  \x007B\0B\x007€º  B BÀ–±|"  T70 B(|!\t@B\0(  "\nAG\r\0B\0A6  B\0A:\0è¹ @B\0)°¹ "\vP\r\0 )(!\fB€!B\0!\rB\0!\b@ \bB€|! §AvAj­Bƒ!B¨ !@ \bB€T"\n\r\0B¨ ! \b!@ B€ƒB€Q\r\0B¨ ! ! \b!@ B€|! )€8! B|"B\0R\r\0\v\v B€T\r\0@ )€8)€8)€8)€8)€8)€8)€8)€8! B€x|"Bÿ\0V\r\0\v\v@  \bBÿ\0ƒB8~"|"-\0\b\r\0 -\x000\r\0 )B€€€ Q\r\0 -\0\t\r\0B¨ !B¨ ™€€€\0!\f@ \n\r\0B¨ ! \b!@ B€ƒB€Q\r\0B¨ ! \b!@ B€|! )€8! B|"B\0R\r\0\v\v B€T\r\0@ )€8)€8)€8)€8)€8)€8)€8)€8! B€x|"Bÿ\0V\r\0\v\v \fA\0B€€À\0ü\v\0  | \f7(B \rB€€\b|"  \rT"\f!\r\v B|! \bB|"\b \vR\r\0\v  \f7(\vB‚\b•€€€\0!B\0A6ˆº B\0 B|"7º  B|B\x007\0 B|Bø?7\0 B\t| 7\0 B7\0 B!|B\x007\0B\0B\x007˜º B\0A\0:\0 º  B º 7X Bº 7P B¨ 7H  \t7@  \x0078@#€€€\0Bȇ€€€€€€\0|)\0"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B8|  €€€\0 B )(B|" P7(\v@#€€€\0Bˆ‰€€€€€€\0|)\0"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B8|  €€€\0 B )(B|" P7(\v@B\0)ˆ "BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B8|  €€€\0 B )(B|" P7(\v@B\0) "BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B8|  €€€\0 B )(B|" P7(\v@B\0)˜ "BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B8|  €€€\0 B )(B|" P7(\v@#€€€\0B ‰€€€€€€\0|)\0"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B8|  €€€\0 B )(B|" P7(\v@B\0)» "BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B8|  €€€\0 B )(B|" P7(\v@B\0)˜» "BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B8|  €€€\0 B )(B|" P7(\v ) "(\0!\n\v@ \nAG\r\0 (è8E\r )!  \t7@  78  B€9|"\r7X  Bð8|"7P  B\b|"\v7H@ -\0€9\r\0@@@@@ )ø8"B\0R\r\0 )\0)"P\rBù! Bù7ø8  7ð8\f\v  B|"7ø8 BúV\r )\0!\v  B†|)("BR\r\v \rA:\0\0@@@B\0)ˆ» "B{Q\r\0 B|!\f\vB•€€€\0"B|B7\0 B\t|"\b 7\0 B|"B7\0B‚\b•€€€\0"B|B\x007\0 B|Bø?7\0 B\t| 7\0 B|"B7\0 B!|B\x007\0 \bB\x007\0  7\0B\0 7ˆ» \v@@ )\b"B\0R\r\0 )\0)"P\rBù! Bù7\b  7\0\f\v  B|"7\b BúV\r )\0!\v  B†|)("\bBQ\r \b)"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B\t|)\0B|"Bˆ!@@@@ B€€€€ T\r\0 ! \v!@ )€8! B€|"Bÿ\0V\r\0\v  Bÿ\0ƒ"B8~|"-\0\tAG\r \v!@ )€8! B€|"Bÿ\0V\r\0\v !\f\v \v! \v B8~|"-\0\t\r\v )( BˆBÿÿ?ƒ|-\0\0 §AvAqvAq\r\f\v  B8~|)PE\r\v \bB|B{7\0\f\0\v\v@@@@@@@@@@@ )\t"\bB|")\0"B|"B,V\r\0@ §-\0\n\n\n\n\v\v\v\b\v\v\v\v\v\v\0\v B8| ) €€€\0 )B\t|)\0B|)\0Bˆ"P\r\n B|!@@ )\0"BƒP\r\0@ B|"\bBV\r\0 \b§\0\0\0\0\0\v B8|  €€€\0\v B\b|! B|"PE\r\0\f\v\v\v B-V\r\b\v#€€€\0B»‹€€€€€€€\0|B*›€€€\0\0\v@ )"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B8|  €€€\0\v ) "BƒP\r B|"BV\r §\v ) "BƒP\r B|"BV\r §\v )"BƒP\r B|"BV\r §\v )"BƒP\r B|"BV\r §\v )"P\r B |!@@ )\0"BƒP\r\0@ B|"\bBV\r\0 \b§\0\0\0\0\0\v B8|  €€€\0\v B\b|! B|"PE\r\0\f\v\v )"BƒP\r B|"BV\r\0 §\0\0\0\0\0\v B8|  €€€\0\f\v B=ˆBƒB|  B-V"\n!@@ )"\0 Bÿÿÿÿÿÿÿÿ?ƒB\0 \n"}"BT\r\0  B=†B€€€€€€€€ |B€€€€€€€€@ƒ B€|„7\0@@ )ø8"BúR\r\0@ )\0"\t) "\0B\0R\r\0B‚\b•€€€\0"B!|B\x007\0 B| \t7\0 B|Bø?7\0 B\t| 7\0 B|"\0B7\0 \t \x007 \v  \x007\0B\0!\f\v BùV\r )\0!\0\v \0 B†| \b7(  B|7ø8 B )("\bB|"  \bT7(\f\v  7\0 B  )("\b|B|"  \bT7( \0 X\r\v B€ B€T!  B†|B|!@@ )\0"BƒP\r\0@ B|"\bBV\r\0 \b§\0\0\0\0\0\v B8|  €€€\0\v B\b|! B|"PE\r\0\v\v B )(B|" P"7(  )0T\r\0\v\v ) "\v(\0AG\r\0 \v(è8E\r \v-\0€9E\r\0A\0!\n \vA\x006è8B\0!\bB\0B{7ˆ»  \vA6\0 \vB\b|!@@ \v)8"P"E\r\0A\0!\f\vB€!B\0!\b@@ !@ \bB€T\r\0 \b! !@ \bB€|"\0B€ƒB€Q\r\0 §AvAj­Bƒ! \b! !@ B€|! )€8! B|"B\0R\r\0\v\v \0B€T\r\0@ )€8)€8)€8)€8)€8)€8)€8)€8! B€x|"Bÿ\0V\r\0\v\v@  \bBÿ\0ƒ"B8~|"-\0\b\r\0 -\x000\r\0 )B€€€ R\r\v B|! \bB|"\b R\r\0\vA\0!\n !\bA\0!\f\vA\0!@ \b R\r\0 !\bA\0!\n\f\v !@ \bB€T\r\0 ! \b!@ )€8! B€|"Bÿ\0V\r\0\v\v@  B8~|"-\0\t\r\0 )(!B\0!B\0!B\0!@A!\n@  |"B€€€T\r\0B!\f\v  Bˆ|)\0"\0y! \0P\r\0\v  \0z"|B|! \0 ˆBˆ!\f\v )B\0R!A\0!\n\v \v :\0È9 \v 7À9 \v 7¸9 \v 7°9 \v 7¨9 \v \n6 9 \v 7˜9 \v \b79 \vA6ˆ9 \v)¨8! BÿÿÿÿÿÿÿÿƒB|•€€€\0"\0B| B†7\0 \0B\t| \x007\0 \0B|"\rB7\0 \r\0 B†!\t Bƒ!B\0!@@ B\bT\r\0 Bxƒ!B\0! \r!@ BÐ\0| B|7\0 BÈ\0| B|7\0 BÀ\0|"\b B|7\0 B8| B|7\0 B0| B|7\0 B(| B|7\0 B | B|7\0 B| 7\0 \b! B\b|" R\r\0\v P\r\v B† \r|B|!@  7\0 B\b|! B|! B|"B\0R\r\0\v\v \tB€€€|! \0B|!\0  78@ BQ\r\0 \0B\0 B| B8|¯€€€\0\v B€€€`ƒ!\tB\0!@@ \0 B†|)\0"\b \v) 8Q\r\0 !@ \bB€T"\n\r\0 \b! !@ \bB€|"\rB€ƒB€Q\r\0 \rBˆB|Bƒ! \b! !@ B€|! )€8! B|"B\0R\r\0\v\v \rB€T\r\0@ )€8)€8)€8)€8)€8)€8)€8)€8! B€x|"Bÿ\0V\r\0\v\v  \bBÿ\0ƒB8~"|"-\0\b\r\0 -\0\t\r\0 ) P\r\0 )ºB€€€ )}º£D333333ë?eE\r\0 !@ \n\r\0@@ \bB€|"\rB€ƒB€R\r\0 !\f\v \rBˆB|Bƒ! !@ \bB€|!\b )€8! B|"B\0R\r\0\v\v \rB€T\r\0@ )€8)€8)€8)€8)€8)€8)€8)€8! \bB€x|"\bBÿ\0V\r\0\v\v \t  |")"T\r A:\x001 \vA:\0°8 \t }!\t\v B|" R\r\0\v\v@ ) "(\0AG\r\0 (ˆ9E\r@ )9"\b )˜9Z\r\0 B9|!\f B\b|!\r@ \r!@ \bB€T\r\0 \b! \r!@ \bB€|"B€ƒB€Q\r\0 BˆB|Bƒ! \b! \r!@ B€|! )€8! B|"B\0R\r\0\v\v B€T\r\0@ )€8)€8)€8)€8)€8)€8)€8)€8! B€x|"Bÿ\0V\r\0\v\v@@  \bBÿ\0ƒB8~|-\x001AG\r\0 )(!@ )0!@@@@@ ( 9\r\0 -\0È9AG\r  Z\r A\0:\0È9 )9B†!\f\v )°9"BQ\r  Z\r B† \f)\0B†|!B!@ BÿÿÿV\r\0@ )¸9"B\0R\r\0 )¨9!\b )À9!@  |"B€€€Z\r  \b Bˆ|)\0"7¸9  y"7À9 P\r\0\v\v   z"ˆBˆ7¸9  |B|!\v Bx|!  7°9\v@@@@@@@@@@@@@ )\0B|"B,V\r\0B!\v §-\v\0\0\0\0\0\n\0\n\0\n\0\n\0\0\n\0\t\0\0\0\0\0\0\0\0\0\0\b\0\n\v\v#€€€\0B헀€€€€€€\0|B›€€€\0\0\v )B|!\v\f\n\v )B|!\v\f\t\v )B|BˆB|!\v\f\b\v#€€€\0BΗ€€€€€€€\0|B›€€€\0\0\v 4BÿÿÿÿÿÿÿÿƒB|!\v\f\vB!\v\f\vB!\v\f\v )\bB|!\v\f\vB!\v\v \vB†!\f\v )B\t|)\0B|)\0BˆB|!\v\v \vB†"B€€ T\r œ€€€\0!\f\v  T\r\f\vB¨ !@B\0)À¹ "\0B€T\r\0B¨¹ ! \0!@ \0B€|"\tB€ƒB€Q\r\0 \tBˆB|Bƒ!\bB¨¹ ! \0!@ B€|! )\0"B€8|! \bB|"\bB\0R\r\0\v\v \tB€T\r\0@ )\0)€8)€8)€8)€8)€8)€8)€8"B€8|! B€x|"Bÿ\0V\r\0\v\v@  \0Bÿ\0ƒB8~|")\0B†" )| ) "\b|"  }B€€€ |X\r\0 €€€\0!\f\v@@  |"B€€|V\r\0@ Bÿÿ|Bˆ"?\0"\0X\r\0  \0}@\0BQ\r ) !\b\v  \b |7 B|!\f\v#€€€\0B€€€€€€€€€\0|B›€€€\0\0\v#€€€\0B€€€€€€€€€\0|B›€€€\0\0\v  )Ø8 |7Ø8 B|!@ P\r\0   ü\n\0\0\v B\t| 7\0  7\b Bˆ!\b \r!@ B€€€€ T\r\0 \b! \r!@ )€8! B€|"Bÿ\0V\r\0\v\v@@  \bBÿ\0ƒB8~|"-\0\t\r\0 )( BˆBÿÿ?ƒ|"-\0\0"\nA §AvAqt"q\r  \n r:\0\0 °€€€\0!  ) B†|7\f\v \r ±€€€\0\v B \vºDš™™™™™@£ü )("|B|"  T"7(\f\0\v\v \f \r²€€€\0 )9"\b )˜9T\r\v\v ) "(\0AG\r (ˆ9E\r\v )9 )˜9T\r\0 A6\0A\0!\n A\x006ˆ9 B\b|!\b@@ )8"\0P"E\r\0B\0!A\0!\f\vB€!B\0!@@ \b!@ B€T\r\0 ! \b!@ B€|"\vB€ƒB€Q\r\0 §AvAj­Bƒ! ! \b!@ B€|! )€8! B|"B\0R\r\0\v\v \vB€T\r\0@ )€8)€8)€8)€8)€8)€8)€8)€8! B€x|"Bÿ\0V\r\0\v\v@  Bÿ\0ƒ"B8~|"-\0\b\r\0 -\x000\r\0 )B€€€ R\r\v B|! B|" \0R\r\0\vA\0!\n \0!A\0!\f\vA\0!@  \0R\r\0 \0!A\0!\n\f\v \b!@ B€T\r\0 \b! !@ )€8! B€|"Bÿ\0V\r\0\v\v@  B8~|"-\0\t\r\0 )(!B\0!B\0!B\0!@A!\n@  |"B€€€T\r\0B!\f\v  Bˆ|)\0"\vy! \vP\r\0\v  \vz"|B|! \v ˆBˆ!\f\v )B\0R!A\0!\n\v  :\0È9  7À9  7¸9  7°9  7¨9  \n6 9  \x007˜9  79 A6ˆ9@ \r\0B\0!@ \b!@ B€T\r\0 ! \b!@ B€|"B€ƒB€Q\r\0 BˆB|Bƒ! ! \b!@ B€|! )€8! B|"B\0R\r\0\v\v B€T\r\0@ )€8)€8)€8)€8)€8)€8)€8)€8! B€x|"Bÿ\0V\r\0\v\vB!\v@  Bÿ\0ƒB8~|"-\0\tAG\r\0 )\0B† )|"°€€€\0B†Bÿÿÿ|Bˆ!\v )PE\r\0 B\0 °€€€\0B†Bÿÿÿ|Bˆ"   Bˆ"|"V )¨8|7¨8 P\r\0@ \b!@ B€T\r\0 \b! !@ )€8! B€|"Bÿ\0V\r\0\v\v  Bÿ\0ƒB8~|"A\0:\x002 A\0;0 A;\b ) ! B\x007   )¸8|7¸8  )Ð8 }7Ð8 B|"!  T\r\0\v )8!\0\v \v |" \0T\r\0\v\v  -\0 -\x009rAsAq:\0:B!@@@ Bÿ\0ƒ"B\0R\r\0 \b)€8"\bP\r\vA\0!\n@ \b B8~|"-\0\b\r\0 -\x001As!\n\v  \nAq:\x002 B|"B€€€€€\bR\r\0\v\v (ˆ9AG\r@#€€€\0Bȇ€€€€€€\0|)\0"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v@ B\t|)\0" Q\r\0@@ B|"BV\r\0 §\0\0\0\v !\v#€€€\0Bȇ€€€€€€\0| 7\0\v B )(B|" P7(\v@#€€€\0Bˆ‰€€€€€€\0|)\0"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v@ B\t|)\0" Q\r\0@@ B|"BV\r\0 §\0\0\0\v !\v#€€€\0Bˆ‰€€€€€€\0| 7\0\v B )(B|" P7(\v@B\0)ˆ "BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v@ B\t|)\0" Q\r\0@@ B|"BV\r\0 §\0\0\0\v !\vB\0 7ˆ \v B )(B|" P7(\v@B\0) "BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v@ B\t|)\0" Q\r\0@@ B|"BV\r\0 §\0\0\0\v !\vB\0 7 \v B )(B|" P7(\v@B\0)˜ "BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v@ B\t|)\0" Q\r\0@@ B|"BV\r\0 §\0\0\0\v !\vB\0 7˜ \v B )(B|" P7(\v@#€€€\0B ‰€€€€€€\0|)\0"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v@ B\t|)\0" Q\r\0@@ B|"BV\r\0 §\0\0\0\v !\v#€€€\0B ‰€€€€€€\0| 7\0\v B )(B|" P7(\v@B\0)» "BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v@ B\t|)\0" Q\r\0@@ B|"BV\r\0 §\0\0\0\v !\vB\0 7» \v B )(B|" P7(\vB\0)˜» "BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v@ B\t|)\0" Q\r\0@@ B|"BV\r\0 §\0\0\0\v !\vB\0 7˜» \v B )(B|" P7(\v ) "\v(\0AG\r \v(ˆ9E\r\0 \v)9"\b \v)˜9Z\r \vB9|!\t \vB\b|!\f \v-\0°8Aq!@ \f!@ \bB€T\r\0 \b! \f!@ \bB€|"B€ƒB€Q\r\0 BˆB|Bƒ! \b! \f!@ B€|! )€8! B|"B\0R\r\0\v\v B€T\r\0@ )€8)€8)€8)€8)€8)€8)€8)€8! B€x|"Bÿ\0V\r\0\v\v@@  \bBÿ\0ƒB8~|-\x002E\r\0 \v( 9E!\n@ )0! )(!@@@@ \nAqE\r\0 \v-\0È9AG\r  Z\r \t)\0B†!\f\v \v)°9"BQ\r  Z\r B† \t)\0B†|Bx|!\v@ E\r\0 B|!\0 B|! B |!\r )\0!@@@@@@@@@@@@@@ B|"B,V\r\0@@ §-\0\v\v\v\v\n\t\b\f\0\v@ )\0"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B|!B! P\r\0 )\b!\v  7\0 B )(B|" P"7( \0! )\0B\t|)\0B|)\0Bˆ"P\r\r@@ )\0"BƒP\r\0@ B|"\bBV\r\0 \b§\0\0\0\0\0\vB!\b@ B|"P\r\0 )\b!\b\v  \b7\0 B )(B|" P"7(\v B\b|! B|"PE\r\0\f\v\v \r! \0)\0"P\r\f@@ )\0"BƒP\r\0@ B|"\bBV\r\0 \b§\0\0\0\0\0\vB!\b@ B|"P\r\0 )\b!\b\v  \b7\0 B )(B|" P"7(\v B\b|! B|"PE\r\0\f\r\v\v B-V\r\b\v#€€€\0B»‹€€€€€€€\0|B*›€€€\0\0\v@ \0)\0"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\vB!@ B|"P\r\0 )\b!\v \0 7\0 B )(B|" P"7(\v \r)\0"BƒP\r\t B|"BV\r \r! §\t\b\b\b\b\b\t\t\v \r)\0"BƒP\r\b B|"BX\r\v \r!\f\v \r! §\v \0)\0"BƒP\r@ B|"BX\r\0 \0!\f\v \0! §\v )\0"BƒP\r@ B|"BX\r\0 !\f\v ! §\v )\0"BƒP\r@ B|"BX\r\0 !\f\v ! §\v B=ˆBƒB|  B-V"\n!@@ )\0"\b Bÿÿÿÿÿÿÿÿ?ƒB\0 \n"}"BZ\r\0 !\f\vB€! B=†B€€€€€€€€ |B€€€€€€€€@ƒ B€|"\b„!\v  7\0 B  )("|B|"  T"7(  \bZ\r B€ B€T! \0 B†|!@@ )\0"BƒP\r\0@ B|"\bBV\r\0 \b§\0\0\0\0\0\vB!\b@ B|"P\r\0 )\b!\b\v  \b7\0 B )(B|" P"7(\v B\b|! B|"PE\r\0\f\v\v )\0"BƒP\r@ B|"BX\r\0 !\f\v ! §\0\0\0\0\0\vB{!@ B{Q\r\0B! B|"P\r\0 )\b!\v  7\0 B )(B|" P"7(\v )0! )\0"B.T\r  T\r\0\v\v@  Z\r\0  B|"7(  T\r\v )\0B.T\r\v  T\r\f\v \v( 9"E!\n@ \r\0 \vA\0:\0È9\f\vB!@ \v)°9"BÿÿÿV\r\0@ \v)¸9"B\0R\r\0 \v)¨9!\b \v)À9!@  |"B€€€Z\r \v \b Bˆ|)\0"7¸9 \v y"7À9 P\r\0\v\v \v  z"ˆBˆ7¸9  |B|!\v \v 7°9\f\0\v\v \t \f²€€€\0 \v)9"\b \v)˜9T\r\v\v ) "\v(\0AG\r \v(ˆ9\r\v\0\v \v)9 \v)˜9T\r\0 \vA\x006ˆ9 \vA\0:\0: \vB\x0070 \v)! \vB\x007@@@ \v-\x009AG\r\0 \v \v)(" } \v)¸8|7¸8\f\v \v-\x008AG\r \v)(!\v \vB\x007( \vA\0;8 \vA; \v \v)Ð8 }7Ð8 \v \v)¨8B|7¨8\v \vB\b|!B!@@@ Bÿ\0ƒ"B\0R\r\0 )€8"P\r\v  B8~|"A\0:\x002 B\x007( )!\b B\x007@@@ -\x001AG\r\0 \v ) \b} \v)¸8|7¸8 -\x001\r\v -\x000AG\r\v \v \v)Ð8 ) }7Ð8 B\x007 A;\b A\0;0 \v \v)¨8B|7¨8\v B|"B€€€€€\bR\r\0\v\v \vB\x007Ø8 \vA\0:\0°8 \vA\0:\0È8 \vB\x007À8 \vA6\0\v#€€€\0B¨‰€€€€€€\0|A\0:\0\0@B\0(  AG\r\0B\0)ð¹ !B¨ !@B\0)À¹ "B€T\r\0@@ B€|"B€ƒB€R\r\0B¨¹ ! !\f\v BˆB|Bƒ!\bB¨¹ ! !@ B€|! )\0"B€8|! \bB|"\bB\0R\r\0\v\v B€T\r\0@ )\0)€8)€8)€8)€8)€8)€8)€8"B€8|! B€x|"Bÿ\0V\r\0\v\vB\0   Bÿ\0ƒB8~|) |B€€À}|"B\0)øº "  V7øº \v Bà\0|$€€€€\0\vù\n~~ B|! )\0!@ \0  |B†Bxƒ|)\0"Bÿ\0ƒB8~!@@ Bÿ\0V\r\0  |!\b !\t !\n@ \b) \b)}!\v \n!@ !\f@ \0 "\nB†|"\r)\0"B€T\r\0 ! !\f@ B€|"B€ƒB€Q\r\0 BˆB|Bƒ! ! !\f@ B€|! \f)€8!\f B|"B\0R\r\0\v\v B€T\r\0@ \f)€8)€8)€8)€8)€8)€8)€8)€8!\f B€x|"Bÿ\0V\r\0\v\v \nB|! \v \f Bÿ\0ƒB8~|"\f) \f)}T\r\0\v \t!@ !\f@ \0 "\tB†|")\0"B€T\r\0 ! !\f@ B€|"B€ƒB€Q\r\0 BˆB|Bƒ! ! !\f@ B€|! \f)€8!\f B|"B\0R\r\0\v\v B€T\r\0@ \f)€8)€8)€8)€8)€8)€8)€8)€8!\f B€x|"Bÿ\0V\r\0\v\v \tB|! \v \f Bÿ\0ƒB8~|"\f) \f)}V\r\0\v@ \n \tV\r\0 \r 7\0  7\0 !\t !\n\v \n \tX\r\0\f\v\v B€|"\fBˆB|Bƒ! \fB€ƒB€Q! \fB€T! !\t !\n@ \n!\v@ !\f@ \0 \v"\nB†|"\b)\0"B€T\r\0 ! !\f@ B€|"B€ƒB€Q\r\0 BˆB|Bƒ! ! !\f@ B€|! \f)€8!\f B|"B\0R\r\0\v\v B€T\r\0@ \f)€8)€8)€8)€8)€8)€8)€8)€8!\f B€x|"Bÿ\0V\r\0\v\v \f Bÿ\0ƒB8~|! ! !\f@ \r\0 ! ! !\f@ B€|! \f)€8!\f B|"B\0R\r\0\v\v )! ) !@ \r\0@ \f)€8)€8)€8)€8)€8)€8)€8)€8!\f B€x|"Bÿ\0V\r\0\v\v \nB|!\v \f |"\f) \f)}  }T\r\0\v \t!@ !\f@ \0 "\tB†|")\0"B€T\r\0 ! !\f@ B€|"\rB€ƒB€Q\r\0 \rBˆB|Bƒ! ! !\f@ B€|! \f)€8!\f B|"B\0R\r\0\v\v \rB€T\r\0@ \f)€8)€8)€8)€8)€8)€8)€8)€8!\f B€x|"Bÿ\0V\r\0\v\v \f Bÿ\0ƒB8~|"\f)!\r \f) ! ! !\f@ \r\0 ! ! !\f@ B€|! \f)€8!\f B|"B\0R\r\0\v\v@ \r\0@ \f)€8)€8)€8)€8)€8)€8)€8)€8!\f B€x|"Bÿ\0V\r\0\v\v \tB|! \f |"\f) \f)}  \r}V\r\0\v@ \n \tV\r\0 \b 7\0  7\0 !\t \v!\n\v \n \tX\r\0\v\v@ \t X\r\0 \0  \t ¯€€€\0\v \n! \n T\r\0\v\v†~@@@@@@@@@@@@ \0)\0B|"B,V\r\0B! §-\0\0\0\0\0\v\0\v\0\v\0\v\0\0\v\0\0\0\0\0\0\0\0\b\0\b\0\t\0\n\0\v\v#€€€\0B헀€€€€€€\0|B›€€€\0\0\v \0)B\t|)\0B|)\0BˆB|\v \0)B|\v \0)B|\vB\v \0)B|BˆB|\v#€€€\0BΗ€€€€€€€\0|B›€€€\0\0\v \x004BÿÿÿÿÿÿÿÿƒB|\vB\vB\v \0)\bB|!\v \vÓ\b~ Bˆ! \0!@ B€€€€ T\r\0 ! \0!@ )€8! B€|"Bÿ\0V\r\0\v\v@  Bÿ\0ƒB8~|)"B\0R\r\0@  °€€€\0B†Bÿÿÿ|"Bˆ" |"B|"\bZ\r\0@@ B€€€ ƒB\0Q\r\0 !\t\f\v \0!@ B€€€€ T\r\0 ! \0!@ )€8! B€|"Bÿ\0V\r\0\v\v B|!\t  Bÿ\0ƒB8~|B€€€ 7\v BQ\r\0@ \t! \0!@ \tB€T\r\0@ )€8! B€|"Bÿ\0V\r\0\v\v \tB|!  \tBÿ\0ƒB8~|B€€€ 7 \0!@ \tBÿ\0T\r\0 ! \0!@ )€8! B€|"Bÿ\0V\r\0\v\v  Bÿ\0ƒB8~|B€€€ 7 \tB|"\t \bR\r\0\v\v °€€€\0B†!\t@ \bB€T\r\0@@ Bÿ~|"B€ƒB€R\r\0 !\f\vB\0 BˆB|Bƒ}! !@ B€|! \0)€8!\0 B|"B\0R\r\0\v\v B€T\r\0@ B€ƒ! \0)€8)€8)€8)€8)€8)€8)€8)€8!\0 B€x|! B€R\r\0\v\v \0 \bBÿ\0ƒB8~| \tBøÿÿƒ7\v P\vÓ~ !@ \0)\0"B€T\r\0 ! !@ B€|"B€ƒB€Q\r\0 BˆB|Bƒ! ! !@ B€|! )€8! B|"B\0R\r\0\v\v B€T\r\0@ )€8)€8)€8)€8)€8)€8)€8)€8! B€x|"Bÿ\0V\r\0\v\vB!@  Bÿ\0ƒB8~|"-\0\tAG\r\0 )\0B† )|°€€€\0B†Bÿÿÿ|Bˆ!\v \0  |"7\0@@  \0)\b"Q\r\0@ !@ B€T\r\0 ! !@ )€8! B€|"Bÿ\0V\r\0\v\v@  Bÿ\0ƒB8~|"-\0\b\r\0 -\x000\r\0 )B€€€ R\r\v \0 B|"7\0  R\r\0\f\v\v  Q\r\0@ B€T\r\0@@ B€|"B€ƒB€R\r\0 !\f\v BˆB|Bƒ! !@ B€|! )€8! B|"B\0R\r\0\v\v B€T\r\0@ )€8)€8)€8)€8)€8)€8)€8)€8! B€x|"Bÿ\0V\r\0\v\v@  Bÿ\0ƒB8~|"-\0\t\r\0 )(!B\0!B\0!B\0!@@@  |"B€€€T\r\0B!\f\v  Bˆ|)\0"y! P\r\0\v  z"|B|!  ˆBˆ!\v \0A\0:\x008 \0 70 \0 7( \0 7 \0 7 \0A6\v \0A\x006 \0 )B\0R:\x008\v \0A\0:\x008 \0A\x006\v±~~~#€€€€\0B }"$€€€€\0 B\b| B|" \0)H"|"B\b€€€€\0@@@ )\bB!R\r\0 B\b| B€€€€\0 )!\f\v B\b|  |"B|B\b€€€€\0@@@@ )\b"B|"BZ\r\0 B\t|!@@@@@@@@@ §\0\0\0\0\b\v\n\0\v B\b| B\b€€€€\0 )\b"B€€€€€€€ Z\r\r B|•€€€\0"B| 7\0 B\t| 7\0 B|" B†B„7\0 P\r\v B|! B|!@ B\b| B\b€€€€\0  )\b7\0 B\b|! B\b|! B|"PE\r\0\f\f\v\v B\b| B\b€€€€\0 )\b!B•€€€\0"B| 7\0 B\t| 7\0 B|B7\0\f\n\v B\b| B€€€€\0 )! )\b"B|•€€€\0"B| 7\0 B\t| 7\0 B|"B7\0 P\r\t B|! B|!@ B\b| B\b€€€€\0  )\b7\0 B\b|! B\b|! B|"PE\r\0\f\n\v\v B\b| B\b€€€€\0 )\b"B|BˆB|•€€€\0"B| 7\0 B\t| 7\0 B| B†B\v|7\0 B| B| €€€€\0\f\b\v B\b| B\b€€€€\0 )\b!B•€€€\0"B| 7\0 B\t| 7\0 B| B†Bu|7\0\f\v B\b| B€€€€\0 )\b! )! )!B•€€€\0"B!| 7\0 B| 7\0 B| 7\0 B\t| 7\0 B|B\'7\0\f\v B\b| B€€€€\0 )\b! )!B•€€€\0"B| 7\0 B| 7\0 B\t| 7\0 B|B7\0\f\v B\b| B€€€€\0 )\b! )! )!B•€€€\0"B!| 7\0 B| 7\0 B| 7\0 B\t| 7\0 B|B%7\0\f\v B\b| B€€€€\0@ )"\bB;|"B»€€€ðV\r\0 -\0\b!\t B<€"\nB|•€€€\0"B| \n§"\v6\0 B\t| 7\0 B|"B#7\0 –€€€\0@ B\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\v\0\vÓ2~\b~#€€€€\0B }"\b$€€€€\0@@@@@@@@@ A\0H\r\0 ­!\t@@ A\0H\r\0 \0)\0\0 \t \0)\0 ­"\n|  \0)\0~ \n \t |"\vBˆBøÿÿÿÿÿÿÿƒ|"\n \0)\0\bV\r \n)\0"\fB \vB†B>ƒ"\v†"\rƒB\0R\r \n \f \r„7\0\v  \tB†|)\0!\t \b 7\b \t Z\rA\0!B\0!\n\f\v \f \vˆBƒP!\f\b\v AoI AhGq\r A\0N\r  G\rA! AnK AhFrE\r\f\v@ \t-\0\0"Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\v ­ ­† \n„!\n@ ÀAJ\r\0 Aj! \tB|"\t Q\r\f\v\v \b \tB|7\0 \nB\0B\0B Aj"­† AÀ\0I A?K„"\tB€€€€\b|B€€€€Z\r \t§!\f\v#€€€\0B”Œ€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v \b 7\b \b 7\0 !\v@@@@@@@@ AJ\r\0 \b 7 \b 7 !\f\v  ­B†|)\0!\t \b 7 \t Z\rA\0!B\0!\n@ \t-\0\0"Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\t\v ­ ­† \n„!\n@ ÀAJ\r\0 Aj! \tB|"\t Q\r\f\v\v \b \tB|7 \nB\0B\0B Aj"­† AÀ\0I A?K„"\tB€€€€\b|B€€€€Z\r \t§!\v@ AF\r\0 AF\r\0A! ApF\r\t@@@@ Aj\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v Aj\f\v\v Aj\v\n\n\n\n\n\n\n\n\n\n\n\n\n\v\n\v AmG\r\t \0      \b½€€€\0 \bB|½€€€\0¿€€€\0\r\n\f\t\v AjG\r\b \b¼€€€\0! \bB|¼€€€\0! \b)!\f \b)\0!\r E\r As!A\0!@@@@@@ \r \b)\b"\vZ\r\0 Aj!A\0!B\0!\n \r!\t@ \t-\0\0"Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\v ­ ­† \n„!\n@ ÀAJ\r\0 Aj! \tB|"\t \vQ\r\f\v\v \nB\0B\0B Aj"­† AÀ\0I A?K„"\nB€€€€\b|B€€€€Z\r\r \n§!@ \r\0@ \nBU\r\0 \nBnV\r \nBhQ\r\v  \nB†|)\0!\nB\0!\vA\0!@ \n Z\r \n-\0\0"Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\v \nB|!\n ­ ­† \v„!\v Aj"! ÀAL\r\0\v \vB\0B\0B ­† AÀ\0I A?K„"\nB€€€€\b|B€€€€Z\r \nBnR\rA\0!\f\v \f \b)"\vZ\rA\0!B\0!\n@ \f-\0\0"Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\v ­ ­† \n„!\n@ ÀAJ\r\0 Aj! \fB|"\f \vQ\r\f\v\v \nB\0B\0B Aj"­† AÀ\0I A?K„"\nB€€€€\b|B€€€€Z\r\r \0      \n§ ¿€€€\0E\r \fB|!\f Aj!\f\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\vA\0! Aj\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v \tB|!\r  F\r\f\0\v\v#€€€\0B¹—€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v AiG\rA\0! \b¼€€€\0! \bB|¼€€€\0! \b)\0!\t \b)!A!@@@@@@  F\r\f E\r\v@  \b)"\fZ\r\0 Aj!A\0!B\0!@ -\0\0!@ A?G\r\0 AÿqAK\r\r\v ­Bÿ\0ƒ ­† „!@ ÀAJ\r\0 Aj! B|" \fQ\r\f\v\v B€€€€Z\r\v  |B|"\n \fV\r B|! \b \n7B\0!\vA\0!@ \n \fZ\r \n-\0\0! \b \nB|"7 Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\r\v ­ ­† \v„!\v !\n Aj"! ÀAL\r\0\v \vB\0B\0B ­† AÀ\0I A?K„"\nB€€€€\b|B€€€€Z\r\v \n§! \b)\b!\r@ \t \rZ\rA\0!B\0!\v@ \t-\0\0!@ A?G\r\0 AÿqAK\r\v ­Bÿ\0ƒ ­† \v„!\v@ ÀAJ\r\0 Aj! \tB|"\t \rQ\r\f\v\v \vB€€€€Z\r\f \t \v|B|"\n \rV\r \tB|! \b \n7\0B\0!\fA\0!@ \n \rZ\r\b \n-\0\0! \b \nB|"\t7\0 Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\v ­ ­† \f„!\f \t!\n Aj"! ÀAL\r\0\v \fB\0B\0B ­† AÀ\0I A?K„"\nB€€€€\b|B€€€€Z\r\f Aj!@    \v  \vT ‚€€\0" \v V \v Tk "AJ\r\0 \r\v\v \r\f \0      \n§ ¿€€€\0E\r\f\f\v\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v AkG\rA\0! \b¼€€€\0! \bB|¼€€€\0! \b)!\t \b)\0!A!@@@@  F\r\t E\r\b@  \b)\b"\fZ\r\0 Aj!A\0!B\0!@ -\0\0!@ A?G\r\0 AÿqAK\r\n\v ­Bÿ\0ƒ ­† „!@ ÀAJ\r\0 Aj! B|" \fQ\r\f\v\v \b B|"\n7\0 BÿÿÿÿV\r\bB\0!\vA\0!@ \n \fZ\r \n-\0\0! \b \nB|"7\0 Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\n\v ­ ­† \v„!\v !\n Aj"! ÀAL\r\0\v \vB\0B\0B ­† AÀ\0I A?K„"\nB€€€€\b|B€€€€Z\r\b \n§! \b)!\r@ \t \rZ\rA\0!B\0!\v@ \t-\0\0!@ A?G\r\0 AÿqAK\r\v\v ­Bÿ\0ƒ ­† \v„!\v@ ÀAJ\r\0 Aj! \tB|"\t \rQ\r\f\v\v \b \tB|"\n7 \vBÿÿÿÿV\r\tB\0!\fA\0!@ \n \rZ\r \n-\0\0! \b \nB|"\t7 Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\v\v ­ ­† \f„!\f \t!\n Aj"! ÀAL\r\0\v \fB\0B\0B ­† AÀ\0I A?K„"\nB€€€€\b|B€€€€Z\r\t Aj!@ \v Z\r\0 \r\v\v  \vR\r\t \0       \n§¿€€€\0E\r\t\f\v\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v AlG\r \b¼€€€\0! \bB|¼€€€\0"E\rA\0! \b)! \b)\0!\tA!A\0!A\0!@@@@@@@@@@  \b)"\fZ\r\0 Aj!A\0!B\0!@ -\0\0!@ A?G\r\0 AÿqAK\r\v ­Bÿ\0ƒ ­† „!@ ÀAJ\r\0 Aj! B|" \fQ\r\f\v\v \b B|"\n7 B€€€€Z\r\f §!B\0!\vA\0!@ \n \fZ\r \n-\0\0! \b \nB|"7 Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\v ­ ­† \v„!\v !\n Aj"! ÀAL\r\0\v \vB\0B\0B ­† AÀ\0I A?K„"B€€€€\b|B€€€€Z\r\f §!@ \r\0@ BU\r\0 BnV\r BhQ\r\v  B†|)\0!\nB\0!\vA\0!@ \n Z\r \n-\0\0"Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\v \nB|!\n ­ ­† \v„!\v Aj"! ÀAL\r\0\v \vB\0B\0B ­† AÀ\0I A?K„"\nB€€€€\b|B€€€€Z\r\r \nBnR\rA\0!\f\t\v AqE\r \b)\b!\r@ \t \rZ\rA\0!B\0!\v@ \t-\0\0!@ A?G\r\0 AÿqAK\r\v ­Bÿ\0ƒ ­† \v„!\v@ ÀAJ\r\0 Aj! \tB|"\t \rQ\r\f\v\v \b \tB|"\n7\0 \vBÿÿÿÿV\r\rB\0!\fA\0!@ \n \rZ\r \n-\0\0! \b \nB|"\t7\0 Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\v ­ ­† \f„!\f \t!\n Aj"! ÀAL\r\0\v \fB\0B\0B ­† AÀ\0I A?K„"\nB€€€€\b|B€€€€Z\r\r Aj! \v Z\r \r\0\f\v\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\vA\0! Aj\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v \n§! \v§!\v@  K\r\0 \0       ¿€€€\0E\rA!\f\v@@@ BU\r\0 BnV\r BhQ\r\b\v  B †B‡|)\0!\nB\0!\vA\0!@ \n Z\r \n-\0\0"Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\b\v \nB|!\n ­ ­† \v„!\v Aj"! ÀAL\r\0\v \vB\0B\0B ­† AÀ\0I A?K„"\nB€€€€\b|B€€€€Z\r \nBnR\rA\0!\f\vA\0! Aj\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\vA!  F\r\f\0\v\v \tB|!\r\v \b \f7 \b \r7\0@ E\r\0 \b)!\r@@@ \f \rZ\r\0 \r \f}!\vA\0!B\0!\n \f!\t@ \t-\0\0"Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\v ­ ­† \n„!\n@ ÀAJ\r\0 \tB|!\t Aj! \vB|"\vB\0Q\r\f\v\v \nB\0B\0B Aj"­† AÀ\0I A?K„B€€€€\b|B€€€€T\r\f\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v \tB|!\f Aj"\r\0\v \tB|!\f\v \b \f7 \b¼€€€\0! \bB|¼€€€\0! \b)\0!\f \b)!\r@ E\r\0A\0!@@@@@@ \r \b)"\vZ\r\0 Aj!A\0!B\0!\n \r!\t@ \t-\0\0"Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\t\v ­ ­† \n„!\n@ ÀAJ\r\0 Aj! \tB|"\t \vQ\r\f\v\v \nB\0B\0B Aj"­† AÀ\0I A?K„"\nB€€€€\b|B€€€€Z\r \n§!@ \r\0@ \nBU\r\0 \nBnV\r \nBhQ\r\n\v  \nB†|)\0!\nB\0!\vA\0!@ \n Z\r \n-\0\0"Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\n\v \nB|!\n ­ ­† \v„!\v Aj"! ÀAL\r\0\v \vB\0B\0B ­† AÀ\0I A?K„"\nB€€€€\b|B€€€€Z\r\b \nBnR\r\tA\0!\f\v \f \b)\b"\vZ\rA\0!B\0!\n@ \f-\0\0"Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\t\v ­ ­† \n„!\n@ ÀAJ\r\0 Aj! \fB|"\f \vQ\r\f\v\v \nB\0B\0B Aj"­† AÀ\0I A?K„"\nB€€€€\b|B€€€€Z\r \0      \n§ ¿€€€\0E\r\b \fB|!\f Aj!\f\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\vA\0! Aj\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v \tB|!\r  G\r\0\v \tB|!\r\v \b \f7\0 \b \r7@ E\r\0 \b)\b!\r@@@ \f \rZ\r\0 \r \f}!\vA\0!B\0!\n \f!\t@ \t-\0\0"Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\v ­ ­† \n„!\n@ ÀAJ\r\0 \tB|!\t Aj! \vB|"\vB\0Q\r\f\v\v \nB\0B\0B Aj"­† AÀ\0I A?K„B€€€€\b|B€€€€T\r\f\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v \tB|!\f Aj"\r\0\v \tB|!\f\v \b \f7\0A\0!A\0!A\0!A\0!@ \b¼€€€\0"E\r\0A\0! \b)\b!\n \b)\0!\tA\0!A\0!@@ \t \nZ\r@@@@ \t-\0\0Aj\0\vA!\f\vA!\f\vA!\v \tB|!\t Aj"\r\0\f\v\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\vA\0!A\0!@ \bB|¼€€€\0"E\r\0A\0! \b)!\n \b)!\tA\0!A\0!@@ \t \nZ\r@@@@ \t-\0\0Aj\0\vA!\f\vA!\f\vA!\v \tB|!\t Aj"\r\0\f\v\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\vA!  sAq\r  sAq\r  sAqE\r\f\v\0\vA\0!  rAL\r\0@ \0)\0\0 ¬"\t \0)\0 ¬"\n|  \0)\0~ \n \t |"\nBˆBøÿÿÿÿÿÿÿƒ|"\t \0)\0\bV\r\0 \t \t)\0B \nB†B>ƒ†„7\0\f\v#€€€\0B”Œ€€€€€€€\0|B·€€€\0\0\v \bB |$€€€€\0 \vÑ~~ \0)\0\0! \0)\0\b!B\0!A\0!@@@@  Z\r -\0\0! \0 B|"7\0\0@ A?G\r\0 AÿqAK\r\v ­Bÿ\0ƒ ­† „! ! Aj! ÀAL\r\0\v B€€€€Z\r  |" V\r \0 7\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\v\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v£~~#€€€€\0B }"$€€€€\0 \0)\0\0! \0)\0\b!B\0!A\0!@@@@@  Z\r -\0\0! \0 B|"7\0\0@ A?G\r\0 AÿqAK\r\v ­Bÿ\0ƒ ­† „! ! Aj! ÀAL\r\0\v B€€€€Z\r  |" V\r \0 7\0\0 B\b|  ‰‚€€\0 )\bPE\r B |$€€€€\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\v\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0Büš€€€€€€€\0|B"›€€€\0\0\vñ~@@@ \0B\t|)\0B|")\0B%R\r\0@@@ )"B\t|)\0"B|)\0"\b  |T\r\0 B|! !\0\f\v  \bT\r  \b}! ) "\0B\t|)\0B|!\v )\0B%Q\r\0\v\v@ B\t|)\0B|")\0B%R\r\0@@@ )"B\t|)\0"B|)\0"\b  |T\r\0 B|! !\f\v  \bT\r  \b}! ) "B\t|)\0B|!\v )\0B%Q\r\0\v\v B|!\b@ \0B\t|)\0B|")\0B%R\r\0 )"\b    \bB\t|)\0B|)\0 }"\b€€€\0"\tAÿq\r \b |! ) !\0B\0!  \b}!\f\v@@ \b)\bB|"\b)\0B%Q\r\0Aÿ!\t  |B| \b |B|  ‚€€\0"\nA\0N\r\f\v \0  \b)"  B\t|)\0B|)\0 }"€€€\0"\tAÿq\r  |! \b) !B\0!  }!\f\v\v \nA\0G\v \t\v½@@ \0(\b\r\0 \0¨‚€€\0! \0A \0B\0ł€€\0\r\0@ \r\0@ \0(\0E\r  A€r:\0\0 B|! \0¨‚€€\0! \0A \0B\0ł€€\0E\r\0\f\v\v@@ \0(\0\r\0 AÀ\0qE\r\v  A€r:\0\0 B|! \0¨‚€€\0! \0A \0B\0ł€€\0E\r\0\v\v‰€€€\0\0\v  :\0\0\vM~@ \0)\b" \0)"T\r\0@   }"  T"P\r\0 \0)\0 |  ü\n\0\0\v \0  |7A\0\v\0\v¢~~~#€€€€\0B}"A\x006\f@@ A€I\r\0 A?qA€r! Av!@ A€O\r\0  :\0\r  AÀr:\0\fB!\f\v A\fv! A?qA€r!@ AÿÿK\r\0  :\0  :\0\r  Aàr:\0\fB!\f\v  :\0  :\0  A?qA€r:\0\r  AvApr:\0\fB!\f\v  :\0\fB!\v@ \0)\b" \0)"\bT\r\0@   \b}"  T"P\r\0 \0)\0 \b| B\f| ü\n\0\0\v \0  \b|7A\0\v\0\v|~@@ BƒP\r\0 \0)\b" \0)"T\r@ Bˆ"  }"  T"P\r\0 \0)\0 |  ü\n\0\0\v \0  |7A\0\v \0#€€€\0BЇ€€€€€€\0|  ˆ‚€€\0\v\0\v\n\0 \0󁀀\0\vB~@ B€€€€€€€ T\r\0\0\v B|•€€€\0"B| 7\0 B\t| 7\0 B| \x007\0 \v5~ B|BˆB|•€€€\0"B| 7\0 B\t| 7\0 B| \x007\0 \v„~B•€€€\0"B| 7\0 B| \x007\0 B\t| 7\0 B|B\'7\0@ BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B|!B! P\r\0 )\b!\v B!| 7\0 –€€€\0\vp~B•€€€\0"B\t| 7\0 B|B-7\0@ \0BƒP\r\0@ \0B|"BV\r\0 §\0\0\0\0\0\v \0B|!B!\0 P\r\0 )\b!\0\v B| \x007\0 –€€€\0\v\n\0 \0•€€€\0\v\n\0 \0ô€€\0\v1~#€€€€\0B}"$€€€€\0 B| \0 A\0ž€€€\0 B|$€€€€\0\v\n\0 \0õ€€\0\v\f\0 \0 ú€€\0\vª~#€€€€\0B }"$€€€€\0 \0B\t|)\0"\0B!| \0B)|7\0 \0B|!@@ \0B|(\0\r\0 Á‚€€\0!\f\v B\x007 B\x007 B\x007\b@ B\b| ±‚€€\0\r\0 B\b|Ղ€€\0\r\0 B\b|Á‚€€\0!\f\v‰€€€\0\0\v B |$€€€€\0 ¬B|\vê~#€€€€\0B0}"$€€€€\0 B\x007( B\x007 B\x007@@ B|¡‚€€\0\r\0  )(7  ) 7\b  )7\0 \0B\t|)\0"\0B!| \0B)|7\0 \0B| ³‚€€\0\r\0 )"P\r B`|)\0B\t|)\0"\0B|(\0 (G\r )\b! (\0! \0B!| 7\0 \0B| 7\0 \0B| 6\0 B0|$€€€€\0 \0\v‰€€€\0\v\0\v„~#€€€€\0B0}"$€€€€\0 B\x007( B\x007 B\x007@@ B|¡‚€€\0\r\0  )(7  ) 7\b  )7\0 \0B\t|)\0"\0B!| \0B)|7\0 B\t|)\0"B!| B)|7\0 \0B| B| £‚€€\0\r\0 )"P\r B`|)\0B\t|)\0"\0B|(\0 (G\r )\b! (\0! \0B!| 7\0 \0B| 7\0 \0B| 6\0 B0|$€€€€\0 \0\v‰€€€\0\v\0\v#\0 \0B\t|)\0"\0B!| \0B)|7\0 \0B|Á‚€€\0¬\v†~#€€€€\0B0}"$€€€€\0 B\x007( B\x007 B\x007@@ B|¡‚€€\0\r\0  )(7  ) 7\b  )7\0 \0B\t|)\0"\0B!| \0B)|7\0 B\t|)\0"B!| B)|7\0 \0B| B| B\0°‚€€\0\r\0 )"P\r B`|)\0B\t|)\0"\0B|(\0 (G\r )\b! (\0! \0B!| 7\0 \0B| 7\0 \0B| 6\0 B0|$€€€€\0 \0\v‰€€€\0\v\0\v=\0 \0B\t|)\0"\0B!| \0B)|7\0 B\t|)\0"B!| B)|7\0 \0B| B|¦‚€€\0E\vB\0 \0B\t|)\0"\0B!| \0B)|7\0 B\t|)\0"B!| B)|7\0 \0B| B|¦‚€€\0AsAv\v?\0 \0B\t|)\0"\0B!| \0B)|7\0 B\t|)\0"B!| B)|7\0 \0B| B|¦‚€€\0A\0J\v"\0 \0B\t|)\0"\0B!| \0B)|7\0 \0B|(\0A\0G\v?\0 \0B\t|)\0"\0B!| \0B)|7\0 B\t|)\0"B!| B)|7\0 \0B| B|¦‚€€\0AH\vž~~~#€€€€\0BÐ\0}"$€€€€\0 B\x007H B\x007@ B\x0078@@@ B8|¡‚€€\0\r\0  )H7  )@7  )87\b B\x007H B\x007@ B\x0078 B8|¡‚€€\0\r\0  )H70  )@7(  )87 A\0!@ \0)\0\0" \0)\0\bZ\r -\0\0! \0 B|7\0\0 B | Aÿ\0q§‚€€\0 B |  B |‚€€\0\r B\b| B | B\b|£‚€€\0\r Aj! ÀAL\r\0\v )"P\r B`|)\0B\t|)\0"\0B|(\0 (\fG\r )! (\b! \0B!| 7\0 \0B| 7\0 \0B| 6\0 BÐ\0|$€€€€\0 \0\v‰€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\v\0\v‹\n~#€€€€\0B0}"$€€€€\0@@@ )\0\0 Bˆ"|B|" )\0\bV\r\0  7\0\0Bÿ\0! \0Bÿ\0ƒ!@ B\bT\r\0 Bx|"BˆB|"Bƒ!@ BT\r\0 Büÿÿÿÿÿÿÿ?ƒ!Bÿ\0!@ B†! \0Bˆ!\b B†!\t \0Bˆ!\n B†!\v \0Bˆ!\f \0Bˆ"\0 B†"ƒ \f \vƒ \b ƒ \n \tƒ „„„„! B||"B\0R\r\0\v P\r\v@ \0Bˆ"\0 B†"ƒ „! B|"B\0R\r\0\v\v@@ B\tR\r\0 B€€€€€€€€À\0|BU\r\0 B\x007( B\x007 B\x007 B|¡‚€€\0\r  )(7  ) 7\b  )7\0  ª‚€€\0 )"P\r B`|)\0B\t|)\0"\0B|(\0 (G\r )\b! (\0!\r \0B!| 7\0 \0B| 7\0 \0B| \r6\0\f\v Œ€€€\0!\0\v B0|$€€€€\0 \0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v‰€€€\0\v\0\vv~#€€€€\0B }"$€€€€\0 B\x007 B\x007 \0B\t|)\0"\0B!| \0B)|7\0 B\x007\b@ B\b| \0B|±‚€€\0\r\0 B\b| A\0À€€\0 B |$€€€€\0\v‰€€€\0\0\vO~ \0B\t|")\0"\0B!| \0B)|7\0@ \0B|(\0\r\0B\v )\0"\0B!| \0B)|7\0 \0B|Á‚€€\0¬B|B€\ví~#€€€€\0B0}"$€€€€\0 B\x007( B\x007 B\x007@@ B|¡‚€€\0\r\0  )(7  ) 7\b  )7\0 \0B\t|)\0"\0B!| \0B)|7\0 \0B| § ‚€€\0\r\0 )"P\r B`|)\0B\t|)\0"\0B|(\0 (G\r )\b! (\0! \0B!| 7\0 \0B| 7\0 \0B| 6\0 B0|$€€€€\0 \0\v‰€€€\0\v\0\v?\0 \0B\t|)\0"\0B!| \0B)|7\0 B\t|)\0"B!| B)|7\0 \0B| B|¦‚€€\0Av\v„~#€€€€\0B0}"$€€€€\0 B\x007( B\x007 B\x007@@ B|¡‚€€\0\r\0  )(7  ) 7\b  )7\0 \0B\t|)\0"\0B!| \0B)|7\0 B\t|)\0"B!| B)|7\0 \0B| B| ¥‚€€\0\r\0 )"P\r B`|)\0B\t|)\0"\0B|(\0 (G\r )\b! (\0! \0B!| 7\0 \0B| 7\0 \0B| 6\0 B0|$€€€€\0 \0\v‰€€€\0\v\0\vê~#€€€€\0B0}"$€€€€\0 B\x007( B\x007 B\x007@@ B|¡‚€€\0\r\0  )(7  ) 7\b  )7\0 \0B\t|)\0"\0B!| \0B)|7\0 \0B| ²‚€€\0\r\0 )"P\r B`|)\0B\t|)\0"\0B|(\0 (G\r )\b! (\0! \0B!| 7\0 \0B| 7\0 \0B| 6\0 B0|$€€€€\0 \0\v‰€€€\0\v\0\võ~#€€€€\0B0}"$€€€€\0@@@@ \0™DÿÿÿÿÿÿÏCe\r\0 B\x007( B\x007 B\x007 B|¡‚€€\0\r  )(7  ) 7\b  )7\0  \0®‚€€\0\r )"P\r B`|)\0B\t|)\0"B|(\0 (G\r )\b! (\0! B!| 7\0 B| 7\0 B| 6\0\f\v \0üŒ€€€\0!\v B0|$€€€€\0 \v‰€€€\0\v\0\vÐ~#€€€€\0B0}"$€€€€\0 B\x007( B\x007 B\x007@@ B|¡‚€€\0\r\0  )(7  ) 7\b  )7\0  \0«‚€€\0 )"P\r B`|)\0B\t|)\0"\0B|(\0 (G\r )\b! (\0! \0B!| 7\0 \0B| 7\0 \0B| 6\0 B0|$€€€€\0 \0\v‰€€€\0\v\0\vÐ~#€€€€\0B0}"$€€€€\0 B\x007( B\x007 B\x007@@ B|¡‚€€\0\r\0  )(7  ) 7\b  )7\0  \0ª‚€€\0 )"P\r B`|)\0B\t|)\0"\0B|(\0 (G\r )\b! (\0! \0B!| 7\0 \0B| 7\0 \0B| 6\0 B0|$€€€€\0 \0\v‰€€€\0\v\0\v©~~#€€€€\0B0}"$€€€€\0 B\t|)\0"B!| B)|7\0@@ B|(\0\r\0 B|"Á‚€€\0A!N\r\0 ¨‚€€\0! B\x007( B\x007 B\x007 B|¡‚€€\0\r\0  )(7  ) 7\b  )7\0 \0B\t|)\0"B!| B)|7\0 B|  µ‚€€\0\r\0 )"\0P\r \0B`|)\0B\t|)\0"B|(\0 (G\r )\b! (\0! B!| \x007\0 B| 7\0 B| 6\0 B0|$€€€€\0 \v‰€€€\0\v\0\v†~#€€€€\0B0}"$€€€€\0 B\x007( B\x007 B\x007@@ B|¡‚€€\0\r\0  )(7  ) 7\b  )7\0 \0B\t|)\0"\0B!| \0B)|7\0 B\t|)\0"B!| B)|7\0 \0B| B|B\0 °‚€€\0\r\0 )"P\r B`|)\0B\t|)\0"\0B|(\0 (G\r )\b! (\0! \0B!| 7\0 \0B| 7\0 \0B| 6\0 B0|$€€€€\0 \0\v‰€€€\0\v\0\vï~#€€€€\0B0}"$€€€€\0 B\x007( B\x007 B\x007@@ B|¡‚€€\0\r\0  )(7  ) 7\b  )7\0 \0B\t|)\0"\0B!| \0B)|7\0 \0B| § B\0ł€€\0\r\0 )"P\r B`|)\0B\t|)\0"\0B|(\0 (G\r )\b! (\0! \0B!| 7\0 \0B| 7\0 \0B| 6\0 B0|$€€€€\0 \0\v‰€€€\0\v\0\vˆ~~~#€€€€\0Bà\0}"$€€€€\0 B\x007X B\x007P B\x007H@@@@ BÈ\0|¡‚€€\0\r\0  )X7  )P7\b  )H7\0 B\x007X B\x007P B\x007H BÈ\0|¡‚€€\0\r\0  )X7(  )P7  )H7A\0!@ \0)\0\0" \0)\0\bZ\r -\0\0! \0 B|7\0\0 B| Aÿ\0q§‚€€\0 B|  B|‚€€\0\r  B| £‚€€\0\r Aj! ÀAL\r\0\v A?M\r B\x007X B\x007P B\x007H BÈ\0|¡‚€€\0\r\0  )X7@  )P78  )H70 B0| ´‚€€\0\r\0  B0| ¤‚€€\0E\r\v‰€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\f\v )"P\r\0 B`|)\0B\t|)\0"\0B|(\0 (G\r\0 )\b! (\0! \0B!| 7\0 \0B| 7\0 \0B| 6\0 Bà\0|$€€€€\0 \0\v\0\v±\n~@ )\0\0 Bˆ"B|"|" )\0\bV\r\0  7\0\0Bÿ\0! \0Bÿ\0ƒ!@ B\bT\r\0 Bx|"BˆB|"Bƒ!@ BT\r\0 Büÿÿÿÿÿÿÿ?ƒ!Bÿ\0!@ B†! \0Bˆ!\b B†!\t \0Bˆ!\n B†!\v \0Bˆ!\f \0Bˆ"\0 B†"ƒ \f \vƒ \b ƒ \n \tƒ „„„„! B||"B\0R\r\0\v P\r\v@ \0Bˆ"\0 B†"ƒ „! B|"B\0R\r\0\v\v   B9~"\0† \0‡ B\tQŒ€€€\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\vÞ~#€€€€\0B0}"$€€€€\0 B\x007 B\x007\b \0B\t|)\0"B!| B)|7\0 B\x007\0@@@  B|±‚€€\0\r\0@ (\b\r\0  AÀ€€\0\f\v \0쀀€\0! B\x007( B\x007 B\x007 B|¡‚€€\0\r\0 B| §Al´‚€€\0\r\0  B| £‚€€\0E\r\v‰€€€\0\0\v  A\0À€€\0\v B0|$€€€€\0\v¬~#€€€€\0B }"$€€€€\0 \0B\t|)\0"\0B!| \0B)|7\0 \0B|!@@@ \0B|(\0\r\0 Á‚€€\0!\f\v B\x007 B\x007 B\x007\b B\b| ±‚€€\0\r B\b|Ղ€€\0\r B\b|Á‚€€\0!\v B |$€€€€\0 ¬B|B€\v‰€€€\0\0\v„~#€€€€\0B0}"$€€€€\0 B\x007( B\x007 B\x007@@ B|¡‚€€\0\r\0  )(7  ) 7\b  )7\0 \0B\t|)\0"\0B!| \0B)|7\0 B\t|)\0"B!| B)|7\0 \0B| B| ¤‚€€\0\r\0 )"P\r B`|)\0B\t|)\0"\0B|(\0 (G\r )\b! (\0! \0B!| 7\0 \0B| 7\0 \0B| 6\0 B0|$€€€€\0 \0\v‰€€€\0\v\0\v"\0 \0B\t|)\0"\0B!| \0B)|7\0 \0B|¯‚€€\0\vF\0 \0B\t|)\0"\0B!| \0B)|7\0@ \0B|(\0\r\0 \0B|"\0Á‚€€\0A J\r\0 \0¨‚€€\0\v‰€€€\0\0\vs\0 \0B\t|)\0"\0B!| \0B)|7\0@@@ \0B|(\0\r\0 \0B|"\0Á‚€€\0A L\r\v B\t|)\0"\0B|)\0"B€€€€Z\r \0B|B| §Š€€€\0\0\v \0¨‚€€\0\v\0\v"\0 \0B\t|)\0"\0B!| \0B)|7\0 \0B|¨‚€€\0\vG\0 \0B\t|)\0"\0B!| \0B)|7\0@ \0B|(\0\r\0 \0B|"\0Á‚€€\0AÀ\0J\r\0 \0¬‚€€\0\v‰€€€\0\0\vt\0 \0B\t|)\0"\0B!| \0B)|7\0@@@ \0B|(\0\r\0 \0B|"\0Á‚€€\0AÀ\0L\r\v B\t|)\0"\0B|)\0"B€€€€Z\r \0B|B| §Š€€€\0\0\v \0¬‚€€\0\v\0\v"\0 \0B\t|)\0"\0B!| \0B)|7\0 \0B|¬‚€€\0\vP \0B\t|)\0"\0B| B\t|)\0"B| B|)\0" \0B|)\0"\0  \0T ‚€€\0"¬ \0 V \0 Tk¬ \v„~B•€€€\0"B|B7\0 B\t| 7\0 B|B7\0@ \0BƒP\r\0@ \0B|"BV\r\0 §\0\0\0\0\0\v \0B|!B!\0 P\r\0 )\b!\0\v B!|B\x007\0 B| \x007\0 –€€€\0\v+\0 \0B\t|)\0"\0B!|)\0Bˆ \0B|)\0B\t|)\0B|)\0Z­\vî~#€€€€\0BÀ\0}"$€€€€\0 \0B\t|)\0"\0B|)\0!@@ \0B!|")\0"\0BƒP\r\0B\0(  AG\r\0 \0B{Q\r\0 \0B|B\0)¸¹ T\r\0 B\x007\b B\x007\0B\0(ˆº AG\r B º 70 Bº 7( B¨ 7  7  B?|7 B| \0 €€€\0\v  \0B~ƒB|7\0 B\t|)\0 \0Bˆ|B|1\0\0!\0 BÀ\0|$€€€€\0 \0\v\0\v˜~@@@@@ \0B\t|)\0B|")\0BR\r\0 \0B|!\f\v )"B€€€€€€€€À\0Z\r B|BˆB|•€€€\0"B| 7\0 B\t|" 7\0 B|"B7\0 \0 B|ú€€€\0 –€€€\0 )\0B|!\v )"B|BˆB~"\0B|Bˆ"B|•€€€\0"B| \x007\0 B\t| 7\0 B|"B7\0 B|"!\0 P\r B|!B\0! !\0A\0!\bA\0!\t@@@@ -\0\0"\nAú\0K\r\0@ \nASj\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v@ \nA¿jAÿqAI\r\0@ \nAà\0K\r\0 \nAijA\0 \nANjAÿqAI!\n\f\v \nA j!\n\f\v \nA@j!\n\f\v#€€€\0Bà€€€€€€€\0|B(›€€€\0\0\v \nAjAÿq"\nA O\r\0 \tAt \nr!\t \bAj!\n@ \bAO\r\0 \n!\b\f\v \n!\b@ \0 \t \bAxj"\bv:\0\0 \0B|!\0 \tA \btAsq!\t \bAK\r\0\v\v B|! B|" Q\r\f\0\v\v#€€€\0B ‡€€€€€€€\0|B›€€€\0\0\v )B|Bˆ!\v@@  \0 }"B|Bˆ"\0}"BR\r\0  \0B†|B)7\0\f\v  \0Q\r\0  \0B†|"\0 B~|7\b \0B+7\0\v B| 7\0 –€€€\0@@ B\t|)\0B|)\0"BT\r\0 B|BˆB|•€€€\0"\0B| B||"7\0 \0B\t| \x007\0 \0B|B7\0@ P\r\0 \0B| )\bB| ü\n\0\0\v \0¢€€€\0¡€€€\0! )\b"B| B\t|)\0"B| B|)\0" B|)\0"  T ‚€€\0!\b  R\r \b\r \0–€€€\0\v#€€€\0Bۂ€€€€€€€\0|B&›€€€\0\0\v#€€€\0B·‚€€€€€€€\0|B$›€€€\0\0\vµ~B\0!@ !@@@ \0B\t|)\0"\0B|")\0BR\r\0@ )"P\r\0  \0B| ü\n\0\0\v P\r )\0\b! )\0\0!\0 !\f\v  )"\0B\t|)\0B|)\0|!@ ) "B\t|)\0B|)\0BT\r\0  7\0\b  7\0\0 !\f\v  ú€€€\0\f\0\v\v\v\v›~@@ \0B\t|)\0"B|)\0BQ\r\0 B|)\0"B€€€€€€€€À\0Z\r B|BˆB|•€€€\0"B| 7\0 B\t| 7\0 B|B7\0 \0 B|ú€€€\0 –€€€\0!\0\v \0\v#€€€\0B ‡€€€€€€€\0|B›€€€\0\0\v\0B€ü¿\v/\0@ \0Aßÿÿ\0qA¿jAO\r\0A\v@ \0AªO\r\0A\0\v \0Ž‚€€\0\v)\0@ \0AŸjAO\r\0A\v@ \0AªO\r\0A\0\v \0”‚€€\0\v)\0@ \0A¿jAO\r\0A\v@ \0AÀO\r\0A\0\v \0•‚€€\0\v³A!@ \0AwjAI\r\0 \0A F\r\0A\0! \0A…I\r\0A\0!@@@@@ \0A\bv"Ajj\0\v \0A€-F!\f\v \0A€à\0F!\f\v \r#ƒ€€€\0 \0­Bÿƒ|-\0\0!\f\v#ƒ€€€\0 \0­Bÿƒ|-\0\0AqAv!\v Aq!\v \v~#€€€€\0B0}"$€€€€\0 B | \0‚€€\0 B\x007\0  ) 7  (("6 BBB ($" 7\b@  r\r\0 ™‚€€\0"\0A€€Ä\0G\r\0\0\v B0|$€€€€\0 \0\v~#€€€€\0B0}"$€€€€\0 B | \0‘‚€€\0 B\x007\0  ) 7  (("6 BBB ($" 7\b@  r\r\0 ™‚€€\0"\0A€€Ä\0G\r\0\0\v B0|$€€€€\0 \0\v£~~@@@@ \0B|)\0"BV\r\0B †B€€€Ð\nƒB\0Q\r\0@ \0B\t|)\0"B|)\0"\0PE\r\0A\0\v B|! \0BR\rB\0!\0A!\f\v\0\v \0Bƒ! \0B~ƒ!B\0!\0A!@#€€€\0BˆŽ€€€€€€€\0|"  \0|"B|-\0\0  B|-\0\0 s­BÿƒB†|(\0 A\bvs"s­BÿƒB†|(\0 A\bvs!  \0B|"\0R\r\0\v P\r\v#€€€\0BˆŽ€€€€€€€\0| B| \0|-\0\0 s­BÿƒB†|(\0 A\bvs!\v As\v~~@ \0B\t|)\0B|)\0B\t|)\0"B|)\0"\0BƒB\0R\r\0A\0!@ \0P\r\0 \0Bˆ! B|B|!\0@@ \0)\0" Z\r \0B\b|!\0 B|"PE\r\0\f\v\v  Q!\v \v\0\v\0#€€€\0B€‰€€€€€€\0|)\0\v3~@#€€€\0Bˆ‰€€€€€€\0|)\0"\0PE\r\0B\0\v \0B\t|)\0B|)\0\v\n\0 \0ꁀ€\0\v\n\0 \0큀€\0\vÆ~~~@@@@@@ -\0\0E\r\0@ \0)\0\b!A\0! \0)\0\0"!\bB\0!\t@ \b Z\r \b-\0\0!\n \0 \bB|"\v7\0\0@ A?G\r\0 \nAÿqAK\r\b\v \n­Bÿ\0ƒ ­† \t„!\t \v!\b Aj! \nÀAL\r\0\v \tB€€€€Z\r@  \t§"M\r\0B\0!\bA\0!@ \v Z\r \v-\0\0!\n \0 \vB|"\v7\0\0 \nAÿ\0q!\f@ A?G\r\0 \fAjAþ\0I\r\t\v \f­ ­† \b„!\b \v!\v Aj"\f! \nÀAL\r\0\v \bB\0B\0B \f­† \nAÀ\0I \fA?K„"\vB€€€€\b|B€€€€Z\rA\0!\n   \v§A\0Ё€€\0  -\0\0Aj":\0\0 Aÿq\r\f\v\v  F\r \0 7\0\0\vA\0!\n\v \n\v  -\0\0Aj:\0\0A\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\v\0\v«$~~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Aä\0J\r\0AB€€€\0@@@@@@@@@@@@@@@@@@ A\0H\r\0 Aj!@  ­B†|)\0! \0)\0\b!A\0!B\0!@  Z\r -\0\0"\bAÿ\0q!\t@ A?G\r\0 \tAjAþ\0I\rB\v B|! \t­ ­† „! Aj"\t! \bÀAL\r\0\v B\0B\0B \t­† \bAÀ\0I \tA?K„"B€€€€\b|B€€€€Z\r@@@@@@@@@@ §Aj\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v \0)\0\0!B\0!\nA\0!@  Z\r -\0\0!\t \0 B|"7\0\0@ A?G\r\0 \tAÿqAK\rJ\v \t­Bÿ\0ƒ ­† \n„!\n ! Aj! \tÀAL\r\0\v \nBÿÿÿÿV\rHB\0!A\0!@  Z\r -\0\0!\t \0 B|"\v7\0\0@ A?G\r\0 \tAÿqAK\rJ\v \t­Bÿ\0ƒ ­† „! \v! Aj! \tÀAL\r\0\v B€€€€Z\rH \v \n|" V\r \0 7\0\0 P\rJ#€€€\0BŒš€€€€€€€\0|B·€€€\0\0\vB\0!A\0!@  Z\r -\0\0"\bAÿ\0q!\t@ A?G\r\0 \tAjAþ\0I\rI\v B|! \t­ ­† „! Aj"\t! \bÀAL\r\0\v B\0B\0B \t­† \bAÀ\0I \tA?K„"B€€€€\b|B€€€€Z\rG \0)\0\0" Z\r -\0\0! \0 B|7\0\0 AO\r! \r\fI\vB\0!\nA\0!@  Z\r" -\0\0"\bAÿ\0q!\t@ A?G\r\0 \tAjAþ\0I\rH\v B|! \t­ ­† \n„!\n Aj"\t! \bÀAL\r\0\vB\0! \nB\0B\0B \t­† \bAÀ\0I \tA?K„"\nB€€€€\b|B€€€€Z\rF \0)\0\0! \n§!\bA\0!@  Z\r# -\0\0!\t \0 B|"7\0\0@ A?G\r\0 \tAÿqAK\rH\v \t­Bÿ\0ƒ ­† „! ! Aj! \tÀAL\r\0\v B€€€€Z\rF P\rHA\0 €€€\0 \0)\0\0! \0  \bA\0Ё€€\0  \0)\0\0Q\r\r BQ\rH §Aj!@ \0  \bA\0Ё€€\0 Aj"\r\0\fI\v\vB\0!A\0!@  Z\r# -\0\0!\t@ A?G\r\0 \tAÿqAK\rG\v B|! \t­Bÿ\0ƒ ­† „! Aj! \tÀAL\r\0\v B€€€€Z\rE P\rG §!\fA\0!\r@  Z\r- ,\0\0! B|"\n! A\0H\r\0B\0!A\0! \n!@  Z\r/ -\0\0"\bAÿ\0q!\t@ A?G\r\0 \tAjAþ\0I\rH\v B|! \t­ ­† „! Aj"\t! \bÀAL\r\0\v B\0B\0B \t­† \bAÀ\0I \tA?K„"B€€€€\b|B€€€€Z\rF  §"F\r\b \0   Ё€€\0 \rAj"\r \fG\r\0\fH\v\vB\0!\vA\0!@  Z\r# -\0\0!\t@ A?G\r\0 \tAÿqAK\rF\v B|! \t­Bÿ\0ƒ ­† \v„!\v Aj! \tÀAL\r\0\v \vB€€€€Z\rD \0)\0\0!B\0!\nA\0!@  Z\r$ -\0\0!\t \0 B|"7\0\0@ A?G\r\0 \tAÿqAK\rF\v \t­Bÿ\0ƒ ­† \n„!\n ! Aj! \tÀAL\r\0\v \nB€€€€Z\rD \n \vZ\r@ \nP\r\0 \n§!\bA\0!\t@ \tAj!\t@  Z\r2 ,\0\0! B|"! A\0H\r\0\v@  Z\r3 ,\0\0! B|"! AL\r\0\v \t \bG\r\0\v\v@  Z\r. ,\0\0! B|"! A\0H\r\0\vB\0!A\0!@  Z\r/ -\0\0"\bAÿ\0q!\t@ A?G\r\0 \tAjAþ\0I\rF\v B|! \t­ ­† „! Aj"\t! \bÀAL\r\0\v B\0B\0B \t­† \bAÀ\0I \tA?K„"B€€€€\b|B€€€€T\r\fD\v \0)\0\0" Z\r# -\0\0! \0 B|"7\0\0 AO\r$ \r#€€€\0BŒš€€€€€€€\0|B·€€€\0\0\v \0)\0\0" Z\r$ -\0\0! \0 B|"7\0\0 AO\r% E\rB\0!A\0!@  Z\r5 -\0\0!\t \0 B|"\n7\0\0@ A?G\r\0 \tAÿqAK\rD\v \t­Bÿ\0ƒ ­† „! \n! Aj! \tÀAL\r\0\v B€€€€Z\rB \n |" V\r5 \0 7\0\0\vB\0!A\0!@  Z\r& -\0\0"\bAÿ\0q!\t@ A?G\r\0 \tAjAþ\0I\rC\v B|! \t­ ­† „! Aj"\t! \bÀAL\r\0\v B\0B\0B \t­† \bAÀ\0I \tA?K„"B€€€€\b|B€€€€Z\rA \0)\0\0" Z\r& -\0\0! \0 B|7\0\0 AO\r\' \r B\t|" V\r5 \0 7\0\0\vA!AB€€€\0 §! B\0Y\r\0\v\v A€j€@\r\f\v\f\v\n\t\f\v\n\t\b\b@\v#€€€\0Bә€€€€€€€\0|B·€€€\0\0\v#€€€\0B홀€€€€€€\0|B·€€€\0\0\v  Z\r( -\0! \0 B|"7\0\0 AO\r) E\r*B\0!A\0!@  Z\r, -\0\0!\t \0 B|"\n7\0\0@ A?G\r\0 \tAÿqAK\r=\v \t­Bÿ\0ƒ ­† „! \n! Aj! \tÀAL\r\0\v B€€€€Z\r; \n |" V\r, \0 7\0\0 \0Á€€€\0\v#€€€\0BŒš€€€€€€€\0|B·€€€\0\0\v B|" V\r. \0 7\0\0\vA B|Bÿÿÿÿƒ€€€\0\f:\v#€€€\0B̀€€€€€€\0|B·€€€\0\0\v \0)\0\0" \0)\0\bZ\r, -\0\0! \0 B|7\0\0 AI\r8#€€€\0Bœ—€€€€€€€\0|B·€€€\0\0\v \0)\0\0! \0)\0\b!@  Z\r- ,\0\0! \0 B|"7\0\0 ! AJ\r8\f\0\v\v \0)\0\0B|" \0)\0\bV\r, \0 7\0\0\v \0)\0\0B|" \0)\0\bV\r, \0 7\0\0\v \0)\0\0B|" \0)\0\bV\r, \0 7\0\0\v \0)\0\0B\b|" \0)\0\bV\r, \0 7\0\0\v \0Á€€€\0\v#€€€\0B©š€€€€€€€\0|B·€€€\0\0\v \0)\0\0" \0)\0\bZ\r* -\0\0! \0 B|7\0\0 AO\r+ E\r0 \0À€€€\0\v \0)\0\0B\f|" \0)\0\b"\nV\r+ \0 7\0\0B\0!A\0!@  \nZ\r- -\0\0!\t \0 B|"7\0\0@ A?G\r\0 \tAÿqAK\r/\v \t­Bÿ\0ƒ ­† „! ! Aj! \tÀAL\r\0\v B€€€€Z\r-  |" \nV\r. \0 7\0\0\v#€€€\0Bښ€€€€€€€\0|B"·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0Bœ—€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0Bœ—€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0Bœ—€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0Bœ—€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0Bœ—€€€€€€€\0|B·€€€\0\0\v#€€€\0BŒš€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0Bœ—€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\v\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v\v÷~~#€€€€\0B }"$€€€€\0  \x009\0@@@ B8ˆ"BV\r\0Aä\0 B8ˆ§ Bÿÿÿÿÿÿÿÿä\0V!@@@ §\0\0\v BÈ|A\0BÀü\v\0 B\x007˜ BÀ7  BÈ|7ˆ  ; B\x007 #„€€€\x007#€€€\0!  7\b Bˆ| BЇ€€€€€€\0| B¿‡€€€€€€€\0| B\b|ˆ‚€€\0 B\b| BÈ|BÀü\n\0\0\f\v BÈ|A\0BÀü\v\0 B\x007˜ BÀ7  BÈ|7ˆ  ; B\x007 #…€€€\x007#€€€\0!  7\b Bˆ| BЇ€€€€€€\0| B¿‡€€€€€€€\0| B\b|ˆ‚€€\0 B\b| BÈ|BÀü\n\0\0\f\v BÈ|A\0BÀü\v\0 B\x007˜ BÀ7  BÈ|7ˆ  ; B\x007 #„€€€\x007#€€€\0!  7\b Bˆ| BЇ€€€€€€\0| B¿‡€€€€€€€\0| B\b|ˆ‚€€\0 B\b| BÈ|BÀü\n\0\0\f\v\0\v BÈ|A\0BÀü\v\0 B\x007˜ BÀ7  BÈ|7ˆ #„€€€\x007#€€€\0!  7\b Bˆ| BЇ€€€€€€\0| BLJ€€€€€€€\0| B\b|ˆ‚€€\0 B\b| BÈ|BÀü\n\0\0\vB\0!B!@@@ B\b| "|"B~|-\0\0E\r@ B|-\0\0E\r\0@ BÀR\r\0 B|!\f\v B|! B|! -\0\0\r\f\v\v B|!\f\v B~|!\v B|BˆB|•€€€\0"B| 7\0 B\t| 7\0 B|B7\0@ P\r\0 B| B\b| ü\n\0\0\v –€€€\0! B |$€€€€\0 \v\f\0 \0 ö€€\0\v\f\0 \0 ÷€€\0\v¿~#€€€€\0BÀ\0}"\0$€€€€\0@@B\0)ˆ "BƒP\r\0B\0(  AG\r\0 B{Q\r\0 B|B\0)¸¹ T\r\0 \0B\x007\b \0B\x007\0B\0(ˆº AG\r \0B º 70 \0Bº 7( \0B¨ 7 \0 \x007 \0 \0B?|7 \0B|  €€€\0\vB\0B\x007ˆ  \0BÀ\0|$€€€€\0\v\0\v\n\0B\0)» \v]~@@#€€€\0B †€€€€€€\0|)\0"\0BQ\r\0#€€€\0B †€€€€€€\0|-\0 E\r\0 \0§Aq\r\v\0\v#€€€\0B †€€€€€€\0|)\b\vÝ~B\0)ð¹ !\0B¨ !@B\0)À¹ "B€T\r\0@@ B€|"B€ƒB€R\r\0B¨¹ ! !\f\v BˆB|Bƒ!B¨¹ ! !@ B€|! )\0"B€8|! B|"B\0R\r\0\v\v B€T\r\0@ )\0)€8)€8)€8)€8)€8)€8)€8"B€8|! B€x|"Bÿ\0V\r\0\v\v  Bÿ\0ƒB8~|) \0|\v\n\0B\0)øº \v\n\0B\0)˜» \v\n\0B\0)ع \v)\0 \0B†#€€€\0Bȇ€€€€€€\0|)\0B\t|)\0|B|)\0\vï~B\0)ð¹ !\0B¨ !@B\0)À¹ "B€T\r\0@@ B€|"B€ƒB€R\r\0B¨¹ ! !\f\v BˆB|Bƒ!B¨¹ ! !@ B€|! )\0"B€8|! B|"B\0R\r\0\v\v B€T\r\0@ )\0)€8)€8)€8)€8)€8)€8)€8"B€8|! B€x|"Bÿ\0V\r\0\v\v  Bÿ\0ƒB8~|) \0|B\0)ø¹ }B\0)ع |\v\n\0B\0)€» \v™\t~~#€€€€\0B€\b}"\0$€€€€\0@@@@@@#€€€\0B †€€€€€€\0|)\0BQ\r\0#€€€\0B †€€€€€€\0|-\0 \rB\0(  \r#€€€\0B †€€€€€€\0|)€PE\r#€€€\0B †€€€€€€\0|"A\0‚€€€\x007ˆ B7€B\0)ð¹ !B¨ !@B\0)À¹ "B€T\r\0@@ B€|"B€ƒB€R\r\0B¨¹ ! !\f\v BˆB|Bƒ!B¨¹ ! !@ B€|! )\0"B€8|! B|"B\0R\r\0\v\v B€T\r\0@ )\0)€8)€8)€8)€8)€8)€8)€8"B€8|! B€x|"Bÿ\0V\r\0\v\v#€€€\0B †€€€€€€\0|")h! )x!  Bÿ\0ƒB8~|) !€€€\0!Ž€€€\0!A\0‚€€€\0!\b B\x0070  \b7  7  7 B\x0078 A\0:\0@    || }7(@@#€€€\0B †€€€€€€\0|)`"B\0R\r\0#€€€\0B †€€€€€€\0|)X)P\r\vB¨ !@B\0)À¹ "B€T\r\0B¨¹ ! !@ B€|"B€ƒB€Q\r\0 BˆB|Bƒ!B¨¹ ! !@ B€|! )\0"B€8|! B|"B\0R\r\0\v\v B€T\r\0@ )\0)€8)€8)€8)€8)€8)€8)€8"B€8|! B€x|"Bÿ\0V\r\0\v\v  Bÿ\0ƒB8~|) B\0)ð¹ |#€€€\0B †€€€€€€\0|")x| )h}" )(} )V\r#€€€\0B †€€€€€€\0|" )0B|"70@@@ BçV\r\0 B )8"B€€|"  TT\r\v#€€€\0B †€€€€€€\0|" 78 B\x0070 A\0‚€€€\0 ) } )V"\t:\0@ )`! \tE\r\f\v#€€€\0B †€€€€€€\0|-\0@\r\v@@@ B\0R\r\0@#€€€\0B †€€€€€€\0|)X)"PE\r\0B!\f\vBù!#€€€\0B †€€€€€€\0|"Bù7`  7X\f\v#€€€\0B †€€€€€€\0| B|"7` BúV\r\b#€€€\0B †€€€€€€\0|)X!\v  B†|)(!\v B\t|)\0B|!@@@@@@@@@@@ B|)\0"B|"B,V\r\0@ §-\0\t\t\t\t\f\f\f\b\f\f\f\f\f\n\0\v@ )"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v#€€€\0B †€€€€€€\0| ³€€€\0!\v  7 B\t|)\0B|)\0Bˆ"P\r\v B|!@@ )\0"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v #€€€\0B †€€€€€€\0| ³€€€\x007\0\v B\b|! B|"P\r\f\f\0\v\v B-V\r\v#€€€\0B»‹€€€€€€€\0|B*›€€€\0\0\v@ )"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v #€€€\0B †€€€€€€\0| ³€€€\x007\v ) "BƒP\r\b B |! B|"BV\r §\b\b\b\v ) "BƒP\r B |! B|"BV\r §\v )"BƒP\r B|! B|"BV\r §\v )"BƒP\r B|! B|"BV\r §\v )"P\r B |!@@ )\0"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v #€€€\0B †€€€€€€\0| ³€€€\x007\0\v B\b|! B|"P\r\f\0\v\v )"BƒP\r B|! B|"BV\r §\v )\0"B=ˆBƒB|  B-V"\t!@@ )" Bÿÿÿÿÿÿÿÿ?ƒB\0 \t"}B€V\r\0  7\0\f\v  B=†B€€€€€€€€ |B€€€€€€€€@ƒ B€|"„7\0@@#€€€\0B †€€€€€€\0|)`"BúR\r\0@#€€€\0B †€€€€€€\0|)X") "B\0R\r\0B‚\b•€€€\0"B!|B\x007\0 B| 7\0 B|Bø?7\0 B\t| 7\0 B|"B7\0  7 \v#€€€\0B †€€€€€€\0| 7XB\0!\f\v BùV\r\n#€€€\0B †€€€€€€\0|)X!\v#€€€\0B †€€€€€€\0| B|7`  B†| 7(\v Bÿÿÿÿÿÿÿÿ?ƒB\0 B-V" Z\r  B†|B|!@@ )\0"BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v #€€€\0B †€€€€€€\0| ³€€€\x007\0\v B\b|! B|" Z\r\f\0\v\v )"BƒP\r B|! B|"BV\r\0 §\0\0\0\0\0\vB{!@ B{Q\r\0#€€€\0B †€€€€€€\0| ³€€€\0!\v  7\0\f\0\v\v#€€€\0B勀€€€€€€\0|B›€€€\0\0\v B\0R\r#€€€\0B †€€€€€€\0|)X)B\0R\r\v#€€€\0B †€€€€€€\0|")p"\b )h"|" \bT\r#€€€\0B †€€€€€€\0|)x!@@  Z\rB¨ !@B\0)À¹ "B€T\r\0B¨¹ ! !@ B€|"\nB€ƒB€Q\r\0 \nBˆB|Bƒ!B¨¹ ! !@ B€|! )\0"B€8|! B|"B\0R\r\0\v\v \nB€T\r\0@ )\0)€8)€8)€8)€8)€8)€8)€8"B€8|! B€x|"Bÿ\0V\r\0\v\v  }B\0)ð¹ |  Bÿ\0ƒB8~|) |"#€€€\0B †€€€€€€\0|")(} )V\r#€€€\0B †€€€€€€\0|" )0B|"70@@@ BçV\r\0 B )8"B€€|"  TT\r\v#€€€\0B †€€€€€€\0|" 78 B\x0070 A\0‚€€€\0 ) } )V"\t:\0@ )p!\b )h! \tE\r\f\v#€€€\0B †€€€€€€\0|-\0@\r\v  \b|" T\r #€€€\0B †€€€€€€\0|)x"X\r \0A\0B€\bü\v\0@   }"B€€À\0 B€€À\0T" |"Z\r\0@  \0  }"B€\b B€\bT"€€€\0  |" T\r\0\v#€€€\0B †€€€€€€\0|")p"\b )h"|! )x |!\v#€€€\0B †€€€€€€\0| 7x  Z\r\0\f\v\v \b B…V\r\v#€€€\0B †€€€€€€\0|(€E\r#€€€\0B †€€€€€€\0|")ˆ!A\0‚€€€\0! B\x007€   } )|"7 )`B\0R\r\0#€€€\0B †€€€€€€\0|)X)B\0R\r\0#€€€\0B †€€€€€€\0|")p" )h|" T\r#€€€\0B †€€€€€€\0|)x T\r\0#€€€\0B †€€€€€€\0|)\0BQ\rB\0#€€€\0B †€€€€€€\0|")˜ |7€»  A:\0 \v#€€€\0B †€€€€€€\0|-\0 !\t \0B€\b|$€€€€\0 \t\v\0\vƒ~~#€€€€\0B \b}"\0$€€€€\0@@#€€€\0Bˆ…€€€€€€\0|)\0BQ\r\0A!@@#€€€\0Bˆ…€€€€€€\0|-\0\r\0B\0(  \r#€€€\0Bˆ…€€€€€€\0|)hPE\r#€€€\0Bˆ…€€€€€€\0|"A\0‚€€€\x007p B7h )P! )`! )X!€€€\0!Ž€€€\0!A\0‚€€€\0!\b B\x0078  \b7(  7  7 B\x007@ A\0:\0H   | B†}70@ )X" )`"Q\r\0@ #€€€\0Bˆ…€€€€€€\0|")P"}  }|" )0} ) V\r#€€€\0Bˆ…€€€€€€\0|" )8B|"78@@@ BçV\r\0 B )@"B€€|"  TT\r\v#€€€\0Bˆ…€€€€€€\0|" 7@ B\x0078 A\0‚€€€\0 )(} )V":\0H E\r\f\v#€€€\0Bˆ…€€€€€€\0|-\0H\r\v@@#€€€\0Bˆ…€€€€€€\0|)\0P\r\0#€€€\0Bˆ…€€€€€€\0|"B\x007\0 \0 )"7( \0 )\b7   \0B |—€€€\0 \0) " \0)("Z\r#€€€\0Bˆ…€€€€€€\0|" 7  7\b B7\0\f\v \0B |#€€€\0Bˆ…€€€€€€\0|")X"B\b€€€€\0  B\b|"7X \0) B|"BZ\r@@@@@@@@@@@ §\0\0\0\0\b\t\n\0\v \0B | B\b€€€€\0#€€€\0Bˆ…€€€€€€\0|" B|7X \0) ! \0B\x007   \0B |—€€€\0 \0) " Z\r\n#€€€\0Bˆ…€€€€€€\0|" 7  7\b B7\0\f\n\v \0B | B\b€€€€\0#€€€\0Bˆ…€€€€€€\0| B|7X@@ \0) "BƒPE\r\0 !\f\v@ B|"BV\r\0 ! §\0\0\0\0\0\vB\0! B|)\0BQ\r\0#€€€\0Bˆ…€€€€€€\0|" ˜€€€\0! )XBx|!\v \0 7  \0B |B\b€€€\0\f\t\v \0B | B€€€€\0#€€€\0Bˆ…€€€€€€\0| B|7X \0 \0)("7 \0 \0) 7\b@@ BƒPE\r\0 !\f\v@ B|"BV\r\0 ! §\0\0\0\0\0\vB\0! B|)\0BQ\r\0#€€€\0Bˆ…€€€€€€\0|" ˜€€€\0! )XBp|!\v \0 7  \0B\b|B€€€\0 \0)\b"P\r\b@ \0B |#€€€\0Bˆ…€€€€€€\0|")X"B\b€€€€\0  B\b|7X@@ \0) "BƒPE\r\0 !\f\v@ B|"BV\r\0 ! §\0\0\0\0\0\vB\0! B|)\0BQ\r\0#€€€\0Bˆ…€€€€€€\0|" ˜€€€\0! )XBx|!\v \0 7  \0B |B\b€€€\0 B|"B\0R\r\0\f\t\v\v \0B | B\b€€€€\0#€€€\0Bˆ…€€€€€€\0|  \0) B|Bxƒ|B|7X\f\v \0B | B\b€€€€\0#€€€\0Bˆ…€€€€€€\0| B|7X\f\v \0B | B€€€€\0#€€€\0Bˆ…€€€€€€\0| B |7X \0 \0)0"7 \0 \0) 7\b \0 \0)(7@@ BƒPE\r\0 !\f\v@ B|"BV\r\0 ! §\0\0\0\0\0\vB\0! B|)\0BQ\r\0#€€€\0Bˆ…€€€€€€\0|" ˜€€€\0! )XBh|!\v \0 7  \0B\b|B€€€\0\f\v \0B | B€€€€\0#€€€\0Bˆ…€€€€€€\0| B|7X \0 \0)("7 \0 \0) 7\b@@ BƒPE\r\0 !\f\v@ B|"BV\r\0 ! §\0\0\0\0\0\vB\0! B|)\0BQ\r\0#€€€\0Bˆ…€€€€€€\0|" ˜€€€\0! )XBp|!\v \0 7  \0B\b|B€€€\0\f\v \0B | B€€€€\0#€€€\0Bˆ…€€€€€€\0| B |7X \0 \0)("7 \0 \0) 7\b \0 \0)07@@ BƒPE\r\0 !\f\v@ B|"BV\r\0 ! §\0\0\0\0\0\vB\0! B|)\0BQ\r\0#€€€\0Bˆ…€€€€€€\0| ˜€€€\0!\v \0 7@@ \0)"BƒPE\r\0 !\f\v@ B|"BV\r\0 ! §\0\0\0\0\0\vB\0! B|)\0BQ\r\0#€€€\0Bˆ…€€€€€€\0| ˜€€€\0!\v \0 7#€€€\0Bˆ…€€€€€€\0|)XBh| \0B\b|B€€€\0\f\v \0B | B€€€€\0#€€€\0Bˆ…€€€€€€\0|  \0)(B|BˆB|Bøÿÿÿÿÿÿÿ?ƒ|B|7X\f\v \0B | B\b€€€€\0#€€€\0Bˆ…€€€€€€\0| B|7X@@ \0) "BƒPE\r\0 !\f\v@ B|"BV\r\0 ! §\0\0\0\0\0\vB\0! B|)\0BQ\r\0#€€€\0Bˆ…€€€€€€\0|" ˜€€€\0! )XBx|!\v \0 7  \0B |B\b€€€\0\f\v \0B | B\b€€€€\0#€€€\0Bˆ…€€€€€€\0| B|7X@@ \0) "BƒPE\r\0 !\f\v@ B|"BV\r\0 ! §\0\0\0\0\0\vB\0! B|)\0BQ\r\0#€€€\0Bˆ…€€€€€€\0|" ˜€€€\0! )XBx|!\v \0 7  \0B |B\b€€€\0\v#€€€\0Bˆ…€€€€€€\0|")X" )`"R\r\0\v\v#€€€\0Bˆ…€€€€€€\0|(hE\r#€€€\0Bˆ…€€€€€€\0|")p!A\0‚€€€\0! B\x007h   } )x|7x@ )X )`Q\r\0#€€€\0Bˆ…€€€€€€\0|-\0!\f\v#€€€\0Bˆ…€€€€€€\0|)\0BQ\r#€€€\0Bˆ…€€€€€€\0|"A\0‚€€€\0"7p B7h )ˆ!@ )€"\bBƒP\r\0@ \bB|"BV\r\0 §\0\0\0\0\0\v \bB|!B!\b P\r\0 )\b!\b\v )`!@ BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B|!B! P\r\0 )\b!\v )P!#€€€\0!A\0‚€€€\0! Bˆ…€€€€€€\0|"B\x007h   } )x|7x A\0‚€€€\x007p B7h \0 7\b !@ BÿÿƒP\r\0 \0B |A\0B€\bü\v\0@  B€€|ƒB€€|"Z\r\0 !@  \0B |  }"B€\b B€\bT"€€€\0  |" T\r\0\v\v \0 7\b\v \0B\b| \b¹€€€\0 \0B\b| ¹€€€\0@ \0)\b"BÿÿƒP\r\0 \0B |A\0B€\bü\v\0  B€€|ƒB€€|"Z\r\0@  \0B |  }"B€\b B€\bT"€€€\0  |" T\r\0\v\v \0A\x006 \0B |B\0B€€€€\0 \0( !\t \0A\x006 B\0 \0B |B€€€\0#€€€\0Bˆ…€€€€€€\0|(hE\r#€€€\0Bˆ…€€€€€€\0|")p!A\0‚€€€\0! B\x007h   } )x|"7xƒ€€€\0B{|"BV\r  }!A!@@ §\0\vA!\v \0 6D \0 \t6@ \0 78 \0 70 \0 7( \0 7 ‡€€€\0"B\0Q\r@ Bÿÿÿÿÿÿ?ƒ"‡€€€\0"X\r\0  }ˆ€€€\0BQ\r\v B†BX| \0B |B(€€€\0A!#€€€\0Bˆ…€€€€€€\0|A:\0\v \0B \b|$€€€€\0 Aq\v#€€€\0B匀€€€€€€\0|B\v›€€€\0\v\0\v#€€€\0Bˆ–€€€€€€€\0|B›€€€\0\0\vO~@B\0)ˆ "\0BƒP\r\0@ \0B|"BV\r\0 §\0\0\0\0\0\v \0B|!B!\0 P\r\0 )\b!\0\v \0B\0R\v”\n~@ \0BƒP\r\0@ \0B|"BV\r\0 §\0\0\0\0\0\v \0B|!B!\0 P\r\0 )\b!\0\v@ BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B|!B! P\r\0 )\b!\v@ B\t|")\0B|)\0"BƒPE\r\0 Bˆ"\bB|•€€€\0"B| 7\0 B\t| 7\0 B|"\tB7\0 B|!\n@ P\r\0 \0B\t|)\0B|! )\0B|!\v \bBƒ!\fB\0!\r@ B T\r\0 \bBüÿÿÿÿÿÿÿƒ!B\0!B\0!\r@ \t |"\bB|  \v |"B|)\0|7\0 \bB |  B |)\0|7\0 \bB(|  B(|)\0|7\0 \bB0|  B0|)\0|7\0 B |!  \rB|"\rR\r\0\v \fP\r\v \v \rB†B|"\b|! \t \b|!\b@ \b  )\0|7\0 B\b|! \bB\b|!\b \fB|"\fB\0R\r\0\v\v  \n7\0  \0B\t|)\0" B|)\0|B|7\0 B\t|)\0B|)\0"BƒPE\r\0  Bˆ7\0\v\0\vp~#€€€€\0B }"\t$€€€€\0 \t 7 \t 7 \t \x007\0 \t \0  ~B†B?|BˆBøÿÿÿÿÿÿÿƒ|7\b \tA      \b¿€€€\0!\b \tB |$€€€€\0 \b\v,\0@  ~B†B?|BˆBøÿÿÿÿÿÿÿƒ"P\r\0 \0A\0 ü\v\0\v\v\0 \0 ~B†B?|Bˆ\v+~#€€€€\0B}"\0$€€€€\0 \0B|®€€€\0 \0B|$€€€€\0\v™~#€€€€\0BÀ\0}"$€€€€\0 \0B\t|)\0"\0B| 7\0 \0B| 7\0@@ \0B!|)\0"BƒP\r\0B\0(  AG\r\0 B{Q\r\0 B|B\0)¸¹ T\r\0 B\x007\b B\x007\0B\0(ˆº AG\r B º 70 Bº 7( B¨ 7  7  B?|7 B|  €€€\0\v@ BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B|!B! P\r\0 )\b!\v \0B!| 7\0 BÀ\0|$€€€€\0\v\0\v§\t~~#€€€€\0B€ð\0}"\0$€€€€\0@@@@@?\0"BÏ\0V\r\0BÐ\0 }@\0BQ\r\v@‡€€€\0"P\r\0 \0A\x006€8 \0B€8|B\0B€€€€\0 \0(€8\r \0A\x006€8 \0B€8| B†B||B€€€€\0 \0(€8"AI\r A{jAI\r\0#€€€\0B¡€€€€€€€\0|B›€€€\0\0\v@@B\0)€ "BV\r\0@ §\0\0\vB€€ #€€€\0B”€€€€€€€€\0|B€ ‚€€\0\r\0B\0)ˆ PE\r\0B\0) B\0R\r\0B\0)˜ P\r\v\0\v@B\0)ˆ» PE\r\0B\0B{7ˆ» \v@B\0)» B\0R\r\0B\0B{7» \vB\0)˜» P\r\f\v#€€€\0B€€€€€€€€€\0|B›€€€\0\0\vB€€ #€€€\0B”€€€€€€€\0|B€ü\n\0\0B\0B7€ B\0B\x007ˆ B\0B\x007 B\0B\x007˜  \0B\x007 8 \0B€€À7˜8 \0B\x0078 \0A\0:\0‰8 \0B\x007¨8 \0A\x006\0¯8 \0B‰8|! \0B€8|!B!@@ BÈ\0|B\x007\0 BÀ\0|A;\0 B8| 7\0 BÐ\0|B\x007\0 BØ\0|B\x007\0 Bà\0|B\x007\0 Bç\0|A\x006\0\0 B€|B\x007\0 Bø\0|A;\0 Bð\0| B|7\0 Bˆ|B\x007\0 B|B\x007\0 B˜|B\x007\0 BŸ|A\x006\0\0 B°|A;\0 B¨| B|7\0 B×|A\x006\0\0 BÐ|B\x007\0 BÈ|B\x007\0 BÀ|B\x007\0 B¸|B\x007\0 B|"B€Q\r Bð|B\x007\0 Bè|A;\0 Bà|" 7\0 Bø|B\x007\0 B€|B\x007\0 Bˆ|B\x007\0 B|A\x006\0\0 B|! !\f\0\v\v \0B\t| B÷7ü\n\0\0B\0A6  B\0B\x007¨ B\0A\0:\0°  \0B\x007\0‡8 \0B\x007\08 \0A\0:\0—8B±  \0B\t|B÷7ü\n\0\0B\0B\x007¨¹ B\0B€7°¹ B\0B€€À7¸¹ B\0B\x007À¹ B\0Bÿ\x007ȹ B\0A\0:\0й B\0 \0)\087\0á¹ B\0 \0)\0ˆ87\0Ù¹ B\0 \0)\0€87\0ѹ B\0B€€À7ð¹ B\0B\x007ø¹ B\0B\x007€º B\0A\x006ˆº B\0A\x006¨º B\0B\x007ðº B\0B\x007øº B\0B\x007€» B\0B{7ˆ» B\0B{7» \vB\0B{7˜» \v \0B€ð\0|$€€€€\0\vñ~#€€€€\0BÀ\0}"$€€€€\0@ \0B€€€€€€€ Z\r\0 \0B|•€€€\0"B| \x007\0 B\t| 7\0 B|"B7\0@ \0P\r\0 \0Bƒ!B\0!@ \0BT\r\0 B1|! \0Büÿÿÿÿÿÿÿ?ƒ!\0B\0!@ B{7\0 Bx|B{7\0 Bp|B{7\0 Bh|B{7\0 B |! \0 B|"R\r\0\v P\r\v  B†|B|!@ B{7\0 B\b|! B|"B\0R\r\0\v\v@#€€€\0Bȇ€€€€€€\0|)\0"BƒP\r\0B\0(  AG\r\0 B{Q\r\0 B|B\0)¸¹ T\r\0 B\x007\b B\x007\0B\0(ˆº AG\r B º 70 Bº 7( B¨ 7  7  B?|7 B|  €€€\0\v@ BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v@ PE\r\0B!\f\v )\b!\v#€€€\0Bȇ€€€€€€\0| 7\0 BÀ\0|$€€€€\0\v\0\v\0#€€€\0Bˆ…€€€€€€\0|)\0BR\v–~ \0)\0\0! \0)\0\b!B\0!A\0!@@@  Z\r -\0\0! \0 B|"7\0\0@ A?G\r\0 AÿqAK\r\v ­Bÿ\0ƒ ­† „! ! Aj! ÀA\0H\r\0\v \v\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\vH~ \0§!@ \0Bˆ"\0P\r\0@  A€r:\0\0 B|! \0§! \0Bˆ"!\0 PE\r\0\v\v  :\0\0\vi~@B\0) B\0Q\r\0B\0)˜ P\r\0@B\0)ˆ "\0BƒP\r\0@ \0B|"BV\r\0 §\0\0\0\0\0\v \0B|!B!\0 P\r\0 )\b!\0\v \0\v\0\v¤~~|@@@@ \0½"B€€€€€€€\bS\r\0 Bÿÿÿÿÿÿÿ÷ÿ\0V\rAx!@ B ˆ"B€€ÀÿQ\r\0 §!\f\vA€€Àÿ! §\rD\0\0\0\0\0\0\0\0\v@ \0D\0\0\0\0\0\0\0\0b\r\0D\0\0\0\0\0\0ð¿ \0 \0¢£\v B\0S\r \0D\0\0\0\0\0\0PC¢½"B ˆ§!AËw!\v Aâ¾%j"Av j·"D\0\0àþB.æ?¢ Aÿÿ?qAžÁšÿj­B † Bÿÿÿÿƒ„¿D\0\0\0\0\0\0ð¿ "\0 DvßñÂ?¢DÞ˖dFÇ? ¢DY“"”$IÒ? ¢D“UUUUUå? ¢  ¢  ¡  \v \0 \0¡D\0\0\0\0\0\0\0\0£!\0\v \0\v™~@ \0B€€€€V\r\0  \0~"B|"Bˆ"B|•€€€\0"\0B\t| \x007\0 \0B|"B#7\0@ B€€€€À\0Z\r\0 \0B| Bˆ>\0 \0–€€€\0 B(|!\0@ P\r\0 Bøÿÿÿÿ\0ƒ"P\r\0 \0A\0 ü\v\0\v \0\v\0\v‰€€€\0\0\v\0\vž~@@@  \0B`|)\0B\t|)\0B|4\0B†"V\r\0  Q\r\f\v B|BˆB|•€€€\0"B\t| 7\0 B|"B#7\0 B€€€€À\0Z\r B| Bˆ>\0 –€€€\0 B(|!@ P\r\0  \0 ü\n\0\0\v !\0\v \0\v\0\vó\'\t~~~~~#€€€€\0B }"$€€€€\0@@@@@@@@@ )\0\0" )\0\b"\bQ\r\0@ B|"\t \bV\r\0 (\0\0!\n  \t7\0\0 \nAĒ‘âG\rB\0!\vA\0!\n@ \t \bZ\r \t-\0\0!\f  \tB|"7\0\0@ \nA?G\r\0 \fAÿqAK\r\t\v \f­Bÿ\0ƒ \n­† \v„!\v !\t \nAj!\n \fÀAL\r\0\v \vB€€€€Z\r  \v| \bZ\r  \v7\0 \vB|•€€€\0"\tB| \vB†7\0 \tB\t| \t7\0 \tB|B7\0 \0\r )\0\0 |" )\0\b"\bZ\r  7\0\b\f\v#€€€\0BΖ€€€€€€€\0|B·€€€\0\0\v#€€€\0B³†€€€€€€€\0|BÒ\0·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B †€€€€€€€\0|B·€€€\0\0\v#€€€\0B’†€€€€€€€\0|B·€€€\0\0\v )\0\b!\b\v \tB|!\r@@ \vP\r\0 \v§!B\0!@ \r B†| )\0\x007\0 B|! )\0\0!\t )\0\b!A\0!\nB\0!@@@@@@@ \t Z\r \t-\0\0!\f  \tB|"7\0\0 \fAÿ\0q!@ \nA?G\r\0 AjAþ\0I\r\v\v ­ \n­† „! !\t \nAj"!\n \fÀAL\r\0\v B\0B\0B ­† \fAÀ\0I A?K„"\tB€€€€\b|B€€€€Z\r\t@@ \0E\r\0 \tBR\r\0B\0!\tA\0!\n@  Z\r -\0\0!\f  B|"7\0\0 \fAÿ\0q!@ \nA?G\r\0 AjAþ\0I\r\r\v ­ \n­† \t„!\t ! \nAj"!\n \fÀAL\r\0\v \tB\0B\0B ­† \fAÀ\0I A?K„"\tB€€€€\b|B€€€€Z\r\v@ \tBU\r\0 \tBnV\r\b \tB€Q\r\b \tBhQ\r\b\f\v \t \vZ\r\r\f\v@ \tBU\r\0@@@@@@@@@@ \tBnV\r\0 \tBhQ\r\0 \t§!\n@ \0\r\0 \nAj\v@ \nAj\0\v \nA€G\r\r\v#€€€\0B䅀€€€€€€\0|B·€€€\0\0\vB\0!\tA\0!\n@  Z\r\b -\0\0!\f  B|"7\0\0 \fAÿ\0q!@ \nA?G\r\0 AjAþ\0I\r\v ­ \n­† \t„!\t ! \nAj"!\n \fÀAL\r\0\v \tB\0B\0B ­† \fAÀ\0I A?K„"\tB€€€€\b|B€€€€Z\r@@ \tBU\r\0 \tBnV\r \tBhQ\r \0 \tB€Qq\r\f\v \t \vT\r\v#€€€\0B‡—€€€€€€€\0|B·€€€\0\0\vB\0!\tA\0!\n@  Z\r -\0\0!\f  B|"7\0\0 \fAÿ\0q!@ \nA?G\r\0 AjAþ\0I\r\v ­ \n­† \t„!\t ! \nAj"!\n \fÀAL\r\0\v \tB\0B\0B ­† \fAÀ\0I A?K„"\tB€€€€\b|B€€€€Z\r@@ \tBU\r\0 \tBnV\r \tBhQ\r \0 \tB€Qq\r\f\v \t \vT\r\v#€€€\0B‡—€€€€€€€\0|B·€€€\0\0\v \0  »€€€\0\f\r\vB\0!\tA\0!\n@  Z\r -\0\0!\f  B|"7\0\0@ \nA?G\r\0 \fAÿqAK\r\v \f­Bÿ\0ƒ \n­† \t„!\t ! \nAj!\n \fÀAL\r\0\v \tB€€€€Z\r \tP\r\n \t§!A\0!@ Aj!B\0! !\tA\0!\n@ \t Z\r \t-\0\0!\f  \tB|"7\0\0 \fAÿ\0q!@ \nA?G\r\0 AjAþ\0I\r\v ­ \n­† „! !\t \nAj"!\n \fÀAL\r\0\v B\0B\0B ­† \fAÀ\0I A?K„"\tB€€€€\b|B€€€€Z\r@@ \tBU\r\0 \tBnV\r \tBhQ\r \0 \tB€Qq\r\f\v \t \vZ\r\r\v  G\r\0\f\v\v\vB\0!A\0!\n@@  Z\r -\0\0!\f  B|"\t7\0\0@ \nA?G\r\0 \fAÿqAK\r\v \f­Bÿ\0ƒ \n­† „! \t! \nAj!\n \fÀAL\r\0\v B€€€€Z\r P\r\f §!B\0!A\0!A\0!@ ! ! Aj!A\0!\nB\0!@@@@@ \t Z\r \t-\0\0!\f  \tB|"7\0\0@ \nA?G\r\0 \fAÿqAK\r\v \f­Bÿ\0ƒ \n­† „! !\t \nAj!\n \fÀAL\r\0\v B€€€€Z\r  |"\t V\r  \t7\0\0 B\b|  ‰‚€€\0 )\bPE\r §! P\r@      I­ ‚€€\0"\nA\0J\r\0  I\r \n\r\v#€€€\0Bŀ€€€€€€\0|B!·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0Büš€€€€€€€\0|B"›€€€\0\0\v )\0\0! )\0\b!B\0!A\0!\n@@  Z\r -\0\0!\f  B|"\t7\0\0 \fAÿ\0q!@ \nA?G\r\0 AjAþ\0I\r\v ­ \n­† „! \t! \nAj"!\n \fÀAL\r\0\v B\0B\0B ­† \fAÀ\0I A?K„"B€€€€\b|B€€€€Z\r@@ BU\r\0 BnV\r BhQ\r \0 B€Qq\r\f\r\v  \vZ\r\f\v  F\r\f\v\v#€€€\0B·–€€€€€€€\0|B·€€€\0\f\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B€†€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\vB\0!\tA\0!\n@@@  Z\r -\0\0!\f  B|"7\0\0@ \nA?G\r\0 \fAÿqAK\r\v\v \f­Bÿ\0ƒ \n­† \t„!\t ! \nAj!\n \fÀAL\r\0\v \tB€€€€Z\r\t  \t|"\t V\r  \t7\0\0\f\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B‡—€€€€€€€\0|B·€€€\0\0\vB\0!\tA\0!\n@@@@@  Z\r -\0\0!\f  B|"7\0\0@ \nA?G\r\0 \fAÿqAK\r\v\v \f­Bÿ\0ƒ \n­† \t„!\t ! \nAj!\n \fÀAL\r\0\v \tB€€€€Z\r\t@ \tP\r\0 \t§!A\0!@ Aj!B\0! !\tA\0!\n@ \t Z\r \t-\0\0!\f  \tB|"7\0\0 \fAÿ\0q!@ \nA?G\r\0 AjAþ\0I\r\r\v ­ \n­† „! !\t \nAj"!\n \fÀAL\r\0\v B\0B\0B ­† \fAÀ\0I A?K„"\tB€€€€\b|B€€€€Z\r\v@@ \tBU\r\0 \tBnV\r \tBhQ\r \0 \tB€Qq\r\f\v \t \vZ\r\v  G\r\0\v\vB\0!A\0!\n\f\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v@@@  Z\r -\0\0!\f  B|"\t7\0\0@ \nA?G\r\0 \fAÿqAK\r\n\v \f­Bÿ\0ƒ \n­† „! \t! \nAj!\n \fÀAL\r\0\v B€€€€Z\r\b §!\n@ \nE\r \t Z\r \t-\0\0!\f  \tB|"\t7\0\0 \nAj!\n \t!\t \fAjAÿqAI\r\0\v#€€€\0B¤…€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B‡—€€€€€€€\0|B·€€€\0\0\v#€€€\0B‡—€€€€€€€\0|B·€€€\0\0\v  \vR\r\0\v  \b7\0\bB\0!@@@@@ "\tB|! \r \tB†|)\0!\tA\0!\nB\0!@@@@@ \t \bZ\r \t-\0\0"Aÿ\0q!\f@ \nA?G\r\0 \fAjAþ\0I\r\r\v \tB|!\t \f­ \n­† „! \nAj"\f!\n ÀAL\r\0\v B\0B\0B \f­† AÀ\0I \fA?K„"B€€€€\b|B€€€€Z\r\v BiR\rB\0!A\0!\n@ \t \bZ\r \t-\0\0!\f@ \nA?G\r\0 \fAÿqAK\r\r\v \tB|!\t \f­Bÿ\0ƒ \n­† „! \nAj!\n \fÀAL\r\0\v B€€€€Z\r\v §!A\0!@  F\r Aj!B\0!A\0!\n@ \t \bZ\r \t-\0\0!\f@ \nA?G\r\0 \fAÿqAK\r\v \tB|!\t \f­Bÿ\0ƒ \n­† „! \nAj!\n \fÀAL\r\0\v B€€€€Z\r\f \t |"\t \bV\rB\0!A\0!\n@ \t \bZ\r\b \t-\0\0"Aÿ\0q!\f@ \nA?G\r\0 \fAjAþ\0I\r\v \tB|!\t \f­ \n­† „! \nAj"\f!\n ÀAL\r\0\v B\0B\0B \f­† AÀ\0I \fA?K„"B€€€€\b|B€€€€Z\r\f B\0S\r\b § O\r\b \r B†|)\0!B\0!A\0!\n@  \bZ\r\n -\0\0"Aÿ\0q!\f@ \nA?G\r\0 \fAjAþ\0I\r\v B|! \f­ \n­† „! \nAj"\f!\n ÀAL\r\0\v B\0B\0B \f­† AÀ\0I \fA?K„"B€€€€\b|B€€€€Z\r\f BjQ\r\0\v#€€€\0Bþ„€€€€€€€\0|B&·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v  \vQ\r\f\v\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B¢–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0BՄ€€€€€€€\0|B)·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v  \b7\0\b\v  )\0\x007\0 )\0\0!\t )\0\b!B\0!\bA\0!\n@@@ \t Z\r \t-\0\0!\f  \tB|"7\0\0@ \nA?G\r\0 \fAÿqAK\r\v \f­Bÿ\0ƒ \n­† \b„!\b !\t \nAj!\n \fÀAL\r\0\v \bB€€€€Z\r@ \bP\r\0 \b§!A\0!@ Aj! !\tA\0!\nB\0!\b@ \t Z\r \t-\0\0!\f  \tB|"7\0\0 \fAÿ\0q!@ \nA?G\r\0 AjAþ\0I\r\v ­ \n­† \b„!\b !\t \nAj"!\n \fÀAL\r\0\v \bB\0B\0B ­† \fAÀ\0I A?K„"\tB€€€€\b|B€€€€Z\r@@ \tBU\r\0 \tBnV\r \tBhQ\r \0 \tB€Qq\r\f\v \t \vZ\r\v  G\r\0\v\v  \r7\0 B |$€€€€\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v\0\v#€€€\0B‡—€€€€€€€\0|B·€€€\0\0\v#€€€\0B‡—€€€€€€€\0|B·€€€\0\0\v¾~@@@#€€€\0Bˆ‰€€€€€€\0|)\0"B\0Q\r\0 \0 B\t|)\0"B|)\0Z\r B| \0B†|B|)\0"\0BQ\r \0BƒP\r \0B\t|)\0B1|)\0\v#€€€\0B§˜€€€€€€€\0|B:›€€€\0\0\v#€€€\0B𙀀€€€€€\0|B9›€€€\0\0\v#€€€\0Bᘀ€€€€€€\0|B9›€€€\0\0\v\f\0 \0 €\0\v\f\0 \0 ø€€\0\v\0 \0¢€€€\0¡€€€\0\v~~#€€€€\0B}"\0$€€€€\0@@‡€€€\0"PE\r\0B!\f\v \0A\x006\bB\0! \0B\b|B\0B€€€€\0 \0(\b\r\0 \0A\x006\f \0B\f| B†B||B€€€€\0 \x005\f!\v \0B|$€€€€\0 \v°~#€€€€\0BÀ\0}"$€€€€\0@@@@#€€€\0Bˆ‰€€€€€€\0|)\0"B\0Q\r\0 \0 B\t|)\0"B|)\0Z\r#€€€\0B‰€€€€€€\0|)\0!@ B| \0B†|B|")\0"BƒP"\r\0B\0(  AG\r\0 B{Q\r\0 B|B\0)¸¹ T\r\0 B\x007\b B\x007\0B\0(ˆº AG\r B º 70 Bº 7( B¨ 7  7  B?|7 B|  €€€\0\v  B†7\0#€€€\0"B‰€€€€€€\0| \x007\0 B€‰€€€€€€\0|"\0 \0)\0B|7\0 BQ\r \r BÀ\0|$€€€€\0 \v#€€€\0Bƒ€€€€€€€\0|B5›€€€\0\v\0\v#€€€\0Bꃀ€€€€€€\0|B4›€€€\0\0\v#€€€\0B¶ƒ€€€€€€€\0|B4›€€€\0\0\v\0#€€€\0B ‰€€€€€€\0|)\0\vÑ~~~~#€€€€\0BÀ\0}"$€€€€\0B!@@ B€€€ \0B\t|)\0"B|)\0"}V\r\0 A\x006 B|BB€€€€\0 (!#€€€\0!„€€€\0!\0@ B˜‰€€€€€€\0|)\0Bˆ ­ §Aÿ\0j" §jAv"\b Av"k­|"\tB†|"\n \0X\r\0B! \n \0}…€€€\0BQ\r\v  \t>B B|B€€€\0 B|" )\0 Bÿÿÿÿƒ|"7\0@ E\r\0 B!|)\0B\t|)\0 Aj"\v­BÿÿƒB†|B|3\0!  B|)\0B|7 B\v~"B"| B|B\b€€€\0  \v; B*| B|B€€€\0  § \bAj"\fAtkA€ \f \vAÿÿqF:\0 B,| B|B€€€\0\v \bAt­"B|BˆB|•€€€\0"\rB| 7\0 \rB\t| \r7\0 \rB|"B7\0@ At­"P\r\0 \rB| B!|)\0B\t|)\0B| ü\n\0\0\v@ \b M\r\0  k!\v \bAj"\fAt! ­"B† |B|! \b­!\t B|!\n B|!@ \n(\0!\b  )\0B|7 \v j"AÿÿqA\vl­"\0B"| B|B\b€€€\0  = \0B*| B|B€€€\0  \b kA€ \f AÿÿqF:\0 \0B,| B|B€€€\0  ;\0 Aj! B|! \t B|"R\r\0\v\v \r–€€€\0!@ B!|)\0"BƒP\r\0B\0(  AG\r\0 B{Q\r\0 B|B\0)¸¹ T\r\0 B\x007\b B\x007\0B\0(ˆº AG\r B º 70 Bº 7( B¨ 7  7  B?|7 B|  €€€\0\v@ BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v@ PE\r\0B!\f\v )\b!\v B!| 7\0 !\v BÀ\0|$€€€€\0 \v\0\v\0 \0B\t|)\0B|)\0\vÇ~#€€€€\0B}"$€€€€\0@@@@@@@ƒ€€€\0B}|"BV\r\0@ §\0\0\v„€€€\0BX\r\0 B\x007\0 B\0B\b€€€€\0 )\0B͞ɪô¨Ò§Î\0R\r A\x006\b B\b|B\bB€€€€\0 (\bAK\r A\0;\b B\b|B\fB€€€€\0 /\bA€G\r B\x007\b B\b|BB\b€€€€\0 )\b"B¢€T\r#€€€\0"\0B˜‰€€€€€€\0| 7\0 \0B ‰€€€€€€\0|¦€€€\x007\0 B\x007\b B\b|BB\b€€€€\0 )\bBV\r\v\0\v#€€€\0B¬‰€€€€€€€\0|B §€€€\0\0\v \0P\r\0@„€€€\0B\0R\r\0¨€€€\0\f\vª€€€\0\v B|$€€€€\0\v#€€€\0B¢Š€€€€€€€\0|B#§€€€\0\0\v#€€€\0Bõ‰€€€€€€€\0|B-§€€€\0\0\v#€€€\0B̉€€€€€€€\0|B)§€€€\0\0\v®~ B|BˆB|•€€€\0"B| 7\0 B\t| 7\0 B|"B7\0@@ Bÿÿÿÿÿÿÿÿÿ\0T\r\0 Bˆ"Bÿÿÿÿÿÿÿÿÿ\0Q\r \0  B|" £€€€\0 \0  |  |  }£€€€\0 –€€€\0\v \0  B| £€€€\0 –€€€\0\v\0\vC~|#€€€€\0B}"$€€€€\0 B\x007\b \0  B\b|B\b£€€€\0 +\b! B|$€€€€\0 \vC~#€€€€\0B}"$€€€€\0 A\0; \0  B|B£€€€\0 /! B|$€€€€\0 \vC~#€€€€\0B}"$€€€€\0 A\x006\f \0  B\f|B£€€€\0 (\f! B|$€€€€\0 \vA~#€€€€\0B}"$€€€€\0 B\x007\b \0  B\b|B\b£€€€\0 )\b! B|$€€€€\0 \vC~#€€€€\0B}"$€€€€\0 A\0:\0 \0  B|B£€€€\0 -\0! B|$€€€€\0 \vï~#€€€€\0B}"\0$€€€€\0@@@ƒ€€€\0B}|"BV\r\0 §\v\0\v@„€€€\0B\0R\r\0¨€€€\0\f\vª€€€\0\v \0B\x007\b \0B\b|BB\b€€€€\0@ \0)\b"B~Q\r\0 \0 B|7\bB \0B\b|B\b€€€\0B•€€€\0"B|B\x007\0 B\t| 7\0 B|"B7\0 –€€€\0!B•€€€\0"B|B\x007\0 B| 7\0 B\t| 7\0 B|B\'7\0@ BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v@ PE\r\0B!\f\v )\b!\v B!| 7\0 –€€€\0! \0B|$€€€€\0 \v#€€€\0Bôˆ€€€€€€€\0|B§€€€\0\0\v\0 \0B\t|)\0B|)\0\v|~ B\t|)\0"B|!@@ B|)\0"Bÿÿÿÿÿÿÿÿÿ\0T\r\0 Bˆ"Bÿÿÿÿÿÿÿÿÿ\0Q\r \0   ¥€€€\0 \0  |  |  }¥€€€\0\v \0   ¥€€€\0\v\0\v8~#€€€€\0B}"$€€€€\0  9\b \0  B\b|B\b¥€€€\0 B|$€€€€\0\v8~#€€€€\0B}"$€€€€\0  ; \0  B|B¥€€€\0 B|$€€€€\0\v8~#€€€€\0B}"$€€€€\0  6\f \0  B\f|B¥€€€\0 B|$€€€€\0\v8~#€€€€\0B}"$€€€€\0  7\b \0  B\b|B\b¥€€€\0 B|$€€€€\0\v8~#€€€€\0B}"$€€€€\0  :\0 \0  B|B¥€€€\0 B|$€€€€\0\v\0 \0B\t|)\0B!|)\0\v1~#€€€€\0B}"$€€€€\0 B| \0 Až€€€\0 B|$€€€€\0\v†\t\n~#€€€€\0BÀ\0}"$€€€€\0@#€€€\0Bˆ‰€€€€€€\0|)\0"B\0R\r\0Bƒ•€€€\0"B|B7\0 B|B€7\0 B\t| 7\0#€€€\0"Bˆ‰€€€€€€\0| 7\0 B‰€€€€€€\0|B\x007\0 B€‰€€€€€€\0|B\x007\0 B1|!B\b!@  7\0 Bx| B~|7\0 Bp| B||7\0 Bh| Bz|7\0 B |! B\b|"BˆR\r\0\v#€€€\0Bˆ‰€€€€€€\0|")\0–€€€\0 )\0!\v@@@#€€€\0B‰€€€€€€\0|)\0" B\t|)\0"B|)\0R\r\0 B†"B€€€€€€€ Z\r B|•€€€\0"B| 7\0 B\t| 7\0 B|"B7\0@ P\r\0 B|! B|B|! !\b@@ )\0"\tBƒP\r\0@ \tB|"\nBV\r\0 \n§\0\0\0\0\0\v \tB|!\nB!\t \nP\r\0 \n)\b!\t\v  \t7\0 B\b|! B\b|! \bB|"\bPE\r\0\v BS\r\0 B|!  B†|B|!@  7\0 B|! B\b|! B|" T\r\0\v\v#€€€\0! –€€€\0!@ Bˆ‰€€€€€€\0|)\0"BƒP\r\0B\0(  AG\r\0 B{Q\r\0 B|B\0)¸¹ T\r\0 B\x007\b B\x007\0B\0(ˆº AG\r B º 70 Bº 7( B¨ 7  7  B?|7 B|  €€€\0\v@ BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v@ PE\r\0B!\f\v )\b!\v#€€€\0Bˆ‰€€€€€€\0| 7\0\v \0BQ\r \0Bƒ§E\r#€€€\0B‰€€€€€€\0|" )\0"\tB† B\t|)\0|B|")\0Bˆ7\0@ )\0"BƒP\r\0B\0(  AG\r\0 B{Q\r\0 B|B\0)¸¹ T\r\0 B\x007\b B\x007\0B\0(ˆº AG\r B º 70 Bº 7( B¨ 7  7  B?|7 B|  €€€\0\vB{!@ \0B{Q\r\0B! \0B|"\bP\r\0 \b)\b!\v  7\0#€€€\0B€‰€€€€€€\0|" )\0B|7\0 BÀ\0|$€€€€\0 \t\v\0\v#€€€\0Bž„€€€€€€€\0|B7›€€€\0\0\v\r\0B\0(  AG\vœ~#€€€€\0BÀ\0}"$€€€€\0@ \0B\0Q\r\0B\0) B\0Q\r\0B\0)˜ P\r\0@B\0)ˆ "BƒP\r\0B\0(  AG\r\0 B{Q\r\0 B|B\0)¸¹ T\r\0 B\x007\b B\x007\0B\0(ˆº AG\r B º 70 Bº 7( B¨ 7  7  B?|7 B|  €€€\0\v@ \0BƒP\r\0@ \0B|"BV\r\0 §\0\0\0\0\0\v \0B|!B!\0 P\r\0 )\b!\0\vB\0 \x007ˆ  BÀ\0|$€€€€\0\v\0\vŽ~\b~#€€€€\0B}"\0$€€€€\0@@B\0(  AG\r\0B¨ !B¨ !@B\0)À¹ "B€T"\r\0@@ B€|"B€ƒB€R\r\0B¨¹ ! !\f\v BˆB|Bƒ!\bB¨¹ ! !@ B€|! )\0"B€8|! \bB|"\bB\0R\r\0\v\v B€T\r\0@ )\0)€8)€8)€8)€8)€8)€8)€8"B€8|! B€x|"Bÿ\0V\r\0\v\vB\0)ð¹ !?\0"\tB†"B€€üÿ B€€üÿVBÿÿÿÿ|B€€€€xƒ"\nB\n€B†!\b  Bÿ\0ƒB8~"\v|!@ \r\0@@ B€|"\fB€ƒB€R\r\0B¨¹ !\f\v \fBˆB|Bƒ!B¨¹ !@ B€|! )\0"B€8|! B|"B\0R\r\0\v\v \fB€T\r\0@ )\0)€8)€8)€8)€8)€8)€8)€8"B€8|! B€x|"Bÿ\0V\r\0\v\v ) !\f@  \v|) | \bX\r\0@ \nBˆ" \tT\r\0  \t}B|@\0BQ\r\v?\0B†"B€€üÿ B€€üÿVBÿÿÿÿ|B€€€€xƒ"\nB\n€B†!\b\vB¨ !@B\0)À¹ "B€T\r\0@@ B€|"\vB€ƒB€R\r\0B¨¹ ! !\f\v \vBˆB|Bƒ!B¨¹ ! !@ B€|! )\0"B€8|! B|"B\0R\r\0\v\v \vB€T\r\0@ )\0)€8)€8)€8)€8)€8)€8)€8"B€8|! B€x|"Bÿ\0V\r\0\v\v \f |"B€€€ T\r  Bÿ\0ƒB8~|) B\0)ð¹ |B\0)ع |B\0)ø¹ B\0)ðº |}º º£D{®Gáz„?DffffffÖ?DÍÌÌÌÌÌä?  \nBˆV  \bVdE\r\v \0B|®€€€\0\v \0B|$€€€€\0\vÇ~#€€€€\0BÀ\0}"$€€€€\0@@@@@@ \0B|")\0"B\tV\r\0B †B¨ƒB\0R\r\v B.T\r\v@B\0)» "BƒP\r\0B\0(  AG\r\0 B{Q\r\0 B|B\0)¸¹ T\r\0 B\x007\b B\x007\0B\0(ˆº AG\r B º 70 Bº 7( B¨ 7  7  B?|7 B|  €€€\0\v \0BƒP\r@ \0B|"BV\r\0 §\0\0\0\0\0\v PE\rB!\0\f\v#€€€\0Bɇ€€€€€€€\0|B×\0›€€€\0\0\v )\b!\0\vB\0 \x007»  BÀ\0|$€€€€\0\v\0\vý~#€€€€\0BÀ\0}"$€€€€\0@@B\0)˜» "BƒP\r\0B\0(  AG\r\0 B{Q\r\0 B|B\0)¸¹ T\r\0 B\x007\b B\x007\0B\0(ˆº AG\r B º 70 Bº 7( B¨ 7  7  B?|7 B|  €€€\0\v@ \0BƒP\r\0@ \0B|"BV\r\0 §\0\0\0\0\0\v \0B|!B!\0 P\r\0 )\b!\0\vB\0 \x007˜»  BÀ\0|$€€€€\0\v\0\vº~#€€€€\0BÀ\0}"$€€€€\0@@ \0B†#€€€\0Bȇ€€€€€€\0|)\0B\t|)\0|B|")\0"\0BƒP\r\0B\0(  AG\r\0 \0B{Q\r\0 \0B|B\0)¸¹ T\r\0 B\x007\b B\x007\0B\0(ˆº AG\r B º 70 Bº 7( B¨ 7  7  B?|7 B| \0 €€€\0\v@ BƒP\r\0@ B|"\0BV\r\0 \0§\0\0\0\0\0\v B|!\0B! \0P\r\0 \0)\b!\v  7\0#€€€\0B°‰€€€€€€\0|" )\0B|7\0 BÀ\0|$€€€€\0\v\0\v\f\0B\0 \x007€» \v\n\0 \0遀€\0\vÃ~~@@@@ -\0\0E\r\0@ \0)\0\0! \0)\0\b!@  Z\r ,\0\0! \0 B|"7\0\0 ! A\0H\r\0\vB\0!A\0!@  Z\r -\0\0!\b \0 B|"7\0\0 \bAÿ\0q!\t@ A?G\r\0 \tAjAþ\0I\r\v \t­ ­† „! ! Aj"\t! \bÀAL\r\0\v B\0B\0B \t­† \bAÀ\0I \tA?K„"B€€€€\b|B€€€€Z\r   §A\0Ё€€\0  -\0\0Aj":\0\0 Aÿq\r\0\v\v\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\v\0\v[~ \0)\0\0! \0)\0\b!@@  Z\r ,\0\0! \0 B|"7\0\0 ! A\0H\r\0\v\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\v´~ \0)\0\0! \0)\0\b!B\0!A\0!@@@  Z\r -\0\0! \0 B|"7\0\0 Aÿ\0q!@ A?G\r\0 AjAþ\0I\r\v ­ ­† „! ! Aj"! ÀA\0H\r\0\v B\0B\0B ­† AÀ\0I A?K„\v\0\v#€€€\0B·–€€€€€€€\0|B·€€€\0\0\vs \0§"AÀ\0q!@@ \0B‡"\0B\0R\r\0 E\r\v@@ \0BR\r\0 Aÿq\r\v  A€r:\0\0 B|! \0§"AÀ\0q! \0B‡"\0B\0R\r\0 \r\0\v\v  Aÿ\0q:\0\0\v%\0@B\0(  \r\0B\0A6  B\0B\x007€º \v\0\vå~~#€€€€\0B€}"$€€€€\0@@@#€€€\0B †€€€€€€\0|)\0BR\r\0A\0‚€€€\0!@ \0BƒP\r\0@ \0B|"BV\r\0 §\0\0\0\0\0\v \0B|!B!\0 P\r\0 )\b!\0\v@ BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B|!B! P\r\0 )\b!\v‡€€€\0"B\0Q\r\0 B\x007 B\x007 B\x007 B\x007\b B\x007\0  B†BX|B(€€€€\0 ($! ( ! )! )!\b )\b! )\0!\t B\x007 B\x007 B\x007 B\x007\b B\x007\0‡€€€\0"\nB\0Q\r\0@ \nBÿÿÿÿÿÿ?ƒ"\v‡€€€\0"\fX\r\0 \v \f}ˆ€€€\0BQ\r\v \nB†BX| B(€€€\0 A}jAK\r\0 ­†€€€\0  6\0B\0 B€€€\0  7\0 ”€€€\0!\n ”€€€\0!@ \nBƒP\r\0@ \nB|"\vBV\r\0 \v§\0\0\0\0\0\v \nB|!\vB!\n \vP\r\0 \v)\b!\n\v@ BƒP\r\0@ B|"\vBV\r\0 \v§\0\0\0\0\0\v B|!\vB! \vP\r\0 \v)\b!\v \n  \0 Ÿ€€€\0E\r Bˆ€€€\0B\0A\x006  B‚\b•€€€\0"B|B\x007\0 B|Bø?7\0 B\t| 7\0 B|"\0B7\0 B!|B\x007\0€€€\0!Ž€€€\0!\nA\0‚€€€\0! A\0:\0@ B\x0078 B\x0070 B\x007(  \b7p  7h B\x007`  \x007X  \b7P  7H  7x  7  \n7  7 B\x007\0 B³€€€\0#€€€\0!A\0‚€€€\0! B †€€€€€€\0|" B€ü\n\0\0 A\0:\0   \t7˜   }7  7ˆ B\x007€ B€|$€€€€\0\v\0\v#€€€\0Bˆ–€€€€€€€\0|B›€€€\0\0\v#€€€\0B”‚€€€€€€€\0|B#›€€€\0\0\v“~#€€€€\0Bð\0}"$€€€€\0@#€€€\0Bˆ…€€€€€€\0|)\0BR\r\0B\0(  \r\0„€€€\0!€€€\0!Ž€€€\0!A\0‚€€€\0! A\0:\0P B\x007H B\x007@ B\x0078  B†"7h  7`  7X  70  7(  7 B\x007\b B\b| \0˜€€€\0#€€€\0Bˆ…€€€€€€\0|" B\b|Bè\0ü\n\0\0 A\0:\0  7ˆ  7€ B\x007x B\x007h Bð\0|$€€€€\0\v\0\v\f\0B\0A\x006  \v\n\0 \0ñ€€\0\vq~@@@@ \0B\0 B\0 B\t|)\0B|)\0" \0B\t|)\0B|)\0"  T"€€€\0­Bÿƒ§\0\vB\vB!\0\f\vB!\0 \r\0BB\0  T\v \0\v­~~~@ \0B\t|)\0"B|)\0"P"\r\0@ B\t|)\0"B|)\0"P"E\r\0 \0\v@@@@@  |"\bB\tT\r\0 \bBÿÿÿÿÿÿÿÿ?V\rB•€€€\0"\tB| \b7\0 \tB\t| \t7\0 \tB|B%7\0 \0BƒP\r \0B|"BV\r §\v \bB|BˆB|•€€€\0"\tB| \b7\0 \tB\t| \t7\0 \tB|B7\0 \tB|!@ \r\0  B| ü\n\0\0\v \r  | B| ü\n\0\0\f\v#€€€\0B…‡€€€€€€€\0|B›€€€\0\0\v@ \0B|"\0PE\r\0B!\0\f\v \0)\b!\0\v \tB| \x007\0@ BƒP\r\0@ B|"\0BV\r\0 \0§\0\0\0\0\0\v@ B|"PE\r\0B!\f\v )\b!\v \tB!| 7\0\v \t–€€€\0!\v \vš~B•€€€\0"B)|"B\x007\0 B|B7\0 B\t| 7\0 B|B7\0 B!|B\x007\0@ \0 ¬€€€\0"\0BƒP\r\0@ \0B|"BV\r\0 §\0\0\0\0\0\v \0B|!B!\0 P\r\0 )\b!\0\v B| \x007\0 –€€€\0\v5\0 \0B\t|)\0"\0B)|)\0P \0B!|)\0Bˆ \0B|)\0B\t|)\0B|)\0Zq­\v3~#€€€€\0B}"$€€€€\0 B| \0«€€€\0! B|$€€€€\0 \vi~B\0!@ \0B|"\0)\0BQ\r\0B\0!@ \0)\b"\0B|)\0݁€€\0 |! \0B!|)\0B|"\0)\0BR\r\0\v\v \0)\b"\0B| \0B|)\0‚€€\0 |\vÛ\b~#€€€€\0B }"$€€€€\0@@ \0B\t|)\0B|")\0BQ\r\0 )"B€€€€€€€€À\0Z\r B|BˆB|•€€€\0"B| 7\0 B\t|" 7\0 B|B7\0 \0 B|ú€€€\0 –€€€\0 )\0B|!\v B\b| B| )ý€€\0 )! )"\0B|BˆB|•€€€\0"B| \x007\0 B\t| 7\0 B|"B7\0@ \0P\r\0 \0Bƒ!@@ \0BZ\r\0B\0!\0\f\v \0B|ƒ!B\0!\0@  \0|"B|  \0|"\b-\0\0:\0\0 B| \bB|-\0\0:\0\0 B| \bB|-\0\0:\0\0 B| \bB|-\0\0:\0\0  \0B|"\0R\r\0\v P\r  \0|!\v \0 |B|!\0@ \0 -\0\0:\0\0 \0B|!\0 B|! B|"B\0R\r\0\v\v –€€€\0! B |$€€€€\0 \v#€€€\0B ‡€€€€€€€\0|B›€€€\0\0\v~@ B€€€€€€€€À\0Z\r\0 B|BˆB|•€€€\0"B| 7\0 B\t| 7\0 B|B7\0@ P\r\0 B| \0 ü\n\0\0\v –€€€\0\v#€€€\0B ‡€€€€€€€\0|B›€€€\0\0\v³~~~#€€€€\0B}"$€€€€\0 A\x006\f@@ \0A€I\r\0 \0A?qA€r! \0Av!@ \0A€O\r\0  :\0\r  AÀr:\0\fB!\f\v \0A\fv! A?qA€r!@ \0AÿÿK\r\0  :\0  :\0\r  Aàr:\0\fB!\f\v  :\0  :\0  A?qA€r:\0\r  \0AvApr:\0\fB!\f\v  \0:\0\fB!\vB•€€€\0"B| 7\0 B\t| 7\0 B|B7\0@ P\r\0 B| B\f| ü\n\0\0\v –€€€\0! B|$€€€€\0 \vÛ\b~#€€€€\0B }"$€€€€\0@@ \0B\t|)\0B|")\0BQ\r\0 )"B€€€€€€€€À\0Z\r B|BˆB|•€€€\0"B| 7\0 B\t|" 7\0 B|B7\0 \0 B|ú€€€\0 –€€€\0 )\0B|!\v B\b| B| )þ€€\0 )! )"\0B|BˆB|•€€€\0"B| \x007\0 B\t| 7\0 B|"B7\0@ \0P\r\0 \0Bƒ!@@ \0BZ\r\0B\0!\0\f\v \0B|ƒ!B\0!\0@  \0|"B|  \0|"\b-\0\0:\0\0 B| \bB|-\0\0:\0\0 B| \bB|-\0\0:\0\0 B| \bB|-\0\0:\0\0  \0B|"\0R\r\0\v P\r  \0|!\v \0 |B|!\0@ \0 -\0\0:\0\0 \0B|!\0 B|! B|"B\0R\r\0\v\v –€€€\0! B |$€€€€\0 \v#€€€\0B ‡€€€€€€€\0|B›€€€\0\0\v9~#€€€€\0B }"$€€€€\0 B\b| \0 ‰‚€€\0 )\b! B |$€€€€\0 P\vU~#€€€€\0B }"$€€€€\0 B\b| \0 ‰‚€€\0@ )\bP\r\0#€€€\0Büš€€€€€€€\0|B"›€€€\0\0\v B |$€€€€\0\v^~B•€€€\0"\0B|B7\0 \0B\t| \x007\0 \0B|B7\0 \0B|#€€€\0Bž›€€€€€€€\0|"/\0\0;\0\0 \0B| -\0:\0\0 \0–€€€\0\v‰~@@ \0BƒP\r\0 \0B|"BV\r §\0\0\0\v#€€€\0B ˆ€€€€€€€\0|BÔ\0›€€€\0\0\v@ \0B|)\0B-Q\r\0#€€€\0BðŒ€€€€€€€\0|B1›€€€\0\0\v \0B|)\0"\0B{R \0BR \0§qq\v÷~#€€€€\0BÀ\0}"$€€€€\0@@ \0)\0"BƒP\r\0B\0(  AG\r\0 B{Q\r\0 B|B\0)¸¹ T\r\0 B\x007\b B\x007\0B\0(ˆº AG\r B º 70 Bº 7( B¨ 7  7  B?|7 B|  €€€\0\v@ BƒP\r\0@ B|"BV\r\0 §\0\0\0\0\0\v B|!B! P\r\0 )\b!\v \0 7\0 BÀ\0|$€€€€\0\v\0\v\0\vƒ\r~|~|~~|~#€€€€\0B°}"$€€€€\0 A\0B ü\v\0 B |A\0B ü\v\0 BÀ|A\0B ü\v\0 Bà|A\0BÐ\0ü\v\0#€€€\0Bà›€€€€€€€\0| B†|)\0" B|"|!\b A}jÁAmÁ"\t §k!\nB\0!@@@ \nA\0N\r\0D\0\0\0\0\0\0\0\0!\v\f\v#€€€\0B€œ€€€€€€€\0| \n­B†|(\0·!\v\v  B†| \v9\0@  \bZ\r\0 \nAj!\n   \bT­|" \bX\r\v\vB\0!\f@ \f |!\bD\0\0\0\0\0\0\0\0!\vB\0!@@ \v \0 B†|+\0  \b }B†|+\0¢ !\v  Z\r   T­|" X\r\0\v\v BÀ| \fB†| \v9\0@ \f Z\r\0 \f \f T­|"\f X\r\v\v B† Bà||B||!\rA/  \tAhlj"kAq!A0 kAq! Açj­B4†¿! \t­! Ahj"A\0J! Aj! !\f@@ BÀ| \f"B†|+\0!\v@ P"\r\0A\0!\n !@ Bà| \n¬B†| \v \vD\0\0\0\0\0\0p>¢ü·"D\0\0\0\0\0\0pÁ¢ ü6\0 BÀ| B†|Bx|+\0  !\v BQ"\r \nAj!\nB B| "B\0R\r\0\v\v@@ \v ¢"D\0\0\0\0\0\0À?¢"½"B4ˆ§Aÿq"\nA²\bK\r\0@ \nAþK\r\0D\0\0\0\0\0\0\0\0!\v BU\r D\0\0\0\0\0\0ð¿ D\0\0\0\0\0\0\0\0a!\v\f\v !\vBÿÿÿÿÿÿÿ \nAxj­"\bˆ"\f ƒP\r B?‡ \fƒ |B€€€€€€€x \b‡ƒ¿!\v\f\v !\v\v  \vD\0\0\0\0\0\0 À¢ "\v \vü"\t·¡!\v@@@@@@@@ \r\0@ \r\0 Bà| B†|B||(\0Au!\f\vA!A\0! \vD\0\0\0\0\0\0à?fE\r\f\v Bà| B†|B||" (\0"\n \n u"\n tk"6\0  u! \n \tj!\t\v AH\r\vA!\n \r BR\rA\0!B\0!\b\f\v !\f\v Bƒ! Bƒ!A\0!B\0!\b Bà|!@ (\0!\n@@@@ E\r\0Aÿÿÿ!\f\v \nE\rA€€€\b!\v   \nk6\0A\0!\f\vA!\v B|"\f(\0!\n@@@@ \r\0Aÿÿÿ!\f\v \nE\rA€€€\b!\v \f  \nk6\0A!A\0!\n\f\vA\0!A!\n\v B\b|!  \bB|"\bR\r\0\v P\r\v Bà| \bB†|"(\0!@@ E\r\0Aÿÿÿ!\n\f\vA!\n E\rA€€€\b!\n\v  \n k6\0A\0!\n\v@ E\r\0Aÿÿÿ!@@ \0\vAÿÿÿ!\v Bà| B†|B||" (\0 q6\0\v \tAj!\tA! AG\r\0D\0\0\0\0\0\0ð? \v¡"\v \v ¡ \n!\v\v@ \vD\0\0\0\0\0\0\0\0b\r\0@  B|"V\r\0A\0!\n@@ Bà| B†|(\0 \nr!\n  Z\r    T­}"X\r\0\v\v \nE\r\0 Bà| B†|B||!@ B|! Ahj! (\0!\n B||! \nE\r\0\f\v\v \r! !\f@ \fB|!\f (\0!\n B||! \nE\r\0\v  \fZ\r B|!@   |"\bB†|#€€€\0B€œ€€€€€€€\0|  |B†|(\0·9\0B\0!D\0\0\0\0\0\0\0\0!\v@@ \v \0 B†|+\0  \b }B†|+\0¢ !\v  Z\r   T­|" X\r\0\v\v BÀ| B†| \v9\0   \fT­|!  \fZ\r !  \fX\r\0\f\v\v\v@@ \vAÿ k­B4†¿¢"\vD\0\0\0\0\0\0pAf\r\0 \v!\f\v Bà| B†| \v \vD\0\0\0\0\0\0p>¢ü·"D\0\0\0\0\0\0pÁ¢ ü6\0 B|! !\v Bà| B†| ü6\0\v@@@@ AÿJ\r\0 A‚xH\rD\0\0\0\0\0\0ð?!\v\f\v AþK\r Axj!D\0\0\0\0\0\0à!\v\f\v@ A¸pM\r\0 AÉj!D\0\0\0\0\0\0`!\v\f\v Aðh AðhKA’j!D\0\0\0\0\0\0\0\0!\v\f\v Aý AýIA‚pj!D\0\0\0\0\0\0ð!\v\v \v Aÿj­B4†¿¢!\v@@ §AqE\r\0 !\0\f\v BÀ| B†| \v Bà| B†|(\0·¢9\0 \vD\0\0\0\0\0\0p>¢!\v B|!\0\v@ P"\r\0 \0B† Bà||B||! \0B† BÀ||Bx|!@  \vD\0\0\0\0\0\0p>¢" (\0·¢9\0 B\b| \v B|(\0·¢9\0 Bx|! Bp|! D\0\0\0\0\0\0p>¢!\v \0BR!\n \0B~|!\0 \n\r\0\v\v B|! BÀ| B†|!\f !@@@@   }"\r  \rT"PE\r\0D\0\0\0\0\0\0\0\0!\vB\0!\f\v B|"Bƒ! B~ƒ!D\0\0\0\0\0\0\0\0!\vB\0!B\0!@ \f |"\0B\b|+\0! \v#€€€\0Bȱ€€€€€€€\0| |"\b+\0 \0+\0¢   \bB\b|+\0¢ !\v B|!  B|"R\r\0\v P\r\v \v#€€€\0Bȱ€€€€€€€\0| B†|+\0 BÀ|  |B†|+\0¢ !\v\v B | \rB†| \v9\0 \fBx|!\f P!\n B|! \nE\r\0\v@@ P\r\0@@ Bƒ"\0PE\r\0D\0\0\0\0\0\0\0\0!\v !\f\v B | B†|!D\0\0\0\0\0\0\0\0!\v !@ B|! \v +\0 !\v Bx|! \0B|"\0B\0R\r\0\v\v@ BT\r\0 B† B ||Bh|!@ \v B|+\0  B|+\0  B\b|+\0  +\0 !\v B`|! BR!\n B||! \n\r\0\v\v  \vš \v 9\0 +  \v¡!\v@ \r\0B!@ \v B | B†|+\0 !\v  Z\r   T­|" X\r\0\v\v  \vš \v 9\b\f\v@@ Bƒ"\0PE\r\0D\0\0\0\0\0\0\0\0!\v !\f\v B | B†|!D\0\0\0\0\0\0\0\0!\v !@ B|! \v +\0 !\v Bx|! \0B|"\0B\0R\r\0\v\v@ BT\r\0 B† B ||Bh|!@ \v B|+\0  B|+\0  B\b|+\0  +\0 !\v B`|! BR!\n B||! \n\r\0\v\v  \vš \v 9\0\v B°|$€€€€\0 \tAq\vº~|#€€€€\0B }"$€€€€\0@@ \0½B ˆ§Aÿÿÿÿq"AüäÿI\r\0@@@@@ Aÿÿ¿ÿK\r\0 B\b| \0쁀€\0 +! +\b" ¢"\0 \0¢! 5Bƒ§\v \0 \0¡!\0\f\vD\0\0\0\0\0\0ð? \0D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡ \0 \0 \0 \0DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢ \0 \0DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢  ¢¡  š!\0\f\v   \0¢"DIUUUUUÅ?¢ \0 D\0\0\0\0\0\0à?¢  \0 ¢ \0D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ \0 \0D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢¡¢ ¡ ¡!\0\f\vD\0\0\0\0\0\0ð? \0D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡ \0 \0 \0 \0DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢ \0 \0DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢  ¢¡  !\0\f\v   \0¢"DIUUUUUÅ?¢ \0 D\0\0\0\0\0\0à?¢  \0 ¢ \0D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ \0 \0D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢¡¢ ¡ ¡š!\0\f\v@ A€€ÀòI\r\0 \0 \0 \0 \0¢"¢    ¢¢ D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢  D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢DIUUUUUÅ¿ ¢ !\0\f\v@ A€€À\0I\r\0  \0D\0\0\0\0\0\0pG 9\b +\b\f\v  \0D\0\0\0\0\0\0p8¢9\b +\b\v B |$€€€€\0 \0\vÃ~|#€€€€\0B }"$€€€€\0@@@@@@@ \0½B ˆ§Aÿÿÿÿq"AüäÿI\r\0 Aÿÿ¿ÿK\r B\b| \0쁀€\0 +! +\b" ¢"\0 \0¢! 5Bƒ§\v@ \0ü\r\0D\0\0\0\0\0\0ð?! AžÁšòI\r\vD\0\0\0\0\0\0ð? \0 \0¢"D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡    DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢" ¢  DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢ \0D\0\0\0\0\0\0\0€¢   !\f\v \0 \0¡!\f\v   \0¢"DIUUUUUÅ?¢ \0 D\0\0\0\0\0\0à?¢  \0 ¢ \0D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ \0 \0D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢¡¢ ¡ ¡!\f\vD\0\0\0\0\0\0ð? \0D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡ \0 \0 \0 \0DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢ \0 \0DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢  ¢¡  !\f\v   \0¢"DIUUUUUÅ?¢ \0 D\0\0\0\0\0\0à?¢  \0 ¢ \0D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ \0 \0D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢¡¢ ¡ ¡š!\f\vD\0\0\0\0\0\0ð? \0D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡ \0 \0 \0 \0DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢ \0 \0DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢  ¢¡  š!\v B |$€€€€\0 \vó~|~#€€€€\0B0}"$€€€€\0@@ \0½"B4ˆ§"ApjApK\r\0@ \0D\0\0\0\0\0\0\0\0b\r\0 \0!\f\v@ B€€€€€€€øÿ\0R\r\0 \0!\f\vD\0\0\0\0\0\0ø! B€€€€€€€øÿ\0V\r \0D\0\0\0\0\0\x000C¢½"B4ˆ§AÿqALj!\v B |B€€€€\f B\v†B€€€€€€€€€„ Aq­ˆ"B ˆ#€€€\0B ³€€€€€€€\0| B-ˆBþƒ|3\0B†"~B ˆ" ~B ˆ}Bÿÿÿÿƒ" ~BˆBþÿÿÿƒ"B€€€€\f   ~BˆBþÿÿÿƒ~B ˆ}Bÿÿÿÿƒ~B†B€€€€`ƒ"B\0 B\0‚€€\0 B| )("B\0 B\0‚€€\0  B\0B€€€€€€€€@ )}B\0‚€€\0 )\bB\tˆ" ~ B*†} |"B?ˆ |Bÿÿÿÿÿÿÿƒ AÿjAv­B4†„"¿B\0B€€€€€€€\b  |B|"P  …B€€€€€€€€€ƒ„¿ !\v B0|$€€€€\0 \v”~|#€€€€\0B0}"$€€€€\0@@@ ½"B ˆ§"Aÿÿÿÿq"AûÔ½€I\r\0@ A¼Œñ€I\r\0@@@ AûÃä‰I\r\0 Aÿÿ¿ÿK\r  BÿÿÿÿÿÿÿƒB€€€€€€€°Á\0„¿"ü·"9\0   ¡D\0\0\0\0\0\0pA¢"ü"·"9\b   ¡D\0\0\0\0\0\0pA¢"9 B\x007( B\x007 B\x007 BB B D\0\0\0\0\0\0\0\0a B| AvAêwjB聀€\0! BW\r \0 6\b \0 + 9 \0 +9\0\f\v@ Av"  DƒÈÉm0_ä?¢D\0\0\0\0\0\x008C D\0\0\0\0\0\x008à"D\0\0@Tû!ù¿¢ " D1cba´Ð=¢"¡"\b½B4ˆ§AÿqkAH\r\0@   D\0\0`a´Ð=¢"\b¡"\t Dsp.Š£;¢  \t¡ \b¡¡"¡"\b½B4ˆ§AÿqkA2N\r\0 \t!\f\v \t D\0\0\0.Š£;¢"\b¡" DÁI %šƒ{9¢ \t ¡ \b¡¡"¡!\b\v \0 \b9\0 \0 ü6\b \0  \b¡ ¡9\f\v \0A\x006\b \0  ¡"9 \0 9\0\f\v \0A\0 k6\b \0 + š9 \0 +š9\0\f\v@ A½û׀I\r\0@ AûÃä€G\r\0@  DƒÈÉm0_ä?¢D\0\0\0\0\0\x008C D\0\0\0\0\0\x008à"D\0\0@Tû!ù¿¢ " D1cba´Ð=¢"¡"\b½B€€€€€€€øÿ\0ƒBÿÿÿÿÿÿÿ‡?V\r\0@  D\0\0`a´Ð=¢"\b¡"\t Dsp.Š£;¢  \t¡ \b¡¡"¡"\b½B€€€€€€€€ÿ\0ƒBÿÿÿÿÿÿÿÿ¢DñkÒÅA½»¾ ¢D,Þ%¯jV? ¢D“½¾lÁf¿ ¢D>UUUUUÅ? ¢¡"¢D\0\0\0\0\0\0\0@ ¡£ ¡ D\0\0\0\0\0\0ð? ! E\r\0@@@@ AÿJ\r\0 A‚xN\r D\0\0\0\0\0\0`¢! A¸pM\r AÉj!\f\v D\0\0\0\0\0\0à¢! AþK\r Axj!\f\v D\0\0\0\0\0\0`¢! Aðh AðhKA’j!\f\v D\0\0\0\0\0\0à¢! Aý AýIA‚pj!\v  Aÿj­B4†¿¢!\v \vå}~~@@ \0¼"A€€€„xjAÿÿÿ‡xK\r\0@ \0C\0\0\0\0\\\r\0 \0\v@ A€€€üG\r\0 \0\vC\0\0À! A€€€üK\r \0C\0\0\0K”¼A€€€¤j!\vB€€€€\fB€€€€\f#€€€\0B ³€€€€€€€\0| AvAÿ\0q­B†|3\0B†" AtA€ÿÿÿq A\btA€€€€xr A€€€q"­~B ˆ" ~B ˆ}Bÿÿÿÿƒ" ~BˆBþÿÿÿƒ  ~BˆBþÿÿÿƒ"~B ˆ}Bÿÿÿÿƒ ~B&ˆ§" l Atk j"Av jAÿÿÿq AvA€€€þjA€€€üqr"¾A€€€A\0  jAj"  sA€€€€xqr¾’!\v \vÄ\n|~~~|~|D\0\0\0\0\0\0ð?!@ ½"B ˆ§"Aÿÿÿÿq" §"rE\r\0 \0½"§!\b@ B ˆ"\tB€€ÀÿR\r\0 \bE\r\v@@@@@@ \t§"\nAÿÿÿÿq"\vA€€ÀÿK\r\0@@ \vA€€ÀÿG\r\0 \b\r A€€ÀÿK\r\f\v A€ÀÿO\r\v@ E\r\0 A€€ÀÿF\r\v B\0S\r\f\v \0  \vA!\f Aÿÿÿ™K\r A€€ÀÿI\r\0 Av!\r@ Aÿÿÿ‰K\r\0A\0!\f \rA\0!\f A“\b \rk"v"\r t G\rA \rAqk!\f\f\vA\0!\f A³\b \rk"\rv" \rt G\rA Aqk!\f\f\vA\0!\f\v \r\v@@@@@@ A€€ÀÿF\r\0 A€€ÀÿG\r \vA€€À€|j \brE\r \vAÿÿ¿ÿK\rD\0\0\0\0\0\0\0\0 š BU\v BW\r \0\v A€€€ÿF\r A€€€€F\r\f\vD\0\0\0\0\0\0ð? \0£\v \0 \0¢\v B\0S\r \0끀€\0\v D\0\0\0\0\0\0\0\0 BU\v \0™!@@ \b\r\0@ \nAJ\r\0 \nA€€€€xF\r \nA€€Àÿ{F\r \nA€€@G\r\f\v \nE\r \nA€€ÀÿF\r \nA€€ÀÿF\r\vD\0\0\0\0\0\0ð?!@ B\0Y\r\0@@ \f\0\v \0 \0¡" £\vD\0\0\0\0\0\0ð¿!\v@@ A€€€K\r\0 D\0\0\0\0\0\0@C¢½" ½ \vA€€À\0I"\b! B ˆ§ \v \b"Aÿÿ?q"A€€Àÿr!AÌwAx \b Auj!A\0!\b@ A±I\r\0@ Aúì.O\r\0A!\b\f\v A€€€ÿr! Aj!\v#€€€\0"B¨²€€€€€€€\0| \b­B†"\t|+\0D\0\0\0\0\0\0ð? B˜²€€€€€€€\0| \t|+\0"\0 ­B † Bÿÿÿÿƒ„¿" £"  \0¡" \bAt AvjA€€ €j­B †¿"  ¢"½B€€€€pƒ¿"¢¡ \0 ¡   ¢¡¢"\0  ¢"D\0\0\0\0\0\0\b@  \0   ¢  ¢"\0 \0¢ \0 \0 \0 \0 \0DïNEJ(~Ê?¢DeÛɓJ†Í? ¢DA©`tÑ? ¢DM&QUUÕ? ¢Dÿ«oÛ¶mÛ? ¢D33333ã? ¢ " ½B€€€€pƒ¿"\0¢   \0D\0\0\0\0\0\0\bÀ  ¡¡¢ "   \0¢" ½B€€€€pƒ¿"\0 ¡¡Dý:Ü\tÇî?¢ \0Dõ[à/>¾¢  " B¸²€€€€€€€\0| \t|+\0"  \0D\0\0\0à\tÇî?¢"   ·" ½B€€€€pƒ¿"\0 ¡ ¡ ¡¡!\f\v@@@ A€€ÀŸK\r\0 \vAÿÿ¿ÿI\r \vA€€ÀÿK\r D\0\0\0\0\0\0ð¿ "\0DDß]ø\v®T>¢ \0 \0¢D\0\0\0\0\0\0à? \0 \0D\0\0\0\0\0\0п¢DUUUUUUÕ? ¢¡¢Dþ‚+eG÷¿¢ "  \0D\0\0\0`G÷?¢" ½B€€€€pƒ¿"\0 ¡¡!\f\v@ \vAÿÿ¿ÿK\r\0D\0\0\0\0\0\0ðD\0\0\0\0\0\0\0\0 B\0S\vD\0\0\0\0\0\0ðD\0\0\0\0\0\0\0\0 A\0J\v@ A\0J\r\0 DYóøÂn¥¢DYóøÂn¥¢\v Dœu\0ˆ<ä7~¢Dœu\0ˆ<ä7~¢\v@ B\0S\r\0 DYóøÂn¥¢DYóøÂn¥¢\v Dœu\0ˆ<ä7~¢Dœu\0ˆ<ä7~¢\v \0 B€€€€pƒ¿"¢"  ¡ \0¢  ¢ " "\0½"§!\b@@@ B ˆ§"Aÿÿ¿„J\r\0 A€øÿÿqAÿ—ÄM\r A€è¼ûj \br\r  \0 ¡eE\r DYóøÂn¥¢DYóøÂn¥¢\v@ A€€Àû{j \brE\r\0 Dœu\0ˆ<ä7~¢Dœu\0ˆ<ä7~¢\v Dþ‚+eG—<  \0 ¡dE\r Dœu\0ˆ<ä7~¢Dœu\0ˆ<ä7~¢\v DYóøÂn¥¢DYóøÂn¥¢\vA\0!\b@ AÿÿÿÿqA€€€ÿM\r\0A\0A€€À\0 AvAjv j"Aÿÿ?qA€€À\0rA Av"kv"\bk \b B\0S!\b  A€€@ Aju q­B †¿¡" ½!\v@@ \bAt B€€€€pƒ¿"\0D\0\0\0\0C.æ?¢"  \0 ¡¡Dï9úþB.æ?¢ \0D9l¨\fa\\ ¾¢ " "    ¢"\0 \0 \0 \0 \0DФ¾ri7f>¢DñkÒÅA½»¾ ¢D,Þ%¯jV? ¢D“½¾lÁf¿ ¢D>UUUUUÅ? ¢¡"\0¢ \0D\0\0\0\0\0\0\0À £   ¡¡"\0  \0¢ ¡¡D\0\0\0\0\0\0ð? "½"B ˆ§j"A€€À\0H\r\0 ­B † Bÿÿÿÿƒ„¿!\f\v  \bð€€\0!\v  ¢!\f\vD\0\0\0\0\0\0ð? £  B\0S! BU\r\0@ \f \vA€€À€|jr\r\0  ¡" £\v š  \fAF\v \v®\0@@@@ AÿJ\r\0 A‚xN\r \0D\0\0\0\0\0\0`¢!\0 A¸pM\r AÉj!\f\v \0D\0\0\0\0\0\0à¢!\0 AþK\r Axj!\f\v \0D\0\0\0\0\0\0`¢!\0 Aðh AðhKA’j!\f\v \0D\0\0\0\0\0\0à¢!\0 Aý AýIA‚pj!\v \0 Aÿj­B4†¿¢\v ~|#€€€€\0B }"$€€€€\0@@ \0½"B ˆ§Aÿÿÿÿq"AüäÿI\r\0@ Aÿÿ¿ÿK\r\0 B\b| \0쁀€\0 +\b + (Aqò€€\0!\0\f\v \0 \0¡!\0\f\v@@@ A€€€òI\r\0 B€€€€€ÿÿÿÿ\0ƒB€€€€ð„åò?V"\r \0!\f\v  \0D\0\0\0\0\0\0p8¢ \0D\0\0\0\0\0\0pG  A€€À\0I9\b +\b\f\vD-DTû!é? \0™¡D\\3&¦¢Dé§ð2¸? ¢Dh÷&0? ¢DƒàþÈÛW? ¢D“„néã&‚? ¢DþA³º¡«? ¢ ¢D\0\0\0\0\0\0\0\0 ¢D\0\0\0\0\0\0\0\0  " !\0 E\r\0D\0\0\0\0\0\0ð?   \0 \0¢ \0D\0\0\0\0\0\0ð? £¡ "\0 \0 ¡"\0š \0 B\0S!\0\v B |$€€€€\0 \0\v®~|@ \0½"B€€€€€ÿÿÿÿ\0ƒB€€€€ð„åò?V"E\r\0D-DTû!é? \0™¡D\\3&¦< š  B\0S¡ !\0D\0\0\0\0\0\0\0\0!\v \0 \0 \0 \0¢"¢"DcUUUUUÕ?¢      ¢"    DsS`ÛËuó¾¢D¦’7 ˆ~? ¢DeòòØDC? ¢D(VÉ"mm? ¢D7Ö„ôd–? ¢DzþÁ?       DÔz¿tp*û>¢Dé§ð2¸? ¢Dh÷&0? ¢DƒàþÈÛW? ¢D“„néã&‚? ¢DþA³º¡«? ¢ ¢ ¢  " !@ \r\0@ E\r\0D\0\0\0\0\0\0ð¿ £" ½B€€€€pƒ¿" ½B€€€€pƒ¿"¢D\0\0\0\0\0\0ð?    \0¡¡ ¢ ¢  !\v \vD\0\0\0\0\0\0ð? At¸¡" \0   ¢   £¡ "  ¡"š  B\0S\vÛ~|@@ \0½"B ˆ§Aÿÿÿÿq"Aÿÿ¿ÿK\r\0@ A€€€ÿI\r\0@ BW\r\0D\0\0\0\0\0\0ð? \0¡D\0\0\0\0\0\0à?¢"\0 \0 \0 \0 \0 \0D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢ \0 \0 \0 \0D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £ \0끀€\0"¢ \0 ½B€€€€pƒ¿" ¢¡   £   "\0 \0 \vD-DTû!ù? \0D\0\0\0\0\0\0ð? D\0\0\0\0\0\0à?¢"\0끀€\0"  \0 \0 \0 \0 \0 \0D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢ \0 \0 \0 \0D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £¢D\\3&¦‘¼  ¡"\0 \0 !\f\vD-DTû!ù?! A€€ãI\rD\\3&¦‘< \0 \0 \0¢"     D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢    D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £¢¡ \0¡D-DTû!ù? \v@ A€€À€|j §rE\r\0D\0\0\0\0\0\0\0\0 \0 \0¡£\vD\0\0\0\0\0\0\0\0D-DTû!\t@ BU\v \vØ~|@ \0½"B ˆ§Aÿÿÿÿq"Aÿÿ¿ÿK\r\0@@@@ A€€€ÿI\r\0D\0\0\0\0\0\0ð? \0™¡D\0\0\0\0\0\0à?¢"\0 \0 \0 \0 \0 \0D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢ \0 \0 \0 \0D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £! \0끀€\0! A²æ¼ÿK\rD-DTû!é? ½B€€€€pƒ¿"  ¡D\\3&¦‘< \0  ¢¡   £"\0 \0 ¡    ¢¡ D-DTû!é? !\0\f\v A€€@jA€€€òI\r \0 \0 \0 \0¢"     D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢    D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £¢ \vD-DTû!ù?   ¢ "\0 \0 D\\3&¦‘¼ ¡!\0\v \0š \0 B\0S!\0\v \0\v@ A€€À€|j §rE\r\0D\0\0\0\0\0\0\0\0 \0 \0¡£\v \0D-DTû!ù?¢D\0\0\0\0\0\0p8 \v¾~~|#€€€€\0B}!@@@@@@ \0½"B ˆ§Aÿÿÿÿq"Aÿÿ¿ K\r\0 A€€ðþI\r \0™!\0 A€€ÌÿI\r A€€Ž€I\rD\0\0\0\0\0\0ð¿ \0£!\0B!\f\v \0 \0b\rD-DTû!ù? \0¦\vBÿÿÿÿ! A€€€òO\r A€€À\0O\r  \0¶8\f *\f \0\v \0D\0\0\0\0\0\0ø¿  \0D\0\0\0\0\0\0ø?¢D\0\0\0\0\0\0ð? £!\0B!\f\v@ A€€˜ÿI\r\0 \0D\0\0\0\0\0\0ð¿  \0D\0\0\0\0\0\0ð? £!\0B!\f\v \0 \0 D\0\0\0\0\0\0ð¿  \0D\0\0\0\0\0\0\0@ £!\0B\0!\v \0 \0¢" ¢"    D/lj,D´¢¿¢DšýÞR-Þ­¿ ¢Dmšt¯ò°³¿ ¢Dq#þÆq¼¿ ¢DÄ똙™™É¿ ¢!      DÚ"ã:­?¢Dë\rv$K{©? ¢DQ=Рf\r±? ¢Dn LÅÍE·? ¢Dÿƒ\0’$IÂ? ¢D\rUUUUUÕ? ¢!@ A€€ðþI\r\0#€€€\0"BȲ€€€€€€€\0| B†"|+\0 \0   ¢ B貀€€€€€€\0| |+\0¡ \0¡¡"\0š \0 B\0S\v \0 \0   ¢¡!\0\v \0\v©\b\t~#€€€€\0B}"$€€€€\0@@@@@@@ \0½"B€€€€€€€øÿ\0ƒB€€€€€€€øÿ\0Q\r\0B\0 ½"}B€€€€€€€øÿ\0ƒP\r\0 Bÿÿÿÿÿÿÿÿÿ\0ƒ" Bÿÿÿÿÿÿÿÿÿ\0ƒ"T\r@ B\0 B€€€€€€€x|"  V"B€€€€€€€øÿ\0ƒ}" B\0 B€€€€€€€x|"  V"\bB€€€€€€€øÿ\0ƒ"\t}"B†"\nT\r\0  \tQ\r  ‚!\v B€€€€€€€€€ƒ!\t@ B4ˆ"§"\v \bB4ˆ"§"\fk"\rAK\r\0@  Q\r\0 \rAq!@ \f \vkA|K\r\0 \rAq!\r@ B\0   T}B†"B\0   T}B†"B\0   T}B†"B\0   T}B†! \rA|j"\r\r\0\v E\r\vA\0 k!\r@ B\0   T}B†! \rAj"\r\r\0\v\v B\0   T}!\f\v \rAÀ\0O\r B€| B\0 \rš‚€€\0  )ˆ"X\r  )€  B\0ž‚€€\0 )\0!\f\v \0 ¢"\0 \0£!\0\f\v B€€€€€€€€À\0Z\r\0  \nZ\r\0@  B|"ƒP\r\0  y§A~j"\v­"\n†"B€€€€€€€€ X\r B€€€€€€€€À\0Z\r  B†"\bZ\r Bð\0|B\0B€€€€€€€€€ \b}" \bB\0Ÿ‚€€\0 Bà\0| )p" )x" \bB\0‚€€\0 BÐ\0|  B| B†B\0‚€€\0  )h} )`"B\0R­}!B\0 }! )X! )P!@ \v \rj"\rA?I\r\0@ BÀ\0| B\0  ‚€€\0 Bˆ )H|! )@! \rAAj"\rA>K\r\0\v\v B0|   \rš‚€€\0 B |    \rA?s­ˆB\0‚€€\0 B| )( )8Bÿÿÿÿÿÿÿÿÿ\0ƒ| ) " )0| T­|B|B\0 \bB\0‚€€\0 )"B\0   V} \nˆ!\f\v \rAÀ\0I\r\f\v\0\v  \r­† ƒ!\v P\r\0 A4 y§A?sk"\r \f \r \fI"\r­† \t| \f \rk­B4†|¿!\0\f\v \t¿!\0\v B|$€€€€\0 \0\vÁ\b~@@@@@@@ \0¼"A€€€üqA€€€üF\r\0A\0 ¼"kA€€€üqE\r\0 Aÿÿÿÿq" Aÿÿÿÿq"I\r@ A\0 A€€€|j"  K"A€€€üqk" A\0 A€€€|j"  K"A€€€üq"\bk"At"\tI\r\0  \bF\r  p!\v A€€€€xq!\b Av Av"k"A O\r  ­ ­†"\nB ˆ§M\r \n ­‚§!\f\v \0 ”"\0 \0•\v A€€€€O\r\0  \tO\r\0@  Aj"qE\r\0  gA~j"t"A€€€€M\r A€€€€O\r  At"O\rA€€€€x k­B †"\v ­"\f€"\rB€€€€| At­~!\n \v \r \f~}!\v@  j"AI\r\0@ \nB ˆ \v~ \nB†B€€€€ðÿÿÿÿ\0ƒ|!\n Aaj"AK\r\0\v\v \v \nB ˆ§ Asv­~ \n ­†Bÿÿÿÿÿÿÿÿÿ\0ƒ|B ˆB| \f~B ˆ§"A\0   Kk v!\f\v A I\r\f\v\0\v  t q!\v E\r\0 A gAsk"   I"t \bj  kAtj¾\v \b¾!\0\v \0\v«\r}}}~}C\0\0€?!@@@@ \0¼"A€€€üF\r\0 ¼"Aÿÿÿÿq"E\r\0@@@ \0‹"¼"A€€€üK\r\0 A€€€üK\r\0 A\0N\rA!\b AÿÿÿÛK\r A€€€üI\rA\0!\b A– Avk"\tv"\n \tt G\rA \nAqk!\b\f\v \0 ’\vA\0!\b\v@@@@ A€€€üF\r\0 A€€€üG\r@@ A€€€üJ A€€€üHk­Bÿƒ§\0\vC\0\0\0\0 Œ AJ\v C\0\0\0\0 AJ\v AL\r \0\v@@@@ A€€€øF\r\0@ A€€€€G\r\0 \0 \0”\v@ E\r\0 AÿÿÿÿqA€€€üG\r\vC\0\0€? •  A\0H! A\0N\r\f\t\v@ AJ\r\0@ \r\0 !\f\n\v AÿÿÿÿqA€€€üG\r !\f\t\v \0€\0\v A\0H\r\0C\0\0€?!\v\f\vC\0\0€?!\v@@ \b\0\v \0 \0“"\0 \0•\vC\0\0€¿!\v\v@ A€€€èK\r\0 C\0\0€K”¼  A€€€I""\bAÿÿÿq"A€€€ür!Aé~A  \bAuj!\bA\0!@ Aòˆó\0I\r\0@ A×çöO\r\0A!\f\v A€€€ør! \bAj!\b\v#€€€\0"\fB³€€€€€€€\0| ­B†"\r|*\0C\0\0€? \fBˆ³€€€€€€€\0| \r|*\0"\0 ¾"’•"  \0“" AvA€àÿÿq AtjA€€€‚j¾"  ”"¼A€`q¾"”“ \0 “ ’ ”“”"\0  ”"C\0\0@@’ \0  ’”  ”"\0 \0” \0 \0 \0 \0 \0CBñS>”CU2l>’”C£‹>’”C«ªª>’”C·mÛ>’”Cš™?’”’"’¼A€`q¾"\0”   \0C\0\0@À’ ““”’"   \0”"’¼A€`q¾"\0 ““CO8v?” \0CÆ#ö¸”’’" \fB˜³€€€€€€€\0| \r|*\0"  \0C\0@v?”"’’ \b²"’¼A€`q¾"\0 “ “ ““!\f\v@ AøÿÿûI\r\0@ A‡€€üK\r\0 C\0\0€¿’"\0Cp¥ì6” \0 \0”C\0\0\0? \0 \0C\0\0€¾”C«ªª>’”“”C;ª¸¿”’"  \0C\0ª¸?”"’¼A€`q¾"\0 ““!\f\v@ A\0J\r\0 \vC`B¢\r”C`B¢\r”\v \vCÊòIq”CÊòIq”\v@ A\0H\r\0 \vC`B¢\r”C`B¢\r”\v \vCÊòIq”CÊòIq”\vC\0\0€? \0•\v@@@ \0 A€`q¾"”"  “ \0”  ”’"’"\0¼"A€€€˜J\r\0 A€€€˜F\r \0¼Aÿÿÿÿq"A€€Ø˜K\r A€€Ø˜|G\r  \0 “_E\r \vC`B¢\r”C`B¢\r”\v \vCÊòIq”CÊòIq”\v C<ª83’ \0 “^\r \0¼Aÿÿÿÿq!\vA\0!@ A€€€øM\r\0A\0A€€€ AvAjv j"AÿÿÿqA€€€rA Av"kv"k  A\0H!  A€€€| Aju q¾“"’¼!\v@@ At A€€~q¾"\0C\0r1?”" \0CŒ¾¿5”  \0 ““Cr1?”’"’"\0 \0 \0 \0 \0”"    CL»13”Cêݵ’”CU³Š8’”Ca\v6»’”C«ª*>’”“"” C\0\0\0À’•  \0 ““" \0 ”’““C\0\0€?’"\0¼j"A€€€H\r\0 ¾!\0\f\v \0 ù€€\0!\0\v \v \0”!\v \v \vCÊòIq”CÊòIq”\v \vC`B¢\r”C`B¢\r”\v@ \b A€€€„|jr\r\0  “"\0 \0•\v Œ  \bAF\v§\0@@@@ Aÿ\0J\r\0 A‚N\r \0C\0\0€\f”!\0 A›~M\r Aæ\0j!\f\v \0C\0\0\0”!\0 AþK\r Aj!\f\v \0C\0\0€\f”!\0 A¶} A¶}KAÌj!\f\v \0C\0\0\0”!\0 Aý AýIA‚~j!\v \0 AtA€€€üjA€€€üq¾”\v¶~|@  a \0 \0aq\r\0 \0  \v@ ½"B ˆ§"A€€À€|j §"r\r\0 \0õ€€\0\v AvAq" \0½"B?ˆ§r!@@@@ B ˆ§Aÿÿÿÿq" §r\r\0D-DTû!\tÀ!\b@@ \0\0\0\v \0\vD-DTû!\t@\v Aÿÿÿÿq" rE\r@@ A€€ÀÿG\r\0 ­! A€€ÀÿG\r#€€€\0B µ€€€€€€€\0| B†|+\0\v A€€ÀÿF\r A€€€ j I\r@@ E\r\0D\0\0\0\0\0\0\0\0!\b A€€€ j I\r\v \0 £™õ€€\0!\b\v@@@ \0\v \bD\\3&¦¡¼ D-DTû!\tÀ \v \bš\vD-DTû!\t@ \bD\\3&¦¡¼ ¡\v#€€€\0BÀµ€€€€€€€\0| B†|+\0!\b\v \b\vD-DTû!ù? \0¦\vD-DTû!ù? \0¦\v„~#€€€€\0B }"$€€€€\0@@  |" T\r\0 B\b| \0)\0" \0)\b  B†"  V"B\b B\bV"ü€€\0 )\bBR\r\v\0\v )! \0 7\0 \0 7\b B |$€€€€\0\v•\0@@ BU\r\0B!B\0!B\b!\f\v@@@@ P\r\0  B ¶€€€\0!\f\v@ PE\r\0B!\f\v灀€\0 Bµ€€€\0!\v B\0R\r\0B! \0B7\b\f\v \0 7\bB\0!\vB!\v \0 | 7\0 \0 7\0\v¡ ~~#€€€€\0B0}"$€€€€\0B\0!@ B\0S\r\0@@@@ PE\r\0B!\f\v灀€\0B\0! Bµ€€€\0"B\0Q\r ! ! !\b@ BT\r\0 Bðÿÿÿÿÿÿÿÿ\0ƒ!B\0!\t !@  \t|!@  \t|"\bB|,\0\0"\nAsA€qAv \b,\0\0"\vAsA€qAvj \bB|,\0\0"\fAsA€qAvj \bB|,\0\0"\rAsA€qAvj \bB|,\0\0"AsA€qAvj \bB|,\0\0"AsA€qAvj \bB|,\0\0"AsA€qAvj \bB|,\0\0"AsA€qAvj \bB\b|,\0\0"AsA€qAvj \bB\t|,\0\0"AsA€qAvj \bB\n|,\0\0"AsA€qAvj \bB\v|,\0\0"AsA€qAvj \bB\f|,\0\0"AsA€qAvj \bB\r|,\0\0"AsA€qAvj \bB|,\0\0"AsA€qAvj \bB|,\0\0"AsA€qAvjAÿqAF\r\0 \t!\f\v B|A A\0 A¿jAÿqAI r:\0\0 B|A A\0 A¿jAÿqAI r:\0\0 B\r|A A\0 A¿jAÿqAI r:\0\0 B\f|A A\0 A¿jAÿqAI r:\0\0 B\v|A A\0 A¿jAÿqAI r:\0\0 B\n|A A\0 A¿jAÿqAI r:\0\0 B\t|A A\0 A¿jAÿqAI r:\0\0 B\b|A A\0 A¿jAÿqAI r:\0\0 B|A A\0 A¿jAÿqAI r:\0\0 B|A A\0 A¿jAÿqAI r:\0\0 B|A A\0 A¿jAÿqAI r:\0\0 B|A A\0 A¿jAÿqAI r:\0\0 B|A A\0 \rA¿jAÿqAI \rr:\0\0 B|A A\0 \fA¿jAÿqAI \fr:\0\0 B|A A\0 \nA¿jAÿqAI \nr:\0\0 A A\0 \vA¿jAÿqAI \vr:\0\0 \tB|!\t Bp|"BV\r\0\v  \tQ\r  \t|!\b  \t|!\v  |!B\0!\t@ \b \t|",\0\0"\nA\0H\r  \t|A A\0 \nA¿jAÿqAI \nr:\0\0  \tB|"\tR\r\0\v !\v  7  7  7\b\f\v  7  7\b   \t|"7  \tQ\r\0   \t}|!  |!  \t|" |!  } \t|! B\0!\t@@@@ ,\0\0"\nAJ\r\0 -\0A?q!\f \nAq!\v@@ \nA_K\r\0 \vAt \fr!\n B|!\f\v \fAt -\0A?qr!\f@ \nApO\r\0 \f \vA\ftr!\n B|!\f\v \fAt -\0A?qr \vAtA€€ð\0qr!\n B|!\v \t } |!@ \nA£F\r\0 !\t !\f\v \t|!@  \t|"P\r\0@  T\r\0 P\r\f\v  \t|,\0\0A@H\r\v  \t|!A\0!\v@@Aƒ!\r  Q\r@ B|"\b,\0\0"\nAJ\r\0@@ B~|"\b-\0\0"\fÀ"A@H\r\0 \fAq!\f\f\v@@ B}|"\b-\0\0"\fÀ"A@H\r\0 \fAq!\f\f\v B||"\b-\0\0AqAt A?qr!\f\v \fAt A?qr!\f\v \fAt \nA?qr"\nA€€Ä\0F\r\v \b!@@ \vAq\r\0@ \nA€I\r\0 \nA§M\r \n’‚€€\0E\rA€€Ä\0!\fA\0!\v\f\vA€€Ä\0!\fA\0!\v@ \nAÝ\0J\r\0 \nA\'F\r \nA.F\r \nA:F\r\f\v \nA¢j\0\0\vA!\v \n!\f\v \fA€€Ä\0F\r\0\v@ \fA_qA¿jAI\r\0 \fAªI\r \f“‚€€\0E\r\v@ B|"P\r\0@  T\r\0 B|PE\r\b\f\v  \t|B|,\0\0A@H\r\v  \t|B|!A\0!\v@A‚!\r  Q\r@@ ,\0\0"\nAL\r\0 B|! \nAÿq!\n\f\v -\0A?q!\f \nAq!@ \nA_K\r\0 At \fr!\n B|!\f\v \fAt -\0A?qr!\f@ \nApO\r\0 \f A\ftr!\n B|!\f\v \fAt -\0A?qr AtA€€ð\0qr"\nA€€Ä\0F\r B|!\v@@ \vAq\r\0@ \nA€I\r\0 \nA§M\r \n’‚€€\0E\rA€€Ä\0!\fA\0!\v\f\vA€€Ä\0!\fA\0!\v@ \nAÝ\0J\r\0 \nA\'F\r \nA.F\r \nA:F\r\f\v \nA¢j\0\0\vA!\v \n!\f\v \fA€€Ä\0F\r\0\v@ \fAßÿÿ\0qA¿jAI\r\0 \fAªI\r \f“‚€€\0E\r\vAƒ!\r\v !@ )\b }BV\r\0 B\b| Bû€€\0 )!\v )" |" \r:\0 AÏ:\0\0  B|"7 !\t !\f\v \nAÿq!\n \t } B|"|!\t !\v B$| \n‚€€\0@@ (("\n\r\0@@ ($"\nA€I"\vE\r\0B!\f\v@ \nA€O\r\0B!\f\vBB \nA€€I!\v !\b@  )\b }X\r\0 B\b|  û€€\0 )! )!\b\v  \b|!\b@@ \v\r\0 \nA?qA€r!\v \nAv!\f \nA€O\r \b \v:\0 \b \fAÀr:\0\0\f\v \b \n:\0\0\f\v \nA\fv!\r \fA?qA€r!\f@ \nAÿÿK\r\0 \b \v:\0 \b \f:\0 \b \rAàr:\0\0\f\v \b \v:\0 \b \f:\0 \b \rA?qA€r:\0 \b \nAvApr:\0\0\f\v ($!\v@@@@@ (,"\f\r\0@@ \vA€I"\fE\r\0B!\f\v@ \vA€O\r\0B!\f\vBB \vA€€I!\v !\b@  )\b }X\r\0 B\b|  û€€\0 )! )!\b\v  \b|!\b \f\r \vA?qA€r!\f \vAv!\r@ \vA€O\r\0 \b \f:\0 \b \rAÀr:\0\0\f\v \vA\fv! \rA?qA€r!\r@ \vAÿÿK\r\0 \b \f:\0 \b \r:\0 \b Aàr:\0\0\f\v \b \f:\0 \b \r:\0 \b A?qA€r:\0 \b \vAvApr:\0\0\f\v@@ \vA€I"\rE\r\0B!\f\v@ \vA€O\r\0B!\f\vBB \vA€€I!\v !\b@  )\b }X\r\0 B\b|  û€€\0 )! )!\b\v  \b|!\b \r\r \vA?qA€r!\r \vAv!@ \vA€O\r\0 \b \r:\0 \b AÀr:\0\0\f\v \vA\fv! A?qA€r!@ \vAÿÿK\r\0 \b \r:\0 \b :\0 \b Aàr:\0\0\f\v \b \r:\0 \b :\0 \b A?qA€r:\0 \b \vAvApr:\0\0\f\v \b \v:\0\0\f\v \b \v:\0\0\v   |"7@@ \nA€I"\vE\r\0B!\b\f\v@ \nA€O\r\0B!\b\f\vBB \nA€€I!\b\v !@ \b )\b }X\r\0 B\b|  \bû€€\0 )!\v )" |!@@ \v\r\0 \nA?qA€r!\v \nAv!\r@ \nA€O\r\0  \v:\0  \rAÀr:\0\0\f\v \nA\fv! \rA?qA€r!\r@ \nAÿÿK\r\0  \v:\0  \r:\0  Aàr:\0\0\f\v  \v:\0  \r:\0  A?qA€r:\0  \nAvApr:\0\0\f\v  \n:\0\0\v  \b |"7@@ \fA€I"\nE\r\0B!\b\f\v@ \fA€O\r\0B!\b\f\vBB \fA€€I!\b\v !@ \b )\b }X\r\0 B\b|  \bû€€\0 )! )!\v  |!@@ \n\r\0 \fA?qA€r!\n \fAv!\v@ \fA€O\r\0  \n:\0  \vAÀr:\0\0\f\v \fA\fv!\r \vA?qA€r!\v@ \fAÿÿK\r\0  \n:\0  \v:\0  \rAàr:\0\0\f\v  \n:\0  \v:\0  \rA?qA€r:\0  \fAvApr:\0\0\f\v  \f:\0\0\v  \b |"7\f\v   |"7@@ \nA€I"\vE\r\0B!\b\f\v@ \nA€O\r\0B!\b\f\vBB \nA€€I!\b\v !@ \b )\b }X\r\0 B\b|  \bû€€\0 )!\v )" |!@@ \v\r\0 \nA?qA€r!\v \nAv!\f@ \nA€O\r\0  \v:\0  \fAÀr:\0\0\f\v \nA\fv!\r \fA?qA€r!\f@ \nAÿÿK\r\0  \v:\0  \f:\0  \rAàr:\0\0\f\v  \v:\0  \f:\0  \rA?qA€r:\0  \nAvApr:\0\0\f\v  \n:\0\0\v  \b |"7\f\v   |"7\v  R\r\0\v\v \0 )7 \0 )7\b \0 )\b7\0 B0|$€€€€\0\v\0\vá~#€€€€\0B0}"$€€€€\0B\0!@ B\0S\r\0@@@@ PE\r\0B!\f\v灀€\0B\0! Bµ€€€\0"B\0Q\r@@ BZ\r\0 ! ! !\b\f\v Bðÿÿÿÿÿÿÿÿ\0ƒ!B\0!\t !@  \t|!@  \t|"\bB|,\0\0"\nAsA€qAv \b,\0\0"\vAsA€qAvj \bB|,\0\0"\fAsA€qAvj \bB|,\0\0"\rAsA€qAvj \bB|,\0\0"AsA€qAvj \bB|,\0\0"AsA€qAvj \bB|,\0\0"AsA€qAvj \bB|,\0\0"AsA€qAvj \bB\b|,\0\0"AsA€qAvj \bB\t|,\0\0"AsA€qAvj \bB\n|,\0\0"AsA€qAvj \bB\v|,\0\0"AsA€qAvj \bB\f|,\0\0"AsA€qAvj \bB\r|,\0\0"AsA€qAvj \bB|,\0\0"AsA€qAvj \bB|,\0\0"AsA€qAvjAÿqAF\r\0 \t!\f\v B|A A\0 AŸjAÿqAI s:\0\0 B|A A\0 AŸjAÿqAI s:\0\0 B\r|A A\0 AŸjAÿqAI s:\0\0 B\f|A A\0 AŸjAÿqAI s:\0\0 B\v|A A\0 AŸjAÿqAI s:\0\0 B\n|A A\0 AŸjAÿqAI s:\0\0 B\t|A A\0 AŸjAÿqAI s:\0\0 B\b|A A\0 AŸjAÿqAI s:\0\0 B|A A\0 AŸjAÿqAI s:\0\0 B|A A\0 AŸjAÿqAI s:\0\0 B|A A\0 AŸjAÿqAI s:\0\0 B|A A\0 AŸjAÿqAI s:\0\0 B|A A\0 \rAŸjAÿqAI \rs:\0\0 B|A A\0 \fAŸjAÿqAI \fs:\0\0 B|A A\0 \nAŸjAÿqAI \ns:\0\0 A A\0 \vAŸjAÿqAI \vs:\0\0 \tB|!\t Bp|"BV\r\0\v  \tQ\r  \t|!\b  \t|!\v  |!\t@ \b,\0\0"\nA\0H\r A A\0 \nAŸjAÿqAI \ns:\0\0 B|! \bB|!\b B|! B|"B\0R\r\0\v \t!\v  7  7  7\b\f\v  7  7  7\b P\r\0 \b |!\t@@@ \b,\0\0"\nAL\r\0 \bB|!\b \nAÿq!\n\f\v \b-\0A?q!\v \nAq!\f@ \nA_K\r\0 \fAt \vr!\n \bB|!\b\f\v \vAt \b-\0A?qr!\v@ \nApO\r\0 \v \fA\ftr!\n \bB|!\b\f\v \vAt \b-\0A?qr \fAtA€€ð\0qr!\n \bB|!\b\v B$| \n‘‚€€\0@@ (("\n\r\0@@ ($"\nA€I"\vE\r\0B!\f\v@ \nA€O\r\0B!\f\vBB \nA€€I!\v !@  )\b }X\r\0 B\b|  û€€\0 )! )!\v  |!@@ \v\r\0 \nA?qA€r!\v \nAv!\f@ \nA€O\r\0  \v:\0  \fAÀr:\0\0\f\v \nA\fv!\r \fA?qA€r!\f@ \nAÿÿK\r\0  \v:\0  \f:\0  \rAàr:\0\0\f\v  \v:\0  \f:\0  \rA?qA€r:\0  \nAvApr:\0\0\f\v  \n:\0\0\v  |!\f\v ($!\v@ (,"\fE\r\0@@ \vA€I"\rE\r\0B!\f\v@ \vA€O\r\0B!\f\vBB \vA€€I!\v !@  )\b }X\r\0 B\b|  û€€\0 )! )!\v  |!@@ \r\r\0 \vA?qA€r!\r \vAv!@ \vA€O\r\0  \r:\0  AÀr:\0\0\f\v \vA\fv! A?qA€r!@ \vAÿÿK\r\0  \r:\0  :\0  Aàr:\0\0\f\v  \r:\0  :\0  A?qA€r:\0  \vAvApr:\0\0\f\v  \v:\0\0\v   |"7@@ \nA€I"\vE\r\0B!\f\v@ \nA€O\r\0B!\f\vBB \nA€€I!\v !@  )\b }X\r\0 B\b|  û€€\0 )!\v )" |!@@ \v\r\0 \nA?qA€r!\v \nAv!\r@ \nA€O\r\0  \v:\0  \rAÀr:\0\0\f\v \nA\fv! \rA?qA€r!\r@ \nAÿÿK\r\0  \v:\0  \r:\0  Aàr:\0\0\f\v  \v:\0  \r:\0  A?qA€r:\0  \nAvApr:\0\0\f\v  \n:\0\0\v   |"7@@ \fA€I"\nE\r\0B!\f\v@ \fA€O\r\0B!\f\vBB \fA€€I!\v !@  )\b }X\r\0 B\b|  û€€\0 )! )!\v  |!@ \n\r\0 \fA?qA€r!\n \fAv!\v@ \fA€O\r\0  \n:\0  \vAÀr:\0\0  |!\f\v \fA\fv!\r \vA?qA€r!\v@ \fAÿÿK\r\0  \n:\0  \v:\0  \rAàr:\0\0  |!\f\v  \n:\0  \v:\0  \rA?qA€r:\0  \fAvApr:\0\0  |!\f\v  \f:\0\0  |!\f\v@@ \vA€I"\fE\r\0B!\f\v@ \vA€O\r\0B!\f\vBB \vA€€I!\v !@  )\b }X\r\0 B\b|  û€€\0 )! )!\v  |!@@ \f\r\0 \vA?qA€r!\f \vAv!\r@ \vA€O\r\0  \f:\0  \rAÀr:\0\0\f\v \vA\fv! \rA?qA€r!\r@ \vAÿÿK\r\0  \f:\0  \r:\0  Aàr:\0\0\f\v  \f:\0  \r:\0  A?qA€r:\0  \vAvApr:\0\0\f\v  \v:\0\0\v   |"7@@ \nA€I"\vE\r\0B!\f\v@ \nA€O\r\0B!\f\vBB \nA€€I!\v !@  )\b }X\r\0 B\b|  û€€\0 )!\v )" |!@ \v\r\0 \nA?qA€r!\v \nAv!\f@ \nA€O\r\0  \v:\0  \fAÀr:\0\0  |!\f\v \nA\fv!\r \fA?qA€r!\f@ \nAÿÿK\r\0  \v:\0  \f:\0  \rAàr:\0\0  |!\f\v  \v:\0  \f:\0  \rA?qA€r:\0  \nAvApr:\0\0  |!\f\v  \n:\0\0  |!\v  7 \b \tR\r\0\v\v \0 )7 \0 )7\b \0 )\b7\0 B0|$€€€€\0\v\0\v\f~~~~#€€€€\0B}"$€€€€\0@@@ )\0"B\0Q\r\0 B€€€€€€€€ Z\r\0 B\0Q\r\0A  / y"§k"\bkÁAÐ\0lA°§jAÎm"\tAÐ\0K\r\0 #€€€\0B°ù€€€€€€€\0| \t­B†|")\0B\0  †B\0‚€€\0 /\n!\n )\0B?ˆ )\b|"A@ \b /\bjk­"ˆ§!\t@B †"\vB|"\f ƒ"PE\r\0 B\nV\r#€€€\0BÀƒ€€€€€€\0| B†|B||(\0 \tK\r\v@@@ \tAÎ\0I\r\0 \tAÀ„=I\r@ \tA€Â×/I\r\0A\bA\t \tA€”ëÜI"\b!\rA€Â×/A€”ëÜ \b!\b\f\vAA \tA€­âI"\b!\rAÀ„=A€­â \b!\b\f\v@ \tAä\0I\r\0AA \tAèI"\b!\rAä\0Aè \b!\b\f\vA\nA \tA\tK"\r!\b\f\vAA \tA I"\b!\rAÎ\0A  \b!\b\v B?ƒ!@@@@@@@@@@@ \r \nk"AjÁ"\n Á"L\r\0 Bÿÿƒ! \n k­Ã  \n¬ ­Ã} T"B|! \r­!B\0!@ \t \bn!  Q\r\f \t  \blk!\t  | A0j:\0\0  Q\r  Q\r B|! \bA\nI! \bA\nn!\b E\r\0\f\f\v\v B\n€!@@@@ \b­ †" \vX\r\0  \v} \vX\r@  } X\r\0  B†}B †Z\r\v  \vV\r\f\r\v \0B\x007\0\f\v \0B\x007\0\f\v \0 \n; \0B\x007\b \0 7\0\f\r\v   \v}"} V\r\tB\0!@ AjÁ"\b L\r\0 A1:\0\0B!\v \0 \b; \0 7\b \0 7\0\f\f\v \b­ †" \vX\r  \v} \vX\r@  \t­ † |"} X\r\0  B†}B †Z\r\v  \vX\r   \v}"} V\r  |!B\0! !@@@  Q\r B|! B|" |"-\0\0A9F\r\0\v  -\0\0Aj:\0\0 B|"P\r B|A0 ü\v\0\f\v A1:\0\0@ B|"P\r\0 B|A0 ü\v\0\v AjÁ"\n L\r\0  Z\r\0 A0:\0\0 B|!\v  V\r\t\f\v B|! B|B?ƒ!B!@@ " ˆP\r\0 \0B\x007\0\f\f\v  Z\r\t  | B\n~" ˆ§A0j:\0\0 B\n~!  \fƒ!  B|"R\r\0\v \v X\r \v } X\r@ \v } X\r\0 \v B†} B~Z\r\v  X\r \v  }"} V\r  |!B\0! !@@@  Q\r B|! B|" |"-\0\0A9F\r\0\v  -\0\0Aj:\0\0 B|"P\r B|A0 ü\v\0\f\v A1:\0\0@ B|"P\r\0 B|A0 ü\v\0\v AjÁ"\n L\r\0  Z\r\0 A0:\0\0 B|!\v  V\r\b\v \0 \n; \0 7\b \0 7\0\f\t\v \0B\x007\0\f\b\v \0B\x007\0\f\v \0B\x007\0\f\v \0B\x007\0\f\v \0B\x007\0\f\v \0B\x007\0\f\v \0B\x007\0\f\v\0\v \0B\x007\0\v B|$€€€€\0\v„)\t~~~~\t~#€€€€\0BÐ}"$€€€€\0@@ )\0"B\0Q\r\0 )\b"B\0Q\r\0 )"\bB\0Q\r\0 \b B…V\r\0  T\r\0 .!\t  >\b  B ˆ">\f BB P7¨ B|A\0B˜ü\v\0 B°|B„A\0Bœü\v\0 A6° B7Ð \t¬" B|y}BšÁè~B€¡Í ´|B ˆ"§Á!\n@@ \tA\0H\r\0 B\b| ‹‚€€\0\f\v B°|A\0 \tk­Ã‹‚€€\0\v@@ \nAJ\r\0 B\b|B\0 }Bÿÿƒ–‚€€\0\f\v B°| Bÿÿƒ–‚€€\0\v B¨| B°|B¨ü\n\0\0 !\v@ B\nT\r\0 B¨|Bx|!\f !\v@ )È"B)Z\r@ P\r\0@@ B†"B||"PE\r\0 B¨| |!B\0!\f\v BˆB|"Bƒ!\r \f |! Bþÿÿÿÿÿÿÿÿ\0ƒ!\bB\0!@ B|" B † 5\0„"B€”ëÜ€">\0   B€”ëÜ~}B † 5\0„"B€”ëÜ€">\0  B€”ëÜ~}! Bx|! \bB~|"\bB\0R\r\0\v \rP\r B\b|!\v B||" B † 5\0„B€”ëÜ€>\0\v \vBw|"\vB\tV\r\0\v\v#€€€\0BÀƒ€€€€€€\0| \vB†|(\0At"\tE\r\0 )È"B)Z\r\0@@ PE\r\0B\0!\f\v \t­!@@@ B†"B||"\bPE\r\0 B¨| |!B\0!\b\f\v \bBˆB|"\bBƒ!\r \bBþÿÿÿÿÿÿÿÿ\0ƒ!  B¨||Bx|!B\0!\b@ B|"\v \bB † \v5\0„"\b €"\v>\0  \b \v ~}B † 5\0„"\b €"\v>\0 \b \v ~}!\b Bx|! B~|"B\0R\r\0\v \rP\r B\b|!\v B||" \bB † 5\0„ €>\0\v )È!\v )¨"\r  \r V"\fB(V\r\0@@ \fPE\r\0B\0!\f\f\v@@@ \fBR\r\0B\0!\bA\0!\f\v \fBƒ! \fB>ƒ!\vB\0!\bA\0! B¨|! B\b|!@  (\0" (\0j"\t Aqj"6\0 B|" B|(\0" (\0j" \t I  \tIrj"\t6\0  I \t Ir! B\b|! B\b|! \v \bB|"\bR\r\0\v P\r\v B¨| \bB†"|" B\b| |(\0" (\0j"\t j"6\0 \t I  \tIr!\v E\r\0 \fB(Q\r B¨| \fB†|A6\0 \fB|!\f\v  \f7È )Ð" \f  \fV"B)Z\r\0 B†! B¨|B||!@@@ P\r  |(\0"\t B||" B°||(\0"F\r\0\v \t O\r\0@ \rPE\r\0B\0!\r B\x007¨\f\v \rB†"\fB||"\bBˆB|"Bƒ!\v B\b|!B\0!@@ \bB\fT\r\0 Büÿÿÿÿÿÿÿÿ\0ƒ!\b B\b|!B\0!@  5\0B\n~ |">\0 B|" 5\0B\n~ B ˆ|">\0 B\b|" 5\0B\n~ B ˆ|">\0 B\f|" 5\0B\n~ B ˆ|">\0 B ˆ! B|! \bB||"\bB\0R\r\0\v \vP\r\v \vB†!\b@  5\0B\n~ |">\0 B|! B ˆ! \bB||"\bB\0R\r\0\v\v@ P\r\0 \rB(Q\r B\b| \f| §6\0 \rB|!\r\v  \r7¨\f\v \nAj!\n\vB\0!A!@@ \nÁ ÁH"\r\0 \n k­Ã  \n­Ã ­Ã} T"\vP\r\0 BØ| B°|B¨ü\n\0\0 )ø"P\r B(V\r !@ BØ| B†|B||(\0"\tAJ\r\0 B(Q\r BØ| B†| \tAv6\0 B|!\v@ BQ\r\0 !@ §Aq\r\0 BØ| B|"B†|"\b \b(\0At BØ| B†|Bx|(\0Avr6\0\v BQ\r\0 B† BØ||Bt|!@ B\b|"\b \b(\0At B|"\b(\0"\tAvr6\0 \b \tAt (\0Avr6\0 Bx|! B~|"BV\r\0\v\v  7ø  (ØAt6Ø B€| B°|B¨ü\n\0\0 ) "P\r B(V\r !@ B€| B†|B||(\0Av"\tE\r\0 B(Q\r B€| B†| \t6\0 B|!\v@ BQ\r\0 !@ §Aq\r\0 B€| B|"B†|"\b \b(\0At B€| B†|Bx|(\0Avr6\0\v BQ\r\0 B† B€||Bt|!@ B\b|"\b \b(\0At B|"\b(\0"\tAvr6\0 \b \tAt (\0Avr6\0 Bx|! B~|"BV\r\0\v\v  7   (€At6€ B¨| B°|B¨ü\n\0\0 )È"P\r B(V\r !@ B¨| B†|B||(\0Av"\tE\r\0 B(Q\r B¨| B†| \t6\0 B|!\v@ BQ\r\0 !@ §Aq\r\0 B¨| B|"B†|"\b \b(\0At B¨| B†|Bx|(\0Avr6\0\v BQ\r\0 B† B¨||Bt|!@ B\b|"\b \b(\0At B|"\b(\0"\tAvr6\0 \b \tAt (\0Avr6\0 Bx|! B~|"BV\r\0\v\v  7È  (¨At6¨ B°|B||! BØ|B||! B€|B||! B¨|B||!\fB\0!@ ! \rB)Z\r B|! \rB†!\bB\0!@@@@@@ \b Q\r B\b| |! B|! (\0E\r\0\v  \r  \rV"B†!@@ P\r \f |! B||" B\b||(\0"\t (\0"F\r\0\vA\0! \t I\r\v BR\rB\0!\bA!\f\v \v V\r \v Q\r\b \v }"P\r\b  |A0 ü\v\0\f\b\v Bƒ! B~ƒ!\rB\0!\bA! B\b|! B¨|!@  (\0" (\0Asj"\t Aqj"6\0 B|" (\0" B|(\0Asj" \t I  \tIrj"\t6\0  I \t Ir! B\b|! B\b|! \r \bB|"\bR\r\0\v P\r\v B\b| \bB†"|" (\0" B¨| |(\0Asj"\t j"6\0 \t I  \tIr!\v E\r  7¨A\b! !\r\v  \r  \rV"B†!@@@ P\r  |! B||" B\b||(\0"\t (\0"F\r\0\v \t O\r\0 \r!\f\v@@@ BR\r\0B\0!\bA!\f\v Bƒ! B~ƒ!\rB\0!\bA! B\b|! B€|!@  (\0" (\0Asj"\t Aqj"6\0 B|" (\0" B|(\0Asj" \t I  \tIrj"\t6\0  I \t Ir! B\b|! B\b|! \r \bB|"\bR\r\0\v P\r\v B\b| \bB†"|" (\0" B€| |(\0Asj"\t j"6\0 \t I  \tIr!\v E\r  7¨ Ar!\v    V"B†!@@@ P\r  |! B||" B\b||(\0"\t (\0"F\r\0\v \t O\r\0 !\f\v@@@ BR\r\0B\0!\bA!\f\v Bƒ! B~ƒ!\rB\0!\bA! B\b|! BØ|!@  (\0" (\0Asj"\t Aqj"6\0 B|" (\0" B|(\0Asj" \t I  \tIrj"\t6\0  I \t Ir! B\b|! B\b|! \r \bB|"\bR\r\0\v P\r\v B\b| \bB†"|" (\0" BØ| |(\0Asj"\t j"6\0 \t I  \tIr!\v E\r  7¨ Aj!\v    V"\rB)Z\r \rB†!@@@ P\r  |! B||" B\b||(\0"\t (\0"F\r\0\v \t O\r\0 !\r\f\v@ \rP\r\0@@@ \rBR\r\0B\0!\bA!\f\v \rBƒ! \rB>ƒ!B\0!\bA! B\b|! B°|!@  (\0" (\0Asj"\t Aqj"6\0 B|" (\0" B|(\0Asj" \t I  \tIrj"\t6\0  I \t Ir! B\b|! B\b|!  \bB|"\bR\r\0\v P\r\v B\b| \bB†"|" (\0" B°| |(\0Asj"\t j"6\0 \t I  \tIr!\v E\r\v  \r7¨ Aj!\v  Q\r  | A0j:\0\0@@ \rPE\r\0B\0!\r\f\v \rB†"B||"BˆB|"Bƒ!@@@ B\fZ\r\0B\0! B\b|!\f\v Büÿÿÿÿÿÿÿÿ\0ƒ!\bB\0! B\b|!@  5\0B\n~ |">\0 B|" 5\0B\n~ B ˆ|">\0 B\b|" 5\0B\n~ B ˆ|">\0 B\f|" 5\0B\n~ B ˆ|">\0 B ˆ! B|! \bB||"\bB\0R\r\0\v P\r\v B†!\b@  5\0B\n~ |">\0 B|! B ˆ! \bB||"\bB\0R\r\0\v\v P\r\0 \rB(Q\r B\b| | §6\0 \rB|!\r\v  \r7¨  \vR\r\0\vA\0!\f\vB\0!\v\v@ P\r\0 B†"B||"\bBˆB|"Bƒ!\f B°|!B\0!@@ \bB\fT\r\0 Büÿÿÿÿÿÿÿÿ\0ƒ!\b B°|!B\0!@  5\0B~ |">\0 B|" 5\0B~ B ˆ|">\0 B\b|" 5\0B~ B ˆ|">\0 B\f|" 5\0B~ B ˆ|">\0 B ˆ! B|! \bB||"\bB\0R\r\0\v \fP\r\v \fB†!\b@  5\0B~ |">\0 B|! B ˆ! \bB||"\bB\0R\r\0\v\v@ PE\r\0 !\f\v B(Q\r B°| | §6\0 B|!\v  7Ð  \r  \rV"B)Z\r\0 B†! B\b|B||! B°|B||!\r@@@@ P\r \r |!  |!\b B||! \b(\0"\t (\0"F\r\0\v \t K \t Ik­Bÿƒ§\0\v@ E\r\0B\0!\v\f\v \vB|" Z\r  |-\0\0AqE\r\v \v V\r  \v|!B\0! !@@ \v Q\r B|! B|" \v|"\b-\0\0A9F\r\0\v \b \b-\0\0Aj:\0\0 B|"P\r \bB|A0 ü\v\0\f\vA1!\t@ \r\0 A1:\0\0A0!\t \vB|"P\r\0 B|A0 ü\v\0\v \nAj!\n \r\0 \v Z\r\0  \t:\0\0 \vB|!\v\v \v X\r\v\0\v \0 \n; \0 \v7\b \0 7\0 BÐ|$€€€€\0\vÅ~~~#€€€€\0B }"$€€€€\0@@ \0/"\r\0 \0)\0 \0)\b Œ‚€€\0!\f\v  )7  )7  )\b7\b  )\x007\0@@@ \0)"§"A€€€\bq\r\0 )\b!\f\v \0)\0 )\0 )\b" \0)\b)€€€€\0€€€€\0\r \0 A€€€ÿyqA°€€€r"6B\0! B\x007\b B7\0A\0  §Aÿÿqk"  K!\v@ )"\bP\r\0 )!@@@@@@ 3\0§\0\0\v B\b|)\0!\t\f\v B|/\0"\rB!\t\f\v B|)\0!\t\f\v Aöÿj Aœÿjq A˜ø7j Að±jqsAvAj­!\t\vB  \t|"\t \t T! B|! \bB|"\bB\0R\r\0\v\v@  ­BÿÿƒT\r\0 \0)\0 \0)\b Œ‚€€\0! \0 7\f\v  §k!\nA\0!A\0!\v@@@ AvAq\0\0\v \n!\v\f\v \nAþÿqAv!\v\v Aÿÿÿ\0q! \0)\b! \0)\0!@@ Aÿÿq \vAÿÿqO\r Aj!   ) €€€\0€€€€\0E\r\0\f\v\v   Œ‚€€\0\r\0A\0! \n \vkAÿÿq!\v@@ Aÿÿq"\n \vI! \n \vO\r Aj!   ) €€€\0€€€€\0E\r\0\v\v \0 7\f\vA!\v B |$€€€€\0 \vÉ\v~~~~#€€€€\0B \t}"$€€€€\0 ½"Bÿÿÿÿÿÿÿƒ"B€€€€€€€\b„ B†Bþÿÿÿÿÿÿƒ B4ˆ§Aÿq""\bBƒ!\tA!\n ­!\v@@@@@ P"\fAA \fA B€€€€€€€øÿ\0ƒ"P B€€€€€€€øÿ\0Q\0\vA!\n\f\vA!\n\f\v AÍwj!\r \t§As!\nB!\f\vB€€€€€€€ \bB† \bB€€€€€€€\bQ"\r!\bBB \r! \t§As!\nAËwAÌw \r j!\r\v \vBÿÿƒ!  \r;˜\t  7\t B7ˆ\t  \b7€\t  \n:\0š\t@@@@ \nAÿqAK\r\0#€€€\0!\bBtB \rÁA\0H \r­Ã~"BÀý\0T\r\f\v@@@ \nA~j"\nAÿqE\r\0B!\b#€€€\0"B—Ï€€€€€€€\0|"\v B˜Ï€€€€€€€\0| B\0S"\r \vB \r !B B?ˆ ! \nAÿqAG\r A;€\b Aÿÿq\rB!\b B7\b #€€€\0BŸÏ€€€€€€€\0|7ˆ\b\f\v B7\b A;€\b #€€€\0B™Ï€€€€€€€\0|7ˆ\bB!B\0!B!\b\f\v B7\b A;€\b #€€€\0BœÏ€€€€€€€\0|7ˆ\b\f\v  7 \b A\0;˜\bB!\b B7\b #€€€\0B Ï€€€€€€€\0|7ˆ\b\f\v \bB—Ï€€€€€€€\0|"\v \bB˜Ï€€€€€€€\0| B\0S"\n!\b \vB \n!\v B?ˆ! B€\b| B€\t|  BˆB|"A\0 kA€€~ ÁAJ"\nÿ€€\0 \nÁ!\n@@ )€\bP\r\0  )\b7ð\b  )ˆ\b7è\b  )€\b7à\b\f\v Bà\b| B€\t|   \n€‚€€\0\v \b \v !B  !@ .ð\b"\r \nL\r\0 )è\b"\vB\0Q\r )à\b"\b-\0\0A0M\r \r¬!\t A;€\b@@@@ \rAH\r\0  \b7ˆ\b \v \tX\r A;°\b B7¨\b A;˜\b #€€€\0Bìπ€€€€€€\0|7 \b  \t7\b  \v \t}"\v7À\b  \b \t|7¸\b  \vV\rB!\b\f\v  \b7¸\b A;°\b A\0;˜\b B7\b B\0 \t}"7 \b #€€€\0B Ï€€€€€€€\0|7ˆ\b  \v7À\bB!\b  \vX\r  \v}" X\r  \t|!\f\v A\0;˜\b  \v7\b  \t \v}7 \b@ Aÿÿq\r\0B!\b\f\v B7À\b A;°\b #€€€\0Bìπ€€€€€€\0|7¸\b\f\v  \v}!\v  7Ð\b A\0;È\bB!\b\f\v A;€\b@ Aÿÿq\r\0B!\b B7\b #€€€\0BŸÏ€€€€€€€\0|7ˆ\b\f\v  7 \b A\0;˜\bB!\b B7\b #€€€\0B Ï€€€€€€€\0|7ˆ\b\v  \b7ø\b  7è\b  7à\b  B€\b|7ð\b \0 Bà\b|‚€€\0!\n B \t|$€€€€\0 \n\v\0\v˜\v~~\b~~#€€€€\0B0}"$€€€€\0@@@@@@@ )\0"B\0Q\r\0 )\b"B\0Q\r\0 )"B\0Q\r\0  |"\b T\r\0  T\r\0 BX\r\0 \bB€€€€€€€€ Z\r\0  }" \by"†"\t ˆ R\r\0  †" ˆ R\r\0A  / §k"\nkÁAÐ\0lA°§jAÎm"\vAÐ\0K\r\0 B |#€€€\0B°ù€€€€€€€\0| \v­B†|")\0"B\0 \b †B\0‚€€\0 B| B\0 \tB\0‚€€\0  B\0 B\0‚€€\0BA\0 \n /\bjk"\n­"†"\fB|!\r /\n! \nA?q! )B?‡! )\0B?ˆ! )\b! )!@@@ )(" ) B?ˆ"|"B|" ˆ§"\vAÎ\0I\r\0 \vAÀ„=I\r@ \vA€Â×/I\r\0A\bA\t \vA€”ëÜI"\n!A€Â×/A€”ëÜ \n!\n\f\vAA \vA€­âI"\n!AÀ„=A€­â \n!\n\f\v@ \vAä\0I\r\0AA \vAèI"\n!Aä\0Aè \n!\n\f\vA\nA \vA\tK"!\n\f\vAA \vA I"\n!AÎ\0A  \n!\n\v  \rƒ! ­!  |!  kAj!  } |B|" \rƒ! ­!B\0!@ \v \nn!  Q\r  |"\t A0j":\0\0@@@  \v  \nlk"\v­ †" |"\bV\r\0  R\rB!\b@ ! \b!\t B|" Z\r  |B| B\n~" ˆ§A0j"\n:\0\0 \tB\n~!\b ! B\n~"  \rƒ"X\r\0\v  }" \fT!\v \b  }~" \b|!   \b}"Z\r  \fZ\r\f\v  \b}" \n­ †"T!\n  }"B|! \b B|"\fZ\r  T\r  }  |}!  | }  |" |}B|!\r  | | } } |!B\0!@@ \b |" \fT\r\0  | Z\r\0A\0!\n\f\v \t Aj":\0\0 \r |" T!\n  \fZ\r  |!  }! !\b  T\r\f\0\v\v  |!\r \f }!B\0 }! B\n~ \f}!@@  \f|" T\r\0  |  |Z\r\0A\0!\v\f\v \r \nAj"\n:\0\0  |"\b \fT!\v  Z\r  \f}! ! \b \fT\r\f\0\v\v B|! \nA\nI! \nA\nn!\n E\r\0\v\v\0\v \b!\v@  X\r\0 \n\r\0@  |" T\r\0  }  }T\r\v \0B\x007\0\f\v@@ BT\r\0  B||X\r\v \0B\x007\0\f\v \0 ; \0 B|7\b\f\v !\v@  X\r\0 \v\r\0@  \f|" T\r\0  }  }T\r\v \0B\x007\0\f\v@@ \tB~ V\r\0   \tBX~|X\r\v \0B\x007\0\f\v \0 ; \0 B|7\b\v \0 7\0\v B0|$€€€€\0\vØ2\t~~~\n~~#€€€€\0BÀ\n}"$€€€€\0@ )\0"B\0Q\r\0 )\b"B\0Q\r\0 )"B\0Q\r\0  |"\b T\r\0  T\r\0 BX\r\0 ,\0!\t .!\n  >\0  B ˆ"> BB P7  B\b|A\0B˜ü\v\0  >¨  B ˆ">¬ BB P7È B¨|B\b|A\0B˜ü\v\0  >Ð  B ˆ">Ô BB P7ð BÐ|B\b|A\0B˜ü\v\0 Bø|B„A\0Bœü\v\0 A6ø B7˜ \n¬" \bB|y}BšÁè~B€¡Í ´|B ˆ"§Á!\v@@ \nA\0H\r\0  ‹‚€€\0 B¨| ‹‚€€\0 BÐ| ‹‚€€\0\f\v Bø|A\0 \nk­Ã‹‚€€\0\v@@ \vAJ\r\0 B\0 }Bÿÿƒ"–‚€€\0 B¨| –‚€€\0 BÐ| –‚€€\0\f\v Bø| Bÿÿƒ–‚€€\0\v B˜\t| B¨ü\n\0\0 )ð"\f )¸\n" \f V"\rB(V\r\0@@ \rPE\r\0B\0!\r\f\v@@@ \rBR\r\0B\0!A\0!\f\v \rBƒ! \rB>ƒ!\bB\0!A\0! B˜\t|! BÐ|!@  (\0" (\0j"\n Aqj"6\0 B|" B|(\0" (\0j" \n I  \nIrj"\n6\0  I \n Ir! B\b|! B\b|! \b B|"R\r\0\v P\r\v B˜\t| B†"|" BÐ| |(\0" (\0j"\n j"6\0 \n I  \nIr!\v E\r\0 \rB(Q\r B˜\t| \rB†|A6\0 \rB|!\r\v  \r7¸\n \r )˜" \r V"B)Z\r\0 B†! B˜\t|B||!@@@ PE\r\0A\0!\n\f\v  |! B||" Bø||(\0"\n (\0"F\r\0\v \n K \n Ik!\n\v@@ \n \tH\r\0 ) "\bB)Z\r@@ \bPE\r\0B\0!\b\f\v \bB†"B||"BˆB|"Bƒ!\r !B\0!@@ B\fT\r\0 Büÿÿÿÿÿÿÿÿ\0ƒ! !B\0!@  5\0B\n~ |">\0 B|" 5\0B\n~ B ˆ|">\0 B\b|" 5\0B\n~ B ˆ|">\0 B\f|" 5\0B\n~ B ˆ|">\0 B ˆ! B|! B||"B\0R\r\0\v \rP\r\v \rB†!@  5\0B\n~ |">\0 B|! B ˆ! B||"B\0R\r\0\v\v P\r\0 \bB(Q\r  | §6\0 \bB|!\b\v  \b7  )È"\bB)Z\rB\0!B\0!@ \bP\r\0 \bB†"B||"BˆB|"Bƒ!\r B¨|!B\0!@@ B\fT\r\0 Büÿÿÿÿÿÿÿÿ\0ƒ! B¨|!B\0!@  5\0B\n~ |">\0 B|" 5\0B\n~ B ˆ|">\0 B\b|" 5\0B\n~ B ˆ|">\0 B\f|" 5\0B\n~ B ˆ|">\0 B ˆ! B|! B||"B\0R\r\0\v \rP\r\v \rB†!@  5\0B\n~ |">\0 B|! B ˆ! B||"B\0R\r\0\v\v@ PE\r\0 \b!\f\v \bB(Q\r B¨| | §6\0 \bB|!\v  7È@ \fP\r\0 \fB†"\rB||"BˆB|"Bƒ!\b BÐ|!B\0!@@ B\fT\r\0 Büÿÿÿÿÿÿÿÿ\0ƒ! BÐ|!B\0!@  5\0B\n~ |">\0 B|" 5\0B\n~ B ˆ|">\0 B\b|" 5\0B\n~ B ˆ|">\0 B\f|" 5\0B\n~ B ˆ|">\0 B ˆ! B|! B||"B\0R\r\0\v \bP\r\v \bB†!@  5\0B\n~ |">\0 B|! B ˆ! B||"B\0R\r\0\v\v@ PE\r\0  \f"7ð\f\v \fB(Q\r BÐ| \r| §6\0 \fB|!\v  7ð\f\v \vAj!\v \f!\v B | Bø|B¨ü\n\0\0 )À"P\r\0 B(V\r\0 !@ B | B†|B||(\0"\nAJ\r\0 B(Q\r B | B†| \nAv6\0 B|!\v@ BQ\r\0 !@ §Aq\r\0 B | B|"B†|" (\0At B | B†|Bx|(\0Avr6\0\v BQ\r\0 B† B ||Bt|!@ B\b|" (\0At B|"(\0"\nAvr6\0  \nAt (\0Avr6\0 Bx|! B~|"BV\r\0\v\v  7À  ( At6  BÈ| Bø|B¨ü\n\0\0 )è"P\r\0 B(V\r\0 !@ BÈ| B†|B||(\0Av"\nE\r\0 B(Q\r BÈ| B†| \n6\0 B|!\v@ BQ\r\0 !@ §Aq\r\0 BÈ| B|"B†|" (\0At BÈ| B†|Bx|(\0Avr6\0\v BQ\r\0 B† BÈ||Bt|!@ B\b|" (\0At B|"(\0"\nAvr6\0  \nAt (\0Avr6\0 Bx|! B~|"BV\r\0\v\v  7è  (ÈAt6È Bð| Bø|B¨ü\n\0\0 )\t"P\r\0 B(V\r\0 !@ Bð| B†|B||(\0Av"\nE\r\0 B(Q\r Bð| B†| \n6\0 B|!\v@ BQ\r\0 !@ §Aq\r\0 Bð| B|"B†|" (\0At Bð| B†|Bx|(\0Avr6\0\v BQ\r\0 B† Bð||Bt|!@ B\b|" (\0At B|"(\0"\nAvr6\0  \nAt (\0Avr6\0 Bx|! B~|"BV\r\0\v\v  (ðAt6ð  7\t  ) "  V"B(V\r\0 Bø|B||! B˜\t|B||! B |B||!\f BÈ|B||!\r Bð|B||!\bB\0!@@ ! B†!@@@ P\r \b |! B||" |(\0"\n (\0"F\r\0\vA\0! \n I\r\v@@@ BR\r\0B\0!A!\f\v Bƒ! B>ƒ!B\0!A! ! Bð|!@  (\0" (\0Asj"\n Aqj"6\0 B|" (\0" B|(\0Asj" \n I  \nIrj"\n6\0  I \n Ir! B\b|! B\b|!  B|"R\r\0\v P\r\v  B†"|" (\0" Bð| |(\0Asj"\n j"6\0 \n I  \nIr!\v E\r  7 A\b! !\v    V"B)Z\r B†!@@@ P\r \r |! B||" |(\0"\n (\0"F\r\0\v \n O\r\0 !\f\v@@@ BR\r\0B\0!A!\f\v Bƒ! B>ƒ!B\0!A! ! BÈ|!@  (\0" (\0Asj"\n Aqj"6\0 B|" (\0" B|(\0Asj" \n I  \nIrj"\n6\0  I \n Ir! B\b|! B\b|!  B|"R\r\0\v P\r\v  B†"|" (\0" BÈ| |(\0Asj"\n j"6\0 \n I  \nIr!\v E\r  7  Ar!\v    V"B)Z\r B†!@@@ P\r \f |! B||" |(\0"\n (\0"F\r\0\v \n O\r\0 !\f\v@@@ BR\r\0B\0!A!\f\v Bƒ! B>ƒ!B\0!A! ! B |!@  (\0" (\0Asj"\n Aqj"6\0 B|" (\0" B|(\0Asj" \n I  \nIrj"\n6\0  I \n Ir! B\b|! B\b|!  B|"R\r\0\v P\r\v  B†"|" (\0" B | |(\0Asj"\n j"6\0 \n I  \nIr!\v E\r  7  Aj!\v    V"B)Z\r B†!@@@ P\r B||" |(\0"\n  Bø||(\0"F\r\0\v \n O\r\0 !\f\v@ P\r\0@@@ BR\r\0B\0!A!\f\v Bƒ! B>ƒ!B\0!A! ! Bø|!@  (\0" (\0Asj"\n Aqj"6\0 B|" (\0" B|(\0Asj" \n I  \nIrj"\n6\0  I \n Ir! B\b|! B\b|!  B|"R\r\0\v P\r\v  B†"|" (\0" Bø| |(\0Asj"\n j"6\0 \n I  \nIr!\v E\r\v  7  Aj!\v  Q\r  |" A0j:\0\0 )È"  V"B)Z\r B|! B†!@@@ PE\r\0A\0!\f\v B||" |(\0"\n  B¨||(\0"F\r\0\v \n K \n Ik!\v B˜\t| B¨ü\n\0\0  )¸\n"  V"B(V\r@@ PE\r\0B\0!\f\v@@@ BR\r\0B\0!A\0!\f\v Bƒ!! B>ƒ!B\0!A\0! B˜\t|! BÐ|!@  (\0" (\0j"\n Aqj"6\0 B|" B|(\0" (\0j" \n I  \nIrj"\n6\0  I \n Ir! B\b|! B\b|!  B|"R\r\0\v !P\r\v B˜\t| B†"|" BÐ| |(\0" (\0j"\n j"6\0 \n I  \nIr!\v E\r\0 B(Q\r B˜\t| B†|A6\0 B|!\v  7¸\n    V"B)Z\r B†!@@@ PE\r\0A\0!\n\f\v  |!  |! B||! (\0"\n (\0"F\r\0\v \n K \n Ik!\n\v@@@@@@@  \tH\r\0 \n \tH\rB\0!B\0! P\r B†"B||"BˆB|"Bƒ! B\fZ\rB\0! !\f\v \n \tN\r P\r\b B(V!\n !@ \n\r\t B|"PE\r\0\v !@  B†|B||(\0"\nAJ\r\0 B(Q\r\t  B†| \nAv6\0 B|!\v@ BQ\r\0 !@ §Aq\r\0  B|"B†|" (\0At  B†|Bx|(\0Avr6\0\v BQ\r\0 B† |Bt|!@ B\b|" (\0At B|"(\0"\nAvr6\0  \nAt (\0Avr6\0 Bx|! B~|"BV\r\0\v\v  (\0At6\0  7     V"B)Z\r\b B†! B||! Bø|B||!\b@ P\r \b |!  |! B||! (\0"\n (\0"F\r\0\v \n I\r\v  |!B\0!@  |BQ\r  |! B|"! -\0\0A9F\r\0\v  |"B|" -\0\0Aj:\0\0 B…"P\r B|A0 ü\v\0\f\v Büÿÿÿÿÿÿÿÿ\0ƒ!B\0! !@  5\0B\n~ |">\0 B|" 5\0B\n~ B ˆ|">\0 B\b|" 5\0B\n~ B ˆ|">\0 B\f|" 5\0B\n~ B ˆ|">\0 B ˆ! B|! B||"B\0R\r\0\v P\r\v B†!@  5\0B\n~ |">\0 B|! B ˆ! B||"B\0R\r\0\v\v@ PE\r\0 !\f\v B(Q\r  | §6\0 B|!\v  7 @ P\r\0 B†"B||"BˆB|"Bƒ!@@@ B\fZ\r\0B\0! B¨|!\f\v Büÿÿÿÿÿÿÿÿ\0ƒ!B\0! B¨|!@  5\0B\n~ |">\0 B|" 5\0B\n~ B ˆ|">\0 B\b|" 5\0B\n~ B ˆ|">\0 B\f|" 5\0B\n~ B ˆ|">\0 B ˆ! B|! B||"B\0R\r\0\v P\r\v B†!@  5\0B\n~ |">\0 B|! B ˆ! B||"B\0R\r\0\v\v@ PE\r\0 !\f\v B(Q\r B¨| | §6\0 B|!\v  7È@@ PE\r\0B\0!\f\v B†"B||"BˆB|"Bƒ!@@@ B\fZ\r\0B\0! BÐ|!\f\v Büÿÿÿÿÿÿÿÿ\0ƒ!B\0! BÐ|!@  5\0B\n~ |">\0 B|" 5\0B\n~ B ˆ|">\0 B\b|" 5\0B\n~ B ˆ|">\0 B\f|" 5\0B\n~ B ˆ|">\0 B ˆ! B|! B||"B\0R\r\0\v P\r\v B†!@  5\0B\n~ |">\0 B|! B ˆ! B||"B\0R\r\0\v\v P\r\0 B(Q\r BÐ| | §6\0 B|!\v  7ð    V"B)T\r\f\v\v A1:\0\0@ P\r\0 B|A0 ü\v\0\v  Z\r A0:\0\0 \vAj!\v B|!\v  V\r\0 \0 \v; \0 7\b \0 7\0 BÀ\n|$€€€€\0\v\0\v´\t~~~#€€€€\0BÐ}"$€€€€\0 ½"Bÿÿÿÿÿÿÿƒ"B€€€€€€€\b„ B†Bþÿÿÿÿÿÿƒ B4ˆ§Aÿq""\bBƒ!\tA!\n@@@@@ P"\vAA \vA B€€€€€€€øÿ\0ƒ"P B€€€€€€€øÿ\0Q\0\vA!\n\f\vA!\n\f\v AÍwj!\f \t§As!\nB!\r\f\vB€€€€€€€ \bB† \bB€€€€€€€\bQ"\f!\bBB \f!\r \t§As!\nAËwAÌw \f j!\f\v  \f;°  \r7¨ B7   \b7˜  \n:\0²@@@@@@@@@ \nAÿqAK\r\0 Bø\0| B˜| B|Bƒ‚€€\0#€€€\0!\b )xP\r  )ˆ7È  )€7À  )x7¸\f\v \nA~j"\nAÿqE\rB!\b#€€€\0"\rB—Ï€€€€€€€\0|" \rB˜Ï€€€€€€€\0| B\0S"\f B \f !\rB B?ˆ ! \nAÿqAG\r A; Aÿÿq\rB!\b B7( #€€€\0BŸÏ€€€€€€€\0|7 \f\v B¸| B˜| B|B„‚€€\0\v )À"B\0Q\r )¸"\t-\0\0A0M\r \bB—Ï€€€€€€€\0|"\r \bB˜Ï€€€€€€€\0| B\0S"\n \rB \n !\rB B?ˆ ! .È"\n¬!\b A; \nAH\r  \t7 @@  \bX\r\0 A;H B7@ A;0 #€€€\0Bìπ€€€€€€\0|78  \b7(  \t \b|7P   \b}"\b7X \b ­BÿÿƒT\rB!\b\f\v A\0;0  7(  \b }78@ Aÿÿq\r\0B!\b\f\v B7X A;H #€€€\0Bìπ€€€€€€\0|7P\v A\0;`B!\b Bè\0|B7\0\f\v B7( A; #€€€\0B™Ï€€€€€€€\0|7 B!\rB\0!B!\b\f\v B7( A; #€€€\0BœÏ€€€€€€€\0|7 \f\v B78 A\0;0B!\b B7( #€€€\0B Ï€€€€€€€\0|7 \f\v\0\v  \t7P A;H A\0;0 B7( B\0 \b}78 #€€€\0B Ï€€€€€€€\0|7 B!\b BØ\0| 7\0\v  \b7  7€  \r7x  B|7ˆ \0 Bø\0|‚€€\0!\n BÐ|$€€€€\0 \n\vø\v~~~~#€€€€\0Bð\t}"$€€€€\0 ½"Bÿÿÿÿÿÿÿƒ"B€€€€€€€\b„ B†Bþÿÿÿÿÿÿƒ B4ˆ§Aÿq"\b"\tBƒ!\nA!\v ­!\f@@@@@ P"\rAA \rA B€€€€€€€øÿ\0ƒ"P B€€€€€€€øÿ\0Q\0\vA!\v\f\vA!\v\f\v \bAÍwj! \n§As!\vB!\f\vB€€€€€€€ \tB† \tB€€€€€€€\bQ"!\tBB ! \n§As!\vAËwAÌw  \bj!\v \fBÿÿƒ!  ;Ð\t  7È\t B7À\t  \t7¸\t  \v:\0Ò\t@@@@ \vAÿqAK\r\0#€€€\0!\t B|BtB ÁA\0H ­Ã~BˆB|"  V"B\bT\r\f\v@@@ \vA~j"\vAÿqE\r\0B!\t#€€€\0"B—Ï€€€€€€€\0|"\f B˜Ï€€€€€€€\0| B\0S" \fB  !B B?ˆ ! \vAÿqAG\r Aÿÿq\r B7˜\b A;ˆ\b #€€€\0B¥Ï€€€€€€€\0B¢Ï€€€€€€€\0 |7\b\f\v B7˜\b A;ˆ\b #€€€\0B™Ï€€€€€€€\0|7\bB!B\0!B!\t\f\v B7˜\b A;ˆ\b #€€€\0BœÏ€€€€€€€\0|7\b\f\v B7È\b A;¸\b  7¨\b A\0; \b B7˜\b A;ˆ\b #€€€\0"\tB Ï€€€€€€€\0|7\b  \tBªÏ€€€€€€€\0B¨Ï€€€€€€€\0 |7À\bB!\t\f\v B˜\t| B¸\t| B\b| A€€ÿ€€\0@@ )˜\tP\r\0  )¨\t7è\t  ) \t7à\t  )˜\t7Ø\t\f\v BØ\t| B¸\t| B\b| A€€€‚€€\0\v )à\t"\nB\0Q\r )Ø\t"-\0\0A0M\r B\0S!\v \tB˜Ï€€€€€€€\0|! \tB—Ï€€€€€€€\0|!\f B¸\b|! .è\t!B!\t B7˜\b  7\b A;ˆ\b@@@ \nB|"\nB\0R\r\0#€€€\0! AÿÿqE\r B°\b|! B¨\b|! B \b|! Bìπ€€€€€€\0|!B!\f\v BÈ\b|! BÀ\b|! A; \b #€€€\0Bìπ€€€€€€\0|7¨\b B7°\b B|!B! ! \n!\t BÐ\b|!\v  7\0 A;\0  \t7\0@  \nV\r\0 !\t\f\v A\0;\0   \n}7\b B|!\t\v \f  \v! \fB \v! B?ˆ!@@ AH\r\0 Bˆ\b| \tB~|"\fB7 \f#€€€\0Bîр€€€€€€\0Bíр€€€€€€\0 |7\b \fA;\0 Aj!\v\f\v Bˆ\b| \tB~|"\fB7 \f#€€€\0Bñр€€€€€€\0Bïр€€€€€€\0 |7\b \fA;\0A k!\v\v   !B  ! Bˆ\b| \tB~|" \v; A; \tB|!\t\v  \t7°\t  7 \t  7˜\t  Bˆ\b|7¨\t \0 B˜\t|‚€€\0!\v Bð\t|$€€€€\0 \v\v\0\vÙ\b~~~#€€€€\0B€}"$€€€€\0 ½"Bÿÿÿÿÿÿÿƒ"B€€€€€€€\b„ B†Bþÿÿÿÿÿÿƒ B4ˆ§Aÿq""\bBƒ!\tA!\n@@@@@ P"\vAA \vA B€€€€€€€øÿ\0ƒ"P B€€€€€€€øÿ\0Q\0\vA!\n\f\vA!\n\f\v AÍwj!\f \t§As!\nB!\r\f\vB€€€€€€€ \bB† \bB€€€€€€€\bQ"\f!\bBB \f!\r \t§As!\nAËwAÌw \f j!\f\v  \f;à  \r7Ø B7Ð  \b7È  \n:\0â@@@@@@@@ \nAÿqAK\r\0 B¨| BÈ| B|Bƒ‚€€\0#€€€\0!\b )¨P\r  )¸7ø  )°7ð  )¨7è\f\v \nA~j"\nAÿqE\rB!\b#€€€\0"\rB—Ï€€€€€€€\0|" \rB˜Ï€€€€€€€\0| B\0S"\f B \f !\rB B?ˆ ! \nAÿqAF\r B7( A; #€€€\0BœÏ€€€€€€€\0|7 \f\v Bè| BÈ| B|B„‚€€\0\v )ð"B\0Q\r )è"\r-\0\0A0M\r \bB—Ï€€€€€€€\0|"\t \bB˜Ï€€€€€€€\0| B\0S"\n! \tB \n!\t B?ˆ! .ø!\n B7(  \r7 A;@ B|"\bB\0R\r\0 B0|!B!\b\f\v Bà\0|!  \b7X A;H A;0 #€€€\0Bìπ€€€€€€\0|78 B7@  \rB|7PB!\b\f\v B7( A; #€€€\0B™Ï€€€€€€€\0|7 B!\rB\0!B!\b\f\v B7( A; #€€€\0B¥Ï€€€€€€€\0B¢Ï€€€€€€€\0 |7 \f\v\0\v  \t !\rB  ! A; A;\0 BB \nAH"\f7 #€€€\0"\tBñр€€€€€€\0| \tBïр€€€€€€\0|  \tBîр€€€€€€\0| \tBíр€€€€€€\0|  \f7\b  \nAj"\n \nAu"\ns \nk;\v  \b7À  7°  \r7¨  B|7¸ \0 B¨|‚€€\0!\n B€|$€€€€\0 \n\vü~~#€€€€\0B }"$€€€€\0@@ §Aq\r\0A\0! -\0\0"E\r )!B\0!\b@ B|!\t@@@@@ ÀAJ\r\0 Aÿq"\nA€F\r \nAÀG\r  7  \x007\b B €€€7  \bB†|")\0 B\b| )\b‚€€€\0€€€€\0E\rA!\f\v@ \0 \t ­Bÿƒ" €€€€\0€€€€\0\r\0 \t |!\f\vA!\f\v@ \0 B|"\t 3\0" €€€€\0€€€€\0\r\0 \t |!\f\vA!\f\v \bB|!\b \t!\f\vA €€€!\v@ AqE\r\0 B|!\t (\0!\v\vA\0!\n@@ Aq\r\0A\0!\f \t!\f\v \tB|! \t/\0\0!\f\v@@ Aq\r\0 !\t\f\v B|!\t /\0\0!\n\v@@ A\bq\r\0 \t!\f\v \tB|! \t3\0\0!\b\v@ AqE\r\0  \f­BÿÿƒB†|/\b!\f\v@ A qE\r\0  \n­BÿÿƒB†|/\b!\n\v  \n;  \f;  \v6  7  \x007\b@  \bB†|"\t)\0 B\b| \t)\b‚€€€\0€€€€\0E\r\0A!\f\v \bB|!\b\v -\0\0"\r\0\f\v\v \0  Bˆ )€€€€\0€€€€\0!\v B |$€€€€\0 \vÑ~~@ P\r\0B\0 Bq|"  V! B|Bxƒ }!B\0!@@@@@  |-\0\0"À"A\0H\r\0  }BƒB\0R\r  Z\r@  |"\bB\b|)\0 \b)\0„B€‚„ˆ À€ƒPE\r B|" T\r\0\f\v\vA!\tA!\n@@@@@@@@@@@@@#€€€\0Bíπ€€€€€€\0| ­|-\0\0A~j\0\v\v B|"\b T\rA\0!\n\f\n\vA\0!\n B|"\b T\r\f\t\vA\0!\n B|"\b T\r\f\b\vA!\tA!\n  \b|,\0\0A¿J\r\f\b\v  \b|,\0\0!\t@@@ A ~j\0\v \tA`qA F\r\f\v \tAŸJ\r\f\v@ AjAÿqA\fI\r\0 A~qAnG\r \tA@H\r\f\v \tA@H\r\f\v  \b|,\0\0!\t@@@ A~j\0\0\0\0\v AjAÿqAK\r \tA@H\r\f\v \tAð\0jAÿqA0O\r\f\v \tAL\r\vA!\t\f\v@ B|"\b T\r\0\f\v  \b|,\0\0A¿J\r B|"\b Z\r  \b|,\0\0A@H\rA!\t\f\v B|"\b Z\r  \b|,\0\0A¿L\r\vA!\t\vA!\n\v \0 \t:\0 \0 \n:\0 \0 7\b \0B7\0\v \bB|!\f\v B|!\f\v  Z\r\0@  |,\0\0A\0H\r  B|"R\r\0\f\v\v  T\r\0\v\v \0 7 \0 7\b \0B\x007\0\v—\b~~~#€€€€\0B }"$€€€€\0 A\0B ü\v\0@@@ \0) " T\r\0 B)Z\r  B†|!@ B\0R\r\0B\0!B\0!@  Q\r B|! (\0!\b B|"\t! \bE\r\0  B|"  V! \t!\f\0\v\v B|!\n B|Bÿÿÿÿÿÿÿÿ?ƒ"B|"Bþÿÿÿÿÿÿÿÿ\0ƒ!\v Bƒ!\f BQ!\rB\0!\tB\0!@B\0 \t}!  \tB†|!@ \t! ! !  Q\r B|! B|! B|!\t (\0!\b B|"! \bE\r\0\v B( B(V | X\r \b­!B\0!B\0! \0!@@ \r\r\0B\0!B\0! \0!@   5\0| 5\0 ~|">\0 B|" B ˆ 5\0| B|5\0 ~|">\0 B ˆ! B\b|! B\b|! \v B|"R\r\0\v \fP\r\v  B†| B†|"  5\0| 5\0 ~|">\0 B ˆ!\v !@ P\r\0  |"B(Z\r  B†| §6\0 \n!\v   |"  V! !\f\0\v\v B)Z\r\0 B|!\f \0 B†|! B|Bÿÿÿÿÿÿÿÿ?ƒ"\nB|"Bþÿÿÿÿÿÿÿÿ\0ƒ! Bƒ! BQ!\rB\0! \0!\tB\0!@B\0 }!  B†|!@ ! ! ! \t Q\r B|! B|! B|! \t(\0!\b \tB|"!\t \bE\r\0\v B( B(V | \nX\r \b­!B\0!B\0! !\t@@ \r\r\0B\0!B\0! !\t@   5\0| \t5\0 ~|">\0 B|"\v B ˆ \v5\0| \tB|5\0 ~|">\0 B ˆ! \tB\b|!\t B\b|!  B|"R\r\0\v P\r\v  B†| B†|"  5\0| \t5\0 ~|">\0 B ˆ!\v !@ P\r\0  |"B(Z\r  B†| §6\0 \f!\v   |"  V! !\t\f\0\v\v\0\v \0 B ü\n\0\0 \0 7  B |$€€€€\0 \0\vç~~@@ B€\nZ\r\0 Bˆ!@ \0) "P\r\0 B|! B† \0|B||!  |B† \0|B||! B(V!@ \r  |B(Z\r  (\x006\0 B||! B||! B|"PE\r\0\v\v Bƒ!@ P\r\0 B†"P\r\0 \0A\0 ü\v\0\v \0) " |!@ B\0R\r\0 \0 7  \0\v B|"B\'V\r\0 !\b \0 B†|(\0A §"k"\tv"\nE\r B\'V\r\0 \0 B†| \n6\0 B|!\b\f\v\0\v@ B|" Z\r\0@@ §AqE\r\0 !\f\v \0 B|"B†|" \0 B†|Bx|(\0 \tv (\0 tr6\0\v BQ\r\0 B† \0|Bt|!@ B\b|" B|"(\0"\n \tv (\0 tr6\0  (\0 \tv \n tr6\0 Bx|!  B~|"T\r\0\v\v \0 B†|" (\0 t6\0 \0 \b7  \0\v€~~#€€€€\0B}"$€€€€\0@@@ )\b"P\r\0 \0 )\0  )€€€€\0€€€€\0\r\v@ )"PE\r\0A\0!\f\v )" B~|!@@@@@@@@@ 3\0§\0\0\v )\b"BÁ\0T\r B|)\0!@ \0#€€€\0B¬Ï€€€€€€€\0|BÀ\0 €€€€\0€€€€\0\r\t B@|"BÀ\0V\r\0\f\v\v /! A\0:\0\f A\x006\b \rB!\f\v \0 )\b ) B|)\0€€€€\0€€€€\0E\r\f\v PE\r\f\v Aöÿj Aœÿjq A˜ø7j Að±jqsAvAj­!\v B\b| B|"\b|"  A\nn"\tA\nlkA0r:\0\0@ \bP\r\0 B| \tA\npA0r:\0\0 BQ\r\0 B~| Aä\0nA\npA0r:\0\0 BQ\r\0 B}| AènA\npA0r:\0\0 BQ\r\0 B|| AÎ\0nA0r:\0\0 BQ\r\0 B{|A0:\0\0 BQ\r\0 Bz|A0:\0\0 BQ\r\0 By|A0:\0\0\v \0 B\b|  B|)\0€€€€\0€€€€\0E\r\f\v \0#€€€\0B¬Ï€€€€€€€\0|  B|)\0€€€€\0€€€€\0\r\v B|" R\r\0\vA\0!\f\vA!\v B|$€€€€\0 \vÄ~@ PE\r\0B\0\v Bƒ!B\0!B\0!@@ BT\r\0 Büÿÿÿÿÿÿÿÿ\0ƒ!B\0!B\0!@  \0 |",\0\0A¿J­| B|,\0\0A¿J­| B|,\0\0A¿J­| B|,\0\0A¿J­|!  B|"R\r\0\v P\r\v \0 |!@  ,\0\0A¿J­|! B|! B|"B\0R\r\0\v\v \vó~~#€€€\0Bôр€€€€€€\0|" B\0B \0A¹ÔI" B\r|"  B†|(\0A\vt \0A\vt"K" B|"  B†|(\0A\vt K" B|"  B†|(\0A\vt K" B|"  B†|(\0A\vt K" B|"  B†|(\0A\vt K"B†|(\0A\vt" F­  I­| |"B†|"(\0Av­!Bï\v!@@ B1V\r\0 (Av­! PE\r\0A\0!\f\v B||(\0Aÿÿÿ\0q!\v@  B…|P\r\0 \0 k!\0 B|!A\0!@ #€€€\0Bീ€€€€€€\0| |-\0\0j" \0K\r  B|"R\r\0\v\v §Aq\v¯~~@ A€€\bI\r\0 \0A€€Ä\x006\0\v  Av­B†|")\0!B\0!@@@ )\b"BV\r\0 §\v Aÿÿq!@  Bˆ" |"\b  \bB~|/\0 K!  }"BV\r\0\v\v  B~|"/\0" Aÿÿq"\tK\r\0  B|-\0\0jAÿÿq \tI\r\0  s -\0qAq\r\0 \0B\x007 \0 A€€q / jAÿÿqr6\0\v )!@@@@ )"BV\r\0B\0! §\vB\0! Aÿÿq!@  Bˆ" |"\b  \bB†|/\0 K!  }"BV\r\0\v\v  B†|"/\0 AÿÿqF\r\v \0A€€Ä\x006\0\v \0 A€€q" B|/\0r6\b \0 5§"Av r6 \0 Aÿÿq r6\0\v›~#€€€€\0B}"$€€€€\0@@ AÀI\r\0 B| #€€€\0B€ˆ€€€€€€\0|‚€€\0 \0B\x007 \0 6\0 (A€€Ä\0F\r \0 (\f6\b \0 )7\0\f\v \0B\x007 \0 A r  A¿jAI6\0\v B|$€€€€\0\vœ~#€€€€\0B}"$€€€€\0@@ AµI\r\0 B| #€€€\0BÀˆ€€€€€€\0|‚€€\0 \0B\x007 \0 6\0 (A€€Ä\0F\r \0 (\f6\b \0 )7\0\f\v \0B\x007 \0 Aß\0q  AŸjAI6\0\v B|$€€€€\0\vó~~#€€€\0Bè뀀€€€€€\0|" B\0B \0Aó½I" B\t„"  B†|(\0A\vt \0A\vt"K" B„"  B†|(\0A\vt K" B|"  B†|(\0A\vt K" B|"  B†|(\0A\vt K" B|"  B†|(\0A\vt K"B†|(\0A\vt" F­  I­| |"B†|"(\0Av­!B—!@@ B"V\r\0 (Av­! PE\r\0A\0!\f\v B||(\0Aÿÿÿ\0q!\v@  B…|P\r\0 \0 k!\0 B|!A\0!@ #€€€\0BÏÀ€€€€€€\0| |-\0\0j" \0K\r  B|"R\r\0\v\v §Aq\vØ~~#€€€\0Bøì€€€€€€€\0|" B\0B\v \0A€I" B|"  B†|(\0A\vt \0A\vt"K" B|"  B†|(\0A\vt K" B|"  B†|(\0A\vt K" B|"  B†|(\0A\vt K"B†|(\0A\vt" F­  I­| |"B†|"(\0Av­!B¹!@@ BV\r\0 (Av­! PE\r\0A\0!\f\v B||(\0Aÿÿÿ\0q!\v@  B…|P\r\0 \0 k!\0 B|!A\0!@ #€€€\0BæÊ€€€€€€€\0| |-\0\0j" \0K\r  B|"R\r\0\v\v §Aq\vž~A\0!@ \0AÖ~jAÕÖK\r\0#€€€\0"BÈñ€€€€€€€\0| BŸÍ€€€€€€€\0| \0Av­"Bˆ|1\0\0B†| Bƒ|-\0\0"­!@@@ A9I\r\0 AÏ\0O\r#€€€\0"BÐ퀀€€€€€\0| BG|"B†|"-\0­! B€î€€€€€€€\0| 1\0\0B†|)\0BB\0B †"Bþÿü\0ƒP…!@ B€³ƒP\r\0  Bÿƒ‰!\f\v  ˆ!\f\v#€€€\0B€î€€€€€€€\0| B†|)\0!\f\v\0\v  \0­ˆ§!\v Aq\vž~A\0!@ \0AÀ~jA¿æK\r\0#€€€\0"B ÷€€€€€€€\0| BšÎ€€€€€€€\0| \0Av­"Bˆ|1\0\0B†| Bƒ|-\0\0"­!@@@ A,I\r\0 AÅ\0O\r#€€€\0"Bˆô€€€€€€€\0| BT|"B†|"-\0­! BÀô€€€€€€€\0| 1\0\0B†|)\0BB\0B †"Bý‡ÿƒP…!@ B‚øƒƒP\r\0  Bÿƒ‰!\f\v  ˆ!\f\v#€€€\0BÀô€€€€€€€\0| B†|)\0!\f\v\0\v  \0­ˆ§!\v Aq\v­\n\b~@@@ B\bT\r\0 Bƒ"B\0Q\r#€€€\0! \0) "B)Z\r@ PE\r\0 \0B\x007 \f\v B†"B||"BˆB|"Bƒ!\b BÀƒ€€€€€€\0| B†|(\0 §v­! \0!B\0!\t@@ B\fT\r\0 Büÿÿÿÿÿÿÿÿ\0ƒ! \0!B\0!\t@  5\0 ~ \t|"\t>\0 B|" 5\0 ~ \tB ˆ|"\t>\0 B\b|" 5\0 ~ \tB ˆ|"\t>\0 B\f|" 5\0 ~ \tB ˆ|"\t>\0 \tB ˆ!\t B|! B||"B\0R\r\0\v \bP\r\v \bB†!@  5\0 ~ \t|"\t>\0 B|! \tB ˆ!\t B||"B\0R\r\0\v\v@ \tP\r\0 B(Q\r \0 | \t§6\0 B|!\v \0 7 \f\v#€€€\0! \0) "B)Z\r@ PE\r\0 \0B\x007  \0\v BÀƒ€€€€€€\0| B†|5\0! B†"\bB||"BˆB|"Bƒ! \0!B\0!\t@@ B\fT\r\0 Büÿÿÿÿÿÿÿÿ\0ƒ! \0!B\0!\t@  5\0 ~ \t|"\t>\0 B|" 5\0 ~ \tB ˆ|"\t>\0 B\b|" 5\0 ~ \tB ˆ|"\t>\0 B\f|" 5\0 ~ \tB ˆ|"\t>\0 \tB ˆ!\t B|! B||"B\0R\r\0\v P\r\v B†!@  5\0 ~ \t|"\t>\0 B|! \tB ˆ!\t B||"B\0R\r\0\v\v@ \tP\r\0 B(Q\r \0 \b| \t§6\0 B|!\v \0 7  \0\v@ B\bƒP\r\0 \0) "B)Z\r@@ PE\r\0B\0!\f\v B†"\bB||"\tBˆB|"Bƒ! \0!B\0!@@ \tB\fT\r\0 Büÿÿÿÿÿÿÿÿ\0ƒ!\t \0!B\0!@  5\0Báë~ |">\0 B|" 5\0Báë~ B ˆ|">\0 B\b|" 5\0Báë~ B ˆ|">\0 B\f|" 5\0Báë~ B ˆ|">\0 B ˆ! B|! \tB||"\tB\0R\r\0\v P\r\v B†!\t@  5\0Báë~ |">\0 B|! B ˆ! \tB||"\tB\0R\r\0\v\v P\r\0 B(Q\r \0 \b| §6\0 B|!\v \0 7 \v@ BƒP\r\0 \0#€€€\0B胁€€€€€€\0|BŠ‚€€\0\v@ B ƒP\r\0 \0#€€€\0Bðƒ€€€€€€\0|BŠ‚€€\0\v@ BÀ\0ƒP\r\0 \0#€€€\0Büƒ€€€€€€\0|BŠ‚€€\0\v@ B€ƒP\r\0 \0#€€€\0B„€€€€€€\0|B\nŠ‚€€\0\v@ B€ƒP\r\0 \0#€€€\0B¸„€€€€€€\0|BŠ‚€€\0\v \0 ‹‚€€\0 \0\v\0\vP| ("A€€€q! \0+\0!@ A€€€€q\r\0   A\0GA\0…‚€€\0\v   A\0G /‚‚€€\0\vR| ("A€€€q! \0+\0!@ A€€€€q\r\0   A\0GA\0‡‚€€\0\v   A\0G /A\0†‚€€\0\v8~A€€Ä\0!@ \0)\b \0)\0"Q\r\0 \0 B|7\0 \0 B†|(!\v \vN~@@ AÀ\0q\r\0 E\r  ­"† A\0 k­ˆ„!  †!\f\v  ­†!B\0!\v \0 7\0 \0 7\b\vN~@@ AÀ\0q\r\0 E\r A\0 k­†  ­"ˆ„!  ˆ!\f\v  ­ˆ!B\0!\v \0 7\0 \0 7\b\v¸\b~~#€€€€\0B°}"$€€€€\0B\0!@@@@@@@@ y yBÀ\0| B\0R§" y yBÀ\0| B\0R§"\bM\r\0 \bA?K\r Aß\0K\r  \bkA I\r B |  Aà\0 k"\t›‚€€\0 5 B|!\nB\0!\vB\0!\f\v  T"\b  T  QE\rB\0!\f\f\v   €"\f ~}!B\0!B\0!\f\v   Bÿÿÿÿƒ"€" ~}B † B ˆ"\f„ €"B † \f  ~}B † Bÿÿÿÿƒ„" €"„!\f   ~}! B ˆ „!B\0!\f\v B0|  AÀ\0 \bk"\b›‚€€\0 B |   \b›‚€€\0B\0!  B\0 )0 ) €"\fB\0‚€€\0 B| B\0 \fB\0‚€€\0 )\0!\n@ ) )\b"\r )|"\v \rT­|B\0R\r\0  \nT"\b  \vT  \vQE\r\v  |  |" T­| \v}  \nT­}! \fB|!\f  \n}!\f\v@@@ B|  AÀ\0 \bk"\b›‚€€\0 )!\f@ \b \tO\r\0 BÐ\0|   \b›‚€€\0 BÀ\0|   \f )P€"\rB\0‚€€\0@  )@"\nT"\b  )H"\fT  \fQ\r\0  \f} \b­}!  \n}!  \v \r|"\f \vT­|!\f\v  |  |" T­| \f}  \nT­}!  \n}!  \r \v|B|"\f \vT­|!\f\v B€| \f \n€"\fB\0 \b \tk"\bš‚€€\0 Bð\0|   \fB\0‚€€\0 Bà\0| )p )x \bš‚€€\0 )ˆ | )€" \v|"\v T­|!@   )h}  )`"\fT­}"y  \f}"yBÀ\0| B\0R§"\bM\r\0 \bA?K\r\f\v\v  T"\b  T  QE\r \v!\f\f\v   €" ~}!  \v |"\f \vT­|!B\0!\f\v  } \b­}!  }!  \vB|"\fP­|!\f\v  \v} \b­}!  \n}!B\0!\f\v  } \b­}!  }!B!\f\v \0 7 \0 \f7\0 \0 7 \0 7\b B°|$€€€€\0\vn~ \0 Bÿÿÿÿƒ" Bÿÿÿÿƒ"~" B ˆ"\b ~"  B ˆ"\t~|"B †|"\n7\0 \0 \b \t~  T­B † B ˆ„| \n T­|  ~  ~||7\b\vH~#€€€€\0B }"$€€€€\0     œ‚€€\0 )! \0 )7\b \0 7\0 B |$€€€€\0\vH~#€€€€\0B }"$€€€€\0     œ‚€€\0 )\0! \0 )\b7\b \0 7\0 B |$€€€€\0\vJA\0!@ P\r\0@@ \0-\0\0" -\0\0"G\r \0B|!\0 B|! B|"P\r\f\0\v\v  k!\v \v6~ \0BB\b¨€€\0"7@ PE\r\0A~\v \0A\x006\b \0B€€€€À\x007\0A\0\vL \0A\x006\0 \0A\x006\b@ \0("AH\r\0 Aj! \0)!\0@ \0B\x007\0 \0B\b|!\0 Aj"AK\r\0\v\v\ve@ \0(\b" (\b"G\r\0  6\b \0  ¸‚€€\0\v@ \0 ¹‚€€\0AG\r\0  6\b  \0 º‚€€\0\v  6\b \0  º‚€€\0\vd@ \0(\b" (\bF\r\0  6\b \0  ¸‚€€\0\v@ \0 ¹‚€€\0AF\r\0  6\b \0  º‚€€\0\v  E6\b  \0 º‚€€\0\vä (\b! \0(\b!@@ \0(\0" (\0"  H"AÐ\0H\r\0    J"\bA H\r\0 \b AtH\r\0 \0  ǂ€€\0!\f\v@ AÞH\r\0 \0  Ȃ€€\0!\f\v@ AÐ\0H\r\0 \0  ̂€€\0!\f\v  j"Aj!@ AþJ\r\0 \0   ͂€€\0!\f\v \0   ΂€€\0!\v  (\0A\0J  Gq6\b \v@@ \0(\b" (\bF\r\0AA AF\v@ AG\r\0  \0¹‚€€\0\v \0 ¹‚€€\0\v}~@@ \r\0 \0)!A\0!\f\v \0)" ­7\0A!\v \0A\x006\b \0 6\0@ \0( k"AH\r\0 Aj!  ­B†|!\0@ \0B\x007\0 \0B\b|!\0 Aj"AK\r\0\v\v\vA\0 \0©‚€€\0"k  \0(\bAF\v\0@ \0(\0\r\0A\0\v \0)(\0\v±~~ \0)!A\0!@ P\r\0A\0! !@  Bÿÿÿÿÿÿÿÿƒ7\0 Aj! B\b|! BÿÿÿÿÿÿÿÿV! B<ˆ! \r\0\v\v \0A\x006\b \0 6\0@ \0( k"AH\r\0 Aj!  ­B†|!@ B\x007\0 B\b|! Aj"AK\r\0\v\v\v*~ \0  B?‡"… }ª‚€€\0@ BU\r\0 \0A6\b\v\v~B\0 \0­‚€€\0"}  \0(\bAF\vV~@ \0(\0"\r\0B\0\v \0) A AI"Aj­B†|!\0B\0!@ \0)\0 B<†„! \0Bx|!\0 Aj"\r\0\v \v˜~A}!@ ½"B4ˆ§Aÿq"AÿF\r\0 \0 BÿÿÿÿÿÿÿƒB€€€€€€€\b„ª‚€€\0@@ A²\bK\r\0 \0A³\b k \0B\0ł€€\0!\f\v \0 AÍwj \0‚€€\0!\v \r\0A\0! BU\r\0 \0(\0E\r\0 \0A6\b\v \v¢||~D\0\0\0\0\0\0ð?!Ajm\r¨Zjz\vÏäÿ\t“\'®\0\n±ž}D“ðÒ£\b‡hòþÂi]Wb÷Ëge€q6lçknvÔþà+ӉZzÚÌJÝgoß¹ùùホC¾·Վ°`è£ÖÖ~“Ñ¡ÄÂØ8RòßOñg»ÑgW¼¦Ýµ?K6²HÚ+\rØL\n¯öJ6`zAÃï`ßUßg¨ïŽn1y¾iFŒ³a˃f¼ Òo%6âhR•w\fÌG\v»¹"/&U¾;ºÅ(\v½²’Z´+j³\\§ÿ×Â1Ïе‹žÙ,®Þ[°Âd›&òc윣ju\n“m©\tœ?6ë…grW\0‚J¿•z¸â®+±{8¶\f›ŽÒ’\r¾Õå·ïÜ|!ßÛ\vÔÒӆBâÔñø³ÝhnƒÚ;[&¹öáw°owG·æZ\bˆpjÿÊ;f\\\vÿžei®bøÓÿkaEÏlxâ\n îÒ\r×TƒN³9a&g§÷`ÐMGiIÛwn>JjÑ®ÜZÖÙf\vß@ð;Ø7S®¼©Åž»ÞϲGéÿµ0ò½½ŠÂºÊ0“³S¦£´$6к“×Í)WÞT¿gÙ#.zf³¸JaÄh]”+o*7¾\v´¡Ž\fÃßZï-Insufficient stable memoryadvance out of bufferbyte read out of bufferword read out of buffervariant or record tag out of orderinvalid type argumentskip_any: byte tag not 0 or 1sub: unexpected aliasobject_size: forwarding pointerobject_size: invalid object tagRegion error: StableMemory peek_future_continuation: Continuation table not allocatedpeek_future_continuation: Continuation index not in tablepeek_future_continuation: Continuation index out of rangeskip_any: recursive recordskip_any: variant tag too largeskip_any: skipping referencesskip_any: encountered emptyskip_any: unknown primskip_any: too deeply nested recordutf8_validate: string is not UTF-80.1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ƒù¢\0DNn\0ü)\0ÑW\'\0Ý4õ\0bÛÀ\0<™•\0AC\0cQþ\0»Þ«\0·aÅ\0:n$\0ÒMB\0Ià\0\tê.\0’Ñ\0ëþ\0)±\0è>§\0õ5‚\0D».\0œé„\0´&p\0A~_\0֑9\0Sƒ9\0œô9\0‹_„\0(ù½\0ø;\0Þÿ—\0˜\0/ï\0\nZ‹\0mm\0Ï~6\0\tË\'\0FO·\0žf?\0-ê_\0º\'u\0åëÇ\0={ñ\0÷9\0’RŠ\0ûkê\0±_\0\b]\x000V\0{üF\0ð«k\0 ¼Ï\x006ôš\0ã©\0^a‘\0\bæ\0…™e\0 _\0@h\0€Øÿ\0\'sM\01\0ÊV\0ɨs\0{â`\0kŒÀ\0ÄG\0ÍgÃ\0\tèÜ\0Yƒ*\0‹vÄ\0¦–\0D¯Ý\0WÑ\0¥>\0ÿ\x003~?\0Â2è\0˜OÞ\0»}2\0&=Ã\0kï\0Ÿø^\x005:\0òÊ\0ñ‡\0|!\0j$|\0Õnú\x000-w\0;C\0µÆ\0Ý\0­ÄÂ\0,MA\0\f\0]\0†}F\0ãq-\0›Æš\x003b\0\0´Ò|\0´§—\x007UÕ\0×>ö\0£\0Mvü\0d*\0p׫\0c|ø\0z°W\0ç\0ÀIV\0;ÖÙ\0§„8\0$#Ë\0֊w\0ZT#\0\0¹\0ñ\n\0Îß\0Ÿ1ÿ\0fj\0™Wa\0¬ûG\0~Ø\0"e·\x002è‰\0æ¿`\0ïÄÍ\0l6\t\0]?Ô\0Þ×\0X;Þ\0ޛ’\0Ò"(\0(†è\0âXM\0ÆÊ2\0\bã\0à}Ë\0ÀP\0ó§\0à[\0.4\0ƒb\0ƒH\0õŽ[\0­°\0éò\0HJC\0gÓ\0ªÝØ\0®_B\0jaÎ\0\n(¤\0ә´\0¦ò\0\\w\0£Âƒ\0a<ˆ\0Šsx\0¯ŒZ\0o×½\0-¦c\0ô¿Ë\0ï\0&Ág\0UÊE\0ÊÙ6\0(¨Ò\0Âa\0Éw\0&\0F›\0ÄYÄ\0ÈÅD\0M²‘\0\0ó\0ÔC­\0)Iå\0ýÕ\0\0¾ü\0”Ì\0pÎî\0>õ\0ìñ€\0³çÃ\0Çø(\0“”\0Áq>\0.\t³\0\vEó\0ˆœ\0« {\0.µŸ\0G’Â\0{2/\0\fUm\0r§\0kç\x001˖\0yJ\0Ayâ\0ô߉\0蔗\0âæ„\0™1—\0ˆík\0__6\0»ý\0Hš´\0g¤l\0qrB\0]2\0Ÿ¸\0¼å\t\01%\0÷t9\x000\0\r\f\0K\bh\0,îX\0Gª\0tç\0½Ö$\0÷}¦\0nHr\0Ÿï\0Ž”¦\0´‘ö\0ÑSQ\0Ï\nò\0 ˜3\0õK~\0²ch\0Ý>_\0@]\0…‰\0UR)\x007dÀ\0mØ\x002H2\0[Lu\0NqÔ\0ETn\0\v\tÁ\0*õi\0fÕ\0\'\0]P\0´;Û\0êvÅ\0‡ù\0Ik}\0\'º\0–i)\0ÆÌ¬\0­T\0âj\0ˆÙ‰\0,rP\0¤¾\0w”\0ó0p\0\0ü\'\0êq¨\0fÂI\0dà=\0—݃\0£?—\0C”ý\0\r†Œ\x001AÞ\0’9\0ÝpŒ\0·ç\0\bß;\07+\0\\€ \0Z€“\0’\0èØ\0l€¯\0ÛÿK\x008\0Yv\0b¥\0aË»\0lj¹\0@½\0Òò\0Iu\'\0ë¶ö\0Û"»\0\nª\0‰&/\0dƒv\0\t;3\0”\0Q:ª\0£Â\0¯í®\0\\&\0mÂM\0-zœ\0ÀV—\0?ƒ\0\tðö\0+@Œ\0m1™\x009´\0\f \0ØÃ[\0õ’Ä\0Æ­K\0NÊ¥\0§7Í\0æ©6\0«’”\0ÝBh\0cÞ\0vŒï\0h‹R\0üÛ7\0®¡«\0ß1\0\0®¡\0\fûÚ\0dMf\0í·\0)e0\0WV¿\0Gÿ:\0jù¹\0u¾ó\0(“ß\0«€0\0fŒö\0Ë\0ú"\0Ùä\0=³¤\0W\x006Í\t\0NBé\0¾¤\x003#µ\0ðª\0Oe¨\0ÒÁ¥\0\v?\0[xÍ\0#ùv\0{‹\0‰r\0ƦS\0onâ\0ïë\0\0›JX\0ÄÚ·\0ªfº\0vÏÏ\0Ñ\0±ñ-\0Œ™Á\0íw\0†HÚ\0÷] \0ƀô\0¬ð/\0Ýìš\0?\\¼\0ÐÞm\0Ç\0*Û¶\0£%:\0\0¯š\0­S“\0¶W\0)-´\0K€~\0Ú§\0vª\0{Y¡\0*\0Ü·-\0úåý\0‰Ûþ\0‰¾ý\0ävl\0©ü\0>€p\0…n\0ý‡ÿ\0(>\0ag3\0*†\0M½ê\0³ç¯\0mn\0•g9\x001¿[\0„×H\x000ß\0Ç-C\0%a5\0ÉpÎ\x000˸\0¿lý\0¤\0¢\0lä\0ZÝ \0!oG\0bÒ\0¹\\„\0paI\0kVà\0™R\0PU7\0Õ·\x003ñÄ\0n_\0]0ä\0….©\0²Ã\0¡26\0\b·¤\0ê±Ô\0÷!\0iä\0\'ÿw\0\f€\0@-\0OÍ \0 ¥™\0³¢Ó\0/]\n\0´ùB\0ÚË\0}¾Ð\0›ÛÁ\0«½\0Ê¢\0\bj\\\0.U\0\'\0U\0ð\0á†\0\vd\0–A\0‡¾Þ\0Úý*\0k%¶\0{‰4\0óþ\0¹¿ž\0hjO\0J*¨\0OÄZ\0-ø¼\0×Z˜\0ôǕ\0\rM\0 :¦\0¤W_\0?±\0€8•\0Ì \0q݆\0ÉÞ¶\0¿`õ\0Me\0k\0Œ°¬\0²ÀÐ\0QUH\0û\0•rÃ\0£;\0À@5\0Ü{\0àEÌ\0N)ú\0ÖÊÈ\0èóA\0|dÞ\0›dØ\0Ù¾1\0¤—Ã\0wXÔ\0iãÅ\0ðÚ\0º:<\0FF\0Uu_\0Ò½õ\0n’Æ\0¬.]\0Dí\0>B\0ać\0)ýé\0çÖó\0"|Ê\0o‘5\0\bàÅ\0ÿ׍\0njâ\0°ýÆ\0“\bÁ\0|]t\0k­²\0Ín\0>r{\0Æj\0÷Ï©\0)sß\0µÉº\0·\0Q\0â²\r\0tº$\0å}`\0t؊\0\r,\0\f\0~f”\0)\0Ÿzv\0ýý¾\0VEï\0Ù~6\0ìÙ\0‹º¹\0ėü\x001¨\'\0ñnÃ\0”Å6\0بV\0´¨µ\0ÏÌ\0‰-\0oW4\0,V‰\0™Îã\0Ö ¹\0k^ª\0>*œ\0_Ì\0ý\vJ\0áôû\0Ž;m\0â†,\0éԄ\0ü´©\0ïîÑ\0.5É\0/9a\x008!D\0ÙÈ\0ü\n\0ûJj\0/Ø\0S´„\0N™Œ\0T"Ì\0*UÜ\0ÀÆÖ\0\v–\0p¸\0i•d\0&Z`\0?Rî\0\0ôµ\0üËõ\x004¼-\x004¼î\0è]Ì\0Ý^`\0gŽ›\0’3ï\0ɸ\0aX›\0áW¼\0QƒÆ\0Ø>\0ÝqH\0-Ý\0¯¡\0!,F\0Yó×\0Ùz˜\0žTÀ\0O†ú\0Vü\0åy®\0‰"6\x008­"\0g“Ü\0Uèª\0‚&8\0Êç›\0Q\r¤\0™3±\0©×\0iH\0e²ð\0ˆ§\0ˆL—\0ùÑ6\0!’³\0{‚J\0˜Ï!\0@ŸÜ\0ÜGU\0át:\0gëB\0þß\0^Ô_\0{g¤\0º¬z\0Uö¢\0+ˆ#\0AºU\0Yn\b\0!*†\x009Gƒ\0‰ãæ\0åžÔ\0Iû@\0ÿVé\0Ê\0ÅYŠ\0”ú+\0ÓÁÅ\0ÅÏ\0ÛZ®\0Gņ\0…Cb\0!†;\0,y”\0a‡\0*L{\0€,\0C¿\0ˆ&\0x<‰\0¨Ää\0åÛ{\0Ä:Â\0&ôê\0÷gŠ\0\r’¿\0e£+\0=“±\0½|\v\0¤QÜ\0\'Ýc\0iáÝ\0š”\0¨)•\0hÎ(\0\tí´\0DŸ \0N˜Ê\0p‚c\0~|#\0¹2\0§õŽ\0Vç\0!ñ\b\0µ*\0o~M\0¥Q\0µù«\0‚ßÖ\0–Ýa\06\0Ä:Ÿ\0ƒ¢¡\0rím\x009z\0‚¸©\0k2\\\0F\'[\0\x004í\0Ò\0w\0üôU\0YM\0àq€\0\0\0\0@û!ù?\0\0\0\0-Dt>\0\0\0€˜Fø<\0\0\0`QÌx;\0\0\0€ƒð9\0\0\0@ %z8\0\0\0€"‚ã6\0\0\0\0ói5\0\0\0\0\0\0à?\0\0\0\0\0\0à¿\0\0\0\0\0\0ð?\0\0\0\0\0\0ø?\0\0\0\0\0\0\0\0ÐÏCëýL>\0\0\0\0\0\0\0\0\0\0\0@¸â?O»ag¬Ý?-DTû!é?›öÒ\vsï?-DTû!ù?âe/"+z<\\3&¦<½Ëðzˆp<\\3&¦‘<\0\0€?\0\0À?\0\0\0\0ÜÏÑ5\0\0\0\0\0À?Q´ð²–±D°ù®¶­y¬C«ªë¨È§ª¦’¥€¤s£k¢h¡j pŸ{žŠœµ›Ñšð™™:˜e—“–Ä•ø”0”k“©’ê‘.‘u¾\nYŽªþŒTŒ¬‹‹dŠÄ‰%‰‰ˆî‡V‡À†+†™…\b…y„ìƒaƒØ‚P‚ɁEÂ€@€ÿý%ûGùs÷ªõêó4ò‡ðãîGí³ë\'ê£è\'ç²åCäÜâzá àËÞ}Ý4ÜñÚ³Ù{ØH×ÖñÔÍӭҒÑ{ÐiÏ[ÎQÍJÌHËJÊOÉXÈdÇtƇŝķÃÔÂôÁÁ<Àe¿¾¾½ï¼#¼Y»‘ºÌ¹\n¹J¸Œ·Ð¶¶`µ-DTû!é?-DTû!é¿Ò!3|Ù@Ò!3|ÙÀ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€-DTû!\t@-DTû!\tÀª\n\0\fVS‹\b¦&)\'\b\v8f\b\b\n0\re!\t\v\b*\n\fL\r\b\b\b\f\n\v\t\t\b\b\t\r\f(\r\b\b\b\n\b\b\r\f\r)\b\t\b\b\r:3 ?\b$$C7@\n&+\0)!9C%V\0K\v\v\f\f\r\f4CY+F\n\f\t\v,6?2\v14\b3*\n,\v7\n$\v+)À"\v\0&\b5\rt\r\re\n\v)\x004\0å\f&8\t /\0\tVZ+^ 0\0\0@\0C.\0\n/\bq\'\tgR!4\fD,\n!#\r3\f\n7\tE\v\t+{\0\f1\0\0j&\f\f\rl!\0@6(\ft‡$\vY#\f"{E5\01/ \r+$\b*ž$$(\b4\f\v\v4\f\0\t\n\b*\tE,\n\tA\n\n&8@\b*#\b6\n\n\rnI73\r3\r("ú*2\n\b*.\tF+\n9\t\r3\b#\t@\t\n#">\n9\b\b\n&\n,BB¸6"?;6G¹9g@\b\b]\b.3\nHIg\bX!\t-1I,%,\0\t)oO\0foÄ\0a\0\0\0\0/\0\0O0\0-Ó@ ,K9@\f\t\0) as\0\0\b\0\0k\r\t\n\0UG\fA\b\0\b\0Õ>!p-\n\0,\0äÏ\bàÅ;D\0\n\n\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¨\0À\tûÏ1-,\v\n\v#\ne\b\n![\v:\v+,\t):7\b\n\r:\b9\v9:\b\v=\f27\v:9\bHZ\v\tb\t\tI7\v$\tf\r^\0\0@\b\v-3A"v\tÛ:\b\n\'\b.\f0(\t\f 8:\b@R\r2?\r"e\0\v\r\r\r\f\b\n1\n\r\r3!\0q}` /\0$]]\0\0\0b\nP"Nf\b—\r&\b\v.0B\f\b#\v3d\ty\0“\0\f"©\v#/-C\0â•\0*\t\0(¥\0&\04F\v1{6)\n1\n2$\b>\f4\t\n_\b9%F\rU\bTîU\bje\0\t\0 \n(\b\t.\rÆÉRzHA\0\v4\0\0\f\0;\t\0(\0?@\r\0\0\0.\0\t”\x0072\b\0>! \0=\0þó\t\0m\b\0\0`€ð\0ª\nÃÐ#`*S‹\b¦&\t)\0&+\0V\0\v+@À@\0&\b5\rt\r\re\n \x004\0å\f&\0.„fM\0+P\0\f\0\0P`$$t\v\v\0*\t\x003\r3]\n\0@\0@ \0UG\fA\b\0\b\0\n\0>\0D\0\0\f\0\0\t\0\0\r\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\t\r\v\b\n-+NaNinf00.0e00E0e0E00000000000000000000000000000000000000000000000000000000000000000.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0eEe-E-\0Â\0\0I€mÀ3€8¶$\0E\0,àM0 N\x004àRÀMàU¤\0V\r¦@V¤×ÀV\0ù@anúàa>ý\0b€Ád7áiàÁoš#!˜/™04!šûCšGF›\0aA›\0ha›9j¡›@mÁ›ÖŒ¡ð¯A #±á ü²Á¡\0¼£\0Ô!£¦Öa¤\0ß©âá«Ðäá®\0îa¯0ñá²\0\0"»à¦â»¸¼®ÎB¼á낼^î¼\0ø½ú"½\0\0C½Kc½z4ƒ½z4Ô½À\0\0 \0Ø\0\0 \0\0.\x002\x009\0J,\0x\0\0‡ÿy\0\0\0Ò\0‚\0†\0\0Î\0‡\0\0\0‰\0Í\0‹\0\0\0Ž\0\0O\0\0\0Ê\0\0\0Ë\0‘\0\0\0“\0\0Í\0”\0\0Ï\0–\0\0Ó\0—\0\0Ñ\0˜\0\0\0œ\0\0Ó\0\0\0Õ\0Ÿ\0\0Ö\0 \0¦\0\0Ú\0§\0\0\0©\0\0Ú\0¬\0\0\0®\0\0Ú\0¯\0\0\0±\0Ù\0³\0·\0\0Û\0¸\0\0\0¼\0\0\0Ä\0\0\0Å\0\0\0Ç\0\0\0È\0\0\0Ê\0\0\0Ë\0Þ\0ñ\0\0\0ò\0ö\0\0Ÿÿ÷\0\0Èÿø&\0 \0\0~ÿ"\0:\0\0+*;\0\0\0=\0\0]ÿ>\0\0(*A\0\0\0C\0\0=ÿD\0\0E\0E\0\0G\0F\b\0p\0v\0\0\0\0\0t\0†\0\0&\0ˆ\0%\0Œ\0\0@\0Ž\0?\0‘\0 \0£\b\0 \0Ï\0\0\b\0Ø\0ô\0\0Äÿ÷\0\0\0ù\0\0ùÿú\0\0\0ý\0~ÿ\0\0P\0\0 \0` \0Š4\0À\0\0\0Á\f\0Ð^\x001%\x000\0 %\0`Ç\0\0`Í\0\0` O\0Зð\0\b\0‰\0\0\0*\0@ô½\0@ô\0”\0ž\0\0Aâ ^\0\b\0øÿ\0øÿ(\0øÿ8\0øÿH\0øÿYøÿh\0øÿˆ\0øÿ˜\0øÿ¨\0øÿ¸\0øÿº\0¶ÿ¼\0\0÷ÿÈ\0ªÿÌ\0\0÷ÿØ\0øÿÚ\0œÿè\0øÿê\0ÿì\0\0ùÿø\0€ÿú\0‚ÿü\0\0÷ÿ&!\0\0£â*!\0\0Aß+!\0\0ºß2!\0\0\0`!\0\0ƒ!\0\0\0¶$\0\0\0,/\x000\0`,\0\0\0b,\0\0\tÖc,\0\0ñd,\0\0Ög,\0m,\0\0äÕn,\0\0Öo,\0\0áÕp,\0\0âÕr,\0\0\0u,\0\0\0~,\0ÁՀ,b\0ë,\0ò,\0\0\0@¦,\0€¦\0"§\f\x002§<\0y§\0}§\0\0üu~§\b\0‹§\0\0\0§\0\0ØZ§\0–§\0ª§\0\0¼Z«§\0\0±Z¬§\0\0µZ­§\0\0¿Z®§\0\0¼Z°§\0\0îZ±§\0\0ÖZ²§\0\0ëZ³§\0\0 ´§\0ħ\0\0Ðÿŧ\0\0½ZƧ\0\0Èuǧ\0˧\0\0™Z̧\0ܧ\0\0¿Yõ§\0\0\0!ÿ\0 \x000i\0\0\0\0\'\0(\0°#\0(\0p\n\0\'\0|\0\'\0Œ\0\'\0”\0\'\0€\f2\0@\0P\r\0 \0 \0 \0@n\0 \0 n\0\0\0é!\0"\0µ\0\0\0çà\0\0àÿø\0\0àÿÿ\0\0\0y\0.ÿÿ1\0\0ÿ3ÿÿ:ÿÿK,ÿÿzÿÿ\0\0Ôþ€\0\0Ã\0ƒÿÿˆ\0\0ÿÿŒ\0\0ÿÿ’\0\0ÿÿ•\0\0a\0™\0\0ÿÿš\0\0£\0›\0\0A¦ž\0\0‚\0¡ÿÿ¨\0\0ÿÿ­\0\0ÿÿ°\0\0ÿÿ´ÿÿ¹\0\0ÿÿ½\0\0ÿÿ¿\0\x008\0Å\0\0ÿÿÆ\0\0þÿÈ\0\0ÿÿÉ\0\0þÿË\0\0ÿÿÌ\0\0þÿÎÿÿÝ\0\0±ÿßÿÿò\0\0ÿÿó\0\0þÿõ\0\0ÿÿù&ÿÿ#ÿÿ<\0\0ÿÿ?\0?*B\0\0ÿÿG\bÿÿP\0\0*Q\0\0*R\0\0*S\0\0.ÿT\0\x002ÿV\x003ÿY\0\x006ÿ[\0\x005ÿ\\\0\0O¥`\0\x003ÿa\0\0K¥c\0\x001ÿd\0\0g¥e\0\0(¥f\0\0D¥h\0\0/ÿi\0\0-ÿj\0\0D¥k\0\0÷)l\0\0A¥o\0\0-ÿq\0\0ý)r\0\0+ÿu\0\0*ÿ}\0\0ç)€\0\0&ÿ‚\0\0C¥ƒ\0\0&ÿ‡\0\0*¥ˆ\0\0&ÿ‰\0\0»ÿŠ\0\'ÿŒ\0\0¹ÿ’\0\0%ÿ\0\0¥ž\0\0¥E\0\0T\0qÿÿw\0\0ÿÿ{\0‚\0¬\0\0Úÿ­\0Ûÿ±\0àÿÂ\0\0áÿÃ\b\0àÿÌ\0\0ÀÿÍ\0ÁÿÐ\0\0ÂÿÑ\0\0ÇÿÕ\0\0ÑÿÖ\0\0Êÿ×\0\0øÿÙÿÿð\0\0ªÿñ\0\0°ÿò\0\0\0ó\0\0Œÿõ\0\0 ÿø\0\0ÿÿû\0\0ÿÿ0\0àÿP\0°ÿa ÿÿ‹4ÿÿÂ\fÿÿÏ\0\0ñÿÑ^ÿÿa%\0ÐÿÐ*\0À\vý\0À\vø\0øÿ€\0\0’ç\0\0“ç‚\0\0œçƒ\0žç…\0\0ç†\0\0¤ç‡\0\0Ûçˆ\0\0‰Š\0\0ÿÿy\0\0Š}\0\0æŽ\0\x008Š”ÿÿ›\0\0Åÿ¡^ÿÿ\0\0\b\0\0\b\0 \0\b\x000\0\b\0@\0\b\0Q\b\0`\0\b\0p\0J\0r\0V\0v\0d\0x\0€\0z\0p\0|\0~\0°\0\b\0¾\0\0ÛãÐ\0\b\0à\0\b\0å\0\0\0N!\0\0äÿp!\0ðÿ„!\0\0ÿÿÐ$\0æÿ0,/\0Ðÿa,\0\0ÿÿe,\0\0ÕÕf,\0\0ØÕh,ÿÿs,\0\0ÿÿv,\0\0ÿÿ,bÿÿì,ÿÿó,\0\0ÿÿ\0-%\0 ã\'-\0\0 ã--\0\0 ãA¦,ÿÿ¦ÿÿ#§\fÿÿ3§<ÿÿz§ÿÿ§\bÿÿŒ§\0\0ÿÿ‘§ÿÿ”§\0\x000\0—§ÿÿµ§ÿÿȧÿÿͧÿÿö§\0\0ÿÿS«\0\0`üp«O\x000hAÿ\0àÿß\0S\0S\0\0\0I¼N\0\0\0ðJ\0\f\0\0™\b°¥\b‡5R\0\0–H\x001\0\0—T\0\b\0\0˜W\0\n\0\0™Y\0\n\0\0šA\0¾\0\0P¥\0\0R¥\0T¥V¥B€\b™\0\0\t™\0\0‚\n™\0\0ƒ\v™\0\0„\f™\0\0…\r™\0\0†™\0\0‡™\0\0ˆ\b™\0\0‰\t™\0\0Š\n™\0\0‹\v™\0\0Œ\f™\0\0\r™\0\0Ž™\0\0™\0\0(™\0\0‘)™\0\0’*™\0\0“+™\0\0”,™\0\0•-™\0\0–.™\0\0—/™\0\0˜(™\0\0™)™\0\0š*™\0\0›+™\0\0œ,™\0\0-™\0\0ž.™\0\0Ÿ/™\0\0 h™\0\0¡i™\0\0¢j™\0\0£k™\0\0¤l™\0\0¥m™\0\0¦n™\0\0§o™\0\0¨h™\0\0©i™\0\0ªj™\0\0«k™\0\0¬l™\0\0­m™\0\0®n™\0\0¯o™\0\0²º™\0\0³‘™\0\0´†™\0\0¶‘B\0\0·‘B™¼‘™\0\0ÂÊ™\0\0×™\0\0ĉ™\0\0Æ—B\0\0Ç—B™Ì—™\0\0Ò™\b\0Ó™\bÖ™B\0\0×™\bBâ¥\b\0ã¥\bä¡\0\0æ¥B\0\0ç¥\bBòú™\0\0ó©™\0\0ô™\0\0ö©B\0\0÷©B™ü©™\0\0\0ûF\0F\0\0\0ûF\0I\0\0\0ûF\0L\0\0\0ûF\0F\0I\0ûF\0F\0L\0ûS\0T\0\0\0ûS\0T\0\0\0ûDF\0\0ûD5\0\0ûD;\0\0ûNF\0\0ûD=\0\0(\'\0ØÿØ#\0Øÿ—\n\0Ùÿ£\0Ùÿ³\0Ùÿ»\0ÙÿÀ\f2\0Àÿp\r\0àÿÀ\0àÿ`n\0àÿ»n\0åÿ"é!\0Þÿ\0\0°\0\0]`à ½ !|, /0`3 à4ø¤`6\f¦ 6ûà6\0þàBýaC€!G\náG$\r¡H«!J/!K;áZóa[04¡ca!eðj¡e@m!fOoáfð¯ag¼¡h\0ÏaigÑái\0Úaj\0à¡k®â!mëä!oÐè¡oûóaq\0îqð?r \0\0 `€  \b¶$@\t\0, @¦à0«`\0û !ÿà\0a€á€\f¡ ¡@n¡\0Ôá¦Ö¡\0ßA"0à!%\0éá%0ñ!&Šñr&\0@¸¶³¬¨¡’Œˆ„’S]“…\f»N\0\0\0\0\0\0\0\0\0\0\0\0ÿ\0\0\0üÿÿ¨ªªªªªªÿÿÿÿÿÿ\0ÿý\0\0\0üÿÿ\0\0\0\0\0\0€\0\0\0ÿÿÿÿ…ªÿÿÿÿÿÿ\0\0\0\0ÿÿÿÿ\0\0\0\0üÿÿÿ\0\0\0\0\0ÿÿÿïÿ\0\0\0üÿÿ\0\0\0\0ðÿÿÿÿ\0\0Àÿÿÿÿÿ÷ÿÿÿÀC\0\0\0\0ÿÿ\0\0\0\0\0\0ÿÿ\0\0\0€ÿÿÿÀÿÿÿ\0\0\0ü\0\0\0\0\0\0\0ø\0\0ÿÿÿÿÿ÷üÿÿ÷\0\0ðTÕªªªªªªªªªªªªªªªªªªªªªUÿ\0ÿ\0ÿ\0ß@?\0ÿ\0ÿ\0ÿ?ÿÿÿÿbÚ?\0\0\0\0\0\0\0? \0\0\0\0\0Š<\0Ä\b\0\0€2\0\0€ÿûÿûÿ㪪ª/¹ÿÿÿÿÿý\n¥ª\n\0\0^\0\0\0\0\0 ÿÿÏÿÿÿÿÿ\0?\0ÿ\0ÿ\0Ü\0Ï\0ÿ\0Ü\0ªªªªP\b\0ÿÿÿÿ¿ \0\0ÿûÿà\0\0\0Àßÿÿ\0\0\0\0\0\0\0\0\0ªªª:\0\0\0\0\0ø\0\0\0\0\0÷\v\0\0\0\0\0\0ÿ\0\0\0\0\0\0ªªªªªªú“ªªªªªªÿ•@RUµªª)ªªPºªª‚ ªÿÿÿÿªªªª\0\0\0\0¨ª«ªU«ªªªªªÔ)1$N*-Qæüÿÿ\0\0Àë\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0\0\0\0\0\09\0\0\0\0\0\0\0\0\0\0\0\0\0)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0-\0\0\0\0\0\0\0\0\0\0\0\0\b>\0\0\0\0\0\0\0\0\0\0\0\0\0E,\x00513"\0\0\0\0\t:\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\0\0\0\0\0\0\0\0\0\0\0\0\0\0#6720$+\0\f \0\0/\x00999\0G%&\0H\0M\0\0\0\0\0\0\0\0\0\n=\0\0\0\0\0\0\0\0\0\0!\0\'(\0\0\0\0\0\0\0\0\0\0\04F\b<\0\0\0\0\0\0\0\0\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0C*8\vDA\rBNKL.\0¶\0J\0¦\0¢\0Ÿ\0–\0”\0Ž\0†\0ƒ\0@BFS\f\b’Œ†‚¤’²«\0\0\0\0\0\0ÿÿÿÿÿÿ?\0ÿ?\0\0\0ÿÿÿ\0\0\0üÿÿTUUUUUUõZU\0\0 \0\0\0\0\0ÿÿÿÿÿ\0\0\0ÿÿÿ_ü\0\0ðÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿUUUUUUþÿ\0\0\0\0\0\0E€°çß\0\0\0{UUUUUUlUUUUUU\0j¤ªJUUÒUU(EUU}_UUUUUUUUU«*UUUUUU\0\0\0\0UUUU\0\0\0\0TUTUªTUUUUU+ÖÎÛ±ÕÒ®\0\0\0\0\0\0\0\0\0\0\0?\0\0\0ÿÿÿ\0\0ÐdÞ?\0UUUU(\0 \0\0\0ÿÿ\0\0\0?\0ª\0ÿ\0\0@×þÿû\0\0\0\0ÿÿ?\0\0\0ÿÿ\0\0\0\0ÿ÷7\0\0\0\0\0zU\0\0\0\0\0\0¿ \0\0\0\0\0\0UUUUUUUª„8\'>P=À\0\0\0\0ê%À\0€UUUæ\0ÿÿÿÿÿç\0ÿÿÿ\0\0ð\0\0\0\0\0\0ÿ÷\0ÿ\0?\0ÿ\0ÿ,,#,,,,,,,,,,\0,,,,,,,,,,,,,,,,,(,,,,,B+,,, $\r",,,\v\',,,,\t\b-,,,,,,,,,,,,,%C,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,,,,,,,,,,,,1?,,,,,,,,,,,,,,A@,,,,,2,,,,,,,,,,,,,5,,,,,,,,,,,,,,6.,,,,,,,,,,,,3,\t/,*!,,,,,,,,,4\n0,,,,,,,,,,4&,,,,,,,,,,,,:7\f8);>=•.\t™ßý8/ät#ìõÏÓ\bÜÄڰͼ3¦&éN\0\0|.˜[‡Ó¾rŸÙ؇/ÆPÞkpnJÏؕÕnq²&°fÆ­$6ZÓB<TÿcÀsUÌïùeò(¼U÷Ç܀ÜínôÎïÜ_÷S\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ûÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À)\0\0\0\0\0\0¬\0\0\0\0\0\0\0È-\0\0\0\0\0\0\0\0\0\0\0\0\0Ð-\0\0\0\0\0\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0\0\0\0\0\0¹\0\0\0\0\0\0\0n2\0\0\0\0\0\0f\0\0\0\0\0\0\0ž5\0\0\0\0\0\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ùQname\0mo-rts-eop.wasmîOÙ\0ic0_stable64_readic0_stable64_writeic0_performance_countermoc_stable_mem_get_versionmoc_stable_mem_get_sizemoc_stable_mem_growmoc_stable_mem_set_versionic0_stable64_size\bic0_stable64_grow\t\vbigint_trap\n\brts_trap\vkeep_memory_reserve\f\fint_from_i64\r#moc_stabilization_instruction_limitmoc_stable_memory_access_limitidl_limit_checkmoc_stable_mem_set_size__wasm_call_ctors__wasm_apply_data_relocs__wasm_apply_global_relocso::read_blob::n::allocate::allocation_barrierè::sliced_array_scan::>::scan::{closure#0}>ê>::evacuate::u::allocate_bitmap::M::grow_memorymotoko_rts::rts_trap_with{::allocate_large_object::::allocate_in_new_partition::Omotoko_rts::persistence::update_stable_type::]motoko_rts::persistence::compatibility::memory_compatible:: s>::mark_object!Qmotoko_rts::principal_id::base32_to_principal::"Xmotoko_rts::principal_id::base32_of_checksummed_blob::#Cmotoko_rts::region::region_load::$-::trap_with%Dmotoko_rts::region::region_store::&Fmotoko_rts::region::region_recover::\'$motoko_rts::region::region_trap_with(^motoko_rts::region::region_migration_from_no_stable_memory::)motoko_rts::region::write_magic*`motoko_rts::region::region_migration_from_some_stable_memory::+Imotoko_rts::text_iter::text_iter_next::,Dmotoko_rts::text_iter::find_leaf::-"motoko_rts::idl::memory_compatible.Omotoko_rts::gc::incremental::incremental_gc::/»motoko_rts::gc::incremental::sort::quicksort::<::rank_partitions_by_garbage::{closure#0}>0motoko_rts::types::block_size1S::mark_large_object2X::next_partition3î>::evacuate::4?motoko_rts::gc::incremental::update_new_allocation::{closure#0}5__rustc::__rust_alloc6__rustc::__rust_realloc7motoko_rts::idl_trap_with8motoko_rts::trap_with_prefix9L::write_blob:+motoko_rts::region::stable_memory_trap_with;motoko_rts::idl::parse_fields<motoko_rts::idl::leb128_decode=motoko_rts::idl::sleb128_decode>"motoko_rts::idl::leb128_decode_ptr?motoko_rts::idl::sub@motoko_rts::idl::skip_blobAmotoko_rts::idl::skip_textB$motoko_rts::text::text_compare_rangeC+motoko_rts::bigint::bigint_leb128_encode_goD<::write_strE=::write_charF<::write_fmtGacosH\valloc_arrayI\nalloc_blobJ\falloc_regionKalloc_weak_refL\valloc_wordsMasinNassign_stable_typeOatanPatan2Qbigint_2complement_bitsR\nbigint_absS\nbigint_addTbigint_count_bitsU\nbigint_divV\tbigint_eqW\tbigint_geX\tbigint_gtY\fbigint_isnegZ\tbigint_le[bigint_leb128_decode\\bigint_leb128_decode_word64]bigint_leb128_encode^bigint_leb128_size_\nbigint_lsh`\tbigint_lta\nbigint_mulb\nbigint_negcbigint_of_float64dbigint_of_int64ebigint_of_word64f\nbigint_powg\nbigint_remh\nbigint_rshibigint_sleb128_decodejbigint_sleb128_decode_word64kbigint_sleb128_encodelbigint_sleb128_sizem\nbigint_subnbigint_to_float64obigint_to_word32_trappbigint_to_word32_trap_withqbigint_to_word32_wraprbigint_to_word64_trapsbigint_to_word64_trap_withtbigint_to_word64_wrapu\fblob_comparev\tblob_iterwblob_iter_donexblob_iter_nextyblob_of_principalz\vtext_to_buf{\fblob_of_text|buffer_in_32_bit_range}char_is_alphabetic~char_is_lowercasechar_is_uppercase€char_is_whitespace\rchar_to_lower‚\rchar_to_upperƒ\rcompute_crc32„contains_field…continuation_count†continuation_table_size‡cosˆexp‰\nfind_fieldŠ\bskip_any‹\tfloat_fmtŒfmodfmodfŽfree_stable_actorget_dedup_tableget_graph_destabilized_actor‘\rget_heap_size’get_max_live_size“get_migrations”\rget_reclaimed•get_static_variable–get_total_allocations—get_upgrade_instructions˜graph_destabilization_increment™graph_stabilization_incrementšhas_stable_actor›idl_alloc_typtblœidl_subidl_sub_buf_initžidl_sub_buf_wordsŸincremental_gc \vinit_region¡initialize_incremental_gc¢initialize_static_variables£is_graph_stabilization_started¤\rleb128_decode¥\rleb128_encode¦load_stable_actor§log¨\tmp_calloc©mp_freeª\nmp_realloc«parse_idl_header¬peek_future_continuation­pow®powf¯principal_of_blob°read_persistence_version±recall_continuation²\vregion0_get³\vregion_grow´\tregion_idµ\vregion_init¶region_load_blob·region_load_float64¸region_load_word16¹region_load_word32ºregion_load_word64»region_load_word8¼\nregion_new½region_page_count¾region_store_blob¿region_store_float64Àregion_store_word16Áregion_store_word32Âregion_store_word64Ãregion_store_word8Äregion_vec_pagesÅregister_stable_typeÆremember_continuationÇ\nrunning_gcÈsave_stable_actorÉschedule_incremental_gcÊset_dedup_tableËset_migrationsÌset_static_variableÍset_upgrade_instructionsÎsinÏ\vskip_fieldsÐ\vskip_leb128Ñsleb128_decodeÒsleb128_encodeÓstart_gc_after_destabilizationÔstart_graph_destabilizationÕstart_graph_stabilizationÖstop_gc_before_stabilization×tanØ\ftext_compareÙ\vtext_concatÚ\ttext_iterÛtext_iter_doneÜtext_iter_nextÝ\btext_lenÞtext_lowercaseßtext_of_ptr_sizeàtext_singletonátext_uppercaseâ\nutf8_validã\rutf8_validateäversionåweak_ref_is_liveæwrite_with_barrierç,__rustc::__rust_no_alloc_shim_is_unstable_v2è*libm::math::rem_pio2_large::rem_pio2_largeélibm::math::sin::sinêlibm::math::cos::cosëlibm::math::sqrt::sqrtìlibm::math::rem_pio2::rem_pio2ílibm::math::exp::expîlibm::math::sqrt::sqrtfïlibm::math::pow::powðlibm::math::ldexp::ldexpñlibm::math::tan::tanòlibm::math::k_tan::k_tanólibm::math::acos::acosôlibm::math::asin::asinõlibm::math::atan::atanölibm::math::fmod::fmod÷libm::math::fmod::fmodfølibm::math::powf::powfùlibm::math::ldexp::ldexpfúlibm::math::atan2::atan2ûX>::reserve::do_reserve_and_handle::ü*::finish_growý::to_lowercaseþ::to_uppercaseÿ:core::num::imp::flt2dec::strategy::grisu::format_exact_opt€7core::num::imp::flt2dec::strategy::dragon::format_exact+::pad_formatted_parts‚6core::fmt::float::float_to_decimal_common_exact::ƒ=core::num::imp::flt2dec::strategy::grisu::format_shortest_opt„:core::num::imp::flt2dec::strategy::dragon::format_shortest…9core::fmt::float::float_to_decimal_common_shortest::†:core::fmt::float::float_to_exponential_common_exact::‡=core::fmt::float::float_to_exponential_common_shortest::ˆcore::fmt::write‰core::str::converts::from_utf8Š.::mul_digits‹,::mul_pow2Œ-::write_formatted_parts)core::str::count::char_count_general_caseŽ4core::unicode::unicode_data::alphabetic::lookup_slow0core::unicode::unicode_data::conversions::lookup2core::unicode::unicode_data::conversions::to_lower‘2core::unicode::unicode_data::conversions::to_upper’8core::unicode::unicode_data::case_ignorable::lookup_slow“/core::unicode::unicode_data::cased::lookup_slow”.core::unicode::unicode_data::lowercase::lookup•.core::unicode::unicode_data::uppercase::lookup–4core::num::imp::flt2dec::strategy::dragon::mul_pow10— ::fmt˜!::fmt™I::nextš\t__ashlti3›\t__lshrti3œ9compiler_builtins::int::specialized_div_rem::u128_div_rem\b__multi3ž\t__umodti3Ÿ\t__udivti3 memcmp¡mp_init¢mp_zero£mp_add¤mp_sub¥mp_mul¦mp_cmp§\nmp_set_u32¨\nmp_get_i32©mp_get_mag_u32ª\nmp_set_u64«\nmp_set_i64¬\nmp_get_i64­mp_get_mag_u64®\rmp_set_double¯\rmp_get_double°mp_div±\fmp_init_copy²mp_neg³mp_abs´\bmp_2exptµ\vmp_expt_u32¶mp_set·mp_sqr¸\bs_mp_add¹\nmp_cmp_magº\bs_mp_sub»mp_grow¼\bmp_clamp½\fmp_init_size¾mp_exch¿\bmp_clearÀmp_copyÁ\rmp_count_bitsÂ\tmp_mul_2dÃmp_rshdÄ\bmp_mul_dÅ\tmp_div_2dÆ\tmp_mod_2dÇs_mp_balance_mulÈ\rs_mp_toom_mulÉ\rs_mp_toom_sqrÊs_mp_karatsuba_sqrË\rs_mp_sqr_fastÌs_mp_karatsuba_mulÍs_mp_mul_digs_fastÎ\rs_mp_mul_digsÏ\rmp_init_multiÐmp_clear_multiÑ\bmp_mul_2Ò\bmp_div_2Ó\bmp_div_3Ômp_lshdÕmp_incrÖmp_decr×\bmp_add_dØ\bmp_sub_dä\0__stack_pointer\r__memory_base\f__table_baseJGOT.data.internal.core::unicode::unicode_data::white_space::WHITESPACE_MAP2GOT.func.internal.::fmt3GOT.func.internal.::fmt\t\b\0.data\0R\tproducers\fprocessed-byrustc%1.96.0-nightly (c75612477 2026-04-07)clang19.1.7\0žtarget_features\t+\vbulk-memory+bulk-memory-opt+call-indirect-overlong+\bmemory64+\nmultivalue+mutable-globals+nontrapping-fptoint+reference-types+\bsign-ext'}else{if(!n)break r;t=4<=n?'\0asm\0\0\0\0\bdylink.0íŠ\0´0`\0```\0`~~~\0`\0~`~~`\0`\0`\0\0``~\0`~\0`\0``\b``||`~`|||`~~`|`~`|`~`~`|`}}}`\t`\0`~~`~`~|`~`~\0`~|\0`~~\0`|\0`}}`||`|||`}}`\0`|`|`~~\0`~~~~\0`|«envmemory\0env__indirect_function_tablep\0env__stack_pointerenv\r__memory_base\0env\f__table_base\0envkeep_memory_reserve\0envic0_stable64_read\0envic0_stable64_write\0envmoc_stable_mem_get_version\0envmoc_stable_mem_get_size\0envmoc_stable_mem_grow\0envmoc_stable_mem_set_version\0envget_static_roots\0env\rget_heap_base\0env\brts_trap\0\benv\vbigint_trap\0\tenv\fint_from_i32\0\nenvidl_limit_check\0\vµ³\t\t\t\n\b\n\n\n\n\n\n\f\r\f\b\t\t\t\b\r\n\b\b\r\0\0\0\b\0\n\n\0\n\n\n\n\n\n\n\b\n\b\n\n\n\n\b\n\b\n\n\n\n\n\n\b\n\n\n\n\n\n\n\n\r\0\t\f\t\n\b\b\n\n\n !!!\n"#""$"\n\n\t\r\n\b\t\n$\0\b\b\n\n\n\n\n\n\n\n\b\b\t%&\'()\0\r\0\0**+\r\r+,+\0\n\0\b\b\n\n\n\n\n--....\n\b\b\n\n\v\v/\b\b\n\b\b\n\nA·)\vA\vA\vÅ–__wasm_call_ctors\0\r__wasm_apply_data_relocs\0allocation_barrier\0memcmp\0†acos\0;\valloc_array\0<\nalloc_blob\0=\falloc_region\0>\falloc_stream\0?\valloc_words\0@asin\0Aatan\0Batan2\0Cbigint_2complement_bits\0D\nbigint_abs\0E\nbigint_add\0Fbigint_count_bits\0G\nbigint_div\0H\tbigint_eq\0I\tbigint_ge\0J\tbigint_gt\0K\fbigint_isneg\0L\tbigint_le\0Mbigint_leb128_decode\0Nbigint_leb128_decode_word64\0Obigint_leb128_encode\0Pbigint_leb128_size\0Qbigint_leb128_stream_encode\0R\nbigint_lsh\0S\tbigint_lt\0T\nbigint_mul\0U\nbigint_neg\0Vbigint_of_float64\0Wbigint_of_int32\0Xbigint_of_int64\0Ybigint_of_word32\0Zbigint_of_word64\0[\nbigint_pow\0\\\nbigint_rem\0]\nbigint_rsh\0^bigint_sleb128_decode\0_bigint_sleb128_decode_word64\0`bigint_sleb128_encode\0abigint_sleb128_size\0bbigint_sleb128_stream_encode\0c\nbigint_sub\0dbigint_to_float64\0ebigint_to_word32_trap\0fbigint_to_word32_trap_with\0gbigint_to_word32_wrap\0hbigint_to_word64_trap\0ibigint_to_word64_trap_with\0jbigint_to_word64_wrap\0k\fblob_compare\0l\tblob_iter\0mblob_iter_done\0nblob_iter_next\0oblob_of_principal\0p\vtext_to_buf\0q\fblob_of_text\0rchar_is_alphabetic\0schar_is_lowercase\0tchar_is_uppercase\0uchar_is_whitespace\0v\rchar_to_lower\0w\rchar_to_upper\0x\rcompute_crc32\0ycontinuation_count\0zcontinuation_table_size\0{cos\0|exp\0}\nfind_field\0~\bskip_any\0\tfloat_fmt\0€fmod\0fmodf\0‚\rget_heap_size\0ƒget_max_live_size\0„\rget_reclaimed\0…get_total_allocations\0†idl_sub\0‡idl_sub_buf_init\0ˆidl_sub_buf_words\0‰incremental_gc\0Š\vinit_region\0‹initialize_incremental_gc\0Œ\rleb128_decode\0\rleb128_encode\0Žlog\0\tmp_calloc\0mp_free\0‘\nmp_realloc\0’parse_idl_header\0“peek_future_continuation\0”pow\0•powf\0–principal_of_blob\0—recall_continuation\0˜\vregion0_get\0™\vregion_grow\0š\tregion_id\0›\vregion_init\0œregion_load_blob\0region_load_float64\0žregion_load_word16\0Ÿregion_load_word32\0 region_load_word64\0¡region_load_word8\0¢\nregion_new\0£region_page_count\0¤\vregion_size\0¥region_store_blob\0¦region_store_float64\0§region_store_word16\0¨region_store_word32\0©region_store_word64\0ªregion_store_word8\0«region_vec_pages\0¬remember_continuation\0­\nrunning_gc\0®schedule_incremental_gc\0¯sin\0°\vskip_fields\0±\vskip_leb128\0²sleb128_decode\0³sleb128_encode\0´stop_gc_on_upgrade\0µstream_reserve\0¶stream_shutdown\0·\fstream_split\0¸stream_stable_dest\0¹\fstream_write\0ºstream_write_byte\0»stream_write_text\0¼tan\0½\ftext_compare\0¾\vtext_concat\0¿\ttext_iter\0Àtext_iter_done\0Átext_iter_next\0Â\btext_len\0Ãtext_lowercase\0Ätext_of_ptr_size\0Åtext_singleton\0Æ\ttext_size\0Çtext_uppercase\0È\nutf8_valid\0É\rutf8_validate\0Êversion\0Ëwrite_with_barrier\0Ì\b\t\0#\v.ýþ-89:\nů\b³\0\v”\0A„Š#j#Aj6\0AˆŠ#j#Aj6\0AŒŠ#j#Aj6\0AŠ#j#A¨;j6\0A˜Š#j#A°Ã\0j6\0A Š#j#A¸Ã\0j6\0A°Š#j#A€Ä\0j6\0A¸Š#j#AÖÌ\0j6\0AÀŠ#j#A†Ó\0j6\0\v\0#A·)j$#Aj$#Aj$\võ\b#€€€€\0A€k"$€€€€\0@ \0( "Aÿÿÿq\r\0A\0!@@@@@@ \0 j"Aj-\0\0AG\r\0 A\fj(\0A\0 Aj(\0kF\r\v@ A j-\0\0AG\r\0 A(j(\0A\0 A,j(\0kF\r\v A8j"A€G\r\0\v \0!@ \0(„"AjA€I\r\0 Aÿ~j"! \0!@ A€qA€F\r\0 AvAjAq! ! \0!@ A€j! (€! Aj"\r\0\v\v A€I\r\0@ A€q! (€(€(€(€(€(€(€(€! A€xj! A€G\r\0\v\v At"A€€€j‘€€€\0 B\x007 B€€€€ÀÀ7\b A;  6\0 A\x006\0 Aj!Aðd!@@  j"A´jB\x007\0 A°jA;\0 A¬j A}j6\0 A¼jB\x007\0 AÃjA\x006\0\0 AÐjB\x007\0 AÌjA;\0 AÈj A~j6\0 AØjB\x007\0 AßjA\x006\0\0 AìjB\x007\0 AèjA;\0 Aäj Aj6\0 AôjB\x007\0 AûjA\x006\0\0 E\r AˆjB\x007\0 A„jA;\0 A€j 6\0 AjB\x007\0 A—jA\x006\0\0 Aj! Að\0j!\f\0\v\v  A€ü\n\0\0 A\x006€  6€ \0 \0(A€j"6 \0 \0(„A€j6„ \0 \0(¨A„j6¨A\0!@@ \0 j"Aj-\0\0AG\r\0 A\fj(\0A\0 Aj(\0kF\r\v@ A j-\0\0AG\r\0 A(j(\0A\0 A,j(\0kF\r\v A8j"A€G\r\0\v#€€€\0A€€€€\0jA’€€€\0\0\v Aj!\v \0(!\f\v Aj!\v (\0! \0 Aj6 \0!@ A€I\r\0 ! \0!@ A€j"A€qA€F\r\0 AvAjAq! ! \0!@ A€j! (€! Aj"\r\0\v\v A€I\r\0@ (€(€(€(€(€(€(€(€! A€xj"Aÿ\0K\r\0\v\v  Aÿ\0qAlj"A:\0 A\0:\0 (\0AtA€€€j‘€€€\0 (\0At!\v \0 A€€À\0j6  A€j$€€€€\0 \v·~B€€üÿ!@#€€€\0A슁€\0j-\0\0\r\0#€€€\0Að쀀\0j"(  (”kAtA€€üÿ|j­!\v@@ B€€üÿ€€€€\0 \0­"T\r\0@ Bÿÿ|Bˆ§"\0?\0"M\r\0 \0 k@\0AF\r\v\v#€€€\0A€€€€\0jA’€€€\0\0\v#€€€\0A€€€€\0jA’€€€\0\0\v\0#€€€\0Aðˆ€€\0jA\v \0 «€€€\0\0\vï\r#€€€€\0A€k"$€€€€\0@@@ \0AÿÿÿoK\r\0 \0Aÿÿÿj"Av!@@@@#€€€\0Að쀀\0j(”"E\r\0A€!A\0!A\0!@ !\b#€€€\0!@@ "\tA€O\r\0 Að쀀\0jAj!\n\f\v#€€€\0!@@ \tA€j"\vA€qA€G\r\0 Að쀀\0jAj! \t!\f\v AvAjAq!\f#€€€\0Að쀀\0jAj! \t!@ A€j! (\0"\nA€j! \fAj"\f\r\0\v\v \vA€I\r\0@ (\0(€(€(€(€(€(€(€"\nA€j! A€xj"Aÿ\0K\r\0\v\v \tAj"!@ \n \tAÿ\0qAlj"\n-\0AG\r\0 ! \n(\fA\0 \n(kG\r\0  \bk O\r \b!\v Aj!  G\r\0\v#€€€\0! AO\r\0 Að쀀\0jAj!\f\f\v Aj!#€€€\0Að쀀\0jAj!\f@ \f(€!\f A€j"Aÿ\0K\r\0\v\v At"\tA€€€j‘€€€\0 B\x007 B€€€€ÀÀ7\b A;  6\0 A\x006\0 Aj!Aðd!\n@@  \nj"A´jB\x007\0 A°jA;\0 A¬j A}j6\0 A¼jB\x007\0 AÃjA\x006\0\0 AÐjB\x007\0 AÌjA;\0 AÈj A~j6\0 AØjB\x007\0 AßjA\x006\0\0 AìjB\x007\0 AèjA;\0 Aäj Aj6\0 AôjB\x007\0 AûjA\x006\0\0 \nE\r AˆjB\x007\0 A„jA;\0 A€j 6\0 AjB\x007\0 A—jA\x006\0\0 Aj! \nAð\0j!\n\f\0\v\v \t A€ü\n\0\0 \tA\x006€ \f \t6€#€€€\0Að쀀\0j" ( A€j"\r6   (”A€j"6”  (¸A„j6¸@ E\r\0A€!A\0!A\0!@ !\b#€€€\0!@@ "\tA€O\r\0 Að쀀\0jAj!\n\f\v#€€€\0!@@ \tA€j"\vA€qA€G\r\0 Að쀀\0jAj! \t!\f\v AvAjAq!\f#€€€\0Að쀀\0jAj! \t!@ A€j! (\0"\nA€j! \fAj"\f\r\0\v\v \vA€I\r\0@ (\0(€(€(€(€(€(€(€"\nA€j! A€xj"Aÿ\0K\r\0\v\v \tAj"!@ \n \tAÿ\0qAlj"\n-\0AG\r\0 ! \n(\fA\0 \n(kG\r\0 \b!  \bk O\r\v Aj!  G\r\0\v\v#€€€\0A€€€€\0jA’€€€\0\0\v#€€€\0Að쀀\0j( !\r\v#€€€\0Að쀀\0j" \r k6  \b j"\tAj"A€O\r Aj!\f\v\0\v#€€€\0Að쀀\0j(! \tAÿ~j"A€I\r\0@ \tAÿ}j"\fA€qA€F\r\0 \fAvAjAq!\n@ A€j! (€! \nAj"\n\r\0\v\v \fA€I\r\0@ (€(€(€(€(€(€(€(€! A€xj"Aÿ\0K\r\0\v\v  Aÿ\0qAlj(\0AtA€€€j‘€€€\0@ \b \tO\r\0 \0 A€€€pqkA€€€j! \b!\f@#€€€\0!@@ \fA€O\r\0 Að쀀\0jAj!\n\f\v#€€€\0Að쀀\0jAj! \f!@ (\0"\nA€j! A€j"Aÿ\0K\r\0\v\v \n \fAÿ\0qAlj" A€€€ \f F"6 A€;#€€€\0Að쀀\0j" (¸ j6¸ \fAj"!\f  \tG\r\0\v\v#€€€\0!@@ \bA€O\r\0 Að쀀\0jAj!\n\f\v#€€€\0!@@ \bA€j"\tA€qA€G\r\0 Að쀀\0jAj! \b!\f\v \tAvAjAq!\f#€€€\0Að쀀\0jAj! \b!@ A€j! (\0"\nA€j! \fAj"\f\r\0\v\v \tA€I\r\0@ (\0(€(€(€(€(€(€(€"\nA€j! A€xj"Aÿ\0K\r\0\v\v \n \bAÿ\0qAlj"(\0! (\f! A€j$€€€€\0  AtjAj\vÆ\b#€€€€\0A€k"$€€€€\0@@#€€€\0Að쀀\0j"(œ"A€O\r\0 Aj!\f\v#€€€\0!@@ A€j"A€qA€G\r\0 Að쀀\0jAj! !\f\v AvAjAq!#€€€\0Að쀀\0jAj! !@ A€j! (\0"A€j! Aj"\r\0\v\v A€I\r\0@ (\0(€(€(€(€(€(€(€"A€j! A€xj"Aÿ\0K\r\0\v\v#€€€\0Að쀀\0j" (¸  Aÿ\0qAlj(j6¸A\0!A\0!@ -\0´AG\r\0#€€€\0Að쀀\0jAj€€€\0!\v@@@@@#€€€\0Að쀀\0j jAj-\0\0E\r\0A€€€#€€€\0Að쀀\0j j"Aj(\0 A j(\0jk \0I\r\0#€€€\0Að쀀\0j jAj!\f\v@#€€€\0Að쀀\0j jA0j-\0\0AG\r\0A€€€#€€€\0Að쀀\0j j"A8j(\0 A@ A€€€I\r\0\0\v Aj•€€€\0"A\tj 6\0 Aj 6\0 Aj \x006\0 \v5 AjAvAj•€€€\0"A\tj 6\0 Aj 6\0 Aj \x006\0 \voA•€€€\0"Aj 6\0 A\tj \x007\0 Aj 6\0 AjA\'6\0@ AF\r\0 AqE\r\0 Aj!A! E\r\0 (!\v Aj 6\0 —€€€\0\v¤@ \0A€€€€I\r\0#€€€\0Aʇ€€\0jA’€€€\0\0\v \0A#jAvAj•€€€\0"A\rjB\x007\0 A\tj \0A j6\0 Aj 6\0 Aj"\0A6\0 AjB\x007\0 AjB\x007\0 A)jA 6\0 A%j#‚€€€\0A€€€€\0j6\0 —€€€\0 \0\v\n\0 \0•€€€\0\v\n\0 \0ځ€€\0\v\n\0 \0ہ€€\0\v\f\0 \0 à€€\0\v—#€€€€\0Ak"$€€€€\0 \0Aj(\0"\0Aj \0Aj6\0 \0A\tj!@@ \0Aj(\0\r\0 ¨‚€€\0!\0\f\v B\x007\b B\x007\0@  ˜‚€€\0\r\0 ¼‚€€\0\r\0 ¨‚€€\0!\0\f\vŠ€€€\0\0\v Aj$€€€€\0 \0Aj\v×#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ Aj‡‚€€\0\r\0  )7\b  )7\0 \0Aj(\0"\0Aj \0Aj6\0 \0A\tj š‚€€\0\r\0 (\f"E\r Alj(\0Aj(\0"\0A\rj(\0 (G\r (\b! (\0! \0Aj 6\0 \0Aj 6\0 \0A\tj 6\0 A j$€€€€\0 \0\vŠ€€€\0\v\0\vñ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ Aj‡‚€€\0\r\0  )7\b  )7\0 \0Aj(\0"\0Aj \0Aj6\0 Aj(\0"Aj Aj6\0 \0A\tj A\tj ‰‚€€\0\r\0 (\f"E\r Alj(\0Aj(\0"\0A\rj(\0 (G\r (\b! (\0! \0Aj 6\0 \0Aj 6\0 \0A\tj 6\0 A j$€€€€\0 \0\vŠ€€€\0\v\0\v"\0 \0Aj(\0"\0Aj \0Aj6\0 \0A\tj¨‚€€\0\vó#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ Aj‡‚€€\0\r\0  )7\b  )7\0 \0Aj(\0"\0Aj \0Aj6\0 Aj(\0"Aj Aj6\0 \0A\tj A\tj A\0—‚€€\0\r\0 (\f"E\r Alj(\0Aj(\0"\0A\rj(\0 (G\r (\b! (\0! \0Aj 6\0 \0Aj 6\0 \0A\tj 6\0 A j$€€€€\0 \0\vŠ€€€\0\v\0\v=\0 \0Aj(\0"\0Aj \0Aj6\0 Aj(\0"Aj Aj6\0 \0A\tj A\tjŒ‚€€\0E\vB\0 \0Aj(\0"\0Aj \0Aj6\0 Aj(\0"Aj Aj6\0 \0A\tj A\tjŒ‚€€\0AsAv\v?\0 \0Aj(\0"\0Aj \0Aj6\0 Aj(\0"Aj Aj6\0 \0A\tj A\tjŒ‚€€\0A\0J\v"\0 \0Aj(\0"\0Aj \0Aj6\0 \0Aj(\0A\0G\v?\0 \0Aj(\0"\0Aj \0Aj6\0 Aj(\0"Aj Aj6\0 \0A\tj A\tjŒ‚€€\0AH\vç#€€€€\0A0k"$€€€€\0 B\x007( B\x007 @@@ A j‡‚€€\0\r\0  )(7\b  ) 7\0 B\x007( B\x007 A j‡‚€€\0\r\0  )(7  ) 7A\0!@ \0(\0\0" \0(\0O\r -\0\0! \0 Aj6\0\0 Aj Aÿ\0q‚€€\0 Aj  Aj©‚€€\0\r  Aj ‰‚€€\0\r Aj! ÀAL\r\0\v (\f"E\r Alj(\0Aj(\0"\0A\rj(\0 (G\r (\b! (\0! \0Aj 6\0 \0Aj 6\0 \0A\tj 6\0 A0j$€€€€\0 \0\vŠ€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\v\0\v‰\t~#€€€€\0A k"$€€€€\0@@@@@ (\0\0 §Av"jAj" (\0K\r\0  6\0\0Bÿ\0! \0Bÿ\0ƒ!@ B\bT\r\0 Bx|"\bBˆB|"\tBƒ!@ \bBT\r\0 \tBüÿÿÿÿÿÿÿ?ƒ!\bBÿ\0!@ B†!\t \0Bˆ!\n B†!\v \0Bˆ!\f B†!\r \0Bˆ! \0Bˆ"\0 B†"ƒ  \rƒ \n \tƒ \f \vƒ „„„„! \bB||"\bB\0R\r\0\v P\r\v@ \0Bˆ"\0 B†"ƒ „! B|"B\0R\r\0\v\v AG\r@ B€€€€|B€€€€\bT\r\0 B\x007 B\x007 Aj‡‚€€\0\r  )7\b  )7\0  ‘‚€€\0 (\f"E\r Alj(\0Aj(\0"A\rj(\0 (G\r (\b! (\0! Aj 6\0 Aj 6\0 A\tj 6\0\f\v §‹€€€\0!\f\v#€€€\0A”’€€\0jAª€€€\0\0\v §‹€€€\0!\f\vŠ€€€\0\v\0\v A j$€€€€\0 \vi#€€€€\0Ak"$€€€€\0 B\x007\b B\x007\0 \0Aj(\0"\0Aj \0Aj6\0@  \0A\tj˜‚€€\0\r\0  A\0·€€€\0 Aj$€€€€\0\vŠ€€€\0\0\vN \0Aj"(\0"\0Aj \0Aj6\0@ \0A\tj(\0\r\0A\v (\0"\0Aj \0Aj6\0 \0A\tj¨‚€€\0AjAn\vi#€€€€\0Ak"$€€€€\0 B\x007\b B\x007\0 Aj(\0"Aj Aj6\0@  A\tj˜‚€€\0\r\0 \0 A\0¬€€€\0 Aj$€€€€\0\vŠ€€€\0\0\vÙ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ Aj‡‚€€\0\r\0  )7\b  )7\0 \0Aj(\0"\0Aj \0Aj6\0 \0A\tj  ©‚€€\0\r\0 (\f"E\r Alj(\0Aj(\0"\0A\rj(\0 (G\r (\b! (\0! \0Aj 6\0 \0Aj 6\0 \0A\tj 6\0 A j$€€€€\0 \0\vŠ€€€\0\v\0\v?\0 \0Aj(\0"\0Aj \0Aj6\0 Aj(\0"Aj Aj6\0 \0A\tj A\tjŒ‚€€\0Av\vñ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ Aj‡‚€€\0\r\0  )7\b  )7\0 \0Aj(\0"\0Aj \0Aj6\0 Aj(\0"Aj Aj6\0 \0A\tj A\tj ‹‚€€\0\r\0 (\f"E\r Alj(\0Aj(\0"\0A\rj(\0 (G\r (\b! (\0! \0Aj 6\0 \0Aj 6\0 \0A\tj 6\0 A j$€€€€\0 \0\vŠ€€€\0\v\0\v×#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ Aj‡‚€€\0\r\0  )7\b  )7\0 \0Aj(\0"\0Aj \0Aj6\0 \0A\tj ™‚€€\0\r\0 (\f"E\r Alj(\0Aj(\0"\0A\rj(\0 (G\r (\b! (\0! \0Aj 6\0 \0Aj 6\0 \0A\tj 6\0 A j$€€€€\0 \0\vŠ€€€\0\v\0\vó#€€€€\0A k"$€€€€\0@@@@@ \0D\0\0\0\0\0\0ÐAcE\r\0 \0D\0\0@\0\0\0ÐÁd\r\v B\x007 B\x007 Aj‡‚€€\0\r  )7\b  )7\0  \0•‚€€\0\r (\f"E\r Alj(\0Aj(\0"A\rj(\0 (G\r (\b! (\0! Aj 6\0 Aj 6\0 A\tj 6\0\f\v \0ü‹€€€\0!\v A j$€€€€\0 \vŠ€€€\0\v\0\v½#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ Aj‡‚€€\0\r\0  )7\b  )7\0  \0Ž‚€€\0 (\f"E\r Alj(\0Aj(\0"\0A\rj(\0 (G\r (\b! (\0! \0Aj 6\0 \0Aj 6\0 \0A\tj 6\0 A j$€€€€\0 \0\vŠ€€€\0\v\0\v½#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ Aj‡‚€€\0\r\0  )7\b  )7\0  \0’‚€€\0 (\f"E\r Alj(\0Aj(\0"A\rj(\0 (G\r (\b! (\0! Aj 6\0 Aj 6\0 A\tj 6\0 A j$€€€€\0 \vŠ€€€\0\v\0\v½#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ Aj‡‚€€\0\r\0  )7\b  )7\0  \0‚€€\0 (\f"E\r Alj(\0Aj(\0"\0A\rj(\0 (G\r (\b! (\0! \0Aj 6\0 \0Aj 6\0 \0A\tj 6\0 A j$€€€€\0 \0\vŠ€€€\0\v\0\v½#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ Aj‡‚€€\0\r\0  )7\b  )7\0  \0‘‚€€\0 (\f"E\r Alj(\0Aj(\0"A\rj(\0 (G\r (\b! (\0! Aj 6\0 Aj 6\0 A\tj 6\0 A j$€€€€\0 \vŠ€€€\0\v\0\v”#€€€€\0A k"$€€€€\0 Aj(\0"Aj Aj6\0@@ Aj(\0\r\0 A\tj"¨‚€€\0A!N\r\0 ‚€€\0! B\x007 B\x007 Aj‡‚€€\0\r\0  )7\b  )7\0 \0Aj(\0"Aj Aj6\0 A\tj  œ‚€€\0\r\0 (\f"\0E\r \0Alj(\0Aj(\0"A\rj(\0 (G\r (\b! (\0! Aj \x006\0 Aj 6\0 A\tj 6\0 A j$€€€€\0 \vŠ€€€\0\v\0\vó#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ Aj‡‚€€\0\r\0  )7\b  )7\0 \0Aj(\0"\0Aj \0Aj6\0 Aj(\0"Aj Aj6\0 \0A\tj A\tjA\0 —‚€€\0\r\0 (\f"E\r Alj(\0Aj(\0"\0A\rj(\0 (G\r (\b! (\0! \0Aj 6\0 \0Aj 6\0 \0A\tj 6\0 A j$€€€€\0 \0\vŠ€€€\0\v\0\vÛ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ Aj‡‚€€\0\r\0  )7\b  )7\0 \0Aj(\0"\0Aj \0Aj6\0 \0A\tj  A\0¬‚€€\0\r\0 (\f"E\r Alj(\0Aj(\0"\0A\rj(\0 (G\r (\b! (\0! \0Aj 6\0 \0Aj 6\0 \0A\tj 6\0 A j$€€€€\0 \0\vŠ€€€\0\v\0\vÅ#€€€€\0AÀ\0k"$€€€€\0 B\x0078 B\x0070@@@@ A0j‡‚€€\0\r\0  )87\b  )07\0 B\x0078 B\x0070 A0j‡‚€€\0\r\0  )87  )07A\0!@ \0(\0\0" \0(\0O\r -\0\0! \0 Aj6\0\0 Aj Aÿ\0q‚€€\0 Aj  Aj©‚€€\0\r  Aj ‰‚€€\0\r Aj! ÀAL\r\0\v A?M\r B\x0078 B\x0070 A0j‡‚€€\0\r\0  )87(  )07 A j ›‚€€\0\r\0  A j Š‚€€\0E\r\vŠ€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\f\v (\f"\0E\r\0 \0Alj(\0Aj(\0"A\rj(\0 (G\r\0 (\b! (\0! Aj \x006\0 Aj 6\0 A\tj 6\0 AÀ\0j$€€€€\0 \v\0\vœ\t~#€€€€\0A k"$€€€€\0@@@ (\0\0 §Av"Aj"j" (\0K\r\0  6\0\0Bÿ\0! \0Bÿ\0ƒ!\b@ B\bT\r\0 Bx|"\tBˆB|"\nBƒ!@ \tBT\r\0 \nBüÿÿÿÿÿÿÿ?ƒ!\tBÿ\0!@ B†!\n \0Bˆ!\v B†!\f \0Bˆ!\r B†! \0Bˆ! \0Bˆ"\0 B†"ƒ  ƒ \v \nƒ \r \fƒ \b„„„„!\b \tB||"\tB\0R\r\0\v P\r\v@ \0Bˆ"\0 B†"ƒ \b„!\b B|"B\0R\r\0\v\v@@ AG\r\0@ \bB!†B!‡ \bB†B‡"\0Q\r\0 B\x007 B\x007 Aj‡‚€€\0\r  )7\b  )7\0  \0’‚€€\0 (\f"E\r Alj(\0Aj(\0"A\rj(\0 (G\r (\b! (\0! Aj 6\0 Aj 6\0 A\tj 6\0\f\v \b§AtAu‹€€€\0!\f\v \b§ Al"t u‹€€€\0!\v A j$€€€€\0 \v#€€€\0A”’€€\0jAª€€€\0\0\vŠ€€€\0\v\0\v¹#€€€€\0A k"$€€€€\0 B\x007\b B\x007\0 \0Aj(\0"Aj Aj6\0@  A\tj˜‚€€\0\r\0@@ (\b\r\0  A·€€€\0\f\v \0Aj(\0"Aj Aj6\0 A\tj!\0@@ Aj(\0\r\0 \0¨‚€€\0!\f\v B\x007 B\x007 Aj \0˜‚€€\0\r Aj¼‚€€\0\r Aj¨‚€€\0!\v B\x007 B\x007 Aj‡‚€€\0\r Aj Aj" Apk›‚€€\0\r  Aj ‰‚€€\0\r  A\0·€€€\0\v A j$€€€€\0\vŠ€€€\0\0\v™#€€€€\0Ak"$€€€€\0 \0Aj(\0"\0Aj \0Aj6\0 \0A\tj!@@@ \0Aj(\0\r\0 ¨‚€€\0!\0\f\v B\x007\b B\x007\0  ˜‚€€\0\r ¼‚€€\0\r ¨‚€€\0!\0\v Aj$€€€€\0 \0AjAn\vŠ€€€\0\0\vº#€€€€\0A0k"$€€€€\0 B\x007\b B\x007\0 Aj(\0"Aj Aj6\0@@  A\tj˜‚€€\0\r\0@ (\b\r\0 \0 A¬€€€\0\f\v B\x007 B\x007 Aj‡‚€€\0\r\0 Aj(\0"Aj Aj6\0 A\tj!@@ Aj(\0\r\0 ¨‚€€\0!\f\v B\x007( B\x007 A j ˜‚€€\0\r A j¼‚€€\0\r A j¨‚€€\0!\v Aj Aj" Apk›‚€€\0\r\0  Aj ‰‚€€\0\r\0 \0 A\0¬€€€\0\f\vŠ€€€\0\0\v A0j$€€€€\0\vñ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ Aj‡‚€€\0\r\0  )7\b  )7\0 \0Aj(\0"\0Aj \0Aj6\0 Aj(\0"Aj Aj6\0 \0A\tj A\tj Š‚€€\0\r\0 (\f"E\r Alj(\0Aj(\0"\0A\rj(\0 (G\r (\b! (\0! \0Aj 6\0 \0Aj 6\0 \0A\tj 6\0 A j$€€€€\0 \0\vŠ€€€\0\v\0\v"\0 \0Aj(\0"\0Aj \0Aj6\0 \0A\tj–‚€€\0\vF\0 \0Aj(\0"\0Aj \0Aj6\0@ \0Aj(\0\r\0 \0A\tj"\0¨‚€€\0A J\r\0 \0‚€€\0\vŠ€€€\0\0\v[\0 \0Aj(\0"\0Aj \0Aj6\0@ \0Aj(\0\r\0 \0A\tj"\0¨‚€€\0A J\r\0 \0‚€€\0\v Aj(\0"\0A\rj \0A\tj(\0‰€€€\0\0\v"\0 \0Aj(\0"\0Aj \0Aj6\0 \0A\tj‚€€\0\vG\0 \0Aj(\0"\0Aj \0Aj6\0@ \0Aj(\0\r\0 \0A\tj"\0¨‚€€\0AÀ\0J\r\0 \0“‚€€\0\vŠ€€€\0\0\v\\\0 \0Aj(\0"\0Aj \0Aj6\0@ \0Aj(\0\r\0 \0A\tj"\0¨‚€€\0AÀ\0J\r\0 \0“‚€€\0\v Aj(\0"\0A\rj \0A\tj(\0‰€€€\0\0\v"\0 \0Aj(\0"\0Aj \0Aj6\0 \0A\tj“‚€€\0\vN \0Aj(\0"\0A\rj Aj(\0"A\rj A\tj(\0" \0A\tj(\0"\0  \0I†‚€€\0" \0 K \0 Ik \voA•€€€\0"A\tjA6\0 Aj 6\0 AjA6\0@ \0AF\r\0 \0AqE\r\0 \0Aj!A!\0 E\r\0 (!\0\v AjA\x006\0 A\rj \x006\0 —€€€\0\v*\0 \0Aj(\0"\0Aj(\0Av \0A\rj(\0Aj(\0A\tj(\0O\v‘#€€€€\0A k"$€€€€\0#€€€\0! \0Aj(\0"Aj"(\0!\0 A\rj(\0!@@ Að쀀\0j(\bAG\r\0#€€€\0! \0AqE\r\0 \0Aj Að쀀\0j(˜I\r\0 B\x007\0#€€€\0Að쀀\0j(ÄAG\r #€€€\0Að쀀\0j"AÐj6  AÈj6  Aj6  6\f  Aj6\b A\bj \0¢€€€\0\v  \0A~qAj6\0 Aj(\0 \0AvjA\rj-\0\0!\0 A j$€€€€\0 \0\v\0\vý\n@@@@@ \0Aj(\0Aj"(\0AG\r\0 \0Aj!\f\v (\b"A€€€€O\r AjAvAj•€€€\0"A\tj 6\0 Aj" 6\0 Aj"A6\0 \0 A\rjñ€€€\0 —€€€\0 (\0Aj!\v (\b"AjAvAl"AjAv"\0Aj•€€€\0"A\tj 6\0 Aj 6\0 Aj"A6\0 A\rj"! E\r A\fj!\bA\0!\tA\0!A\0!\0 !@@@@ \b-\0\0"\nAú\0K\r\0@ \nASj\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v@ \nA¿jAÿqAI\r\0@ \nAà\0K\r\0 \nAijA\0 \nANjAÿqAI!\n\f\v \nA j!\n\f\v \nA@j!\n\f\v#€€€\0A쉀€\0jA(’€€€\0\0\v \nAjAÿq"\nA O\r\0 \0At \nr!\0 Aj!\n@ AO\r\0 \n!\f\v \n!@  \0 Axj"v:\0\0 Aj! \0A tAsq!\0 AK\r\0\v\v \bAj!\b \tAj"\t F\r\f\0\v\v#€€€\0Aû„€€\0jA’€€€\0\0\v (\bAjAv!\0\v@@ \0  k"AjAv"k"\bAG\r\0  AtjA16\0\f\v \0 F\r\0  Atj" \bA~j6 A36\0\v A\tj 6\0 —€€€\0@@ Aj(\0A\tj(\0"\0AI\r\0 \0AjAvAj•€€€\0"A\tj \0A|j"\x006\0 Aj 6\0 AjA6\0@ \0E\r\0 A\rj (Aj \0ü\n\0\0\v ˜€€€\0–€€€\0!\0 ("A\rj \0Aj(\0"\0A\rj \0A\tj(\0"\0 A\tj(\0" \0 I†‚€€\0!\b  \0G\r \b\r —€€€\0\v#€€€\0A¶€€€\0jA&’€€€\0\0\v#€€€\0A’€€€\0jA$’€€€\0\0\vµA\0!@ !@@@ \0Aj(\0"\0Aj"(\0AG\r\0@ (\b"E\r\0  \0A\rj ü\n\0\0\v E\r (\0! (\0\0!\0 !\f\v  (\f"\0Aj(\0A\tj(\0j!@ ("Aj(\0A\tj(\0A\bI\r\0  6\0  6\0\0 !\f\v  ñ€€€\0\f\0\v\v\v\v‘@@ \0Aj(\0"Aj(\0AF\r\0 A\tj(\0"A€€€€O\r AjAvAj•€€€\0"A\tj 6\0 Aj 6\0 AjA6\0 \0 A\rjñ€€€\0 —€€€\0!\0\v \0\v#€€€\0Aû„€€\0jA’€€€\0\0\v/\0@ \0Aßÿÿ\0qA¿jAO\r\0A\v@ \0AªO\r\0A\0\v \0ô€€\0\v)\0@ \0AŸjAO\r\0A\v@ \0AªO\r\0A\0\v \0ú€€\0\v)\0@ \0A¿jAO\r\0A\v@ \0AÀO\r\0A\0\v \0û€€\0\v±A!@ \0AwjAI\r\0 \0A F\r\0A\0! \0A…I\r\0A\0!@@@@@ \0A\bv"Ajj\0\v \0A€-F!\f\v \0A€à\0F!\f\v \r#ƒ€€€\0 \0Aÿqj-\0\0!\f\v#ƒ€€€\0 \0Aÿqj-\0\0AqAv!\v Aq!\v \v#€€€€\0A k"$€€€€\0 Aj \0ö€€\0 A\x006\0  )7\b  ("6 AAA (" 6@  r\r\0 ÿ€€\0"\0A€€Ä\0G\r\0\0\v A j$€€€€\0 \0\v#€€€€\0A k"$€€€€\0 Aj \0÷€€\0 A\x006\0  )7\b  ("6 AAA (" 6@  r\r\0 ÿ€€\0"\0A€€Ä\0G\r\0\0\v A j$€€€€\0 \0\vŽ@@@@ \0Aj(\0"AK\r\0A tA€€€ÐzqE\r\0@ \0Aj(\0"A\tj(\0"\0\r\0A\0\v Aj! \0AG\rA\0!A!\0\f\v\0\v \0Aq! \0A~q!A\0!A!\0@#€€€\0A”Š€€\0j"  j"A\rj-\0\0  A\fj-\0\0 \0sAÿqAtj(\0 \0A\bvs"\0sAÿqAtj(\0 \0A\bvs!\0  Aj"G\r\0\v E\r\v#€€€\0A”Š€€\0j A\fj j-\0\0 \0sAÿqAtj(\0 \0A\bvs!\0\v \0As\v\0#€€€\0AЊ€\0j(\0\v,@#€€€\0AԊ€\0j(\0"\0\r\0A\0\v \0Aj(\0A\tj(\0\v\n\0 \0Ё€€\0\v\n\0 \0Ӂ€€\0\vˆ@@@@@@ -\0\0E\r\0@ \0(\0!A\0! \0(\0\0"!\bA\0!\t@ \b O\r \b-\0\0!\n \0 \bAj"\v6\0\0@ AG\r\0 \nAÿqAK\r\b\v \nAÿ\0q t \tr!\t \v!\b Aj! \nÀAL\r\0\v@ \t O\r\0A\0!\bA\0!\n@ \v O\r \v-\0\0! \0 \vAj"\v6\0\0@ \bAG\r\0 Aø\0qAjA÷\0I\r\t\v Aÿ\0q \bt \nr!\n \bAj!\b \v!\v ÀAL\r\0\vA\0!\t   \nA\0A\0A \bt AÀ\0I \bAKrA\0ÿ€€€\0  -\0\0Aj"\v:\0\0 \vAÿq\r\f\v\v  \tF\r \0 6\0\0\vA\0!\t\v \t\v  -\0\0Aj:\0\0A\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\v\0\vŠ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Aä\0J\r\0ABŒ€€€\0@@@@@@@@@@@@@@@@@@ A\0H\r\0 Aj!@  Atj(\0! \0(\0!A\0!A\0!@  O\r -\0\0!\b@ AG\r\0 \bAø\0qAjA÷\0I\rB\v Aj! \bAÿ\0q t r! Aj! \bÀAL\r\0\v@@@@@@@@@ A\0A\0A t \bAÀ\0I AKrAj\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v \0(\0\0!A\0!\bA\0!@  O\r -\0\0! \0 Aj"6\0\0@ \bAG\r\0 AÿqAK\rJ\v Aÿ\0q \bt r! ! \bAj!\b ÀA\0H\r\0\vA\0!A\0!@  O\r -\0\0!\b \0 Aj"6\0\0@ AG\r\0 \bAÿqAK\rJ\v \bAÿ\0q t r! ! Aj! \bÀAL\r\0\v  j" K\r \0 6\0\0 E\rJ#€€€\0Aþ•€€\0jAª€€€\0\0\vA\0!A\0!@  O\r -\0\0!\b@ AG\r\0 \bAø\0qAjA÷\0I\rI\v Aj! \bAÿ\0q t r! Aj! \bÀAL\r\0\v \0(\0\0" O\r -\0\0! \0 Aj6\0\0 AO\r! E\rI A\0A\0A t \bAÀ\0I AKr!\f\vA\0!A\0!@  O\r" -\0\0!@ AG\r\0 Aø\0qAjA÷\0I\rH\v Aj! Aÿ\0q t r! Aj! ÀAL\r\0\vA\0!\b A\0A\0A t AÀ\0I AKr! \0(\0\0!A\0!@  O\r# -\0\0! \0 Aj"6\0\0@ \bAG\r\0 AÿqAK\rH\v Aÿ\0q \bt r! ! \bAj!\b ÀAL\r\0\v E\rHA\0 ­Œ€€€\0 \0(\0\0! \0  A\0ÿ€€€\0  \0(\0\0F\r\r AF\rH Aj!@ \0  A\0ÿ€€€\0 Aj"\r\0\fI\v\vA\0!A\0!\t@  O\r# -\0\0!\b@ AG\r\0 \bAÿqAK\rG\v Aj! \bAÿ\0q t \tr!\t Aj! \bÀA\0H\r\0\v \tE\rGA\0!\n@  O\r- ,\0\0! Aj"\b! A\0H\r\0A\0! \b!A\0!@  O\r/ -\0\0!\b@ AG\r\0 \bAø\0qAjA÷\0I\rH\v Aj! \bAÿ\0q t r! Aj! \bÀAL\r\0\v A\0A\0A t \bAÀ\0I AKr" F\r\b \0   ÿ€€€\0 \nAj"\n \tG\r\0\fH\v\vA\0!A\0!@  O\r# -\0\0!\b@ AG\r\0 \bAÿqAK\rF\v Aj! \bAÿ\0q t r! Aj! \bÀAL\r\0\v \0(\0\0!A\0!\bA\0!@  O\r$ -\0\0! \0 Aj"6\0\0@ \bAG\r\0 AÿqAK\rF\v Aÿ\0q \bt r! ! \bAj!\b ÀAL\r\0\v  O\r@ E\r\0A\0!@ Aj!@  O\r2 ,\0\0!\b Aj"! \bA\0H\r\0\v@  O\r3 ,\0\0!\b Aj"! \bAL\r\0\v  G\r\0\v\v@  O\r. ,\0\0!\b Aj"! \bA\0H\r\0\vA\0!A\0!@  O\r/ -\0\0!\b@ AG\r\0 \bAø\0qAjA÷\0I\rF\v Aj! \bAÿ\0q t r! Aj! \bÀAL\r\0\v A\0A\0A t \bAÀ\0I AKr!\f\v \0(\0\0" O\r# -\0\0! \0 Aj"\b6\0\0 AO\r$ \r#€€€\0Aþ•€€\0jAª€€€\0\0\v \0(\0\0" O\r$ -\0\0! \0 Aj"6\0\0 AO\r% E\rA\0!A\0!@  O\r5 -\0\0!\b \0 Aj"6\0\0@ AG\r\0 \bAÿqAK\rD\v \bAÿ\0q t r! ! Aj! \bÀAL\r\0\v  j" K\r5 \0 6\0\0\vA\0!A\0!@  O\r& -\0\0!\b@ AG\r\0 \bAø\0qAjA÷\0I\rC\v Aj! \bAÿ\0q t r! Aj! \bÀAL\r\0\v \0(\0\0" O\r& -\0\0! \0 Aj6\0\0 AO\r\' \r A\tj" K\r5 A\0A\0A t \bAÀ\0I AKr! \0 6\0\0\vA!ABŒ€€€\0 A\0N\r\0\v\v A€j€@\r\f\v\f\v\n\t\f\v\n\t\b\b@\v#€€€\0Aŕ€€\0jAª€€€\0\0\v#€€€\0Aߕ€€\0jAª€€€\0\0\v \b O\r( -\0! \0 Aj"6\0\0 AO\r) E\r*A\0!A\0!@  O\r, -\0\0!\b \0 Aj"6\0\0@ AG\r\0 \bAÿqAK\r=\v \bAÿ\0q t r! ! Aj! \bÀAL\r\0\v  j" K\r, \0 6\0\0 \0µ€€€\0\v#€€€\0Aþ•€€\0jAª€€€\0\0\v Aj" K\r. \0 6\0\0\vA Aj­Œ€€€\0\f:\v#€€€\0A¶–€€\0jAª€€€\0\0\v \0(\0\0" \0(\0O\r, -\0\0! \0 Aj6\0\0 AI\r8#€€€\0AŽ“€€\0jAª€€€\0\0\v \0(\0\0! \0(\0!@  O\r- ,\0\0! \0 Aj"6\0\0 ! AJ\r8\f\0\v\v \0(\0\0Aj" \0(\0K\r, \0 6\0\0\v \0(\0\0Aj" \0(\0K\r, \0 6\0\0\v \0(\0\0Aj" \0(\0K\r, \0 6\0\0\v \0(\0\0A\bj" \0(\0K\r, \0 6\0\0\v \0µ€€€\0\v#€€€\0A›–€€\0jAª€€€\0\0\v \0(\0\0" \0(\0O\r* -\0\0! \0 Aj6\0\0 AO\r+ E\r0 \0´€€€\0\v \0(\0\0A\fj" \0(\0"K\r+ \0 6\0\0A\0!A\0!\b@  O\r- -\0\0! \0 Aj"6\0\0@ AG\r\0 AÿqAK\r/\v Aÿ\0q t \br!\b ! Aj! ÀAL\r\0\v  \bj" K\r. \0 6\0\0\v#€€€\0A̖€€\0jA"ª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A”’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0AŽ“€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0AŽ“€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0AŽ“€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0AŽ“€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0AŽ“€€\0jAª€€€\0\0\v#€€€\0Aþ•€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A”’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A”’€€\0jAª€€€\0\0\v#€€€\0A”’€€\0jAª€€€\0\0\v#€€€\0A”’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A”’€€\0jAª€€€\0\0\v#€€€\0A”’€€\0jAª€€€\0\0\v#€€€\0A”’€€\0jAª€€€\0\0\v#€€€\0A”’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0AŽ“€€\0jAª€€€\0\0\v#€€€\0A”’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\v\0\v#€€€\0A”’€€\0jAª€€€\0\0\v\vž~#€€€€\0A k"$€€€€\0  \x009\bB€€€€À\f Av­B † Aÿÿÿ§K!@@@@@@ Av\0\v AÔjA\0AÀü\v\0 BÀ7˜  AÔj6”  7 #„€€€\0­B † A\bj­„7 A”j#€€€\0"Aø‰€\0j Aš…€€\0j Aj€\0 Aj AÔjAÀü\n\0\0\f\v AÔjA\0AÀü\v\0 BÀ7˜  AÔj6”  7 #…€€€\0­B † A\bj­„7 A”j#€€€\0"Aø‰€\0j Aš…€€\0j Aj€\0 Aj AÔjAÀü\n\0\0\f\v AÔjA\0AÀü\v\0 BÀ7˜  AÔj6”  7 #„€€€\0­B † A\bj­„7 A”j#€€€\0"Aø‰€\0j Aš…€€\0j Aj€\0 Aj AÔjAÀü\n\0\0\f\v\0\v AÔjA\0AÀü\v\0 BÀ7˜#„€€€\0!  AÔj6”  ­B † A\bj­„7 A”j#€€€\0"Aø‰€\0j A¢…€€\0j Aj€\0 Aj AÔjAÀü\n\0\0\vA\0!A!@@@ Aj "j"A~j-\0\0E\r@ Aj-\0\0E\r\0@ AÀG\r\0 Aj!\f\v Aj! Aj! -\0\0\r\f\v\v Aj!\f\v A~j!\v AjAvAj•€€€\0"A\tj 6\0 Aj 6\0 AjA6\0@ E\r\0 A\rj Aj ü\n\0\0\v —€€€\0! A j$€€€€\0 \v\f\0 \0 ܁€€\0\v\f\0 \0 ݁€€\0\v„#€€€\0Að쀀\0j"\0(¸!@@ \0(œ"A€O\r\0 \0Aj!\f\v#€€€\0!\0@@ A€j"A€qA€G\r\0 \0Að쀀\0jAj!\0 !\f\v AvAjAq!#€€€\0Að쀀\0jAj!\0 !@ A€j! \0(\0"A€j!\0 Aj"\r\0\v\v A€I\r\0@ \0(\0(€(€(€(€(€(€(€"A€j!\0 A€xj"Aÿ\0K\r\0\v\v  Aÿ\0qAlj( j\v\0#€€€\0Að쀀\0j(€\v\0#€€€\0Að쀀\0j)¨\v¤#€€€\0Að쀀\0j"\0(¸!@@ \0(œ"A€O\r\0 \0Aj!\f\v#€€€\0!\0@@ A€j"A€qA€G\r\0 \0Að쀀\0jAj!\0 !\f\v AvAjAq!#€€€\0Að쀀\0jAj!\0 !@ A€j! \0(\0"A€j!\0 Aj"\r\0\v\v A€I\r\0@ \0(\0(€(€(€(€(€(€(€"A€j!\0 A€xj"Aÿ\0K\r\0\v\v  Aÿ\0qAlj(!\0#€€€\0Að쀀\0j")¨ \0 j (¼k­|\vl#€€€€\0Ak"\t$€€€€\0 \t 6\b \t 6\f \t \x006\0 \t \0  lAtAjAvAüÿÿÿqj6 \tA      \b³€€€\0! \tAj$€€€€\0 \v(\0@  lAtAjAvAüÿÿÿq"E\r\0 \0A\0 ü\v\0\v\v\0 \0 lAtAjAv\v+#€€€€\0Ak"\0$€€€€\0 \0Aj£€€€\0 \0Aj$€€€€\0\v£#€€€€\0A k"$€€€€\0 \0Aj(\0"\0A\tj 7\0 \0Aj 6\0@@#€€€\0Að쀀\0j(\bAG\r\0 \0Aj(\0!#€€€\0! AqE\r\0 Aj Að쀀\0j(˜I\r\0 B\x007\0#€€€\0Að쀀\0j(ÄAG\r #€€€\0Að쀀\0j"AÐj6  AÈj6  Aj6  6\f  Aj6\b A\bj ¢€€€\0\v@ AF\r\0 AqE\r\0 Aj!A! E\r\0 (!\v \0Aj 6\0 A j$€€€€\0\v\0\vŽ\b~#€€€€\0A8k"\0$€€€€\0ˆ€€€\0Aj"Aàÿÿq! Av!A\0!A\0!@ \0 j" 6\0 AjB\x007\0 A\bjA\x006\0 AjA;\0 AjA\x006\0\0 A,jB\x007\0 A$jA\x006\0 A jA;\0 Aj Aj"6\0 A3jA\x006\0\0 A\fjA€€€ A\0  F  I6\0 A(jA€€€ A\0  F  I6\0 A8j! Aj"A€G\r\0\v \0Aˆj \0A€ü\n\0\0 \0A\x006ˆ8 Aj"Aq!A\0!@@ A€€€ð\0I\r\0 Aøq! AvAàl!A\0!@ \0Aˆj j"AÈjA\0:\0\0 A¬jA\0:\0\0 AjA\0:\0\0 Aô\0jA\0:\0\0 AØ\0jA\0:\0\0 A@ \0Av"E\r\0@  \0A€r:\0\0 Aj! !\0 Av"! \r\0\v\v  \0:\0\0\v¤~~|@@@@ \0½"B€€€€€€€\bS\r\0 Bÿÿÿÿÿÿÿ÷ÿ\0V\rAx!@ B ˆ"B€€ÀÿQ\r\0 §!\f\vA€€Àÿ! §\rD\0\0\0\0\0\0\0\0\v@ \0D\0\0\0\0\0\0\0\0b\r\0D\0\0\0\0\0\0ð¿ \0 \0¢£\v B\0S\r \0D\0\0\0\0\0\0PC¢½"B ˆ§!AËw!\v Aâ¾%j"Av j·"D\0\0àþB.æ?¢ Aÿÿ?qAžÁšÿj­B † Bÿÿÿÿƒ„¿D\0\0\0\0\0\0ð¿ "\0 DvßñÂ?¢DÞ˖dFÇ? ¢DY“"”$IÒ? ¢D“UUUUUå? ¢  ¢  ¡  \v \0 \0¡D\0\0\0\0\0\0\0\0£!\0\v \0\v‚@ \0A€€€€K\r\0  \0l"Aj"Av"Aj•€€€\0"\0A\rj Av6\0 \0Aj \x006\0 \0AjA#6\0 \0—€€€\0 \0Aj!\0@ E\r\0 A|q"E\r\0 \0A\0 ü\v\0\v \0\vŠ€€€\0\0\v\0\vŠ@@  \0Alj(\0Aj(\0A\rj(\0At"K\r\0  F\r\0\v AjAvAj•€€€\0"A\rj Av6\0 Aj 6\0 AjA#6\0 —€€€\0 Aj!@ E\r\0  \0 ü\n\0\0\v !\0\v \0\vð"\r#€€€€\0Ak"$€€€€\0@@@@@@@@@ (\0\0" (\0"\bF\r\0@ Aj"\t \bK\r\0 (\0\0!  \t6\0\0 AĒ‘âG\rA\0!A\0!\n@ \t \bO\r \t-\0\0!\v  \tAj"\f6\0\0@ AG\r\0 \vAÿqAK\r\t\v \vAÿ\0q t \nr!\n \f!\t Aj! \vÀAL\r\0\v \f \nj \bO\r  \n6\0 \nAÿÿÿÿqAj•€€€\0"\tA\tj \nAt6\0 \tAj \t6\0 \tAjA6\0 \0\r (\0\0 j" (\0"\bO\r  6\0\f\v#€€€\0AÀ’€€\0jAª€€€\0\0\v#€€€\0AŽ„€€\0jAÒ\0ª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0Aûƒ€€\0jAª€€€\0\0\v#€€€\0A타€\0jAª€€€\0\0\v (\0!\b\v \tA\rj!\r@@ \nE\r\0A\0!@ \r Atj (\0\x006\0 Aj! (\0\0!\f (\0!A\0!\tA\0!@@@@@@@ \f O\r \f-\0\0!  \fAj"\v6\0\0@ \tAG\r\0 Aø\0qAjA÷\0I\r\v\v Aÿ\0q \tt r! \tAj!\t \v!\f ÀAL\r\0\v A\0A\0A \tt AÀ\0I \tAKr!\t@@ \0E\r\0 \tAG\r\0A\0!\tA\0!@ \v O\r \v-\0\0!\f  \vAj"\v6\0\0@ \tAG\r\0 \fAø\0qAjA÷\0I\r\r\v \fAÿ\0q \tt r! \tAj!\t \v!\v \fÀAL\r\0\v@ A\0A\0A \tt \fAÀ\0I \tAKr"\tAJ\r\0 \tAnK\r\b \tA€F\r\b \tAhF\r\b\f\v \t \nO\r\r\f\v@ \tAJ\r\0@@@@@@@@@@@ \tAnK\r\0 \tAhF\r\0 \0E\r@ \tAj\0\v \tA€G\r\v#€€€\0A¿ƒ€€\0jAª€€€\0\0\v \tAj\0\f\vA\0!\tA\0!@ \v O\r\b \v-\0\0!\f  \vAj"\v6\0\0@ \tAG\r\0 \fAø\0qAjA÷\0I\r\v \fAÿ\0q \tt r! \tAj!\t \v!\v \fÀAL\r\0\v@@ A\0A\0A \tt \fAÀ\0I \tAKr"\tAJ\r\0 \tAnK\r \tAhF\r \0 \tA€Fq\r\f\v \t \nI\r\v#€€€\0Aù’€€\0jAª€€€\0\0\vA\0!\tA\0!@ \v O\r \v-\0\0!\f  \vAj"\v6\0\0@ \tAG\r\0 \fAø\0qAjA÷\0I\r\v \fAÿ\0q \tt r! \tAj!\t \v!\v \fÀAL\r\0\v@@ A\0A\0A \tt \fAÀ\0I \tAKr"\tAJ\r\0 \tAnK\r \tAhF\r \0 \tA€Fq\r\f\v \t \nI\r\v#€€€\0Aù’€€\0jAª€€€\0\0\v \0  \n°€€€\0\f\r\vA\0!\tA\0!@ \v O\r \v-\0\0!\f  \vAj"6\0\0@ \tAG\r\0 \fAÿqAK\r\v \fAÿ\0q \tt r! !\v \tAj!\t \fÀA\0H\r\0\v@ E\r\0A\0!@ Aj! !\vA\0!\tA\0!@ \v O\r \v-\0\0!\f  \vAj"6\0\0@ \tAG\r\0 \fAø\0qAjA÷\0I\r\v \fAÿ\0q \tt r! \tAj!\t !\v \fÀAL\r\0\v@@ A\0A\0A \tt \fAÀ\0I \tAKr"\tAJ\r\0 \tAnK\r \tAhF\r \0 \tA€Fq\r\f\v \t \nO\r\v  G\r\0\v\vA\0!\tA\0!\f\n\vA\0!\fA\0!@@ \v O\r \v-\0\0!  \vAj"\t6\0\0@ \fAG\r\0 AÿqAK\r\v Aÿ\0q \ft r! \t!\v \fAj!\f ÀA\0H\r\0\v E\r\fA\0!A\0!A\0!@ ! ! Aj!A\0!\vA\0!@@@@@ \t O\r \t-\0\0!\f  \tAj"6\0\0@ \vAG\r\0 \fAÿqAK\r\v \fAÿ\0q \vt r! !\t \vAj!\v \fÀAL\r\0\v  j"\t K\r  \t6\0\0 Aj  €\0 (\r E\r@      I†‚€€\0"\tA\0J\r\0  I\r \t\r\v#€€€\0Ažƒ€€\0jA!ª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A”’€€\0jAª€€€\0\0\v#€€€\0A€\0jA"’€€€\0\0\v (\0\0!\f (\0!A\0!\vA\0!@@ \f O\r \f-\0\0!  \fAj"\t6\0\0@ \vAG\r\0 Aø\0qAjA÷\0I\r\v Aÿ\0q \vt r! \vAj!\v \t!\f ÀAL\r\0\v@@ A\0A\0A \vt AÀ\0I \vAKr"\vAJ\r\0 \vAnK\r \vAhF\r \0 \vA€Fq\r\f\r\v \v \nO\r\f\v  F\r\f\v\v#€€€\0A©’€€\0jAª€€€\0\f\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0Aۃ€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\vA\0!\tA\0!@@@ \v O\r \v-\0\0!\f  \vAj"6\0\0@ \tAG\r\0 \fAÿqAK\r\v\v \fAÿ\0q \tt r! !\v \tAj!\t \fÀAL\r\0\v  j"\t K\r  \t6\0\0\f\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A”’€€\0jAª€€€\0\0\v#€€€\0Aù’€€\0jAª€€€\0\0\v@@@@@  O\r -\0\0!\v  Aj"6\0\0@ \tAG\r\0 \vAÿqAK\r\v\v \vAÿ\0q \tt r! ! \tAj!\t \vÀA\0H\r\0\v@ E\r\0A\0!@ Aj! !\vA\0!\tA\0!@ \v O\r \v-\0\0!\f  \vAj"6\0\0@ \tAG\r\0 \fAø\0qAjA÷\0I\r\r\v \fAÿ\0q \tt r! \tAj!\t !\v \fÀAL\r\0\v@@ A\0A\0A \tt \fAÀ\0I \tAKr"\tAJ\r\0 \tAnK\r \tAhF\r \0 \tA€Fq\r\f\v \t \nO\r\v  G\r\0\v\vA\0!\tA\0!\f\f\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v@@@  O\r -\0\0!\v  Aj"6\0\0@ \tAG\r\0 \vAÿqAK\r\n\v \vAÿ\0q \tt \fr!\f ! \tAj!\t \vÀA\0H\r\0\vA\0!\t@ \f \tF\r  \tj"\v O\r \v-\0\0!  \vAj6\0\0 \tAj!\t AjAÿqAI\r\0\v#€€€\0Aÿ‚€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0Aù’€€\0jAª€€€\0\0\v#€€€\0Aù’€€\0jAª€€€\0\0\v  \nG\r\0\v  \b6\0A\0!@@@@@ "\tAj! \r \tAtj(\0!\tA\0!A\0!\f@@@@@ \t \bO\r \t-\0\0!\v@ AG\r\0 \vAø\0qAjA÷\0I\r\r\v \tAj!\t \vAÿ\0q t \fr!\f Aj! \vÀAL\r\0\v \fA\0A\0A t \vAÀ\0I AKrAiG\rA\0!A\0!@ \t \bO\r \t-\0\0!\v@ AG\r\0 \vAÿqAK\r\r\v \tAj!\t \vAÿ\0q t r! Aj! \vÀA\0H\r\0\vA\0!@  F\r Aj!A\0!A\0!\f@ \t \bO\r \t-\0\0!\v@ AG\r\0 \vAÿqAK\r\v \tAj!\t \vAÿ\0q t \fr!\f Aj! \vÀAL\r\0\v \t \fj"\t \bK\rA\0!A\0!\f@ \t \bO\r\b \t-\0\0!\v@ AG\r\0 \vAø\0qAjA÷\0I\r\v \tAj!\t \vAÿ\0q t \fr!\f Aj! \vÀAL\r\0\v \fA\0A\0A t \vAÀ\0I AKr"A\0H\r\b  \nO\r\b \r Atj(\0!\vA\0!A\0!@ \v \bO\r\n \v-\0\0!\f@ AG\r\0 \fAø\0qAjA÷\0I\r\v \vAj!\v \fAÿ\0q t r! Aj! \fÀAL\r\0\v A\0A\0A t \fAÀ\0I AKrAjF\r\0\v#€€€\0Aق€€\0jA&ª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v  \nF\r\f\v\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A”’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A°‚€€\0jA)ª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v  \b6\0\v  (\0\x006\0 (\0\0!\t (\0!A\0!A\0!@@@ \t O\r \t-\0\0!\v  \tAj"\f6\0\0@ AG\r\0 \vAÿqAK\r\v \vAÿ\0q t r! \f!\t Aj! \vÀA\0H\r\0\v@ E\r\0A\0!@ Aj! \f!A\0!\tA\0!\b@  O\r -\0\0!\v  Aj"\f6\0\0@ \tAG\r\0 \vAø\0qAjA÷\0I\r\v \vAÿ\0q \tt \br!\b \tAj!\t \f! \vÀAL\r\0\v@@ \bA\0A\0A \tt \vAÀ\0I \tAKr"\tAJ\r\0 \tAnK\r \tAhF\r \0 \tA€Fq\r\f\v \t \nO\r\v  G\r\0\v\v  \r6\0 Aj$€€€€\0\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\0\v\0\v#€€€\0Aù’€€\0jAª€€€\0\0\v#€€€\0Aù’€€\0jAª€€€\0\0\v¨@@@#€€€\0AԊ€\0j(\0"E\r\0 \0 Aj(\0"A\tj(\0O\r Aj \0AtjA\fj(\0"\0AF\r \0AqE\r \0Aj(\0Aj(\0\v#€€€\0A™”€€\0jA:’€€€\0\0\v#€€€\0AŒ•€€\0jA9’€€€\0\0\v#€€€\0AӔ€€\0jA9’€€€\0\0\v\f\0 \0 Ձ€€\0\v\f\0 \0 ށ€€\0\v\0 \0˜€€€\0–€€€\0\v·#€€€€\0A k"$€€€€\0@@@@#€€€\0AԊ€\0j(\0"E\r\0 \0 Aj(\0"A\tj(\0O\r#€€€\0"A؊€\0j(\0! Aj \0AtjA\fj"(\0!@@ Að쀀\0j(\bAF\r\0 Aq!\f\v#€€€\0! Aq"E\r\0 Aj Að쀀\0j(˜I\r\0 B\x007\0A!#€€€\0Að쀀\0j(ÄAG\r #€€€\0Að쀀\0j"AÐj6  AÈj6  Aj6  6\f  Aj6\b A\bj ¢€€€\0\v  At6\0#€€€\0"A؊€\0j \x006\0 AЊ€\0j"\0 \0(\0Aj6\0 AF\r E\r A j$€€€€\0 \v#€€€\0A܀€€\0jA5’€€€\0\v\0\v#€€€\0AŁ€€\0jA4’€€€\0\0\v#€€€\0A‘€€\0jA4’€€€\0\0\v\0#€€€\0A芁€\0j(\0\v«\t~~~~#€€€€\0A k"$€€€€\0B!@@ A€€€ \0Aj(\0"Aj(\0"k­V\r\0 A\x006\b A\bj­"BB€€€\0 (\b!#€€€\0!\0„€€€\0!\b@ \0AàŠ€\0j)\0Bˆ ­ Aÿ\0j"\0 §"\tjAv"\n \0Av"\0k­|"B†|"\v \bX\r\0B! \v \b}…€€€\0BQ\r\v  >\bB B‚€€€\0 Aj"\f \f(\0 \tj"\t6\0@ \0E\r\0 Aj(\0Aj(\0 \0Aj"\fAÿÿq"\rAtjA\rj3\0!  A\tj)\0B|7\b B\v~"B"| B\b‚€€€\0  \f;\b B*| B‚€€€\0  \t \nAj"\fAtkA€ \f \rF:\0\b B,| B‚€€€\0\v \nAt"\tAjAvAj•€€€\0"A\tj \t6\0 Aj 6\0 Aj"A6\0@ \0At"\tE\r\0 A\rj Aj(\0Aj(\0A\rj \tü\n\0\0\v@ \n \0M\r\0 \nAj"\rAt! \0At jA\fj!\t Aj! A\tj!@ (\0!\f  )\0B|7\b AÿÿqA\vl­"B"| B\b‚€€€\0  \0;\b B*| B‚€€€\0  \f kA€ \r \0AÿÿqF:\0\b B,| B‚€€€\0 \t ;\0 Aj! \tAj!\t \n \0Aj"\0G\r\0\v\v#€€€\0! —€€€\0!\0@ Að쀀\0j(\bAG\r\0 Aj(\0!#€€€\0!\t AqE\r\0 Aj \tAð쀀\0j(˜I\r\0 B\x007\0#€€€\0Að쀀\0j(ÄAG\r #€€€\0Að쀀\0j"\tAÐj6  \tAÈj6  \tAj6  6\f  Aj6\b A\bj ¢€€€\0\v@ \0AF\r\0 \0AqE\r\0@ \r\0A!\0\f\v (!\0\v Aj \x006\0 ­!\v A j$€€€€\0 \v\0\v\0 \0Aj(\0A\tj)\0\v¦~#€€€€\0Ak"$€€€€\0ƒ€€€\0!„€€€\0!@@@@@@@@@ \0\v BX\r B\x007\0 ­B\0B\b€€€\0 )\0B͞ɪô¨Ò§Î\0R\r A\x006\b A\bj­"B\bB€€€\0 (\bAK\r A\0;\b B\fB€€€\0 /\bA€G\r B\x007\b BB\b€€€\0 )\b"B¢€T\r#€€€\0"AàŠ€\0j 7\0 A芁€\0jœ€€€\x006\0 B\x007\b BB\b€€€\0 )\bBV\r\f\v PE\r \0E\rž€€€\0\f\v P\r \0E\r\0 €€€\0\v Aj$€€€€\0\v#€€€\0A҆€€\0jA#€€€\0\0\v#€€€\0A¥†€€\0jA-€€€\0\0\v#€€€\0Aü…€€\0jA)€€€\0\0\v#€€€\0A܅€€\0jA €€€\0\0\v\0\v¥ AjAvAj•€€€\0"A\tj 6\0 Aj 6\0 Aj"A6\0@@ AÿÿÿÿI\r\0 Av"AÿÿÿÿF\r \0  A\fj" ™€€€\0 \0  ­|  j  k™€€€\0 —€€€\0\v \0  A\fj ™€€€\0 —€€€\0\v\0\vC|#€€€€\0Ak"$€€€€\0 B\x007\b \0  A\bjA\b™€€€\0 +\b! Aj$€€€€\0 \vA#€€€€\0Ak"$€€€€\0 A\0; \0  AjA™€€€\0 /!\0 Aj$€€€€\0 \0\vA#€€€€\0Ak"$€€€€\0 A\x006\f \0  A\fjA™€€€\0 (\f!\0 Aj$€€€€\0 \0\vA#€€€€\0Ak"$€€€€\0 B\x007\b \0  A\bjA\b™€€€\0 )\b! Aj$€€€€\0 \vA#€€€€\0Ak"$€€€€\0 A\0:\0 \0  AjA™€€€\0 -\0!\0 Aj$€€€€\0 \0\vÊ~#€€€€\0Ak"\0$€€€€\0@@@@@ƒ€€€\0\0\v„€€€\0P\r\v\0\v €€€\0\f\vž€€€\0\v \0B\x007\b \0A\bj­"BB\b€€€\0@ \0)\b"B~Q\r\0 \0 B|7\bB B\b‚€€€\0A•€€€\0"A\tjA\x006\0 Aj 6\0 Aj"A6\0 —€€€\0!A•€€€\0"AjA\x006\0 A\tj 7\0 Aj 6\0 AjA\'6\0@ AF\r\0 AqE\r\0@ \r\0A!\f\v (!\v Aj 6\0 —€€€\0! \0Aj$€€€€\0 \v#€€€\0A¤…€€\0jA€€€\0\0\v\0 \0Aj(\0Aj(\0\v\0 \0Aj(\0Aj5\0\vs Aj(\0"A\rj!@@ A\tj(\0"AÿÿÿÿI\r\0 Av"AÿÿÿÿF\r \0   ›€€€\0 \0  ­|  j  k›€€€\0\v \0   ›€€€\0\v\0\v8#€€€€\0Ak"$€€€€\0  9\b \0  A\bjA\b›€€€\0 Aj$€€€€\0\v8#€€€€\0Ak"$€€€€\0  ; \0  AjA›€€€\0 Aj$€€€€\0\v8#€€€€\0Ak"$€€€€\0  6\f \0  A\fjA›€€€\0 Aj$€€€€\0\v8#€€€€\0Ak"$€€€€\0  7\b \0  A\bjA\b›€€€\0 Aj$€€€€\0\v8#€€€€\0Ak"$€€€€\0  :\0 \0  AjA›€€€\0 Aj$€€€€\0\v\0 \0Aj(\0Aj(\0\vÈ\b\n#€€€€\0A k"$€€€€\0@#€€€\0AԊ€\0j(\0"\r\0Aƒ•€€€\0"AjA6\0 A\tjA€6\0 Aj 6\0#€€€\0"AԊ€\0j 6\0 A؊€\0jA\x006\0 AЊ€\0jA\x006\0 Aj!A\b!@  6\0 A|j A~j6\0 Axj A|j6\0 Atj Azj6\0 Aj! A\bj"AˆG\r\0\v#€€€\0AԊ€\0j"(\0—€€€\0 (\0!\v@@@#€€€\0A؊€\0j(\0" Aj(\0"A\tj(\0G\r\0 At"A€€€O\r Aj•€€€\0"A\tj 6\0 Aj 6\0 Aj"\bA6\0@ E\r\0 \bA\fj! AjA\fj! !\t@@ (\0"AF\r\0 AqE\r\0 Aj!\nA! \nE\r\0 \n(!\v  6\0 Aj! Aj! \tAj"\t\r\0\v AH\r\0 Aj! \b AtjA\fj!@  6\0 Aj! Aj! Aj" I\r\0\v\v#€€€\0! —€€€\0!@ Að쀀\0j(\bAG\r\0 AԊ€\0j(\0!#€€€\0! AqE\r\0 Aj Að쀀\0j(˜I\r\0 B\x007\0#€€€\0Að쀀\0j(ÄAG\r #€€€\0Að쀀\0j"AÐj6  AÈj6  Aj6  6\f  Aj6\b A\bj ¢€€€\0\v@ AF\r\0 AqE\r\0@ \b\r\0A!\f\v \b(!\v#€€€\0AԊ€\0j 6\0\v \0AF\r \0AqE\r#€€€\0"A؊€\0j" (\0"At Aj(\0jA\rj"(\0Av6\0@ Að쀀\0j(\bAG\r\0 (\0!#€€€\0!\t AqE\r\0 Aj \tAð쀀\0j(˜I\r\0 B\x007\0#€€€\0Að쀀\0j(ÄAG\r #€€€\0Að쀀\0j"\tAÐj6  \tAÈj6  \tAj6  6\f  Aj6\b A\bj ¢€€€\0\vA!@ \0Aj"\tE\r\0 \t(!\v  6\0#€€€\0AЊ€\0j" (\0Aj6\0 A j$€€€€\0 \v\0\v#€€€\0Aù€€\0jA7’€€€\0\0\v\0#€€€\0Að쀀\0j(\bAG\vŽ\b#€€€€\0Ak"\0$€€€€\0@@#€€€\0Að쀀\0j(\bAG\r\0#€€€\0Að쀀\0j"(¸!@@ (œ"A€I\r\0#€€€\0!@@ A€j"A€qA€G\r\0 Að쀀\0jAj! !\f\v AvAjAq!#€€€\0Að쀀\0jAj! !@ A€j! (\0"A€j! Aj"\r\0\v\v@ A€I\r\0@ (\0(€(€(€(€(€(€(€"A€j! A€xj"Aÿ\0K\r\0\v\v#€€€\0Að쀀\0jAj!  Aÿ\0q"Alj(!@ (\0"A€j! A€j"Aÿ\0K\r\0\v  Alj(!\f\v#€€€\0Að쀀\0j Alj( "!\v#€€€\0!  j"A€€€I\r Að쀀\0j")¨  j (¼k­| )ø}º ¸£D{®Gáz„?DffffffÖ?DÍÌÌÌÌÌä? A€€€€K A€€€€yKdE\r\v \0Aj£€€€\0\v \0Aj$€€€€\0\v\n\0 \0ρ€€\0\v™@@@@ -\0\0E\r\0@ \0(\0\0! \0(\0!@  O\r ,\0\0! \0 Aj"6\0\0 ! A\0H\r\0\vA\0!A\0!\b@  O\r -\0\0! \0 Aj"6\0\0@ AG\r\0 Aø\0qAjA÷\0I\r\v Aÿ\0q t \br!\b Aj! ! ÀAL\r\0\v   \bA\0A\0A t AÀ\0I AKrA\0ÿ€€€\0  -\0\0Aj":\0\0 Aÿq\r\0\v\v\v#€€€\0A©’€€\0jAª€€€\0\0\v#€€€\0A©’€€\0jAª€€€\0\v\0\vT \0(\0\0! \0(\0!@@  O\r ,\0\0! \0 Aj"6\0\0 ! A\0H\r\0\v\v#€€€\0A©’€€\0jAª€€€\0\0\v¨ \0(\0\0! \0(\0!A\0!A\0!@@@  O\r -\0\0! \0 Aj"6\0\0@ AG\r\0 Aø\0qAjA÷\0I\r\v Aÿ\0q t r! Aj! ! ÀA\0H\r\0\v A\0A\0A t AÀ\0I AKr\v\0\v#€€€\0A©’€€\0jAª€€€\0\0\vs \0AÀ\0q!@@ \0Au"\r\0 E\r\v@@ AG\r\0 Aÿq\r\v  \0A€r:\0\0 AÀ\0q! Aj! !\0 Au"! \r\0 ! \r\0\v\v  \0Aÿ\0q:\0\0\v\0#€€€\0Að쀀\0jA\x006\b\vR@ \0(("A!I\r\0  j \0(\bM\r\0 \0 \0A,j A`j \0($€€€€\0€€€€\0A !\v \0  j6( \0 jA\fj\v6@ \0(("A!I\r\0 \0 \0A,j A`j \0($€€€€\0€€€€\0 \0A 6(\v\vœ@ \0(\b" \0(("M\r\0@@ AjAv" AjAv"k"AG\r\0 \0 AtjA16\f\f\v  F\r\0 \0 Atj" A~j6 A36\f\v \0((!\v \0A6\b \0A6 \0 A`j6( \0 \0Aj"6$ —€€€\0\v)\0 \0 7 \0 7 \0 7\f \0#‚€€€\0Aƒ€€€\0j6$\v˜ \0((!@@@ AI\r\0 \0)B\0R\r\v  j" \0(\bM\r\v@ A!I\r\0 \0 \0A,j A`j \0($€€€€\0€€€€\0 \0A 6(\v \0   \0($€€€€\0€€€€\0\v \0 6(@ E\r\0 \0 jA\fj  ü\n\0\0\v\v[@ \0(("A!I\r\0  \0(\bI\r\0 \0 \0A,j A`j \0($€€€€\0€€€€\0A ! \0A 6(\v \0 j :\0\f \0 \0((Aj6(\vß@@@ Aj(\0"Aj"(\0Agj\0\0\v A\rj! \0((!@@@ (\b"AI\r\0 \0)B\0R\r\v  j" \0(\bM\r\v@ A!I\r\0 \0 \0A,j A`j \0($€€€€\0€€€€\0 \0A 6(\v \0   \0($€€€€\0€€€€\0\v \0 6(@ E\r\0 \0 jA\fj  ü\n\0\0\v\v \0 (\f¼€€\0 (!\f\0\v\v\n\0 \0ׁ€€\0\vm@@@@ \0A\0 A\0 Aj(\0A\tj(\0" \0Aj(\0A\tj(\0"  I"¶€€€\0Aÿq\0\vA\vA!\0\f\vA!\0 \r\0AA\0  I\v \0\vê@ \0Aj(\0"A\tj(\0"E\r\0@ Aj(\0"A\tj(\0"\r\0 \0\v@@@@@  j"A\tI\r\0 AÿÿÿÿK\rA•€€€\0"A\tj 6\0 Aj 6\0 AjA%6\0 \0AF\r \0AqE\r \0Aj"\0\rA!\0\f\v AjAvAj•€€€\0"A\tj 6\0 Aj 6\0 AjA6\0 A\rj!@ E\r\0  A\rj ü\n\0\0\v E\r  j A\rj ü\n\0\0\f\v#€€€\0Aà„€€\0jA’€€€\0\0\v \0(!\0\v A\rj \x006\0@ AF\r\0 AqE\r\0@ Aj"\r\0A!\f\v (!\v Aj 6\0\v —€€€\0!\v \vÏA•€€€\0"A\tjA6\0 Aj 6\0 AjA6\0 AjB\x007\0@ \0Aj"(\0A%G\r\0 Aj!@ (!A•€€€\0"A\tjA6\0 Aj 6\0 AjA6\0@ Aj(\0"\0AF\r\0 \0AqE\r\0 \0Aj!A!\0 E\r\0 (!\0\v A\rj \x006\0@ (\0"\0AF\r\0 \0AqE\r\0 \0Aj!A!\0 E\r\0 (!\0\v Aj \x006\0  —€€€\x006\0 A\rj(\0"\0Aj"(\0A%F\r\0\v\v@ \0AF\r\0 \0AqE\r\0 \0Aj!A!\0 E\r\0 (!\0\v A\rj \x006\0 —€€€\0\v4\0 \0Aj(\0"\0Aj(\0E \0Aj(\0Av \0A\rj(\0Aj(\0A\tj(\0Oq\v1#€€€€\0Ak"$€€€€\0 Aj \0¡€€€\0!\0 Aj$€€€€\0 \0\viA\0!@ \0Aj"\0(\0AF\r\0A\0!@ \0("\0A\rj(\0Á€€\0 j! \0Aj(\0Aj"\0(\0AG\r\0\v\v \0("\0A\rj \0A\tj(\0󁀀\0 j\vÉ\b#€€€€\0Ak"$€€€€\0@@ \0Aj(\0Aj"(\0AF\r\0 (\b"A€€€€O\r AjAvAj•€€€\0"A\tj 6\0 Aj" 6\0 AjA6\0 \0 A\rjñ€€€\0 —€€€\0 (\0Aj!\v Aj A\fj (\b぀€\0 (\b! (\f"AjAvAj•€€€\0"A\tj 6\0 Aj 6\0 Aj"A6\0@ E\r\0 Aq!A\0!\0@ AI\r\0 A|q!A\0!\0@  \0j"A\fj  \0j"\b-\0\0:\0\0 A\rj \bAj-\0\0:\0\0 Aj \bAj-\0\0:\0\0 Aj \bAj-\0\0:\0\0  \0Aj"\0G\r\0\v E\r  \0j!\v \0 jA\fj!\0@ \0 -\0\0:\0\0 \0Aj!\0 Aj! Aj"\r\0\v\v —€€€\0! Aj$€€€€\0 \v#€€€\0Aû„€€\0jA’€€€\0\0\vu@ A€€€€O\r\0 AjAvAj•€€€\0"A\tj 6\0 Aj 6\0 AjA6\0@ E\r\0 A\rj \0 ü\n\0\0\v —€€€\0\v#€€€\0Aû„€€\0jA’€€€\0\0\v«#€€€€\0Ak"$€€€€\0 A\x006\f@@ \0A€I\r\0 \0A?qA€r! \0Av!@ \0A€O\r\0  :\0\r  AÀr:\0\fA!\f\v \0A\fv! A?qA€r!@ \0AÿÿK\r\0  :\0  :\0\r  Aàr:\0\fA!\f\v  :\0  :\0  A?qA€r:\0\r  \0AvApr:\0\fA!\f\v  \0:\0\fA!\vA•€€€\0"\0A\tj 6\0 \0Aj \x006\0 \0AjA6\0@ E\r\0 \0A\rj A\fj ü\n\0\0\v \0—€€€\0!\0 Aj$€€€€\0 \0\v\0 \0Aj(\0A\tj(\0\vÉ\b#€€€€\0Ak"$€€€€\0@@ \0Aj(\0Aj"(\0AF\r\0 (\b"A€€€€O\r AjAvAj•€€€\0"A\tj 6\0 Aj" 6\0 AjA6\0 \0 A\rjñ€€€\0 —€€€\0 (\0Aj!\v Aj A\fj (\b䁀€\0 (\b! (\f"AjAvAj•€€€\0"A\tj 6\0 Aj 6\0 Aj"A6\0@ E\r\0 Aq!A\0!\0@ AI\r\0 A|q!A\0!\0@  \0j"A\fj  \0j"\b-\0\0:\0\0 A\rj \bAj-\0\0:\0\0 Aj \bAj-\0\0:\0\0 Aj \bAj-\0\0:\0\0  \0Aj"\0G\r\0\v E\r  \0j!\v \0 jA\fj!\0@ \0 -\0\0:\0\0 \0Aj!\0 Aj! Aj"\r\0\v\v —€€€\0! Aj$€€€€\0 \v#€€€\0Aû„€€\0jA’€€€\0\0\v9#€€€€\0Ak"$€€€€\0 Aj \0 €\0 (! Aj$€€€€\0 E\vP#€€€€\0Ak"$€€€€\0 Aj \0 €\0@ (E\r\0#€€€\0A€\0jA"’€€€\0\0\v Aj$€€€€\0\vYA•€€€\0"\0A\tjA6\0 \0Aj \x006\0 \0AjA6\0 \0A\rj#€€€\0A—€€\0j"/\0\0;\0\0 \0Aj -\0:\0\0 \0—€€€\0\v#€€€€\0A k"$€€€€\0@@#€€€\0Að쀀\0j(\bAG\r\0 \0(\0!#€€€\0! AqE\r\0 Aj Að쀀\0j(˜I\r\0 B\x007\0#€€€\0Að쀀\0j(ÄAG\r #€€€\0Að쀀\0j"AÐj6  AÈj6  Aj6  6\f  Aj6\b A\bj ¢€€€\0\v@ AF\r\0 AqE\r\0 Aj!A! E\r\0 (!\v \0 6\0 A j$€€€€\0\v\0\v\0\vÂ\b|||~#€€€€\0A°k"$€€€€\0 A\0A ü\v\0 A jA\0A ü\v\0 AÀjA\0A ü\v\0 AàjA\0AÐ\0ü\v\0#€€€\0"A”—€€\0j Atj(\0" Aj"\bj!\t A}jÁAmÁ"\n \bk!\v \nAt Atk A¤—€€\0jjAj!A\0!@@@ \vA\0N\r\0D\0\0\0\0\0\0\0\0!\f\f\v (\0·!\f\v  Atj \f9\0@  \tO\r\0 Aj! \vAj!\v   \tIj" \tM\r\v\vA\0!\v@ \v \bj!\tD\0\0\0\0\0\0\0\0!\fA\0!@@ \f \0 Atj+\0  \t kAtj+\0¢ !\f  \bO\r   \bIj" \bM\r\0\v\v AÀj \vAtj \f9\0@ \v O\r\0 \v \v Ij"\v M\r\v\v At AàjjA|j!\rA/  \nAhlj"kAq!A0 kAq! Açj­B4†¿! Ahj"A\0J! Aj! !\v@@ AÀj \v"Atj+\0!\f@ E\r\0 Aàj!\t !@ \t \f \fD\0\0\0\0\0\0p>¢ü·"D\0\0\0\0\0\0pÁ¢ ü6\0 AÀj AtjAxj+\0  !\f AF"\v\r \tAj!\tA Aj \v"\r\0\v\v@@ \f ¢"D\0\0\0\0\0\0À?¢"½"B4ˆ§Aÿq"A²\bK\r\0@ AþK\r\0D\0\0\0\0\0\0\0\0!\f BU\r D\0\0\0\0\0\0ð¿ D\0\0\0\0\0\0\0\0a!\f\f\v !\fBÿÿÿÿÿÿÿ Axj­"ˆ" ƒP\r B?‡ ƒ |B€€€€€€€x ‡ƒ¿!\f\f\v !\f\v  \fD\0\0\0\0\0\0 À¢ "\f \fü"·¡!\f@@@@@ \r\0@ \r\0 Aàj AtjA|j(\0Au!\f\vA!A\0! \fD\0\0\0\0\0\0à?fE\r\f\v Aàj AtjA|j" (\0"  u" tk"\t6\0 \t u!  j!\v AH\r\vA!\t@ E\r\0A\0!\vA\0!@ AF\r\0 Aq! Aq!A\0!\v Aàj!A\0!@ (\0!\t@@@@ E\r\0Aÿÿÿ!\f\v \tE\rA€€€\b!\v   \tk6\0A\0!\f\vA!\v Aj"(\0!\t@@@@ \r\0Aÿÿÿ!\f\v \tE\rA€€€\b!\v   \tk6\0A!A\0!\t\f\vA\0!A!\t\v A\bj!  \vAj"\vG\r\0\v E\r\v Aàj \vAtj"\v(\0!@@ E\r\0Aÿÿÿ!\t\f\vA!\t E\rA€€€\b!\t\v \v \t k6\0A\0!\t\v@ E\r\0Aÿÿÿ!@@ \0\vAÿÿÿ!\v Aàj AtjA|j"\v \v(\0 q6\0\v Aj!A! AG\rD\0\0\0\0\0\0ð? \f¡"\f \f ¡ \t!\f\f\v !\v@ \fD\0\0\0\0\0\0\0\0b\r\0@  Aj"K\r\0A\0!\t@@ Aàj Atj(\0 \tr!\t  O\r    Ik"M\r\0\v\v \tE\r\0 Aàj AtjA|j!@ Aj! Ahj! (\0!\b A|j! \bE\r\0\f\v\v \r! !\v@ \vAj!\v (\0!\t A|j! \tE\r\0\v  \vO\r Aj!@   \bj"\tAtj#€€€\0A¤—€€\0j  \njAtj(\0·9\0A\0!D\0\0\0\0\0\0\0\0!\f@@ \f \0 Atj+\0  \t kAtj+\0¢ !\f  \bO\r   \bIj" \bM\r\0\v\v AÀj Atj \f9\0   \vIj!  \vO\r !  \vM\r\0\f\v\v\v@@ \fAÿ k­B4†¿¢"\fD\0\0\0\0\0\0pAf\r\0 \f!\f\v Aàj Atj \f \fD\0\0\0\0\0\0p>¢ü·"D\0\0\0\0\0\0pÁ¢ ü6\0 Aj! !\v Aàj Atj ü6\0\v@@@@ AÿJ\r\0 A‚xH\rD\0\0\0\0\0\0ð?!\f\f\v AþK\r Axj!D\0\0\0\0\0\0à!\f\f\v@ A¸pM\r\0 AÉj!D\0\0\0\0\0\0`!\f\f\v Aðh AðhKA’j!D\0\0\0\0\0\0\0\0!\f\f\v Aý AýIA‚pj!D\0\0\0\0\0\0ð!\f\v \f Aÿj­B4†¿¢!\f@@ AqE\r\0 !\0\f\v AÀj Atj \f Aàj Atj(\0·¢9\0 \fD\0\0\0\0\0\0p>¢!\f Aj!\0\v@ E\r\0 \0At AàjjA|j! \0At AÀjjAxj!\b@ \b \fD\0\0\0\0\0\0p>¢" (\0·¢9\0 \bA\bj \f Aj(\0·¢9\0 Axj! \bApj!\b D\0\0\0\0\0\0p>¢!\f \0AG!\t \0A~j!\0 \t\r\0\v\v Aj! AÀj Atj!\v !@@@@   "\nk"  I"\r\0D\0\0\0\0\0\0\0\0!\fA\0!\b\f\v Aj"Aq! A~q!D\0\0\0\0\0\0\0\0!\fA\0!A\0!\b@ \v j"\0A\bj+\0! \f#€€€\0A°™€€\0j j"\t+\0 \0+\0¢   \tA\bj+\0¢ !\f Aj!  \bAj"\bG\r\0\v E\r\v \f#€€€\0A°™€€\0j \bAtj+\0 AÀj \b \njAtj+\0¢ !\f\v A j Atj \f9\0 \vAxj!\v \nAj! \n\r\0\v@@ E\r\0@@ Aq"\0\r\0D\0\0\0\0\0\0\0\0!\f !\b\f\v A j Atj!D\0\0\0\0\0\0\0\0!\f !\b@ \bAj!\b \f +\0 !\f Axj! \0Aj"\0\r\0\v\v@ AI\r\0 \bAt A jjAhj!@ \f Aj+\0  Aj+\0  A\bj+\0  +\0 !\f A`j! \bAG!\0 \bA|j!\b \0\r\0\v\v  \fš \f 9\0 +  \f¡!\f@ E\r\0A!@ \f A j Atj+\0 !\f  O\r   Ij" M\r\0\v\v  \fš \f 9\b\f\v@@ Aq"\0\r\0D\0\0\0\0\0\0\0\0!\f !\b\f\v A j Atj!D\0\0\0\0\0\0\0\0!\f !\b@ \bAj!\b \f +\0 !\f Axj! \0Aj"\0\r\0\v\v@ AI\r\0 \bAt A jjAhj!@ \f Aj+\0  Aj+\0  A\bj+\0  +\0 !\f A`j! \bAG!\0 \bA|j!\b \0\r\0\v\v  \fš \f 9\0\v A°j$€€€€\0 Aq\v·|#€€€€\0A k"$€€€€\0@@ \0½B ˆ§Aÿÿÿÿq"AüäÿI\r\0@@@@@ Aÿÿ¿ÿK\r\0 A\bj \0ҁ€€\0 +! +\b" ¢"\0 \0¢! (Aq\v \0 \0¡!\0\f\vD\0\0\0\0\0\0ð? \0D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡ \0 \0 \0 \0DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢ \0 \0DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢  ¢¡  š!\0\f\v   \0¢"DIUUUUUÅ?¢ \0 D\0\0\0\0\0\0à?¢  \0 ¢ \0D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ \0 \0D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢¡¢ ¡ ¡!\0\f\vD\0\0\0\0\0\0ð? \0D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡ \0 \0 \0 \0DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢ \0 \0DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢  ¢¡  !\0\f\v   \0¢"DIUUUUUÅ?¢ \0 D\0\0\0\0\0\0à?¢  \0 ¢ \0D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ \0 \0D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢¡¢ ¡ ¡š!\0\f\v@ A€€ÀòI\r\0 \0 \0 \0 \0¢"¢    ¢¢ D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢  D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢DIUUUUUÅ¿ ¢ !\0\f\v@ A€€À\0I\r\0  \0D\0\0\0\0\0\0pG 9\b +\b\f\v  \0D\0\0\0\0\0\0p8¢9\b +\b\v A j$€€€€\0 \0\vÀ|#€€€€\0A k"$€€€€\0@@@@@@@ \0½B ˆ§Aÿÿÿÿq"AüäÿI\r\0 Aÿÿ¿ÿK\r A\bj \0ҁ€€\0 +! +\b" ¢"\0 \0¢! (Aq\v@ \0ü\r\0D\0\0\0\0\0\0ð?! AžÁšòI\r\vD\0\0\0\0\0\0ð? \0 \0¢"D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡    DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢" ¢  DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢ \0D\0\0\0\0\0\0\0€¢   !\f\v \0 \0¡!\f\v   \0¢"DIUUUUUÅ?¢ \0 D\0\0\0\0\0\0à?¢  \0 ¢ \0D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ \0 \0D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢¡¢ ¡ ¡!\f\vD\0\0\0\0\0\0ð? \0D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡ \0 \0 \0 \0DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢ \0 \0DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢  ¢¡  !\f\v   \0¢"DIUUUUUÅ?¢ \0 D\0\0\0\0\0\0à?¢  \0 ¢ \0D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ \0 \0D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢¡¢ ¡ ¡š!\f\vD\0\0\0\0\0\0ð? \0D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡ \0 \0 \0 \0DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢ \0 \0DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢  ¢¡  š!\v A j$€€€€\0 \vô~|~#€€€€\0A0k"$€€€€\0@@ \0½"B4ˆ§"ApjApK\r\0@ \0D\0\0\0\0\0\0\0\0b\r\0 \0!\f\v@ B€€€€€€€øÿ\0R\r\0 \0!\f\vD\0\0\0\0\0\0ø! B€€€€€€€øÿ\0V\r \0D\0\0\0\0\0\x000C¢½"B4ˆ§AÿqALj!\v A jB€€€€\f B\v†B€€€€€€€€€„ Aq­ˆ"B ˆ#€€€\0Aˆ›€€\0j B.ˆ§Aÿ\0qAtj3\0B†"~B ˆ" ~B ˆ}Bÿÿÿÿƒ" ~BˆBþÿÿÿƒ"B€€€€\f   ~BˆBþÿÿÿƒ~B ˆ}Bÿÿÿÿƒ~B†B€€€€`ƒ"B\0 B\0ƒ‚€€\0 Aj )("B\0 B\0ƒ‚€€\0  B\0B€€€€€€€€@ )}B\0ƒ‚€€\0 )\bB\tˆ" ~ B*†} |"B?ˆ |Bÿÿÿÿÿÿÿƒ AÿjAv­B4†„"¿B\0B€€€€€€€\b  |B|"P  …B€€€€€€€€€ƒ„¿ !\v A0j$€€€€\0 \v–~|#€€€€\0A0k"$€€€€\0@@@ ½"B ˆ§"Aÿÿÿÿq"AûÔ½€I\r\0@ A¼Œñ€I\r\0@@@ AûÃä‰I\r\0 Aÿÿ¿ÿK\r  BÿÿÿÿÿÿÿƒB€€€€€€€°Á\0„¿"ü·"9\0   ¡D\0\0\0\0\0\0pA¢"ü"·"9\b   ¡D\0\0\0\0\0\0pA¢"9 B\x007( B\x007 B\x007 AA A D\0\0\0\0\0\0\0\0a Aj AvAêwjA΁€€\0! BW\r \0 6\b \0 + 9 \0 +9\0\f\v@ Av"  DƒÈÉm0_ä?¢D\0\0\0\0\0\x008C D\0\0\0\0\0\x008à"D\0\0@Tû!ù¿¢ " D1cba´Ð=¢"¡"\b½B4ˆ§AÿqkAH\r\0@   D\0\0`a´Ð=¢"\b¡"\t Dsp.Š£;¢  \t¡ \b¡¡"¡"\b½B4ˆ§AÿqkA2N\r\0 \t!\f\v \t D\0\0\0.Š£;¢"\b¡" DÁI %šƒ{9¢ \t ¡ \b¡¡"¡!\b\v \0 \b9\0 \0 ü6\b \0  \b¡ ¡9\f\v \0A\x006\b \0  ¡"9 \0 9\0\f\v \0A\0 k6\b \0 + š9 \0 +š9\0\f\v@ A½û׀I\r\0@ AûÃä€G\r\0@  DƒÈÉm0_ä?¢D\0\0\0\0\0\x008C D\0\0\0\0\0\x008à"D\0\0@Tû!ù¿¢ " D1cba´Ð=¢"¡"\b½B€€€€€€€øÿ\0ƒBÿÿÿÿÿÿÿ‡?V\r\0@  D\0\0`a´Ð=¢"\b¡"\t Dsp.Š£;¢  \t¡ \b¡¡"¡"\b½B€€€€€€€€ÿ\0ƒBÿÿÿÿÿÿÿÿ¢DñkÒÅA½»¾ ¢D,Þ%¯jV? ¢D“½¾lÁf¿ ¢D>UUUUUÅ? ¢¡"¢D\0\0\0\0\0\0\0@ ¡£ ¡ D\0\0\0\0\0\0ð? ! E\r\0@@@@ AÿJ\r\0 A‚xN\r D\0\0\0\0\0\0`¢! A¸pM\r AÉj!\f\v D\0\0\0\0\0\0à¢! AþK\r Axj!\f\v D\0\0\0\0\0\0`¢! Aðh AðhKA’j!\f\v D\0\0\0\0\0\0à¢! Aý AýIA‚pj!\v  Aÿj­B4†¿¢!\v \vÜ}~~@@ \0¼"A€€€„xjAÿÿÿ‡xK\r\0@ \0C\0\0\0\0\\\r\0 \0\v@ A€€€üG\r\0 \0\vC\0\0À! A€€€üK\r \0C\0\0\0K”¼A€€€¤j!\vB€€€€\fB€€€€\f#€€€\0Aˆ›€€\0j AvAþqj3\0B†" AtA€ÿÿÿq A\btA€€€€xr A€€€q"­~B ˆ" ~B ˆ}Bÿÿÿÿƒ" ~BˆBþÿÿÿƒ  ~BˆBþÿÿÿƒ"~B ˆ}Bÿÿÿÿƒ ~B&ˆ§" l Atk j"Av jAÿÿÿq AvA€€€þjA€€€üqr"¾A€€€A\0  jAj"  sA€€€€xqr¾’!\v \v°\b|~~~|D\0\0\0\0\0\0ð?!@ ½"B ˆ§"Aÿÿÿÿq" §"rE\r\0 \0½"§!\b@ B ˆ"\tB€€ÀÿR\r\0 \bE\r\v@@@@@@ \t§"\nAÿÿÿÿq"\vA€€ÀÿK\r\0@@ \vA€€ÀÿG\r\0 \b\r A€€ÀÿK\r\f\v A€ÀÿO\r\v@ E\r\0 A€€ÀÿF\r\v B\0S\r\f\v \0  \vA!\f Aÿÿÿ™K\r A€€ÀÿI\r\0 Av!\r@ Aÿÿÿ‰K\r\0A\0!\f \rA\0!\f A“\b \rk"v"\r t G\rA \rAqk!\f\f\vA\0!\f A³\b \rk"\rv" \rt G\rA Aqk!\f\f\vA\0!\f\v \r\v@@@@@@ A€€ÀÿF\r\0 A€€ÀÿG\r \vA€€À€|j \brE\r \vAÿÿ¿ÿK\rD\0\0\0\0\0\0\0\0 š BU\v BW\r \0\v A€€€ÿF\r A€€€€F\r\f\vD\0\0\0\0\0\0ð? \0£\v \0 \0¢\v B\0S\r \0с€€\0\v D\0\0\0\0\0\0\0\0 BU\v \0™!@@ \b\r\0@ \nAJ\r\0 \nA€€€€xF\r \nA€€Àÿ{F\r \nA€€@G\r\f\v \nE\r \nA€€ÀÿF\r \nA€€ÀÿF\r\vD\0\0\0\0\0\0ð?!@ B\0Y\r\0@@ \f\0\v \0 \0¡" £\vD\0\0\0\0\0\0ð¿!\v@@ A€€€K\r\0 D\0\0\0\0\0\0@C¢½" ½ \vA€€À\0I"\b!\t B ˆ§ \v \b"Aÿÿ?q"A€€Àÿr!AÌwAx \b Auj!\vA\0!\b@ A±I\r\0@ Aúì.O\r\0A!\b\f\v A€€€ÿr! \vAj!\v\v#€€€\0"Aš€€\0j \bAt"j+\0D\0\0\0\0\0\0ð? A€š€€\0j j+\0"\0 ­B † \tBÿÿÿÿƒ„¿" £"  \0¡" \bAt AvjA€€ €j­B †¿"  ¢"½B€€€€pƒ¿"¢¡ \0 ¡   ¢¡¢"\0  ¢"D\0\0\0\0\0\0\b@  \0   ¢  ¢"\0 \0¢ \0 \0 \0 \0 \0DïNEJ(~Ê?¢DeÛɓJ†Í? ¢DA©`tÑ? ¢DM&QUUÕ? ¢Dÿ«oÛ¶mÛ? ¢D33333ã? ¢ " ½B€€€€pƒ¿"\0¢   \0D\0\0\0\0\0\0\bÀ  ¡¡¢ "   \0¢" ½B€€€€pƒ¿"\0 ¡¡Dý:Ü\tÇî?¢ \0Dõ[à/>¾¢  " A š€€\0j j+\0"  \0D\0\0\0à\tÇî?¢"   \v·" ½B€€€€pƒ¿"\0 ¡ ¡ ¡¡!\f\v@@@ A€€ÀŸK\r\0 \vAÿÿ¿ÿI\r \vA€€ÀÿK\r D\0\0\0\0\0\0ð¿ "\0DDß]ø\v®T>¢ \0 \0¢D\0\0\0\0\0\0à? \0 \0D\0\0\0\0\0\0п¢DUUUUUUÕ? ¢¡¢Dþ‚+eG÷¿¢ "  \0D\0\0\0`G÷?¢" ½B€€€€pƒ¿"\0 ¡¡!\f\v@ \vAÿÿ¿ÿK\r\0D\0\0\0\0\0\0ðD\0\0\0\0\0\0\0\0 B\0S\vD\0\0\0\0\0\0ðD\0\0\0\0\0\0\0\0 A\0J\v@ A\0J\r\0 DYóøÂn¥¢DYóøÂn¥¢\v Dœu\0ˆ<ä7~¢Dœu\0ˆ<ä7~¢\v@ B\0S\r\0 DYóøÂn¥¢DYóøÂn¥¢\v Dœu\0ˆ<ä7~¢Dœu\0ˆ<ä7~¢\v \0 B€€€€pƒ¿"¢"  ¡ \0¢  ¢ " "\0½"§!\b@@@ B ˆ§"Aÿÿ¿„J\r\0 A€øÿÿqAÿ—ÄM\r A€è¼ûj \br\r  \0 ¡eE\r DYóøÂn¥¢DYóøÂn¥¢\v@ A€€Àû{j \brE\r\0 Dœu\0ˆ<ä7~¢Dœu\0ˆ<ä7~¢\v Dþ‚+eG—<  \0 ¡dE\r Dœu\0ˆ<ä7~¢Dœu\0ˆ<ä7~¢\v DYóøÂn¥¢DYóøÂn¥¢\vA\0!\b@ AÿÿÿÿqA€€€ÿM\r\0A\0A€€À\0 AvAjv j"Aÿÿ?qA€€À\0rA Av"kv"\bk \b B\0S!\b  A€€@ Aju q­B †¿¡" ½!\v@@ \bAt B€€€€pƒ¿"\0D\0\0\0\0C.æ?¢"  \0 ¡¡Dï9úþB.æ?¢ \0D9l¨\fa\\ ¾¢ " "    ¢"\0 \0 \0 \0 \0DФ¾ri7f>¢DñkÒÅA½»¾ ¢D,Þ%¯jV? ¢D“½¾lÁf¿ ¢D>UUUUUÅ? ¢¡"\0¢ \0D\0\0\0\0\0\0\0À £   ¡¡"\0  \0¢ ¡¡D\0\0\0\0\0\0ð? "½"B ˆ§j"A€€À\0H\r\0 ­B † Bÿÿÿÿƒ„¿!\f\v  \bց€€\0!\v  ¢!\f\vD\0\0\0\0\0\0ð? £  B\0S! BU\r\0@ \f \vA€€À€|jr\r\0  ¡" £\v š  \fAF\v \v®\0@@@@ AÿJ\r\0 A‚xN\r \0D\0\0\0\0\0\0`¢!\0 A¸pM\r AÉj!\f\v \0D\0\0\0\0\0\0à¢!\0 AþK\r Axj!\f\v \0D\0\0\0\0\0\0`¢!\0 Aðh AðhKA’j!\f\v \0D\0\0\0\0\0\0à¢!\0 Aý AýIA‚pj!\v \0 Aÿj­B4†¿¢\v¢~|#€€€€\0A k"$€€€€\0@@ \0½"B ˆ§Aÿÿÿÿq"AüäÿI\r\0@ Aÿÿ¿ÿK\r\0 A\bj \0ҁ€€\0 +\b + (Aq؁€€\0!\0\f\v \0 \0¡!\0\f\v@@@ A€€€òI\r\0 B€€€€€ÿÿÿÿ\0ƒB€€€€ð„åò?V"\r \0!\f\v  \0D\0\0\0\0\0\0p8¢ \0D\0\0\0\0\0\0pG  A€€À\0I9\b +\b\f\vD-DTû!é? \0™¡D\\3&¦¢Dé§ð2¸? ¢Dh÷&0? ¢DƒàþÈÛW? ¢D“„néã&‚? ¢DþA³º¡«? ¢ ¢D\0\0\0\0\0\0\0\0 ¢D\0\0\0\0\0\0\0\0  " !\0 E\r\0D\0\0\0\0\0\0ð?   \0 \0¢ \0D\0\0\0\0\0\0ð? £¡ "\0 \0 ¡"\0š \0 B\0S!\0\v A j$€€€€\0 \0\v®~|@ \0½"B€€€€€ÿÿÿÿ\0ƒB€€€€ð„åò?V"E\r\0D-DTû!é? \0™¡D\\3&¦< š  B\0S¡ !\0D\0\0\0\0\0\0\0\0!\v \0 \0 \0 \0¢"¢"DcUUUUUÕ?¢      ¢"    DsS`ÛËuó¾¢D¦’7 ˆ~? ¢DeòòØDC? ¢D(VÉ"mm? ¢D7Ö„ôd–? ¢DzþÁ?       DÔz¿tp*û>¢Dé§ð2¸? ¢Dh÷&0? ¢DƒàþÈÛW? ¢D“„néã&‚? ¢DþA³º¡«? ¢ ¢ ¢  " !@ \r\0@ E\r\0D\0\0\0\0\0\0ð¿ £" ½B€€€€pƒ¿" ½B€€€€pƒ¿"¢D\0\0\0\0\0\0ð?    \0¡¡ ¢ ¢  !\v \vD\0\0\0\0\0\0ð? At¸¡" \0   ¢   £¡ "  ¡"š  B\0S\vÛ~|@@ \0½"B ˆ§Aÿÿÿÿq"Aÿÿ¿ÿK\r\0@ A€€€ÿI\r\0@ BW\r\0D\0\0\0\0\0\0ð? \0¡D\0\0\0\0\0\0à?¢"\0 \0 \0 \0 \0 \0D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢ \0 \0 \0 \0D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £ \0с€€\0"¢ \0 ½B€€€€pƒ¿" ¢¡   £   "\0 \0 \vD-DTû!ù? \0D\0\0\0\0\0\0ð? D\0\0\0\0\0\0à?¢"\0с€€\0"  \0 \0 \0 \0 \0 \0D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢ \0 \0 \0 \0D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £¢D\\3&¦‘¼  ¡"\0 \0 !\f\vD-DTû!ù?! A€€ãI\rD\\3&¦‘< \0 \0 \0¢"     D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢    D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £¢¡ \0¡D-DTû!ù? \v@ A€€À€|j §rE\r\0D\0\0\0\0\0\0\0\0 \0 \0¡£\vD\0\0\0\0\0\0\0\0D-DTû!\t@ BU\v \vØ~|@ \0½"B ˆ§Aÿÿÿÿq"Aÿÿ¿ÿK\r\0@@@@ A€€€ÿI\r\0D\0\0\0\0\0\0ð? \0™¡D\0\0\0\0\0\0à?¢"\0 \0 \0 \0 \0 \0D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢ \0 \0 \0 \0D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £! \0с€€\0! A²æ¼ÿK\rD-DTû!é? ½B€€€€pƒ¿"  ¡D\\3&¦‘< \0  ¢¡   £"\0 \0 ¡    ¢¡ D-DTû!é? !\0\f\v A€€@jA€€€òI\r \0 \0 \0 \0¢"     D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢    D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £¢ \vD-DTû!ù?   ¢ "\0 \0 D\\3&¦‘¼ ¡!\0\v \0š \0 B\0S!\0\v \0\v@ A€€À€|j §rE\r\0D\0\0\0\0\0\0\0\0 \0 \0¡£\v \0D-DTû!ù?¢D\0\0\0\0\0\0p8 \v°~|#€€€€\0Ak!@@@@@@ \0½"B ˆ§Aÿÿÿÿq"Aÿÿ¿ K\r\0 A€€ðþI\r \0™!\0 A€€ÌÿI\r A€€Ž€I\rD\0\0\0\0\0\0ð¿ \0£!\0A!\f\v \0 \0b\rD-DTû!ù? \0¦\vA! A€€€òO\r A€€À\0O\r  \0¶8\f *\f \0\v \0D\0\0\0\0\0\0ø¿  \0D\0\0\0\0\0\0ø?¢D\0\0\0\0\0\0ð? £!\0A!\f\v@ A€€˜ÿI\r\0 \0D\0\0\0\0\0\0ð¿  \0D\0\0\0\0\0\0ð? £!\0A!\f\v \0 \0 D\0\0\0\0\0\0ð¿  \0D\0\0\0\0\0\0\0@ £!\0A\0!\v \0 \0¢" ¢"    D/lj,D´¢¿¢DšýÞR-Þ­¿ ¢Dmšt¯ò°³¿ ¢Dq#þÆq¼¿ ¢DÄ똙™™É¿ ¢!      DÚ"ã:­?¢Dë\rv$K{©? ¢DQ=Рf\r±? ¢Dn LÅÍE·? ¢Dÿƒ\0’$IÂ? ¢D\rUUUUUÕ? ¢!@ A€€ðþI\r\0#€€€\0"A°š€€\0j At"j+\0 \0   ¢ AК€€\0j j+\0¡ \0¡¡"\0š \0 B\0S\v \0 \0   ¢¡!\0\v \0\v«\b\b~#€€€€\0Ak"$€€€€\0@@@@@@@ \0½"B€€€€€€€øÿ\0ƒB€€€€€€€øÿ\0Q\r\0B\0 ½"}B€€€€€€€øÿ\0ƒP\r\0 Bÿÿÿÿÿÿÿÿÿ\0ƒ" Bÿÿÿÿÿÿÿÿÿ\0ƒ"T\r@ B\0 B€€€€€€€x|"  V"B€€€€€€€øÿ\0ƒ}" B\0 B€€€€€€€x|"  V"\bB€€€€€€€øÿ\0ƒ"\t}"B†"\nT\r\0  \tQ\r  ‚!\v B€€€€€€€€€ƒ!\t@ B4ˆ"§"\v \bB4ˆ"§"\fk"\rAK\r\0@  Q\r\0 \rAq!@ \f \vkA|K\r\0 \rAq!\r@ B\0   T}B†"B\0   T}B†"B\0   T}B†"B\0   T}B†! \rA|j"\r\r\0\v E\r\vA\0 k!\r@ B\0   T}B†! \rAj"\r\r\0\v\v B\0   T}!\f\v \rAÀ\0O\r A€j B\0 \r€‚€€\0  )ˆ"X\r  )€  B\0„‚€€\0 )\0!\f\v \0 ¢"\0 \0£!\0\f\v B€€€€€€€€À\0Z\r\0  \nZ\r\0@  B|"ƒP\r\0  y§A~j"\v­"\n†"B€€€€€€€€ X\r B€€€€€€€€À\0Z\r  B†"\bZ\r Að\0jB\0B€€€€€€€€€ \b}" \bB\0…‚€€\0 Aà\0j )p" )x" \bB\0ƒ‚€€\0 AÐ\0j  B| B†B\0ƒ‚€€\0  )h} )`"B\0R­}!B\0 }! )X! )P!@ \v \rj"\rA?I\r\0@ AÀ\0j B\0  ƒ‚€€\0 Bˆ )H|! )@! \rAAj"\rA>K\r\0\v\v A0j   \r€‚€€\0 A j    \rA?s­ˆB\0ƒ‚€€\0 Aj )( )8Bÿÿÿÿÿÿÿÿÿ\0ƒ| ) " )0| T­|B|B\0 \bB\0ƒ‚€€\0 )"B\0   V} \nˆ!\f\v \rAÀ\0I\r\f\v\0\v  \r­† ƒ!\v P\r\0 A4 y§A?sk"\r \f \r \fI"\r­† \t| \f \rk­B4†|¿!\0\f\v \t¿!\0\v Aj$€€€€\0 \0\vÁ\b~@@@@@@@ \0¼"A€€€üqA€€€üF\r\0A\0 ¼"kA€€€üqE\r\0 Aÿÿÿÿq" Aÿÿÿÿq"I\r@ A\0 A€€€|j"  K"A€€€üqk" A\0 A€€€|j"  K"A€€€üq"\bk"At"\tI\r\0  \bF\r  p!\v A€€€€xq!\b Av Av"k"A O\r  ­ ­†"\nB ˆ§M\r \n ­‚§!\f\v \0 ”"\0 \0•\v A€€€€O\r\0  \tO\r\0@  Aj"qE\r\0  gA~j"t"A€€€€M\r A€€€€O\r  At"O\rA€€€€x k­B †"\v ­"\f€"\rB€€€€| At­~!\n \v \r \f~}!\v@  j"AI\r\0@ \nB ˆ \v~ \nB†B€€€€ðÿÿÿÿ\0ƒ|!\n Aaj"AK\r\0\v\v \v \nB ˆ§ Asv­~ \n ­†Bÿÿÿÿÿÿÿÿÿ\0ƒ|B ˆB| \f~B ˆ§"A\0   Kk v!\f\v A I\r\f\v\0\v  t q!\v E\r\0 A gAsk"   I"t \bj  kAtj¾\v \b¾!\0\v \0\v•\r}}}C\0\0€?!@@@@ \0¼"A€€€üF\r\0 ¼"Aÿÿÿÿq"E\r\0@@@ \0‹"¼"A€€€üK\r\0 A€€€üK\r\0 A\0N\rA!\b AÿÿÿÛK\r A€€€üI\rA\0!\b A– Avk"\tv"\n \tt G\rA \nAqk!\b\f\v \0 ’\vA\0!\b\v@@@@ A€€€üF\r\0 A€€€üG\r@@ A€€€üJ A€€€üHkAÿq\0\vC\0\0\0\0 Œ AJ\v C\0\0\0\0 AJ\v AL\r \0\v@@@@ A€€€øF\r\0@ A€€€€G\r\0 \0 \0”\v@ E\r\0 AÿÿÿÿqA€€€üG\r\vC\0\0€? •  A\0H! A\0N\r\f\t\v@ AJ\r\0@ \r\0 !\f\n\v AÿÿÿÿqA€€€üG\r !\f\t\v \0ԁ€€\0\v A\0H\r\0C\0\0€?!\v\f\vC\0\0€?!\v@@ \b\0\v \0 \0“"\0 \0•\vC\0\0€¿!\v\v@ A€€€èK\r\0 C\0\0€K”¼  A€€€I""\bAÿÿÿq"A€€€ür!Aé~A  \bAuj!\tA\0!@ Aòˆó\0I\r\0@ A×çöO\r\0A!\f\v A€€€ør! \tAj!\t\v#€€€\0"Aøš€€\0j At"\bj*\0C\0\0€? A𚀀\0j \bj*\0"\0 ¾"\f’•" \f \0“" AvA€àÿÿq AtjA€€€‚j¾"\r  ”"¼A€`q¾"”“ \0 \r“ \f’ ”“”"\0  ”"\fC\0\0@@’ \0  ’”  ”"\0 \0” \0 \0 \0 \0 \0CBñS>”CU2l>’”C£‹>’”C«ªª>’”C·mÛ>’”Cš™?’”’"\r’¼A€`q¾"\0”  \r \0C\0\0@À’ \f““”’"   \0”"’¼A€`q¾"\0 ““CO8v?” \0CÆ#ö¸”’’" A€›€€\0j \bj*\0"  \0C\0@v?”"\f’’ \t²"’¼A€`q¾"\0 “ “ \f““!\f\v@ AøÿÿûI\r\0@ A‡€€üK\r\0 C\0\0€¿’"\0Cp¥ì6” \0 \0”C\0\0\0? \0 \0C\0\0€¾”C«ªª>’”“”C;ª¸¿”’"  \0C\0ª¸?”"’¼A€`q¾"\0 ““!\f\v@ A\0J\r\0 \vC`B¢\r”C`B¢\r”\v \vCÊòIq”CÊòIq”\v@ A\0H\r\0 \vC`B¢\r”C`B¢\r”\v \vCÊòIq”CÊòIq”\vC\0\0€? \0•\v@@@ \0 A€`q¾"”"\f  “ \0”  ”’"’"\0¼"A€€€˜J\r\0 A€€€˜F\r \0¼Aÿÿÿÿq"A€€Ø˜K\r A€€Ø˜|G\r  \0 \f“_E\r \vC`B¢\r”C`B¢\r”\v \vCÊòIq”CÊòIq”\v C<ª83’ \0 \f“^\r \0¼Aÿÿÿÿq!\vA\0!@ A€€€øM\r\0A\0A€€€ AvAjv j"AÿÿÿqA€€€rA Av"kv"k  A\0H!  \fA€€€| Aju q¾“"\f’¼!\v@@ At A€€~q¾"\0C\0r1?”" \0CŒ¾¿5”  \0 \f““Cr1?”’"’"\0 \0 \0 \0 \0”"    CL»13”Cêݵ’”CU³Š8’”Ca\v6»’”C«ª*>’”“"” C\0\0\0À’•  \0 ““" \0 ”’““C\0\0€?’"\0¼j"A€€€H\r\0 ¾!\0\f\v \0 ߁€€\0!\0\v \v \0”!\v \v \vCÊòIq”CÊòIq”\v \vC`B¢\r”C`B¢\r”\v@ \b A€€€„|jr\r\0  “"\0 \0•\v Œ  \bAF\v§\0@@@@ Aÿ\0J\r\0 A‚N\r \0C\0\0€\f”!\0 A›~M\r Aæ\0j!\f\v \0C\0\0\0”!\0 AþK\r Aj!\f\v \0C\0\0€\f”!\0 A¶} A¶}KAÌj!\f\v \0C\0\0\0”!\0 Aý AýIA‚~j!\v \0 AtA€€€üjA€€€üq¾”\v§~|@  a \0 \0aq\r\0 \0  \v@ ½"B ˆ§"A€€À€|j §"r\r\0 \0ہ€€\0\v AvAq" \0½"B?ˆ§r!@@@@ B ˆ§Aÿÿÿÿq" §r\r\0D-DTû!\tÀ!\b@@ \0\0\0\v \0\vD-DTû!\t@\v Aÿÿÿÿq" rE\r@@ A€€ÀÿG\r\0 A€€ÀÿG\r#€€€\0Aˆ€€\0j Atj+\0\v A€€ÀÿF\r A€€€ j I\r@@ E\r\0D\0\0\0\0\0\0\0\0!\b A€€€ j I\r\v \0 £™ہ€€\0!\b\v@@@ \0\v \bD\\3&¦¡¼ D-DTû!\tÀ \v \bš\vD-DTû!\t@ \bD\\3&¦¡¼ ¡\v#€€€\0A¨€€\0j Atj+\0!\b\v \b\vD-DTû!ù? \0¦\vD-DTû!ù? \0¦\v„#€€€€\0Ak"$€€€€\0@@  j" I\r\0 Aj \0(\0" \0(  At"  K"A\b A\bK"⁀€\0 (AG\r\v\0\v (\b! \0 6\0 \0 6 Aj$€€€€\0\v\0@@ AJ\r\0A!A\0!A!\f\v@@@@ E\r\0  A ©€€€\0!\f\v@ \r\0A!\f\v́€€\0 A¨€€€\0!\v \r\0A! \0A6\f\v \0 6A\0!\vA\b!\v \0 j 6\0 \0 6\0\v #€€€€\0A k"$€€€€\0A\0!@ A\0H\r\0@@@@ \r\0A!\f\v́€€\0 A¨€€€\0"E\rA\0! ! ! !\b@ AI\r\0 Aðÿÿÿq!A\0!\t !@  \tj!@  \tj"\bAj,\0\0"\nAsA€qAv \b,\0\0"\vAsA€qAvj \bAj,\0\0"\fAsA€qAvj \bAj,\0\0"\rAsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bA\bj,\0\0"AsA€qAvj \bA\tj,\0\0"AsA€qAvj \bA\nj,\0\0"AsA€qAvj \bA\vj,\0\0"AsA€qAvj \bA\fj,\0\0"AsA€qAvj \bA\rj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvjAÿqAF\r\0 \t!\f\v AjA A\0 A¿jAÿqAI r:\0\0 AjA A\0 A¿jAÿqAI r:\0\0 A\rjA A\0 A¿jAÿqAI r:\0\0 A\fjA A\0 A¿jAÿqAI r:\0\0 A\vjA A\0 A¿jAÿqAI r:\0\0 A\njA A\0 A¿jAÿqAI r:\0\0 A\tjA A\0 A¿jAÿqAI r:\0\0 A\bjA A\0 A¿jAÿqAI r:\0\0 AjA A\0 A¿jAÿqAI r:\0\0 AjA A\0 A¿jAÿqAI r:\0\0 AjA A\0 A¿jAÿqAI r:\0\0 AjA A\0 A¿jAÿqAI r:\0\0 AjA A\0 \rA¿jAÿqAI \rr:\0\0 AjA A\0 \fA¿jAÿqAI \fr:\0\0 AjA A\0 \nA¿jAÿqAI \nr:\0\0 A A\0 \vA¿jAÿqAI \vr:\0\0 \tAj!\t Apj"AK\r\0\v  \tF\r  \tj!\b  \tj!\v  j!\fA\0!\t@ \b \tj"\n,\0\0"\vA\0H\r  \tjA A\0 \vA¿jAÿqAI \vr:\0\0  \tAj"\tG\r\0\v \f!\v  6  6\f  6\b\f\v  6\f  6\b   \tj"\v6  \tF\r\0 \n  \tkj!  j!  \tj" j! Aj" \tj!  k \tj!  k \tj!A\0!\f@@@@ \n,\0\0"AJ\r\0 \n-\0A?q!\t Aq!\b@@ A_K\r\0 \bAt \tr! \nAj!\f\v \tAt \n-\0A?qr!\t@ ApO\r\0 \t \bA\ftr! \nAj!\f\v \tAt \n-\0A?qr \bAtA€€ð\0qr! \nAj!\v \f \nk j!@ A£F\r\0 !\f !\n\f\v@  \fj"E\r\0@  I\r\0  \fjE\r\f\v  \fj,\0\0A@H\r\v  \fj!A\0!\n@@Aƒ!  F\r@ Aj"\t,\0\0"\bAJ\r\0@@ A~j"\t-\0\0"À"\rA@H\r\0 Aq!\f\v@@ A}j"\t-\0\0"À"A@H\r\0 Aq!\f\v A|j"\t-\0\0AqAt A?qr!\v At \rA?qr!\v At \bA?qr"\bA€€Ä\0F\r\v \t!@@ \nAq\r\0@ \bA€I\r\0 \bA§M\r \bø€€\0E\rA€€Ä\0!\tA\0!\n\f\vA€€Ä\0!\tA\0!\n@ \bAYj"AK\r\0A tA q\r\v \bA¢j\0\0\vA!\n \b!\t\v \tA€€Ä\0F\r\0\v@ \tA_qA¿jAI\r\0 \tAªI\r \tù€€\0E\r\v@  \fjE\r\0@ Aj I\r\0  \fj\r\b\f\v  \fjAj,\0\0A@H\r\v  \fjAj!A\0!\t@A‚!  F\r@@ ,\0\0"\bAL\r\0 Aj! \bAÿq!\b\f\v -\0A?q!\n \bAq!@ \bA_K\r\0 At \nr!\b Aj!\f\v \nAt -\0A?qr!\n@ \bApO\r\0 \n A\ftr!\b Aj!\f\v \nAt -\0A?qr AtA€€ð\0qr"\bA€€Ä\0F\r Aj!\v@@ \tAq\r\0@ \bA€I\r\0 \bA§M\r \bø€€\0E\rA€€Ä\0!\nA\0!\t\f\vA€€Ä\0!\nA\0!\t@ \bAYj"AK\r\0A tA q\r\v \bA¢j\0\0\vA!\t \b!\n\v \nA€€Ä\0F\r\0\v@ \nAßÿÿ\0qA¿jAI\r\0 \nAªI\r \nù€€\0E\r\vAƒ!\v \v!@ (\b \vkAK\r\0 A\bj \vA၀€\0 (!\v (\f" j" :\0 AÏ:\0\0  \vAj"\v6 !\f !\n\f\v Aÿq! \f \nk \nAj"\bj!\f \b!\n\v Aj ö€€\0@@ ("\r\0@@ ("A€I"E\r\0A!\b\f\v@ A€O\r\0A!\b\f\vAA A€€I!\b\v \v!\t@ \b (\b \vkM\r\0 A\bj \v \b၀€\0 (\f! (!\t\v  \tj!\t@@ \r\0 A?qA€r! Av!\r A€O\r \t :\0 \t \rAÀr:\0\0\f\v \t :\0\0\f\v A\fv! \rA?qA€r!\r@ AÿÿK\r\0 \t :\0 \t \r:\0 \t Aàr:\0\0\f\v \t :\0 \t \r:\0 \t A?qA€r:\0 \t AvApr:\0\0\f\v (!\b@@@@@ ("\t\r\0@@ \bA€I"\rE\r\0A!\t\f\v@ \bA€O\r\0A!\t\f\vAA \bA€€I!\t\v \v!@ \t (\b \vkM\r\0 A\bj \v \t၀€\0 (\f! (!\v  j! \r\r \bA?qA€r! \bAv!\r@ \bA€O\r\0  :\0  \rAÀr:\0\0\f\v \bA\fv! \rA?qA€r!\r@ \bAÿÿK\r\0  :\0  \r:\0  Aàr:\0\0\f\v  :\0  \r:\0  A?qA€r:\0  \bAvApr:\0\0\f\v@@ \bA€I"E\r\0A!\f\v@ \bA€O\r\0A!\f\vAA \bA€€I!\v \v!\r@  (\b \vkM\r\0 A\bj \v ၀€\0 (\f! (!\r\v  \rj! \r \bA?qA€r!\r \bAv!@ \bA€O\r\0  \r:\0  AÀr:\0\0\f\v \bA\fv! A?qA€r!@ \bAÿÿK\r\0  \r:\0  :\0  Aàr:\0\0\f\v  \r:\0  :\0  A?qA€r:\0  \bAvApr:\0\0\f\v  \b:\0\0\f\v  \b:\0\0\v   \vj"\b6@@ A€I"\rE\r\0A!\v\f\v@ A€O\r\0A!\v\f\vAA A€€I!\v\v \b!@ \v (\b \bkM\r\0 A\bj \b \v၀€\0 (!\v (\f" j!@@ \r\r\0 A?qA€r!\r Av!@ A€O\r\0  \r:\0  AÀr:\0\0\f\v A\fv! A?qA€r!@ AÿÿK\r\0  \r:\0  :\0  Aàr:\0\0\f\v  \r:\0  :\0  A?qA€r:\0  AvApr:\0\0\f\v  :\0\0\v  \v \bj"6@@ \tA€I"E\r\0A!\b\f\v@ \tA€O\r\0A!\b\f\vAA \tA€€I!\b\v !\v@ \b (\b kM\r\0 A\bj  \b၀€\0 (\f! (!\v\v  \vj!\v@@ \r\0 \tA?qA€r! \tAv!\r@ \tA€O\r\0 \v :\0 \v \rAÀr:\0\0\f\v \tA\fv! \rA?qA€r!\r@ \tAÿÿK\r\0 \v :\0 \v \r:\0 \v Aàr:\0\0\f\v \v :\0 \v \r:\0 \v A?qA€r:\0 \v \tAvApr:\0\0\f\v \v \t:\0\0\v  \b j"\v6\f\v  \t \vj"\b6@@ A€I"E\r\0A!\t\f\v@ A€O\r\0A!\t\f\vAA A€€I!\t\v \b!\v@ \t (\b \bkM\r\0 A\bj \b \t၀€\0 (!\v\v (\f" \vj!\v@@ \r\0 A?qA€r! Av!\r@ A€O\r\0 \v :\0 \v \rAÀr:\0\0\f\v A\fv! \rA?qA€r!\r@ AÿÿK\r\0 \v :\0 \v \r:\0 \v Aàr:\0\0\f\v \v :\0 \v \r:\0 \v A?qA€r:\0 \v AvApr:\0\0\f\v \v :\0\0\v  \t \bj"\v6\f\v  \b \vj"\v6\v \n G\r\0\v\v \0 (6\b \0 )\b7\0 A j$€€€€\0\v\0\vÉ#€€€€\0A k"$€€€€\0A\0!@ A\0H\r\0@@@@ \r\0A!\f\v́€€\0 A¨€€€\0"E\r@@ AO\r\0A\0! ! ! !\b\f\v Aðÿÿÿq!A\0!\t !@  \tj!@  \tj"\bAj,\0\0"\nAsA€qAv \b,\0\0"\vAsA€qAvj \bAj,\0\0"\fAsA€qAvj \bAj,\0\0"\rAsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bA\bj,\0\0"AsA€qAvj \bA\tj,\0\0"AsA€qAvj \bA\nj,\0\0"AsA€qAvj \bA\vj,\0\0"AsA€qAvj \bA\fj,\0\0"AsA€qAvj \bA\rj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvjAÿqAF\r\0 \t!\f\v AjA A\0 AŸjAÿqAI s:\0\0 AjA A\0 AŸjAÿqAI s:\0\0 A\rjA A\0 AŸjAÿqAI s:\0\0 A\fjA A\0 AŸjAÿqAI s:\0\0 A\vjA A\0 AŸjAÿqAI s:\0\0 A\njA A\0 AŸjAÿqAI s:\0\0 A\tjA A\0 AŸjAÿqAI s:\0\0 A\bjA A\0 AŸjAÿqAI s:\0\0 AjA A\0 AŸjAÿqAI s:\0\0 AjA A\0 AŸjAÿqAI s:\0\0 AjA A\0 AŸjAÿqAI s:\0\0 AjA A\0 AŸjAÿqAI s:\0\0 AjA A\0 \rAŸjAÿqAI \rs:\0\0 AjA A\0 \fAŸjAÿqAI \fs:\0\0 AjA A\0 \nAŸjAÿqAI \ns:\0\0 A A\0 \vAŸjAÿqAI \vs:\0\0 \tAj!\t Apj"AK\r\0\v  \tF\r  \tj!\b  \tj!\v  j!\n@ \b,\0\0"\tA\0H\r A A\0 \tAŸjAÿqAI \ts:\0\0 Aj! \bAj!\b Aj! Aj"\r\0\v \n!\v  6  6\f  6\b\f\v  6  6\f  6\b E\r\0 \b j!\v@@@ \b,\0\0"AL\r\0 \bAj!\b Aÿq!\f\v \b-\0A?q! Aq!\t@ A_K\r\0 \tAt r! \bAj!\b\f\v At \b-\0A?qr!@ ApO\r\0  \tA\ftr! \bAj!\b\f\v At \b-\0A?qr \tAtA€€ð\0qr! \bAj!\b\v Aj ÷€€\0@@ ("\r\0@@ ("A€I"\nE\r\0A!\f\v@ A€O\r\0A!\f\vAA A€€I!\v !\t@  (\b kM\r\0 A\bj  ၀€\0 (\f! (!\t\v  \tj!\t@@ \n\r\0 A?qA€r!\n Av!\f@ A€O\r\0 \t \n:\0 \t \fAÀr:\0\0\f\v A\fv!\r \fA?qA€r!\f@ AÿÿK\r\0 \t \n:\0 \t \f:\0 \t \rAàr:\0\0\f\v \t \n:\0 \t \f:\0 \t \rA?qA€r:\0 \t AvApr:\0\0\f\v \t :\0\0\v  j!\f\v (!@ ("\tE\r\0@@ A€I"\rE\r\0A!\n\f\v@ A€O\r\0A!\n\f\vAA A€€I!\n\v !\f@ \n (\b kM\r\0 A\bj  \n၀€\0 (\f! (!\f\v  \fj!@@ \r\r\0 A?qA€r!\f Av!\r@ A€O\r\0  \f:\0  \rAÀr:\0\0\f\v A\fv! \rA?qA€r!\r@ AÿÿK\r\0  \f:\0  \r:\0  Aàr:\0\0\f\v  \f:\0  \r:\0  A?qA€r:\0  AvApr:\0\0\f\v  :\0\0\v  \n j"6@@ A€I"\fE\r\0A!\f\v@ A€O\r\0A!\f\vAA A€€I!\v !\n@  (\b kM\r\0 A\bj  ၀€\0 (!\n\v (\f" \nj!\n@@ \f\r\0 A?qA€r!\f Av!\r@ A€O\r\0 \n \f:\0 \n \rAÀr:\0\0\f\v A\fv! \rA?qA€r!\r@ AÿÿK\r\0 \n \f:\0 \n \r:\0 \n Aàr:\0\0\f\v \n \f:\0 \n \r:\0 \n A?qA€r:\0 \n AvApr:\0\0\f\v \n :\0\0\v   j"6@@ \tA€I"\nE\r\0A!\f\v@ \tA€O\r\0A!\f\vAA \tA€€I!\v !@  (\b kM\r\0 A\bj  ၀€\0 (\f! (!\v  j!@ \n\r\0 \tA?qA€r!\n \tAv!\f@ \tA€O\r\0  \n:\0  \fAÀr:\0\0  j!\f\v \tA\fv!\r \fA?qA€r!\f@ \tAÿÿK\r\0  \n:\0  \f:\0  \rAàr:\0\0  j!\f\v  \n:\0  \f:\0  \rA?qA€r:\0  \tAvApr:\0\0  j!\f\v  \t:\0\0  j!\f\v@@ A€I"\fE\r\0A!\t\f\v@ A€O\r\0A!\t\f\vAA A€€I!\t\v !\n@ \t (\b kM\r\0 A\bj  \t၀€\0 (\f! (!\n\v  \nj!@@ \f\r\0 A?qA€r!\n Av!\f@ A€O\r\0  \n:\0  \fAÀr:\0\0\f\v A\fv!\r \fA?qA€r!\f@ AÿÿK\r\0  \n:\0  \f:\0  \rAàr:\0\0\f\v  \n:\0  \f:\0  \rA?qA€r:\0  AvApr:\0\0\f\v  :\0\0\v  \t j"6@@ A€I"\nE\r\0A!\f\v@ A€O\r\0A!\f\vAA A€€I!\v !\t@  (\b kM\r\0 A\bj  ၀€\0 (!\t\v (\f" \tj!\t@ \n\r\0 A?qA€r!\n Av!\f@ A€O\r\0 \t \n:\0 \t \fAÀr:\0\0  j!\f\v A\fv!\r \fA?qA€r!\f@ AÿÿK\r\0 \t \n:\0 \t \f:\0 \t \rAàr:\0\0  j!\f\v \t \n:\0 \t \f:\0 \t \rA?qA€r:\0 \t AvApr:\0\0  j!\f\v \t :\0\0  j!\v  6 \b \vG\r\0\v\v \0 (6\b \0 )\b7\0 A j$€€€€\0\v\0\võ\v\b~~~~#€€€€\0Ak"$€€€€\0@@@ )\0"B\0Q\r\0 B€€€€€€€€ Z\r\0 E\r\0A  / y"§k"\bkÁAÐ\0lA°§jAÎm"AÐ\0K\r\0 #€€€\0A˜á€€\0j Atj")\0B\0  †B\0ƒ‚€€\0 /\n!\t )\0B?ˆ )\b|"A@ \b /\bjk"­"ˆ§!\n@B †"\vB|"\f ƒ"PE\r\0 A\nK\r#€€€\0A¨ë€€\0j AtjA|j(\0 \nK\r\v A?q!\r@@@ \nAÎ\0I\r\0 \nAÀ„=I\r@ \nA€Â×/I\r\0A\bA\t \nA€”ëÜI"\b!A€Â×/A€”ëÜ \b!\b\f\vAA \nA€­âI"\b!AÀ„=A€­â \b!\b\f\v@ \nAä\0I\r\0AA \nAèI"\b!Aä\0Aè \b!\b\f\vA\nA \nA\tK"!\b\f\vAA \nA I"\b!AÎ\0A  \b!\b\v \r­!@@@@@@@@@@@  \tk"AjÁ" Á"L\r\0 Aÿÿq!  kÁ   k I"\rAj!\tA\0!@ \n \bn!  F\r\f \n  \blk!\n  j A0j:\0\0 \t F\r  F\r Aj! \bA\nI! \bA\nn!\b E\r\0\f\f\v\v B\n€!@@@@ \b­ †" \vX\r\0  \v} \vX\r@  } X\r\0  B†}B †Z\r\v  \vV\r\f\r\v \0A\x006\0\f\v \0A\x006\0\f\v \0 ;\b \0A\x006 \0 6\0\f\r\v   \v}"} V\r\tA\0!@ AjÁ"\b L\r\0 A1:\0\0A!\v \0 \b;\b \0 6 \0 6\0\f\f\v \b­ †" \vX\r  \v} \vX\r@  \n­ † |"} X\r\0  B†}B †Z\r\v  \vX\r   \v}"} V\r  \rj!A\0! !\b@@@ \r F\r Aj! \bAj"\b \rj"\n-\0\0A9F\r\0\v \n \n-\0\0Aj:\0\0 Aj"E\r \nAjA0 ü\v\0\f\v A1:\0\0@ \rAj"E\r\0 AjA0 ü\v\0\v AjÁ" L\r\0 \r O\r\0 A0:\0\0 \rAj!\r\v \r K\r\t\f\v Aj! AjA?q­!B!@@ " ˆP\r\0 \0A\x006\0\f\f\v  O\r\t  j B\n~" ˆ§A0j:\0\0 B\n~!  \fƒ! \r Aj"G\r\0\v \v X\r \v } X\r@ \v } X\r\0 \v B†} B~Z\r\v  X\r \v  }"} V\r  \rj!A\0! !\b@@@ \r F\r Aj! \bAj"\b \rj"\n-\0\0A9F\r\0\v \n \n-\0\0Aj:\0\0 Aj"E\r \nAjA0 ü\v\0\f\v A1:\0\0@ \rAj"E\r\0 AjA0 ü\v\0\v AjÁ" L\r\0 \r O\r\0 A0:\0\0 \rAj!\r\v \r K\r\b\v \0 ;\b \0 \r6 \0 6\0\f\t\v \0A\x006\0\f\b\v \0A\x006\0\f\v \0A\x006\0\f\v \0A\x006\0\f\v \0A\x006\0\f\v \0A\x006\0\f\v \0A\x006\0\f\v\0\v \0A\x006\0\v Aj$€€€€\0\v›(~#€€€€\0AÀk"$€€€€\0@@ )\0"B\0Q\r\0 )\b"B\0Q\r\0 )"\bB\0Q\r\0 \b B…V\r\0  T\r\0 .!  >\f  B ˆ"\b> AA \bP6¬ AjA\0A˜ü\v\0 A´jA\0Aœü\v\0 A6° A6Ð ¬ B|y}BšÁè~B€¡Í ´|B ˆ§"\tÁ!\n@@ A\0H\r\0 A\fj ñ€€\0\f\v A°jA\0 kÁñ€€\0\v@@ \nAJ\r\0 A\fjA\0 \nkAÿÿqü€€\0\f\v A°j \tAÿÿqü€€\0\v Aœj A°jA¤ü\n\0\0 !\v@ A\nI\r\0 AœjAxj!\f !\v@ (¼"A)O\r@ E\r\0@@ At"A|j"\t\r\0 Aœj j!B\0!\f\v \tAvAj"\tAq!\r \f j! \tAþÿÿÿq!\tB\0!@ Aj" B † 5\0„"B€”ëÜ€"\b>\0   \bB€”ëÜ~}B † 5\0„"B€”ëÜ€"\b>\0  \bB€”ëÜ~}! Axj! \tA~j"\t\r\0\v \rE\r A\bj!\v A|j" B † 5\0„B€”ëÜ€>\0\v \vAwj"\vA\tK\r\0\v\v#€€€\0A¨ë€€\0j \vAtj(\0At"\tE\r\0 (¼"A)O\r\0@@ \r\0A\0!\f\v \t­!@@@ At"A|j"\t\r\0 Aœj j!B\0!\b\f\v \tAvAj"\tAq!\v \tAþÿÿÿq!\t  AœjjAxj!B\0!\b@ Aj" \bB † 5\0„"\b €">\0  \b  ~}B † 5\0„"\b €">\0 \b  ~}!\b Axj! \tA~j"\t\r\0\v \vE\r A\bj!\v A|j" \bB † 5\0„ €>\0\v (¼!\v (¬"   K"A(K\r\0@@ \r\0A\0!\f\vA\0!\vA\0!\r@@ AF\r\0 Aq! A>q!A\0!\r Aœj! A\fj!\tA\0!\v@  \t(\0"\f (\0j" \vAqj"6\0 Aj"\v \tAj(\0" \v(\0j"\v  \fI  Irj"6\0 \v I  \vIr!\v \tA\bj!\t A\bj!  \rAj"\rG\r\0\v E\r\v Aœj \rAt"j"\t A\fj j(\0" \t(\0j" \vj"\t6\0  I \t Ir!\v\v \vE\r\0 A(F\r Aœj AtjA6\0 Aj!\v  6¼ (Ð"   K"A)O\r\0 At! AœjA|j!\t@@@ E\r \t j(\0" A|j" A°jj(\0"\vF\r\0\v  \vO\r\0@ \r\0A\0! A\x006¬\f\v At"\rA|j"AvAj"\tAq!\v@@@ A\fO\r\0B\0! A\fj!\f\v \tAüÿÿÿq!\tB\0! A\fj!@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \tA|j"\t\r\0\v \vE\r\v \vAt!\t@  5\0B\n~ |">\0 Aj! B ˆ! \tA|j"\t\r\0\v\v@ P\r\0 A(F\r A\fj \rj §6\0 Aj!\v  6¬\f\v \nAj!\n\vA\0!A!@@ \nÁ" Á"\tH"\r\0 \n kÁ   \tk I"\vE\r\0 AÔj A°jA¤ü\n\0\0 (ô"E\r A(K\r !@ AÔj AtjA|j(\0"\tAJ\r\0 A(F\r AÔj Atj \tAv6\0 Aj!\v@ AF\r\0 !\t@ Aq\r\0 AÔj Aj"\tAtj" (\0At AÔj AtjAxj(\0Avr6\0\v AF\r\0 \tAt AÔjjAtj!@ A\bj" (\0At Aj"(\0"\rAvr6\0  \rAt (\0Avr6\0 Axj! \tA~j"\tAK\r\0\v\v  6ô  (ÔAt6Ô Aøj A°jA¤ü\n\0\0 (˜"E\r A(K\r !@ Aøj AtjA|j(\0Av"\tE\r\0 A(F\r Aøj Atj \t6\0 Aj!\v@ AF\r\0 !\t@ Aq\r\0 Aøj Aj"\tAtj" (\0At Aøj AtjAxj(\0Avr6\0\v AF\r\0 \tAt AøjjAtj!@ A\bj" (\0At Aj"(\0"\rAvr6\0  \rAt (\0Avr6\0 Axj! \tA~j"\tAK\r\0\v\v  6˜  (øAt6ø Aœj A°jA¤ü\n\0\0 (¼"E\r A(K\r !@ Aœj AtjA|j(\0Av"\tE\r\0 A(F\r Aœj Atj \t6\0 Aj!\v@ AF\r\0 !\t@ Aq\r\0 Aœj Aj"\tAtj" (\0At Aœj AtjAxj(\0Avr6\0\v AF\r\0 \tAt AœjjAtj!@ A\bj" (\0At Aj"(\0"\rAvr6\0  \rAt (\0Avr6\0 Axj! \tA~j"\tAK\r\0\v\v  6¼  (œAt6œ A°jA|j! AÔjA|j! AøjA|j! AœjA|j!A\0!@ ! A)O\r Aj! At!A\0!@@@@  F\r A\fj j!\t Aj! \t(\0E\r\0\v    K"At!@@@ E\r  j!\t A|j" A\fjj(\0" \t(\0"\tF\r\0\vA\0!  \tI\r\vA!\rA\0!\f@@ AF\r\0 Aq! A~q!A\0!\fA!\r A\fj! Aœj!\t@  (\0" \t(\0Asj" \rAqj"6\0 Aj"\r \r(\0" \tAj(\0Asj"\r  I  Irj"6\0 \r I  \rIr!\r \tA\bj!\t A\bj!  \fAj"\fG\r\0\v E\r\v A\fj \fAt"j"\t \t(\0"\t Aœj j(\0Asj" \rj"6\0  \tI  Ir!\r\v \rE\r  6¬A\b! !\v    K"At!@ E\r  j!\t A|j" A\fjj(\0" \t(\0"\tF\r\0\v  \tO\r !\f\v \v K\r \v F\r \v k"E\r  jA0 ü\v\0\f\vA!\rA\0!\f@@ AF\r\0 Aq! A~q!A\0!\fA!\r A\fj! Aøj!\t@  (\0" \t(\0Asj" \rAqj"6\0 Aj"\r \r(\0" \tAj(\0Asj"\r  I  Irj"6\0 \r I  \rIr!\r \tA\bj!\t A\bj!  \fAj"\fG\r\0\v E\r\v A\fj \fAt"j"\t \t(\0"\t Aøj j(\0Asj" \rj"6\0  \tI  Ir!\r\v \rE\r  6¬ Ar!\v    K" At!@@@ E\r  j!\t A|j" A\fjj(\0" \t(\0"\tF\r\0\v  \tO\r\0 ! \f\vA!\rA\0!\f@@ AF\r\0 Aq! A~q!A\0!\fA!\r A\fj! AÔj!\t@  (\0" \t(\0Asj" \rAqj"6\0 Aj"\r \r(\0" \tAj(\0Asj"\r  I  Irj"6\0 \r I  \rIr!\r \tA\bj!\t A\bj!  \fAj"\fG\r\0\v E\r\v A\fj \fAt"j"\t \t(\0"\t AÔj j(\0Asj" \rj"6\0  \tI  Ir!\r\v \rE\r  6¬ Aj!\v   K"A)O\r At!@@@ E\r  j!\t A|j" A\fjj(\0" \t(\0"\tF\r\0\v  \tO\r\0 !\f\v@ E\r\0A!\rA\0!\f@@ AF\r\0 Aq! A>q!A\0!\fA!\r A\fj! A°j!\t@  (\0" \t(\0Asj" \rAqj"6\0 Aj"\r \r(\0" \tAj(\0Asj"\r  I  Irj"6\0 \r I  \rIr!\r \tA\bj!\t A\bj!  \fAj"\fG\r\0\v E\r\v A\fj \fAt"j"\t \t(\0"\t A°j j(\0Asj" \rj"6\0  \tI  Ir!\r\v \rE\r\v  6¬ Aj!\v  F\r  j A0j:\0\0@@ \r\0A\0!\f\v At"\fA|j"AvAj"\tAq!\r@@@ A\fO\r\0B\0! A\fj!\f\v \tAüÿÿÿq!\tB\0! A\fj!@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \tA|j"\t\r\0\v \rE\r\v \rAt!\t@  5\0B\n~ |">\0 Aj! B ˆ! \tA|j"\t\r\0\v\v P\r\0 A(F\r A\fj \fj §6\0 Aj!\v  6¬  \vG\r\0\vA\0!\f\vA\0!\v\v@ E\r\0 At"\fA|j"AvAj"\tAq!\r@@@ A\fO\r\0B\0! A°j!\f\v \tAüÿÿÿq!\tB\0! A°j!@  5\0B~ |">\0 Aj" 5\0B~ B ˆ|">\0 A\bj" 5\0B~ B ˆ|">\0 A\fj" 5\0B~ B ˆ|">\0 B ˆ! Aj! \tA|j"\t\r\0\v \rE\r\v \rAt!\t@  5\0B~ |">\0 Aj! B ˆ! \tA|j"\t\r\0\v\v@ PE\r\0 !\f\v A(F\r A°j \fj §6\0 Aj!\v  6Ð    K"A)O\r\0 At! A\fjA|j!\r A°jA|j!\f@@@@ E\r \f j!\t \r j! A|j! (\0" \t(\0"\tF\r\0\v  \tK  \tIkAÿq\0\v@ E\r\0A\0!\v\f\v \vAj" O\r  j-\0\0AqE\r\v \v K\r  \vj!\rA\0! !\t@@ \v F\r Aj! \tAj"\t \vj"-\0\0A9F\r\0\v  -\0\0Aj:\0\0 Aj"E\r AjA0 ü\v\0\f\vA1!@ \r\0 A1:\0\0A0! \vAj"\tE\r\0 AjA0 \tü\v\0\v \nAj!\n \r\0 \v O\r\0 \r :\0\0 \vAj!\v\v \v M\r\v\0\v \0 \n;\b \0 \v6 \0 6\0 AÀj$€€€€\0\vœ~#€€€€\0Ak"$€€€€\0@@ \0/\f"\r\0 \0(\0 \0( ò€€\0!\f\v  )\b7\b  )\x007\0@@@ \0)\b"§"A€€€\bq\r\0 (!\f\v \0(\0 (\0 (" \0((\f€€€\0€€€€\0\r \0 A€€€ÿyqA°€€€r"6\b B7\0A\0!A\0  Aÿÿqk"  K!\v@ (\f"E\r\0 (\b!@@@@@@ /\0\0\0\v Aj(\0!\b\f\v Aj/\0"\b\rA!\b\f\v A\bj(\0!\b\f\v \bAöÿj \bAœÿjq \bA˜ø7j \bAð±jqsAvAj!\b\vA  \bj"\b \b I! A\fj! Aj"\r\0\v\v@  AÿÿqI\r\0 \0(\0 \0( ò€€\0! \0 7\b\f\v  k!\tA\0!A\0!@@@ AvAq\0\0\v \t!\f\v \tAþÿqAv!\v Aÿÿÿ\0q!\b \0(! \0(\0!@@ Aÿÿq AÿÿqO\r Aj!  \b (‚€€€\0€€€€\0E\r\0\f\v\v   ò€€\0\r\0A\0! \t kAÿÿq!@@ Aÿÿq"\t I! \t O\r Aj!  \b (‚€€€\0€€€€\0E\r\0\v\v \0 7\b\f\vA!\v Aj$€€€€\0 \vò\n~~~#€€€€\0Aà\bk"$€€€€\0 ½"Bÿÿÿÿÿÿÿƒ"B€€€€€€€\b„ B†Bþÿÿÿÿÿÿƒ B4ˆ§Aÿq""\bBƒ!\tA!\n@@@@@ P"\vAA \vA B€€€€€€€øÿ\0ƒ"P B€€€€€€€øÿ\0Q\0\vA!\n\f\vA!\n\f\v AÍwj!\f \t§As!\nB!\r\f\vB€€€€€€€ \bB† \bB€€€€€€€\bQ"\f!\bBB \f!\r \t§As!\nAËwAÌw \f j!\f\v Aÿÿq!\v  \f;Ø\b  \r7Ð\b B7È\b  \b7À\b  \n:\0Ú\b@@@@ \nAÿqAK\r\0#€€€\0!\nAtA \fÁ"\fA\0H \fl"\fAÀý\0I\r\f\v@@@ \nA~j"AÿqE\r\0A!\n#€€€\0"\fAÿ¶€€\0j" \fA€·€€\0j B\0S"\f A \f !\fA B?ˆ§ ! AÿqAG\r A;€\b Aÿÿq\rA!\n A6ˆ\b #€€€\0A‡·€€\0j6„\b\f\v A6ˆ\b A;€\b #€€€\0A·€€\0j6„\bA!\fA\0!A!\n\f\v A6ˆ\b A;€\b #€€€\0A„·€€\0j6„\b\f\v  \v6\b A\0;Œ\bA!\n A6ˆ\b #€€€\0Aˆ·€€\0j6„\b\f\v \nAÿ¶€€\0j" \nA€·€€\0j B\0S"\n! A \n! B?ˆ§! A€\bj AÀ\bj  \fAvAj"\fA\0 kA€€~ ÁAJ"\n偀€\0 \nÁ!\n@@ (€\bE\r\0  (ˆ\b6¸\b  )€\b7°\b\f\v A°\bj AÀ\bj  \f \n恀€\0\v   !\fA  !@ .¸\b" \nL\r\0 (´\b"E\r (°\b"\n-\0\0A0M\r A;€\b@@@@ AH\r\0  \n6„\b  M\r A;˜\b A6”\b A;Œ\b #€€€\0AÔ·€€\0j6\b  6ˆ\b   k"6 \b  \n j6œ\b \v K\rA!\n\f\v  \n6œ\b A;˜\b A6ˆ\b #€€€\0Aˆ·€€\0j6„\b A\0;Œ\b A\0 k"6\b  6 \bA!\n \v M\r \v k"\v M\r \v j!\v\f\v A\0;Œ\b  6ˆ\b   k6\b@ Aÿÿq\r\0A!\n\f\v A6 \b A;˜\b #€€€\0AÔ·€€\0j6œ\b\f\v \v k!\v\v  \v6¨\b A\0;¤\bA!\n\f\vA!\n A;€\b@ Aÿÿq\r\0A!\n A6ˆ\b #€€€\0A‡·€€\0j6„\b\f\v  \v6\b A\0;Œ\b A6ˆ\b #€€€\0Aˆ·€€\0j6„\b\v  \n6¼\b  6´\b  \f6°\b  A€\bj6¸\b \0 A°\bj灀€\0!\n Aà\bj$€€€€\0 \n\v\0\v“\v\n~~\b~~~#€€€€\0A0k"$€€€€\0@@@@@@@ )\0"B\0Q\r\0 )\b"B\0Q\r\0 )"B\0Q\r\0  |"\b T\r\0  T\r\0 AM\r\0 \bB€€€€€€€€ Z\r\0  }" \by"†"\t ˆ R\r\0  †" ˆ R\r\0A  / §k"\nkÁAÐ\0lA°§jAÎm"AÐ\0K\r\0 A j#€€€\0A˜á€€\0j Atj")\0"B\0 \b †B\0ƒ‚€€\0 Aj B\0 \tB\0ƒ‚€€\0  B\0 B\0ƒ‚€€\0BA\0 \n /\bjk"\n­"†"\vB|!\f /\n! \nA?q!\r )B?‡! )\0B?ˆ! )\b! )!@@@ )(" ) B?ˆ"|"B|" ˆ§"AÎ\0I\r\0 AÀ„=I\r@ A€Â×/I\r\0A\bA\t A€”ëÜI"\n!A€Â×/A€”ëÜ \n!\n\f\vAA A€­âI"\n!AÀ„=A€­â \n!\n\f\v@ Aä\0I\r\0AA AèI"\n!Aä\0Aè \n!\n\f\vA\nA A\tK"!\n\f\vAA A I"\n!AÎ\0A  \n!\n\v  \fƒ! \r­!  |!  kAj!  } |B|"\t \fƒ!A\0!@  \nn!\r  F\r  j" \rA0j":\0\0@@@ \t  \r \nlk"­ †" |"\bV\r\0  G\rB!\b@ ! \b!\t Aj"\n O\r  jAj B\n~" ˆ§A0j":\0\0 \tB\n~!\b \n! B\n~"  \fƒ"X\r\0\v  }" \vT! \b  }~" \b|!   \b}"\fZ\r  \vZ\r\f\v \t \b}"\f \n­ †"T!\n  }"B|! \b B|"\vZ\r \f T\r  }  |}!  | }  |" |}B|!  | | } } |!B\0!@@ \b |" \vT\r\0  | Z\r\0A\0!\n\f\v  Aj":\0\0  |"\f T!\n  \vZ\r  |!  }! !\b \f T\r\f\0\v\v  \nj!\r \v \f}!B\0 }! B\n~ \v}!@@  \v|"\b \fT\r\0 \f |  |Z\r\0A\0!\f\v \r Aj":\0\0  |" \vT! \b \fZ\r  \v}! \b!  \vT\r\f\0\v\v Aj! \nA\nI!\r \nA\nn!\n \rE\r\0\v\v\0\v \b!\v@  X\r\0 \n\r\0@  |" T\r\0  }  }T\r\v \0A\x006\0\f\v@@ BT\r\0  \tB||X\r\v \0A\x006\0\f\v \0 ;\b \0 Aj6\f\v !\b\v@  \bX\r\0 \r\0@ \b \v|" T\r\0  \b}  }T\r\v \0A\x006\0\f\v@@ \tB~ \bV\r\0 \b  \tBX~|X\r\v \0A\x006\0\f\v \0 ;\b \0 \nAj6\v \0 6\0\v A0j$€€€€\0\vâ1~#€€€€\0A \nk"$€€€€\0@ )\0"B\0Q\r\0 )\b"B\0Q\r\0 )"B\0Q\r\0  |"\b T\r\0  T\r\0 AM\r\0 ,\0!\t .!  >\0  B ˆ"> AA P6  A\bjA\0A˜ü\v\0  >¤  B ˆ">¨ AA P6Ä A¤jA\bjA\0A˜ü\v\0  >È  B ˆ">Ì AA P6è AÈjA\bjA\0A˜ü\v\0 AðjA\0Aœü\v\0 A6ì A6Œ ¬ \bB|y}BšÁè~B€¡Í ´|B ˆ§"\nÁ!\v@@ A\0H\r\0  ñ€€\0 A¤j ñ€€\0 AÈj ñ€€\0\f\v AìjA\0 kÁñ€€\0\v@@ \vAJ\r\0 A\0 \vkAÿÿq"ü€€\0 A¤j ü€€\0 AÈj ü€€\0\f\v Aìj \nAÿÿqü€€\0\v Aü\bj A¤ü\n\0\0 (è"\f (œ\n" \f K"\rA(K\r\0@@ \r\r\0A\0!\r\f\vA\0!A\0!@@ \rAF\r\0 \rAq! \rA>q!A\0! Aü\bj! AÈj!\nA\0!@  \n(\0" (\0j" Aqj"6\0 Aj" \nAj(\0" (\0j"  I  Irj"6\0  I  Ir! \nA\bj!\n A\bj!  Aj"G\r\0\v E\r\v Aü\bj At"j"\n AÈj j(\0" \n(\0j" j"\n6\0  I \n Ir!\v E\r\0 \rA(F\r Aü\bj \rAtjA6\0 \rAj!\r\v  \r6œ\n \r (Œ" \r K"A)O\r\0 At! Aü\bjA|j!@@@ \r\0A\0!\f\v  j!\n A|j" Aìjj(\0" \n(\0"\nF\r\0\v  \nK  \nIk!\v@@  \tH\r\0 ( "A)O\r@@ \r\0A\0!\f\v At"A|j"AvAj"\nAq!@@@ A\fO\r\0B\0! !\f\v \nAüÿÿÿq!\nB\0! !@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \nA|j"\n\r\0\v E\r\v At!\n@  5\0B\n~ |">\0 Aj! B ˆ! \nA|j"\n\r\0\v\v P\r\0 A(F\r  j §6\0 Aj!\v  6  (Ä"A)O\rA\0!A\0!@ E\r\0 At"A|j"AvAj"\nAq!@@@ A\fO\r\0B\0! A¤j!\f\v \nAüÿÿÿq!\nB\0! A¤j!@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \nA|j"\n\r\0\v E\r\v At!\n@  5\0B\n~ |">\0 Aj! B ˆ! \nA|j"\n\r\0\v\v@ PE\r\0 !\f\v A(F\r A¤j j §6\0 Aj!\v  6Ä@ \fE\r\0 \fAt"A|j"AvAj"\nAq!@@@ A\fO\r\0B\0! AÈj!\f\v \nAüÿÿÿq!\nB\0! AÈj!@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \nA|j"\n\r\0\v E\r\v At!\n@  5\0B\n~ |">\0 Aj! B ˆ! \nA|j"\n\r\0\v\v@ PE\r\0  \f"6è\f\v \fA(F\r AÈj j §6\0 \fAj!\v  6è\f\v \vAj!\v \f!\v Aj AìjA¤ü\n\0\0 (°"E\r\0 A(K\r\0 !@ Aj AtjA|j(\0"\nAJ\r\0 A(F\r Aj Atj \nAv6\0 Aj!\v@ AF\r\0 !\n@ Aq\r\0 Aj Aj"\nAtj" (\0At Aj AtjAxj(\0Avr6\0\v AF\r\0 \nAt AjjAtj!@ A\bj" (\0At Aj"(\0"Avr6\0  At (\0Avr6\0 Axj! \nA~j"\nAK\r\0\v\v  6°  (At6 A´j AìjA¤ü\n\0\0 (Ô"E\r\0 A(K\r\0 !@ A´j AtjA|j(\0Av"\nE\r\0 A(F\r A´j Atj \n6\0 Aj!\v@ AF\r\0 !\n@ Aq\r\0 A´j Aj"\nAtj" (\0At A´j AtjAxj(\0Avr6\0\v AF\r\0 \nAt A´jjAtj!@ A\bj" (\0At Aj"(\0"Avr6\0  At (\0Avr6\0 Axj! \nA~j"\nAK\r\0\v\v  6Ô  (´At6´ AØj AìjA¤ü\n\0\0 (ø\b"E\r\0 A(K\r\0 !@ AØj AtjA|j(\0Av"\nE\r\0 A(F\r AØj Atj \n6\0 Aj!\v@ AF\r\0 !\n@ Aq\r\0 AØj Aj"\nAtj" (\0At AØj AtjAxj(\0Avr6\0\v AF\r\0 \nAt AØjjAtj!@ A\bj" (\0At Aj"(\0"Avr6\0  At (\0Avr6\0 Axj! \nA~j"\nAK\r\0\v\v  (ØAt6Ø  6ø\b  ( "  K"A(K\r\0 AìjA|j! Aü\bjA|j! AjA|j!\f A´jA|j!\r AØjA|j!A\0!@@ ! At!@@@ E\r  j!\n A|j" j(\0" \n(\0"\nF\r\0\vA\0!  \nI\r\vA!A\0!@@ AF\r\0 Aq! A>q! A\0!A! ! AØj!\n@  (\0" \n(\0Asj" Aqj"6\0 Aj" (\0" \nAj(\0Asj"  I  Irj"6\0  I  Ir! \nA\bj!\n A\bj! Aj"G\r\0\v E\r\v  At"j"\n \n(\0"\n AØj j(\0Asj" j"6\0  \nI  Ir!\v E\r  6 A\b! !\v    K"A)O\r At!@@@ E\r \r j!\n A|j" j(\0" \n(\0"\nF\r\0\v  \nO\r\0 !\f\vA!A\0!@@ AF\r\0 Aq!! A>q! A\0!A! ! A´j!\n@  (\0" \n(\0Asj" Aqj"6\0 Aj" (\0" \nAj(\0Asj"  I  Irj"6\0  I  Ir! \nA\bj!\n A\bj! Aj"G\r\0\v !E\r\v  At"j"\n \n(\0"\n A´j j(\0Asj" j"6\0  \nI  Ir!\v E\r  6  Ar!\v    K"!A)O\r !At!@@@ E\r \f j!\n A|j" j(\0" \n(\0"\nF\r\0\v  \nO\r\0 !!\f\vA!A\0!@@ !AF\r\0 !Aq! !A>q! A\0!A! ! Aj!\n@  (\0" \n(\0Asj" Aqj"6\0 Aj" (\0" \nAj(\0Asj"  I  Irj"6\0  I  Ir! \nA\bj!\n A\bj! Aj"G\r\0\v E\r\v  At"j"\n \n(\0"\n Aj j(\0Asj" j"6\0  \nI  Ir!\v E\r  !6  Aj!\v  !  !K"A)O\r At!@@@ E\r A|j" j(\0"\n  Aìjj(\0"F\r\0\v \n O\r\0 !!\f\v@ E\r\0A!A\0!@@ AF\r\0 Aq!! A>q! A\0!A! ! Aìj!\n@  (\0" \n(\0Asj" Aqj"6\0 Aj" (\0" \nAj(\0Asj"  I  Irj"6\0  I  Ir! \nA\bj!\n A\bj! Aj"G\r\0\v !E\r\v  At"j"\n \n(\0"\n Aìj j(\0Asj" j"6\0  \nI  Ir!\v E\r\v  6  Aj!\v  F\r  j A0j:\0\0 (Ä"!  ! K"A)O\r Aj! At!@@@ \r\0A\0!"\f\v A|j" j(\0"\n  A¤jj(\0"F\r\0\v \n K \n Ik!"\v Aü\bj A¤ü\n\0\0  (œ\n"  K"A(K\r@@ \r\0A\0!\f\vA\0!A\0!@@ AF\r\0 Aq!# A>q! A\0! Aü\bj! AÈj!\nA\0!@  \n(\0" (\0j" Aqj"6\0 Aj" \nAj(\0" (\0j"  I  Irj"6\0  I  Ir! \nA\bj!\n A\bj! Aj"G\r\0\v #E\r\v Aü\bj At"j"\n AÈj j(\0" \n(\0j" j"\n6\0  I \n Ir!\v E\r\0 A(F\r Aü\bj AtjA6\0 Aj!\v  6œ\n    K"A)O\r At!@@@ \r\0A\0!\f\v  j!\n  j! A|j! (\0" \n(\0"\nF\r\0\v  \nK  \nIk!\v@@@@@@@ " \tH\r\0  \tH\rA\0!A\0! E\r At"A|j"AvAj"\nAq! A\fO\rB\0! !\f\v  \tN\r E\r\b A(K!\n !@ \n\r\t Aj"\r\0\v !@  AtjA|j(\0"AJ\r\0 A(F\r\t  Atj Av6\0 Aj!\v@ AF\r\0 !\n@ Aq\r\0  Aj"\nAtj" (\0At  AtjAxj(\0Avr6\0\v AF\r\0 \nAt jAtj!@ A\bj" (\0At Aj"(\0"Avr6\0  At (\0Avr6\0 Axj! \nA~j"\nAK\r\0\v\v  (\0At6\0  6     K"A)O\r\b At! A|j! AìjA|j!@ E\r  j!\n  j! A|j! (\0" \n(\0"\nF\r\0\v  \nI\r\v  j!A!\n !@ AF\r \nAj!\n  j! Aj"! -\0\0A9F\r\0\v  j"Aj" -\0\0Aj:\0\0 \nE\r AjA0 \nü\v\0\f\v \nAüÿÿÿq!\nB\0! !@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \nA|j"\n\r\0\v E\r\v At!\n@  5\0B\n~ |">\0 Aj! B ˆ! \nA|j"\n\r\0\v\v@ PE\r\0 !\f\v A(F\r  j §6\0 Aj!\v  6 @ !E\r\0 !At"A|j"AvAj"\nAq!@@@ A\fO\r\0B\0! A¤j!\f\v \nAüÿÿÿq!\nB\0! A¤j!@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \nA|j"\n\r\0\v E\r\v At!\n@  5\0B\n~ |">\0 Aj! B ˆ! \nA|j"\n\r\0\v\v@ PE\r\0 !!\f\v !A(F\r A¤j j §6\0 !Aj!\v  6Ä@@ \r\0A\0!\f\v At"A|j"AvAj"\nAq!@@@ A\fO\r\0B\0! AÈj!\f\v \nAüÿÿÿq!\nB\0! AÈj!@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \nA|j"\n\r\0\v E\r\v At!\n@  5\0B\n~ |">\0 Aj! B ˆ! \nA|j"\n\r\0\v\v P\r\0 A(F\r AÈj j §6\0 Aj!\v  6è    K"A)I\r\f\v\v A1:\0\0@ E\r\0 AjA0 ü\v\0\v  O\r A0:\0\0 \vAj!\v Aj!\v  K\r\0 \0 \v;\b \0 6 \0 6\0 A \nj$€€€€\0\v\0\væ\b~~~#€€€€\0Ak"$€€€€\0 ½"Bÿÿÿÿÿÿÿƒ"B€€€€€€€\b„ B†Bþÿÿÿÿÿÿƒ B4ˆ§Aÿq""\bBƒ!\tA!\n@@@@@ P"\vAA \vA B€€€€€€€øÿ\0ƒ"P B€€€€€€€øÿ\0Q\0\vA!\n\f\vA!\n\f\v AÍwj!\f \t§As!\nB!\r\f\vB€€€€€€€ \bB† \bB€€€€€€€\bQ"\f!\bBB \f!\r \t§As!\nAËwAÌw \f j!\f\v  \f;x  \r7p B7h  \b7`  \n:\0z@@@@@@@@@ \nAÿqAK\r\0 AÐ\0j Aà\0j AjA遀€\0#€€€\0!\n (PE\r  (X6ˆ  )P7€\f\v \nA~j"\vAÿqE\rA!\n#€€€\0"\fAÿ¶€€\0j" \fA€·€€\0j B\0S"\f A \f !\fA B?ˆ§ ! \vAÿqAG\r A; Aÿÿq\rA!\n A6( #€€€\0A‡·€€\0j6$\f\v A€j Aà\0j AjAꁀ€\0\v („"\vE\r (€"-\0\0A0M\r \nAÿ¶€€\0j"\f \nA€·€€\0j B\0S"\n \fA \n !\fA B?ˆ§ ! .ˆ!\n A; \nAH\r  6$@@ \v \nM\r\0 A;8 A64 A;, #€€€\0AÔ·€€\0j60  \n6(   \nj6<  \v \nk"\n6@ \n AÿÿqI\rA!\n\f\v A\0;,  \v6(  \n \vk60@ Aÿÿq\r\0A!\n\f\v A6@ A;8 #€€€\0AÔ·€€\0j6<\v A\0;DA!\n AÈ\0jA6\0\f\v A6( A; #€€€\0A·€€\0j6$A!\fA\0!A!\n\f\v A6( A; #€€€\0A„·€€\0j6$\f\v A60 A\0;,A!\n A6( #€€€\0Aˆ·€€\0j6$\f\v\0\v  6< A;8 A6( #€€€\0Aˆ·€€\0j6$ A\0;, A\0 \nk60A!\n AÀ\0j \v6\0\v  \n6\\  6T  \f6P  A j6X \0 AÐ\0j灀€\0!\n Aj$€€€€\0 \n\v“\v~~~\b#€€€€\0A\tk"$€€€€\0 ½"Bÿÿÿÿÿÿÿƒ"B€€€€€€€\b„ B†Bþÿÿÿÿÿÿƒ B4ˆ§Aÿq"\b"\tBƒ!\nA!\v@@@@@ P"\fAA \fA B€€€€€€€øÿ\0ƒ"P B€€€€€€€øÿ\0Q\0\vA!\v\f\vA!\v\f\v \bAÍwj!\r \n§As!\vB!\f\vB€€€€€€€ \tB† \tB€€€€€€€\bQ"\r!\tBB \r! \n§As!\vAËwAÌw \r \bj!\r\v Aÿÿq!\f  \r;ø\b  7ð\b B7è\b  \t7à\b  \v:\0ú\b@@@@ \vAÿqAK\r\0#€€€\0!\v \fAjAtA \rÁ"\rA\0H \rlAvAj"\r \r \fK"\rA\bI\r\f\v@@@ \vA~j"\bAÿqE\r\0A!\v#€€€\0"\rAÿ¶€€\0j" \rA€·€€\0j B\0S"\r A \r !\rA B?ˆ§ ! \bAÿqAG\r Aÿÿq\r A6\b A;ˆ\b #€€€\0A·€€\0AŠ·€€\0 j6Œ\b\f\v A6\b A;ˆ\b #€€€\0A·€€\0j6Œ\bA!\rA\0!A!\v\f\v A6\b A;ˆ\b #€€€\0A„·€€\0j6Œ\b\f\v A6¨\b A; \b  \f6˜\b A\0;”\b A6\b A;ˆ\b #€€€\0"\vAˆ·€€\0j6Œ\b  \vA’·€€\0A·€€\0 j6¤\bA!\v\f\v AÐ\bj Aà\bj A\bj \rA€€偀€\0@@ (Ð\bE\r\0  (Ø\b6ˆ\t  )Ð\b7€\t\f\v A€\tj Aà\bj A\bj \rA€€恀€\0\v („\t"E\r (€\t"-\0\0A0M\r B\0S!\b \vA€·€€\0j! \vAÿ¶€€\0j! B?ˆ! A \bj!\r .ˆ\t!A!\v A6\b  6Œ\bA! A;ˆ\b@@@ Aj"\r\0#€€€\0! AÿÿqE\r Aœ\bj! A˜\bj! A”\bj! AÔ·€€\0j!\f\v A¨\bj! A¤\bj! A;”\b #€€€\0AÔ·€€\0j6˜\b A6œ\b Aj!A! \r! !\v A¬\bj!\r\v  6\0 A;\0  \v6\0@ \f K\r\0 !\v\f\v \rA\0;\0 \r \f k6 Aj!\v\v   \b!\r A \b!\f §!@@ AH\r\0 Aˆ\bj \vA\flj"\bA6\b \b#€€€\0AÖ¹€€\0AÕ¹€€\0 j6 \bA;\0 Aj!\f\v Aˆ\bj \vA\flj"\bA6\b \b#€€€\0AÙ¹€€\0A×¹€€\0 j6 \bA;\0A k!\v \r \f !\rA  ! Aˆ\bj \vA\flj"\f ; \fA;\f \vAj!\v\v  \v6Ü\b  6Ô\b  \r6Ð\b  Aˆ\bj6Ø\b \0 AÐ\bj灀€\0!\v A\tj$€€€€\0 \v\v\0\vƒ\b~~~#€€€€\0A k"$€€€€\0 ½"Bÿÿÿÿÿÿÿƒ"B€€€€€€€\b„ B†Bþÿÿÿÿÿÿƒ B4ˆ§Aÿq""\bBƒ!\tA!\n@@@@@ P"\vAA \vA B€€€€€€€øÿ\0ƒ"P B€€€€€€€øÿ\0Q\0\vA!\n\f\vA!\n\f\v AÍwj!\f \t§As!\nB!\r\f\vB€€€€€€€ \bB† \bB€€€€€€€\bQ"\f!\bBB \f!\r \t§As!\nAËwAÌw \f j!\f\v  \f;ˆ  \r7€ B7x  \b7p  \n:\0Š@@@@@@@@ \nAÿqAK\r\0 Aà\0j Að\0j AjA遀€\0#€€€\0!\n (`E\r  (h6˜  )`7\f\v \nA~j"\nAÿqE\rA!\f#€€€\0"\vAÿ¶€€\0j" \vA€·€€\0j B\0S"\v A \v !\vA B?ˆ§ ! \nAÿqAF\r A6 A; #€€€\0A„·€€\0j6\f\v Aj Að\0j AjAꁀ€\0\v (”"\vE\r ("\f-\0\0A0M\r \nAÿ¶€€\0j" \nA€·€€\0j B\0S"\n! A \n! B?ˆ§! .˜! A6  \f6 A;@ \vAj"\v\r\0 A$j!\nA!\f\f\v A\0 Aj" B ˆ 5\0| Aj5\0 ~|">\0 B ˆ! A\bj! A\bj! \v \rAj"\rG\r\0\v \fE\r\v  \tAtj \rAtj"  5\0| 5\0 ~|">\0 B ˆ!\v !@ P\r\0 \t j"A(O\r  Atj §6\0 \n!\v   \tj"  K! !\f\0\v\v A)O\r\0 Aj!\f \0 Atj! AjAÿÿÿÿq"\nAj"Aþÿÿÿq! Aq!A\0!\t \0!\bA\0!@A\0 \tk!  \tAtj!@ \t!\r ! ! \b F\r Aj! Aj! \rAj!\t \b(\0! \bAj"\v!\b E\r\0\v \rA( \rA(K j \nM\r ­!A\0!B\0! !\b@@ AF\r\0@   5\0| \b5\0 ~|">\0 Aj" B ˆ 5\0| \bAj5\0 ~|">\0 B ˆ! \bA\bj!\b A\bj!  Aj"G\r\0\v E\r\v  \rAtj Atj"  5\0| \b5\0 ~|">\0 B ˆ!\v !@ P\r\0 \r j"A(O\r  Atj §6\0 \f!\v   \rj"  K! \v!\b\f\0\v\v\0\v \0 A ü\n\0\0 \0 6  A j$€€€€\0 \0\vØ\t@@ A€\nO\r\0 Av!@ \0( "E\r\0 Aj! At \0jA|j!  jAt \0jA|j! A(K!@ \r  jA(O\r  (\x006\0 A|j! A|j! Aj"\r\0\v\v Aq!@ E\r\0 At"E\r\0 \0A\0 ü\v\0\v \0( " j!@ \r\0 \0 6  \0\v Aj"A\'K\r\0 !\b \0 Atj(\0A k"v"E\r A\'K\r\0 \0 Atj 6\0 Aj!\b\f\v\0\v@ Aj"\t O\r\0@@ AqE\r\0 !\f\v \0 Aj"Atj" \0 AtjAxj(\0 v (\0 tr6\0\v AF\r\0 At \0jAtj!@ A\bj" Aj"(\0"\n v (\0 tr6\0  (\0 v \n tr6\0 Axj! \t A~j"I\r\0\v\v \0 Atj" (\0 t6\0 \0 \b6  \0\vê#€€€€\0Ak"$€€€€\0@@@ ("E\r\0 \0 (\0  (\f€€€\0€€€€\0\r\v@ (\f"\r\0A\0!\f\v (\b" A\flj!@@@@@@@@@ /\0\0\0\v ("AÁ\0I\r A\fj(\0!@ \0#€€€\0A”·€€\0jAÀ\0 €€€\0€€€€\0\r\t A@j"AÀ\0K\r\0\f\v\v /! A\0:\0\f A\x006\b \rA!\f\v \0 ( (\b A\fj(\0€€€\0€€€€\0E\r\f\v \r\f\v Aöÿj Aœÿjq A˜ø7j Að±jqsAvAj!\v A\bj Aj"j"\b  A\nn"\tA\nlkA0r:\0\0@ E\r\0 \bAj \tA\npA0r:\0\0 AF\r\0 \bA~j Aä\0nA\npA0r:\0\0 AF\r\0 \bA}j AènA\npA0r:\0\0 AF\r\0 \bA|j AÎ\0nA0r:\0\0 AF\r\0 \bA{jA0:\0\0 AF\r\0 \bAzjA0:\0\0 AF\r\0 \bAyjA0:\0\0\v \0 A\bj  A\fj(\0€€€\0€€€€\0E\r\f\v \0#€€€\0A”·€€\0j  A\fj(\0€€€\0€€€€\0\r\v A\fj" G\r\0\vA\0!\f\vA!\v Aj$€€€€\0 \vµ@ \r\0A\0\v Aq!A\0!A\0!@@ AI\r\0 Aüÿÿÿq!A\0!A\0!@  \0 j",\0\0A¿Jj Aj,\0\0A¿Jj Aj,\0\0A¿Jj Aj,\0\0A¿Jj!  Aj"G\r\0\v E\r\v \0 j!@  ,\0\0A¿Jj! Aj! Aj"\r\0\v\v \vÝA\0!#€€€\0Aܹ€€\0j" A\0A \0A¹ÔI" A\rj"  Atj(\0A\vt \0A\vt"K" Aj"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K"Atj(\0A\vt" F  Ij j"Atj"(\0Av!Aï\v!@@ A1K\r\0 (Av! E\r\v A|j(\0Aÿÿÿ\0q!\v@  AsjE\r\0 \0 k!\0 Aj!A\0!@ #€€€\0Aȝ€€\0j j-\0\0j" \0K\r  Aj"G\r\0\v\v Aq\v“@ A€€\bI\r\0 \0A€€Ä\x006\0\v  A\fvAðÿ?qj"(\0!A\0!@@@ ("\0\vA\0! Aÿÿq!@  Av" j"\b  \bAlj/\0 K!  k"AK\r\0\v\v  Alj"/\0" Aÿÿq"K\r\0  Aj-\0\0jAÿÿq I\r\0  s -\0qAq\r\0 \0B\x007 \0 A€€q / jAÿÿqr6\0\v (\b!A\0!@@@@ (\f"\0\vA\0! Aÿÿq!@  Av" j"\b  \bAtj/\0 K!  k"AK\r\0\v\v  Atj"/\0 AÿÿqF\r\v \0A€€Ä\x006\0\v \0 A€€q" /r6\b \0  /r6 \0  /r6\0\v–#€€€€\0Ak"$€€€€\0@@ AÀI\r\0 Aj #€€€\0AŠ€\0jõ€€\0 \0B\x007 \0 6\0 (A€€Ä\0F\r \0 (\f6\b \0 )7\0\f\v \0B\x007 \0 A r  A¿jAI6\0\v Aj$€€€€\0\v—#€€€€\0Ak"$€€€€\0@@ AµI\r\0 Aj #€€€\0A°Š€\0jõ€€\0 \0B\x007 \0 6\0 (A€€Ä\0F\r \0 (\f6\b \0 )7\0\f\v \0B\x007 \0 Aß\0q  AŸjAI6\0\v Aj$€€€€\0\vÝA\0!#€€€\0AÐӀ€\0j" A\0A \0Aó½I" A\tr"  Atj(\0A\vt \0A\vt"K" Ar"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K"Atj(\0A\vt" F  Ij j"Atj"(\0Av!A—!@@ A"K\r\0 (Av! E\r\v A|j(\0Aÿÿÿ\0q!\v@  AsjE\r\0 \0 k!\0 Aj!A\0!@ #€€€\0A·«€€\0j j-\0\0j" \0K\r  Aj"G\r\0\v\v Aq\vÂA\0!#€€€\0AàԀ€\0j" A\0A\v \0A€I" Aj"  Atj(\0A\vt \0A\vt"K" Aj"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K"Atj(\0A\vt" F  Ij j"Atj"(\0Av!A¹!@@ AK\r\0 (Av! E\r\v A|j(\0Aÿÿÿ\0q!\v@  AsjE\r\0 \0 k!\0 Aj!A\0!@ #€€€\0Aβ€€\0j j-\0\0j" \0K\r  Aj"G\r\0\v\v Aq\vü~A\0!@ \0AÖ~jAÕÖK\r\0@@@#€€€\0"A°Ù€€\0j A‡µ€€\0j \0A\nvj-\0\0Atj \0AvAqj-\0\0"A9I\r\0 AÏ\0O\r#€€€\0"A¸Õ€€\0j AGj"Atj"-\0­! AèՀ€\0j -\0\0Atj)\0B\0BA t"Aþÿü\0q…!@ A€³qE\r\0  Bÿƒ‰!\f\v  ˆ!\f\v#€€€\0AèՀ€\0j Atj)\0!\f\v\0\v  \0­ˆ§!\v Aq\vü~A\0!@ \0AÀ~jA¿æK\r\0@@@#€€€\0"Aˆß€€\0j A‚¶€€\0j \0A\nvj-\0\0Atj \0AvAqj-\0\0"A,I\r\0 AÅ\0O\r#€€€\0"Aðۀ€\0j ATj"Atj"-\0­! A¨Ü€€\0j -\0\0Atj)\0B\0BA t"Aý‡ÿq…!@ A‚øƒqE\r\0  Bÿƒ‰!\f\v  ˆ!\f\v#€€€\0A¨Ü€€\0j Atj)\0!\f\v\0\v  \0­ˆ§!\v Aq\vâ\t~@@@ A\bI\r\0 Aq"E\r#€€€\0! \0( "A)O\r@ \r\0 \0A\x006 \f\v At"A|j"AvAj"Aq!\b A¨ë€€\0j Atj(\0 v­!\tB\0!\n \0!@@ A\fI\r\0 Aüÿÿÿq!B\0!\n \0!@  5\0 \t~ \n|"\n>\0 Aj" 5\0 \t~ \nB ˆ|"\n>\0 A\bj" 5\0 \t~ \nB ˆ|"\n>\0 A\fj" 5\0 \t~ \nB ˆ|"\n>\0 \nB ˆ!\n Aj! A|j"\r\0\v \bE\r\v \bAt!@  5\0 \t~ \n|"\n>\0 Aj! \nB ˆ!\n A|j"\r\0\v\v@ \nP\r\0 A(F\r \0 j \n§6\0 Aj!\v \0 6 \f\v#€€€\0! \0( "A)O\r@ \r\0 \0A\x006  \0\v A¨ë€€\0j Atj5\0!\t At"\bA|j"AvAj"Aq!B\0!\n \0!@@ A\fI\r\0 Aüÿÿÿq!B\0!\n \0!@  5\0 \t~ \n|"\n>\0 Aj" 5\0 \t~ \nB ˆ|"\n>\0 A\bj" 5\0 \t~ \nB ˆ|"\n>\0 A\fj" 5\0 \t~ \nB ˆ|"\n>\0 \nB ˆ!\n Aj! A|j"\r\0\v E\r\v At!@  5\0 \t~ \n|"\n>\0 Aj! \nB ˆ!\n A|j"\r\0\v\v@ \nP\r\0 A(F\r \0 \bj \n§6\0 Aj!\v \0 6  \0\v@ A\bqE\r\0 \0( "A)O\r@@ \r\0A\0!\f\v At"A|j"AvAj"Aq!\bB\0!\t \0!@@ A\fI\r\0 Aüÿÿÿq!B\0!\t \0!@  5\0Báë~ \t|"\t>\0 Aj" 5\0Báë~ \tB ˆ|"\t>\0 A\bj" 5\0Báë~ \tB ˆ|"\t>\0 A\fj" 5\0Báë~ \tB ˆ|"\t>\0 \tB ˆ!\t Aj! A|j"\r\0\v \bE\r\v \bAt!@  5\0Báë~ \t|"\t>\0 Aj! \tB ˆ!\t A|j"\r\0\v\v \tP\r\0 A(F\r \0 j \t§6\0 Aj!\v \0 6 \v@ AqE\r\0 \0#€€€\0AÐ뀀\0jAð€€\0\v@ A qE\r\0 \0#€€€\0AØë€€\0jAð€€\0\v@ AÀ\0qE\r\0 \0#€€€\0Aä뀀\0jAð€€\0\v@ A€qE\r\0 \0#€€€\0Aøë€€\0jA\nð€€\0\v@ A€qE\r\0 \0#€€€\0A ì€€\0jAð€€\0\v \0 ñ€€\0 \0\v\0\vP| (\b"A€€€q! \0+\0!@ A€€€€q\r\0   A\0GA\0끀€\0\v   A\0G /聀€\0\vR| (\b"A€€€q! \0+\0!@ A€€€€q\r\0   A\0GA\0큀€\0\v   A\0G /A\0쁀€\0\v6A€€Ä\0!@ \0( \0(\0"F\r\0 \0 Aj6\0 \0 Atj(\b!\v \vN~@@ AÀ\0q\r\0 E\r  ­"† A\0 k­ˆ„!  †!\f\v  ­†!B\0!\v \0 7\0 \0 7\b\vN~@@ AÀ\0q\r\0 E\r A\0 k­†  ­"ˆ„!  ˆ!\f\v  ­ˆ!B\0!\v \0 7\0 \0 7\b\vº\b~~#€€€€\0A°k"$€€€€\0B\0!@@@@@@@@ y yBÀ\0| B\0R§" y yBÀ\0| B\0R§"\bM\r\0 \bA?K\r Aß\0K\r  \bkA I\r A j  Aà\0 k"\t‚€€\0 5 B|!\nB\0!\vB\0!\f\v  T"\b  T  QE\rB\0!\f\f\v   €"\f ~}!B\0!B\0!\f\v   Bÿÿÿÿƒ"€" ~}B † B ˆ"\f„ €"B † \f  ~}B † Bÿÿÿÿƒ„" €"„!\f   ~}! B ˆ „!B\0!\f\v A0j  AÀ\0 \bk"\b‚€€\0 A j   \b‚€€\0B\0!  B\0 )0 ) €"\fB\0ƒ‚€€\0 Aj B\0 \fB\0ƒ‚€€\0 )\0!\n@ ) )\b"\r )|"\v \rT­|B\0R\r\0  \nT"\b  \vT  \vQE\r\v  |  |" T­| \v}  \nT­}! \fB|!\f  \n}!\f\v@@@ Aj  AÀ\0 \bk"\b‚€€\0 )!\f@ \b \tO\r\0 AÐ\0j   \b‚€€\0 AÀ\0j   \f )P€"\rB\0ƒ‚€€\0@  )@"\nT"\b  )H"\fT  \fQ\r\0  \f} \b­}!  \n}!  \v \r|"\f \vT­|!\f\v  |  |" T­| \f}  \nT­}!  \n}!  \r \v|B|"\f \vT­|!\f\v A€j \f \n€"\fB\0 \b \tk"\b€‚€€\0 Að\0j   \fB\0ƒ‚€€\0 Aà\0j )p )x \b€‚€€\0 )ˆ | )€" \v|"\v T­|!@   )h}  )`"\fT­}"y  \f}"yBÀ\0| B\0R§"\bM\r\0 \bA?K\r\f\v\v  T"\b  T  QE\r \v!\f\f\v   €" ~}!  \v |"\f \vT­|!B\0!\f\v  } \b­}!  }!  \vB|"\fP­|!\f\v  \v} \b­}!  \n}!B\0!\f\v  } \b­}!  }!B!\f\v \0 7 \0 \f7\0 \0 7 \0 7\b A°j$€€€€\0\vn~ \0 Bÿÿÿÿƒ" Bÿÿÿÿƒ"~" B ˆ"\b ~"  B ˆ"\t~|"B †|"\n7\0 \0 \b \t~  T­B † B ˆ„| \n T­|  ~  ~||7\b\vH#€€€€\0A k"$€€€€\0     ‚‚€€\0 )! \0 )7\b \0 7\0 A j$€€€€\0\vH#€€€€\0A k"$€€€€\0     ‚‚€€\0 )\0! \0 )\b7\b \0 7\0 A j$€€€€\0\vJA\0!@ E\r\0@@ \0-\0\0" -\0\0"G\r \0Aj!\0 Aj! Aj"E\r\f\0\v\v  k!\v \v4 \0AA€€\0"6\f@ \r\0A~\v \0A\x006\b \0B€€€€À\x007\0A\0\vL \0A\x006\0 \0A\x006\b@ \0("AH\r\0 Aj! \0(\f!\0@ \0A\x006\0 \0Aj!\0 Aj"AK\r\0\v\v\ve@ \0(\b" (\b"G\r\0  6\b \0  Ÿ‚€€\0\v@ \0  ‚€€\0AG\r\0  6\b  \0 ¡‚€€\0\v  6\b \0  ¡‚€€\0\vd@ \0(\b" (\bF\r\0  6\b \0  Ÿ‚€€\0\v@ \0  ‚€€\0AF\r\0  6\b \0  ¡‚€€\0\v  E6\b  \0 ¡‚€€\0\vä (\b! \0(\b!@@ \0(\0" (\0"  H"AÐ\0H\r\0    J"\bA H\r\0 \b AtH\r\0 \0  ®‚€€\0!\f\v@ AÞH\r\0 \0  ¯‚€€\0!\f\v@ AÐ\0H\r\0 \0  ³‚€€\0!\f\v  j"Aj!@ AþJ\r\0 \0   ´‚€€\0!\f\v \0   µ‚€€\0!\v  (\0A\0J  Gq6\b \v@@ \0(\b" (\bF\r\0AA AF\v@ AG\r\0  \0 ‚€€\0\v \0  ‚€€\0\v¢ \0(\f!A\0!@ E\r\0A\0! !@  Aÿÿÿÿ\0q6\0 Aj! Aj! Aÿÿÿÿ\0K! Av! \r\0\v\v \0A\x006\b \0 6\0@ \0( k"AH\r\0 Aj!  Atj!@ A\x006\0 Aj! Aj"AK\r\0\v\v\v* \0  Au"s k‚€€\0@ AJ\r\0 \0A6\b\v\vA\0 \0‚€€\0"k  \0(\bAF\vN@ \0(\0"\r\0A\0\v \0(\fA|j! A AIAt!\0A\0!@  \0j(\0 Atr! \0A|j"\0\r\0\v \v£ \0(\f!A\0!@ P\r\0A\0! !@  §Aÿÿÿÿ\0q6\0 Aj! Aj! Bÿÿÿÿ\0V! Bˆ! \r\0\v\v \0A\x006\b \0 6\0@ \0( k"AH\r\0 Aj!  Atj!@ A\x006\0 Aj! Aj"AK\r\0\v\v\v*~ \0  B?‡"… }‘‚€€\0@ BU\r\0 \0A6\b\v\v~B\0 \0”‚€€\0"}  \0(\bAF\vP~@ \0(\0"\r\0B\0\v \0(\fA|j! A AIAt!\0B\0!@ B†  \0j5\0„! \0A|j"\0\r\0\v \v˜~A}!@ ½"B4ˆ§Aÿq"AÿF\r\0 \0 BÿÿÿÿÿÿÿƒB€€€€€€€\b„‘‚€€\0@@ A²\bK\r\0 \0A³\b k \0A\0¬‚€€\0!\f\v \0 AÍwj \0©‚€€\0!\v \r\0A\0! BU\r\0 \0(\0E\r\0 \0A6\b\v \vŸ||D\0\0\0\0\0\0ð?!A!@   ! Aj"\r\0\v@@ \0(\0"AN\r\0D\0\0\0\0\0\0\0\0!\f\v Aj! At \0(\fjA|j!D\0\0\0\0\0\0\0\0!@  ¢ (\0¸ ! A|j! Aj"AK\r\0\v\v š  \0(\bAF\v\n\r~#€€€€\0AÐ\0k"$€€€€\0@@ (\0\r\0A}!\f\v@ \0  ‚€€\0AG\r\0@@ \r\0A\0!\f\v \0 §‚€€\0!\v E\r ˆ‚€€\0\f\v AÀ\0j \0(\0Aj¤‚€€\0"\r\0  \0(\0Aj6@@ Aj‡‚€€\0"\r\0@ ‡‚€€\0"\r\0@ A0j \0˜‚€€\0"\r\0@ A j ˜‚€€\0"\r\0A\0! A\x006( A\x0068 (\b! \0(\b!\b@@ A j¨‚€€\0Ao"AJ\r\0 A0jA k" A0j©‚€€\0"\r A j  A j©‚€€\0"\r\v A j (0"\t ( "\nk"\v»‚€€\0"\r\0 \b G!\f \nAj!\r \vAt!@@ A0j A jŒ‚€€\0AF\r (L j" (\0Aj6\0 A0j A j A0jŠ‚€€\0"E\r\0\f\v\v A j \vª‚€€\0@ \t \nL\r\0 \nAs!@@ \t"Aj"\t (0J\r\0Aÿÿÿÿ\0!@ (<" \tAt"j(\0"\b (, \rAt"j(\0"\vF\r\0 \b­B†  AtjAxj5\0„ \v­€"Bÿÿÿÿ\0 Bÿÿÿÿ\0T§!\v (L" At"\vj Atj 6\0   j"At"\bj" (\0AjAÿÿÿÿ\0q6\0 AH!@ (L \bj" (\0AjAÿÿÿÿ\0q6\0 Ajˆ‚€€\0A\0! (,!@ \nAH\r\0  \nAtjAxj(\0!\v (" 6\0   j(\x006 A6 Aj (L \bj(\0 Aj«‚€€\0"\rA\0! (\0 \0A|j!\0 A|j! Aj"AK\r\0\v §!\0\v@ E\r\0  \x006\0\v@ E\r\0 £‚€€\0  ¥‚€€\0\v ¦‚€€\0\v Aj$€€€€\0 \vÄA\0!@ AH\r\0 \0(\0"E\r\0@ \0(  j"N\r\0 \0 ¢‚€€\0"\r \0(\0" j!\v \0 6\0 \0(\f!\0@ AH\r\0A\0 Atk! \0 AtjA|j!@   j(\x006\0 A|j! Aj" J\r\0\v\v Aj!@A\0! \0A\x006\0 \0Aj!\0 Aj"AJ\r\0\v\v \vˆ@@ \0(\0\r\0 \0A‚€€\0\f\v@@ \0(\bAG\r\0 \0A\x006\b \0½‚€€\0"\r \0(\0E\r \0A6\b\f\v@ \0(\f"(\0"Aþÿÿÿ\0K\r\0  Aj6\0\f\v \0A \0¾‚€€\0!\v \vA\0\v‹@@ \0(\0\r\0 \0A‚€€\0 \0A6\b\f\v@@ \0(\bAG\r\0 \0A\x006\b \0¼‚€€\0"\r \0(\0E\r \0A6\b\f\v@ \0(\f"(\0"AI\r\0  Aj6\0\f\v \0A \0¿‚€€\0!\v \vA\0\vÕ#€€€€\0Ak"$€€€€\0@@ ( \0(\0"J\r\0  Aj¢‚€€\0"\r\v@@@@ \0(\b"AG\r\0@ \0(\0AJ\r\0 \0(\f(\0 O\r\0 \0A\fj! (\f! (\0!\f\v A\bj" \0A\bj)\x007\0 A\x006\0  \0)\x007\0   ¿‚€€\0! A6\b\f\v \0A\fj! (\f! (\0! \r\0@@ \0(\0AN\r\0A!\f\v (\0!A\0!@  (\0 j"Aÿÿÿÿ\0q6\0 Aj! Aj! Av! Aj" \0(\0H\r\0\v As!\v  6\0  \0(\0Aj6\0\f\v A6\0@ \0(\0AG\r\0  (\0(\0k!\v  6\0A!\vA\0! A\x006\b  j"AH\r\0 Aj! Aj!@ A\x006\0 Aj! Aj"AK\r\0\v\v £‚€€\0\v Aj$€€€€\0 \v•#€€€€\0Ak"$€€€€\0@@ ( \0(\0"J\r\0  Aj¢‚€€\0"\r\v@ \0(\bAG\r\0 A\bj" \0A\bj)\x007\0 A\x006\0  \0)\x007\0   ¾‚€€\0! A6\b £‚€€\0\f\v (\f! \0(\f! (\0!@@@@ \0(\0"\0\v  (\0"\bI\r  \bk!\v  6\0A! A6\0 A6\b Aj!\f\v  6\0A\0! A\x006\b \0(\0AH\r\0A\0!@  (\0 k"Aÿÿÿÿ\0q6\0 Aj! Aj! Av! Aj" \0(\0H\r\0\v\v@  k"AH\r\0 Aj!@ A\x006\0 Aj! Aj"AK\r\0\v\v £‚€€\0A\0!\v Aj$€€€€\0 \v\võŠ\0#\víŠCannot grow memoryblob_of_principal: invalid principalblob_of_principal: principal too shortrecall_continuation: Continuation table not allocatedrecall_continuation: Continuation index not in tablerecall_continuation: Continuation index out of rangeremember_continuation: Argument is not a skewed pointerservice method arg not a constructor typeservice method arg not a function typefunc annotation not within 1..3service method names out of orderprimitive type in type tableillegal type tabletoo many typesmissing magic bytesempty input. Expected Candid-encoded argument, but received a zero-length argumenttext_concat: Text too largealloc_text_blob: Text too largeå \0\0p\0\0À\0out of regionscannot recover un-allocated regionMOREGIONmigration failure (base too low)migration failure (unexpected block size)migration failure (unexpected higher version)migration failure (bad magic bytes)migration failure (insufficient pages)migration failure (too many pages for region0 )alloc_stream: Cache too largetext_iter_next: Iter already doneencountered NULL object tag in visit_pointer_fieldsinvalid object tag in visit_pointer_fieldsIDL error: RTS error: BitRel indices out of boundsrange out of boundsrange overflowoffset out of boundsABCDEFGHIJKLMNOPQRSTUVWXYZ234567accum_base32: Base32 symbol out of range\0\0\0\0–0w,aîºQ\t™Ämôjp5¥c飕dž2ˆÛ¤¸ÜyéÕàˆÙҗ+L¶\t½|±~-¸ç‘¿d·ò °jHq¹óÞA¾„}ÔÚëäÝmQµÔôDžӃV˜lÀ¨kdzùbýìÉeŠO\\Ùlcc=úõ\r\bÈ n;^iLäA`Õrqg¢Ñäjm\r¨Zjz\vÏäÿ\t“\'®\0\n±ž}D“ðÒ£\b‡hòþÂi]Wb÷Ëge€q6lçknvÔþà+ӉZzÚÌJÝgoß¹ùùホC¾·Վ°`è£ÖÖ~“Ñ¡ÄÂØ8RòßOñg»ÑgW¼¦Ýµ?K6²HÚ+\rØL\n¯öJ6`zAÃï`ßUßg¨ïŽn1y¾iFŒ³a˃f¼ Òo%6âhR•w\fÌG\v»¹"/&U¾;ºÅ(\v½²’Z´+j³\\§ÿ×Â1Ïе‹žÙ,®Þ[°Âd›&òc윣ju\n“m©\tœ?6ë…grW\0‚J¿•z¸â®+±{8¶\f›ŽÒ’\r¾Õå·ïÜ|!ßÛ\vÔÒӆBâÔñø³ÝhnƒÚ;[&¹öáw°owG·æZ\bˆpjÿÊ;f\\\vÿžei®bøÓÿkaEÏlxâ\n îÒ\r×TƒN³9a&g§÷`ÐMGiIÛwn>JjÑ®ÜZÖÙf\vß@ð;Ø7S®¼©Åž»ÞϲGéÿµ0ò½½ŠÂºÊ0“³S¦£´$6к“×Í)WÞT¿gÙ#.zf³¸JaÄh]”+o*7¾\v´¡Ž\fÃßZï-advance out of bufferbyte read out of bufferword read out of buffervariant or record tag out of orderinvalid type argumentskip_any: byte tag not 0 or 1sub: unexpected aliasobject_size: forwarding pointerobject_size: invalid object tagRegion error: StableMemory peek_future_continuation: Continuation table not allocatedpeek_future_continuation: Continuation index not in tablepeek_future_continuation: Continuation index out of rangeskip_any: recursive recordskip_any: variant tag too largeskip_any: skipping referencesskip_any: encountered emptyskip_any: unknown primskip_any: too deeply nested recordutf8_validate: string is not UTF-80.1\0\0\0\0\0\0\0\0\0\0\0\0\0ƒù¢\0DNn\0ü)\0ÑW\'\0Ý4õ\0bÛÀ\0<™•\0AC\0cQþ\0»Þ«\0·aÅ\0:n$\0ÒMB\0Ià\0\tê.\0’Ñ\0ëþ\0)±\0è>§\0õ5‚\0D».\0œé„\0´&p\0A~_\0֑9\0Sƒ9\0œô9\0‹_„\0(ù½\0ø;\0Þÿ—\0˜\0/ï\0\nZ‹\0mm\0Ï~6\0\tË\'\0FO·\0žf?\0-ê_\0º\'u\0åëÇ\0={ñ\0÷9\0’RŠ\0ûkê\0±_\0\b]\x000V\0{üF\0ð«k\0 ¼Ï\x006ôš\0ã©\0^a‘\0\bæ\0…™e\0 _\0@h\0€Øÿ\0\'sM\01\0ÊV\0ɨs\0{â`\0kŒÀ\0\0\0\0\0\0\0\0@û!ù?\0\0\0\0-Dt>\0\0\0€˜Fø<\0\0\0`QÌx;\0\0\0€ƒð9\0\0\0@ %z8\0\0\0€"‚ã6\0\0\0\0ói5\0\0\0\0\0\0à?\0\0\0\0\0\0à¿\0\0\0\0\0\0ð?\0\0\0\0\0\0ø?\0\0\0\0\0\0\0\0ÐÏCëýL>\0\0\0\0\0\0\0\0\0\0\0@¸â?O»ag¬Ý?-DTû!é?›öÒ\vsï?-DTû!ù?âe/"+z<\\3&¦<½Ëðzˆp<\\3&¦‘<\0\0€?\0\0À?\0\0\0\0ÜÏÑ5\0\0\0\0\0À?Q´ð²–±D°ù®¶­y¬C«ªë¨È§ª¦’¥€¤s£k¢h¡j pŸ{žŠœµ›Ñšð™™:˜e—“–Ä•ø”0”k“©’ê‘.‘u¾\nYŽªþŒTŒ¬‹‹dŠÄ‰%‰‰ˆî‡V‡À†+†™…\b…y„ìƒaƒØ‚P‚ɁEÂ€@€ÿý%ûGùs÷ªõêó4ò‡ðãîGí³ë\'ê£è\'ç²åCäÜâzá àËÞ}Ý4ÜñÚ³Ù{ØH×ÖñÔÍӭҒÑ{ÐiÏ[ÎQÍJÌHËJÊOÉXÈdÇtƇŝķÃÔÂôÁÁ<Àe¿¾¾½ï¼#¼Y»‘ºÌ¹\n¹J¸Œ·Ð¶¶`µ-DTû!é?-DTû!é¿Ò!3|Ù@Ò!3|ÙÀ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€-DTû!\t@-DTû!\tÀª\n\0\fVS‹\b¦&)\'\b\v8f\b\b\n0\re!\t\v\b*\n\fL\r\b\b\b\f\n\v\t\t\b\b\t\r\f(\r\b\b\b\n\b\b\r\f\r)\b\t\b\b\r:3 ?\b$$C7@\n&+\0)!9C%V\0K\v\v\f\f\r\f4CY+F\n\f\t\v,6?2\v14\b3*\n,\v7\n$\v+)À"\v\0&\b5\rt\r\re\n\v)\x004\0å\f&8\t /\0\tVZ+^ 0\0\0@\0C.\0\n/\bq\'\tgR!4\fD,\n!#\r3\f\n7\tE\v\t+{\0\f1\0\0j&\f\f\rl!\0@6(\ft‡$\vY#\f"{E5\01/ \r+$\b*ž$$(\b4\f\v\v4\f\0\t\n\b*\tE,\n\tA\n\n&8@\b*#\b6\n\n\rnI73\r3\r("ú*2\n\b*.\tF+\n9\t\r3\b#\t@\t\n#">\n9\b\b\n&\n,BB¸6"?;6G¹9g@\b\b]\b.3\nHIg\bX!\t-1I,%,\0\t)oO\0foÄ\0a\0\0\0\0/\0\0O0\0-Ó@ ,K9@\f\t\0) as\0\0\b\0\0k\r\t\n\0UG\fA\b\0\b\0Õ>!p-\n\0,\0äÏ\bàÅ;D\0\n\n\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¨\0À\tûÏ1-,\v\n\v#\ne\b\n![\v:\v+,\t):7\b\n\r:\b9\v9:\b\v=\f27\v:9\bHZ\v\tb\t\tI7\v$\tf\r^\0\0@\b\v-3A"v\tÛ:\b\n\'\b.\f0(\t\f 8:\b@R\r2?\r"e\0\v\r\r\r\f\b\n1\n\r\r3!\0q}` /\0$]]\0\0\0b\nP"Nf\b—\r&\b\v.0B\f\b#\v3d\ty\0“\0\f"©\v#/-C\0â•\0*\t\0(¥\0&\04F\v1{6)\n1\n2$\b>\f4\t\n_\b9%F\rU\bTîU\bje\0\t\0 \n(\b\t.\rÆÉRzHA\0\v4\0\0\f\0;\t\0(\0?@\r\0\0\0.\0\t”\x0072\b\0>! \0=\0þó\t\0m\b\0\0`€ð\0ª\nÃÐ#`*S‹\b¦&\t)\0&+\0V\0\v+@À@\0&\b5\rt\r\re\n \x004\0å\f&\0.„fM\0+P\0\f\0\0P`$$t\v\v\0*\t\x003\r3]\n\0@\0@ \0UG\fA\b\0\b\0\n\0>\0D\0\0\f\0\0\t\0\0\r\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\t\r\v\b\n-+NaNinf00.0e00E0e0E00000000000000000000000000000000000000000000000000000000000000000.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0eEe-E-\0Â\0\0I€mÀ3€8¶$\0E\0,àM0 N\x004àRÀMàU¤\0V\r¦@V¤×ÀV\0ù@anúàa>ý\0b€Ád7áiàÁoš#!˜/™04!šûCšGF›\0aA›\0ha›9j¡›@mÁ›ÖŒ¡ð¯A #±á ü²Á¡\0¼£\0Ô!£¦Öa¤\0ß©âá«Ðäá®\0îa¯0ñá²\0\0"»à¦â»¸¼®ÎB¼á낼^î¼\0ø½ú"½\0\0C½Kc½z4ƒ½z4Ô½À\0\0 \0Ø\0\0 \0\0.\x002\x009\0J,\0x\0\0‡ÿy\0\0\0Ò\0‚\0†\0\0Î\0‡\0\0\0‰\0Í\0‹\0\0\0Ž\0\0O\0\0\0Ê\0\0\0Ë\0‘\0\0\0“\0\0Í\0”\0\0Ï\0–\0\0Ó\0—\0\0Ñ\0˜\0\0\0œ\0\0Ó\0\0\0Õ\0Ÿ\0\0Ö\0 \0¦\0\0Ú\0§\0\0\0©\0\0Ú\0¬\0\0\0®\0\0Ú\0¯\0\0\0±\0Ù\0³\0·\0\0Û\0¸\0\0\0¼\0\0\0Ä\0\0\0Å\0\0\0Ç\0\0\0È\0\0\0Ê\0\0\0Ë\0Þ\0ñ\0\0\0ò\0ö\0\0Ÿÿ÷\0\0Èÿø&\0 \0\0~ÿ"\0:\0\0+*;\0\0\0=\0\0]ÿ>\0\0(*A\0\0\0C\0\0=ÿD\0\0E\0E\0\0G\0F\b\0p\0v\0\0\0\0\0t\0†\0\0&\0ˆ\0%\0Œ\0\0@\0Ž\0?\0‘\0 \0£\b\0 \0Ï\0\0\b\0Ø\0ô\0\0Äÿ÷\0\0\0ù\0\0ùÿú\0\0\0ý\0~ÿ\0\0P\0\0 \0` \0Š4\0À\0\0\0Á\f\0Ð^\x001%\x000\0 %\0`Ç\0\0`Í\0\0` O\0Зð\0\b\0‰\0\0\0*\0@ô½\0@ô\0”\0ž\0\0Aâ ^\0\b\0øÿ\0øÿ(\0øÿ8\0øÿH\0øÿYøÿh\0øÿˆ\0øÿ˜\0øÿ¨\0øÿ¸\0øÿº\0¶ÿ¼\0\0÷ÿÈ\0ªÿÌ\0\0÷ÿØ\0øÿÚ\0œÿè\0øÿê\0ÿì\0\0ùÿø\0€ÿú\0‚ÿü\0\0÷ÿ&!\0\0£â*!\0\0Aß+!\0\0ºß2!\0\0\0`!\0\0ƒ!\0\0\0¶$\0\0\0,/\x000\0`,\0\0\0b,\0\0\tÖc,\0\0ñd,\0\0Ög,\0m,\0\0äÕn,\0\0Öo,\0\0áÕp,\0\0âÕr,\0\0\0u,\0\0\0~,\0ÁՀ,b\0ë,\0ò,\0\0\0@¦,\0€¦\0"§\f\x002§<\0y§\0}§\0\0üu~§\b\0‹§\0\0\0§\0\0ØZ§\0–§\0ª§\0\0¼Z«§\0\0±Z¬§\0\0µZ­§\0\0¿Z®§\0\0¼Z°§\0\0îZ±§\0\0ÖZ²§\0\0ëZ³§\0\0 ´§\0ħ\0\0Ðÿŧ\0\0½ZƧ\0\0Èuǧ\0˧\0\0™Z̧\0ܧ\0\0¿Yõ§\0\0\0!ÿ\0 \x000i\0\0\0\0\'\0(\0°#\0(\0p\n\0\'\0|\0\'\0Œ\0\'\0”\0\'\0€\f2\0@\0P\r\0 \0 \0 \0@n\0 \0 n\0\0\0é!\0"\0µ\0\0\0çà\0\0àÿø\0\0àÿÿ\0\0\0y\0.ÿÿ1\0\0ÿ3ÿÿ:ÿÿK,ÿÿzÿÿ\0\0Ôþ€\0\0Ã\0ƒÿÿˆ\0\0ÿÿŒ\0\0ÿÿ’\0\0ÿÿ•\0\0a\0™\0\0ÿÿš\0\0£\0›\0\0A¦ž\0\0‚\0¡ÿÿ¨\0\0ÿÿ­\0\0ÿÿ°\0\0ÿÿ´ÿÿ¹\0\0ÿÿ½\0\0ÿÿ¿\0\x008\0Å\0\0ÿÿÆ\0\0þÿÈ\0\0ÿÿÉ\0\0þÿË\0\0ÿÿÌ\0\0þÿÎÿÿÝ\0\0±ÿßÿÿò\0\0ÿÿó\0\0þÿõ\0\0ÿÿù&ÿÿ#ÿÿ<\0\0ÿÿ?\0?*B\0\0ÿÿG\bÿÿP\0\0*Q\0\0*R\0\0*S\0\0.ÿT\0\x002ÿV\x003ÿY\0\x006ÿ[\0\x005ÿ\\\0\0O¥`\0\x003ÿa\0\0K¥c\0\x001ÿd\0\0g¥e\0\0(¥f\0\0D¥h\0\0/ÿi\0\0-ÿj\0\0D¥k\0\0÷)l\0\0A¥o\0\0-ÿq\0\0ý)r\0\0+ÿu\0\0*ÿ}\0\0ç)€\0\0&ÿ‚\0\0C¥ƒ\0\0&ÿ‡\0\0*¥ˆ\0\0&ÿ‰\0\0»ÿŠ\0\'ÿŒ\0\0¹ÿ’\0\0%ÿ\0\0¥ž\0\0¥E\0\0T\0qÿÿw\0\0ÿÿ{\0‚\0¬\0\0Úÿ­\0Ûÿ±\0àÿÂ\0\0áÿÃ\b\0àÿÌ\0\0ÀÿÍ\0ÁÿÐ\0\0ÂÿÑ\0\0ÇÿÕ\0\0ÑÿÖ\0\0Êÿ×\0\0øÿÙÿÿð\0\0ªÿñ\0\0°ÿò\0\0\0ó\0\0Œÿõ\0\0 ÿø\0\0ÿÿû\0\0ÿÿ0\0àÿP\0°ÿa ÿÿ‹4ÿÿÂ\fÿÿÏ\0\0ñÿÑ^ÿÿa%\0ÐÿÐ*\0À\vý\0À\vø\0øÿ€\0\0’ç\0\0“ç‚\0\0œçƒ\0žç…\0\0ç†\0\0¤ç‡\0\0Ûçˆ\0\0‰Š\0\0ÿÿy\0\0Š}\0\0æŽ\0\x008Š”ÿÿ›\0\0Åÿ¡^ÿÿ\0\0\b\0\0\b\0 \0\b\x000\0\b\0@\0\b\0Q\b\0`\0\b\0p\0J\0r\0V\0v\0d\0x\0€\0z\0p\0|\0~\0°\0\b\0¾\0\0ÛãÐ\0\b\0à\0\b\0å\0\0\0N!\0\0äÿp!\0ðÿ„!\0\0ÿÿÐ$\0æÿ0,/\0Ðÿa,\0\0ÿÿe,\0\0ÕÕf,\0\0ØÕh,ÿÿs,\0\0ÿÿv,\0\0ÿÿ,bÿÿì,ÿÿó,\0\0ÿÿ\0-%\0 ã\'-\0\0 ã--\0\0 ãA¦,ÿÿ¦ÿÿ#§\fÿÿ3§<ÿÿz§ÿÿ§\bÿÿŒ§\0\0ÿÿ‘§ÿÿ”§\0\x000\0—§ÿÿµ§ÿÿȧÿÿͧÿÿö§\0\0ÿÿS«\0\0`üp«O\x000hAÿ\0àÿß\0S\0S\0\0\0I¼N\0\0\0ðJ\0\f\0\0™\b°¥\b‡5R\0\0–H\x001\0\0—T\0\b\0\0˜W\0\n\0\0™Y\0\n\0\0šA\0¾\0\0P¥\0\0R¥\0T¥V¥B€\b™\0\0\t™\0\0‚\n™\0\0ƒ\v™\0\0„\f™\0\0…\r™\0\0†™\0\0‡™\0\0ˆ\b™\0\0‰\t™\0\0Š\n™\0\0‹\v™\0\0Œ\f™\0\0\r™\0\0Ž™\0\0™\0\0(™\0\0‘)™\0\0’*™\0\0“+™\0\0”,™\0\0•-™\0\0–.™\0\0—/™\0\0˜(™\0\0™)™\0\0š*™\0\0›+™\0\0œ,™\0\0-™\0\0ž.™\0\0Ÿ/™\0\0 h™\0\0¡i™\0\0¢j™\0\0£k™\0\0¤l™\0\0¥m™\0\0¦n™\0\0§o™\0\0¨h™\0\0©i™\0\0ªj™\0\0«k™\0\0¬l™\0\0­m™\0\0®n™\0\0¯o™\0\0²º™\0\0³‘™\0\0´†™\0\0¶‘B\0\0·‘B™¼‘™\0\0ÂÊ™\0\0×™\0\0ĉ™\0\0Æ—B\0\0Ç—B™Ì—™\0\0Ò™\b\0Ó™\bÖ™B\0\0×™\bBâ¥\b\0ã¥\bä¡\0\0æ¥B\0\0ç¥\bBòú™\0\0ó©™\0\0ô™\0\0ö©B\0\0÷©B™ü©™\0\0\0ûF\0F\0\0\0ûF\0I\0\0\0ûF\0L\0\0\0ûF\0F\0I\0ûF\0F\0L\0ûS\0T\0\0\0ûS\0T\0\0\0ûDF\0\0ûD5\0\0ûD;\0\0ûNF\0\0ûD=\0\0(\'\0ØÿØ#\0Øÿ—\n\0Ùÿ£\0Ùÿ³\0Ùÿ»\0ÙÿÀ\f2\0Àÿp\r\0àÿÀ\0àÿ`n\0àÿ»n\0åÿ"é!\0Þÿ\0\0°\0\0]`à ½ !|, /0`3 à4ø¤`6\f¦ 6ûà6\0þàBýaC€!G\náG$\r¡H«!J/!K;áZóa[04¡ca!eðj¡e@m!fOoáfð¯ag¼¡h\0ÏaigÑái\0Úaj\0à¡k®â!mëä!oÐè¡oûóaq\0îqð?r \0\0 `€  \b¶$@\t\0, @¦à0«`\0û !ÿà\0a€á€\f¡ ¡@n¡\0Ôá¦Ö¡\0ßA"0à!%\0éá%0ñ!&Šñr&\0@¸¶³¬¨¡’Œˆ„’S]“…\f»N\0\0\0\0\0\0\0\0\0\0\0\0ÿ\0\0\0üÿÿ¨ªªªªªªÿÿÿÿÿÿ\0ÿý\0\0\0üÿÿ\0\0\0\0\0\0€\0\0\0ÿÿÿÿ…ªÿÿÿÿÿÿ\0\0\0\0ÿÿÿÿ\0\0\0\0üÿÿÿ\0\0\0\0\0ÿÿÿïÿ\0\0\0üÿÿ\0\0\0\0ðÿÿÿÿ\0\0Àÿÿÿÿÿ÷ÿÿÿÀC\0\0\0\0ÿÿ\0\0\0\0\0\0ÿÿ\0\0\0€ÿÿÿÀÿÿÿ\0\0\0ü\0\0\0\0\0\0\0ø\0\0ÿÿÿÿÿ÷üÿÿ÷\0\0ðTÕªªªªªªªªªªªªªªªªªªªªªUÿ\0ÿ\0ÿ\0ß@?\0ÿ\0ÿ\0ÿ?ÿÿÿÿbÚ?\0\0\0\0\0\0\0? \0\0\0\0\0Š<\0Ä\b\0\0€2\0\0€ÿûÿûÿ㪪ª/¹ÿÿÿÿÿý\n¥ª\n\0\0^\0\0\0\0\0 ÿÿÏÿÿÿÿÿ\0?\0ÿ\0ÿ\0Ü\0Ï\0ÿ\0Ü\0ªªªªP\b\0ÿÿÿÿ¿ \0\0ÿûÿà\0\0\0Àßÿÿ\0\0\0\0\0\0\0\0\0ªªª:\0\0\0\0\0ø\0\0\0\0\0÷\v\0\0\0\0\0\0ÿ\0\0\0\0\0\0ªªªªªªú“ªªªªªªÿ•@RUµªª)ªªPºªª‚ ªÿÿÿÿªªªª\0\0\0\0¨ª«ªU«ªªªªªÔ)1$N*-Qæüÿÿ\0\0Àë\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0\0\0\0\0\09\0\0\0\0\0\0\0\0\0\0\0\0\0)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0-\0\0\0\0\0\0\0\0\0\0\0\0\b>\0\0\0\0\0\0\0\0\0\0\0\0\0E,\x00513"\0\0\0\0\t:\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\0\0\0\0\0\0\0\0\0\0\0\0\0\0#6720$+\0\f \0\0/\x00999\0G%&\0H\0M\0\0\0\0\0\0\0\0\0\n=\0\0\0\0\0\0\0\0\0\0!\0\'(\0\0\0\0\0\0\0\0\0\0\04F\b<\0\0\0\0\0\0\0\0\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0C*8\vDA\rBNKL.\0¶\0J\0¦\0¢\0Ÿ\0–\0”\0Ž\0†\0ƒ\0@BFS\f\b’Œ†‚¤’²«\0\0\0\0\0\0ÿÿÿÿÿÿ?\0ÿ?\0\0\0ÿÿÿ\0\0\0üÿÿTUUUUUUõZU\0\0 \0\0\0\0\0ÿÿÿÿÿ\0\0\0ÿÿÿ_ü\0\0ðÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿUUUUUUþÿ\0\0\0\0\0\0E€°çß\0\0\0{UUUUUUlUUUUUU\0j¤ªJUUÒUU(EUU}_UUUUUUUUU«*UUUUUU\0\0\0\0UUUU\0\0\0\0TUTUªTUUUUU+ÖÎÛ±ÕÒ®\0\0\0\0\0\0\0\0\0\0\0?\0\0\0ÿÿÿ\0\0ÐdÞ?\0UUUU(\0 \0\0\0ÿÿ\0\0\0?\0ª\0ÿ\0\0@×þÿû\0\0\0\0ÿÿ?\0\0\0ÿÿ\0\0\0\0ÿ÷7\0\0\0\0\0zU\0\0\0\0\0\0¿ \0\0\0\0\0\0UUUUUUUª„8\'>P=À\0\0\0\0ê%À\0€UUUæ\0ÿÿÿÿÿç\0ÿÿÿ\0\0ð\0\0\0\0\0\0ÿ÷\0ÿ\0?\0ÿ\0ÿ,,#,,,,,,,,,,\0,,,,,,,,,,,,,,,,,(,,,,,B+,,, $\r",,,\v\',,,,\t\b-,,,,,,,,,,,,,%C,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,,,,,,,,,,,,1?,,,,,,,,,,,,,,A@,,,,,2,,,,,,,,,,,,,5,,,,,,,,,,,,,,6.,,,,,,,,,,,,3,\t/,*!,,,,,,,,,4\n0,,,,,,,,,,4&,,,,,,,,,,,,:7\f8);>=•.\t™ßý8/ät#ìõÏÓ\bÜÄڰͼ3¦&éN\0\0|.˜[‡Ó¾rŸÙ؇/ÆPÞkpnJÏؕÕnq²&°fÆ­$6ZÓB<TÿcÀsUÌïùeò(¼U÷Ç܀ÜínôÎïÜ_÷S\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¨\0\0¬\0\0\0°!\0\0\0\0\0¸!\0\0\f\0\0\0\0\0\0\0\0\0\0\0"\0\0¹\0\0\0V&\0\0f\0\0\0†)\0\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ëCname\0mo-rts-incremental.wasmØAÀ\0keep_memory_reserveic0_stable64_readic0_stable64_writemoc_stable_mem_get_versionmoc_stable_mem_get_sizemoc_stable_mem_growmoc_stable_mem_set_versionget_static_roots\b\rget_heap_base\t\brts_trap\n\vbigint_trap\v\fint_from_i32\fidl_limit_check\r__wasm_call_ctors__wasm_apply_data_relocs__wasm_apply_global_relocsu::allocate_bitmap::M::grow_memorymotoko_rts::rts_trap_with{::allocate_large_object::::allocate_in_new_partition::n::allocate::Qmotoko_rts::principal_id::base32_to_principal::allocation_barrierXmotoko_rts::principal_id::base32_of_checksummed_blob::Cmotoko_rts::region::region_load::-::trap_withDmotoko_rts::region::region_store::Fmotoko_rts::region::region_recover::$motoko_rts::region::region_trap_with^motoko_rts::region::region_migration_from_no_stable_memory::motoko_rts::region::write_magic `motoko_rts::region::region_migration_from_some_stable_memory::!Imotoko_rts::text_iter::text_iter_next::"s>::mark_object#Omotoko_rts::gc::incremental::incremental_gc::$»motoko_rts::gc::incremental::sort::quicksort::<::rank_partitions_by_garbage::{closure#0}>%motoko_rts::types::block_size&S::mark_large_object\'X::next_partition(__rustc::__rust_alloc)__rustc::__rust_realloc*motoko_rts::idl_trap_with+motoko_rts::trap_with_prefix,)::write_leb128-+::send_to_stable.-::no_backing_store/+motoko_rts::region::stable_memory_trap_with0motoko_rts::idl::parse_fields1motoko_rts::idl::leb128_decode2motoko_rts::idl::sleb128_decode3motoko_rts::idl::sub4motoko_rts::idl::skip_blob5motoko_rts::idl::skip_text6$motoko_rts::text::text_compare_range7+motoko_rts::bigint::bigint_leb128_encode_go8<::write_str9=::write_char:<::write_fmt;acos<\valloc_array=\nalloc_blob>\falloc_region?\falloc_stream@\valloc_wordsAasinBatanCatan2Dbigint_2complement_bitsE\nbigint_absF\nbigint_addGbigint_count_bitsH\nbigint_divI\tbigint_eqJ\tbigint_geK\tbigint_gtL\fbigint_isnegM\tbigint_leNbigint_leb128_decodeObigint_leb128_decode_word64Pbigint_leb128_encodeQbigint_leb128_sizeRbigint_leb128_stream_encodeS\nbigint_lshT\tbigint_ltU\nbigint_mulV\nbigint_negWbigint_of_float64Xbigint_of_int32Ybigint_of_int64Zbigint_of_word32[bigint_of_word64\\\nbigint_pow]\nbigint_rem^\nbigint_rsh_bigint_sleb128_decode`bigint_sleb128_decode_word64abigint_sleb128_encodebbigint_sleb128_sizecbigint_sleb128_stream_encoded\nbigint_subebigint_to_float64fbigint_to_word32_trapgbigint_to_word32_trap_withhbigint_to_word32_wrapibigint_to_word64_trapjbigint_to_word64_trap_withkbigint_to_word64_wrapl\fblob_comparem\tblob_iternblob_iter_doneoblob_iter_nextpblob_of_principalq\vtext_to_bufr\fblob_of_textschar_is_alphabetictchar_is_lowercaseuchar_is_uppercasevchar_is_whitespacew\rchar_to_lowerx\rchar_to_uppery\rcompute_crc32zcontinuation_count{continuation_table_size|cos}exp~\nfind_field\bskip_any€\tfloat_fmtfmod‚fmodfƒ\rget_heap_size„get_max_live_size…\rget_reclaimed†get_total_allocations‡idl_subˆidl_sub_buf_init‰idl_sub_buf_wordsŠincremental_gc‹\vinit_regionŒinitialize_incremental_gc\rleb128_decodeŽ\rleb128_encodelog\tmp_calloc‘mp_free’\nmp_realloc“parse_idl_header”peek_future_continuation•pow–powf—principal_of_blob˜recall_continuation™\vregion0_getš\vregion_grow›\tregion_idœ\vregion_initregion_load_blobžregion_load_float64Ÿregion_load_word16 region_load_word32¡region_load_word64¢region_load_word8£\nregion_new¤region_page_count¥\vregion_size¦region_store_blob§region_store_float64¨region_store_word16©region_store_word32ªregion_store_word64«region_store_word8¬region_vec_pages­remember_continuation®\nrunning_gc¯schedule_incremental_gc°sin±\vskip_fields²\vskip_leb128³sleb128_decode´sleb128_encodeµstop_gc_on_upgrade¶stream_reserve·stream_shutdown¸\fstream_split¹stream_stable_destº\fstream_write»stream_write_byte¼stream_write_text½tan¾\ftext_compare¿\vtext_concatÀ\ttext_iterÁtext_iter_doneÂtext_iter_nextÃ\btext_lenÄtext_lowercaseÅtext_of_ptr_sizeÆtext_singletonÇ\ttext_sizeÈtext_uppercaseÉ\nutf8_validÊ\rutf8_validateËversionÌwrite_with_barrierÍ,__rustc::__rust_no_alloc_shim_is_unstable_v2Î*libm::math::rem_pio2_large::rem_pio2_largeÏlibm::math::sin::sinÐlibm::math::cos::cosÑlibm::math::sqrt::sqrtÒlibm::math::rem_pio2::rem_pio2Ólibm::math::exp::expÔlibm::math::sqrt::sqrtfÕlibm::math::pow::powÖlibm::math::ldexp::ldexp×libm::math::tan::tanØlibm::math::k_tan::k_tanÙlibm::math::acos::acosÚlibm::math::asin::asinÛlibm::math::atan::atanÜlibm::math::fmod::fmodÝlibm::math::fmod::fmodfÞlibm::math::powf::powfßlibm::math::ldexp::ldexpfàlibm::math::atan2::atan2áX>::reserve::do_reserve_and_handle::â*::finish_growã::to_lowercaseä::to_uppercaseå:core::num::imp::flt2dec::strategy::grisu::format_exact_optæ7core::num::imp::flt2dec::strategy::dragon::format_exactç+::pad_formatted_partsè6core::fmt::float::float_to_decimal_common_exact::é=core::num::imp::flt2dec::strategy::grisu::format_shortest_optê:core::num::imp::flt2dec::strategy::dragon::format_shortestë9core::fmt::float::float_to_decimal_common_shortest::ì:core::fmt::float::float_to_exponential_common_exact::í=core::fmt::float::float_to_exponential_common_shortest::îcore::fmt::writeïcore::str::converts::from_utf8ð.::mul_digitsñ,::mul_pow2ò-::write_formatted_partsó)core::str::count::char_count_general_caseô4core::unicode::unicode_data::alphabetic::lookup_slowõ0core::unicode::unicode_data::conversions::lookupö2core::unicode::unicode_data::conversions::to_lower÷2core::unicode::unicode_data::conversions::to_upperø8core::unicode::unicode_data::case_ignorable::lookup_slowù/core::unicode::unicode_data::cased::lookup_slowú.core::unicode::unicode_data::lowercase::lookupû.core::unicode::unicode_data::uppercase::lookupü4core::num::imp::flt2dec::strategy::dragon::mul_pow10ý ::fmtþ!::fmtÿI::next€\t__ashlti3\t__lshrti3‚9compiler_builtins::int::specialized_div_rem::u128_div_remƒ\b__multi3„\t__umodti3…\t__udivti3†memcmp‡mp_initˆmp_zero‰mp_addŠmp_sub‹mp_mulŒmp_cmp\nmp_set_u32Ž\nmp_set_i32\nmp_get_i32mp_get_mag_u32‘\nmp_set_u64’\nmp_set_i64“\nmp_get_i64”mp_get_mag_u64•\rmp_set_double–\rmp_get_double—mp_div˜\fmp_init_copy™mp_negšmp_abs›\bmp_2exptœ\vmp_expt_u32mp_setžmp_sqrŸ\bs_mp_add \nmp_cmp_mag¡\bs_mp_sub¢mp_grow£\bmp_clamp¤\fmp_init_size¥mp_exch¦\bmp_clear§mp_copy¨\rmp_count_bits©\tmp_mul_2dªmp_rshd«\bmp_mul_d¬\tmp_div_2d­\tmp_mod_2d®s_mp_balance_mul¯\rs_mp_toom_mul°\rs_mp_toom_sqr±s_mp_karatsuba_sqr²\rs_mp_sqr_fast³s_mp_karatsuba_mul´s_mp_mul_digs_fastµ\rs_mp_mul_digs¶\rmp_init_multi·mp_clear_multi¸\bmp_mul_2¹\bmp_div_2º\bmp_div_3»mp_lshd¼mp_incr½mp_decr¾\bmp_add_d¿\bmp_sub_dä\0__stack_pointer\r__memory_base\f__table_baseJGOT.data.internal.core::unicode::unicode_data::white_space::WHITESPACE_MAP2GOT.func.internal.::fmt3GOT.func.internal.::fmt\t\b\0.data\0R\tproducers\fprocessed-byrustc%1.96.0-nightly (c75612477 2026-04-07)clang19.1.7\0”target_features\b+\vbulk-memory+bulk-memory-opt+call-indirect-overlong+\nmultivalue+mutable-globals+nontrapping-fptoint+reference-types+\bsign-ext':'\0asm\0\0\0\0\bdylink.0¸n\0´0`\0```\0`\0`~~~\0`\0~`~~`\0`\0\0``~\0`~\0`\0`~``\b``||`|||`~~`|`~`|`~`~`|`}}}`\t`\0`~~`~`~|`~`~\0`~|\0`~~\0`|\0`}}`||`|||`}}`\0`|`|`~~\0`~~~~\0`|Ãenvmemory\0env__indirect_function_tablep\0env__stack_pointerenv\r__memory_base\0env\f__table_base\0envgetHP\0envkeep_memory_reserve\0envsetHP\0envic0_stable64_read\0envic0_stable64_write\0envmoc_stable_mem_get_version\0envmoc_stable_mem_get_size\0envmoc_stable_mem_grow\0envmoc_stable_mem_set_version\0env\rget_heap_base\0envget_static_roots\0env\brts_trap\0\benv\vbigint_trap\0\tenv\fint_from_i32\0\nenvidl_limit_check\0\vº¸\t\t\t\b\n\n\f\r\f\b\t\t\t\n\b\t\t\b\t\0\0\b\r\0\0\0\b\0\n\n\0\n\n\n\n\n\n\n\b\n\b\n\n\n\n\b\n\b\n\n\n\n\n\n\b\n\n\n\n\n\n\n\t\n\t\r\t\0\f\t\t\n\b\b\n\n\n !!!\n"#""$"\n\n\t\t\t\r\n\b\n$\0\b\b\n\n\n\n\n\n\n\n\b\t%&\'()\0\r\0\0**+\r\r+,+\0\n\0\b\b\n\n\n\n\n--....\n\b\b\n\n\v\v/\b\b\n\b\b\n\nA·)\vA\vA\v˜™__wasm_call_ctors\0__wasm_apply_data_relocs\0memcmp\0acos\0?\valloc_array\0@\nalloc_blob\0A\falloc_region\0B\falloc_stream\0C\valloc_words\0Dasin\0Eatan\0Fatan2\0Gbigint_2complement_bits\0H\nbigint_abs\0I\nbigint_add\0Jbigint_count_bits\0K\nbigint_div\0L\tbigint_eq\0M\tbigint_ge\0N\tbigint_gt\0O\fbigint_isneg\0P\tbigint_le\0Qbigint_leb128_decode\0Rbigint_leb128_decode_word64\0Sbigint_leb128_encode\0Tbigint_leb128_size\0Ubigint_leb128_stream_encode\0V\nbigint_lsh\0W\tbigint_lt\0X\nbigint_mul\0Y\nbigint_neg\0Zbigint_of_float64\0[bigint_of_int32\0\\bigint_of_int64\0]bigint_of_word32\0^bigint_of_word64\0_\nbigint_pow\0`\nbigint_rem\0a\nbigint_rsh\0bbigint_sleb128_decode\0cbigint_sleb128_decode_word64\0dbigint_sleb128_encode\0ebigint_sleb128_size\0fbigint_sleb128_stream_encode\0g\nbigint_sub\0hbigint_to_float64\0ibigint_to_word32_trap\0jbigint_to_word32_trap_with\0kbigint_to_word32_wrap\0lbigint_to_word64_trap\0mbigint_to_word64_trap_with\0nbigint_to_word64_wrap\0o\fblob_compare\0p\tblob_iter\0qblob_iter_done\0rblob_iter_next\0sblob_of_principal\0t\vtext_to_buf\0u\fblob_of_text\0vchar_is_alphabetic\0wchar_is_lowercase\0xchar_is_uppercase\0ychar_is_whitespace\0z\rchar_to_lower\0{\rchar_to_upper\0|\rcompacting_gc\0}\rcompute_crc32\0~continuation_count\0continuation_table_size\0€\ncopying_gc\0cos\0‚exp\0ƒ\nfind_field\0„\bskip_any\0…\tfloat_fmt\0†fmod\0‡fmodf\0ˆgenerational_gc\0‰\rget_heap_size\0Šget_max_live_size\0‹\rget_reclaimed\0Œget_total_allocations\0idl_sub\0Židl_sub_buf_init\0idl_sub_buf_words\0\vinit_region\0‘initialize_compacting_gc\0’initialize_generational_gc\0“\rleb128_decode\0”\rleb128_encode\0•log\0–\tmp_calloc\0—mp_free\0˜\nmp_realloc\0™parse_idl_header\0špeek_future_continuation\0›post_write_barrier\0œpow\0powf\0žprincipal_of_blob\0Ÿrecall_continuation\0 \vregion0_get\0¡\vregion_grow\0¢\tregion_id\0£\vregion_init\0¤region_load_blob\0¥region_load_float64\0¦region_load_word16\0§region_load_word32\0¨region_load_word64\0©region_load_word8\0ª\nregion_new\0«region_page_count\0¬\vregion_size\0­region_store_blob\0®region_store_float64\0¯region_store_word16\0°region_store_word32\0±region_store_word64\0²region_store_word8\0³region_vec_pages\0´remember_continuation\0µschedule_compacting_gc\0¶schedule_copying_gc\0·schedule_generational_gc\0¸sin\0¹\vskip_fields\0º\vskip_leb128\0»sleb128_decode\0¼sleb128_encode\0½stream_reserve\0¾stream_shutdown\0¿\fstream_split\0Àstream_stable_dest\0Á\fstream_write\0Âstream_write_byte\0Ãstream_write_text\0Ätan\0Å\ftext_compare\0Æ\vtext_concat\0Ç\ttext_iter\0Ètext_iter_done\0Étext_iter_next\0Ê\btext_len\0Ëtext_lowercase\0Ìtext_of_ptr_size\0Ítext_singleton\0Î\ttext_size\0Ïtext_uppercase\0Ð\nutf8_valid\0Ñ\rutf8_validate\0Òversion\0Óinitialize_copying_gc\0’\b\t\0#\v2„…1<=>\n‚è¸\0\v”\0Aüì\0#j#Aj6\0A€í\0#j#Aj6\0A„í\0#j#Aj6\0Aˆí\0#j#A¨;j6\0Aí\0#j#A°Ã\0j6\0A˜í\0#j#A¸Ã\0j6\0A¨í\0#j#A€Ä\0j6\0A°í\0#j#AÖÌ\0j6\0A¸í\0#j#A†Ó\0j6\0\v\0#A·)j$#Aj$#Aj$\vè~\b@@@@@@#€€€\0Aü퀀\0j(\0" (AvAj \0AvqAtjA\bj"(\0"E\r\0  \0F\r\f\v A\x006  \x006\0\f\v@@ ("E\r A\bj! (\b \0F\r\f\0\v\v@€€€€\0"­"B|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r B€|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 A\rjA\x006\0 A\tj \x006\0 Aj"B™€€€€7\0  6\v#€€€\0"A€î€€\0j" (\0Aj"6\0  Aü퀀\0j(\0"\b("\tAv"AÁ\0lAä\0nM\rA\0! \bA\bjA\0 \b(\b"\0!@ E\r\0 \0\r\0 \bAj!\0 Aj!A\0!@ \0!@  G\r\0 !A\0!\f\v A\bj!\0 Aj! (\0E\r\0\v\vA \tAv"\nAþÿÿÿq"\0At“€€€\0Aj!\v@ \0E\r\0A\0!A\0!@ \tAI\r\0 \nAq!\f \vA j!\0 \nAüÿÿÿq!\tA\0!@ \0B\x007\0 \0AxjB\x007\0 \0ApjB\x007\0 \0AhjB\x007\0 \0A j!\0 \t Aj"G\r\0\v \fE\r\v \v AtjA\bj!\0@ \0 jB\x007\0 A\bj"AG\r\0\v\v#€€€\0"\0A€î€€\0jA\x006\0 \0Aü퀀\0j \v6\0@ E\r\0 \bAj!@@ (\0’€€€\0 ("\0A\bjA\0 \0!@ \0\r\0  \b(Av"\0F\r\0 \0 Aj" \0 KAj!  Atj!\0@ \0!  F\r A\bj!\0 Aj! (\0E\r\0\v\v \r\0\v\v#€€€\0A€î€€\0j(\0 F\r\v\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v\v¶~@@@€€€€\0"­ AjA|qA\bj­|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r Bÿÿ|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 Aj 6\0 Aj \x006\0 \v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v\0#€€€\0Aވ€€\0jA\v \0 ¯€€€\0\0\vä@@@@@ \0Aj"(\0"\0AK\r\0A \0tA€€€ÐzqE\r\0@ ("\r\0A\0!\0\f\v AG\rA\0!A!\0\f\v\0\v Aq! A~q!A\0!A!\0@#€€€\0A„Š€€\0j"  j"A\tj-\0\0  A\bj-\0\0 \0sAÿqAtj(\0 \0A\bvs"\0sAÿqAtj(\0 \0A\bvs!\0  Aj"G\r\0\v E\r\v#€€€\0A„Š€€\0j A\bj j-\0\0 \0sAÿqAtj(\0 \0A\bvs!\0\v \0As!\0\v#€€€\0Aº‰€€\0j" \0AvAqj-\0\0!A A\bjAnAt“€€€\0"Aj :\0\0 A\rj  \0AvAqj-\0\0:\0\0 A\fj  \0A\fv"Aqj Aqj-\0\0:\0\0 A\vj  \0AvAqj-\0\0:\0\0 A\nj  \0AvAqj-\0\0:\0\0 A\tj"  \0Avj-\0\0:\0\0 \0Aq! Aj!@@@ \r\0A!\0\f\v A\bj!A!\0A\0!@ \0A\bj!\0 A\bt -\0\0r!@ #€€€\0Aº‰€€\0j  \0A{j"\0vAqj-\0\0:\0\0 Aj! A \0tAsq! \0AK\r\0\v Aj! Aj" G\r\0\v \0E\r\v #€€€\0Aº‰€€\0j A \0ktAqj-\0\0:\0\0  k"\0Aj!@@ Aj"(AjAv" \0AjAv"\0k"AG\r\0  \0AtjA16\0\f\v  \0F\r\0  \0Atj"\0 A~j6 \0A36\0\v  6\v \v¼~@@@€€€€\0"­ \0AjA|qAj­|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r Bÿÿ|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 A\tj \0Av6\0 AjA#6\0 Aj\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\vÂ~@@@ A€€€O\r\0@€€€€\0"­ AtA\bj­|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r Bÿÿ|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 Aj 6\0 Aj \x006\0 \v\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\vÕ~~~ ­!@@@@@@ AI\r\0  B…V\r  | \0A\rj5\0B†X\r#€€€\0! \0Aj(\0 \0A\tj(\0 A…‰€€\0jA™€€€\0\0\v  \0A\rj5\0B†Z\r E\r\v#€€€\0AØí€€\0j)\0 Bÿÿÿƒ"| \0Aj"(\0A\tj" Bˆ§Atj/\0"\b­B†|!\t \b   |B|Bˆ§Atj/\0F\r ­ \tB€€€ }"\nƒ€€€\0#€€€\0AØí€€\0j)\0 \n |"\tBÿÿÿƒ"\v| (\0 \tBˆ§AtjA\tj3\0B†|!\t  \n§j!@B€€€\b  \v|}" V\r\0  §AÿÿÿqkA€€€j­!\n \0Aj!\0@ \n \tB€€€ƒ€€€\0 \0(\0  |Bˆ§AtjA\tj3\0!\t#€€€\0AØí€€\0j)\0 \tB†|!\t \nB€€€|!\n A€€€j! B€€€|" X\r\0\v B€€€||!\n\v \n Z\r\0 ­ \t  \n§k­ƒ€€€\0\v\v#€€€\0! \0Aj(\0 \0A\tj(\0 A˜‰€€\0jA™€€€\0\0\v#€€€\0! \0Aj(\0 \0A\tj(\0 A¦‰€€\0jA™€€€\0\0\v ­ \t ƒ€€€\0\v"\0@  \0r\r\0  ³€€€\0\0\v  €€€\0\0\v§~@@@@€€€€\0"­"B|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r B“€|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 AjA\'6\0 Aj" 6\0 A\rj 6\0 Aj \x007\0@#€€€\0A„\0j(\0" M\r\0#€€€\0! AqE\r\0 Aj I\r\0 Aˆî€€\0j(\0 K\r\0#€€€\0Aøí€€\0j-\0\0E\r ’€€€\0\v \v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\v\0\vÕ~~~ ­!@@@@@@ AI\r\0  B…V\r  | \0A\rj5\0B†X\r#€€€\0! \0Aj(\0 \0A\tj(\0 A…‰€€\0jA™€€€\0\0\v  \0A\rj5\0B†Z\r E\r\v#€€€\0AØí€€\0j)\0 Bÿÿÿƒ"| \0Aj"(\0A\tj" Bˆ§Atj/\0"\b­B†|!\t \b   |B|Bˆ§Atj/\0F\r \t ­B€€€ }"\n„€€€\0#€€€\0AØí€€\0j)\0 \n |"\tBÿÿÿƒ"\v| (\0 \tBˆ§AtjA\tj3\0B†|!\t  \n§j!@B€€€\b  \v|}" V\r\0  §AÿÿÿqkA€€€j­!\n \0Aj!\0@ \t \nB€€€„€€€\0 \0(\0  |Bˆ§AtjA\tj3\0!\t#€€€\0AØí€€\0j)\0 \tB†|!\t \nB€€€|!\n A€€€j! B€€€|" X\r\0\v B€€€||!\n\v \n Z\r\0 \t ­  \n§k­„€€€\0\v\v#€€€\0! \0Aj(\0 \0A\tj(\0 A˜‰€€\0jA™€€€\0\0\v#€€€\0! \0Aj(\0 \0A\tj(\0 A¦‰€€\0jA™€€€\0\0\v \t ­ „€€€\0\vø~~#€€€€\0Ak"\0$€€€€\0 \0B\x007\b \0A\bj­"BB\bƒ€€€\0@ \0)\bP\r\0A\0! \0A\x006\b BBƒ€€€\0A\0!@ \0(\b"Aÿÿq"E\r\0 ­B\v~!B\0!A\0!@ \0B\x007\b  B"|B\bƒ€€€\0@ \0)\b"\bP\r\0 \0A\0;\b  B*|Bƒ€€€\0 \0A\0:\0\b  B,|Bƒ€€€\0 \0-\0\bA\0 \bBQ j!\v  B\v|"R\r\0\v\vA Aÿ\0jAv"\tAt“€€€\0!\n@ \tE\r\0 E\r\0 \nA\tj!\vA\0!A\0!@ \0B\x007\b  ­BÿÿƒB\v~"B"|B\bƒ€€€\0@ \0)\b"\bP\r\0 \0A\0;\b  B*|Bƒ€€€\0 \0/\b!\f \0A\0:\0\b  B,|Bƒ€€€\0 \bBR\r\0 \v \fAtj ;\0 Aj!\v  \tO\r  Aj"AÿÿqK\r\0\v\v@  \tF\r\0\0\vB\0  \nš€€€\0! \0Aj$€€€€\0 \v#€€€\0A …€€\0jA"€€€\0\0\v\0#€€€\0A€\0jA \0 ¯€€€\0\0\v…~~#€€€€\0A€k"\0$€€€€\0@…€€€\0\r\0†€€€\0PE\r\0@@@B‡€€€\0BQ\r\0 \0A\bjA\0A€€ü\v\0B\0 \0A\bj­"B€€„€€€\0B€€ B€€„€€€\0B€€\b B€€„€€€\0B€€\f B€€„€€€\0B€€ B€€„€€€\0B€€ B€€„€€€\0#€€€\0AØí€€\0jB€€À\x007\0Ÿ€€€\0Aˆ€€€\0@@…€€€\0\0\v†€€€\0P\r\f\v €€€\0\f\v#€€€\0Aㆀ€\0jA&€€€\0\0\vž€€€\0\v \0B\x007ˆ€ \0Aˆ€j­"BB\bƒ€€€\0@@@ \0)ˆ€"B~Q\r\0 \0 B|7ˆ€B B\b„€€€\0@€€€€\0"­"B\b|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r B‡€|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 AjB7\0#€€€\0Aà퀀\0j A\0 š€€€\0"6\0 Aj)\0B\0R\r \0B\x007ˆ€ BB\bƒ€€€\0 \0)ˆ€BR\r \0B7ˆ€B B\b„€€€\0 \0A€j$€€€€\0\v#€€€\0A’…€€\0jA€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v\0\v®#€€€€\0Ak"\0$€€€€\0@†€€€\0B\0Q\r\0#€€€\0AØí€€\0j)\0B¡€X\r\0B\0#€€€\0"A…€€\0j­B\b„€€€\0 \0A6\0B\b \0­B„€€€\0 \0A€;B\f \0Aj­B„€€€\0 \0 AØí€€\0j)\x007\bB \0A\bj­B\b„€€€\0 \0Aj$€€€€\0\v\0\vÿ~~~#€€€€\0Ak"\0$€€€€\0@@@@@†€€€\0"B€€€V\r\0 §"Aÿ\0j"Av"E\r A€ÿÿq kA€j­‡€€€\0BQ\r@€€€€\0"­"Bˆ€€|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r B‡€„|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 AjB™€€€€€€À\x007\0B\0!\b A\tj"­"B\0B€€€ƒ€€€\0 At­ B€€€„€€€\0 A\0A€€€ü\v\0B\0 B€€€„€€€\0#€€€\0AØí€€\0jB€€€7\0Ÿ€€€\0 \0 6\bB \0A\bj­"B„€€€\0 \0B7\bB B\b„€€€\0 \0B7\bB"! Aj"­"\tBÿÿƒ"\nB\v~"\vB"| B\b„€€€\0 \0A\0;\b \vB*| B„€€€\0 \0A€  Atk" :\0\b \vB,| B„€€€\0@ AÿÿqE\r\0 \tB|!\t@ \0B7\b  B\b„€€€\0 \0 \bB|"\v=\b B\b| B„€€€\0 \0 A€ \t \bQ:\0\b B\n| B„€€€\0 B\v|! \v!\b \n \vR\r\0\v\vAˆ€€€\0#€€€\0Aà퀀\0jœ€€€\x006\0 \0B\x007\b BB\bƒ€€€\0 \0)\bBR\r \0B7\bB B\b„€€€\0 \0Aj$€€€€\0\v#€€€\0A‰‡€€\0jA/€€€\0\v\0\v#€€€\0Aㆀ€\0jA&€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v½~@@@@ \0Aj"(\0A%G\r\0@@€€€€\0"\0­"B|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r B€|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 \0AjB‡€€€ 7\0 \0A\tj" (\f"6\0@#€€€\0A„\0j(\0" M\r\0#€€€\0!\b AqE\r\0 Aj I\r\0 \bAˆî€€\0j(\0 K\r\0#€€€\0Aøí€€\0j-\0\0E\r ’€€€\0\v Aj" (\0"6\0@ #€€€\0A„\0j(\0"O\r\0#€€€\0!\b AqE\r\0 Aj I\r\0  \bAˆî€€\0j(\0I\r\0#€€€\0Aøí€€\0j-\0\0E\r ’€€€\0\v  \x006\0 (\b"\0Aj"(\0A%F\r\0\v\v \0\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\v\0\v“0\n~|#€€€€\0A0k"$€€€€\0@#€€€\0A¤î€€\0j(\0‰€€€\0AjA`qI\r\0#€€€\0!‰€€€\0€€€€\0!Š€€€\0! A¤î€€\0j(\0‰€€€\0AjA`qI\r\0‰€€€\0!#€€€\0A¤î€€\0j(\0!€€€€\0!  AjA`q"I\r\0  Aj"\bK\r\0#€€€\0!@@@ \bA€€€€}I\r\0A!\t Aä퀀\0j-\0\0AqE\r\v  k#€€€\0Aì쀀\0j(\0K!\t\f\v#€€€\0Aä퀀\0jA:\0\0\v  \t:\0,  6  \b6  \x006\f #€€€\0"Aà퀀\0j6$  AÌ퀀\0j6  6  6A   A`q \t"\nkAjAvAjAvAjAøÿÿÿq"\0“€€€\0A\tj!@ \0E\r\0 A\0 \0ü\v\0\v A î€€\0j  \nAvk6\0 Aœî€€\0j 6\0 Aì퀀\0j(\0\r\0@@@@€€€€\0"­"\vBˆ|"\f?\0­B†X\r\0 \fB€€üÿB€€üÿ€€€\0V\r \vB‡‚|Bˆ§"?\0"\0M\r\0  \0k@\0AF\r\v \f§‚€€€\0 Aj"\0B™€€€€ 7\0#€€€\0"Aô퀀\0j A‰j6\0 Að퀀\0j A\tj"6\0 Aè퀀\0j 6\0 Aì퀀\0j \x006\0A\0!\r A\x006(@ Aj(\0"\0E\r\0   \t!\n AjA\bj!A\0!\r@ (\0Aj"(\0AG\r  O\r@ Aj(\0"AF\r\0 AqE\r\0 Aj" \nI\r\0 Aq\r#€€€\0A î€€\0j(\0 Avj"-\0\0"A AvAqt"q\r\0   r:\0\0 £€€€\0 ¤€€€\0At \rj!\r\v Aj! \0Aj"\0\r\0\v  \r6(\v#€€€\0AÌ퀀\0j(\0"AF\r AqE\r Aj"   \tI\r Aq\r#€€€\0A î€€\0j(\0 Avj"-\0\0"\0A AvAqt"\nq\r  \0 \nr:\0\0 £€€€\0  ¤€€€\0At \rj"\r6(\f\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v@#€€€\0Aà퀀\0j(\0"AF\r\0 AqE\r\0 Aj"   \tI\r\0 Aq\r#€€€\0A î€€\0j(\0 Avj"-\0\0"\0A AvAqt"\nq\r\0  \0 \nr:\0\0 £€€€\0  ¤€€€\0At \rj"\r6(\v@ \t\r\0#€€€\0Aøí€€\0j-\0\0E\r#€€€\0Aü퀀\0j(\0"A\bj! (!@@ (\b"\r\0 Av"E\r\0 Aj!\0 Aj!\nA\0!@ \0! \n F\r A\bj!\0 Aj! (\0E\r\0\f\v\v E\rA\0! !\v A\bj!@@ (\0(\0"\0AqE\r\0 \0Aj"\0 I\r\0 \0Aq\r#€€€\0A î€€\0j(\0 \0Avj"\n-\0\0"A \0AvAqt"q\r\0 \n  r:\0\0 \0£€€€\0 \0¤€€€\0At \rj!\r (!\v ("\0A\bjA\0 \0!@@  Av"\nF\r\0 \0\r\0 \n Aj" \n KAj!\n  Atj!\0@ \0! \n F\r A\bj!\0 Aj! (\0E\r\0\v\v \r\v\v  \r6(\v@@#€€€\0"Að퀀\0j(\0" Aè퀀\0j(\0G\r\0 \t!\f\v@#€€€\0Að퀀\0j A|j"6\0 (" (" -\0,"\r!\b@@@@@@@@@@@@@@ (\0"(\0"Aj3\0\f\f\f\f\r\r\r\t\b\r\r\r\r\r\r\r\r\v ("\0E\r\f A\fj!@@ (\0"Aj \bI\r\0 AF\r\0 AqE\r\0 A\fj ¥€€€\0\v Aj! \0Aj"\0\r\0\f\r\v\v A3K\r\n\v#€€€\0A©ˆ€€\0jA*”€€€\0\0\v#€€€\0Aö‡€€\0jA3”€€€\0\0\v@ (\b"Aj \bI\r\0 AF\r\0 AqE\r\0 A\fj A\bj¥€€€\0\v (\f"Aj \bI\r\b AF\r\b AqE\r\b A\fj!\f\v ("Aj \bI\r AF\r AqE\r Aj!\f\v (\b"Aj \bI\r AF\r AqE\r A\bj!\f\v ("Aj \bI\r AF\r Aq\r\f\v (\b"\0E\r A\fj!@@ (\0"Aj \bI\r\0 AF\r\0 AqE\r\0 A\fj ¥€€€\0\v Aj! \0Aj"\0\r\0\f\v\v ("Aj \bI\r AF\r AqE\r\v Aj!\v A\fj ¥€€€\0\f\v AvAqAj  A3K"\0!@@ ("\n AÿÿÿÿqA\0 \0"kA€I\r\0  AtA€€€€zjA€€€€|q Aÿj"\nr6\0 £€€€\0\f\v  6\0 \n M\r\v A\bj! ((!@@  Atj"\0(\0"Aj" \bI\r\0 AF\r\0 AqE\r\0 Aq\r@#€€€\0A î€€\0j(\0 Avj"-\0\0"A AvAqt"q\r\0   r:\0\0 £€€€\0 ¤€€€\0At j!\v \rE\r\0  \0K\r\0  \0M\r\0 \0(\0"AqE\r\0 Aj I\r\0#€€€\0Aøí€€\0j-\0\0E\r#€€€\0Aü퀀\0j(\0" (AvAj \0AvqAtjA\bj"(\0"E\r  \0F\r\0@ ("E\r A\bj! (\b \0G\r\0\v\v Aj" \nG\r\0\v  6(\v#€€€\0"Að퀀\0j(\0" Aè퀀\0j(\0G\r\0\v (! (! -\0,! (!\b ((!\r\v@ \r¸ \b   Aq"\nk¸£Dffffffî?cE\r\0B\0!\f@#€€€\0Aœî€€\0j(\0"A|j(\0"A\bI\r\0 )\0\0!\f\v@ #€€€\0A î€€\0j(\0"\bk"\0At" \0 jAt"\0F\r\0 \fy§!@ \fB\0R\r\0@  j" \0F\r \b Avj)\0\0"\fy§! \fP\r\0\v\v  \fz"\v§j"AF\r\0 \f \vˆ!\f@@@@@@@@@@@@@ At"(\0"Aj3\0\n\n\n\n\v\v\v\t\b\v\v\v\v\v\v\v\v\v ("E\r\n A\fj! A\fj!\r@@ (\0"Aj"\b K\r\0 \b \nI\r\0 AF\r\0 AqE\r\0  \b(\x006\0 \b \r6\0\v Aj! \rAj!\r Aj"\r\0\f\v\v\v A3K\r\b\v#€€€\0A©ˆ€€\0jA*”€€€\0\0\v#€€€\0Aö‡€€\0jA3”€€€\0\0\v@ (\b"\bAj" K\r\0  \nI\r\0 \bAF\r\0 \bAqE\r\0 A\bj"\b (\x006\0  \b6\0\v (\f"\bAj" K\r  \nI\r \bAF\r \bAqE\r A\fj"\b (\x006\0  \b6\0\f\v ("\bAj" K\r  \nI\r \bAF\r \bAqE\r Aj"\b (\x006\0  \b6\0\f\v (\b"\bAj" K\r  \nI\r \bAF\r \bAqE\r A\bj"\b (\x006\0  \b6\0\f\v ("\bAj" K\r  \nI\r \bAF\r \bAqE\r Aj"\b (\x006\0  \b6\0\f\v (\b"E\r A\fj! A\fj!\r@@ (\0"Aj"\b K\r\0 \b \nI\r\0 AF\r\0 AqE\r\0  \b(\x006\0 \b \r6\0\v Aj! \rAj!\r Aj"\r\0\f\v\v ("\bAj" K\r  \nI\r \bAF\r \bAqE\r Aj"\b (\x006\0  \b6\0\f\v Aj(\0"\b AÿÿÿÿqA\0 A3K"M\r\0 \b k!  AtjA\bj"\r!@@ (\0"Aj"\b K\r\0 \b \nI\r\0 AF\r\0 AqE\r\0  \b(\x006\0 \b \r6\0\v Aj! \rAj!\r Aj"\r\0\v\v Aj" \0F\r@ \fBˆ"\fB\0R\r\0#€€€\0A î€€\0j(\0!\b@  j" \0F\r \b Avj)\0\0"\fy§! \fP\r\0\v\v \f \fz"\vˆ!\f  \v§j"AG\r\0\v\v@ ("Aj(\0"\bE\r\0 AjA\bj!@ (\0Aj"(\0AG\r  O\r@ ("\0AF\r\0 \0AqE\r\0 \0Aj"\0 \nI\r\0 Aj" \0(\x006\0 \0 6\0\v Aj! \bAj"\b\r\0\v\v@ ( "(\0"AF\r\0 AqE\r\0 Aj" \nI\r\0  (\x006\0  6\0\v@ ($"(\0"AF\r\0 AqE\r\0 Aj" \nI\r\0  (\x006\0  6\0\v@ Aÿq\r\0#€€€\0Aøí€€\0j-\0\0E\r#€€€\0Aü퀀\0j(\0"\rA\bj! \r(!@@ \r(\b"\r\0 Av"E\r\0 \rAj!\0 Aj!\bA\0!@ \0! \b F\r A\bj!\0 Aj! (\0E\r\0\f\v\v E\rA\0! !\v A\bj!@ (\0"\0 I\r \0 O\r@ \0(\0"\bAqE\r\0 \bAj"\b I\r\0 \0 \b(\x006\0 \b \x006\0 \r(!\v ("\0A\bjA\0 \0!@ \0\r\0  Av"\0F\r\0 \0 Aj" \0 KAj!\b  Atj!\0@ \0! \b F\r A\bj!\0 Aj! (\0E\r\0\v\v \r\0\v\v#€€€\0"Aøí€€\0jA\0:\0\0B\0!\f@ Aœî€€\0j(\0"A|j(\0"\0A\bI\r\0 )\0\0!\f\v   Aÿq!\b #€€€\0A î€€\0j(\0"k"At"  \0jAt"F\r\0 \fy§!\0@ \fB\0R\r\0@  \0j" F\r  Avj)\0\0"\fy§!\0 \fP\r\0\v\v  \fz"\v§j"AF\r\0 \f \vˆ!\f@ At"\r \nI\r@ \r(\0"Aq\r\0 \bAj!@ "(\0!  6\0 AqE\r\0\v\v \r 6\0 \r¤€€€\0!@@ \b \rG\r\0 At!\f\v At"E\r\0 \b \r ü\n\0\0\v@@@@@@@@@@@@ \b(\0"Aj3\0\n\n\n\n\v\v\v\t\b\v\v\v\v\v\v\v\v\v \b("E\r\n \bA\fj! \bA\fj!\r@@ (\0"Aj" \nI\r\0 AF\r\0 AqE\r\0  \bM\r\0  (\x006\0  \r6\0\v Aj! \rAj!\r Aj"\r\0\f\v\v\v A3K\r\b\v#€€€\0A©ˆ€€\0jA*”€€€\0\0\v#€€€\0Aö‡€€\0jA3”€€€\0\0\v@ \b(\b"Aj" \nI\r\0 AF\r\0 AqE\r\0  \bM\r\0 \bA\bj" (\x006\0  6\0\v \b(\f"Aj" \nI\r AF\r AqE\r  \bM\r \bA\fj" (\x006\0  6\0\f\v \b("Aj" \nI\r AF\r AqE\r  \bM\r \bAj" (\x006\0  6\0\f\v \b(\b"Aj" \nI\r AF\r AqE\r  \bM\r \bA\bj" (\x006\0  6\0\f\v \b("Aj" \nI\r AF\r AqE\r  \bM\r \bAj" (\x006\0  6\0\f\v \b(\b"E\r \bA\fj! \bA\fj!\r@@ (\0"Aj" \nI\r\0 AF\r\0 AqE\r\0  \bM\r\0  (\x006\0  \r6\0\v Aj! \rAj!\r Aj"\r\0\f\v\v \b("Aj" \nI\r AF\r AqE\r  \bM\r \bAj" (\x006\0  6\0\f\v \bAj(\0" AÿÿÿÿqA\0 A3K"M\r\0  k! \b AtjA\bj"\r!@@ (\0"Aj" \nI\r\0 AF\r\0 AqE\r\0  \bM\r\0  (\x006\0  \r6\0\v Aj! \rAj!\r Aj"\r\0\v\v  \bj!\b Aj" F\r@ \fBˆ"\fB\0R\r\0#€€€\0A î€€\0j(\0!@  \0j" F\r  Avj)\0\0"\fy§!\0 \fP\r\0\v\v \f \fz"\vˆ!\f  \v§j"AG\r\0\v\v#€€€\0"Aè퀀\0jA\x006\0 Aì퀀\0jA\x006\0 Að퀀\0jA\x006\0 Aô퀀\0jA\x006\0 Aœî€€\0jA\x006\0 A î€€\0jA\x006\0 \bAj‚€€€\0 A¤î€€\0j \b6\0 A°î€€\0j" Aj­ \b­} )\0|7\0 A¨î€€\0j" \b (k" (\0"  K6\0@ \tE\r\0#€€€\0Aì쀀\0j ¸"  ü6\0 \bAÿÿÿÿ|K\r\0#€€€\0Aä퀀\0jA\0:\0\0\v¦€€€\0 A0j$€€€€\0\v\0\vÕ~@@@@#€€€\0"Að퀀\0j(\0" Aô퀀\0j(\0G\r\0@#€€€\0Aì퀀\0j(\0(Aj"A|q­€€€€\0"­|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r Bÿÿ|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0#€€€\0Aô퀀\0j(\0 AjG\r#€€€\0"Aì퀀\0j(\0 AtAxq"6 Aô퀀\0j Aè퀀\0j(\0 j6\0 Að퀀\0j(\0!\v  \x006\0#€€€\0Að퀀\0j Aj6\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\v\0\vëA!@@@@@@@@@@@@@ \0(\0Aj3\0\0\0\0\0\f\0\f\0\f\0\0\0\0\f\0\0\0\0\0\0\0\b\0\v\0\0\0\0\t\0\t\0\n\0\v#€€€\0Aϓ€€\0jA”€€€\0\0\v \0(Aj\v \0(Aj\vA\v \0(\bAj\v \0(AjAvAj\v#€€€\0A°“€€\0jA”€€€\0\0\v \0(\bAÿÿÿÿqAj\vA\vA\v \0(Aj\vA!\v \v­@@ (\0Aj" \0AA\b \0-\0 "j(\0I\r\0 Aq\r\0@#€€€\0A î€€\0j(\0 Avj"-\0\0"A AvAqt"q\r\0   r:\0\0 £€€€\0 ¤€€€\0! \0 \0( Atj6\v E\r \0( K\r \0(\b" M\r (\0"\0AqE\r \0Aj I\r#€€€\0Aøí€€\0j-\0\0E\r\0#€€€\0Aü퀀\0j(\0" (AvAj AvqAtjA\bj"\0(\0"E\r\0  F\r@ \0("E\r A\bj!\0 (\b F\r\f\0\v\v\0\v\vÖ~@@@€€€€\0"\0­"BˆÀ\0|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r B‡À|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 \0Aj"B™€€€€€\b7\0A€@!@  j"\0A À\0jB\x007\0 \0A˜À\0jB\x007\0 \0AÀ\0jB\x007\0 \0AˆÀ\0jB\x007\0 A j"\r\0\v#€€€\0"\0Aü퀀\0j 6\0 \0Aøí€€\0jA:\0\0 \0A€î€€\0jA\x006\0‰€€€\0! \0A„\0j \0A¤î€€\0j(\x006\0 \0Aˆî€€\0j AjA`q6\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\vÔ ~‰€€€\0!\0Š€€€\0!A€€€€\0" \0Aj"A`q"kAjAvAjAvAjAøÿÿÿq"“€€€\0A\tj!\0@ E\r\0 \0A\0 ü\v\0\v#€€€\0"A î€€\0j \0 Avk6\0 Aœî€€\0j \x006\0@@@€€€€\0"\0­"Bˆ|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r B‡‚|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 \0Aj"B™€€€€ 7\0#€€€\0"A˜î€€\0j \0A‰j6\0 A”\0j \0A\tj"\x006\0 AŒî€€\0j \x006\0 Aî€€\0j 6\0@ Aj(\0"\bE\r\0 AjA\bj!@@ (\0Aj"(\0"Aj"\0 I\r\0 AF\r\0 AqE\r\0@#€€€\0A î€€\0j(\0 \0Avj"-\0\0"\tA \0AvAqt"\nq\r\0 \0(\0!\v  \t \nr:\0\0 \0 \v¨€€€\0 (\0Aj!\0\v  \0(\x006\0 \0 6\0\v Aj! \bAj"\b\r\0\v\v@#€€€\0AÌ퀀\0j(\0"\0AF\r\0 \0AqE\r\0@#€€€\0A î€€\0j(\0 \0Aj"\0Avj"-\0\0"A \0AvAqt"q\r\0 \0(\0!\b   r:\0\0 \0 \b¨€€€\0#€€€\0AÌ퀀\0j(\0Aj!\0\v#€€€\0AÌ퀀\0j" \0(\x006\0 \0 6\0\v@#€€€\0Aà퀀\0j(\0"\0AF\r\0 \0AqE\r\0@#€€€\0A î€€\0j(\0 \0Aj"\0Avj"-\0\0"A \0AvAqt"q\r\0 \0(\0!\b   r:\0\0 \0 \b¨€€€\0#€€€\0Aà퀀\0j(\0Aj!\0\v#€€€\0Aà퀀\0j" \0(\x006\0 \0 6\0\v@#€€€\0"A”\0j(\0"\0 AŒî€€\0j(\0F\r\0@#€€€\0A”\0j \0Axj"6\0 (\0!\t@@@@@@@@@@@@ \0A|j(\0"\0Aj3\0\n\n\n\n\v\v\v\t\b\v\v\v\v\v\v\v\v\v \t("\bE\r\n \tA\fj!\0 \tA\fj!@@ \0(\0"Aj" I\r\0 AF\r\0 AqE\r\0@#€€€\0A î€€\0j(\0 Avj"-\0\0"\nA AvAqt"\vq\r\0 (\0!\f  \n \vr:\0\0  \f¨€€€\0\v  \tK\r\0 \0 \0(\0Aj"(\x006\0  6\0\v \0Aj!\0 Aj! \bAj"\b\r\0\f\v\v\v \0A3K\r\b\v#€€€\0A©ˆ€€\0jA*”€€€\0\0\v#€€€\0Aö‡€€\0jA3”€€€\0\0\v@ \t(\b"Aj"\0 I\r\0 AF\r\0 AqE\r\0@#€€€\0A î€€\0j(\0 \0Avj"-\0\0"A \0AvAqt"q\r\0 \0(\0!\b   r:\0\0 \0 \b¨€€€\0\v \0 \tK\r\0 \tA\bj"\0 \0(\0Aj"(\x006\0  \x006\0\v \t(\f"Aj"\0 I\r AF\r AqE\r@#€€€\0A î€€\0j(\0 \0Avj"-\0\0"A \0AvAqt"q\r\0 \0(\0!\b   r:\0\0 \0 \b¨€€€\0\v \0 \tK\r \tA\fj"\0 \0(\0Aj"(\x006\0  \x006\0\f\v \t("Aj"\0 I\r AF\r AqE\r@#€€€\0A î€€\0j(\0 \0Avj"-\0\0"A \0AvAqt"q\r\0 \0(\0!\b   r:\0\0 \0 \b¨€€€\0\v \0 \tK\r \tAj"\0 \0(\0Aj"(\x006\0  \x006\0\f\v \t(\b"Aj"\0 I\r AF\r AqE\r@#€€€\0A î€€\0j(\0 \0Avj"-\0\0"A \0AvAqt"q\r\0 \0(\0!\b   r:\0\0 \0 \b¨€€€\0\v \0 \tK\r \tA\bj"\0 \0(\0Aj"(\x006\0  \x006\0\f\v \t("Aj"\0 I\r AF\r AqE\r@#€€€\0A î€€\0j(\0 \0Avj"-\0\0"A \0AvAqt"q\r\0 \0(\0!\b   r:\0\0 \0 \b¨€€€\0\v \0 \tK\r \tAj"\0 \0(\0Aj"(\x006\0  \x006\0\f\v \t(\b"\bE\r \tA\fj!\0 \tA\fj!@@ \0(\0"Aj" I\r\0 AF\r\0 AqE\r\0@#€€€\0A î€€\0j(\0 Avj"-\0\0"\nA AvAqt"\vq\r\0 (\0!\f  \n \vr:\0\0  \f¨€€€\0\v  \tK\r\0 \0 \0(\0Aj"(\x006\0  6\0\v \0Aj!\0 Aj! \bAj"\b\r\0\f\v\v \t("Aj"\0 I\r AF\r AqE\r@#€€€\0A î€€\0j(\0 \0Avj"-\0\0"A \0AvAqt"q\r\0 \0(\0!\b   r:\0\0 \0 \b¨€€€\0\v \0 \tK\r \tAj"\0 \0(\0Aj"(\x006\0  \x006\0\f\v@@ \t(" \0AÿÿÿÿqA\0 \0A3K"\0k"A€I\r\0 \t \0Aÿ\0j¨€€€\0\f\v  \0M\r\v Aÿ\0 Aÿ\0I!\b \t \0AtjA\bj"!\0@@ \0(\0"Aj" I\r\0 AF\r\0 AqE\r\0@#€€€\0A î€€\0j(\0 Avj"-\0\0"\nA AvAqt"\vq\r\0 (\0!\f  \n \vr:\0\0  \f¨€€€\0\v  \tK\r\0 \0 \0(\0Aj"(\x006\0  6\0\v \0Aj!\0 Aj! \bAj"\b\r\0\v\v#€€€\0"A”\0j(\0"\0 AŒî€€\0j(\0G\r\0\v\vB\0!@#€€€\0Aœî€€\0j(\0"\0A|j(\0"A\bI\r\0 \0)\0\0!\v !\b@ \0#€€€\0A î€€\0j(\0"k"At"\0  jAt"\tF\r\0 y§!@ B\0R\r\0@@ \0 j"\0 \tG\r\0 !\b\f\v  \0Avj)\0\0"y§! P\r\0\v\v !\b \0 z"§j"\fAF\r\0  ˆ! !\b@@ \fAt"\n(\0"\0Aq\r\0 \bAj!@ \0"(\0!\0  6\0 \0AqE\r\0\v\v \n \x006\0 \n¤€€€\0!\0@@ \b \nG\r\0 \0At!\r\f\v \0At"\rE\r\0 \b \n \rü\n\0\0\v@@@@@@@@@@@@ \b(\0"\0Aj3\0\n\n\n\n\v\v\v\t\b\v\v\v\v\v\v\v\v\v \b("\vE\r\n \bA\fj!\0 \bA\fj!@@ \0(\0"\nAj" \bM\r\0  I\r\0 \nAF\r\0 \nAqE\r\0 \0 (\x006\0  6\0\v \0Aj!\0 Aj! \vAj"\v\r\0\f\v\v\v \0A3K\r\b\v#€€€\0A©ˆ€€\0jA*”€€€\0\0\v#€€€\0Aö‡€€\0jA3”€€€\0\0\v@ \b(\b"Aj"\0 \bM\r\0 \0 I\r\0 AF\r\0 AqE\r\0 \bA\bj" \0(\x006\0 \0 6\0\v \b(\f"Aj"\0 \bM\r \0 I\r AF\r AqE\r \bA\fj" \0(\x006\0 \0 6\0\f\v \b("Aj"\0 \bM\r \0 I\r AF\r AqE\r \bAj" \0(\x006\0 \0 6\0\f\v \b(\b"Aj"\0 \bM\r \0 I\r AF\r AqE\r \bA\bj" \0(\x006\0 \0 6\0\f\v \b("Aj"\0 \bM\r \0 I\r AF\r AqE\r \bAj" \0(\x006\0 \0 6\0\f\v \b(\b"\vE\r \bA\fj!\0 \bA\fj!@@ \0(\0"\nAj" \bM\r\0  I\r\0 \nAF\r\0 \nAqE\r\0 \0 (\x006\0  6\0\v \0Aj!\0 Aj! \vAj"\v\r\0\f\v\v \b("Aj"\0 \bM\r \0 I\r AF\r AqE\r \bAj" \0(\x006\0 \0 6\0\f\v \bAj(\0" \0AÿÿÿÿqA\0 \0A3K"\0M\r\0  \0k!\v \b \0AtjA\bj"!\0@@ \0(\0"\nAj" \bM\r\0  I\r\0 \nAF\r\0 \nAqE\r\0 \0 (\x006\0  6\0\v \0Aj!\0 Aj! \vAj"\v\r\0\v\v \r \bj!\b \fAj"\0 \tF\r@ Bˆ"B\0R\r\0#€€€\0A î€€\0j(\0!@ \0 j"\0 \tF\r  \0Avj)\0\0"y§! P\r\0\v\v  z"ˆ! \0 §j"\fAG\r\0\v\v \bAj‚€€€\0#€€€\0"\0AŒî€€\0jA\x006\0 \0Aî€€\0jA\x006\0 \0A”\0jA\x006\0 \0A˜î€€\0jA\x006\0 \0Aœî€€\0jA\x006\0 \0A î€€\0jA\x006\0€€€€\0! \0A°î€€\0j" )\0  k­|7\0 \0A¨î€€\0j"€€€€\0 kAj" (\0"  K6\0 \0A¤î€€\0j€€€€\0Aj6\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v¿~@@@#€€€\0"A”\0j(\0" A˜î€€\0j(\0G\r\0@#€€€\0Aî€€\0j(\0(Aj"A|q­€€€€\0­|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r Bÿÿ|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0#€€€\0"Aî€€\0j(\0 AtAxq"6 A˜î€€\0j AŒî€€\0j(\0 j6\0 A”\0j(\0!\v  \x006\0  6#€€€\0A”\0j A\bj6\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v¡‰€€€\0!\0Š€€€\0! \0AjA`q!€€€€\0"Aj!\0@ Aj(\0"E\r\0 AjA\bj!@  \0 (\0ª€€€\0 Aj! Aj"\r\0\v\v@#€€€\0AÌ퀀\0j(\0"AF\r\0 AqE\r\0  \0#€€€\0AÌ퀀\0j«€€€\0\v@#€€€\0Aà퀀\0j(\0"AF\r\0 AqE\r\0  \0#€€€\0Aà퀀\0j«€€€\0\v@ \0€€€€\0AjO\r\0 \0!@ ¤€€€\0!  \0 Ajª€€€\0 At j"€€€€\0AjI\r\0\v\v€€€€\0!#€€€\0"A¨î€€\0j"  k" (\0"  K6\0 A°î€€\0j" )\0 \0  j"k­|7\0@ E\r\0  \0 ü\n\0\0\v Aj‚€€€\0 A¤î€€\0j€€€€\0Aj6\0\vö@@@@@@@@@@@@ Aj"(\0"Aj3\0\b\t\b\t\b\t\b\t\b\n\b\n\b\n\b\b\b\b\b\n\b\n\b\n\b\n\b\n\b\n\b\b\b\n\b\n\b\n\b\b\n\b\n\b\v ("E\r\t A\fj! A\fj!@@ (\0"Aj \0I\r\0 AF\r\0 AqE\r\0 \0  «€€€\0\v Aj! Aj! Aj"\r\0\f\n\v\v#€€€\0Aö‡€€\0jA3”€€€\0\0\v@ (\b"Aj \0I\r\0 AF\r\0 AqE\r\0 \0  A\bj«€€€\0\v (\f"Aj \0I\r AF\r AqE\r \0  A\fj«€€€\0\v ("Aj \0I\r AF\r AqE\r \0  Aj«€€€\0\v (\b"Aj \0I\r AF\r AqE\r \0  A\bj«€€€\0\v ("Aj \0I\r AF\r AqE\r \0  Aj«€€€\0\v (\b"E\r A\fj! A\fj!@@ (\0"Aj \0I\r\0 AF\r\0 AqE\r\0 \0  «€€€\0\v Aj! Aj! Aj"\r\0\f\v\v ("Aj \0I\r AF\r AqE\r \0  Aj«€€€\0\v A3M\r\v Aj(\0" AÿÿÿÿqA\0 A3K"M\r\0  k!  AtjA\bj"!@@ (\0"Aj \0I\r\0 AF\r\0 AqE\r\0 \0  «€€€\0\v Aj! Aj! Aj"\r\0\v\v\v#€€€\0A©ˆ€€\0jA*”€€€\0\0\vÿ~@ (\0Aj"(\0A!G\r\0  (6\0\v ¤€€€\0!@@@€€€€\0"­ At"­|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r Bÿÿ|Bˆ§"?\0"\bM\r\0  \bk@\0AF\r\v §‚€€€\0 Aj!@ E\r\0   ü\n\0\0\v  \0 Asj j"6 A!6\0  6\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v*\0 AjA|q! A \0 jA|j“€€€\0jA\bj"\0 \0 pk\vU AjA|q! A  jA|j“€€€\0jA\bj"  p"k!@  F\r\0    I"E\r\0  \0 ü\n\0\0\v \v\0#€€€\0Aӈ€€\0jA\v \0 ¯€€€\0\0\vÆ#€€€€\0A€k"$€€€€\0A\0! A\0A€ü\v\0 A\fq! Aq!@  j \0 j(\0\x006\0\0  Aj"G\r\0\v@ E\r\0  j! \0 j!\0A\0!@  \0 j-\0\0:\0\0 Aj!  Aj"G\r\0\v\v@@ Aq"\r\0 !\f\v !@  j -\0\0:\0\0 Aj! Aj! Aj"\r\0\v\v  j!  j!A\0!@  j"\0  j"-\0\0:\0\0 \0Aj Aj-\0\0:\0\0 \0Aj Aj-\0\0:\0\0 \0Aj Aj-\0\0:\0\0 Aj! Aj G\r\0\v   j‹€€€\0\0\vŸ –‚€€\0!@ A A\0³‚€€\0\r\0 \0A\bj! \0A(j!@@ \r\0@ (\0E\r@ \0($"A!I\r\0  \0(I\r\0 \0  A`j \0( €€€€\0€€€€\0A ! \0A 6$\v  j A€r:\0\0 \0 \0($Aj6$ –‚€€\0! A A\0³‚€€\0E\r\0\f\v\v@@ (\0\r\0 AÀ\0qE\r\v@ \0($"A!I\r\0  \0(I\r\0 \0  A`j \0( €€€€\0€€€€\0A ! \0A 6$\v  j A€r:\0\0 \0 \0($Aj6$ –‚€€\0! A A\0³‚€€\0\r\f\0\v\v@ \0($"A!I\r\0  \0(I\r\0 \0  A`j \0( €€€€\0€€€€\0A ! \0A 6$\v  j :\0\0 \0 \0($Aj6$\vŒ€€€\0\0\v#~ \0)\b" ­ ­"„€€€\0 \0  |7\b\v\0\0\v\0#€€€\0Aü“€€\0jA\r \0 ¯€€€\0\0\v´\t (\0\0! (\0!A\0!A\0!@@@@@@  O\r -\0\0!  Aj"\b6\0\0@ AG\r\0 AÿqAK\r\v Aÿ\0q t r! \b! Aj! ÀA\0H\r\0\v@@ E\r\0A\0!\t@A Aj AF"\n!A\0!A\0!\v@ \b O\r \b-\0\0!  \bAj"6\0\0@ AG\r\0 AÿqAK\r\b\v Aÿ\0q t \vr!\v !\b Aj! ÀAL\r\0\v \v \tI\r@ \n\r\0 \vAF\r\v \vAj!\tA\0!A\0!\v@  O\r -\0\0!  Aj"\b6\0\0@ AG\r\0 Aø\0qAjA÷\0I\r\b\v Aÿ\0q t \vr!\v Aj! \b! ÀAL\r\0\v@@ \vA\0A\0A t AÀ\0I AKr"AJ\r\0 AnK\r AhF\r \0 A€Fq\r\f\t\v  O\r\b\v \n\r \r\0\v\v\v#€€€\0Aǒ€€\0jA"®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\v\0\v#€€€\0A钀€\0jA®€€€\0\0\vŒ \0(\0\0! \0(\0!A\0!A\0!@@@  O\r -\0\0! \0 Aj"6\0\0@ AG\r\0 AÿqAK\r\v Aÿ\0q t r! ! Aj! ÀAL\r\0\v \v#€€€\0A™’€€\0jA®€€€\0\v\0\v§ \0(\0\0! \0(\0!A\0!A\0!@@@  O\r -\0\0! \0 Aj"6\0\0@ AG\r\0 Aø\0qAjA÷\0I\r\v Aÿ\0q t r! Aj! ! ÀAL\r\0\v A\0A\0A t AÀ\0I AKr\v#€€€\0A™’€€\0jA®€€€\0\v\0\vÎ,#€€€€\0Ak"\b$€€€€\0@@@@@@@@@@@ A\0H\r\0@@ A\0H\r\0 \0(\0\0  \0(\0\b j  \0(\0\fl   j"\tAvAüÿÿÿqj"\n \0(\0K\r \n(\0"\vA \tAtAq"\tt"\fq\r \n \v \fr6\0\v  Atj(\0!\v \b 6 \v O\rA\0!\fA\0!\n\f\v \v \tvAqE!\r\f\n\v AoI AhGq\r A\0N\r  G\rA!\r AnK AhFrE\r\f\t\v@ \v-\0\0!\t@ \nAG\r\0 \tAø\0qAjA÷\0I\r\v \tAÿ\0q \nt \fr!\f@ \tÀAJ\r\0 \nAj!\n \vAj"\v F\r\f\v\v \b \vAj6\0 \fA\0A\0A \nAj"\nt \tAÀ\0I \nAKr!\f\v#€€€\0A鈀€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v \b 6 \b 6\0 !\v@@@@@@@@ AJ\r\0 \b 6\f \b 6\b !\n\f\v  Atj(\0!\v \b 6\f \v O\rA\0!\fA\0!\n@ \v-\0\0!\t@ \nAG\r\0 \tAø\0qAjA÷\0I\r\t\v \tAÿ\0q \nt \fr!\f@ \tÀAJ\r\0 \nAj!\n \vAj"\v F\r\f\v\v \b \vAj6\b \fA\0A\0A \nAj"\nt \tAÀ\0I \nAKr!\n\v@ AF\r\0 \nAF\r\0A!\r \nApF\r\v@@@@ Aj\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v \nAj\r\v \nAj\r\f\f\f\f\f\f\f\f\f\f\f\f\f\r\f\v AmG\r\v \0      \b¶€€€\0 \bA\bj¶€€€\0·€€€\0\r\f\f\v\v AjG\r\n \bµ€€€\0! \bA\bjµ€€€\0! \b(\b! \b(\0!\t E\r As!A\0!@@@@@@ \t \b("O\r\0 Aj!A\0!\fA\0!\n \t!\v@ \v-\0\0!\t@ \nAG\r\0 \tAø\0qAjA÷\0I\r\v \tAÿ\0q \nt \fr!\f@ \tÀAJ\r\0 \nAj!\n \vAj"\v F\r\f\v\v \fA\0A\0A \nAj"\nt \tAÀ\0I \nAKr!@ \r\0@ AJ\r\0 AnK\r AhF\r\v  Atj(\0!\tA\0!\nA\0!@ \t O\r \t-\0\0!\f@ \nAG\r\0 \fAø\0qAjA÷\0I\r\v \tAj!\t \fAÿ\0q \nt r! \nAj!\n \fÀAL\r\0\vA\0! A\0A\0A \nt \fAÀ\0I \nAKrAnG\r\f\v  \b(\f"O\rA\0!\fA\0!\n@ -\0\0!\t@ \nAG\r\0 \tAø\0qAjA÷\0I\r\v \tAÿ\0q \nt \fr!\f@ \tÀAJ\r\0 \nAj!\n Aj" F\r\f\v\v \0      \fA\0A\0A \nAj"\nt \tAÀ\0I \nAKr ·€€€\0E\r Aj! Aj!\f\v#€€€\0A™’€€\0jA®€€€\0\0\vA\0! Aj\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v \vAj!\t  F\r\f\0\v\v#€€€\0A›“€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v AiG\r \bµ€€€\0! \bA\bjµ€€€\0! \b(\0!\n \b(\b!A!\rA\0!@@@@@@  F\r E\r\r@  \b(\f"O\r\0 Aj!A\0!A\0!\t@ -\0\0!\v@ \tAG\r\0 \vAÿqAK\r\r\v \vAÿ\0q \tt r!@ \vÀAJ\r\0 \tAj!\t Aj" F\r\f\v\v Aj" j"\v K\r \b \v6\bA\0!\tA\0!@ \v O\r \v-\0\0!\f \b \vAj"6\b@ \tAG\r\0 \fAø\0qAjA÷\0I\r\r\v \fAÿ\0q \tt r! \tAj!\t !\v \fÀAL\r\0\v A\0A\0A \tt \fAÀ\0I \tAKr! \b(!@ \n O\rA\0!A\0!\t@ \n-\0\0!\v@ \tAG\r\0 \vAÿqAK\r\v \vAÿ\0q \tt r!@ \vÀAJ\r\0 \tAj!\t \nAj"\n F\r\f\v\v \nAj" j"\t K\r \b \t6\0A\0!\vA\0!@ \t O\r\b \t-\0\0!\f \b \tAj"\n6\0@ \vAG\r\0 \fAø\0qAjA÷\0I\r\v \fAÿ\0q \vt r! \vAj!\v \n!\t \fÀAL\r\0\v Aj!@      I‚€€\0"\t  K  Ik \t"\tAJ\r\0 \r\v\v \t\r \0      A\0A\0A \vt \fAÀ\0I \vAKr ·€€€\0E\r\f\v\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\f\v AkG\r \bµ€€€\0! \bA\bjµ€€€\0! \b(\b!\n \b(\0!A!\rA\0!@@@@  F\r\v E\r\n@  \b("O\r\0 Aj!A\0!A\0!\t@ -\0\0!\v@ \tAG\r\0 \vAÿqAK\r\n\v \vAÿ\0q \tt r!@ \vÀA\0N\r\0 \tAj!\t Aj" F\r\f\v\v \b Aj"\v6\0A\0!\tA\0!@ \v O\r \v-\0\0!\f \b \vAj"6\0@ \tAG\r\0 \fAø\0qAjA÷\0I\r\n\v \fAÿ\0q \tt r! \tAj!\t !\v \fÀAL\r\0\v A\0A\0A \tt \fAÀ\0I \tAKr! \b(\f!@ \n O\rA\0!A\0!\t@ \n-\0\0!\v@ \tAG\r\0 \vAÿqAK\r\v\v \vAÿ\0q \tt r!@ \vÀA\0N\r\0 \tAj!\t \nAj"\n F\r\f\v\v \b \nAj"\v6\bA\0!\tA\0!@ \v O\r \v-\0\0!\f \b \vAj"\n6\b@ \tAG\r\0 \fAø\0qAjA÷\0I\r\v\v \fAÿ\0q \tt r! \tAj!\t \n!\v \fÀAL\r\0\v Aj!@  O\r\0 \r\v\v  G\r\v \0       A\0A\0A \tt \fAÀ\0I \tAKr·€€€\0E\r\v\f\v\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v AlG\r \bµ€€€\0! \bA\bjµ€€€\0"E\r \b(\b! \b(\0!\nA!A\0!A\0!A\0!@@@@@@@@@@  \b(\f"O\r\0 Aj!A\0!A\0!\t@ -\0\0!\v@ \tAG\r\0 \vAÿqAK\r\v \vAÿ\0q \tt r!@ \vÀA\0N\r\0 \tAj!\t Aj" F\r\f\v\v \b Aj"\v6\bA\0!\tA\0!@ \v O\r \v-\0\0!\f \b \vAj"6\b@ \tAG\r\0 \fAø\0qAjA÷\0I\r\v \fAÿ\0q \tt r! \tAj!\t !\v \fÀAL\r\0\v A\0A\0A \tt \fAÀ\0I \tAKr!@ \r\0@ AJ\r\0 AnK\r AhF\r\v  Atj(\0!\vA\0!\tA\0!@ \v O\r \v-\0\0!\f@ \tAG\r\0 \fAø\0qAjA÷\0I\r\v \vAj!\v \fAÿ\0q \tt r! \tAj!\t \fÀAL\r\0\vA\0! A\0A\0A \tt \fAÀ\0I \tAKrAnG\r\f\t\v AqE\r \b(!@ \n O\rA\0!A\0!\t@ \n-\0\0!\v@ \tAG\r\0 \vAÿqAK\r\v \vAÿ\0q \tt r!@ \vÀA\0N\r\0 \tAj!\t \nAj"\n F\r\f\v\v \b \nAj"\v6\0A\0!\tA\0!@ \v O\r \v-\0\0!\f \b \vAj"\n6\0@ \tAG\r\0 \fAø\0qAjA÷\0I\r\v \fAÿ\0q \tt r! \tAj!\t \n!\v \fÀAL\r\0\v Aj!  O\r \r\0\f\v\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\vA\0! Aj\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v A\0A\0A \tt \fAÀ\0I \tAKr!\v@  K\r\0 \0       ·€€€\0E\r\bA!\f\v@@@ AJ\r\0 AnK\r AhF\r\n\v  Atj(\0!\vA\0!\tA\0!@ \v O\r \v-\0\0!\f@ \tAG\r\0 \fAø\0qAjA÷\0I\r\b\v \vAj!\v \fAÿ\0q \tt r! \tAj!\t \fÀAL\r\0\vA\0! A\0A\0A \tt \fAÀ\0I \tAKrAnG\r\t\f\vA\0! Aj\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\v#€€€\0A™’€€\0jA®€€€\0\0\vA!\r  F\r\f\0\v\v \vAj!\t\v \b 6\b \b \t6\0@ E\r\0 \b(\f!@@@  O\r  k!\fA!\t !\n@ \n,\0\0!\v@ \t\r\0 \vAø\0qAjA÷\0I\r\v@ \vAJ\r\0 \nAj!\n \tAyj!\t \fAj"\fE\r\f\v\v \nAj! Aj"E\r\f\0\v\v#€€€\0A™’€€\0jA®€€€\0\0\v \nAj!\v \b 6\b \bµ€€€\0! \bA\bjµ€€€\0! \b(\0! \b(\b!\t@ E\r\0A\0!@@@@@@ \t \b(\f"O\r\0 Aj!A\0!\fA\0!\n \t!\v@ \v-\0\0!\t@ \nAG\r\0 \tAø\0qAjA÷\0I\r\t\v \tAÿ\0q \nt \fr!\f@ \tÀAJ\r\0 \nAj!\n \vAj"\v F\r\f\v\v \fA\0A\0A \nAj"\nt \tAÀ\0I \nAKr!@ \r\0@ AJ\r\0 AnK\r AhF\r\f\v  Atj(\0!\tA\0!\nA\0!@ \t O\r \t-\0\0!\f@ \nAG\r\0 \fAø\0qAjA÷\0I\r\n\v \tAj!\t \fAÿ\0q \nt r! \nAj!\n \fÀAL\r\0\vA\0! A\0A\0A \nt \fAÀ\0I \nAKrAnG\r\v\f\v  \b("O\rA\0!\fA\0!\n@ -\0\0!\t@ \nAG\r\0 \tAø\0qAjA÷\0I\r\t\v \tAÿ\0q \nt \fr!\f@ \tÀAJ\r\0 \nAj!\n Aj" F\r\f\v\v \0      \fA\0A\0A \nAj"\nt \tAÀ\0I \nAKr ·€€€\0E\r\n Aj! Aj!\f\v#€€€\0A™’€€\0jA®€€€\0\0\vA\0! Aj\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v \vAj!\t  G\r\0\v \vAj!\t\v \b 6\0 \b \t6\b E\r \b(!@@  O\r  k!\fA!\t !\n@ \n,\0\0!\v@ \t\r\0 \vAø\0qAjA÷\0I\r\v@ \vAJ\r\0 \nAj!\n \tAyj!\t \fAj"\fE\r\f\v\v \nAj! Aj"E\r\f\0\v\v#€€€\0A™’€€\0jA®€€€\0\0\v\0\v \nAj!\v \b 6\0A\0!A\0!A\0!A\0!\f@ \bµ€€€\0"\vE\r\0A\0!\fA\0 \b("\n \b(\0"\tk"  \nK!\nA\0!A\0!@@ \nE\r@@@@ \t-\0\0Aj\0\vA!\f\f\vA!\f\vA!\v \tAj!\t \nAj!\n \vAj"\v\r\0\f\v\v#€€€\0A™’€€\0jA®€€€\0\0\vA\0!A\0!@ \bA\bjµ€€€\0"\vE\r\0A\0!A\0 \b(\f"\n \b(\b"\tk"  \nK!\nA\0!A\0!@@ \nE\r@@@@ \t-\0\0Aj\0\vA!\f\vA!\f\vA!\v \tAj!\t \nAj!\n \vAj"\v\r\0\f\v\v#€€€\0A™’€€\0jA®€€€\0\0\vA!\r \f sAq\r\0  sAq\r\0  sAqE\r\vA\0!\r  rAL\r\0@ \0(\0\0  \0(\0\b j  \0(\0\fl   j"\tAvAüÿÿÿqj"\n \0(\0K\r\0 \n \n(\0A \tAtAqtr6\0\f\v#€€€\0A鈀€\0jA®€€€\0\0\v \bAj$€€€€\0 \r\v¶ \0(\0\0! \0(\0!A\0!A\0!@@@@  O\r -\0\0! \0 Aj"6\0\0@ AG\r\0 AÿqAK\r\v Aÿ\0q t r! ! Aj! ÀAL\r\0\v  j" K\r \0 6\0\0\v#€€€\0A™’€€\0jA®€€€\0\v\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€€\0Ak"$€€€€\0 \0(\0\0! \0(\0!A\0!A\0!@@@@@  O\r -\0\0! \0 Aj"6\0\0@ AG\r\0 AÿqAK\r\v Aÿ\0q t r! ! Aj! ÀAL\r\0\v  j" K\r \0 6\0\0 Aj  ö€€\0 (\r Aj$€€€€\0\v#€€€\0A™’€€\0jA®€€€\0\v\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A𖀀\0jA"”€€€\0\0\v¶@@@ \0Aj"(\0A%G\r\0@@@ (\b"Aj(\0"  jI\r\0 Aj! !\0\f\v  I\r  k! (\f"\0Aj!\v \0Aj(\0A%F\r\0\v\v@ Aj"(\0A%G\r\0@@@@ (\b"Aj(\0"  jI\r\0 Aj! !\f\v  I\r  k! (\f"Aj!\v Aj(\0A%F\r\0\v\v Aj!\v@ \0Aj"(\0A%G\r\0 (\b"    Aj(\0 k"º€€€\0"Aÿq\r  j! (\f!\0A\0!  k!\f\v@@ (\0A%F\r\0Aÿ!  jA\bj  jA\bj ‚€€\0"A\0N\r\f\v \0  (\b"  Aj(\0 k"º€€€\0"Aÿq\r  j! (\f!A\0!  k!\f\v\v A\0G\v \v½@@ \0(\b\r\0 \0–‚€€\0! \0A \0A\0³‚€€\0\r\0@ \r\0@ \0(\0E\r  A€r:\0\0 Aj! \0–‚€€\0! \0A \0A\0³‚€€\0E\r\0\f\v\v@@ \0(\0\r\0 AÀ\0qE\r\v  A€r:\0\0 Aj! \0–‚€€\0! \0A \0A\0³‚€€\0E\r\0\v\vŒ€€€\0\0\v  :\0\0\vM@ \0(" \0(\b"I\r\0@   k"  I"E\r\0 \0(\0 j  ü\n\0\0\v \0  j6\bA\0\v\0\vš#€€€€\0Ak"A\x006\f@@ A€I\r\0 A?qA€r! Av!@ A€O\r\0  :\0\r  AÀr:\0\fA!\f\v A\fv! A?qA€r!@ AÿÿK\r\0  :\0  :\0\r  Aàr:\0\fA!\f\v  :\0  :\0  A?qA€r:\0\r  AvApr:\0\fA!\f\v  :\0\fA!\v@ \0(" \0(\b"I\r\0@   k"  I"E\r\0 \0(\0 j A\fj ü\n\0\0\v \0  j6\bA\0\v\0\vw@@ AqE\r\0 \0(" \0(\b"I\r@ Av"  k"  I"E\r\0 \0(\0 j  ü\n\0\0\v \0  j6\bA\0\v \0#€€€\0Að쀀\0j  õ€€\0\v\0\v\n\0 \0à€€\0\v\f\0 \0 —€€€\0\v\f\0 \0 “€€€\0\v\0 \0  š€€€\0\vu\0@ \0A€€€€I\r\0#€€€\0A¸‡€€\0jA”€€€\0\0\vA \0A j“€€€\0"\0AjB\x007\0 \0AjB\x007\0 \0A\tjB\x007\0 \0A%jA 6\0 \0A!j#‚€€€\0A€€€€\0j6\0 \0Aj\vœ~@@@€€€€\0"­ \0At­|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r Bÿÿ|Bˆ§"\0?\0"M\r\0 \0 k@\0AF\r\v §‚€€€\0 \v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v\n\0 \0၀€\0\v\n\0 \0⁀€\0\v\f\0 \0 灀€\0\v#€€€€\0Ak"$€€€€\0 \0Aj \0Aj6\0 \0Aj!@@ \0A\rj(\0\r\0 ¯‚€€\0!\0\f\v B\x007\b B\x007\0@  Ÿ‚€€\0\r\0 €€\0\r\0 ¯‚€€\0!\0\f\vŒ€€€\0\0\v Aj$€€€€\0 \0Aj\vÇ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ AjŽ‚€€\0\r\0  )7\b  )7\0 \0Aj \0Aj6\0 \0Aj ¡‚€€\0\r\0@ (\f"\0E\r\0 \0Atj(\0 (F\r\v\0\vŒ€€€\0\0\v (\b! (\0! \0A|j \x006\0 \0Axj 6\0 \0Apj 6\0 A j$€€€€\0 \0Akj\vÙ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ AjŽ‚€€\0\r\0  )7\b  )7\0 \0Aj \0Aj6\0 Aj Aj6\0 \0Aj Aj ‚€€\0\r\0@ (\f"E\r\0 Atj(\0 (F\r\v\0\vŒ€€€\0\0\v (\b!\0 (\0! A|j 6\0 Axj \x006\0 Apj 6\0 A j$€€€€\0 Akj\v\0 \0Aj \0Aj6\0 \0Aj¯‚€€\0\vÛ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ AjŽ‚€€\0\r\0  )7\b  )7\0 \0Aj \0Aj6\0 Aj Aj6\0 \0Aj Aj A\0ž‚€€\0\r\0@ (\f"E\r\0 Atj(\0 (F\r\v\0\vŒ€€€\0\0\v (\b!\0 (\0! A|j 6\0 Axj \x006\0 Apj 6\0 A j$€€€€\0 Akj\v-\0 \0Aj \0Aj6\0 Aj Aj6\0 \0Aj Aj“‚€€\0E\v2\0 \0Aj \0Aj6\0 Aj Aj6\0 \0Aj Aj“‚€€\0AsAv\v/\0 \0Aj \0Aj6\0 Aj Aj6\0 \0Aj Aj“‚€€\0A\0J\v\0 \0Aj \0Aj6\0 \0A\rj(\0A\0G\v/\0 \0Aj \0Aj6\0 Aj Aj6\0 \0Aj Aj“‚€€\0AH\vß#€€€€\0A0k"$€€€€\0 B\x007( B\x007 @@@ A jŽ‚€€\0\r\0  )(7\b  ) 7\0 B\x007( B\x007 A jŽ‚€€\0\r\0  )(7  ) 7A\0!@ \0(\0\0" \0(\0O\r -\0\0! \0 Aj6\0\0 Aj Aÿ\0q”‚€€\0 Aj  Aj°‚€€\0\r  Aj ‚€€\0\r Aj! ÀAL\r\0\v@ (\f"\0E\r\0 \0Atj(\0 (F\r\v\0\vŒ€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v (\b! (\0! \0A|j \x006\0 \0Axj 6\0 \0Apj 6\0 A0j$€€€€\0 \0Akj\v€\t~#€€€€\0A k"$€€€€\0@@@@@ (\0\0 §Av"jAj" (\0K\r\0  6\0\0Bÿ\0! \0Bÿ\0ƒ!@ B\bT\r\0 Bx|"\bBˆB|"\tBƒ!@ \bBT\r\0 \tBüÿÿÿÿÿÿÿ?ƒ!\bBÿ\0!@ B†!\t \0Bˆ!\n B†!\v \0Bˆ!\f B†!\r \0Bˆ! \0Bˆ"\0 B†"ƒ  \rƒ \n \tƒ \f \vƒ „„„„! \bB||"\bB\0R\r\0\v P\r\v@ \0Bˆ"\0 B†"ƒ „! B|"B\0R\r\0\v\v AG\r@ B€€€€|B€€€€\bT\r\0 B\x007 B\x007 AjŽ‚€€\0\r  )7\b  )7\0  ˜‚€€\0 (\f"E\r Atj(\0 (G\r (\b! (\0! A|j 6\0 Axj 6\0 Apj 6\0 Akj!\f\v §€€€\0!\f\v#€€€\0A„’€€\0jA®€€€\0\0\v §€€€\0!\f\vŒ€€€\0\v\0\v A j$€€€€\0 \va#€€€€\0Ak"$€€€€\0 \0Aj \0Aj6\0 B\x007\b B\x007\0@  \0AjŸ‚€€\0\r\0  A\0»€€€\0 Aj$€€€€\0\vŒ€€€\0\0\v/\0 \0Aj \0Aj6\0@ \0Aj"\0(\0\r\0A\v \0¯‚€€\0AjAn\va#€€€€\0Ak"$€€€€\0 Aj Aj6\0 B\x007\b B\x007\0@  AjŸ‚€€\0\r\0 \0 A\0°€€€\0 Aj$€€€€\0\vŒ€€€\0\0\vÉ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ AjŽ‚€€\0\r\0  )7\b  )7\0 \0Aj \0Aj6\0 \0Aj  °‚€€\0\r\0@ (\f"\0E\r\0 \0Atj(\0 (F\r\v\0\vŒ€€€\0\0\v (\b! (\0! \0A|j \x006\0 \0Axj 6\0 \0Apj 6\0 A j$€€€€\0 \0Akj\v/\0 \0Aj \0Aj6\0 Aj Aj6\0 \0Aj Aj“‚€€\0Av\vÙ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ AjŽ‚€€\0\r\0  )7\b  )7\0 \0Aj \0Aj6\0 Aj Aj6\0 \0Aj Aj ’‚€€\0\r\0@ (\f"E\r\0 Atj(\0 (F\r\v\0\vŒ€€€\0\0\v (\b!\0 (\0! A|j 6\0 Axj \x006\0 Apj 6\0 A j$€€€€\0 Akj\vÇ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ AjŽ‚€€\0\r\0  )7\b  )7\0 \0Aj \0Aj6\0 \0Aj  ‚€€\0\r\0@ (\f"\0E\r\0 \0Atj(\0 (F\r\v\0\vŒ€€€\0\0\v (\b! (\0! \0A|j \x006\0 \0Axj 6\0 \0Apj 6\0 A j$€€€€\0 \0Akj\ví#€€€€\0A k"$€€€€\0@@@@ \0D\0\0\0\0\0\0ÐAcE\r\0 \0D\0\0@\0\0\0ÐÁd\r\v B\x007 B\x007 AjŽ‚€€\0\r  )7\b  )7\0  \0œ‚€€\0\r@ (\f"E\r\0 Atj(\0 (G\r\0 (\b! (\0! A|j 6\0 Axj 6\0 Apj 6\0 Akj!\f\v\0\v \0ü€€€\0!\v A j$€€€€\0 \vŒ€€€\0\0\vµ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ AjŽ‚€€\0\r\0  )7\b  )7\0  \0•‚€€\0@ (\f"\0E\r\0 \0Atj(\0 (F\r\v\0\vŒ€€€\0\0\v (\b! (\0! \0A|j \x006\0 \0Axj 6\0 \0Apj 6\0 A j$€€€€\0 \0Akj\vµ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ AjŽ‚€€\0\r\0  )7\b  )7\0  \0™‚€€\0@ (\f"E\r\0 Atj(\0 (F\r\v\0\vŒ€€€\0\0\v (\b! (\0! A|j 6\0 Axj 6\0 Apj 6\0 A j$€€€€\0 Akj\vµ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ AjŽ‚€€\0\r\0  )7\b  )7\0  \0”‚€€\0@ (\f"\0E\r\0 \0Atj(\0 (F\r\v\0\vŒ€€€\0\0\v (\b! (\0! \0A|j \x006\0 \0Axj 6\0 \0Apj 6\0 A j$€€€€\0 \0Akj\vµ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ AjŽ‚€€\0\r\0  )7\b  )7\0  \0˜‚€€\0@ (\f"E\r\0 Atj(\0 (F\r\v\0\vŒ€€€\0\0\v (\b! (\0! A|j 6\0 Axj 6\0 Apj 6\0 A j$€€€€\0 Akj\vü#€€€€\0A k"$€€€€\0 Aj Aj6\0@@ A\rj(\0\r\0 Aj"¯‚€€\0A!N\r\0 –‚€€\0! B\x007 B\x007 AjŽ‚€€\0\r\0  )7\b  )7\0 \0Aj \0Aj6\0 \0Aj  £‚€€\0\r\0@ (\f"E\r\0 Atj(\0 (F\r\v\0\vŒ€€€\0\0\v (\b!\0 (\0! A|j 6\0 Axj \x006\0 Apj 6\0 A j$€€€€\0 Akj\vÛ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ AjŽ‚€€\0\r\0  )7\b  )7\0 \0Aj \0Aj6\0 Aj Aj6\0 \0Aj AjA\0 ž‚€€\0\r\0@ (\f"E\r\0 Atj(\0 (F\r\v\0\vŒ€€€\0\0\v (\b!\0 (\0! A|j 6\0 Axj \x006\0 Apj 6\0 A j$€€€€\0 Akj\vË#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ AjŽ‚€€\0\r\0  )7\b  )7\0 \0Aj \0Aj6\0 \0Aj  A\0³‚€€\0\r\0@ (\f"\0E\r\0 \0Atj(\0 (F\r\v\0\vŒ€€€\0\0\v (\b! (\0! \0A|j \x006\0 \0Axj 6\0 \0Apj 6\0 A j$€€€€\0 \0Akj\vº#€€€€\0AÀ\0k"$€€€€\0 B\x0078 B\x0070@@@@ A0jŽ‚€€\0\r\0  )87\b  )07\0 B\x0078 B\x0070 A0jŽ‚€€\0\r\0  )87  )07A\0!@ \0(\0\0" \0(\0O\r -\0\0! \0 Aj6\0\0 Aj Aÿ\0q”‚€€\0 Aj  Aj°‚€€\0\r  Aj ‚€€\0\r Aj! ÀAL\r\0\v A?M\r B\x0078 B\x0070 A0jŽ‚€€\0\r\0  )87(  )07 A j ¢‚€€\0\r\0  A j ‘‚€€\0E\r\vŒ€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\f\v (\f"E\r\0 Atj(\0 (G\r\0 (\b!\0 (\0! A|j 6\0 Axj \x006\0 Apj 6\0 AÀ\0j$€€€€\0 Akj\v\0\v•\t~#€€€€\0A k"$€€€€\0@@@ (\0\0 §Av"Aj"j" (\0K\r\0  6\0\0Bÿ\0! \0Bÿ\0ƒ!\b@ B\bT\r\0 Bx|"\tBˆB|"\nBƒ!@ \tBT\r\0 \nBüÿÿÿÿÿÿÿ?ƒ!\tBÿ\0!@ B†!\n \0Bˆ!\v B†!\f \0Bˆ!\r B†! \0Bˆ! \0Bˆ"\0 B†"ƒ  ƒ \v \nƒ \r \fƒ \b„„„„!\b \tB||"\tB\0R\r\0\v P\r\v@ \0Bˆ"\0 B†"ƒ \b„!\b B|"B\0R\r\0\v\v@@ AG\r\0@ \bB!†B!‡ \bB†B‡"\0Q\r\0 B\x007 B\x007 AjŽ‚€€\0\r  )7\b  )7\0  \0™‚€€\0 (\f"E\r Atj(\0 (G\r (\b! (\0! A|j 6\0 Axj 6\0 Apj 6\0 Akj!\f\v \b§AtAu€€€\0!\f\v \b§ Al"t u€€€\0!\v A j$€€€€\0 \v#€€€\0A„’€€\0jA®€€€\0\0\vŒ€€€\0\v\0\v¢#€€€€\0A k"$€€€€\0 \0Aj \0Aj"6\0 B\x007\b B\x007\0@  \0Aj"Ÿ‚€€\0\r\0@@ (\b\r\0  A»€€€\0\f\v \0Aj"\0 6@@ \0(\f\r\0 ¯‚€€\0!\0\f\v B\x007 B\x007 Aj Ÿ‚€€\0\r Aj€€\0\r Aj¯‚€€\0!\0\v B\x007 B\x007 AjŽ‚€€\0\r Aj \0Aj"\0 \0Apk¢‚€€\0\r  Aj ‚€€\0\r  A\0»€€€\0\v A j$€€€€\0\vŒ€€€\0\0\v‘#€€€€\0Ak"$€€€€\0 \0Aj \0Aj6\0 \0Aj!@@@ \0A\rj(\0\r\0 ¯‚€€\0!\0\f\v B\x007\b B\x007\0  Ÿ‚€€\0\r €€\0\r ¯‚€€\0!\0\v Aj$€€€€\0 \0AjAn\vŒ€€€\0\0\v£#€€€€\0A0k"$€€€€\0 Aj Aj"6\0 B\x007\b B\x007\0@@  Aj"Ÿ‚€€\0\r\0@ (\b\r\0 \0 A°€€€\0\f\v B\x007 B\x007 AjŽ‚€€\0\r\0 Aj" 6@@ (\f\r\0 ¯‚€€\0!\f\v B\x007( B\x007 A j Ÿ‚€€\0\r A j€€\0\r A j¯‚€€\0!\v Aj Aj" Apk¢‚€€\0\r\0  Aj ‚€€\0\r\0 \0 A\0°€€€\0\f\vŒ€€€\0\0\v A0j$€€€€\0\vÙ#€€€€\0A k"$€€€€\0 B\x007 B\x007@@ AjŽ‚€€\0\r\0  )7\b  )7\0 \0Aj \0Aj6\0 Aj Aj6\0 \0Aj Aj ‘‚€€\0\r\0@ (\f"E\r\0 Atj(\0 (F\r\v\0\vŒ€€€\0\0\v (\b!\0 (\0! A|j 6\0 Axj \x006\0 Apj 6\0 A j$€€€€\0 Akj\v\0 \0Aj \0Aj6\0 \0Aj‚€€\0\v>\0 \0Aj \0Aj6\0@ \0A\rj(\0\r\0 \0Aj"\0¯‚€€\0A J\r\0 \0–‚€€\0\vŒ€€€\0\0\vK\0 \0Aj \0Aj6\0@ \0A\rj(\0\r\0 \0Aj"\0¯‚€€\0A J\r\0 \0–‚€€\0\v A\tj Aj(\0‹€€€\0\0\v\0 \0Aj \0Aj6\0 \0Aj–‚€€\0\v?\0 \0Aj \0Aj6\0@ \0A\rj(\0\r\0 \0Aj"\0¯‚€€\0AÀ\0J\r\0 \0š‚€€\0\vŒ€€€\0\0\vL\0 \0Aj \0Aj6\0@ \0A\rj(\0\r\0 \0Aj"\0¯‚€€\0AÀ\0J\r\0 \0š‚€€\0\v A\tj Aj(\0‹€€€\0\0\v\0 \0Aj \0Aj6\0 \0Ajš‚€€\0\v> \0A\tj A\tj Aj(\0" \0Aj(\0"\0  \0I‚€€\0" \0 K \0 Ik \v¡~@@@@€€€€\0"­"B|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r B€|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 A\tj" \x006\0 AjB‡€€€ 7\0@#€€€\0A„\0j(\0" M\r\0#€€€\0! \0AqE\r\0 \0Aj I\r\0 Aˆî€€\0j(\0 K\r\0#€€€\0Aøí€€\0j-\0\0E\r ’€€€\0\v A\rjA\x006\0 \v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\v\0\v\0 \0A\rj(\0Av \0A\tj(\0Aj(\0O\v/ \0A\rj" (\0"A~qAj6\0 \0A\tj(\0 AvjA\tj-\0\0\v±\n@@@ \0Aj"(\0AF\r\0 ("A€€€€O\r \0A “€€€\0"A\tjõ€€€\0 Aj!\vA ("AjAvAl“€€€\0"A\tj"! E\r A\bj!A\0!\bA\0!\0A\0! !@@@@ -\0\0"\tAú\0K\r\0@ \tASj\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v@ \tA¿jAÿqAI\r\0@ \tAà\0K\r\0 \tAijA\0 \tANjAÿqAI!\t\f\v \tA j!\t\f\v \tA@j!\t\f\v#€€€\0Aډ€€\0jA(”€€€\0\0\v \tAjAÿq"\tA O\r\0 At \tr! \0Aj!\t@ \0AO\r\0 \t!\0\f\v \t!\0@   \0Axj"\0v:\0\0 Aj! A \0tAsq! \0AK\r\0\v\v Aj! \bAj"\b G\r\0\f\v\v#€€€\0A鄀€\0jA”€€€\0\0\v@@ Aj"(AjAv"  k"\0AjAv"k"\tAG\r\0  AtjA16\0\f\v  F\r\0  Atj" \tA~j6 A36\0\v  \x006@@ \0AI\r\0A \0A|j"\0“€€€\0!@ \0E\r\0 A\tj A\fj \0ü\n\0\0\vA •€€€\0"Aj(\0"\tAjAnAl“€€€\0"\0Aj!\n \0A\tj"!@ \tE\r\0 AjA\bj!A\0! !A\0!\0@ "  \0j-\0\0"A r  A¿jAÿqAI:\0\0 Aj! Aj"Ao!\b@ \0Aj"\0 \tO\r\0 \b\r\0 A-:\0 Aj!A\0!\v \t \0G\r\0\v\v@@ \n(AjAv"  k"\0AjAv"k"AG\r\0  AtjA16\0\f\v  F\r\0  Atj" A~j6 A36\0\v \n \x006 A\bj  \0 (" \0 I‚€€\0!  \0G\r \r \v#€€€\0A¤€€€\0jA&”€€€\0\0\v#€€€\0A€€€€\0jA$”€€€\0\0\v¡A\0!@ !@@@ \0Aj"(\0AG\r\0@ ("E\r\0  \0A\tj ü\n\0\0\v E\r (\0! (\0\0!\0 !\f\v  (\b"\0Aj(\0j!@ (\f"Aj(\0A\bI\r\0  6\0  6\0\0 !\f\v  õ€€€\0\f\0\v\v\v\v]@ \0Aj(\0AG\r\0 \0\v@ \0Aj(\0"A€€€€O\r\0 \0A “€€€\0"A\tjõ€€€\0 \v#€€€\0A鄀€\0jA”€€€\0\0\v/\0@ \0Aßÿÿ\0qA¿jAO\r\0A\v@ \0AªO\r\0A\0\v \0û€€\0\v)\0@ \0AŸjAO\r\0A\v@ \0AªO\r\0A\0\v \0‚€€\0\v)\0@ \0A¿jAO\r\0A\v@ \0AÀO\r\0A\0\v \0‚‚€€\0\v±A!@ \0AwjAI\r\0 \0A F\r\0A\0! \0A…I\r\0A\0!@@@@@ \0A\bv"Ajj\0\v \0A€-F!\f\v \0A€à\0F!\f\v \r#ƒ€€€\0 \0Aÿqj-\0\0!\f\v#ƒ€€€\0 \0Aÿqj-\0\0AqAv!\v Aq!\v \v#€€€€\0A k"$€€€€\0 Aj \0ý€€\0 A\x006\0  )7\b  ("6 AAA (" 6@  r\r\0 †‚€€\0"\0A€€Ä\0G\r\0\0\v A j$€€€€\0 \0\v#€€€€\0A k"$€€€€\0 Aj \0þ€€\0 A\x006\0  )7\b  ("6 AAA (" 6@  r\r\0 †‚€€\0"\0A€€Ä\0G\r\0\0\v A j$€€€€\0 \0\v\b\0§€€€\0\vþ@@@@ \0Aj"(\0"\0AK\r\0A \0tA€€€ÐzqE\r\0@ ("\0\r\0A\0\v \0AG\rA\0!A!\0\f\v\0\v \0Aq! \0A~q!A\0!A!\0@#€€€\0A„Š€€\0j"  j"A\tj-\0\0  A\bj-\0\0 \0sAÿqAtj(\0 \0A\bvs"\0sAÿqAtj(\0 \0A\bvs!\0  Aj"G\r\0\v E\r\v#€€€\0A„Š€€\0j A\bj j-\0\0 \0sAÿqAtj(\0 \0A\bvs!\0\v \0As\v\0#€€€\0AÈ퀀\0j(\0\v&@#€€€\0AÌ퀀\0j(\0"\0\r\0A\0\v \0Aj(\0\v\b\0©€€€\0\v\n\0 \0ׁ€€\0\v\n\0 \0ځ€€\0\vˆ@@@@@@ -\0\0E\r\0@ \0(\0!A\0! \0(\0\0"!\bA\0!\t@ \b O\r \b-\0\0!\n \0 \bAj"\v6\0\0@ AG\r\0 \nAÿqAK\r\b\v \nAÿ\0q t \tr!\t \v!\b Aj! \nÀAL\r\0\v@ \t O\r\0A\0!\bA\0!\n@ \v O\r \v-\0\0! \0 \vAj"\v6\0\0@ \bAG\r\0 Aø\0qAjA÷\0I\r\t\v Aÿ\0q \bt \nr!\n \bAj!\b \v!\v ÀAL\r\0\vA\0!\t   \nA\0A\0A \bt AÀ\0I \bAKrA\0…€€\0  -\0\0Aj"\v:\0\0 \vAÿq\r\f\v\v  \tF\r \0 6\0\0\vA\0!\t\v \t\v  -\0\0Aj:\0\0A\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\v\0\vŠ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Aä\0J\r\0ABŽ€€€\0@@@@@@@@@@@@@@@@@@ A\0H\r\0 Aj!@  Atj(\0! \0(\0!A\0!A\0!@  O\r -\0\0!\b@ AG\r\0 \bAø\0qAjA÷\0I\rB\v Aj! \bAÿ\0q t r! Aj! \bÀAL\r\0\v@@@@@@@@@ A\0A\0A t \bAÀ\0I AKrAj\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v \0(\0\0!A\0!\bA\0!@  O\r -\0\0! \0 Aj"6\0\0@ \bAG\r\0 AÿqAK\rJ\v Aÿ\0q \bt r! ! \bAj!\b ÀA\0H\r\0\vA\0!A\0!@  O\r -\0\0!\b \0 Aj"6\0\0@ AG\r\0 \bAÿqAK\rJ\v \bAÿ\0q t r! ! Aj! \bÀAL\r\0\v  j" K\r \0 6\0\0 E\rJ#€€€\0A€–€€\0jA®€€€\0\0\vA\0!A\0!@  O\r -\0\0!\b@ AG\r\0 \bAø\0qAjA÷\0I\rI\v Aj! \bAÿ\0q t r! Aj! \bÀAL\r\0\v \0(\0\0" O\r -\0\0! \0 Aj6\0\0 AO\r! E\rI A\0A\0A t \bAÀ\0I AKr!\f\vA\0!A\0!@  O\r" -\0\0!@ AG\r\0 Aø\0qAjA÷\0I\rH\v Aj! Aÿ\0q t r! Aj! ÀAL\r\0\vA\0!\b A\0A\0A t AÀ\0I AKr! \0(\0\0!A\0!@  O\r# -\0\0! \0 Aj"6\0\0@ \bAG\r\0 AÿqAK\rH\v Aÿ\0q \bt r! ! \bAj!\b ÀAL\r\0\v E\rHA\0 ­Ž€€€\0 \0(\0\0! \0  A\0…€€\0  \0(\0\0F\r\r AF\rH Aj!@ \0  A\0…€€\0 Aj"\r\0\fI\v\vA\0!A\0!\t@  O\r# -\0\0!\b@ AG\r\0 \bAÿqAK\rG\v Aj! \bAÿ\0q t \tr!\t Aj! \bÀA\0H\r\0\v \tE\rGA\0!\n@  O\r- ,\0\0! Aj"\b! A\0H\r\0A\0! \b!A\0!@  O\r/ -\0\0!\b@ AG\r\0 \bAø\0qAjA÷\0I\rH\v Aj! \bAÿ\0q t r! Aj! \bÀAL\r\0\v A\0A\0A t \bAÀ\0I AKr" F\r\b \0   …€€\0 \nAj"\n \tG\r\0\fH\v\vA\0!A\0!@  O\r# -\0\0!\b@ AG\r\0 \bAÿqAK\rF\v Aj! \bAÿ\0q t r! Aj! \bÀAL\r\0\v \0(\0\0!A\0!\bA\0!@  O\r$ -\0\0! \0 Aj"6\0\0@ \bAG\r\0 AÿqAK\rF\v Aÿ\0q \bt r! ! \bAj!\b ÀAL\r\0\v  O\r@ E\r\0A\0!@ Aj!@  O\r2 ,\0\0!\b Aj"! \bA\0H\r\0\v@  O\r3 ,\0\0!\b Aj"! \bAL\r\0\v  G\r\0\v\v@  O\r. ,\0\0!\b Aj"! \bA\0H\r\0\vA\0!A\0!@  O\r/ -\0\0!\b@ AG\r\0 \bAø\0qAjA÷\0I\rF\v Aj! \bAÿ\0q t r! Aj! \bÀAL\r\0\v A\0A\0A t \bAÀ\0I AKr!\f\v \0(\0\0" O\r# -\0\0! \0 Aj"\b6\0\0 AO\r$ \r#€€€\0A€–€€\0jA®€€€\0\0\v \0(\0\0" O\r$ -\0\0! \0 Aj"6\0\0 AO\r% E\rA\0!A\0!@  O\r5 -\0\0!\b \0 Aj"6\0\0@ AG\r\0 \bAÿqAK\rD\v \bAÿ\0q t r! ! Aj! \bÀAL\r\0\v  j" K\r5 \0 6\0\0\vA\0!A\0!@  O\r& -\0\0!\b@ AG\r\0 \bAø\0qAjA÷\0I\rC\v Aj! \bAÿ\0q t r! Aj! \bÀAL\r\0\v \0(\0\0" O\r& -\0\0! \0 Aj6\0\0 AO\r\' \r A\tj" K\r5 A\0A\0A t \bAÀ\0I AKr! \0 6\0\0\vA!ABŽ€€€\0 A\0N\r\0\v\v A€j€@\r\f\v\f\v\n\t\f\v\n\t\b\b@\v#€€€\0AǕ€€\0jA®€€€\0\0\v#€€€\0Aᕀ€\0jA®€€€\0\0\v \b O\r( -\0! \0 Aj"6\0\0 AO\r) E\r*A\0!A\0!@  O\r, -\0\0!\b \0 Aj"6\0\0@ AG\r\0 \bAÿqAK\r=\v \bAÿ\0q t r! ! Aj! \bÀAL\r\0\v  j" K\r, \0 6\0\0 \0¹€€€\0\v#€€€\0A€–€€\0jA®€€€\0\0\v Aj" K\r. \0 6\0\0\vA Aj­Ž€€€\0\f:\v#€€€\0A¸–€€\0jA®€€€\0\0\v \0(\0\0" \0(\0O\r, -\0\0! \0 Aj6\0\0 AI\r8#€€€\0Aþ’€€\0jA®€€€\0\0\v \0(\0\0! \0(\0!@  O\r- ,\0\0! \0 Aj"6\0\0 ! AJ\r8\f\0\v\v \0(\0\0Aj" \0(\0K\r, \0 6\0\0\v \0(\0\0Aj" \0(\0K\r, \0 6\0\0\v \0(\0\0Aj" \0(\0K\r, \0 6\0\0\v \0(\0\0A\bj" \0(\0K\r, \0 6\0\0\v \0¹€€€\0\v#€€€\0A–€€\0jA®€€€\0\0\v \0(\0\0" \0(\0O\r* -\0\0! \0 Aj6\0\0 AO\r+ E\r0 \0¸€€€\0\v \0(\0\0A\fj" \0(\0"K\r+ \0 6\0\0A\0!A\0!\b@  O\r- -\0\0! \0 Aj"6\0\0@ AG\r\0 AÿqAK\r/\v Aÿ\0q t \br!\b ! Aj! ÀAL\r\0\v  \bj" K\r. \0 6\0\0\v#€€€\0AΖ€€\0jA"®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0Aþ’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0Aþ’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0Aþ’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0Aþ’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0Aþ’€€\0jA®€€€\0\0\v#€€€\0A€–€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0Aþ’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\v\0\v#€€€\0A„’€€\0jA®€€€\0\0\v\vñ~#€€€€\0A k"$€€€€\0  \x009\bB€€€€À\f Av­B † Aÿÿÿ§K!@@@@@@ Av\0\v AÔjA\0AÀü\v\0 BÀ7˜  AÔj6”  7 #„€€€\0­B † A\bj­„7 A”j#€€€\0"Að쀀\0j Aˆ…€€\0j Ajõ€€\0 Aj AÔjAÀü\n\0\0\f\v AÔjA\0AÀü\v\0 BÀ7˜  AÔj6”  7 #…€€€\0­B † A\bj­„7 A”j#€€€\0"Að쀀\0j Aˆ…€€\0j Ajõ€€\0 Aj AÔjAÀü\n\0\0\f\v AÔjA\0AÀü\v\0 BÀ7˜  AÔj6”  7 #„€€€\0­B † A\bj­„7 A”j#€€€\0"Að쀀\0j Aˆ…€€\0j Ajõ€€\0 Aj AÔjAÀü\n\0\0\f\v\0\v AÔjA\0AÀü\v\0 BÀ7˜#„€€€\0!  AÔj6”  ­B † A\bj­„7 A”j#€€€\0"Að쀀\0j A…€€\0j Ajõ€€\0 Aj AÔjAÀü\n\0\0\vA\0!A!@@@ Aj "j"A~j-\0\0E\r@ Aj-\0\0E\r\0@ AÀG\r\0 Aj!\f\v Aj! Aj! -\0\0\r\f\v\v Aj!\f\v A~j!\vA “€€€\0!@ E\r\0 A\tj Aj ü\n\0\0\v A j$€€€€\0 \v\f\0 \0 ぀€\0\v\f\0 \0 䁀€\0\v+#€€€€\0Ak"\0$€€€€\0 \0Aj¢€€€\0 \0Aj$€€€€\0\v\0€€€€\0‰€€€\0AjA`qkAj\v\0#€€€\0A¨î€€\0j(\0\v\0#€€€\0A°î€€\0j)\0\v8#€€€\0!\0€€€€\0!‰€€€\0! \0A°î€€\0j)\0  AjA`qkAj­|\vl#€€€€\0Ak"\t$€€€€\0 \t 6\b \t 6\f \t \x006\0 \t \0  lAtAjAvAüÿÿÿqj6 \tA      \b·€€€\0! \tAj$€€€€\0 \v(\0@  lAtAjAvAüÿÿÿq"E\r\0 \0A\0 ü\v\0\v\v\0 \0 lAtAjAv\v‰ \0Aj" 6\0 \0A\rj 6\0 \0Aj 7\0@@#€€€\0A„\0j(\0"\0 M\r\0#€€€\0! AqE\r\0 Aj \0I\r\0 Aˆî€€\0j(\0 K\r\0#€€€\0Aøí€€\0j-\0\0E\r ’€€€\0\v\v\0\v-#€€€\0A¤î€€\0j‰€€€\0AjA`q"\x006\0 \0Aj‚€€€\0\v3#€€€\0A¤î€€\0j‰€€€\0AjA`q"\x006\0 \0Aj‚€€€\0¦€€€\0\v \0(\0\0! \0(\0!A\0!A\0!@@@  O\r -\0\0! \0 Aj"6\0\0@ AG\r\0 AÿqAK\r\v Aÿ\0q t r! ! Aj! ÀA\0H\r\0\v \v\0\v#€€€\0A™’€€\0jA®€€€\0\0\v>@ \0Av"E\r\0@  \0A€r:\0\0 Aj! !\0 Av"! \r\0\v\v  \0:\0\0\v¤~~|@@@@ \0½"B€€€€€€€\bS\r\0 Bÿÿÿÿÿÿÿ÷ÿ\0V\rAx!@ B ˆ"B€€ÀÿQ\r\0 §!\f\vA€€Àÿ! §\rD\0\0\0\0\0\0\0\0\v@ \0D\0\0\0\0\0\0\0\0b\r\0D\0\0\0\0\0\0ð¿ \0 \0¢£\v B\0S\r \0D\0\0\0\0\0\0PC¢½"B ˆ§!AËw!\v Aâ¾%j"Av j·"D\0\0àþB.æ?¢ Aÿÿ?qAžÁšÿj­B † Bÿÿÿÿƒ„¿D\0\0\0\0\0\0ð¿ "\0 DvßñÂ?¢DÞ˖dFÇ? ¢DY“"”$IÒ? ¢D“UUUUUå? ¢  ¢  ¡  \v \0 \0¡D\0\0\0\0\0\0\0\0£!\0\v \0\vK\0@ \0A€€€€K\r\0  \0l"–€€€\0!\0@ Aj"AI\r\0 A|q"E\r\0 \0A\0 ü\v\0\v \0\vŒ€€€\0\0\v\0\vF@@  \0Atj(\0At"K\r\0  F\r\0\v –€€€\0!@ E\r\0  \0 ü\n\0\0\v !\0\v \0\vÌ"\r#€€€€\0Ak"$€€€€\0@@@@@@@@@ (\0\0" (\0"\bF\r\0@ Aj"\t \bK\r\0 (\0\0!  \t6\0\0 AĒ‘âG\rA\0!A\0!\n@ \t \bO\r \t-\0\0!\v  \tAj"\f6\0\0@ AG\r\0 \vAÿqAK\r\t\v \vAÿ\0q t \nr!\n \f!\t Aj! \vÀAL\r\0\v \f \nj \bO\r  \n6\0A \nAt“€€€\0!\t \0\r (\0\0 j" (\0"\bO\r  6\0\f\v#€€€\0A°’€€\0jA®€€€\0\0\v#€€€\0Aüƒ€€\0jAÒ\0®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A郀€\0jA®€€€\0\0\v#€€€\0Aۃ€€\0jA®€€€\0\0\v (\0!\b\v \tA\tj!\r@@ \nE\r\0A\0!@ \r Atj (\0\x006\0 Aj! (\0\0!\f (\0!A\0!\tA\0!@@@@@@@ \f O\r \f-\0\0!  \fAj"\v6\0\0@ \tAG\r\0 Aø\0qAjA÷\0I\r\v\v Aÿ\0q \tt r! \tAj!\t \v!\f ÀAL\r\0\v A\0A\0A \tt AÀ\0I \tAKr!\t@@ \0E\r\0 \tAG\r\0A\0!\tA\0!@ \v O\r \v-\0\0!\f  \vAj"\v6\0\0@ \tAG\r\0 \fAø\0qAjA÷\0I\r\r\v \fAÿ\0q \tt r! \tAj!\t \v!\v \fÀAL\r\0\v@ A\0A\0A \tt \fAÀ\0I \tAKr"\tAJ\r\0 \tAnK\r\b \tA€F\r\b \tAhF\r\b\f\v \t \nO\r\r\f\v@ \tAJ\r\0@@@@@@@@@@@ \tAnK\r\0 \tAhF\r\0 \0E\r@ \tAj\0\v \tA€G\r\v#€€€\0A­ƒ€€\0jA®€€€\0\0\v \tAj\0\f\vA\0!\tA\0!@ \v O\r\b \v-\0\0!\f  \vAj"\v6\0\0@ \tAG\r\0 \fAø\0qAjA÷\0I\r\v \fAÿ\0q \tt r! \tAj!\t \v!\v \fÀAL\r\0\v@@ A\0A\0A \tt \fAÀ\0I \tAKr"\tAJ\r\0 \tAnK\r \tAhF\r \0 \tA€Fq\r\f\v \t \nI\r\v#€€€\0A钀€\0jA®€€€\0\0\vA\0!\tA\0!@ \v O\r \v-\0\0!\f  \vAj"\v6\0\0@ \tAG\r\0 \fAø\0qAjA÷\0I\r\v \fAÿ\0q \tt r! \tAj!\t \v!\v \fÀAL\r\0\v@@ A\0A\0A \tt \fAÀ\0I \tAKr"\tAJ\r\0 \tAnK\r \tAhF\r \0 \tA€Fq\r\f\v \t \nI\r\v#€€€\0A钀€\0jA®€€€\0\0\v \0  \n´€€€\0\f\r\vA\0!\tA\0!@ \v O\r \v-\0\0!\f  \vAj"6\0\0@ \tAG\r\0 \fAÿqAK\r\v \fAÿ\0q \tt r! !\v \tAj!\t \fÀA\0H\r\0\v@ E\r\0A\0!@ Aj! !\vA\0!\tA\0!@ \v O\r \v-\0\0!\f  \vAj"6\0\0@ \tAG\r\0 \fAø\0qAjA÷\0I\r\v \fAÿ\0q \tt r! \tAj!\t !\v \fÀAL\r\0\v@@ A\0A\0A \tt \fAÀ\0I \tAKr"\tAJ\r\0 \tAnK\r \tAhF\r \0 \tA€Fq\r\f\v \t \nO\r\v  G\r\0\v\vA\0!\tA\0!\f\n\vA\0!\fA\0!@@ \v O\r \v-\0\0!  \vAj"\t6\0\0@ \fAG\r\0 AÿqAK\r\v Aÿ\0q \ft r! \t!\v \fAj!\f ÀA\0H\r\0\v E\r\fA\0!A\0!A\0!@ ! ! Aj!A\0!\vA\0!@@@@@ \t O\r \t-\0\0!\f  \tAj"6\0\0@ \vAG\r\0 \fAÿqAK\r\v \fAÿ\0q \vt r! !\t \vAj!\v \fÀAL\r\0\v  j"\t K\r  \t6\0\0 Aj  ö€€\0 (\r E\r@      I‚€€\0"\tA\0J\r\0  I\r \t\r\v#€€€\0AŒƒ€€\0jA!®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A𖀀\0jA"”€€€\0\0\v (\0\0!\f (\0!A\0!\vA\0!@@ \f O\r \f-\0\0!  \fAj"\t6\0\0@ \vAG\r\0 Aø\0qAjA÷\0I\r\v Aÿ\0q \vt r! \vAj!\v \t!\f ÀAL\r\0\v@@ A\0A\0A \vt AÀ\0I \vAKr"\vAJ\r\0 \vAnK\r \vAhF\r \0 \vA€Fq\r\f\r\v \v \nO\r\f\v  F\r\f\v\v#€€€\0A™’€€\0jA®€€€\0\f\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0AɃ€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\vA\0!\tA\0!@@@ \v O\r \v-\0\0!\f  \vAj"6\0\0@ \tAG\r\0 \fAÿqAK\r\v\v \fAÿ\0q \tt r! !\v \tAj!\t \fÀAL\r\0\v  j"\t K\r  \t6\0\0\f\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A钀€\0jA®€€€\0\0\v@@@@@  O\r -\0\0!\v  Aj"6\0\0@ \tAG\r\0 \vAÿqAK\r\v\v \vAÿ\0q \tt r! ! \tAj!\t \vÀA\0H\r\0\v@ E\r\0A\0!@ Aj! !\vA\0!\tA\0!@ \v O\r \v-\0\0!\f  \vAj"6\0\0@ \tAG\r\0 \fAø\0qAjA÷\0I\r\r\v \fAÿ\0q \tt r! \tAj!\t !\v \fÀAL\r\0\v@@ A\0A\0A \tt \fAÀ\0I \tAKr"\tAJ\r\0 \tAnK\r \tAhF\r \0 \tA€Fq\r\f\v \t \nO\r\v  G\r\0\v\vA\0!\tA\0!\f\f\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v@@@  O\r -\0\0!\v  Aj"6\0\0@ \tAG\r\0 \vAÿqAK\r\n\v \vAÿ\0q \tt \fr!\f ! \tAj!\t \vÀA\0H\r\0\vA\0!\t@ \f \tF\r  \tj"\v O\r \v-\0\0!  \vAj6\0\0 \tAj!\t AjAÿqAI\r\0\v#€€€\0A킀€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A钀€\0jA®€€€\0\0\v#€€€\0A钀€\0jA®€€€\0\0\v  \nG\r\0\v  \b6\0A\0!@@@@@ "\tAj! \r \tAtj(\0!\tA\0!A\0!\f@@@@@ \t \bO\r \t-\0\0!\v@ AG\r\0 \vAø\0qAjA÷\0I\r\r\v \tAj!\t \vAÿ\0q t \fr!\f Aj! \vÀAL\r\0\v \fA\0A\0A t \vAÀ\0I AKrAiG\rA\0!A\0!@ \t \bO\r \t-\0\0!\v@ AG\r\0 \vAÿqAK\r\r\v \tAj!\t \vAÿ\0q t r! Aj! \vÀA\0H\r\0\vA\0!@  F\r Aj!A\0!A\0!\f@ \t \bO\r \t-\0\0!\v@ AG\r\0 \vAÿqAK\r\v \tAj!\t \vAÿ\0q t \fr!\f Aj! \vÀAL\r\0\v \t \fj"\t \bK\rA\0!A\0!\f@ \t \bO\r\b \t-\0\0!\v@ AG\r\0 \vAø\0qAjA÷\0I\r\v \tAj!\t \vAÿ\0q t \fr!\f Aj! \vÀAL\r\0\v \fA\0A\0A t \vAÀ\0I AKr"A\0H\r\b  \nO\r\b \r Atj(\0!\vA\0!A\0!@ \v \bO\r\n \v-\0\0!\f@ AG\r\0 \fAø\0qAjA÷\0I\r\v \vAj!\v \fAÿ\0q t r! Aj! \fÀAL\r\0\v A\0A\0A t \fAÀ\0I AKrAjF\r\0\v#€€€\0Aǂ€€\0jA&®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v  \nF\r\f\v\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A„’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0Až‚€€\0jA)®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v  \b6\0\v  (\0\x006\0 (\0\0!\t (\0!A\0!A\0!@@@ \t O\r \t-\0\0!\v  \tAj"\f6\0\0@ AG\r\0 \vAÿqAK\r\v \vAÿ\0q t r! \f!\t Aj! \vÀA\0H\r\0\v@ E\r\0A\0!@ Aj! \f!A\0!\tA\0!\b@  O\r -\0\0!\v  Aj"\f6\0\0@ \tAG\r\0 \vAø\0qAjA÷\0I\r\v \vAÿ\0q \tt \br!\b \tAj!\t \f! \vÀAL\r\0\v@@ \bA\0A\0A \tt \vAÀ\0I \tAKr"\tAJ\r\0 \tAnK\r \tAhF\r \0 \tA€Fq\r\f\v \t \nO\r\v  G\r\0\v\v  \r6\0 Aj$€€€€\0\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\0\v\0\v#€€€\0A钀€\0jA®€€€\0\0\v#€€€\0A钀€\0jA®€€€\0\0\vš@@@#€€€\0AÌ퀀\0j(\0"E\r\0 \0 Aj(\0O\r Aj \0AtjA\bj(\0"\0AF\r \0AqE\r \0Aj(\0\v#€€€\0A›”€€\0jA:”€€€\0\0\v#€€€\0AŽ•€€\0jA9”€€€\0\0\v#€€€\0AՔ€€\0jA9”€€€\0\0\vp@@ \0#€€€\0A„\0j(\0"O\r\0 \0(\0!#€€€\0! AqE\r\0 Aj I\r\0 \0 Aˆî€€\0j(\0I\r\0#€€€\0Aøí€€\0j-\0\0E\r \0’€€€\0\v\v\0\v\f\0 \0 ܁€€\0\v\f\0 \0 偀€\0\v \tA \0•€€€\0"\0Aj(\0"AjAnAl“€€€\0"Aj! A\tj"!@ E\r\0 \0AjA\bj!A\0! !A\0!\0@ "\b  \0j-\0\0"A r  A¿jAÿqAI:\0\0 \bAj! Aj"Ao!\t@ \0Aj"\0 O\r\0 \t\r\0 \bA-:\0 \bAj!A\0!\v  \0G\r\0\v\v@@ (AjAv"  k"\bAjAv"\0k"AG\r\0  \0AtjA16\0\f\v  \0F\r\0  \0Atj"\0 A~j6 \0A36\0\v Aj \b6\0 \vÑ@@@#€€€\0AÌ퀀\0j(\0"E\r\0 \0 Aj(\0O\r Aj \0AtjA\bj"(\0! #€€€\0"AÐ퀀\0j"(\0At6\0  \x006\0 AÈ퀀\0j"\0 \0(\0Aj6\0 AF\r AqE\r \v#€€€\0Aʀ€€\0jA5”€€€\0\0\v#€€€\0A³€€\0jA4”€€€\0\0\v#€€€\0Aÿ€€€\0jA4”€€€\0\0\v\0#€€€\0Aà퀀\0j(\0\vè\t~~~~#€€€€\0Ak"$€€€€\0B!@@ A€€€ \0A\rj(\0"k­V\r\0 A\x006\b A\bj­"BBƒ€€€\0 (\b!#€€€\0!†€€€\0!\b@ AØí€€\0j)\0Bˆ ­ Aÿ\0j" §"\tjAv"\n Av"k­|"B†|"\v \bX\r\0B! \v \b}‡€€€\0BQ\r\v  >\bB B„€€€\0 \0Aj"\f \f(\f \tj"\x006\f@ E\r\0 \f( Aj"\tAÿÿq"\rAtjA\tj3\0!  \fAj)\0B|7\b B\v~"B"| B\b„€€€\0  \t;\b B*| B„€€€\0  \0 \nAj"\tAtkA€ \t \rF:\0\b B,| B„€€€\0\vA \nAt“€€€\0!@ At"\0E\r\0 A\tj \f(A\tj \0ü\n\0\0\v \fAj! Aj!@ \n M\r\0 \nAj"\rAt! At jA\bj!\0 \fAj!@ \f(\f!\t  )\0B|7\b AÿÿqA\vl­"B"| B\b„€€€\0  ;\b B*| B„€€€\0  \t kA€ \r AÿÿqF:\0\b B,| B„€€€\0 \0 ;\0 Aj! \0Aj!\0 \n Aj"G\r\0\v\v  6\0@#€€€\0A„\0j(\0" M\r\0#€€€\0! AqE\r\0  I\r\0 Aˆî€€\0j(\0 K\r\0#€€€\0Aøí€€\0j-\0\0E\r ’€€€\0\v ­!\v Aj$€€€€\0 \v\0\v\n\0 \0Aj)\0\v¦~#€€€€\0Ak"$€€€€\0…€€€\0!†€€€\0!@@@@@@@@@ \0\v BX\r B\x007\0 ­B\0B\bƒ€€€\0 )\0B͞ɪô¨Ò§Î\0R\r A\x006\b A\bj­"B\bBƒ€€€\0 (\bAK\r A\0;\b B\fBƒ€€€\0 /\bA€G\r B\x007\b BB\bƒ€€€\0 )\b"B¢€T\r#€€€\0"AØí€€\0j 7\0 Aà퀀\0jœ€€€\x006\0 B\x007\b BB\bƒ€€€\0 )\bBV\r\f\v PE\r \0E\rž€€€\0\f\v P\r \0E\r\0 €€€\0\v Aj$€€€€\0\v#€€€\0AÀ†€€\0jA#€€€\0\0\v#€€€\0A“†€€\0jA-€€€\0\0\v#€€€\0Aꅀ€\0jA)€€€\0\0\v#€€€\0Aʅ€€\0jA €€€\0\0\v\0\vyA “€€€\0"Aj!@@ AÿÿÿÿI\r\0 Av"AÿÿÿÿF\r \0  A\bj" ˜€€€\0 \0  ­|  j  k˜€€€\0 \v \0  A\bj ˜€€€\0 \v\0\vC|#€€€€\0Ak"$€€€€\0 B\x007\b \0  A\bjA\b˜€€€\0 +\b! Aj$€€€€\0 \vA#€€€€\0Ak"$€€€€\0 A\0; \0  AjA˜€€€\0 /!\0 Aj$€€€€\0 \0\vA#€€€€\0Ak"$€€€€\0 A\x006\f \0  A\fjA˜€€€\0 (\f!\0 Aj$€€€€\0 \0\vA#€€€€\0Ak"$€€€€\0 B\x007\b \0  A\bjA\b˜€€€\0 )\b! Aj$€€€€\0 \vA#€€€€\0Ak"$€€€€\0 A\0:\0 \0  AjA˜€€€\0 -\0!\0 Aj$€€€€\0 \0\vÙ~~#€€€€\0Ak"\0$€€€€\0@@@@@…€€€\0\0\v†€€€\0P\r\v\0\v €€€\0\f\vž€€€\0\v \0B\x007\b \0A\bj­"BB\bƒ€€€\0@@@ \0)\b"B~Q\r\0 \0 B|7\bB B\b„€€€\0@€€€€\0"­"B\b|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r B‡€|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 AjB7\0 A\0 š€€€\0! \0Aj$€€€€\0 \v#€€€\0A’…€€\0jA€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v\n\0 \0A\rj(\0\v\n\0 \0A\rj5\0\vk A\tj!@@ Aj(\0"AÿÿÿÿI\r\0 Av"AÿÿÿÿF\r \0   ›€€€\0 \0  ­|  j  k›€€€\0\v \0   ›€€€\0\v\0\v8#€€€€\0Ak"$€€€€\0  9\b \0  A\bjA\b›€€€\0 Aj$€€€€\0\v8#€€€€\0Ak"$€€€€\0  ; \0  AjA›€€€\0 Aj$€€€€\0\v8#€€€€\0Ak"$€€€€\0  6\f \0  A\fjA›€€€\0 Aj$€€€€\0\v8#€€€€\0Ak"$€€€€\0  7\b \0  A\bjA\b›€€€\0 Aj$€€€€\0\v8#€€€€\0Ak"$€€€€\0  :\0 \0  AjA›€€€\0 Aj$€€€€\0\v\n\0 \0Aj(\0\vÁ~@@@@@#€€€\0AÌ퀀\0j(\0"\r\0@€€€€\0"­"Bˆ\b|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r B‡ˆ|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0#€€€\0"AÈ퀀\0jA\x006\0 AjB…€€€€ 7\0 AÐ퀀\0jA\x006\0 AÌ퀀\0j 6\0 Aj!A\b!@  6\0 A|j A~j6\0 Axj A|j6\0 Atj Azj6\0 Aj! A\bj"AˆG\r\0\v#€€€\0AÌ퀀\0j(\0!\v@ Aj(\0#€€€\0AÐ퀀\0j(\0"G\r\0A At"—€€€\0!\b@ E\r\0 \bA\tj! AjA\bj! !@  (\0"\t6\0@ #€€€\0A„\0j(\0"\nO\r\0#€€€\0!\v \tAqE\r\0 \tAj \nI\r\0  \vAˆî€€\0j(\0I\r\0#€€€\0Aøí€€\0j-\0\0E\r ’€€€\0\v Aj! Aj! Aj"\r\0\v AH\r\0 Aj! \b AtjA\tj!@  6\0 Aj! Aj! Aj" I\r\0\v\v#€€€\0"AÌ퀀\0j" \b6\0 A„\0j(\0" M\r\0#€€€\0! \bAqE\r\0 \bAj I\r\0 Aˆî€€\0j(\0#€€€\0AÌ퀀\0jK\r\0#€€€\0Aøí€€\0j-\0\0E\r#€€€\0AÌ퀀\0j’€€€\0\v \0AF\r \0AqE\r#€€€\0"AÐ퀀\0j" AÌ퀀\0j(\0 (\0"AtjA\tj"(\0Av6\0  \x006\0@  A„\0j(\0"O\r\0#€€€\0!\t \0Aj I\r\0  \tAˆî€€\0j(\0I\r\0#€€€\0Aøí€€\0j-\0\0E\r ’€€€\0\v#€€€\0AÈ퀀\0j" (\0Aj6\0 \v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A灀€\0jA7”€€€\0\v\0\vR~@#€€€\0A¤î€€\0j(\0"\0­B€€€À\r|Bˆ" \0¸D\0\0\0\0\0\0ø?¢ü"  T€€€€\0Aj­V\r\0§€€€\0\v\vR~@#€€€\0A¤î€€\0j(\0"\0­B€€€€\b|Bˆ" \0¸D\0\0\0\0\0\0ø?¢ü"  T€€€€\0Aj­V\r\0©€€€\0\v\vö#€€€€\0Ak"\0$€€€€\0@#€€€\0A¤î€€\0j(\0‰€€€\0AjA`qI\r\0‰€€€\0!#€€€\0A¤î€€\0j(\0!€€€€\0!  AjA`q"I\r\0 Aj" I\r\0#€€€\0!@@@@ A€€€€}I\r\0 Aä퀀\0j-\0\0AqE\r\v  k#€€€\0Aì쀀\0j(\0K\r  kA€€€K\r\f\v#€€€\0Aä퀀\0jA:\0\0\v \0Aj¢€€€\0\v \0Aj$€€€€\0\v\0\v\n\0 \0ց€€\0\v™@@@@ -\0\0E\r\0@ \0(\0\0! \0(\0!@  O\r ,\0\0! \0 Aj"6\0\0 ! A\0H\r\0\vA\0!A\0!\b@  O\r -\0\0! \0 Aj"6\0\0@ AG\r\0 Aø\0qAjA÷\0I\r\v Aÿ\0q t \br!\b Aj! ! ÀAL\r\0\v   \bA\0A\0A t AÀ\0I AKrA\0…€€\0  -\0\0Aj":\0\0 Aÿq\r\0\v\v\v#€€€\0A™’€€\0jA®€€€\0\0\v#€€€\0A™’€€\0jA®€€€\0\v\0\vT \0(\0\0! \0(\0!@@  O\r ,\0\0! \0 Aj"6\0\0 ! A\0H\r\0\v\v#€€€\0A™’€€\0jA®€€€\0\0\v¨ \0(\0\0! \0(\0!A\0!A\0!@@@  O\r -\0\0! \0 Aj"6\0\0@ AG\r\0 Aø\0qAjA÷\0I\r\v Aÿ\0q t r! Aj! ! ÀA\0H\r\0\v A\0A\0A t AÀ\0I AKr\v\0\v#€€€\0A™’€€\0jA®€€€\0\0\vs \0AÀ\0q!@@ \0Au"\r\0 E\r\v@@ AG\r\0 Aÿq\r\v  \0A€r:\0\0 AÀ\0q! Aj! !\0 Au"! \r\0 ! \r\0\v\v  \0Aÿ\0q:\0\0\vR@ \0($"A!I\r\0  j \0(M\r\0 \0 \0A(j A`j \0( €€€€\0€€€€\0A !\v \0  j6$ \0 jA\bj\v6@ \0($"A!I\r\0 \0 \0A(j A`j \0( €€€€\0€€€€\0 \0A 6$\v\v@ \0(" \0($"M\r\0@@ AjAv" AjAv"k"AG\r\0 \0 AtjA16\b\f\v  F\r\0 \0 Atj" A~j6\f A36\b\v \0($!\v \0A6 \0A6 \0 A`j6$ \0Aj\v)\0 \0 7 \0 7 \0 7\b \0#‚€€€\0Aƒ€€€\0j6 \v˜ \0($!@@@ AI\r\0 \0)B\0R\r\v  j" \0(M\r\v@ A!I\r\0 \0 \0A(j A`j \0( €€€€\0€€€€\0 \0A 6$\v \0   \0( €€€€\0€€€€\0\v \0 6$@ E\r\0 \0 jA\bj  ü\n\0\0\v\v[@ \0($"A!I\r\0  \0(I\r\0 \0 \0A(j A`j \0( €€€€\0€€€€\0A ! \0A 6$\v \0 j :\0\b \0 \0($Aj6$\v×@@@ Aj"(\0Agj\0\0\v A\tj! \0($!@@@ ("AI\r\0 \0)B\0R\r\v  j" \0(M\r\v@ A!I\r\0 \0 \0A(j A`j \0( €€€€\0€€€€\0 \0A 6$\v \0   \0( €€€€\0€€€€\0\v \0 6$@ E\r\0 \0 jA\bj  ü\n\0\0\v\v \0 (\b \0 (\f!\f\0\v\v\n\0 \0ށ€€\0\va@@@@ \0A\0 A\0 Aj(\0" \0Aj(\0"  I"º€€€\0Aÿq\0\vA\vA!\0\f\vA!\0 \r\0AA\0  I\v \0\vÚ~@ \0Aj(\0"\r\0 \v@ Aj(\0"\r\0 \0\v@@@@  j"A\tI\r\0 AÿÿÿÿK\r@€€€€\0"­"B|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r B€|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 A\rj 6\0 A\tj \x006\0 Aj 6\0 AjA%6\0 \vA “€€€\0"A\tj!@ E\r\0  \0A\tj ü\n\0\0\v@ E\r\0  j A\tj ü\n\0\0\v \v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A΄€€\0jA”€€€\0\0\v®~@@@@€€€€\0"­"B|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r B“€|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 AjB‡€€€07\0 A\rjB\x007\0 A\tj" \0 Aj¡€€€\0"\x006\0@#€€€\0A„\0j(\0" M\r\0#€€€\0! \0AqE\r\0 \0Aj I\r\0 Aˆî€€\0j(\0 K\r\0#€€€\0Aøí€€\0j-\0\0E\r ’€€€\0\v \v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\v\0\v&\0 \0Aj(\0E \0A\rj(\0Av \0A\tj(\0Aj(\0Oq\vþ\b@@ \0A\rj(\0Av" \0A\tj"(\0"Aj(\0O\r\0 Aj!\f\v \0AjAj! A\bj! Aj!@@@@ (\0"\0E\r\0@@ \0A\tj"\0(\0"Aj"(\0A%G\r\0 \0 (\f"6\0@#€€€\0A„\0j(\0"\b \0M\r\0#€€€\0! AqE\r\0 Aj \bI\r\0 Aˆî€€\0j(\0 \0K\r\0#€€€\0Aøí€€\0j-\0\0E\r \0’€€€\0\v A\x006\0  (\b ¡€€€\0"\x006\0#€€€\0A„\0j(\0" M\r#€€€\0! \0AqE\r \0Aj I\r Aˆî€€\0j(\0 K\r !\0#€€€\0Aøí€€\0j-\0\0E\r\f\v  6\0@#€€€\0A„\0j(\0"\b M\r\0#€€€\0! AqE\r\0  \bI\r\0 Aˆî€€\0j(\0 K\r\0#€€€\0Aøí€€\0j-\0\0E\r ’€€€\0\v A\x006\0  \0Aj(\0"\x006\0 #€€€\0A„\0j(\0"O\r#€€€\0! \0AqE\r \0Aj I\r  Aˆî€€\0j(\0I\r !\0#€€€\0Aøí€€\0j-\0\0\r\v\0\v#€€€\0AՇ€€\0jA!”€€€\0\0\v \0’€€€\0\v (\0Av" (\0"\0Aj(\0O\r\0\v \0Aj!\v@@  j"-\0\b"\0AtAsg"E\r\0Aÿ Aqv \0q!\0 AF\r\0 Aj"Aq!@@ A~jAO\r\0A!\f\v A|q!\bA\0!@ \0A\ft  j"\0A\tj-\0\0A?qAtr \0A\nj-\0\0A?qrA\ft \0A\vj-\0\0A?qAtr \0A\fj-\0\0A?qr!\0 \b Aj"G\r\0\v E\r Aj!\v  j jA\bj!@ \0At -\0\0A?qr!\0 Aj! Aj"\r\0\f\v\vA!\v Aj  jAt6\0 \0\vVA\0!@ \0Aj"\0(\0AF\r\0A\0!@ \0(\bˁ€€\0 j! \0(\fAj"\0(\0AG\r\0\v\v \0A\bj \0(ú€€\0 j\vè\b#€€€€\0Ak"$€€€€\0@@ \0Aj"(\0AF\r\0 ("A€€€€O\r \0A “€€€\0"A\tjõ€€€\0 Aj!\v Aj A\bj (ꁀ€\0 (\b!A (\f"“€€€\0!@ E\r\0 Aj! Aq!A\0!\0@ AI\r\0 A|q!A\0!\0@  \0j"A\bj  \0j"\b-\0\0:\0\0 A\tj \bAj-\0\0:\0\0 A\nj \bAj-\0\0:\0\0 A\vj \bAj-\0\0:\0\0  \0Aj"\0G\r\0\v E\r  \0j!\v \0 jA\bj!\0@ \0 -\0\0:\0\0 \0Aj!\0 Aj! Aj"\r\0\v\v Aj$€€€€\0 \v#€€€\0A鄀€\0jA”€€€\0\0\vL@ A€€€€O\r\0A “€€€\0!@ E\r\0 A\tj \0 ü\n\0\0\v \v#€€€\0A鄀€\0jA”€€€\0\0\v‡#€€€€\0Ak"$€€€€\0 A\x006\f@@ \0A€I\r\0 \0A?qA€r! \0Av!@ \0A€O\r\0  :\0\r  AÀr:\0\fA!\0\f\v \0A\fv! A?qA€r!@ \0AÿÿK\r\0  :\0  :\0\r  Aàr:\0\fA!\0\f\v  :\0  :\0  A?qA€r:\0\r  \0AvApr:\0\fA!\0\f\v  \0:\0\fA!\0\vA \0“€€€\0!@ \0E\r\0 A\tj A\fj \0ü\n\0\0\v Aj$€€€€\0 \v\n\0 \0Aj(\0\vè\b#€€€€\0Ak"$€€€€\0@@ \0Aj"(\0AF\r\0 ("A€€€€O\r \0A “€€€\0"A\tjõ€€€\0 Aj!\v Aj A\bj (끀€\0 (\b!A (\f"“€€€\0!@ E\r\0 Aj! Aq!A\0!\0@ AI\r\0 A|q!A\0!\0@  \0j"A\bj  \0j"\b-\0\0:\0\0 A\tj \bAj-\0\0:\0\0 A\nj \bAj-\0\0:\0\0 A\vj \bAj-\0\0:\0\0  \0Aj"\0G\r\0\v E\r  \0j!\v \0 jA\bj!\0@ \0 -\0\0:\0\0 \0Aj!\0 Aj! Aj"\r\0\v\v Aj$€€€€\0 \v#€€€\0A鄀€\0jA”€€€\0\0\v9#€€€€\0Ak"$€€€€\0 Aj \0 ö€€\0 (! Aj$€€€€\0 E\vP#€€€€\0Ak"$€€€€\0 Aj \0 ö€€\0@ (E\r\0#€€€\0A𖀀\0jA"”€€€\0\0\v Aj$€€€€\0\vÏ~@@@€€€€\0"\0­"B\f|"?\0­B†X\r\0 B€€üÿB€€üÿ€€€\0V\r B‹€|Bˆ§"?\0"M\r\0  k@\0AF\r\v §‚€€€\0 \0AjB›€€€07\0 \0A\tj#€€€\0A’—€€\0j"/\0\0;\0\0 \0A\vj -\0:\0\0 \0\v#€€€\0A‰”€€\0jA”€€€\0\0\v#€€€\0A‰”€€\0jA”€€€\0\0\v\0\vÂ\b|||~#€€€€\0A°k"$€€€€\0 A\0A ü\v\0 A jA\0A ü\v\0 AÀjA\0A ü\v\0 AàjA\0AÐ\0ü\v\0#€€€\0"A˜—€€\0j Atj(\0" Aj"\bj!\t A}jÁAmÁ"\n \bk!\v \nAt Atk A¨—€€\0jjAj!A\0!@@@ \vA\0N\r\0D\0\0\0\0\0\0\0\0!\f\f\v (\0·!\f\v  Atj \f9\0@  \tO\r\0 Aj! \vAj!\v   \tIj" \tM\r\v\vA\0!\v@ \v \bj!\tD\0\0\0\0\0\0\0\0!\fA\0!@@ \f \0 Atj+\0  \t kAtj+\0¢ !\f  \bO\r   \bIj" \bM\r\0\v\v AÀj \vAtj \f9\0@ \v O\r\0 \v \v Ij"\v M\r\v\v At AàjjA|j!\rA/  \nAhlj"kAq!A0 kAq! Açj­B4†¿! Ahj"A\0J! Aj! !\v@@ AÀj \v"Atj+\0!\f@ E\r\0 Aàj!\t !@ \t \f \fD\0\0\0\0\0\0p>¢ü·"D\0\0\0\0\0\0pÁ¢ ü6\0 AÀj AtjAxj+\0  !\f AF"\v\r \tAj!\tA Aj \v"\r\0\v\v@@ \f ¢"D\0\0\0\0\0\0À?¢"½"B4ˆ§Aÿq"A²\bK\r\0@ AþK\r\0D\0\0\0\0\0\0\0\0!\f BU\r D\0\0\0\0\0\0ð¿ D\0\0\0\0\0\0\0\0a!\f\f\v !\fBÿÿÿÿÿÿÿ Axj­"ˆ" ƒP\r B?‡ ƒ |B€€€€€€€x ‡ƒ¿!\f\f\v !\f\v  \fD\0\0\0\0\0\0 À¢ "\f \fü"·¡!\f@@@@@ \r\0@ \r\0 Aàj AtjA|j(\0Au!\f\vA!A\0! \fD\0\0\0\0\0\0à?fE\r\f\v Aàj AtjA|j" (\0"  u" tk"\t6\0 \t u!  j!\v AH\r\vA!\t@ E\r\0A\0!\vA\0!@ AF\r\0 Aq! Aq!A\0!\v Aàj!A\0!@ (\0!\t@@@@ E\r\0Aÿÿÿ!\f\v \tE\rA€€€\b!\v   \tk6\0A\0!\f\vA!\v Aj"(\0!\t@@@@ \r\0Aÿÿÿ!\f\v \tE\rA€€€\b!\v   \tk6\0A!A\0!\t\f\vA\0!A!\t\v A\bj!  \vAj"\vG\r\0\v E\r\v Aàj \vAtj"\v(\0!@@ E\r\0Aÿÿÿ!\t\f\vA!\t E\rA€€€\b!\t\v \v \t k6\0A\0!\t\v@ E\r\0Aÿÿÿ!@@ \0\vAÿÿÿ!\v Aàj AtjA|j"\v \v(\0 q6\0\v Aj!A! AG\rD\0\0\0\0\0\0ð? \f¡"\f \f ¡ \t!\f\f\v !\v@ \fD\0\0\0\0\0\0\0\0b\r\0@  Aj"K\r\0A\0!\t@@ Aàj Atj(\0 \tr!\t  O\r    Ik"M\r\0\v\v \tE\r\0 Aàj AtjA|j!@ Aj! Ahj! (\0!\b A|j! \bE\r\0\f\v\v \r! !\v@ \vAj!\v (\0!\t A|j! \tE\r\0\v  \vO\r Aj!@   \bj"\tAtj#€€€\0A¨—€€\0j  \njAtj(\0·9\0A\0!D\0\0\0\0\0\0\0\0!\f@@ \f \0 Atj+\0  \t kAtj+\0¢ !\f  \bO\r   \bIj" \bM\r\0\v\v AÀj Atj \f9\0   \vIj!  \vO\r !  \vM\r\0\f\v\v\v@@ \fAÿ k­B4†¿¢"\fD\0\0\0\0\0\0pAf\r\0 \f!\f\v Aàj Atj \f \fD\0\0\0\0\0\0p>¢ü·"D\0\0\0\0\0\0pÁ¢ ü6\0 Aj! !\v Aàj Atj ü6\0\v@@@@ AÿJ\r\0 A‚xH\rD\0\0\0\0\0\0ð?!\f\f\v AþK\r Axj!D\0\0\0\0\0\0à!\f\f\v@ A¸pM\r\0 AÉj!D\0\0\0\0\0\0`!\f\f\v Aðh AðhKA’j!D\0\0\0\0\0\0\0\0!\f\f\v Aý AýIA‚pj!D\0\0\0\0\0\0ð!\f\v \f Aÿj­B4†¿¢!\f@@ AqE\r\0 !\0\f\v AÀj Atj \f Aàj Atj(\0·¢9\0 \fD\0\0\0\0\0\0p>¢!\f Aj!\0\v@ E\r\0 \0At AàjjA|j! \0At AÀjjAxj!\b@ \b \fD\0\0\0\0\0\0p>¢" (\0·¢9\0 \bA\bj \f Aj(\0·¢9\0 Axj! \bApj!\b D\0\0\0\0\0\0p>¢!\f \0AG!\t \0A~j!\0 \t\r\0\v\v Aj! AÀj Atj!\v !@@@@   "\nk"  I"\r\0D\0\0\0\0\0\0\0\0!\fA\0!\b\f\v Aj"Aq! A~q!D\0\0\0\0\0\0\0\0!\fA\0!A\0!\b@ \v j"\0A\bj+\0! \f#€€€\0A°™€€\0j j"\t+\0 \0+\0¢   \tA\bj+\0¢ !\f Aj!  \bAj"\bG\r\0\v E\r\v \f#€€€\0A°™€€\0j \bAtj+\0 AÀj \b \njAtj+\0¢ !\f\v A j Atj \f9\0 \vAxj!\v \nAj! \n\r\0\v@@ E\r\0@@ Aq"\0\r\0D\0\0\0\0\0\0\0\0!\f !\b\f\v A j Atj!D\0\0\0\0\0\0\0\0!\f !\b@ \bAj!\b \f +\0 !\f Axj! \0Aj"\0\r\0\v\v@ AI\r\0 \bAt A jjAhj!@ \f Aj+\0  Aj+\0  A\bj+\0  +\0 !\f A`j! \bAG!\0 \bA|j!\b \0\r\0\v\v  \fš \f 9\0 +  \f¡!\f@ E\r\0A!@ \f A j Atj+\0 !\f  O\r   Ij" M\r\0\v\v  \fš \f 9\b\f\v@@ Aq"\0\r\0D\0\0\0\0\0\0\0\0!\f !\b\f\v A j Atj!D\0\0\0\0\0\0\0\0!\f !\b@ \bAj!\b \f +\0 !\f Axj! \0Aj"\0\r\0\v\v@ AI\r\0 \bAt A jjAhj!@ \f Aj+\0  Aj+\0  A\bj+\0  +\0 !\f A`j! \bAG!\0 \bA|j!\b \0\r\0\v\v  \fš \f 9\0\v A°j$€€€€\0 Aq\v·|#€€€€\0A k"$€€€€\0@@ \0½B ˆ§Aÿÿÿÿq"AüäÿI\r\0@@@@@ Aÿÿ¿ÿK\r\0 A\bj \0ف€€\0 +! +\b" ¢"\0 \0¢! (Aq\v \0 \0¡!\0\f\vD\0\0\0\0\0\0ð? \0D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡ \0 \0 \0 \0DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢ \0 \0DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢  ¢¡  š!\0\f\v   \0¢"DIUUUUUÅ?¢ \0 D\0\0\0\0\0\0à?¢  \0 ¢ \0D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ \0 \0D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢¡¢ ¡ ¡!\0\f\vD\0\0\0\0\0\0ð? \0D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡ \0 \0 \0 \0DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢ \0 \0DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢  ¢¡  !\0\f\v   \0¢"DIUUUUUÅ?¢ \0 D\0\0\0\0\0\0à?¢  \0 ¢ \0D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ \0 \0D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢¡¢ ¡ ¡š!\0\f\v@ A€€ÀòI\r\0 \0 \0 \0 \0¢"¢    ¢¢ D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢  D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢DIUUUUUÅ¿ ¢ !\0\f\v@ A€€À\0I\r\0  \0D\0\0\0\0\0\0pG 9\b +\b\f\v  \0D\0\0\0\0\0\0p8¢9\b +\b\v A j$€€€€\0 \0\vÀ|#€€€€\0A k"$€€€€\0@@@@@@@ \0½B ˆ§Aÿÿÿÿq"AüäÿI\r\0 Aÿÿ¿ÿK\r A\bj \0ف€€\0 +! +\b" ¢"\0 \0¢! (Aq\v@ \0ü\r\0D\0\0\0\0\0\0ð?! AžÁšòI\r\vD\0\0\0\0\0\0ð? \0 \0¢"D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡    DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢" ¢  DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢ \0D\0\0\0\0\0\0\0€¢   !\f\v \0 \0¡!\f\v   \0¢"DIUUUUUÅ?¢ \0 D\0\0\0\0\0\0à?¢  \0 ¢ \0D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ \0 \0D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢¡¢ ¡ ¡!\f\vD\0\0\0\0\0\0ð? \0D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡ \0 \0 \0 \0DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢ \0 \0DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢  ¢¡  !\f\v   \0¢"DIUUUUUÅ?¢ \0 D\0\0\0\0\0\0à?¢  \0 ¢ \0D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ \0 \0D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø?  ¢¡¢ ¡ ¡š!\f\vD\0\0\0\0\0\0ð? \0D\0\0\0\0\0\0à?¢"¡"D\0\0\0\0\0\0ð? ¡ ¡ \0 \0 \0 \0DË ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢ \0 \0DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢  ¢¡  š!\v A j$€€€€\0 \vô~|~#€€€€\0A0k"$€€€€\0@@ \0½"B4ˆ§"ApjApK\r\0@ \0D\0\0\0\0\0\0\0\0b\r\0 \0!\f\v@ B€€€€€€€øÿ\0R\r\0 \0!\f\vD\0\0\0\0\0\0ø! B€€€€€€€øÿ\0V\r \0D\0\0\0\0\0\x000C¢½"B4ˆ§AÿqALj!\v A jB€€€€\f B\v†B€€€€€€€€€„ Aq­ˆ"B ˆ#€€€\0Aˆ›€€\0j B.ˆ§Aÿ\0qAtj3\0B†"~B ˆ" ~B ˆ}Bÿÿÿÿƒ" ~BˆBþÿÿÿƒ"B€€€€\f   ~BˆBþÿÿÿƒ~B ˆ}Bÿÿÿÿƒ~B†B€€€€`ƒ"B\0 B\0Š‚€€\0 Aj )("B\0 B\0Š‚€€\0  B\0B€€€€€€€€@ )}B\0Š‚€€\0 )\bB\tˆ" ~ B*†} |"B?ˆ |Bÿÿÿÿÿÿÿƒ AÿjAv­B4†„"¿B\0B€€€€€€€\b  |B|"P  …B€€€€€€€€€ƒ„¿ !\v A0j$€€€€\0 \v–~|#€€€€\0A0k"$€€€€\0@@@ ½"B ˆ§"Aÿÿÿÿq"AûÔ½€I\r\0@ A¼Œñ€I\r\0@@@ AûÃä‰I\r\0 Aÿÿ¿ÿK\r  BÿÿÿÿÿÿÿƒB€€€€€€€°Á\0„¿"ü·"9\0   ¡D\0\0\0\0\0\0pA¢"ü"·"9\b   ¡D\0\0\0\0\0\0pA¢"9 B\x007( B\x007 B\x007 AA A D\0\0\0\0\0\0\0\0a Aj AvAêwjAՁ€€\0! BW\r \0 6\b \0 + 9 \0 +9\0\f\v@ Av"  DƒÈÉm0_ä?¢D\0\0\0\0\0\x008C D\0\0\0\0\0\x008à"D\0\0@Tû!ù¿¢ " D1cba´Ð=¢"¡"\b½B4ˆ§AÿqkAH\r\0@   D\0\0`a´Ð=¢"\b¡"\t Dsp.Š£;¢  \t¡ \b¡¡"¡"\b½B4ˆ§AÿqkA2N\r\0 \t!\f\v \t D\0\0\0.Š£;¢"\b¡" DÁI %šƒ{9¢ \t ¡ \b¡¡"¡!\b\v \0 \b9\0 \0 ü6\b \0  \b¡ ¡9\f\v \0A\x006\b \0  ¡"9 \0 9\0\f\v \0A\0 k6\b \0 + š9 \0 +š9\0\f\v@ A½û׀I\r\0@ AûÃä€G\r\0@  DƒÈÉm0_ä?¢D\0\0\0\0\0\x008C D\0\0\0\0\0\x008à"D\0\0@Tû!ù¿¢ " D1cba´Ð=¢"¡"\b½B€€€€€€€øÿ\0ƒBÿÿÿÿÿÿÿ‡?V\r\0@  D\0\0`a´Ð=¢"\b¡"\t Dsp.Š£;¢  \t¡ \b¡¡"¡"\b½B€€€€€€€€ÿ\0ƒBÿÿÿÿÿÿÿÿ¢DñkÒÅA½»¾ ¢D,Þ%¯jV? ¢D“½¾lÁf¿ ¢D>UUUUUÅ? ¢¡"¢D\0\0\0\0\0\0\0@ ¡£ ¡ D\0\0\0\0\0\0ð? ! E\r\0@@@@ AÿJ\r\0 A‚xN\r D\0\0\0\0\0\0`¢! A¸pM\r AÉj!\f\v D\0\0\0\0\0\0à¢! AþK\r Axj!\f\v D\0\0\0\0\0\0`¢! Aðh AðhKA’j!\f\v D\0\0\0\0\0\0à¢! Aý AýIA‚pj!\v  Aÿj­B4†¿¢!\v \vÜ}~~@@ \0¼"A€€€„xjAÿÿÿ‡xK\r\0@ \0C\0\0\0\0\\\r\0 \0\v@ A€€€üG\r\0 \0\vC\0\0À! A€€€üK\r \0C\0\0\0K”¼A€€€¤j!\vB€€€€\fB€€€€\f#€€€\0Aˆ›€€\0j AvAþqj3\0B†" AtA€ÿÿÿq A\btA€€€€xr A€€€q"­~B ˆ" ~B ˆ}Bÿÿÿÿƒ" ~BˆBþÿÿÿƒ  ~BˆBþÿÿÿƒ"~B ˆ}Bÿÿÿÿƒ ~B&ˆ§" l Atk j"Av jAÿÿÿq AvA€€€þjA€€€üqr"¾A€€€A\0  jAj"  sA€€€€xqr¾’!\v \v°\b|~~~|D\0\0\0\0\0\0ð?!@ ½"B ˆ§"Aÿÿÿÿq" §"rE\r\0 \0½"§!\b@ B ˆ"\tB€€ÀÿR\r\0 \bE\r\v@@@@@@ \t§"\nAÿÿÿÿq"\vA€€ÀÿK\r\0@@ \vA€€ÀÿG\r\0 \b\r A€€ÀÿK\r\f\v A€ÀÿO\r\v@ E\r\0 A€€ÀÿF\r\v B\0S\r\f\v \0  \vA!\f Aÿÿÿ™K\r A€€ÀÿI\r\0 Av!\r@ Aÿÿÿ‰K\r\0A\0!\f \rA\0!\f A“\b \rk"v"\r t G\rA \rAqk!\f\f\vA\0!\f A³\b \rk"\rv" \rt G\rA Aqk!\f\f\vA\0!\f\v \r\v@@@@@@ A€€ÀÿF\r\0 A€€ÀÿG\r \vA€€À€|j \brE\r \vAÿÿ¿ÿK\rD\0\0\0\0\0\0\0\0 š BU\v BW\r \0\v A€€€ÿF\r A€€€€F\r\f\vD\0\0\0\0\0\0ð? \0£\v \0 \0¢\v B\0S\r \0؁€€\0\v D\0\0\0\0\0\0\0\0 BU\v \0™!@@ \b\r\0@ \nAJ\r\0 \nA€€€€xF\r \nA€€Àÿ{F\r \nA€€@G\r\f\v \nE\r \nA€€ÀÿF\r \nA€€ÀÿF\r\vD\0\0\0\0\0\0ð?!@ B\0Y\r\0@@ \f\0\v \0 \0¡" £\vD\0\0\0\0\0\0ð¿!\v@@ A€€€K\r\0 D\0\0\0\0\0\0@C¢½" ½ \vA€€À\0I"\b!\t B ˆ§ \v \b"Aÿÿ?q"A€€Àÿr!AÌwAx \b Auj!\vA\0!\b@ A±I\r\0@ Aúì.O\r\0A!\b\f\v A€€€ÿr! \vAj!\v\v#€€€\0"Aš€€\0j \bAt"j+\0D\0\0\0\0\0\0ð? A€š€€\0j j+\0"\0 ­B † \tBÿÿÿÿƒ„¿" £"  \0¡" \bAt AvjA€€ €j­B †¿"  ¢"½B€€€€pƒ¿"¢¡ \0 ¡   ¢¡¢"\0  ¢"D\0\0\0\0\0\0\b@  \0   ¢  ¢"\0 \0¢ \0 \0 \0 \0 \0DïNEJ(~Ê?¢DeÛɓJ†Í? ¢DA©`tÑ? ¢DM&QUUÕ? ¢Dÿ«oÛ¶mÛ? ¢D33333ã? ¢ " ½B€€€€pƒ¿"\0¢   \0D\0\0\0\0\0\0\bÀ  ¡¡¢ "   \0¢" ½B€€€€pƒ¿"\0 ¡¡Dý:Ü\tÇî?¢ \0Dõ[à/>¾¢  " A š€€\0j j+\0"  \0D\0\0\0à\tÇî?¢"   \v·" ½B€€€€pƒ¿"\0 ¡ ¡ ¡¡!\f\v@@@ A€€ÀŸK\r\0 \vAÿÿ¿ÿI\r \vA€€ÀÿK\r D\0\0\0\0\0\0ð¿ "\0DDß]ø\v®T>¢ \0 \0¢D\0\0\0\0\0\0à? \0 \0D\0\0\0\0\0\0п¢DUUUUUUÕ? ¢¡¢Dþ‚+eG÷¿¢ "  \0D\0\0\0`G÷?¢" ½B€€€€pƒ¿"\0 ¡¡!\f\v@ \vAÿÿ¿ÿK\r\0D\0\0\0\0\0\0ðD\0\0\0\0\0\0\0\0 B\0S\vD\0\0\0\0\0\0ðD\0\0\0\0\0\0\0\0 A\0J\v@ A\0J\r\0 DYóøÂn¥¢DYóøÂn¥¢\v Dœu\0ˆ<ä7~¢Dœu\0ˆ<ä7~¢\v@ B\0S\r\0 DYóøÂn¥¢DYóøÂn¥¢\v Dœu\0ˆ<ä7~¢Dœu\0ˆ<ä7~¢\v \0 B€€€€pƒ¿"¢"  ¡ \0¢  ¢ " "\0½"§!\b@@@ B ˆ§"Aÿÿ¿„J\r\0 A€øÿÿqAÿ—ÄM\r A€è¼ûj \br\r  \0 ¡eE\r DYóøÂn¥¢DYóøÂn¥¢\v@ A€€Àû{j \brE\r\0 Dœu\0ˆ<ä7~¢Dœu\0ˆ<ä7~¢\v Dþ‚+eG—<  \0 ¡dE\r Dœu\0ˆ<ä7~¢Dœu\0ˆ<ä7~¢\v DYóøÂn¥¢DYóøÂn¥¢\vA\0!\b@ AÿÿÿÿqA€€€ÿM\r\0A\0A€€À\0 AvAjv j"Aÿÿ?qA€€À\0rA Av"kv"\bk \b B\0S!\b  A€€@ Aju q­B †¿¡" ½!\v@@ \bAt B€€€€pƒ¿"\0D\0\0\0\0C.æ?¢"  \0 ¡¡Dï9úþB.æ?¢ \0D9l¨\fa\\ ¾¢ " "    ¢"\0 \0 \0 \0 \0DФ¾ri7f>¢DñkÒÅA½»¾ ¢D,Þ%¯jV? ¢D“½¾lÁf¿ ¢D>UUUUUÅ? ¢¡"\0¢ \0D\0\0\0\0\0\0\0À £   ¡¡"\0  \0¢ ¡¡D\0\0\0\0\0\0ð? "½"B ˆ§j"A€€À\0H\r\0 ­B † Bÿÿÿÿƒ„¿!\f\v  \b݁€€\0!\v  ¢!\f\vD\0\0\0\0\0\0ð? £  B\0S! BU\r\0@ \f \vA€€À€|jr\r\0  ¡" £\v š  \fAF\v \v®\0@@@@ AÿJ\r\0 A‚xN\r \0D\0\0\0\0\0\0`¢!\0 A¸pM\r AÉj!\f\v \0D\0\0\0\0\0\0à¢!\0 AþK\r Axj!\f\v \0D\0\0\0\0\0\0`¢!\0 Aðh AðhKA’j!\f\v \0D\0\0\0\0\0\0à¢!\0 Aý AýIA‚pj!\v \0 Aÿj­B4†¿¢\v¢~|#€€€€\0A k"$€€€€\0@@ \0½"B ˆ§Aÿÿÿÿq"AüäÿI\r\0@ Aÿÿ¿ÿK\r\0 A\bj \0ف€€\0 +\b + (Aq߁€€\0!\0\f\v \0 \0¡!\0\f\v@@@ A€€€òI\r\0 B€€€€€ÿÿÿÿ\0ƒB€€€€ð„åò?V"\r \0!\f\v  \0D\0\0\0\0\0\0p8¢ \0D\0\0\0\0\0\0pG  A€€À\0I9\b +\b\f\vD-DTû!é? \0™¡D\\3&¦¢Dé§ð2¸? ¢Dh÷&0? ¢DƒàþÈÛW? ¢D“„néã&‚? ¢DþA³º¡«? ¢ ¢D\0\0\0\0\0\0\0\0 ¢D\0\0\0\0\0\0\0\0  " !\0 E\r\0D\0\0\0\0\0\0ð?   \0 \0¢ \0D\0\0\0\0\0\0ð? £¡ "\0 \0 ¡"\0š \0 B\0S!\0\v A j$€€€€\0 \0\v®~|@ \0½"B€€€€€ÿÿÿÿ\0ƒB€€€€ð„åò?V"E\r\0D-DTû!é? \0™¡D\\3&¦< š  B\0S¡ !\0D\0\0\0\0\0\0\0\0!\v \0 \0 \0 \0¢"¢"DcUUUUUÕ?¢      ¢"    DsS`ÛËuó¾¢D¦’7 ˆ~? ¢DeòòØDC? ¢D(VÉ"mm? ¢D7Ö„ôd–? ¢DzþÁ?       DÔz¿tp*û>¢Dé§ð2¸? ¢Dh÷&0? ¢DƒàþÈÛW? ¢D“„néã&‚? ¢DþA³º¡«? ¢ ¢ ¢  " !@ \r\0@ E\r\0D\0\0\0\0\0\0ð¿ £" ½B€€€€pƒ¿" ½B€€€€pƒ¿"¢D\0\0\0\0\0\0ð?    \0¡¡ ¢ ¢  !\v \vD\0\0\0\0\0\0ð? At¸¡" \0   ¢   £¡ "  ¡"š  B\0S\vÛ~|@@ \0½"B ˆ§Aÿÿÿÿq"Aÿÿ¿ÿK\r\0@ A€€€ÿI\r\0@ BW\r\0D\0\0\0\0\0\0ð? \0¡D\0\0\0\0\0\0à?¢"\0 \0 \0 \0 \0 \0D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢ \0 \0 \0 \0D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £ \0؁€€\0"¢ \0 ½B€€€€pƒ¿" ¢¡   £   "\0 \0 \vD-DTû!ù? \0D\0\0\0\0\0\0ð? D\0\0\0\0\0\0à?¢"\0؁€€\0"  \0 \0 \0 \0 \0 \0D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢ \0 \0 \0 \0D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £¢D\\3&¦‘¼  ¡"\0 \0 !\f\vD-DTû!ù?! A€€ãI\rD\\3&¦‘< \0 \0 \0¢"     D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢    D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £¢¡ \0¡D-DTû!ù? \v@ A€€À€|j §rE\r\0D\0\0\0\0\0\0\0\0 \0 \0¡£\vD\0\0\0\0\0\0\0\0D-DTû!\t@ BU\v \vØ~|@ \0½"B ˆ§Aÿÿÿÿq"Aÿÿ¿ÿK\r\0@@@@ A€€€ÿI\r\0D\0\0\0\0\0\0ð? \0™¡D\0\0\0\0\0\0à?¢"\0 \0 \0 \0 \0 \0D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢ \0 \0 \0 \0D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £! \0؁€€\0! A²æ¼ÿK\rD-DTû!é? ½B€€€€pƒ¿"  ¡D\\3&¦‘< \0  ¢¡   £"\0 \0 ¡    ¢¡ D-DTû!é? !\0\f\v A€€@jA€€€òI\r \0 \0 \0 \0¢"     D\t÷ý\rá=?¢Dˆ²uàïI? ¢D;hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢    D‚’.±Å¸³?¢DYlæ¿ ¢DȊYœå*\0@ ¢DK-Š\':À ¢D\0\0\0\0\0\0ð? £¢ \vD-DTû!ù?   ¢ "\0 \0 D\\3&¦‘¼ ¡!\0\v \0š \0 B\0S!\0\v \0\v@ A€€À€|j §rE\r\0D\0\0\0\0\0\0\0\0 \0 \0¡£\v \0D-DTû!ù?¢D\0\0\0\0\0\0p8 \v°~|#€€€€\0Ak!@@@@@@ \0½"B ˆ§Aÿÿÿÿq"Aÿÿ¿ K\r\0 A€€ðþI\r \0™!\0 A€€ÌÿI\r A€€Ž€I\rD\0\0\0\0\0\0ð¿ \0£!\0A!\f\v \0 \0b\rD-DTû!ù? \0¦\vA! A€€€òO\r A€€À\0O\r  \0¶8\f *\f \0\v \0D\0\0\0\0\0\0ø¿  \0D\0\0\0\0\0\0ø?¢D\0\0\0\0\0\0ð? £!\0A!\f\v@ A€€˜ÿI\r\0 \0D\0\0\0\0\0\0ð¿  \0D\0\0\0\0\0\0ð? £!\0A!\f\v \0 \0 D\0\0\0\0\0\0ð¿  \0D\0\0\0\0\0\0\0@ £!\0A\0!\v \0 \0¢" ¢"    D/lj,D´¢¿¢DšýÞR-Þ­¿ ¢Dmšt¯ò°³¿ ¢Dq#þÆq¼¿ ¢DÄ똙™™É¿ ¢!      DÚ"ã:­?¢Dë\rv$K{©? ¢DQ=Рf\r±? ¢Dn LÅÍE·? ¢Dÿƒ\0’$IÂ? ¢D\rUUUUUÕ? ¢!@ A€€ðþI\r\0#€€€\0"A°š€€\0j At"j+\0 \0   ¢ AК€€\0j j+\0¡ \0¡¡"\0š \0 B\0S\v \0 \0   ¢¡!\0\v \0\v«\b\b~#€€€€\0Ak"$€€€€\0@@@@@@@ \0½"B€€€€€€€øÿ\0ƒB€€€€€€€øÿ\0Q\r\0B\0 ½"}B€€€€€€€øÿ\0ƒP\r\0 Bÿÿÿÿÿÿÿÿÿ\0ƒ" Bÿÿÿÿÿÿÿÿÿ\0ƒ"T\r@ B\0 B€€€€€€€x|"  V"B€€€€€€€øÿ\0ƒ}" B\0 B€€€€€€€x|"  V"\bB€€€€€€€øÿ\0ƒ"\t}"B†"\nT\r\0  \tQ\r  ‚!\v B€€€€€€€€€ƒ!\t@ B4ˆ"§"\v \bB4ˆ"§"\fk"\rAK\r\0@  Q\r\0 \rAq!@ \f \vkA|K\r\0 \rAq!\r@ B\0   T}B†"B\0   T}B†"B\0   T}B†"B\0   T}B†! \rA|j"\r\r\0\v E\r\vA\0 k!\r@ B\0   T}B†! \rAj"\r\r\0\v\v B\0   T}!\f\v \rAÀ\0O\r A€j B\0 \r‡‚€€\0  )ˆ"X\r  )€  B\0‹‚€€\0 )\0!\f\v \0 ¢"\0 \0£!\0\f\v B€€€€€€€€À\0Z\r\0  \nZ\r\0@  B|"ƒP\r\0  y§A~j"\v­"\n†"B€€€€€€€€ X\r B€€€€€€€€À\0Z\r  B†"\bZ\r Að\0jB\0B€€€€€€€€€ \b}" \bB\0Œ‚€€\0 Aà\0j )p" )x" \bB\0Š‚€€\0 AÐ\0j  B| B†B\0Š‚€€\0  )h} )`"B\0R­}!B\0 }! )X! )P!@ \v \rj"\rA?I\r\0@ AÀ\0j B\0  Š‚€€\0 Bˆ )H|! )@! \rAAj"\rA>K\r\0\v\v A0j   \r‡‚€€\0 A j    \rA?s­ˆB\0Š‚€€\0 Aj )( )8Bÿÿÿÿÿÿÿÿÿ\0ƒ| ) " )0| T­|B|B\0 \bB\0Š‚€€\0 )"B\0   V} \nˆ!\f\v \rAÀ\0I\r\f\v\0\v  \r­† ƒ!\v P\r\0 A4 y§A?sk"\r \f \r \fI"\r­† \t| \f \rk­B4†|¿!\0\f\v \t¿!\0\v Aj$€€€€\0 \0\vÁ\b~@@@@@@@ \0¼"A€€€üqA€€€üF\r\0A\0 ¼"kA€€€üqE\r\0 Aÿÿÿÿq" Aÿÿÿÿq"I\r@ A\0 A€€€|j"  K"A€€€üqk" A\0 A€€€|j"  K"A€€€üq"\bk"At"\tI\r\0  \bF\r  p!\v A€€€€xq!\b Av Av"k"A O\r  ­ ­†"\nB ˆ§M\r \n ­‚§!\f\v \0 ”"\0 \0•\v A€€€€O\r\0  \tO\r\0@  Aj"qE\r\0  gA~j"t"A€€€€M\r A€€€€O\r  At"O\rA€€€€x k­B †"\v ­"\f€"\rB€€€€| At­~!\n \v \r \f~}!\v@  j"AI\r\0@ \nB ˆ \v~ \nB†B€€€€ðÿÿÿÿ\0ƒ|!\n Aaj"AK\r\0\v\v \v \nB ˆ§ Asv­~ \n ­†Bÿÿÿÿÿÿÿÿÿ\0ƒ|B ˆB| \f~B ˆ§"A\0   Kk v!\f\v A I\r\f\v\0\v  t q!\v E\r\0 A gAsk"   I"t \bj  kAtj¾\v \b¾!\0\v \0\v•\r}}}C\0\0€?!@@@@ \0¼"A€€€üF\r\0 ¼"Aÿÿÿÿq"E\r\0@@@ \0‹"¼"A€€€üK\r\0 A€€€üK\r\0 A\0N\rA!\b AÿÿÿÛK\r A€€€üI\rA\0!\b A– Avk"\tv"\n \tt G\rA \nAqk!\b\f\v \0 ’\vA\0!\b\v@@@@ A€€€üF\r\0 A€€€üG\r@@ A€€€üJ A€€€üHkAÿq\0\vC\0\0\0\0 Œ AJ\v C\0\0\0\0 AJ\v AL\r \0\v@@@@ A€€€øF\r\0@ A€€€€G\r\0 \0 \0”\v@ E\r\0 AÿÿÿÿqA€€€üG\r\vC\0\0€? •  A\0H! A\0N\r\f\t\v@ AJ\r\0@ \r\0 !\f\n\v AÿÿÿÿqA€€€üG\r !\f\t\v \0ہ€€\0\v A\0H\r\0C\0\0€?!\v\f\vC\0\0€?!\v@@ \b\0\v \0 \0“"\0 \0•\vC\0\0€¿!\v\v@ A€€€èK\r\0 C\0\0€K”¼  A€€€I""\bAÿÿÿq"A€€€ür!Aé~A  \bAuj!\tA\0!@ Aòˆó\0I\r\0@ A×çöO\r\0A!\f\v A€€€ør! \tAj!\t\v#€€€\0"Aøš€€\0j At"\bj*\0C\0\0€? A𚀀\0j \bj*\0"\0 ¾"\f’•" \f \0“" AvA€àÿÿq AtjA€€€‚j¾"\r  ”"¼A€`q¾"”“ \0 \r“ \f’ ”“”"\0  ”"\fC\0\0@@’ \0  ’”  ”"\0 \0” \0 \0 \0 \0 \0CBñS>”CU2l>’”C£‹>’”C«ªª>’”C·mÛ>’”Cš™?’”’"\r’¼A€`q¾"\0”  \r \0C\0\0@À’ \f““”’"   \0”"’¼A€`q¾"\0 ““CO8v?” \0CÆ#ö¸”’’" A€›€€\0j \bj*\0"  \0C\0@v?”"\f’’ \t²"’¼A€`q¾"\0 “ “ \f““!\f\v@ AøÿÿûI\r\0@ A‡€€üK\r\0 C\0\0€¿’"\0Cp¥ì6” \0 \0”C\0\0\0? \0 \0C\0\0€¾”C«ªª>’”“”C;ª¸¿”’"  \0C\0ª¸?”"’¼A€`q¾"\0 ““!\f\v@ A\0J\r\0 \vC`B¢\r”C`B¢\r”\v \vCÊòIq”CÊòIq”\v@ A\0H\r\0 \vC`B¢\r”C`B¢\r”\v \vCÊòIq”CÊòIq”\vC\0\0€? \0•\v@@@ \0 A€`q¾"”"\f  “ \0”  ”’"’"\0¼"A€€€˜J\r\0 A€€€˜F\r \0¼Aÿÿÿÿq"A€€Ø˜K\r A€€Ø˜|G\r  \0 \f“_E\r \vC`B¢\r”C`B¢\r”\v \vCÊòIq”CÊòIq”\v C<ª83’ \0 \f“^\r \0¼Aÿÿÿÿq!\vA\0!@ A€€€øM\r\0A\0A€€€ AvAjv j"AÿÿÿqA€€€rA Av"kv"k  A\0H!  \fA€€€| Aju q¾“"\f’¼!\v@@ At A€€~q¾"\0C\0r1?”" \0CŒ¾¿5”  \0 \f““Cr1?”’"’"\0 \0 \0 \0 \0”"    CL»13”Cêݵ’”CU³Š8’”Ca\v6»’”C«ª*>’”“"” C\0\0\0À’•  \0 ““" \0 ”’““C\0\0€?’"\0¼j"A€€€H\r\0 ¾!\0\f\v \0 恀€\0!\0\v \v \0”!\v \v \vCÊòIq”CÊòIq”\v \vC`B¢\r”C`B¢\r”\v@ \b A€€€„|jr\r\0  “"\0 \0•\v Œ  \bAF\v§\0@@@@ Aÿ\0J\r\0 A‚N\r \0C\0\0€\f”!\0 A›~M\r Aæ\0j!\f\v \0C\0\0\0”!\0 AþK\r Aj!\f\v \0C\0\0€\f”!\0 A¶} A¶}KAÌj!\f\v \0C\0\0\0”!\0 Aý AýIA‚~j!\v \0 AtA€€€üjA€€€üq¾”\v§~|@  a \0 \0aq\r\0 \0  \v@ ½"B ˆ§"A€€À€|j §"r\r\0 \0⁀€\0\v AvAq" \0½"B?ˆ§r!@@@@ B ˆ§Aÿÿÿÿq" §r\r\0D-DTû!\tÀ!\b@@ \0\0\0\v \0\vD-DTû!\t@\v Aÿÿÿÿq" rE\r@@ A€€ÀÿG\r\0 A€€ÀÿG\r#€€€\0Aˆ€€\0j Atj+\0\v A€€ÀÿF\r A€€€ j I\r@@ E\r\0D\0\0\0\0\0\0\0\0!\b A€€€ j I\r\v \0 £™⁀€\0!\b\v@@@ \0\v \bD\\3&¦¡¼ D-DTû!\tÀ \v \bš\vD-DTû!\t@ \bD\\3&¦¡¼ ¡\v#€€€\0A¨€€\0j Atj+\0!\b\v \b\vD-DTû!ù? \0¦\vD-DTû!ù? \0¦\v„#€€€€\0Ak"$€€€€\0@@  j" I\r\0 Aj \0(\0" \0(  At"  K"A\b A\bK"遀€\0 (AG\r\v\0\v (\b! \0 6\0 \0 6 Aj$€€€€\0\v\0@@ AJ\r\0A!A\0!A!\f\v@@@@ E\r\0  A ­€€€\0!\f\v@ \r\0A!\f\vԁ€€\0 A¬€€€\0!\v \r\0A! \0A6\f\v \0 6A\0!\vA\b!\v \0 j 6\0 \0 6\0\v #€€€€\0A k"$€€€€\0A\0!@ A\0H\r\0@@@@ \r\0A!\f\vԁ€€\0 A¬€€€\0"E\rA\0! ! ! !\b@ AI\r\0 Aðÿÿÿq!A\0!\t !@  \tj!@  \tj"\bAj,\0\0"\nAsA€qAv \b,\0\0"\vAsA€qAvj \bAj,\0\0"\fAsA€qAvj \bAj,\0\0"\rAsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bA\bj,\0\0"AsA€qAvj \bA\tj,\0\0"AsA€qAvj \bA\nj,\0\0"AsA€qAvj \bA\vj,\0\0"AsA€qAvj \bA\fj,\0\0"AsA€qAvj \bA\rj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvjAÿqAF\r\0 \t!\f\v AjA A\0 A¿jAÿqAI r:\0\0 AjA A\0 A¿jAÿqAI r:\0\0 A\rjA A\0 A¿jAÿqAI r:\0\0 A\fjA A\0 A¿jAÿqAI r:\0\0 A\vjA A\0 A¿jAÿqAI r:\0\0 A\njA A\0 A¿jAÿqAI r:\0\0 A\tjA A\0 A¿jAÿqAI r:\0\0 A\bjA A\0 A¿jAÿqAI r:\0\0 AjA A\0 A¿jAÿqAI r:\0\0 AjA A\0 A¿jAÿqAI r:\0\0 AjA A\0 A¿jAÿqAI r:\0\0 AjA A\0 A¿jAÿqAI r:\0\0 AjA A\0 \rA¿jAÿqAI \rr:\0\0 AjA A\0 \fA¿jAÿqAI \fr:\0\0 AjA A\0 \nA¿jAÿqAI \nr:\0\0 A A\0 \vA¿jAÿqAI \vr:\0\0 \tAj!\t Apj"AK\r\0\v  \tF\r  \tj!\b  \tj!\v  j!\fA\0!\t@ \b \tj"\n,\0\0"\vA\0H\r  \tjA A\0 \vA¿jAÿqAI \vr:\0\0  \tAj"\tG\r\0\v \f!\v  6  6\f  6\b\f\v  6\f  6\b   \tj"\v6  \tF\r\0 \n  \tkj!  j!  \tj" j! Aj" \tj!  k \tj!  k \tj!A\0!\f@@@@ \n,\0\0"AJ\r\0 \n-\0A?q!\t Aq!\b@@ A_K\r\0 \bAt \tr! \nAj!\f\v \tAt \n-\0A?qr!\t@ ApO\r\0 \t \bA\ftr! \nAj!\f\v \tAt \n-\0A?qr \bAtA€€ð\0qr! \nAj!\v \f \nk j!@ A£F\r\0 !\f !\n\f\v@  \fj"E\r\0@  I\r\0  \fjE\r\f\v  \fj,\0\0A@H\r\v  \fj!A\0!\n@@Aƒ!  F\r@ Aj"\t,\0\0"\bAJ\r\0@@ A~j"\t-\0\0"À"\rA@H\r\0 Aq!\f\v@@ A}j"\t-\0\0"À"A@H\r\0 Aq!\f\v A|j"\t-\0\0AqAt A?qr!\v At \rA?qr!\v At \bA?qr"\bA€€Ä\0F\r\v \t!@@ \nAq\r\0@ \bA€I\r\0 \bA§M\r \bÿ€€\0E\rA€€Ä\0!\tA\0!\n\f\vA€€Ä\0!\tA\0!\n@ \bAYj"AK\r\0A tA q\r\v \bA¢j\0\0\vA!\n \b!\t\v \tA€€Ä\0F\r\0\v@ \tA_qA¿jAI\r\0 \tAªI\r \t€‚€€\0E\r\v@  \fjE\r\0@ Aj I\r\0  \fj\r\b\f\v  \fjAj,\0\0A@H\r\v  \fjAj!A\0!\t@A‚!  F\r@@ ,\0\0"\bAL\r\0 Aj! \bAÿq!\b\f\v -\0A?q!\n \bAq!@ \bA_K\r\0 At \nr!\b Aj!\f\v \nAt -\0A?qr!\n@ \bApO\r\0 \n A\ftr!\b Aj!\f\v \nAt -\0A?qr AtA€€ð\0qr"\bA€€Ä\0F\r Aj!\v@@ \tAq\r\0@ \bA€I\r\0 \bA§M\r \bÿ€€\0E\rA€€Ä\0!\nA\0!\t\f\vA€€Ä\0!\nA\0!\t@ \bAYj"AK\r\0A tA q\r\v \bA¢j\0\0\vA!\t \b!\n\v \nA€€Ä\0F\r\0\v@ \nAßÿÿ\0qA¿jAI\r\0 \nAªI\r \n€‚€€\0E\r\vAƒ!\v \v!@ (\b \vkAK\r\0 A\bj \vA聀€\0 (!\v (\f" j" :\0 AÏ:\0\0  \vAj"\v6 !\f !\n\f\v Aÿq! \f \nk \nAj"\bj!\f \b!\n\v Aj ý€€\0@@ ("\r\0@@ ("A€I"E\r\0A!\b\f\v@ A€O\r\0A!\b\f\vAA A€€I!\b\v \v!\t@ \b (\b \vkM\r\0 A\bj \v \b聀€\0 (\f! (!\t\v  \tj!\t@@ \r\0 A?qA€r! Av!\r A€O\r \t :\0 \t \rAÀr:\0\0\f\v \t :\0\0\f\v A\fv! \rA?qA€r!\r@ AÿÿK\r\0 \t :\0 \t \r:\0 \t Aàr:\0\0\f\v \t :\0 \t \r:\0 \t A?qA€r:\0 \t AvApr:\0\0\f\v (!\b@@@@@ ("\t\r\0@@ \bA€I"\rE\r\0A!\t\f\v@ \bA€O\r\0A!\t\f\vAA \bA€€I!\t\v \v!@ \t (\b \vkM\r\0 A\bj \v \t聀€\0 (\f! (!\v  j! \r\r \bA?qA€r! \bAv!\r@ \bA€O\r\0  :\0  \rAÀr:\0\0\f\v \bA\fv! \rA?qA€r!\r@ \bAÿÿK\r\0  :\0  \r:\0  Aàr:\0\0\f\v  :\0  \r:\0  A?qA€r:\0  \bAvApr:\0\0\f\v@@ \bA€I"E\r\0A!\f\v@ \bA€O\r\0A!\f\vAA \bA€€I!\v \v!\r@  (\b \vkM\r\0 A\bj \v 聀€\0 (\f! (!\r\v  \rj! \r \bA?qA€r!\r \bAv!@ \bA€O\r\0  \r:\0  AÀr:\0\0\f\v \bA\fv! A?qA€r!@ \bAÿÿK\r\0  \r:\0  :\0  Aàr:\0\0\f\v  \r:\0  :\0  A?qA€r:\0  \bAvApr:\0\0\f\v  \b:\0\0\f\v  \b:\0\0\v   \vj"\b6@@ A€I"\rE\r\0A!\v\f\v@ A€O\r\0A!\v\f\vAA A€€I!\v\v \b!@ \v (\b \bkM\r\0 A\bj \b \v聀€\0 (!\v (\f" j!@@ \r\r\0 A?qA€r!\r Av!@ A€O\r\0  \r:\0  AÀr:\0\0\f\v A\fv! A?qA€r!@ AÿÿK\r\0  \r:\0  :\0  Aàr:\0\0\f\v  \r:\0  :\0  A?qA€r:\0  AvApr:\0\0\f\v  :\0\0\v  \v \bj"6@@ \tA€I"E\r\0A!\b\f\v@ \tA€O\r\0A!\b\f\vAA \tA€€I!\b\v !\v@ \b (\b kM\r\0 A\bj  \b聀€\0 (\f! (!\v\v  \vj!\v@@ \r\0 \tA?qA€r! \tAv!\r@ \tA€O\r\0 \v :\0 \v \rAÀr:\0\0\f\v \tA\fv! \rA?qA€r!\r@ \tAÿÿK\r\0 \v :\0 \v \r:\0 \v Aàr:\0\0\f\v \v :\0 \v \r:\0 \v A?qA€r:\0 \v \tAvApr:\0\0\f\v \v \t:\0\0\v  \b j"\v6\f\v  \t \vj"\b6@@ A€I"E\r\0A!\t\f\v@ A€O\r\0A!\t\f\vAA A€€I!\t\v \b!\v@ \t (\b \bkM\r\0 A\bj \b \t聀€\0 (!\v\v (\f" \vj!\v@@ \r\0 A?qA€r! Av!\r@ A€O\r\0 \v :\0 \v \rAÀr:\0\0\f\v A\fv! \rA?qA€r!\r@ AÿÿK\r\0 \v :\0 \v \r:\0 \v Aàr:\0\0\f\v \v :\0 \v \r:\0 \v A?qA€r:\0 \v AvApr:\0\0\f\v \v :\0\0\v  \t \bj"\v6\f\v  \b \vj"\v6\v \n G\r\0\v\v \0 (6\b \0 )\b7\0 A j$€€€€\0\v\0\vÉ#€€€€\0A k"$€€€€\0A\0!@ A\0H\r\0@@@@ \r\0A!\f\vԁ€€\0 A¬€€€\0"E\r@@ AO\r\0A\0! ! ! !\b\f\v Aðÿÿÿq!A\0!\t !@  \tj!@  \tj"\bAj,\0\0"\nAsA€qAv \b,\0\0"\vAsA€qAvj \bAj,\0\0"\fAsA€qAvj \bAj,\0\0"\rAsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bA\bj,\0\0"AsA€qAvj \bA\tj,\0\0"AsA€qAvj \bA\nj,\0\0"AsA€qAvj \bA\vj,\0\0"AsA€qAvj \bA\fj,\0\0"AsA€qAvj \bA\rj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvj \bAj,\0\0"AsA€qAvjAÿqAF\r\0 \t!\f\v AjA A\0 AŸjAÿqAI s:\0\0 AjA A\0 AŸjAÿqAI s:\0\0 A\rjA A\0 AŸjAÿqAI s:\0\0 A\fjA A\0 AŸjAÿqAI s:\0\0 A\vjA A\0 AŸjAÿqAI s:\0\0 A\njA A\0 AŸjAÿqAI s:\0\0 A\tjA A\0 AŸjAÿqAI s:\0\0 A\bjA A\0 AŸjAÿqAI s:\0\0 AjA A\0 AŸjAÿqAI s:\0\0 AjA A\0 AŸjAÿqAI s:\0\0 AjA A\0 AŸjAÿqAI s:\0\0 AjA A\0 AŸjAÿqAI s:\0\0 AjA A\0 \rAŸjAÿqAI \rs:\0\0 AjA A\0 \fAŸjAÿqAI \fs:\0\0 AjA A\0 \nAŸjAÿqAI \ns:\0\0 A A\0 \vAŸjAÿqAI \vs:\0\0 \tAj!\t Apj"AK\r\0\v  \tF\r  \tj!\b  \tj!\v  j!\n@ \b,\0\0"\tA\0H\r A A\0 \tAŸjAÿqAI \ts:\0\0 Aj! \bAj!\b Aj! Aj"\r\0\v \n!\v  6  6\f  6\b\f\v  6  6\f  6\b E\r\0 \b j!\v@@@ \b,\0\0"AL\r\0 \bAj!\b Aÿq!\f\v \b-\0A?q! Aq!\t@ A_K\r\0 \tAt r! \bAj!\b\f\v At \b-\0A?qr!@ ApO\r\0  \tA\ftr! \bAj!\b\f\v At \b-\0A?qr \tAtA€€ð\0qr! \bAj!\b\v Aj þ€€\0@@ ("\r\0@@ ("A€I"\nE\r\0A!\f\v@ A€O\r\0A!\f\vAA A€€I!\v !\t@  (\b kM\r\0 A\bj  聀€\0 (\f! (!\t\v  \tj!\t@@ \n\r\0 A?qA€r!\n Av!\f@ A€O\r\0 \t \n:\0 \t \fAÀr:\0\0\f\v A\fv!\r \fA?qA€r!\f@ AÿÿK\r\0 \t \n:\0 \t \f:\0 \t \rAàr:\0\0\f\v \t \n:\0 \t \f:\0 \t \rA?qA€r:\0 \t AvApr:\0\0\f\v \t :\0\0\v  j!\f\v (!@ ("\tE\r\0@@ A€I"\rE\r\0A!\n\f\v@ A€O\r\0A!\n\f\vAA A€€I!\n\v !\f@ \n (\b kM\r\0 A\bj  \n聀€\0 (\f! (!\f\v  \fj!@@ \r\r\0 A?qA€r!\f Av!\r@ A€O\r\0  \f:\0  \rAÀr:\0\0\f\v A\fv! \rA?qA€r!\r@ AÿÿK\r\0  \f:\0  \r:\0  Aàr:\0\0\f\v  \f:\0  \r:\0  A?qA€r:\0  AvApr:\0\0\f\v  :\0\0\v  \n j"6@@ A€I"\fE\r\0A!\f\v@ A€O\r\0A!\f\vAA A€€I!\v !\n@  (\b kM\r\0 A\bj  聀€\0 (!\n\v (\f" \nj!\n@@ \f\r\0 A?qA€r!\f Av!\r@ A€O\r\0 \n \f:\0 \n \rAÀr:\0\0\f\v A\fv! \rA?qA€r!\r@ AÿÿK\r\0 \n \f:\0 \n \r:\0 \n Aàr:\0\0\f\v \n \f:\0 \n \r:\0 \n A?qA€r:\0 \n AvApr:\0\0\f\v \n :\0\0\v   j"6@@ \tA€I"\nE\r\0A!\f\v@ \tA€O\r\0A!\f\vAA \tA€€I!\v !@  (\b kM\r\0 A\bj  聀€\0 (\f! (!\v  j!@ \n\r\0 \tA?qA€r!\n \tAv!\f@ \tA€O\r\0  \n:\0  \fAÀr:\0\0  j!\f\v \tA\fv!\r \fA?qA€r!\f@ \tAÿÿK\r\0  \n:\0  \f:\0  \rAàr:\0\0  j!\f\v  \n:\0  \f:\0  \rA?qA€r:\0  \tAvApr:\0\0  j!\f\v  \t:\0\0  j!\f\v@@ A€I"\fE\r\0A!\t\f\v@ A€O\r\0A!\t\f\vAA A€€I!\t\v !\n@ \t (\b kM\r\0 A\bj  \t聀€\0 (\f! (!\n\v  \nj!@@ \f\r\0 A?qA€r!\n Av!\f@ A€O\r\0  \n:\0  \fAÀr:\0\0\f\v A\fv!\r \fA?qA€r!\f@ AÿÿK\r\0  \n:\0  \f:\0  \rAàr:\0\0\f\v  \n:\0  \f:\0  \rA?qA€r:\0  AvApr:\0\0\f\v  :\0\0\v  \t j"6@@ A€I"\nE\r\0A!\f\v@ A€O\r\0A!\f\vAA A€€I!\v !\t@  (\b kM\r\0 A\bj  聀€\0 (!\t\v (\f" \tj!\t@ \n\r\0 A?qA€r!\n Av!\f@ A€O\r\0 \t \n:\0 \t \fAÀr:\0\0  j!\f\v A\fv!\r \fA?qA€r!\f@ AÿÿK\r\0 \t \n:\0 \t \f:\0 \t \rAàr:\0\0  j!\f\v \t \n:\0 \t \f:\0 \t \rA?qA€r:\0 \t AvApr:\0\0  j!\f\v \t :\0\0  j!\v  6 \b \vG\r\0\v\v \0 (6\b \0 )\b7\0 A j$€€€€\0\v\0\võ\v\b~~~~#€€€€\0Ak"$€€€€\0@@@ )\0"B\0Q\r\0 B€€€€€€€€ Z\r\0 E\r\0A  / y"§k"\bkÁAÐ\0lA°§jAÎm"AÐ\0K\r\0 #€€€\0A˜á€€\0j Atj")\0B\0  †B\0Š‚€€\0 /\n!\t )\0B?ˆ )\b|"A@ \b /\bjk"­"ˆ§!\n@B †"\vB|"\f ƒ"PE\r\0 A\nK\r#€€€\0A¨ë€€\0j AtjA|j(\0 \nK\r\v A?q!\r@@@ \nAÎ\0I\r\0 \nAÀ„=I\r@ \nA€Â×/I\r\0A\bA\t \nA€”ëÜI"\b!A€Â×/A€”ëÜ \b!\b\f\vAA \nA€­âI"\b!AÀ„=A€­â \b!\b\f\v@ \nAä\0I\r\0AA \nAèI"\b!Aä\0Aè \b!\b\f\vA\nA \nA\tK"!\b\f\vAA \nA I"\b!AÎ\0A  \b!\b\v \r­!@@@@@@@@@@@  \tk"AjÁ" Á"L\r\0 Aÿÿq!  kÁ   k I"\rAj!\tA\0!@ \n \bn!  F\r\f \n  \blk!\n  j A0j:\0\0 \t F\r  F\r Aj! \bA\nI! \bA\nn!\b E\r\0\f\f\v\v B\n€!@@@@ \b­ †" \vX\r\0  \v} \vX\r@  } X\r\0  B†}B †Z\r\v  \vV\r\f\r\v \0A\x006\0\f\v \0A\x006\0\f\v \0 ;\b \0A\x006 \0 6\0\f\r\v   \v}"} V\r\tA\0!@ AjÁ"\b L\r\0 A1:\0\0A!\v \0 \b;\b \0 6 \0 6\0\f\f\v \b­ †" \vX\r  \v} \vX\r@  \n­ † |"} X\r\0  B†}B †Z\r\v  \vX\r   \v}"} V\r  \rj!A\0! !\b@@@ \r F\r Aj! \bAj"\b \rj"\n-\0\0A9F\r\0\v \n \n-\0\0Aj:\0\0 Aj"E\r \nAjA0 ü\v\0\f\v A1:\0\0@ \rAj"E\r\0 AjA0 ü\v\0\v AjÁ" L\r\0 \r O\r\0 A0:\0\0 \rAj!\r\v \r K\r\t\f\v Aj! AjA?q­!B!@@ " ˆP\r\0 \0A\x006\0\f\f\v  O\r\t  j B\n~" ˆ§A0j:\0\0 B\n~!  \fƒ! \r Aj"G\r\0\v \v X\r \v } X\r@ \v } X\r\0 \v B†} B~Z\r\v  X\r \v  }"} V\r  \rj!A\0! !\b@@@ \r F\r Aj! \bAj"\b \rj"\n-\0\0A9F\r\0\v \n \n-\0\0Aj:\0\0 Aj"E\r \nAjA0 ü\v\0\f\v A1:\0\0@ \rAj"E\r\0 AjA0 ü\v\0\v AjÁ" L\r\0 \r O\r\0 A0:\0\0 \rAj!\r\v \r K\r\b\v \0 ;\b \0 \r6 \0 6\0\f\t\v \0A\x006\0\f\b\v \0A\x006\0\f\v \0A\x006\0\f\v \0A\x006\0\f\v \0A\x006\0\f\v \0A\x006\0\f\v \0A\x006\0\f\v\0\v \0A\x006\0\v Aj$€€€€\0\v›(~#€€€€\0AÀk"$€€€€\0@@ )\0"B\0Q\r\0 )\b"B\0Q\r\0 )"\bB\0Q\r\0 \b B…V\r\0  T\r\0 .!  >\f  B ˆ"\b> AA \bP6¬ AjA\0A˜ü\v\0 A´jA\0Aœü\v\0 A6° A6Ð ¬ B|y}BšÁè~B€¡Í ´|B ˆ§"\tÁ!\n@@ A\0H\r\0 A\fj ø€€\0\f\v A°jA\0 kÁø€€\0\v@@ \nAJ\r\0 A\fjA\0 \nkAÿÿqƒ‚€€\0\f\v A°j \tAÿÿqƒ‚€€\0\v Aœj A°jA¤ü\n\0\0 !\v@ A\nI\r\0 AœjAxj!\f !\v@ (¼"A)O\r@ E\r\0@@ At"A|j"\t\r\0 Aœj j!B\0!\f\v \tAvAj"\tAq!\r \f j! \tAþÿÿÿq!\tB\0!@ Aj" B † 5\0„"B€”ëÜ€"\b>\0   \bB€”ëÜ~}B † 5\0„"B€”ëÜ€"\b>\0  \bB€”ëÜ~}! Axj! \tA~j"\t\r\0\v \rE\r A\bj!\v A|j" B † 5\0„B€”ëÜ€>\0\v \vAwj"\vA\tK\r\0\v\v#€€€\0A¨ë€€\0j \vAtj(\0At"\tE\r\0 (¼"A)O\r\0@@ \r\0A\0!\f\v \t­!@@@ At"A|j"\t\r\0 Aœj j!B\0!\b\f\v \tAvAj"\tAq!\v \tAþÿÿÿq!\t  AœjjAxj!B\0!\b@ Aj" \bB † 5\0„"\b €">\0  \b  ~}B † 5\0„"\b €">\0 \b  ~}!\b Axj! \tA~j"\t\r\0\v \vE\r A\bj!\v A|j" \bB † 5\0„ €>\0\v (¼!\v (¬"   K"A(K\r\0@@ \r\0A\0!\f\vA\0!\vA\0!\r@@ AF\r\0 Aq! A>q!A\0!\r Aœj! A\fj!\tA\0!\v@  \t(\0"\f (\0j" \vAqj"6\0 Aj"\v \tAj(\0" \v(\0j"\v  \fI  Irj"6\0 \v I  \vIr!\v \tA\bj!\t A\bj!  \rAj"\rG\r\0\v E\r\v Aœj \rAt"j"\t A\fj j(\0" \t(\0j" \vj"\t6\0  I \t Ir!\v\v \vE\r\0 A(F\r Aœj AtjA6\0 Aj!\v  6¼ (Ð"   K"A)O\r\0 At! AœjA|j!\t@@@ E\r \t j(\0" A|j" A°jj(\0"\vF\r\0\v  \vO\r\0@ \r\0A\0! A\x006¬\f\v At"\rA|j"AvAj"\tAq!\v@@@ A\fO\r\0B\0! A\fj!\f\v \tAüÿÿÿq!\tB\0! A\fj!@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \tA|j"\t\r\0\v \vE\r\v \vAt!\t@  5\0B\n~ |">\0 Aj! B ˆ! \tA|j"\t\r\0\v\v@ P\r\0 A(F\r A\fj \rj §6\0 Aj!\v  6¬\f\v \nAj!\n\vA\0!A!@@ \nÁ" Á"\tH"\r\0 \n kÁ   \tk I"\vE\r\0 AÔj A°jA¤ü\n\0\0 (ô"E\r A(K\r !@ AÔj AtjA|j(\0"\tAJ\r\0 A(F\r AÔj Atj \tAv6\0 Aj!\v@ AF\r\0 !\t@ Aq\r\0 AÔj Aj"\tAtj" (\0At AÔj AtjAxj(\0Avr6\0\v AF\r\0 \tAt AÔjjAtj!@ A\bj" (\0At Aj"(\0"\rAvr6\0  \rAt (\0Avr6\0 Axj! \tA~j"\tAK\r\0\v\v  6ô  (ÔAt6Ô Aøj A°jA¤ü\n\0\0 (˜"E\r A(K\r !@ Aøj AtjA|j(\0Av"\tE\r\0 A(F\r Aøj Atj \t6\0 Aj!\v@ AF\r\0 !\t@ Aq\r\0 Aøj Aj"\tAtj" (\0At Aøj AtjAxj(\0Avr6\0\v AF\r\0 \tAt AøjjAtj!@ A\bj" (\0At Aj"(\0"\rAvr6\0  \rAt (\0Avr6\0 Axj! \tA~j"\tAK\r\0\v\v  6˜  (øAt6ø Aœj A°jA¤ü\n\0\0 (¼"E\r A(K\r !@ Aœj AtjA|j(\0Av"\tE\r\0 A(F\r Aœj Atj \t6\0 Aj!\v@ AF\r\0 !\t@ Aq\r\0 Aœj Aj"\tAtj" (\0At Aœj AtjAxj(\0Avr6\0\v AF\r\0 \tAt AœjjAtj!@ A\bj" (\0At Aj"(\0"\rAvr6\0  \rAt (\0Avr6\0 Axj! \tA~j"\tAK\r\0\v\v  6¼  (œAt6œ A°jA|j! AÔjA|j! AøjA|j! AœjA|j!A\0!@ ! A)O\r Aj! At!A\0!@@@@  F\r A\fj j!\t Aj! \t(\0E\r\0\v    K"At!@@@ E\r  j!\t A|j" A\fjj(\0" \t(\0"\tF\r\0\vA\0!  \tI\r\vA!\rA\0!\f@@ AF\r\0 Aq! A~q!A\0!\fA!\r A\fj! Aœj!\t@  (\0" \t(\0Asj" \rAqj"6\0 Aj"\r \r(\0" \tAj(\0Asj"\r  I  Irj"6\0 \r I  \rIr!\r \tA\bj!\t A\bj!  \fAj"\fG\r\0\v E\r\v A\fj \fAt"j"\t \t(\0"\t Aœj j(\0Asj" \rj"6\0  \tI  Ir!\r\v \rE\r  6¬A\b! !\v    K"At!@ E\r  j!\t A|j" A\fjj(\0" \t(\0"\tF\r\0\v  \tO\r !\f\v \v K\r \v F\r \v k"E\r  jA0 ü\v\0\f\vA!\rA\0!\f@@ AF\r\0 Aq! A~q!A\0!\fA!\r A\fj! Aøj!\t@  (\0" \t(\0Asj" \rAqj"6\0 Aj"\r \r(\0" \tAj(\0Asj"\r  I  Irj"6\0 \r I  \rIr!\r \tA\bj!\t A\bj!  \fAj"\fG\r\0\v E\r\v A\fj \fAt"j"\t \t(\0"\t Aøj j(\0Asj" \rj"6\0  \tI  Ir!\r\v \rE\r  6¬ Ar!\v    K" At!@@@ E\r  j!\t A|j" A\fjj(\0" \t(\0"\tF\r\0\v  \tO\r\0 ! \f\vA!\rA\0!\f@@ AF\r\0 Aq! A~q!A\0!\fA!\r A\fj! AÔj!\t@  (\0" \t(\0Asj" \rAqj"6\0 Aj"\r \r(\0" \tAj(\0Asj"\r  I  Irj"6\0 \r I  \rIr!\r \tA\bj!\t A\bj!  \fAj"\fG\r\0\v E\r\v A\fj \fAt"j"\t \t(\0"\t AÔj j(\0Asj" \rj"6\0  \tI  Ir!\r\v \rE\r  6¬ Aj!\v   K"A)O\r At!@@@ E\r  j!\t A|j" A\fjj(\0" \t(\0"\tF\r\0\v  \tO\r\0 !\f\v@ E\r\0A!\rA\0!\f@@ AF\r\0 Aq! A>q!A\0!\fA!\r A\fj! A°j!\t@  (\0" \t(\0Asj" \rAqj"6\0 Aj"\r \r(\0" \tAj(\0Asj"\r  I  Irj"6\0 \r I  \rIr!\r \tA\bj!\t A\bj!  \fAj"\fG\r\0\v E\r\v A\fj \fAt"j"\t \t(\0"\t A°j j(\0Asj" \rj"6\0  \tI  Ir!\r\v \rE\r\v  6¬ Aj!\v  F\r  j A0j:\0\0@@ \r\0A\0!\f\v At"\fA|j"AvAj"\tAq!\r@@@ A\fO\r\0B\0! A\fj!\f\v \tAüÿÿÿq!\tB\0! A\fj!@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \tA|j"\t\r\0\v \rE\r\v \rAt!\t@  5\0B\n~ |">\0 Aj! B ˆ! \tA|j"\t\r\0\v\v P\r\0 A(F\r A\fj \fj §6\0 Aj!\v  6¬  \vG\r\0\vA\0!\f\vA\0!\v\v@ E\r\0 At"\fA|j"AvAj"\tAq!\r@@@ A\fO\r\0B\0! A°j!\f\v \tAüÿÿÿq!\tB\0! A°j!@  5\0B~ |">\0 Aj" 5\0B~ B ˆ|">\0 A\bj" 5\0B~ B ˆ|">\0 A\fj" 5\0B~ B ˆ|">\0 B ˆ! Aj! \tA|j"\t\r\0\v \rE\r\v \rAt!\t@  5\0B~ |">\0 Aj! B ˆ! \tA|j"\t\r\0\v\v@ PE\r\0 !\f\v A(F\r A°j \fj §6\0 Aj!\v  6Ð    K"A)O\r\0 At! A\fjA|j!\r A°jA|j!\f@@@@ E\r \f j!\t \r j! A|j! (\0" \t(\0"\tF\r\0\v  \tK  \tIkAÿq\0\v@ E\r\0A\0!\v\f\v \vAj" O\r  j-\0\0AqE\r\v \v K\r  \vj!\rA\0! !\t@@ \v F\r Aj! \tAj"\t \vj"-\0\0A9F\r\0\v  -\0\0Aj:\0\0 Aj"E\r AjA0 ü\v\0\f\vA1!@ \r\0 A1:\0\0A0! \vAj"\tE\r\0 AjA0 \tü\v\0\v \nAj!\n \r\0 \v O\r\0 \r :\0\0 \vAj!\v\v \v M\r\v\0\v \0 \n;\b \0 \v6 \0 6\0 AÀj$€€€€\0\vœ~#€€€€\0Ak"$€€€€\0@@ \0/\f"\r\0 \0(\0 \0( ù€€\0!\f\v  )\b7\b  )\x007\0@@@ \0)\b"§"A€€€\bq\r\0 (!\f\v \0(\0 (\0 (" \0((\f€€€\0€€€€\0\r \0 A€€€ÿyqA°€€€r"6\b B7\0A\0!A\0  Aÿÿqk"  K!\v@ (\f"E\r\0 (\b!@@@@@@ /\0\0\0\v Aj(\0!\b\f\v Aj/\0"\b\rA!\b\f\v A\bj(\0!\b\f\v \bAöÿj \bAœÿjq \bA˜ø7j \bAð±jqsAvAj!\b\vA  \bj"\b \b I! A\fj! Aj"\r\0\v\v@  AÿÿqI\r\0 \0(\0 \0( ù€€\0! \0 7\b\f\v  k!\tA\0!A\0!@@@ AvAq\0\0\v \t!\f\v \tAþÿqAv!\v Aÿÿÿ\0q!\b \0(! \0(\0!@@ Aÿÿq AÿÿqO\r Aj!  \b (‚€€€\0€€€€\0E\r\0\f\v\v   ù€€\0\r\0A\0! \t kAÿÿq!@@ Aÿÿq"\t I! \t O\r Aj!  \b (‚€€€\0€€€€\0E\r\0\v\v \0 7\b\f\vA!\v Aj$€€€€\0 \vò\n~~~#€€€€\0Aà\bk"$€€€€\0 ½"Bÿÿÿÿÿÿÿƒ"B€€€€€€€\b„ B†Bþÿÿÿÿÿÿƒ B4ˆ§Aÿq""\bBƒ!\tA!\n@@@@@ P"\vAA \vA B€€€€€€€øÿ\0ƒ"P B€€€€€€€øÿ\0Q\0\vA!\n\f\vA!\n\f\v AÍwj!\f \t§As!\nB!\r\f\vB€€€€€€€ \bB† \bB€€€€€€€\bQ"\f!\bBB \f!\r \t§As!\nAËwAÌw \f j!\f\v Aÿÿq!\v  \f;Ø\b  \r7Ð\b B7È\b  \b7À\b  \n:\0Ú\b@@@@ \nAÿqAK\r\0#€€€\0!\nAtA \fÁ"\fA\0H \fl"\fAÀý\0I\r\f\v@@@ \nA~j"AÿqE\r\0A!\n#€€€\0"\fAÿ¶€€\0j" \fA€·€€\0j B\0S"\f A \f !\fA B?ˆ§ ! AÿqAG\r A;€\b Aÿÿq\rA!\n A6ˆ\b #€€€\0A‡·€€\0j6„\b\f\v A6ˆ\b A;€\b #€€€\0A·€€\0j6„\bA!\fA\0!A!\n\f\v A6ˆ\b A;€\b #€€€\0A„·€€\0j6„\b\f\v  \v6\b A\0;Œ\bA!\n A6ˆ\b #€€€\0Aˆ·€€\0j6„\b\f\v \nAÿ¶€€\0j" \nA€·€€\0j B\0S"\n! A \n! B?ˆ§! A€\bj AÀ\bj  \fAvAj"\fA\0 kA€€~ ÁAJ"\n쁀€\0 \nÁ!\n@@ (€\bE\r\0  (ˆ\b6¸\b  )€\b7°\b\f\v A°\bj AÀ\bj  \f \n큀€\0\v   !\fA  !@ .¸\b" \nL\r\0 (´\b"E\r (°\b"\n-\0\0A0M\r A;€\b@@@@ AH\r\0  \n6„\b  M\r A;˜\b A6”\b A;Œ\b #€€€\0AÔ·€€\0j6\b  6ˆ\b   k"6 \b  \n j6œ\b \v K\rA!\n\f\v  \n6œ\b A;˜\b A6ˆ\b #€€€\0Aˆ·€€\0j6„\b A\0;Œ\b A\0 k"6\b  6 \bA!\n \v M\r \v k"\v M\r \v j!\v\f\v A\0;Œ\b  6ˆ\b   k6\b@ Aÿÿq\r\0A!\n\f\v A6 \b A;˜\b #€€€\0AÔ·€€\0j6œ\b\f\v \v k!\v\v  \v6¨\b A\0;¤\bA!\n\f\vA!\n A;€\b@ Aÿÿq\r\0A!\n A6ˆ\b #€€€\0A‡·€€\0j6„\b\f\v  \v6\b A\0;Œ\b A6ˆ\b #€€€\0Aˆ·€€\0j6„\b\v  \n6¼\b  6´\b  \f6°\b  A€\bj6¸\b \0 A°\bj€\0!\n Aà\bj$€€€€\0 \n\v\0\v“\v\n~~\b~~~#€€€€\0A0k"$€€€€\0@@@@@@@ )\0"B\0Q\r\0 )\b"B\0Q\r\0 )"B\0Q\r\0  |"\b T\r\0  T\r\0 AM\r\0 \bB€€€€€€€€ Z\r\0  }" \by"†"\t ˆ R\r\0  †" ˆ R\r\0A  / §k"\nkÁAÐ\0lA°§jAÎm"AÐ\0K\r\0 A j#€€€\0A˜á€€\0j Atj")\0"B\0 \b †B\0Š‚€€\0 Aj B\0 \tB\0Š‚€€\0  B\0 B\0Š‚€€\0BA\0 \n /\bjk"\n­"†"\vB|!\f /\n! \nA?q!\r )B?‡! )\0B?ˆ! )\b! )!@@@ )(" ) B?ˆ"|"B|" ˆ§"AÎ\0I\r\0 AÀ„=I\r@ A€Â×/I\r\0A\bA\t A€”ëÜI"\n!A€Â×/A€”ëÜ \n!\n\f\vAA A€­âI"\n!AÀ„=A€­â \n!\n\f\v@ Aä\0I\r\0AA AèI"\n!Aä\0Aè \n!\n\f\vA\nA A\tK"!\n\f\vAA A I"\n!AÎ\0A  \n!\n\v  \fƒ! \r­!  |!  kAj!  } |B|"\t \fƒ!A\0!@  \nn!\r  F\r  j" \rA0j":\0\0@@@ \t  \r \nlk"­ †" |"\bV\r\0  G\rB!\b@ ! \b!\t Aj"\n O\r  jAj B\n~" ˆ§A0j":\0\0 \tB\n~!\b \n! B\n~"  \fƒ"X\r\0\v  }" \vT! \b  }~" \b|!   \b}"\fZ\r  \vZ\r\f\v \t \b}"\f \n­ †"T!\n  }"B|! \b B|"\vZ\r \f T\r  }  |}!  | }  |" |}B|!  | | } } |!B\0!@@ \b |" \vT\r\0  | Z\r\0A\0!\n\f\v  Aj":\0\0  |"\f T!\n  \vZ\r  |!  }! !\b \f T\r\f\0\v\v  \nj!\r \v \f}!B\0 }! B\n~ \v}!@@  \v|"\b \fT\r\0 \f |  |Z\r\0A\0!\f\v \r Aj":\0\0  |" \vT! \b \fZ\r  \v}! \b!  \vT\r\f\0\v\v Aj! \nA\nI!\r \nA\nn!\n \rE\r\0\v\v\0\v \b!\v@  X\r\0 \n\r\0@  |" T\r\0  }  }T\r\v \0A\x006\0\f\v@@ BT\r\0  \tB||X\r\v \0A\x006\0\f\v \0 ;\b \0 Aj6\f\v !\b\v@  \bX\r\0 \r\0@ \b \v|" T\r\0  \b}  }T\r\v \0A\x006\0\f\v@@ \tB~ \bV\r\0 \b  \tBX~|X\r\v \0A\x006\0\f\v \0 ;\b \0 \nAj6\v \0 6\0\v A0j$€€€€\0\vâ1~#€€€€\0A \nk"$€€€€\0@ )\0"B\0Q\r\0 )\b"B\0Q\r\0 )"B\0Q\r\0  |"\b T\r\0  T\r\0 AM\r\0 ,\0!\t .!  >\0  B ˆ"> AA P6  A\bjA\0A˜ü\v\0  >¤  B ˆ">¨ AA P6Ä A¤jA\bjA\0A˜ü\v\0  >È  B ˆ">Ì AA P6è AÈjA\bjA\0A˜ü\v\0 AðjA\0Aœü\v\0 A6ì A6Œ ¬ \bB|y}BšÁè~B€¡Í ´|B ˆ§"\nÁ!\v@@ A\0H\r\0  ø€€\0 A¤j ø€€\0 AÈj ø€€\0\f\v AìjA\0 kÁø€€\0\v@@ \vAJ\r\0 A\0 \vkAÿÿq"ƒ‚€€\0 A¤j ƒ‚€€\0 AÈj ƒ‚€€\0\f\v Aìj \nAÿÿqƒ‚€€\0\v Aü\bj A¤ü\n\0\0 (è"\f (œ\n" \f K"\rA(K\r\0@@ \r\r\0A\0!\r\f\vA\0!A\0!@@ \rAF\r\0 \rAq! \rA>q!A\0! Aü\bj! AÈj!\nA\0!@  \n(\0" (\0j" Aqj"6\0 Aj" \nAj(\0" (\0j"  I  Irj"6\0  I  Ir! \nA\bj!\n A\bj!  Aj"G\r\0\v E\r\v Aü\bj At"j"\n AÈj j(\0" \n(\0j" j"\n6\0  I \n Ir!\v E\r\0 \rA(F\r Aü\bj \rAtjA6\0 \rAj!\r\v  \r6œ\n \r (Œ" \r K"A)O\r\0 At! Aü\bjA|j!@@@ \r\0A\0!\f\v  j!\n A|j" Aìjj(\0" \n(\0"\nF\r\0\v  \nK  \nIk!\v@@  \tH\r\0 ( "A)O\r@@ \r\0A\0!\f\v At"A|j"AvAj"\nAq!@@@ A\fO\r\0B\0! !\f\v \nAüÿÿÿq!\nB\0! !@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \nA|j"\n\r\0\v E\r\v At!\n@  5\0B\n~ |">\0 Aj! B ˆ! \nA|j"\n\r\0\v\v P\r\0 A(F\r  j §6\0 Aj!\v  6  (Ä"A)O\rA\0!A\0!@ E\r\0 At"A|j"AvAj"\nAq!@@@ A\fO\r\0B\0! A¤j!\f\v \nAüÿÿÿq!\nB\0! A¤j!@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \nA|j"\n\r\0\v E\r\v At!\n@  5\0B\n~ |">\0 Aj! B ˆ! \nA|j"\n\r\0\v\v@ PE\r\0 !\f\v A(F\r A¤j j §6\0 Aj!\v  6Ä@ \fE\r\0 \fAt"A|j"AvAj"\nAq!@@@ A\fO\r\0B\0! AÈj!\f\v \nAüÿÿÿq!\nB\0! AÈj!@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \nA|j"\n\r\0\v E\r\v At!\n@  5\0B\n~ |">\0 Aj! B ˆ! \nA|j"\n\r\0\v\v@ PE\r\0  \f"6è\f\v \fA(F\r AÈj j §6\0 \fAj!\v  6è\f\v \vAj!\v \f!\v Aj AìjA¤ü\n\0\0 (°"E\r\0 A(K\r\0 !@ Aj AtjA|j(\0"\nAJ\r\0 A(F\r Aj Atj \nAv6\0 Aj!\v@ AF\r\0 !\n@ Aq\r\0 Aj Aj"\nAtj" (\0At Aj AtjAxj(\0Avr6\0\v AF\r\0 \nAt AjjAtj!@ A\bj" (\0At Aj"(\0"Avr6\0  At (\0Avr6\0 Axj! \nA~j"\nAK\r\0\v\v  6°  (At6 A´j AìjA¤ü\n\0\0 (Ô"E\r\0 A(K\r\0 !@ A´j AtjA|j(\0Av"\nE\r\0 A(F\r A´j Atj \n6\0 Aj!\v@ AF\r\0 !\n@ Aq\r\0 A´j Aj"\nAtj" (\0At A´j AtjAxj(\0Avr6\0\v AF\r\0 \nAt A´jjAtj!@ A\bj" (\0At Aj"(\0"Avr6\0  At (\0Avr6\0 Axj! \nA~j"\nAK\r\0\v\v  6Ô  (´At6´ AØj AìjA¤ü\n\0\0 (ø\b"E\r\0 A(K\r\0 !@ AØj AtjA|j(\0Av"\nE\r\0 A(F\r AØj Atj \n6\0 Aj!\v@ AF\r\0 !\n@ Aq\r\0 AØj Aj"\nAtj" (\0At AØj AtjAxj(\0Avr6\0\v AF\r\0 \nAt AØjjAtj!@ A\bj" (\0At Aj"(\0"Avr6\0  At (\0Avr6\0 Axj! \nA~j"\nAK\r\0\v\v  (ØAt6Ø  6ø\b  ( "  K"A(K\r\0 AìjA|j! Aü\bjA|j! AjA|j!\f A´jA|j!\r AØjA|j!A\0!@@ ! At!@@@ E\r  j!\n A|j" j(\0" \n(\0"\nF\r\0\vA\0!  \nI\r\vA!A\0!@@ AF\r\0 Aq! A>q! A\0!A! ! AØj!\n@  (\0" \n(\0Asj" Aqj"6\0 Aj" (\0" \nAj(\0Asj"  I  Irj"6\0  I  Ir! \nA\bj!\n A\bj! Aj"G\r\0\v E\r\v  At"j"\n \n(\0"\n AØj j(\0Asj" j"6\0  \nI  Ir!\v E\r  6 A\b! !\v    K"A)O\r At!@@@ E\r \r j!\n A|j" j(\0" \n(\0"\nF\r\0\v  \nO\r\0 !\f\vA!A\0!@@ AF\r\0 Aq!! A>q! A\0!A! ! A´j!\n@  (\0" \n(\0Asj" Aqj"6\0 Aj" (\0" \nAj(\0Asj"  I  Irj"6\0  I  Ir! \nA\bj!\n A\bj! Aj"G\r\0\v !E\r\v  At"j"\n \n(\0"\n A´j j(\0Asj" j"6\0  \nI  Ir!\v E\r  6  Ar!\v    K"!A)O\r !At!@@@ E\r \f j!\n A|j" j(\0" \n(\0"\nF\r\0\v  \nO\r\0 !!\f\vA!A\0!@@ !AF\r\0 !Aq! !A>q! A\0!A! ! Aj!\n@  (\0" \n(\0Asj" Aqj"6\0 Aj" (\0" \nAj(\0Asj"  I  Irj"6\0  I  Ir! \nA\bj!\n A\bj! Aj"G\r\0\v E\r\v  At"j"\n \n(\0"\n Aj j(\0Asj" j"6\0  \nI  Ir!\v E\r  !6  Aj!\v  !  !K"A)O\r At!@@@ E\r A|j" j(\0"\n  Aìjj(\0"F\r\0\v \n O\r\0 !!\f\v@ E\r\0A!A\0!@@ AF\r\0 Aq!! A>q! A\0!A! ! Aìj!\n@  (\0" \n(\0Asj" Aqj"6\0 Aj" (\0" \nAj(\0Asj"  I  Irj"6\0  I  Ir! \nA\bj!\n A\bj! Aj"G\r\0\v !E\r\v  At"j"\n \n(\0"\n Aìj j(\0Asj" j"6\0  \nI  Ir!\v E\r\v  6  Aj!\v  F\r  j A0j:\0\0 (Ä"!  ! K"A)O\r Aj! At!@@@ \r\0A\0!"\f\v A|j" j(\0"\n  A¤jj(\0"F\r\0\v \n K \n Ik!"\v Aü\bj A¤ü\n\0\0  (œ\n"  K"A(K\r@@ \r\0A\0!\f\vA\0!A\0!@@ AF\r\0 Aq!# A>q! A\0! Aü\bj! AÈj!\nA\0!@  \n(\0" (\0j" Aqj"6\0 Aj" \nAj(\0" (\0j"  I  Irj"6\0  I  Ir! \nA\bj!\n A\bj! Aj"G\r\0\v #E\r\v Aü\bj At"j"\n AÈj j(\0" \n(\0j" j"\n6\0  I \n Ir!\v E\r\0 A(F\r Aü\bj AtjA6\0 Aj!\v  6œ\n    K"A)O\r At!@@@ \r\0A\0!\f\v  j!\n  j! A|j! (\0" \n(\0"\nF\r\0\v  \nK  \nIk!\v@@@@@@@ " \tH\r\0  \tH\rA\0!A\0! E\r At"A|j"AvAj"\nAq! A\fO\rB\0! !\f\v  \tN\r E\r\b A(K!\n !@ \n\r\t Aj"\r\0\v !@  AtjA|j(\0"AJ\r\0 A(F\r\t  Atj Av6\0 Aj!\v@ AF\r\0 !\n@ Aq\r\0  Aj"\nAtj" (\0At  AtjAxj(\0Avr6\0\v AF\r\0 \nAt jAtj!@ A\bj" (\0At Aj"(\0"Avr6\0  At (\0Avr6\0 Axj! \nA~j"\nAK\r\0\v\v  (\0At6\0  6     K"A)O\r\b At! A|j! AìjA|j!@ E\r  j!\n  j! A|j! (\0" \n(\0"\nF\r\0\v  \nI\r\v  j!A!\n !@ AF\r \nAj!\n  j! Aj"! -\0\0A9F\r\0\v  j"Aj" -\0\0Aj:\0\0 \nE\r AjA0 \nü\v\0\f\v \nAüÿÿÿq!\nB\0! !@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \nA|j"\n\r\0\v E\r\v At!\n@  5\0B\n~ |">\0 Aj! B ˆ! \nA|j"\n\r\0\v\v@ PE\r\0 !\f\v A(F\r  j §6\0 Aj!\v  6 @ !E\r\0 !At"A|j"AvAj"\nAq!@@@ A\fO\r\0B\0! A¤j!\f\v \nAüÿÿÿq!\nB\0! A¤j!@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \nA|j"\n\r\0\v E\r\v At!\n@  5\0B\n~ |">\0 Aj! B ˆ! \nA|j"\n\r\0\v\v@ PE\r\0 !!\f\v !A(F\r A¤j j §6\0 !Aj!\v  6Ä@@ \r\0A\0!\f\v At"A|j"AvAj"\nAq!@@@ A\fO\r\0B\0! AÈj!\f\v \nAüÿÿÿq!\nB\0! AÈj!@  5\0B\n~ |">\0 Aj" 5\0B\n~ B ˆ|">\0 A\bj" 5\0B\n~ B ˆ|">\0 A\fj" 5\0B\n~ B ˆ|">\0 B ˆ! Aj! \nA|j"\n\r\0\v E\r\v At!\n@  5\0B\n~ |">\0 Aj! B ˆ! \nA|j"\n\r\0\v\v P\r\0 A(F\r AÈj j §6\0 Aj!\v  6è    K"A)I\r\f\v\v A1:\0\0@ E\r\0 AjA0 ü\v\0\v  O\r A0:\0\0 \vAj!\v Aj!\v  K\r\0 \0 \v;\b \0 6 \0 6\0 A \nj$€€€€\0\v\0\væ\b~~~#€€€€\0Ak"$€€€€\0 ½"Bÿÿÿÿÿÿÿƒ"B€€€€€€€\b„ B†Bþÿÿÿÿÿÿƒ B4ˆ§Aÿq""\bBƒ!\tA!\n@@@@@ P"\vAA \vA B€€€€€€€øÿ\0ƒ"P B€€€€€€€øÿ\0Q\0\vA!\n\f\vA!\n\f\v AÍwj!\f \t§As!\nB!\r\f\vB€€€€€€€ \bB† \bB€€€€€€€\bQ"\f!\bBB \f!\r \t§As!\nAËwAÌw \f j!\f\v  \f;x  \r7p B7h  \b7`  \n:\0z@@@@@@@@@ \nAÿqAK\r\0 AÐ\0j Aà\0j AjAð€€\0#€€€\0!\n (PE\r  (X6ˆ  )P7€\f\v \nA~j"\vAÿqE\rA!\n#€€€\0"\fAÿ¶€€\0j" \fA€·€€\0j B\0S"\f A \f !\fA B?ˆ§ ! \vAÿqAG\r A; Aÿÿq\rA!\n A6( #€€€\0A‡·€€\0j6$\f\v A€j Aà\0j AjAñ€€\0\v („"\vE\r (€"-\0\0A0M\r \nAÿ¶€€\0j"\f \nA€·€€\0j B\0S"\n \fA \n !\fA B?ˆ§ ! .ˆ!\n A; \nAH\r  6$@@ \v \nM\r\0 A;8 A64 A;, #€€€\0AÔ·€€\0j60  \n6(   \nj6<  \v \nk"\n6@ \n AÿÿqI\rA!\n\f\v A\0;,  \v6(  \n \vk60@ Aÿÿq\r\0A!\n\f\v A6@ A;8 #€€€\0AÔ·€€\0j6<\v A\0;DA!\n AÈ\0jA6\0\f\v A6( A; #€€€\0A·€€\0j6$A!\fA\0!A!\n\f\v A6( A; #€€€\0A„·€€\0j6$\f\v A60 A\0;,A!\n A6( #€€€\0Aˆ·€€\0j6$\f\v\0\v  6< A;8 A6( #€€€\0Aˆ·€€\0j6$ A\0;, A\0 \nk60A!\n AÀ\0j \v6\0\v  \n6\\  6T  \f6P  A j6X \0 AÐ\0j€\0!\n Aj$€€€€\0 \n\v“\v~~~\b#€€€€\0A\tk"$€€€€\0 ½"Bÿÿÿÿÿÿÿƒ"B€€€€€€€\b„ B†Bþÿÿÿÿÿÿƒ B4ˆ§Aÿq"\b"\tBƒ!\nA!\v@@@@@ P"\fAA \fA B€€€€€€€øÿ\0ƒ"P B€€€€€€€øÿ\0Q\0\vA!\v\f\vA!\v\f\v \bAÍwj!\r \n§As!\vB!\f\vB€€€€€€€ \tB† \tB€€€€€€€\bQ"\r!\tBB \r! \n§As!\vAËwAÌw \r \bj!\r\v Aÿÿq!\f  \r;ø\b  7ð\b B7è\b  \t7à\b  \v:\0ú\b@@@@ \vAÿqAK\r\0#€€€\0!\v \fAjAtA \rÁ"\rA\0H \rlAvAj"\r \r \fK"\rA\bI\r\f\v@@@ \vA~j"\bAÿqE\r\0A!\v#€€€\0"\rAÿ¶€€\0j" \rA€·€€\0j B\0S"\r A \r !\rA B?ˆ§ ! \bAÿqAG\r Aÿÿq\r A6\b A;ˆ\b #€€€\0A·€€\0AŠ·€€\0 j6Œ\b\f\v A6\b A;ˆ\b #€€€\0A·€€\0j6Œ\bA!\rA\0!A!\v\f\v A6\b A;ˆ\b #€€€\0A„·€€\0j6Œ\b\f\v A6¨\b A; \b  \f6˜\b A\0;”\b A6\b A;ˆ\b #€€€\0"\vAˆ·€€\0j6Œ\b  \vA’·€€\0A·€€\0 j6¤\bA!\v\f\v AÐ\bj Aà\bj A\bj \rA€€쁀€\0@@ (Ð\bE\r\0  (Ø\b6ˆ\t  )Ð\b7€\t\f\v A€\tj Aà\bj A\bj \rA€€큀€\0\v („\t"E\r (€\t"-\0\0A0M\r B\0S!\b \vA€·€€\0j! \vAÿ¶€€\0j! B?ˆ! A \bj!\r .ˆ\t!A!\v A6\b  6Œ\bA! A;ˆ\b@@@ Aj"\r\0#€€€\0! AÿÿqE\r Aœ\bj! A˜\bj! A”\bj! AÔ·€€\0j!\f\v A¨\bj! A¤\bj! A;”\b #€€€\0AÔ·€€\0j6˜\b A6œ\b Aj!A! \r! !\v A¬\bj!\r\v  6\0 A;\0  \v6\0@ \f K\r\0 !\v\f\v \rA\0;\0 \r \f k6 Aj!\v\v   \b!\r A \b!\f §!@@ AH\r\0 Aˆ\bj \vA\flj"\bA6\b \b#€€€\0AÖ¹€€\0AÕ¹€€\0 j6 \bA;\0 Aj!\f\v Aˆ\bj \vA\flj"\bA6\b \b#€€€\0AÙ¹€€\0A×¹€€\0 j6 \bA;\0A k!\v \r \f !\rA  ! Aˆ\bj \vA\flj"\f ; \fA;\f \vAj!\v\v  \v6Ü\b  6Ô\b  \r6Ð\b  Aˆ\bj6Ø\b \0 AÐ\bj€\0!\v A\tj$€€€€\0 \v\v\0\vƒ\b~~~#€€€€\0A k"$€€€€\0 ½"Bÿÿÿÿÿÿÿƒ"B€€€€€€€\b„ B†Bþÿÿÿÿÿÿƒ B4ˆ§Aÿq""\bBƒ!\tA!\n@@@@@ P"\vAA \vA B€€€€€€€øÿ\0ƒ"P B€€€€€€€øÿ\0Q\0\vA!\n\f\vA!\n\f\v AÍwj!\f \t§As!\nB!\r\f\vB€€€€€€€ \bB† \bB€€€€€€€\bQ"\f!\bBB \f!\r \t§As!\nAËwAÌw \f j!\f\v  \f;ˆ  \r7€ B7x  \b7p  \n:\0Š@@@@@@@@ \nAÿqAK\r\0 Aà\0j Að\0j AjAð€€\0#€€€\0!\n (`E\r  (h6˜  )`7\f\v \nA~j"\nAÿqE\rA!\f#€€€\0"\vAÿ¶€€\0j" \vA€·€€\0j B\0S"\v A \v !\vA B?ˆ§ ! \nAÿqAF\r A6 A; #€€€\0A„·€€\0j6\f\v Aj Að\0j AjAñ€€\0\v (”"\vE\r ("\f-\0\0A0M\r \nAÿ¶€€\0j" \nA€·€€\0j B\0S"\n! A \n! B?ˆ§! .˜! A6  \f6 A;@ \vAj"\v\r\0 A$j!\nA!\f\f\v A\0 Aj" B ˆ 5\0| Aj5\0 ~|">\0 B ˆ! A\bj! A\bj! \v \rAj"\rG\r\0\v \fE\r\v  \tAtj \rAtj"  5\0| 5\0 ~|">\0 B ˆ!\v !@ P\r\0 \t j"A(O\r  Atj §6\0 \n!\v   \tj"  K! !\f\0\v\v A)O\r\0 Aj!\f \0 Atj! AjAÿÿÿÿq"\nAj"Aþÿÿÿq! Aq!A\0!\t \0!\bA\0!@A\0 \tk!  \tAtj!@ \t!\r ! ! \b F\r Aj! Aj! \rAj!\t \b(\0! \bAj"\v!\b E\r\0\v \rA( \rA(K j \nM\r ­!A\0!B\0! !\b@@ AF\r\0@   5\0| \b5\0 ~|">\0 Aj" B ˆ 5\0| \bAj5\0 ~|">\0 B ˆ! \bA\bj!\b A\bj!  Aj"G\r\0\v E\r\v  \rAtj Atj"  5\0| \b5\0 ~|">\0 B ˆ!\v !@ P\r\0 \r j"A(O\r  Atj §6\0 \f!\v   \rj"  K! \v!\b\f\0\v\v\0\v \0 A ü\n\0\0 \0 6  A j$€€€€\0 \0\vØ\t@@ A€\nO\r\0 Av!@ \0( "E\r\0 Aj! At \0jA|j!  jAt \0jA|j! A(K!@ \r  jA(O\r  (\x006\0 A|j! A|j! Aj"\r\0\v\v Aq!@ E\r\0 At"E\r\0 \0A\0 ü\v\0\v \0( " j!@ \r\0 \0 6  \0\v Aj"A\'K\r\0 !\b \0 Atj(\0A k"v"E\r A\'K\r\0 \0 Atj 6\0 Aj!\b\f\v\0\v@ Aj"\t O\r\0@@ AqE\r\0 !\f\v \0 Aj"Atj" \0 AtjAxj(\0 v (\0 tr6\0\v AF\r\0 At \0jAtj!@ A\bj" Aj"(\0"\n v (\0 tr6\0  (\0 v \n tr6\0 Axj! \t A~j"I\r\0\v\v \0 Atj" (\0 t6\0 \0 \b6  \0\vê#€€€€\0Ak"$€€€€\0@@@ ("E\r\0 \0 (\0  (\f€€€\0€€€€\0\r\v@ (\f"\r\0A\0!\f\v (\b" A\flj!@@@@@@@@@ /\0\0\0\v ("AÁ\0I\r A\fj(\0!@ \0#€€€\0A”·€€\0jAÀ\0 €€€\0€€€€\0\r\t A@j"AÀ\0K\r\0\f\v\v /! A\0:\0\f A\x006\b \rA!\f\v \0 ( (\b A\fj(\0€€€\0€€€€\0E\r\f\v \r\f\v Aöÿj Aœÿjq A˜ø7j Að±jqsAvAj!\v A\bj Aj"j"\b  A\nn"\tA\nlkA0r:\0\0@ E\r\0 \bAj \tA\npA0r:\0\0 AF\r\0 \bA~j Aä\0nA\npA0r:\0\0 AF\r\0 \bA}j AènA\npA0r:\0\0 AF\r\0 \bA|j AÎ\0nA0r:\0\0 AF\r\0 \bA{jA0:\0\0 AF\r\0 \bAzjA0:\0\0 AF\r\0 \bAyjA0:\0\0\v \0 A\bj  A\fj(\0€€€\0€€€€\0E\r\f\v \0#€€€\0A”·€€\0j  A\fj(\0€€€\0€€€€\0\r\v A\fj" G\r\0\vA\0!\f\vA!\v Aj$€€€€\0 \vµ@ \r\0A\0\v Aq!A\0!A\0!@@ AI\r\0 Aüÿÿÿq!A\0!A\0!@  \0 j",\0\0A¿Jj Aj,\0\0A¿Jj Aj,\0\0A¿Jj Aj,\0\0A¿Jj!  Aj"G\r\0\v E\r\v \0 j!@  ,\0\0A¿Jj! Aj! Aj"\r\0\v\v \vÝA\0!#€€€\0Aܹ€€\0j" A\0A \0A¹ÔI" A\rj"  Atj(\0A\vt \0A\vt"K" Aj"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K"Atj(\0A\vt" F  Ij j"Atj"(\0Av!Aï\v!@@ A1K\r\0 (Av! E\r\v A|j(\0Aÿÿÿ\0q!\v@  AsjE\r\0 \0 k!\0 Aj!A\0!@ #€€€\0Aȝ€€\0j j-\0\0j" \0K\r  Aj"G\r\0\v\v Aq\v“@ A€€\bI\r\0 \0A€€Ä\x006\0\v  A\fvAðÿ?qj"(\0!A\0!@@@ ("\0\vA\0! Aÿÿq!@  Av" j"\b  \bAlj/\0 K!  k"AK\r\0\v\v  Alj"/\0" Aÿÿq"K\r\0  Aj-\0\0jAÿÿq I\r\0  s -\0qAq\r\0 \0B\x007 \0 A€€q / jAÿÿqr6\0\v (\b!A\0!@@@@ (\f"\0\vA\0! Aÿÿq!@  Av" j"\b  \bAtj/\0 K!  k"AK\r\0\v\v  Atj"/\0 AÿÿqF\r\v \0A€€Ä\x006\0\v \0 A€€q" /r6\b \0  /r6 \0  /r6\0\v–#€€€€\0Ak"$€€€€\0@@ AÀI\r\0 Aj #€€€\0Aˆí€€\0jü€€\0 \0B\x007 \0 6\0 (A€€Ä\0F\r \0 (\f6\b \0 )7\0\f\v \0B\x007 \0 A r  A¿jAI6\0\v Aj$€€€€\0\v—#€€€€\0Ak"$€€€€\0@@ AµI\r\0 Aj #€€€\0A¨í€€\0jü€€\0 \0B\x007 \0 6\0 (A€€Ä\0F\r \0 (\f6\b \0 )7\0\f\v \0B\x007 \0 Aß\0q  AŸjAI6\0\v Aj$€€€€\0\vÝA\0!#€€€\0AÐӀ€\0j" A\0A \0Aó½I" A\tr"  Atj(\0A\vt \0A\vt"K" Ar"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K"Atj(\0A\vt" F  Ij j"Atj"(\0Av!A—!@@ A"K\r\0 (Av! E\r\v A|j(\0Aÿÿÿ\0q!\v@  AsjE\r\0 \0 k!\0 Aj!A\0!@ #€€€\0A·«€€\0j j-\0\0j" \0K\r  Aj"G\r\0\v\v Aq\vÂA\0!#€€€\0AàԀ€\0j" A\0A\v \0A€I" Aj"  Atj(\0A\vt \0A\vt"K" Aj"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K" Aj"  Atj(\0A\vt K"Atj(\0A\vt" F  Ij j"Atj"(\0Av!A¹!@@ AK\r\0 (Av! E\r\v A|j(\0Aÿÿÿ\0q!\v@  AsjE\r\0 \0 k!\0 Aj!A\0!@ #€€€\0Aβ€€\0j j-\0\0j" \0K\r  Aj"G\r\0\v\v Aq\vü~A\0!@ \0AÖ~jAÕÖK\r\0@@@#€€€\0"A°Ù€€\0j A‡µ€€\0j \0A\nvj-\0\0Atj \0AvAqj-\0\0"A9I\r\0 AÏ\0O\r#€€€\0"A¸Õ€€\0j AGj"Atj"-\0­! AèՀ€\0j -\0\0Atj)\0B\0BA t"Aþÿü\0q…!@ A€³qE\r\0  Bÿƒ‰!\f\v  ˆ!\f\v#€€€\0AèՀ€\0j Atj)\0!\f\v\0\v  \0­ˆ§!\v Aq\vü~A\0!@ \0AÀ~jA¿æK\r\0@@@#€€€\0"Aˆß€€\0j A‚¶€€\0j \0A\nvj-\0\0Atj \0AvAqj-\0\0"A,I\r\0 AÅ\0O\r#€€€\0"Aðۀ€\0j ATj"Atj"-\0­! A¨Ü€€\0j -\0\0Atj)\0B\0BA t"Aý‡ÿq…!@ A‚øƒqE\r\0  Bÿƒ‰!\f\v  ˆ!\f\v#€€€\0A¨Ü€€\0j Atj)\0!\f\v\0\v  \0­ˆ§!\v Aq\vâ\t~@@@ A\bI\r\0 Aq"E\r#€€€\0! \0( "A)O\r@ \r\0 \0A\x006 \f\v At"A|j"AvAj"Aq!\b A¨ë€€\0j Atj(\0 v­!\tB\0!\n \0!@@ A\fI\r\0 Aüÿÿÿq!B\0!\n \0!@  5\0 \t~ \n|"\n>\0 Aj" 5\0 \t~ \nB ˆ|"\n>\0 A\bj" 5\0 \t~ \nB ˆ|"\n>\0 A\fj" 5\0 \t~ \nB ˆ|"\n>\0 \nB ˆ!\n Aj! A|j"\r\0\v \bE\r\v \bAt!@  5\0 \t~ \n|"\n>\0 Aj! \nB ˆ!\n A|j"\r\0\v\v@ \nP\r\0 A(F\r \0 j \n§6\0 Aj!\v \0 6 \f\v#€€€\0! \0( "A)O\r@ \r\0 \0A\x006  \0\v A¨ë€€\0j Atj5\0!\t At"\bA|j"AvAj"Aq!B\0!\n \0!@@ A\fI\r\0 Aüÿÿÿq!B\0!\n \0!@  5\0 \t~ \n|"\n>\0 Aj" 5\0 \t~ \nB ˆ|"\n>\0 A\bj" 5\0 \t~ \nB ˆ|"\n>\0 A\fj" 5\0 \t~ \nB ˆ|"\n>\0 \nB ˆ!\n Aj! A|j"\r\0\v E\r\v At!@  5\0 \t~ \n|"\n>\0 Aj! \nB ˆ!\n A|j"\r\0\v\v@ \nP\r\0 A(F\r \0 \bj \n§6\0 Aj!\v \0 6  \0\v@ A\bqE\r\0 \0( "A)O\r@@ \r\0A\0!\f\v At"A|j"AvAj"Aq!\bB\0!\t \0!@@ A\fI\r\0 Aüÿÿÿq!B\0!\t \0!@  5\0Báë~ \t|"\t>\0 Aj" 5\0Báë~ \tB ˆ|"\t>\0 A\bj" 5\0Báë~ \tB ˆ|"\t>\0 A\fj" 5\0Báë~ \tB ˆ|"\t>\0 \tB ˆ!\t Aj! A|j"\r\0\v \bE\r\v \bAt!@  5\0Báë~ \t|"\t>\0 Aj! \tB ˆ!\t A|j"\r\0\v\v \tP\r\0 A(F\r \0 j \t§6\0 Aj!\v \0 6 \v@ AqE\r\0 \0#€€€\0AÐ뀀\0jA÷€€\0\v@ A qE\r\0 \0#€€€\0AØë€€\0jA÷€€\0\v@ AÀ\0qE\r\0 \0#€€€\0Aä뀀\0jA÷€€\0\v@ A€qE\r\0 \0#€€€\0Aøë€€\0jA\n÷€€\0\v@ A€qE\r\0 \0#€€€\0A ì€€\0jA÷€€\0\v \0 ø€€\0 \0\v\0\vP| (\b"A€€€q! \0+\0!@ A€€€€q\r\0   A\0GA\0ò€€\0\v   A\0G /€\0\vR| (\b"A€€€q! \0+\0!@ A€€€€q\r\0   A\0GA\0ô€€\0\v   A\0G /A\0󁀀\0\v6A€€Ä\0!@ \0( \0(\0"F\r\0 \0 Aj6\0 \0 Atj(\b!\v \vN~@@ AÀ\0q\r\0 E\r  ­"† A\0 k­ˆ„!  †!\f\v  ­†!B\0!\v \0 7\0 \0 7\b\vN~@@ AÀ\0q\r\0 E\r A\0 k­†  ­"ˆ„!  ˆ!\f\v  ­ˆ!B\0!\v \0 7\0 \0 7\b\vº\b~~#€€€€\0A°k"$€€€€\0B\0!@@@@@@@@ y yBÀ\0| B\0R§" y yBÀ\0| B\0R§"\bM\r\0 \bA?K\r Aß\0K\r  \bkA I\r A j  Aà\0 k"\tˆ‚€€\0 5 B|!\nB\0!\vB\0!\f\v  T"\b  T  QE\rB\0!\f\f\v   €"\f ~}!B\0!B\0!\f\v   Bÿÿÿÿƒ"€" ~}B † B ˆ"\f„ €"B † \f  ~}B † Bÿÿÿÿƒ„" €"„!\f   ~}! B ˆ „!B\0!\f\v A0j  AÀ\0 \bk"\bˆ‚€€\0 A j   \bˆ‚€€\0B\0!  B\0 )0 ) €"\fB\0Š‚€€\0 Aj B\0 \fB\0Š‚€€\0 )\0!\n@ ) )\b"\r )|"\v \rT­|B\0R\r\0  \nT"\b  \vT  \vQE\r\v  |  |" T­| \v}  \nT­}! \fB|!\f  \n}!\f\v@@@ Aj  AÀ\0 \bk"\bˆ‚€€\0 )!\f@ \b \tO\r\0 AÐ\0j   \bˆ‚€€\0 AÀ\0j   \f )P€"\rB\0Š‚€€\0@  )@"\nT"\b  )H"\fT  \fQ\r\0  \f} \b­}!  \n}!  \v \r|"\f \vT­|!\f\v  |  |" T­| \f}  \nT­}!  \n}!  \r \v|B|"\f \vT­|!\f\v A€j \f \n€"\fB\0 \b \tk"\b‡‚€€\0 Að\0j   \fB\0Š‚€€\0 Aà\0j )p )x \b‡‚€€\0 )ˆ | )€" \v|"\v T­|!@   )h}  )`"\fT­}"y  \f}"yBÀ\0| B\0R§"\bM\r\0 \bA?K\r\f\v\v  T"\b  T  QE\r \v!\f\f\v   €" ~}!  \v |"\f \vT­|!B\0!\f\v  } \b­}!  }!  \vB|"\fP­|!\f\v  \v} \b­}!  \n}!B\0!\f\v  } \b­}!  }!B!\f\v \0 7 \0 \f7\0 \0 7 \0 7\b A°j$€€€€\0\vn~ \0 Bÿÿÿÿƒ" Bÿÿÿÿƒ"~" B ˆ"\b ~"  B ˆ"\t~|"B †|"\n7\0 \0 \b \t~  T­B † B ˆ„| \n T­|  ~  ~||7\b\vH#€€€€\0A k"$€€€€\0     ‰‚€€\0 )! \0 )7\b \0 7\0 A j$€€€€\0\vH#€€€€\0A k"$€€€€\0     ‰‚€€\0 )\0! \0 )\b7\b \0 7\0 A j$€€€€\0\vJA\0!@ E\r\0@@ \0-\0\0" -\0\0"G\r \0Aj!\0 Aj! Aj"E\r\f\0\v\v  k!\v \v4 \0AA—€€\0"6\f@ \r\0A~\v \0A\x006\b \0B€€€€À\x007\0A\0\vL \0A\x006\0 \0A\x006\b@ \0("AH\r\0 Aj! \0(\f!\0@ \0A\x006\0 \0Aj!\0 Aj"AK\r\0\v\v\ve@ \0(\b" (\b"G\r\0  6\b \0  ¦‚€€\0\v@ \0 §‚€€\0AG\r\0  6\b  \0 ¨‚€€\0\v  6\b \0  ¨‚€€\0\vd@ \0(\b" (\bF\r\0  6\b \0  ¦‚€€\0\v@ \0 §‚€€\0AF\r\0  6\b \0  ¨‚€€\0\v  E6\b  \0 ¨‚€€\0\vä (\b! \0(\b!@@ \0(\0" (\0"  H"AÐ\0H\r\0    J"\bA H\r\0 \b AtH\r\0 \0  µ‚€€\0!\f\v@ AÞH\r\0 \0  ¶‚€€\0!\f\v@ AÐ\0H\r\0 \0  º‚€€\0!\f\v  j"Aj!@ AþJ\r\0 \0   »‚€€\0!\f\v \0   ¼‚€€\0!\v  (\0A\0J  Gq6\b \v@@ \0(\b" (\bF\r\0AA AF\v@ AG\r\0  \0§‚€€\0\v \0 §‚€€\0\v¢ \0(\f!A\0!@ E\r\0A\0! !@  Aÿÿÿÿ\0q6\0 Aj! Aj! Aÿÿÿÿ\0K! Av! \r\0\v\v \0A\x006\b \0 6\0@ \0( k"AH\r\0 Aj!  Atj!@ A\x006\0 Aj! Aj"AK\r\0\v\v\v* \0  Au"s k”‚€€\0@ AJ\r\0 \0A6\b\v\vA\0 \0—‚€€\0"k  \0(\bAF\vN@ \0(\0"\r\0A\0\v \0(\fA|j! A AIAt!\0A\0!@  \0j(\0 Atr! \0A|j"\0\r\0\v \v£ \0(\f!A\0!@ P\r\0A\0! !@  §Aÿÿÿÿ\0q6\0 Aj! Aj! Bÿÿÿÿ\0V! Bˆ! \r\0\v\v \0A\x006\b \0 6\0@ \0( k"AH\r\0 Aj!  Atj!@ A\x006\0 Aj! Aj"AK\r\0\v\v\v*~ \0  B?‡"… }˜‚€€\0@ BU\r\0 \0A6\b\v\v~B\0 \0›‚€€\0"}  \0(\bAF\vP~@ \0(\0"\r\0B\0\v \0(\fA|j! A AIAt!\0B\0!@ B†  \0j5\0„! \0A|j"\0\r\0\v \v˜~A}!@ ½"B4ˆ§Aÿq"AÿF\r\0 \0 BÿÿÿÿÿÿÿƒB€€€€€€€\b„˜‚€€\0@@ A²\bK\r\0 \0A³\b k \0A\0³‚€€\0!\f\v \0 AÍwj \0°‚€€\0!\v \r\0A\0! BU\r\0 \0(\0E\r\0 \0A6\b\v \vŸ||D\0\0\0\0\0\0ð?!A!@   ! Aj"\r\0\v@@ \0(\0"AN\r\0D\0\0\0\0\0\0\0\0!\f\v Aj! At \0(\fjA|j!D\0\0\0\0\0\0\0\0!@  ¢ (\0¸ ! A|j! Aj"AK\r\0\v\v š  \0(\bAF\v\n\r~#€€€€\0AÐ\0k"$€€€€\0@@ (\0\r\0A}!\f\v@ \0 §‚€€\0AG\r\0@@ \r\0A\0!\f\v \0 ®‚€€\0!\v E\r ‚€€\0\f\v AÀ\0j \0(\0Aj«‚€€\0"\r\0  \0(\0Aj6@@ AjŽ‚€€\0"\r\0@ Ž‚€€\0"\r\0@ A0j \0Ÿ‚€€\0"\r\0@ A j Ÿ‚€€\0"\r\0A\0! A\x006( A\x0068 (\b! \0(\b!\b@@ A j¯‚€€\0Ao"AJ\r\0 A0jA k" A0j°‚€€\0"\r A j  A j°‚€€\0"\r\v A j (0"\t ( "\nk"\v‚€€\0"\r\0 \b G!\f \nAj!\r \vAt!@@ A0j A j“‚€€\0AF\r (L j" (\0Aj6\0 A0j A j A0j‘‚€€\0"E\r\0\f\v\v A j \v±‚€€\0@ \t \nL\r\0 \nAs!@@ \t"Aj"\t (0J\r\0Aÿÿÿÿ\0!@ (<" \tAt"j(\0"\b (, \rAt"j(\0"\vF\r\0 \b­B†  AtjAxj5\0„ \v­€"Bÿÿÿÿ\0 Bÿÿÿÿ\0T§!\v (L" At"\vj Atj 6\0   j"At"\bj" (\0AjAÿÿÿÿ\0q6\0 AH!@ (L \bj" (\0AjAÿÿÿÿ\0q6\0 Aj‚€€\0A\0! (,!@ \nAH\r\0  \nAtjAxj(\0!\v (" 6\0   j(\x006 A6 Aj (L \bj(\0 Aj²‚€€\0"\rA\0! (\0 \0A|j!\0 A|j! Aj"AK\r\0\v §!\0\v@ E\r\0  \x006\0\v@ E\r\0 ª‚€€\0  ¬‚€€\0\v ­‚€€\0\v Aj$€€€€\0 \vÄA\0!@ AH\r\0 \0(\0"E\r\0@ \0(  j"N\r\0 \0 ©‚€€\0"\r \0(\0" j!\v \0 6\0 \0(\f!\0@ AH\r\0A\0 Atk! \0 AtjA|j!@   j(\x006\0 A|j! Aj" J\r\0\v\v Aj!@A\0! \0A\x006\0 \0Aj!\0 Aj"AJ\r\0\v\v \vˆ@@ \0(\0\r\0 \0A¤‚€€\0\f\v@@ \0(\bAG\r\0 \0A\x006\b \0À€\0"\r \0(\0E\r \0A6\b\f\v@ \0(\f"(\0"Aþÿÿÿ\0K\r\0  Aj6\0\f\v \0A \0ł€€\0!\v \vA\0\v‹@@ \0(\0\r\0 \0A¤‚€€\0 \0A6\b\f\v@@ \0(\bAG\r\0 \0A\x006\b \0€€\0"\r \0(\0E\r \0A6\b\f\v@ \0(\f"(\0"AI\r\0  Aj6\0\f\v \0A \0Ƃ€€\0!\v \vA\0\vÕ#€€€€\0Ak"$€€€€\0@@ ( \0(\0"J\r\0  Aj©‚€€\0"\r\v@@@@ \0(\b"AG\r\0@ \0(\0AJ\r\0 \0(\f(\0 O\r\0 \0A\fj! (\f! (\0!\f\v A\bj" \0A\bj)\x007\0 A\x006\0  \0)\x007\0   Ƃ€€\0! A6\b\f\v \0A\fj! (\f! (\0! \r\0@@ \0(\0AN\r\0A!\f\v (\0!A\0!@  (\0 j"Aÿÿÿÿ\0q6\0 Aj! Aj! Av! Aj" \0(\0H\r\0\v As!\v  6\0  \0(\0Aj6\0\f\v A6\0@ \0(\0AG\r\0  (\0(\0k!\v  6\0A!\vA\0! A\x006\b  j"AH\r\0 Aj! Aj!@ A\x006\0 Aj! Aj"AK\r\0\v\v ª‚€€\0\v Aj$€€€€\0 \v•#€€€€\0Ak"$€€€€\0@@ ( \0(\0"J\r\0  Aj©‚€€\0"\r\v@ \0(\bAG\r\0 A\bj" \0A\bj)\x007\0 A\x006\0  \0)\x007\0   ł€€\0! A6\b ª‚€€\0\f\v (\f! \0(\f! (\0!@@@@ \0(\0"\0\v  (\0"\bI\r  \bk!\v  6\0A! A6\0 A6\b Aj!\f\v  6\0A\0! A\x006\b \0(\0AH\r\0A\0!@  (\0 k"Aÿÿÿÿ\0q6\0 Aj! Aj! Av! Aj" \0(\0H\r\0\v\v@  k"AH\r\0 Aj!@ A\x006\0 Aj! Aj"AK\r\0\v\v ª‚€€\0A\0!\v Aj$€€€€\0 \v\v¿n\0#\v¸nblob_of_principal: invalid principalblob_of_principal: principal too shortrecall_continuation: Continuation table not allocatedrecall_continuation: Continuation index not in tablerecall_continuation: Continuation index out of rangeremember_continuation: Argument is not a skewed pointerservice method arg not a constructor typeservice method arg not a function typefunc annotation not within 1..3service method names out of orderprimitive type in type tableillegal type tabletoo many typesmissing magic bytesempty input. Expected Candid-encoded argument, but received a zero-length argumenttext_concat: Text too largealloc_text_blob: Text too largeå \0\0p\0\0À\0out of regionscannot recover un-allocated regionMOREGIONmigration failure (base too low)migration failure (unexpected block size)migration failure (unexpected higher version)migration failure (bad magic bytes)migration failure (insufficient pages)migration failure (too many pages for region0 )alloc_stream: Cache too largetext_iter_next: Iter already doneencountered NULL object tag in visit_pointer_fieldsinvalid object tag in visit_pointer_fieldsIDL error: RTS error: BitRel indices out of boundsrange out of boundsrange overflowoffset out of boundsABCDEFGHIJKLMNOPQRSTUVWXYZ234567accum_base32: Base32 symbol out of range\0\0\0\0\0\0–0w,aîºQ\t™Ämôjp5¥c飕dž2ˆÛ¤¸ÜyéÕàˆÙҗ+L¶\t½|±~-¸ç‘¿d·ò °jHq¹óÞA¾„}ÔÚëäÝmQµÔôDžӃV˜lÀ¨kdzùbýìÉeŠO\\Ùlcc=úõ\r\bÈ n;^iLäA`Õrqg¢Ñäjm\r¨Zjz\vÏäÿ\t“\'®\0\n±ž}D“ðÒ£\b‡hòþÂi]Wb÷Ëge€q6lçknvÔþà+ӉZzÚÌJÝgoß¹ùùホC¾·Վ°`è£ÖÖ~“Ñ¡ÄÂØ8RòßOñg»ÑgW¼¦Ýµ?K6²HÚ+\rØL\n¯öJ6`zAÃï`ßUßg¨ïŽn1y¾iFŒ³a˃f¼ Òo%6âhR•w\fÌG\v»¹"/&U¾;ºÅ(\v½²’Z´+j³\\§ÿ×Â1Ïе‹žÙ,®Þ[°Âd›&òc윣ju\n“m©\tœ?6ë…grW\0‚J¿•z¸â®+±{8¶\f›ŽÒ’\r¾Õå·ïÜ|!ßÛ\vÔÒӆBâÔñø³ÝhnƒÚ;[&¹öáw°owG·æZ\bˆpjÿÊ;f\\\vÿžei®bøÓÿkaEÏlxâ\n îÒ\r×TƒN³9a&g§÷`ÐMGiIÛwn>JjÑ®ÜZÖÙf\vß@ð;Ø7S®¼©Åž»ÞϲGéÿµ0ò½½ŠÂºÊ0“³S¦£´$6к“×Í)WÞT¿gÙ#.zf³¸JaÄh]”+o*7¾\v´¡Ž\fÃßZï-advance out of bufferbyte read out of bufferword read out of buffervariant or record tag out of orderinvalid type argumentskip_any: byte tag not 0 or 1sub: unexpected aliasobject_size: forwarding pointerobject_size: invalid object tagRegion error: StableMemory Cannot grow memorypeek_future_continuation: Continuation table not allocatedpeek_future_continuation: Continuation index not in tablepeek_future_continuation: Continuation index out of rangeskip_any: recursive recordskip_any: variant tag too largeskip_any: skipping referencesskip_any: encountered emptyskip_any: unknown primskip_any: too deeply nested recordutf8_validate: string is not UTF-80.1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ƒù¢\0DNn\0ü)\0ÑW\'\0Ý4õ\0bÛÀ\0<™•\0AC\0cQþ\0»Þ«\0·aÅ\0:n$\0ÒMB\0Ià\0\tê.\0’Ñ\0ëþ\0)±\0è>§\0õ5‚\0D».\0œé„\0´&p\0A~_\0֑9\0Sƒ9\0œô9\0‹_„\0(ù½\0ø;\0Þÿ—\0˜\0/ï\0\nZ‹\0mm\0Ï~6\0\tË\'\0FO·\0žf?\0-ê_\0º\'u\0åëÇ\0={ñ\0÷9\0’RŠ\0ûkê\0±_\0\b]\x000V\0{üF\0ð«k\0 ¼Ï\x006ôš\0ã©\0^a‘\0\bæ\0…™e\0 _\0@h\0€Øÿ\0\'sM\01\0ÊV\0ɨs\0{â`\0kŒÀ\0\0\0\0@û!ù?\0\0\0\0-Dt>\0\0\0€˜Fø<\0\0\0`QÌx;\0\0\0€ƒð9\0\0\0@ %z8\0\0\0€"‚ã6\0\0\0\0ói5\0\0\0\0\0\0à?\0\0\0\0\0\0à¿\0\0\0\0\0\0ð?\0\0\0\0\0\0ø?\0\0\0\0\0\0\0\0ÐÏCëýL>\0\0\0\0\0\0\0\0\0\0\0@¸â?O»ag¬Ý?-DTû!é?›öÒ\vsï?-DTû!ù?âe/"+z<\\3&¦<½Ëðzˆp<\\3&¦‘<\0\0€?\0\0À?\0\0\0\0ÜÏÑ5\0\0\0\0\0À?Q´ð²–±D°ù®¶­y¬C«ªë¨È§ª¦’¥€¤s£k¢h¡j pŸ{žŠœµ›Ñšð™™:˜e—“–Ä•ø”0”k“©’ê‘.‘u¾\nYŽªþŒTŒ¬‹‹dŠÄ‰%‰‰ˆî‡V‡À†+†™…\b…y„ìƒaƒØ‚P‚ɁEÂ€@€ÿý%ûGùs÷ªõêó4ò‡ðãîGí³ë\'ê£è\'ç²åCäÜâzá àËÞ}Ý4ÜñÚ³Ù{ØH×ÖñÔÍӭҒÑ{ÐiÏ[ÎQÍJÌHËJÊOÉXÈdÇtƇŝķÃÔÂôÁÁ<Àe¿¾¾½ï¼#¼Y»‘ºÌ¹\n¹J¸Œ·Ð¶¶`µ-DTû!é?-DTû!é¿Ò!3|Ù@Ò!3|ÙÀ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€-DTû!\t@-DTû!\tÀª\n\0\fVS‹\b¦&)\'\b\v8f\b\b\n0\re!\t\v\b*\n\fL\r\b\b\b\f\n\v\t\t\b\b\t\r\f(\r\b\b\b\n\b\b\r\f\r)\b\t\b\b\r:3 ?\b$$C7@\n&+\0)!9C%V\0K\v\v\f\f\r\f4CY+F\n\f\t\v,6?2\v14\b3*\n,\v7\n$\v+)À"\v\0&\b5\rt\r\re\n\v)\x004\0å\f&8\t /\0\tVZ+^ 0\0\0@\0C.\0\n/\bq\'\tgR!4\fD,\n!#\r3\f\n7\tE\v\t+{\0\f1\0\0j&\f\f\rl!\0@6(\ft‡$\vY#\f"{E5\01/ \r+$\b*ž$$(\b4\f\v\v4\f\0\t\n\b*\tE,\n\tA\n\n&8@\b*#\b6\n\n\rnI73\r3\r("ú*2\n\b*.\tF+\n9\t\r3\b#\t@\t\n#">\n9\b\b\n&\n,BB¸6"?;6G¹9g@\b\b]\b.3\nHIg\bX!\t-1I,%,\0\t)oO\0foÄ\0a\0\0\0\0/\0\0O0\0-Ó@ ,K9@\f\t\0) as\0\0\b\0\0k\r\t\n\0UG\fA\b\0\b\0Õ>!p-\n\0,\0äÏ\bàÅ;D\0\n\n\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¨\0À\tûÏ1-,\v\n\v#\ne\b\n![\v:\v+,\t):7\b\n\r:\b9\v9:\b\v=\f27\v:9\bHZ\v\tb\t\tI7\v$\tf\r^\0\0@\b\v-3A"v\tÛ:\b\n\'\b.\f0(\t\f 8:\b@R\r2?\r"e\0\v\r\r\r\f\b\n1\n\r\r3!\0q}` /\0$]]\0\0\0b\nP"Nf\b—\r&\b\v.0B\f\b#\v3d\ty\0“\0\f"©\v#/-C\0â•\0*\t\0(¥\0&\04F\v1{6)\n1\n2$\b>\f4\t\n_\b9%F\rU\bTîU\bje\0\t\0 \n(\b\t.\rÆÉRzHA\0\v4\0\0\f\0;\t\0(\0?@\r\0\0\0.\0\t”\x0072\b\0>! \0=\0þó\t\0m\b\0\0`€ð\0ª\nÃÐ#`*S‹\b¦&\t)\0&+\0V\0\v+@À@\0&\b5\rt\r\re\n \x004\0å\f&\0.„fM\0+P\0\f\0\0P`$$t\v\v\0*\t\x003\r3]\n\0@\0@ \0UG\fA\b\0\b\0\n\0>\0D\0\0\f\0\0\t\0\0\r\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\t\r\v\b\n-+NaNinf00.0e00E0e0E00000000000000000000000000000000000000000000000000000000000000000.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0eEe-E-\0Â\0\0I€mÀ3€8¶$\0E\0,àM0 N\x004àRÀMàU¤\0V\r¦@V¤×ÀV\0ù@anúàa>ý\0b€Ád7áiàÁoš#!˜/™04!šûCšGF›\0aA›\0ha›9j¡›@mÁ›ÖŒ¡ð¯A #±á ü²Á¡\0¼£\0Ô!£¦Öa¤\0ß©âá«Ðäá®\0îa¯0ñá²\0\0"»à¦â»¸¼®ÎB¼á낼^î¼\0ø½ú"½\0\0C½Kc½z4ƒ½z4Ô½À\0\0 \0Ø\0\0 \0\0.\x002\x009\0J,\0x\0\0‡ÿy\0\0\0Ò\0‚\0†\0\0Î\0‡\0\0\0‰\0Í\0‹\0\0\0Ž\0\0O\0\0\0Ê\0\0\0Ë\0‘\0\0\0“\0\0Í\0”\0\0Ï\0–\0\0Ó\0—\0\0Ñ\0˜\0\0\0œ\0\0Ó\0\0\0Õ\0Ÿ\0\0Ö\0 \0¦\0\0Ú\0§\0\0\0©\0\0Ú\0¬\0\0\0®\0\0Ú\0¯\0\0\0±\0Ù\0³\0·\0\0Û\0¸\0\0\0¼\0\0\0Ä\0\0\0Å\0\0\0Ç\0\0\0È\0\0\0Ê\0\0\0Ë\0Þ\0ñ\0\0\0ò\0ö\0\0Ÿÿ÷\0\0Èÿø&\0 \0\0~ÿ"\0:\0\0+*;\0\0\0=\0\0]ÿ>\0\0(*A\0\0\0C\0\0=ÿD\0\0E\0E\0\0G\0F\b\0p\0v\0\0\0\0\0t\0†\0\0&\0ˆ\0%\0Œ\0\0@\0Ž\0?\0‘\0 \0£\b\0 \0Ï\0\0\b\0Ø\0ô\0\0Äÿ÷\0\0\0ù\0\0ùÿú\0\0\0ý\0~ÿ\0\0P\0\0 \0` \0Š4\0À\0\0\0Á\f\0Ð^\x001%\x000\0 %\0`Ç\0\0`Í\0\0` O\0Зð\0\b\0‰\0\0\0*\0@ô½\0@ô\0”\0ž\0\0Aâ ^\0\b\0øÿ\0øÿ(\0øÿ8\0øÿH\0øÿYøÿh\0øÿˆ\0øÿ˜\0øÿ¨\0øÿ¸\0øÿº\0¶ÿ¼\0\0÷ÿÈ\0ªÿÌ\0\0÷ÿØ\0øÿÚ\0œÿè\0øÿê\0ÿì\0\0ùÿø\0€ÿú\0‚ÿü\0\0÷ÿ&!\0\0£â*!\0\0Aß+!\0\0ºß2!\0\0\0`!\0\0ƒ!\0\0\0¶$\0\0\0,/\x000\0`,\0\0\0b,\0\0\tÖc,\0\0ñd,\0\0Ög,\0m,\0\0äÕn,\0\0Öo,\0\0áÕp,\0\0âÕr,\0\0\0u,\0\0\0~,\0ÁՀ,b\0ë,\0ò,\0\0\0@¦,\0€¦\0"§\f\x002§<\0y§\0}§\0\0üu~§\b\0‹§\0\0\0§\0\0ØZ§\0–§\0ª§\0\0¼Z«§\0\0±Z¬§\0\0µZ­§\0\0¿Z®§\0\0¼Z°§\0\0îZ±§\0\0ÖZ²§\0\0ëZ³§\0\0 ´§\0ħ\0\0Ðÿŧ\0\0½ZƧ\0\0Èuǧ\0˧\0\0™Z̧\0ܧ\0\0¿Yõ§\0\0\0!ÿ\0 \x000i\0\0\0\0\'\0(\0°#\0(\0p\n\0\'\0|\0\'\0Œ\0\'\0”\0\'\0€\f2\0@\0P\r\0 \0 \0 \0@n\0 \0 n\0\0\0é!\0"\0µ\0\0\0çà\0\0àÿø\0\0àÿÿ\0\0\0y\0.ÿÿ1\0\0ÿ3ÿÿ:ÿÿK,ÿÿzÿÿ\0\0Ôþ€\0\0Ã\0ƒÿÿˆ\0\0ÿÿŒ\0\0ÿÿ’\0\0ÿÿ•\0\0a\0™\0\0ÿÿš\0\0£\0›\0\0A¦ž\0\0‚\0¡ÿÿ¨\0\0ÿÿ­\0\0ÿÿ°\0\0ÿÿ´ÿÿ¹\0\0ÿÿ½\0\0ÿÿ¿\0\x008\0Å\0\0ÿÿÆ\0\0þÿÈ\0\0ÿÿÉ\0\0þÿË\0\0ÿÿÌ\0\0þÿÎÿÿÝ\0\0±ÿßÿÿò\0\0ÿÿó\0\0þÿõ\0\0ÿÿù&ÿÿ#ÿÿ<\0\0ÿÿ?\0?*B\0\0ÿÿG\bÿÿP\0\0*Q\0\0*R\0\0*S\0\0.ÿT\0\x002ÿV\x003ÿY\0\x006ÿ[\0\x005ÿ\\\0\0O¥`\0\x003ÿa\0\0K¥c\0\x001ÿd\0\0g¥e\0\0(¥f\0\0D¥h\0\0/ÿi\0\0-ÿj\0\0D¥k\0\0÷)l\0\0A¥o\0\0-ÿq\0\0ý)r\0\0+ÿu\0\0*ÿ}\0\0ç)€\0\0&ÿ‚\0\0C¥ƒ\0\0&ÿ‡\0\0*¥ˆ\0\0&ÿ‰\0\0»ÿŠ\0\'ÿŒ\0\0¹ÿ’\0\0%ÿ\0\0¥ž\0\0¥E\0\0T\0qÿÿw\0\0ÿÿ{\0‚\0¬\0\0Úÿ­\0Ûÿ±\0àÿÂ\0\0áÿÃ\b\0àÿÌ\0\0ÀÿÍ\0ÁÿÐ\0\0ÂÿÑ\0\0ÇÿÕ\0\0ÑÿÖ\0\0Êÿ×\0\0øÿÙÿÿð\0\0ªÿñ\0\0°ÿò\0\0\0ó\0\0Œÿõ\0\0 ÿø\0\0ÿÿû\0\0ÿÿ0\0àÿP\0°ÿa ÿÿ‹4ÿÿÂ\fÿÿÏ\0\0ñÿÑ^ÿÿa%\0ÐÿÐ*\0À\vý\0À\vø\0øÿ€\0\0’ç\0\0“ç‚\0\0œçƒ\0žç…\0\0ç†\0\0¤ç‡\0\0Ûçˆ\0\0‰Š\0\0ÿÿy\0\0Š}\0\0æŽ\0\x008Š”ÿÿ›\0\0Åÿ¡^ÿÿ\0\0\b\0\0\b\0 \0\b\x000\0\b\0@\0\b\0Q\b\0`\0\b\0p\0J\0r\0V\0v\0d\0x\0€\0z\0p\0|\0~\0°\0\b\0¾\0\0ÛãÐ\0\b\0à\0\b\0å\0\0\0N!\0\0äÿp!\0ðÿ„!\0\0ÿÿÐ$\0æÿ0,/\0Ðÿa,\0\0ÿÿe,\0\0ÕÕf,\0\0ØÕh,ÿÿs,\0\0ÿÿv,\0\0ÿÿ,bÿÿì,ÿÿó,\0\0ÿÿ\0-%\0 ã\'-\0\0 ã--\0\0 ãA¦,ÿÿ¦ÿÿ#§\fÿÿ3§<ÿÿz§ÿÿ§\bÿÿŒ§\0\0ÿÿ‘§ÿÿ”§\0\x000\0—§ÿÿµ§ÿÿȧÿÿͧÿÿö§\0\0ÿÿS«\0\0`üp«O\x000hAÿ\0àÿß\0S\0S\0\0\0I¼N\0\0\0ðJ\0\f\0\0™\b°¥\b‡5R\0\0–H\x001\0\0—T\0\b\0\0˜W\0\n\0\0™Y\0\n\0\0šA\0¾\0\0P¥\0\0R¥\0T¥V¥B€\b™\0\0\t™\0\0‚\n™\0\0ƒ\v™\0\0„\f™\0\0…\r™\0\0†™\0\0‡™\0\0ˆ\b™\0\0‰\t™\0\0Š\n™\0\0‹\v™\0\0Œ\f™\0\0\r™\0\0Ž™\0\0™\0\0(™\0\0‘)™\0\0’*™\0\0“+™\0\0”,™\0\0•-™\0\0–.™\0\0—/™\0\0˜(™\0\0™)™\0\0š*™\0\0›+™\0\0œ,™\0\0-™\0\0ž.™\0\0Ÿ/™\0\0 h™\0\0¡i™\0\0¢j™\0\0£k™\0\0¤l™\0\0¥m™\0\0¦n™\0\0§o™\0\0¨h™\0\0©i™\0\0ªj™\0\0«k™\0\0¬l™\0\0­m™\0\0®n™\0\0¯o™\0\0²º™\0\0³‘™\0\0´†™\0\0¶‘B\0\0·‘B™¼‘™\0\0ÂÊ™\0\0×™\0\0ĉ™\0\0Æ—B\0\0Ç—B™Ì—™\0\0Ò™\b\0Ó™\bÖ™B\0\0×™\bBâ¥\b\0ã¥\bä¡\0\0æ¥B\0\0ç¥\bBòú™\0\0ó©™\0\0ô™\0\0ö©B\0\0÷©B™ü©™\0\0\0ûF\0F\0\0\0ûF\0I\0\0\0ûF\0L\0\0\0ûF\0F\0I\0ûF\0F\0L\0ûS\0T\0\0\0ûS\0T\0\0\0ûDF\0\0ûD5\0\0ûD;\0\0ûNF\0\0ûD=\0\0(\'\0ØÿØ#\0Øÿ—\n\0Ùÿ£\0Ùÿ³\0Ùÿ»\0ÙÿÀ\f2\0Àÿp\r\0àÿÀ\0àÿ`n\0àÿ»n\0åÿ"é!\0Þÿ\0\0°\0\0]`à ½ !|, /0`3 à4ø¤`6\f¦ 6ûà6\0þàBýaC€!G\náG$\r¡H«!J/!K;áZóa[04¡ca!eðj¡e@m!fOoáfð¯ag¼¡h\0ÏaigÑái\0Úaj\0à¡k®â!mëä!oÐè¡oûóaq\0îqð?r \0\0 `€  \b¶$@\t\0, @¦à0«`\0û !ÿà\0a€á€\f¡ ¡@n¡\0Ôá¦Ö¡\0ßA"0à!%\0éá%0ñ!&Šñr&\0@¸¶³¬¨¡’Œˆ„’S]“…\f»N\0\0\0\0\0\0\0\0\0\0\0\0ÿ\0\0\0üÿÿ¨ªªªªªªÿÿÿÿÿÿ\0ÿý\0\0\0üÿÿ\0\0\0\0\0\0€\0\0\0ÿÿÿÿ…ªÿÿÿÿÿÿ\0\0\0\0ÿÿÿÿ\0\0\0\0üÿÿÿ\0\0\0\0\0ÿÿÿïÿ\0\0\0üÿÿ\0\0\0\0ðÿÿÿÿ\0\0Àÿÿÿÿÿ÷ÿÿÿÀC\0\0\0\0ÿÿ\0\0\0\0\0\0ÿÿ\0\0\0€ÿÿÿÀÿÿÿ\0\0\0ü\0\0\0\0\0\0\0ø\0\0ÿÿÿÿÿ÷üÿÿ÷\0\0ðTÕªªªªªªªªªªªªªªªªªªªªªUÿ\0ÿ\0ÿ\0ß@?\0ÿ\0ÿ\0ÿ?ÿÿÿÿbÚ?\0\0\0\0\0\0\0? \0\0\0\0\0Š<\0Ä\b\0\0€2\0\0€ÿûÿûÿ㪪ª/¹ÿÿÿÿÿý\n¥ª\n\0\0^\0\0\0\0\0 ÿÿÏÿÿÿÿÿ\0?\0ÿ\0ÿ\0Ü\0Ï\0ÿ\0Ü\0ªªªªP\b\0ÿÿÿÿ¿ \0\0ÿûÿà\0\0\0Àßÿÿ\0\0\0\0\0\0\0\0\0ªªª:\0\0\0\0\0ø\0\0\0\0\0÷\v\0\0\0\0\0\0ÿ\0\0\0\0\0\0ªªªªªªú“ªªªªªªÿ•@RUµªª)ªªPºªª‚ ªÿÿÿÿªªªª\0\0\0\0¨ª«ªU«ªªªªªÔ)1$N*-Qæüÿÿ\0\0Àë\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0\0\0\0\0\09\0\0\0\0\0\0\0\0\0\0\0\0\0)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0-\0\0\0\0\0\0\0\0\0\0\0\0\b>\0\0\0\0\0\0\0\0\0\0\0\0\0E,\x00513"\0\0\0\0\t:\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\0\0\0\0\0\0\0\0\0\0\0\0\0\0#6720$+\0\f \0\0/\x00999\0G%&\0H\0M\0\0\0\0\0\0\0\0\0\n=\0\0\0\0\0\0\0\0\0\0!\0\'(\0\0\0\0\0\0\0\0\0\0\04F\b<\0\0\0\0\0\0\0\0\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0C*8\vDA\rBNKL.\0¶\0J\0¦\0¢\0Ÿ\0–\0”\0Ž\0†\0ƒ\0@BFS\f\b’Œ†‚¤’²«\0\0\0\0\0\0ÿÿÿÿÿÿ?\0ÿ?\0\0\0ÿÿÿ\0\0\0üÿÿTUUUUUUõZU\0\0 \0\0\0\0\0ÿÿÿÿÿ\0\0\0ÿÿÿ_ü\0\0ðÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿUUUUUUþÿ\0\0\0\0\0\0E€°çß\0\0\0{UUUUUUlUUUUUU\0j¤ªJUUÒUU(EUU}_UUUUUUUUU«*UUUUUU\0\0\0\0UUUU\0\0\0\0TUTUªTUUUUU+ÖÎÛ±ÕÒ®\0\0\0\0\0\0\0\0\0\0\0?\0\0\0ÿÿÿ\0\0ÐdÞ?\0UUUU(\0 \0\0\0ÿÿ\0\0\0?\0ª\0ÿ\0\0@×þÿû\0\0\0\0ÿÿ?\0\0\0ÿÿ\0\0\0\0ÿ÷7\0\0\0\0\0zU\0\0\0\0\0\0¿ \0\0\0\0\0\0UUUUUUUª„8\'>P=À\0\0\0\0ê%À\0€UUUæ\0ÿÿÿÿÿç\0ÿÿÿ\0\0ð\0\0\0\0\0\0ÿ÷\0ÿ\0?\0ÿ\0ÿ,,#,,,,,,,,,,\0,,,,,,,,,,,,,,,,,(,,,,,B+,,, $\r",,,\v\',,,,\t\b-,,,,,,,,,,,,,%C,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,,,,,,,,,,,,1?,,,,,,,,,,,,,,A@,,,,,2,,,,,,,,,,,,,5,,,,,,,,,,,,,,6.,,,,,,,,,,,,3,\t/,*!,,,,,,,,,4\n0,,,,,,,,,,4&,,,,,,,,,,,,:7\f8);>=•.\t™ßý8/ät#ìõÏÓ\bÜÄڰͼ3¦&éN\0\0|.˜[‡Ó¾rŸÙ؇/ÆPÞkpnJÏؕÕnq²&°fÆ­$6ZÓB<TÿcÀsUÌïùeò(¼U÷Ç܀ÜínôÎïÜ_÷S\0\0\0\0\0\0\0\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¨\0\0¬\0\0\0°!\0\0\0\0\0¸!\0\0\f\0\0\0\0\0\0\0\0\0\0\0"\0\0¹\0\0\0V&\0\0f\0\0\0†)\0\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0óCname\0mo-rts-non-incremental.wasmÜAÇ\0getHPkeep_memory_reservesetHPic0_stable64_readic0_stable64_writemoc_stable_mem_get_versionmoc_stable_mem_get_sizemoc_stable_mem_grow\bmoc_stable_mem_set_version\t\rget_heap_base\nget_static_roots\v\brts_trap\f\vbigint_trap\r\fint_from_i32idl_limit_check__wasm_call_ctors__wasm_apply_data_relocs__wasm_apply_global_relocs[::insert::Bmotoko_rts::memory::alloc_blob::motoko_rts::rts_trap_withXmotoko_rts::principal_id::base32_of_checksummed_blob::@motoko_rts::bigint::mp_alloc::Cmotoko_rts::memory::alloc_array::Cmotoko_rts::region::region_load::-::trap_withDmotoko_rts::region::alloc_region::Dmotoko_rts::region::region_store::Fmotoko_rts::region::region_recover::$motoko_rts::region::region_trap_with^motoko_rts::region::region_migration_from_no_stable_memory::motoko_rts::region::write_magic `motoko_rts::region::region_migration_from_some_stable_memory::!Dmotoko_rts::text_iter::find_leaf::"Qmotoko_rts::gc::generational::generational_gc::#]motoko_rts::gc::generational::mark_stack::push_mark_stack::$motoko_rts::types::block_size%j>::mark_fields::{closure#0}&pmotoko_rts::gc::generational::write_barrier::init_generational_write_barrier::\'Omotoko_rts::gc::mark_compact::compacting_gc::(]motoko_rts::gc::mark_compact::mark_stack::push_mark_stack::)Gmotoko_rts::gc::copying::copying_gc::*Amotoko_rts::gc::copying::scav::+Amotoko_rts::gc::copying::evac::,__rustc::__rust_alloc-__rustc::__rust_realloc.motoko_rts::idl_trap_with/motoko_rts::trap_with_prefix0)::write_leb1281+::send_to_stable2-::no_backing_store3+motoko_rts::region::stable_memory_trap_with4motoko_rts::idl::parse_fields5motoko_rts::idl::leb128_decode6motoko_rts::idl::sleb128_decode7motoko_rts::idl::sub8motoko_rts::idl::skip_blob9motoko_rts::idl::skip_text:$motoko_rts::text::text_compare_range;+motoko_rts::bigint::bigint_leb128_encode_go<<::write_str==::write_char><::write_fmt?acos@\valloc_arrayA\nalloc_blobB\falloc_regionC\falloc_streamD\valloc_wordsEasinFatanGatan2Hbigint_2complement_bitsI\nbigint_absJ\nbigint_addKbigint_count_bitsL\nbigint_divM\tbigint_eqN\tbigint_geO\tbigint_gtP\fbigint_isnegQ\tbigint_leRbigint_leb128_decodeSbigint_leb128_decode_word64Tbigint_leb128_encodeUbigint_leb128_sizeVbigint_leb128_stream_encodeW\nbigint_lshX\tbigint_ltY\nbigint_mulZ\nbigint_neg[bigint_of_float64\\bigint_of_int32]bigint_of_int64^bigint_of_word32_bigint_of_word64`\nbigint_powa\nbigint_remb\nbigint_rshcbigint_sleb128_decodedbigint_sleb128_decode_word64ebigint_sleb128_encodefbigint_sleb128_sizegbigint_sleb128_stream_encodeh\nbigint_subibigint_to_float64jbigint_to_word32_trapkbigint_to_word32_trap_withlbigint_to_word32_wrapmbigint_to_word64_trapnbigint_to_word64_trap_withobigint_to_word64_wrapp\fblob_compareq\tblob_iterrblob_iter_donesblob_iter_nexttblob_of_principalu\vtext_to_bufv\fblob_of_textwchar_is_alphabeticxchar_is_lowercaseychar_is_uppercasezchar_is_whitespace{\rchar_to_lower|\rchar_to_upper}\rcompacting_gc~\rcompute_crc32continuation_count€continuation_table_size\ncopying_gc‚cosƒexp„\nfind_field…\bskip_any†\tfloat_fmt‡fmodˆfmodf‰generational_gcŠ\rget_heap_size‹get_max_live_sizeŒ\rget_reclaimedget_total_allocationsŽidl_subidl_sub_buf_initidl_sub_buf_words‘\vinit_region’initialize_compacting_gc“initialize_generational_gc”\rleb128_decode•\rleb128_encode–log—\tmp_calloc˜mp_free™\nmp_reallocšparse_idl_header›peek_future_continuationœpost_write_barrierpowžpowfŸprincipal_of_blob recall_continuation¡\vregion0_get¢\vregion_grow£\tregion_id¤\vregion_init¥region_load_blob¦region_load_float64§region_load_word16¨region_load_word32©region_load_word64ªregion_load_word8«\nregion_new¬region_page_count­\vregion_size®region_store_blob¯region_store_float64°region_store_word16±region_store_word32²region_store_word64³region_store_word8´region_vec_pagesµremember_continuation¶schedule_compacting_gc·schedule_copying_gc¸schedule_generational_gc¹sinº\vskip_fields»\vskip_leb128¼sleb128_decode½sleb128_encode¾stream_reserve¿stream_shutdownÀ\fstream_splitÁstream_stable_destÂ\fstream_writeÃstream_write_byteÄstream_write_textÅtanÆ\ftext_compareÇ\vtext_concatÈ\ttext_iterÉtext_iter_doneÊtext_iter_nextË\btext_lenÌtext_lowercaseÍtext_of_ptr_sizeÎtext_singletonÏ\ttext_sizeÐtext_uppercaseÑ\nutf8_validÒ\rutf8_validateÓversionÔ,__rustc::__rust_no_alloc_shim_is_unstable_v2Õ*libm::math::rem_pio2_large::rem_pio2_largeÖlibm::math::sin::sin×libm::math::cos::cosØlibm::math::sqrt::sqrtÙlibm::math::rem_pio2::rem_pio2Úlibm::math::exp::expÛlibm::math::sqrt::sqrtfÜlibm::math::pow::powÝlibm::math::ldexp::ldexpÞlibm::math::tan::tanßlibm::math::k_tan::k_tanàlibm::math::acos::acosálibm::math::asin::asinâlibm::math::atan::atanãlibm::math::fmod::fmodälibm::math::fmod::fmodfålibm::math::powf::powfælibm::math::ldexp::ldexpfçlibm::math::atan2::atan2èX>::reserve::do_reserve_and_handle::é*::finish_growê::to_lowercaseë::to_uppercaseì:core::num::imp::flt2dec::strategy::grisu::format_exact_optí7core::num::imp::flt2dec::strategy::dragon::format_exactî+::pad_formatted_partsï6core::fmt::float::float_to_decimal_common_exact::ð=core::num::imp::flt2dec::strategy::grisu::format_shortest_optñ:core::num::imp::flt2dec::strategy::dragon::format_shortestò9core::fmt::float::float_to_decimal_common_shortest::ó:core::fmt::float::float_to_exponential_common_exact::ô=core::fmt::float::float_to_exponential_common_shortest::õcore::fmt::writeöcore::str::converts::from_utf8÷.::mul_digitsø,::mul_pow2ù-::write_formatted_partsú)core::str::count::char_count_general_caseû4core::unicode::unicode_data::alphabetic::lookup_slowü0core::unicode::unicode_data::conversions::lookupý2core::unicode::unicode_data::conversions::to_lowerþ2core::unicode::unicode_data::conversions::to_upperÿ8core::unicode::unicode_data::case_ignorable::lookup_slow€/core::unicode::unicode_data::cased::lookup_slow.core::unicode::unicode_data::lowercase::lookup‚.core::unicode::unicode_data::uppercase::lookupƒ4core::num::imp::flt2dec::strategy::dragon::mul_pow10„ ::fmt…!::fmt†I::next‡\t__ashlti3ˆ\t__lshrti3‰9compiler_builtins::int::specialized_div_rem::u128_div_remŠ\b__multi3‹\t__umodti3Œ\t__udivti3memcmpŽmp_initmp_zeromp_add‘mp_sub’mp_mul“mp_cmp”\nmp_set_u32•\nmp_set_i32–\nmp_get_i32—mp_get_mag_u32˜\nmp_set_u64™\nmp_set_i64š\nmp_get_i64›mp_get_mag_u64œ\rmp_set_double\rmp_get_doubležmp_divŸ\fmp_init_copy mp_neg¡mp_abs¢\bmp_2expt£\vmp_expt_u32¤mp_set¥mp_sqr¦\bs_mp_add§\nmp_cmp_mag¨\bs_mp_sub©mp_growª\bmp_clamp«\fmp_init_size¬mp_exch­\bmp_clear®mp_copy¯\rmp_count_bits°\tmp_mul_2d±mp_rshd²\bmp_mul_d³\tmp_div_2d´\tmp_mod_2dµs_mp_balance_mul¶\rs_mp_toom_mul·\rs_mp_toom_sqr¸s_mp_karatsuba_sqr¹\rs_mp_sqr_fastºs_mp_karatsuba_mul»s_mp_mul_digs_fast¼\rs_mp_mul_digs½\rmp_init_multi¾mp_clear_multi¿\bmp_mul_2À\bmp_div_2Á\bmp_div_3Âmp_lshdÃmp_incrÄmp_decrÅ\bmp_add_dÆ\bmp_sub_dä\0__stack_pointer\r__memory_base\f__table_baseJGOT.data.internal.core::unicode::unicode_data::white_space::WHITESPACE_MAP2GOT.func.internal.::fmt3GOT.func.internal.::fmt\t\b\0.data\0R\tproducers\fprocessed-byrustc%1.96.0-nightly (c75612477 2026-04-07)clang19.1.7\0”target_features\b+\vbulk-memory+bulk-memory-opt+call-indirect-overlong+\nmultivalue+mutable-globals+nontrapping-fptoint+reference-types+\bsign-ext'}var e=RV(t),a=an===e?t[1]:W===e?gY(t):t,u=[0,xne,a,[0,0]];dIe(dH(IIe(u),Dm),u,0,"magic header not detected"),dIe(dH(IIe(u),1),u,4,"unknown binary version");var f=nDe(uDe,aDe,0,u);_De(dDe,u);var i=YIe(PK,function(r){return GIe(oXe,r)},0,u);_De(dDe,u);var c=function(r){var n=oIe(r),t=$Ie(r),e=$Ie(r),a=oIe(r),u=_Ie(r);if(3>>0)var f=mIe(r,oIe(r)-1|0,"malformed import kind");else switch(u){case 0:var i=oIe(r),c=NIe(r);f=[0,[0,pIe(r,i,oIe(r)),c]];break;case 1:f=[1,QIe(r)];break;case 2:f=[2,CIe(r)];break;default:f=[3,HIe(r)]}var v=[0,t,e,[0,pIe(r,a,oIe(r)),f]];return[0,pIe(r,n,oIe(r)),v]},v=YIe(Oy,function(r){return GIe(c,r)},0,u);_De(dDe,u);var o=function(r){var n=oIe(r),t=NIe(r);return[0,pIe(r,n,oIe(r)),t]},s=YIe(PO,function(r){return GIe(o,r)},0,u);_De(dDe,u);var b=function(r){var n=oIe(r),t=[0,QIe(r)];return[0,pIe(r,n,oIe(r)),t]},l=YIe(Us,function(r){return GIe(b,r)},0,u);_De(dDe,u);var B=function(r){var n=oIe(r),t=[0,CIe(r)];return[0,pIe(r,n,oIe(r)),t]},j=YIe(Bd,function(r){return GIe(B,r)},0,u);_De(dDe,u);var k=function(r){var n=oIe(r),t=[0,HIe(r),XIe(r)];return[0,pIe(r,n,oIe(r)),t]},p=YIe(wr,function(r){return GIe(k,r)},0,u);_De(dDe,u);var m=function(r){var n=oIe(r),t=$Ie(r),e=oIe(r),a=_Ie(r);if(3>>0)var u=mIe(r,oIe(r)-1|0,"malformed export kind");else switch(a){case 0:var f=oIe(r),i=NIe(r);u=[0,[0,pIe(r,f,oIe(r)),i]];break;case 1:var c=oIe(r),v=NIe(r);u=[1,[0,pIe(r,c,oIe(r)),v]];break;case 2:var o=oIe(r),A=NIe(r);u=[2,[0,pIe(r,o,oIe(r)),A]];break;default:var s=oIe(r),b=NIe(r);u=[3,[0,pIe(r,s,oIe(r)),b]]}var l=[0,t,[0,pIe(r,e,oIe(r)),u]];return[0,pIe(r,n,oIe(r)),l]},d=YIe(F$,function(r){return GIe(m,r)},0,u);_De(dDe,u);var _=YIe(A,function(r){var n=oIe(r),t=NIe(r);return[0,[0,pIe(r,n,oIe(r)),t]]},0,u);_De(dDe,u);var h=function(r){return gIe(sXe,r)},x=YIe(tN,function(r){return GIe(h,r)},0,u);_De(dDe,u);var y=YIe(Ef,bXe,0,u);_De(dDe,u);var w=function(r){var n=oIe(r),t=KIe(AXe,r);return[0,pIe(r,n,oIe(r)),t]},g=YIe(hI,function(r){return GIe(w,r)},0,u);_De(dDe,u);var q=function(r){var n=oIe(r),t=NIe(r);if(KV(t,0))if(KV(t,1))if(KV(t,2))var e=mIe(r,oIe(r)-1|0,"malformed data segment kind");else{var a=oIe(r),u=oIe(r),f=NIe(r),i=[0,[0,pIe(r,u,oIe(r)),f],XIe(r)],c=[0,pIe(r,a,oIe(r)),i];e=[0,PIe(r),c]}else{var v=[0,pIe(r,oIe(r),oIe(r)),0];e=[0,PIe(r),v]}else{var o=oIe(r),A=[0,[0,wve,0],XIe(r)],s=[0,pIe(r,o,oIe(r)),A];e=[0,PIe(r),s]}return[0,pIe(r,n,oIe(r)),e]},I=YIe(qg,function(r){return GIe(q,r)},0,u);_De(dDe,u);var D=nDe(oDe,lXe,fS,u);_De(dDe,u);var E=eDe(tdr,sDe,0,u),N=[0,eDe(edr,sDe,0,u),E];_De(dDe,u);var T=eDe(udr,sDe,0,u),F=eDe(fdr,sDe,0,u),M=nDe(ADe,BXe,[0,iS[1],T,F],u);_De(dDe,u);var P=eDe(adr,sDe,0,u);_De(dDe,u);var U=nDe(kDe,function(r,n){return Y0(44,sDe(r,n))},0,u);_De(dDe,u);var G=vIe(u),$=vIe(u);dIe(oIe(u)===$?1:0,u,G,"junk after last section");var K=vIe(u),O=LY(g);dIe(LY(s)===O?1:0,u,K,"function and code section have inconsistent lengths");var R=0===y?1:0,Q=vIe(u);return dIe(R||dH(y,[0,Goe(I)]),u,Q,"data count and data section have inconsistent lengths"),[0,[0,i,p,l,j,u0(function(r,n){var t=n[2];return[0,n[1],[0,r,t[2],t[3]]]},s,g),_,x,I,v,d],D,f,N,M,P,0,U]}throw kQ([0,YL,hne],1)}function dca(r){return Jia(_ne,PL(R3(dne),r),0)}function _ca(r,n,t,e,a){var u=a[3][1];return Npe([0,u],function(u){if(4===a[2][2][2][0])var f=DBe(a[2][2][1],"M0225",yne,"A mixin cannot be used as an entry point. It needs to be included in an actor (class)");else{var i=Xze(a),c=rY(Zze(uca),e),v=rY(Zze(tca),c),o=i[2],A=[0,Wze(v,i[1]),o];Kia(pce,A),mce[1]&&mze(0,"Desugaring",A);f=qBe(A)}return EBe(f,function(e){var a=function(r,n){var t=[0,wSe[1]];function e(r){var n=r;r:for(;;){if("number"==typeof n)switch(n){case 0:return 0;case 1:return 1;default:return 2}switch(n[0]){case 1:var t=n[1],u=YY(e,n[2]);return[1,f(t),u];case 3:break r;case 4:return[4,YY(i,n[1])];case 5:return[5,e(n[1])];case 6:return[6,e(n[1])];case 7:return[7,YY(e,n[1])];case 8:var c=n[4],v=n[3],o=n[2],A=n[1],s=YY(e,n[5]),b=YY(e,c);return[8,A,o,YY(a,v),b,s];case 9:var l=n[2],B=n[1],j=e(n[3]);return[9,B,e(l),j];case 10:return[10,e(n[1])];case 11:n=n[2];break;case 12:return[12,e(n[1])];default:return n}}return[3,n[1],YY(function(r){return i(r)},n[2]),0]}function a(r){var n=e(r[3]);return[0,r[1],r[2],n]}function u(r){return YY(a,r)}function f(r){var n=Upe(r);if(0===n[0]&&!n[1]){var a=n[2];if("number"!=typeof a&&2===a[0])return r}var f=wSe[29].call(null,r,t[1]);if(f)return f[1];var i=Ppe(r,Xvn);t[1]=wSe[4].call(null,r,i,t[1]);var c=Upe(r);if(0===c[0])var v=c[1],o=e(c[2]),A=[0,u(v),o];else{var s=c[1],b=e(c[2]);A=[1,u(s),b]}return ime(i,A),i}function i(r){var n=r[3];return[0,r[1],e(r[2]),n]}function c(r){var n=_X[4],t=_X[3],a=r[3][2],u=[0,e(r[3][1]),a,t,n],f=r[2];switch(f[0]){case 0:var i=f[1],A=i[1],B=YY(c,i[2]),k=[0,[0,mCe(e,function(r){return r},A),B]];break;case 3:var p=f[1],m=c(f[2]);k=[3,o(p),m];break;case 4:var d=f[1],_=d[1],h=c(d[2]);k=[4,[0,s(_),h]];break;case 5:var x=f[2],y=f[1],w=c(f[3]),g=c(x);k=[5,c(y),g,w];break;case 6:var q=f[1],I=YY(v,f[2]);k=[6,c(q),I];break;case 7:k=[7,c(f[1])];break;case 8:var D=f[2],E=f[1],N=c(f[3]);k=[8,E,e(D),N];break;case 9:var T=f[3],F=f[2],M=f[1],P=e(f[4]),U=c(T);k=[9,M,j(F),U,P];break;case 10:var G=f[2],$=f[1],K=c(f[3]);k=[10,$,e(G),K];break;case 11:var O=f[2];k=[11,f[1],O,c(f[3])];break;case 12:var R=f[6],Q=f[5],C=f[4],H=f[3],V=f[2],L=f[1],z=c(f[7]),S=YY(e,R),Z=YY(l,Q);k=[12,L,V,H,YY(j,C),Z,S,z];break;case 13:throw kQ([0,YL,Jvn],1);case 14:var W=f[3],X=W[9],J=W[8],Y=W[7],rr=W[6],nr=W[5],tr=W[4],er=W[3],ar=W[2],ur=W[1],fr=f[2],ir=f[1],cr=e(f[4]),vr=e(X[2]),or=[0,e(X[1]),vr],Ar=c(J),sr=c(Y),br=c(rr),lr=c(nr),Br=c(tr),jr=c(er),kr=[0,ur,c(ar),jr,Br,lr,br,sr,Ar,or],pr=b(fr);k=[14,s(ir),pr,kr,cr];break;case 15:var mr=f[2],dr=f[1],_r=e(f[3]);k=[15,dr,b(mr),_r];break;case 16:var hr=f[3],xr=f[1],yr=YY(v,f[2]);k=[16,c(xr),yr,hr];break;default:k=f}return[0,r[1],k,u]}function v(r){var n=r[2],t=n[1],e=r[1],a=r[3],u=c(n[2]);return[0,e,[0,B(t),u],a]}function o(r){var n=e(r[3]),t=r[2];switch(t[0]){case 1:var a=t[1],u=c(t[2]),f=[1,c(a),u];break;case 2:var i=t[2];f=[2,c(t[1]),i];break;default:f=t}return[0,r[1],f,n]}function A(r){var n=r[2],t=r[3];switch(n[0]){case 0:var a=n[1],u=c(n[2]),f=[0,B(a),u];break;case 1:var i=n[2],v=n[1],A=c(n[3]);f=[1,v,e(i),A];break;default:var s=n[2],b=n[1],l=o(n[3]);f=[2,b,e(s),l]}return[0,r[1],f,t]}function s(r){return YY(A,r)}function b(r){return YY(function(r){var n=e(r[3]);return[0,r[1],r[2],n]},r)}function l(r){var n=e(r[3]);return[0,r[1],r[2],n]}function B(r){var n=e(r[3]),t=r[2];if("number"==typeof t)var a=t;else switch(t[0]){case 2:a=[2,YY(B,t[1])];break;case 3:a=[3,kCe(B,t[1])];break;case 4:a=[4,B(t[1])];break;case 5:a=[5,t[1],B(t[2])];break;case 6:var u=t[1],f=B(t[2]);a=[6,B(u),f];break;default:a=t}return[0,r[1],a,n]}function j(r){var n=r[2],t=r[3],a=e(n[3]),u=n[2],i=[0,f(n[1]),u,a];return[0,r[1],i,t]}var k=n[2],p=n[1],m=[0,0,k[2],k[3],k[4],k[5]];switch(p[0]){case 0:throw kQ([0,zL,Yvn],1);case 1:var d=[1,s(p[1])];break;default:var _=p[4],h=_[9],x=p[1],y=_[8],w=_[7],g=_[6],q=_[5],I=_[4],D=_[3],E=_[2],N=_[1],T=p[3],F=p[2],M=e(p[5]),P=e(h[2]),U=[0,e(h[1]),P],G=c(y),$=c(w),K=c(g),O=c(q),R=c(I),Q=c(D),C=[0,N,c(E),Q,R,O,K,$,G,U],H=b(T),V=s(F);d=[2,x?[0,YY(l,x[1])]:0,V,H,C,M]}var L=[0,d,m];Kia(pce,L);var z=mce[1]?(mze(0,"Erase type components",L),L):L,S=z[2],Z=z[1];if(S[1])throw kQ([0,YL,qvn],1);var W=[0,S[1],S[2],S[3],0,S[5]];switch(Z[0]){case 0:throw kQ([0,zL,gvn],1);case 1:var X=Z[1],J=vSe(),Y=ySe(J,X),rr=[1,rY(_Se(J[1][1]),Y)];break;default:var nr=Z[4],tr=Z[5],er=nr[9],ar=nr[8],ur=nr[7],fr=nr[6],ir=nr[5],cr=nr[4],vr=nr[3],or=nr[2],Ar=nr[1],sr=Z[3],br=Z[2],lr=Z[1],Br=vSe(),jr=ySe(Br,br),kr=hSe(Br,or),pr=hSe(Br,vr),mr=hSe(Br,cr),dr=hSe(Br,ir),_r=hSe(Br,fr),hr=hSe(Br,ur),xr=hSe(Br,ar);rr=[2,lr,rY(_Se(Br[1][1]),jr),sr,[0,Ar,kr,pr,mr,dr,_r,hr,xr,er],tr]}var yr=[0,rr,W];Kia(pce,yr);var wr=mce[1]?(mze(0,"Translate show",yr),yr):yr,gr=wr[2],qr=wr[1];if(gr[1])throw kQ([0,YL,non],1);var Ir=[0,gr[1],gr[2],gr[3],gr[4],0];switch(qr[0]){case 0:throw kQ([0,zL,ron],1);case 1:var Dr=qr[1],Er=qSe(),Nr=$Se(Er,Dr),Tr=[1,rY(PSe(Er[1][1]),Nr)];break;default:var Fr=qr[4],Mr=qr[5],Pr=Fr[9],Ur=Fr[8],Gr=Fr[7],$r=Fr[6],Kr=Fr[5],Or=Fr[4],Rr=Fr[3],Qr=Fr[2],Cr=Fr[1],Hr=qr[3],Vr=qr[2],Lr=qr[1],zr=qSe(),Sr=$Se(zr,Vr),Zr=USe(zr,Qr),Wr=USe(zr,Rr),Xr=USe(zr,Or),Jr=USe(zr,Kr),Yr=USe(zr,$r),rn=USe(zr,Gr),nn=USe(zr,Ur);Tr=[2,Lr,rY(PSe(zr[1][1]),Sr),Hr,[0,Cr,Zr,Wr,Xr,Jr,Yr,rn,nn,Pr],Mr]}var tn=[0,Tr,Ir];Kia(pce,tn);var en=mce[1]?(mze(0,"Translate polymorphic equality",tn),tn):tn,an=en[2],un=en[1],fn=rZe[1],cn=[0,an[1],an[2],0,an[4],an[5]];switch(un[0]){case 0:throw kQ([0,zL,Lon],1);case 1:var vn=un[1];if(aHe(oHe,vn))var on=WSe(Ez),An=rZe[4].call(null,1,[0,on],fn),sn=rZe[4].call(null,2,[0,[0,zon,wVe]],An),bn=BHe(Son,Rz),ln=XSe(Ez,function(r){return YHe(0)}),Bn=[0,bVe(AZe(sn,vn,YHe(0),ln)),0],jn=[1,[0,_Ve(on,bn,yHe(HHe())),Bn]];else jn=[1,iZe(fn,vn)];break;default:var kn=un[4],pn=un[5],mn=kn[9],dn=kn[7],_n=kn[6],hn=kn[5],xn=kn[4],yn=kn[3],wn=kn[2],gn=kn[1],qn=un[3],In=un[2],Dn=un[1],En=uZe(rZe[1],kn[8]),Nn=hZe(rZe[1],dn),Tn=uZe(rZe[1],_n),Fn=rZe[1],Mn=YHe(0),Pn=_Ze(Fn,hn,UHe([0,bVe(hHe(Xon,[0,[0,Lle,[2,[5,Iye[3]]],[0,Mz,_X[2],_X[3],_X[4]]],0])),0],Mn)),Un=hZe(rZe[1],xn),Gn=uZe(rZe[1],yn),$n=[0,gn,uZe(rZe[1],wn),Gn,Un,Pn,Tn,Nn,En,mn];jn=[2,Dn,iZe(fn,In),qn,$n,pn]}var Kn=[0,jn,cn];Kia(pce,Kn);var On=pca("Async Lowering",wXe,1,mce[1]?(mze(0,"Await Lowering",Kn),Kn):Kn),Rn=On[1],Qn=On[2];switch(Rn[0]){case 0:throw kQ([0,zL,wvn],1);case 1:var Cn=[1,iSe(wX,Rn[1])[2]];break;default:var Hn=Rn[4],Vn=Rn[5],Ln=Rn[3],zn=Rn[2],Sn=Rn[1],Zn=Hn[9],Wn=rSe(wX,Hn[8]),Xn=Hn[7],Jn=Hn[6],Yn=Hn[5],rt=Hn[4],nt=rSe(wX,Hn[3]),tt=rSe(wX,Hn[2]),et=[0,Hn[1],tt,nt,rt,Yn,Jn,Xn,Wn,Zn];Cn=[2,Sn,iSe(wX,zn)[2],Ln,et,Vn]}var at=[0,Cn,Qn];Kia(pce,at);var ut=mce[1]?(mze(0,"Tailcall optimization",at),at):at,ft=ut[1];switch(ft[0]){case 0:throw kQ([0,zL,fon],1);case 1:SSe(0,KSe[1],ft[1]);break;default:var it=ft[4],ct=ft[1],vt=it[8],ot=it[7],At=it[6],st=it[5],bt=it[4],lt=it[3],Bt=it[2],jt=ft[2],kt=SSe(0,ct?RSe(0,KSe[1],ct[1]):KSe[1],jt)[1];LSe(0,kt,Bt),LSe(0,kt,lt),LSe(0,kt,bt),LSe(0,kt,st),LSe(0,kt,At),LSe(0,kt,ot),LSe(0,kt,vt)}return mce[1]&&mze(0,"constness analysis",ut),ut}(0,e);if(Mce[1]){switch(Dce[1]){case 1:dca("--compacting-gc is not supported with --enhanced-orthogonal-persistence");break;case 2:dca("--copying-gc is not supported with --enhanced-orthogonal-persistence");break;case 3:dca("--generational-gc is not supported with --enhanced-orthogonal-persistence");break;default:Dce[1]=4}0!==Tce[1]&&dca("--rts-stack-pages is not supported with --enhanced-orthogonal-persistence"),Fce[1]=1}else 0===Dce[1]&&(Dce[1]=2),0===Tce[1]&&(Tce[1]=[0,32]),KV($ce,$ce)&&dca("--stable-memory-access-limit is only supported with --enhanced-orthogonal-persistence");var u=t?[0,mca()]:0;return qBe(Mce[1]?$9e(r,n,u,a):kca(r,u,a))})})}function hca(r,n,t,e){return EBe(_ca(r,n,1,t,e),function(r){return qBe(iIe(r)[2])})}var xca=[Ul,"Jsoo_runtime.Error.Exn",qH()],yca=jca(uca,jca(tca,uQe));Bie(ate,[0,xca,[0]]);var wca=r,gca=null;function qca(r){return SC(r.toString())}wca.String,wca.RegExp,wca.Object,wca.Array,wca.Date,wca.Math,wca.JSON;var Ica=wca.Error;function Dca(r,n){!function(r,n){pV(r).output=function(r){n(r)}}(r,uV(function(r){return PL(n,r)}))}k6(function(r){return r instanceof Ica?[0,qca(r)]:r[1]===xca?[0,qca(r[2])]:0});var Eca=ghe(J_e);function Nca(r){function n(r,n){return{name:QC(r),args:GQ(n)}}var t=QC,e=r[3],a=e?e[1]:0;function u(e){var a=r[6],u=a&&a[1]!==e[1]?e[1]:"";return n(Mue,u1(t,[0,u,fQ+e[2],fQ+e[3]]))}function f(r){return n(Fue,[0,QC(fQ+r[2]),QC(fQ+r[3])])}function i(r){switch(r){case 0:var n=bue;break;case 1:n=lue;break;case 2:n=Bue;break;case 3:n=jue;break;case 4:n=kue;break;case 5:n=pue;break;case 6:n=mue;break;case 7:n=due;break;case 8:n=_ue;break;case 9:n=hue;break;case 10:n=xue;break;case 11:n=yue;break;case 12:n=wue;break;case 13:n=gue;break;case 14:n=que;break;case 15:n=Iue;break;case 16:n=Due;break;case 17:n=Eue;break;case 18:n=Nue;break;default:n=Tue}return QC(n)}function c(r){switch(r){case 0:var n=cue;break;case 1:n=vue;break;case 2:n=oue;break;case 3:n=Aue;break;default:n=sue}return QC(n)}function v(r){if(r)switch(r[1]){case 0:var n=aue;break;case 1:n=uue;break;default:n=fue}else n=iue;return QC(n)}function o(r){switch(r){case 0:var n=nue;break;case 1:n=tue;break;default:n=eue}return QC(n)}function A(r){var t=r[1][1],e=f(r[2]);return n(rue,[0,QC(t),f(r[1]),e])}function s(r){return QC(r[2]?Jae:Yae)}function b(r){if("number"==typeof r)switch(r){case 0:return Fa;case 1:return"Non";default:return zR}switch(r[0]){case 0:return n(ute,u1(t,[0,r[1],fQ+r[2]]));case 1:var e=r[1],a=YY(b,r[2]);return n("Con",c1([0,QC(uhe(e)),a]));case 2:return n(fte,[0,i(r[1])]);case 3:var u=r[3],f=r[1],A=YY(l,r[2]),s=rY(YY(B,u),A);return n("Obj",c1(rY([0,c(f),0],s)));case 4:return n(ite,c1(YY(l,r[1])));case 5:return n(cte,[0,b(r[1])]);case 6:return n("Opt",[0,b(r[1])]);case 7:return n("Tup",c1(YY(b,r[1])));case 8:var j=r[4],p=r[3],m=r[2],d=r[1],_=[0,n("",c1(YY(b,r[5]))),0],h=[0,n("",c1(YY(b,j))),_],x=rY(YY(k,p),h),y=[0,o(m),0];return n(vte,c1(rY([0,v(d),y],x)));case 9:return r[1]?n(ote,u1(b,[0,r[2],r[3]])):n(Ate,u1(b,[0,r[2],r[3]]));case 10:return n("Mut",[0,b(r[1])]);case 11:var w=r[1];return n(ste,[0,QC(w),b(r[2])]);default:return n(bte,[0,b(r[1])])}}function l(r){var t=r[2],e=r[1],a=j(r[3]);return n(e,c1([0,b(t),a]))}function B(r){var t=r[3],e=r[1],a=n("Typ",[0,QC(uhe(r[2]))]);return n(e,c1([0,a,j(t)]))}function j(r){var n=r[3],t=r[2],e=r[1];if(a){var u=vme(t,a[1]);if(u)var f=Cle[39].call(null,u[1]),i=x0(function(r){return DY(A,f)});else i=0}else i=0;var c=[0,A(n),i];return[0,QC(MY(e,"")),c]}function k(r){var t=[0,b(r[3])];return n(r[1],t)}function p(t,e){if(!r[2])return e;if(!r[3])return n(Bte,[0,e,QC(Eca[8].call(null,t))]);var a=b(t);return n(lte,[0,e,QC(Eca[8].call(null,t)),a])}function m(t,e){if(r[1]&&KV(t,Lle)){var a=u(t[2]);return n(Xae,[0,u(t[1]),a,e])}return e}function d(t,e){var a=r[4];if(!a)return e;var u=function(r){var n=YY(function(r){return r[1]},eBe(r));return 0===n?0:[0,O0(anr,n)]}(PY(Yle[8].call(null,a[1],[0,t[1][2],t[1][3]])));return u?n("*",[0,QC(u[1]),e]):e}function _(r){var t=n("ID",[0,QC(r[2])]);return m(r[1],t)}function h(r){if(0===r[0])return n("IdH",[0,_(r[1])]);var t=r[1],e=_(r[2]);return n(jte,[0,h(t[2]),e])}function x(r){if("number"==typeof r)return lD;switch(r[0]){case 0:return r[1]?n(Fae,[0,bt]):n(Mae,[0,_D]);case 1:return n(Pae,[0,QC(PL(xye[29],r[1]))]);case 2:return n(Uae,[0,QC(PL(wye[29],r[1]))]);case 3:return n(Gae,[0,QC(PL(gye[29],r[1]))]);case 4:return n($ae,[0,QC(PL(qye[29],r[1]))]);case 5:return n(Kae,[0,QC(PL(Iye[29],r[1]))]);case 6:return n(Oae,[0,QC(PL(dye[29],r[1]))]);case 7:return n(Rae,[0,QC(PL(Dye[29],r[1]))]);case 8:return n(Qae,[0,QC(PL(Eye[29],r[1]))]);case 9:return n(Cae,[0,QC(PL(Nye[29],r[1]))]);case 10:return n(Hae,[0,QC(PL(Tye[29],r[1]))]);case 11:return n(Vae,[0,QC(Uye(r[1]))]);case 12:return n(Lae,[0,QC(Fye(r[1]))]);case 13:return n(zae,[0,QC(fQ+r[1])]);case 14:return n(Sae,[0,QC(r[1])]);case 15:return n(Zae,[0,QC(r[1])]);default:var t=r[1];return n(Wae,[0,QC(t),i(r[2])])}}function y(r){switch(r){case 0:var n=Eae;break;case 1:n=Nae;break;default:n=Tae}return QC(n)}function w(r){var n=function(r,n){return wca.Object.defineProperty(n,"rawExp",{value:r,enumerable:!1}),n}(r,g(r)),t=p(r[3][1],n);return m(r[1],t)}function g(r){var t=r[2];switch(t[0]){case 0:return w(t[2][1]);case 1:return n(kte,[0,QC(t[1])]);case 2:return n(pte,[0,_(t[1])]);case 3:return n(mte,[0,x(t[1][1])]);case 4:return n(dte,[0,w(t[1])]);case 5:var e=t[2],a=t[1],u=w(t[3]),f=y(e);return n("UnE",[0,QC(che(a[1])),f,u]);case 6:var i=t[3],v=t[2],o=t[1],A=w(t[4]),b=function(r){switch(r){case 0:var n=sae;break;case 1:n=bae;break;case 2:n=lae;break;case 3:n=Bae;break;case 4:n=jae;break;case 5:n=kae;break;case 6:n=pae;break;case 7:n=mae;break;case 8:n=dae;break;case 9:n=_ae;break;case 10:n=hae;break;case 11:n=xae;break;case 12:n=yae;break;case 13:n=wae;break;case 14:n=gae;break;case 15:n=qae;break;case 16:n=Iae;break;default:n=Dae}return QC(n)}(i),l=w(v);return n(_te,[0,QC(che(o[1])),l,b,A]);case 7:var B=t[3],j=t[2],k=t[1],p=w(t[4]),m=function(r){switch(r){case 0:var n=fae;break;case 1:n=iae;break;case 2:n=cae;break;case 3:n=vae;break;case 4:n=oae;break;default:n=Aae}return QC(n)}(B),d=w(j);return n(hte,[0,QC(che(k[1])),d,m,p]);case 8:var h=t[1],g=h[1],E=w(h[2]);return n(xte,[0,QC(che(g[1])),E]);case 9:return n(yte,c1(I(t[1])));case 10:return n(wte,[0,w(t[1])]);case 11:return n(gte,c1(I(t[1])));case 12:var N=QC(fQ+t[2]);return n(qte,[0,w(t[1]),N]);case 13:return n(Ite,[0,w(t[1])]);case 14:return n(Dte,[0,w(t[1])]);case 15:return n(Ete,[0,w(t[1])]);case 16:var T=t[3],F=t[2],P=t[1],U=YY($,t[4]),G=T[1];if(G){var K=T[2],R=G[1];if(K)var C=[0,nK,D(K[1])],H=n(R[2],C);else H=QC(R[2])}else{var V=T[2];H=V?D(V[1]):_i}return n(Nte,q(P,rY([0,c(F[2]),[0,H,0]],U)));case 17:var S=t[1];if(!S)return n(Fte,c1(YY(z,t[2])));var X=rY([0,yt,0],YY(z,t[2]));return n(Tte,c1(rY(I(S),X)));case 18:var J=t[1],Y=w(t[2]);return n(Mte,[0,_(J),Y]);case 19:var rr=t[1],nr=_(t[2]);return n(Pte,[0,w(rr),nr]);case 20:var tr=t[1],er=w(t[2]);return n(Ute,[0,w(tr),er]);case 21:var ar=t[1],ur=I(t[2]);return n(Gte,c1(rY([0,s(ar),0],ur)));case 22:var fr=t[1],ir=w(t[2]);return n($te,[0,w(fr),ir]);case 23:var cr=t[5],vr=t[6],or=t[4],Ar=t[3],sr=t[2],br=t[1],lr=[0,w(t[7]),0],Br=[0,QC(vr?"":Kte),lr],jr=cr?D(cr[1]):_i,kr=[0,Q(or),[0,jr,Br]],pr=rY(YY(M,Ar),kr),mr=[0,L(sr),[0,QC(br),0]];return n(Ote,c1(rY([0,QC(che(r[3][1])),mr],pr)));case 24:var dr=t[3],_r=t[2],hr=t[1],xr=[0,w(t[4][2][1]),0],yr=rY(function(r){var n=r[2];if(!n)return 0;var t=n[1];return t[1]?[0,lO,YY(D,t[2])]:YY(D,t[2])}(dr),xr);return n(Rte,q(hr,rY([0,w(_r),0],yr)));case 25:return n(Qte,c1(YY(O,t[1])));case 26:return n(Cte,[0,w(t[1])]);case 27:var wr=t[1],gr=w(t[2]);return n(Hte,[0,w(wr),gr]);case 28:var qr=t[1],Ir=w(t[2]);return n("OrE",[0,w(qr),Ir]);case 29:var Dr=t[2],Er=t[1],Nr=w(t[3]),Tr=w(Dr);return n(Vte,[0,w(Er),Tr,Nr]);case 30:var Fr=t[1],Mr=YY(Z,t[2]);return n(Lte,c1(rY([0,w(Fr),0],Mr)));case 31:var Pr=t[1],Ur=w(t[2]);return n(zte,[0,w(Pr),Ur]);case 32:var Gr=t[2],$r=t[1];if(!Gr)return n(Zte,[0,w($r)]);var Kr=w(Gr[1]);return n(Ste,[0,w($r),Kr]);case 33:var Or=t[2],Rr=t[1],Qr=w(t[3]),Cr=w(Or);return n(Wte,[0,Q(Rr),Cr,Qr]);case 34:var Hr=t[2],Vr=t[1],Lr=w(t[3]),zr=D(Hr);return n(Xte,[0,_(Vr),zr,Lr]);case 35:var Sr=t[2];if(!Sr)return n(Yte,[0,w(t[3])]);var Zr=Sr[1],Wr=w(t[3]);return n(Jte,[0,_(Zr),Wr]);case 36:return n(ree,[0,w(t[1])]);case 37:return n(nee,[0,w(t[1])]);case 38:var Xr=t[1];if(!t[2]){var Jr=t[3],Yr=[0,w(t[4]),0];return n(aee,q(Xr,[0,M(Jr),Yr]))}if(Xr)throw kQ([0,YL,tee],1);var rn=t[3],nn=w(t[4]);return n(eee,[0,M(rn),nn]);case 39:var tn=t[1];return tn?tn[1]?n(uee,[0,w(t[2])]):n(fee,[0,w(t[2])]):n(iee,[0,w(t[2])]);case 40:return n(cee,[0,w(t[2])]);case 41:var en=t[1],an=D(t[2]);return n(vee,[0,w(en),an]);case 42:return n(oee,[0,QC(t[1][1])]);case 43:return n(Aee,[0,QC(t[1])]);case 44:return n(see,[0,w(t[1])]);case 45:var un=t[3],fn=t[2],cn=t[1];if(un){var vn=[0,be,[0,w(un[1]),0]],on=rY(YY(W,fn),vn);return n(bee,c1(rY([0,w(cn),0],on)))}var An=YY(W,fn);return n(lee,c1(rY([0,w(cn),0],An)));default:return n(Bee,[0,w(t[1])])}}function q(n,t){if(r[5])var e=[0,n?w(n[1]):_i,t];else e=t;return c1(e)}function I(r){return YY(w,r)}function D(r){var n=N(r[2]),t=p(r[3],n);return m(r[1],t)}function E(r){var n=r[2],t=r[1];return t?[0,QC(t[1][2]),[0,D(n),0]]:[0,D(n),0]}function N(r){switch(r[0]){case 0:var t=r[1],e=YY(D,r[2]);return n(jee,c1(rY([0,h(t[2]),0],e)));case 1:return n(kee,[0,QC(r[1])]);case 2:var a=r[1],u=YY(T,r[2]);return n(pee,c1(rY([0,c(a[2]),0],u)));case 3:var f=r[1],i=D(r[2]);return n(mee,[0,s(f),i]);case 4:return n(dee,[0,D(r[1])]);case 5:return n(_ee,c1(YY(U,r[1])));case 6:return n(hee,c1(j0(E,r[1])));case 7:var o=r[3],A=r[2],b=r[1],l=[0,D(r[4]),0],B=[0,D(o),l],j=rY(YY(M,A),B);return n(xee,c1(rY([0,v(b[2]),0],j)));case 8:if(r[1]){var k=r[2],p=D(r[3]);return n(yee,[0,D(k),p])}var m=r[2],d=D(r[3]);return n(wee,[0,D(m),d]);case 9:var _=r[1],x=D(r[2]);return n(gee,[0,D(_),x]);case 10:var y=r[1],w=D(r[2]);return n("OrT",[0,D(y),w]);case 11:return n(qee,[0,D(r[1])]);case 12:var g=r[1],q=D(r[2]);return n(Iee,[0,QC(g[2]),q]);default:return n(Dee,[0,D(r[1])])}}function T(r){var n=F(r[2]);return m(r[1],n)}function F(r){if(0===r[0]){var t=r[2],e=r[1],a=s(r[3]),u=D(t);return n(Eee,[0,_(e),u,a])}var f=r[2],i=r[1],c=[0,D(r[3]),0],v=YY(M,f);return n(Nee,c1(rY([0,_(i),v],c)))}function M(r){var n=P(r[2]);return m(r[1],n)}function P(r){var t=[0,D(r[3])];return n(r[1][2],t)}function U(r){var n=G(r[2]);return m(r[1],n)}function G(r){var t=[0,D(r[2])];return n(r[1][2],t)}function $(r){var n=K(r[2]),t=m(r[1],n);return d(r[1],t)}function K(r){var t=function(r){return r?r[1][2]?PI:nD:Kg}(r[3]),e=function(r){var t=r[2];if("number"==typeof t)return t?vB:D_;var e=t[1];return e?n(tae,[0,QC(e[1])]):VE}(r[2]);return n(Tee,[0,O(r[1]),e,t])}function O(r){var n=R(r[2]),t=m(r[1],n);return d(r[1],t)}function R(r){switch(r[0]){case 0:return n(Fee,[0,w(r[1])]);case 1:var t=r[3],e=r[2],a=r[1];if(t){var u=w(t[1]),f=w(e);return n(Mee,[0,Q(a),f,u])}var i=w(e);return n(Pee,[0,Q(a),i]);case 2:var v=r[1],o=w(r[2]);return n(Uee,[0,_(v),o]);case 3:var A=r[2],s=r[1],b=[0,D(r[3]),0],l=rY(YY(M,A),b);return n(Gee,c1(rY([0,_(s),0],l)));case 4:var B=r[7],j=r[8],k=r[6],p=r[5],m=r[4],d=r[3],h=r[2],x=r[1],y=YY($,r[9]),g=[0,_(j),0],I=[0,c(d[2]),g],E=B?D(B[1]):_i,N=rY([0,Q(k),[0,E,I]],y),T=YY(M,p),F=[0,_(m),T];return n($ee,q(x,rY([0,L(h),F],N)));case 5:var P=r[1],U=YY($,r[2]);return n(Kee,c1([0,Q(P),U]));default:var G=r[1],K=w(r[2]);return n(Oee,[0,_(G),K])}}function Q(r){var n=C(r[2]),t=p(r[3],n);return m(r[1],t)}function C(r){if("number"==typeof r)return AN;switch(r[0]){case 0:return n(Ree,[0,_(r[1])]);case 1:return n(Qee,[0,x(r[1][1])]);case 2:var t=r[1],e=x(r[2][1]);return n(Cee,[0,y(t),e]);case 3:return n(Hee,c1(YY(Q,r[1])));case 4:return n(Vee,c1(YY(H,r[1])));case 5:return n(Lee,[0,Q(r[1])]);case 6:var a=r[1],u=Q(r[2]);return n(zee,[0,QC(bO+a[2]),u]);case 7:var f=r[1],i=Q(r[2]);return n(See,[0,Q(f),i]);case 8:var c=r[1],v=D(r[2]);return n(Zee,[0,Q(c),v]);default:return n(Wee,[0,Q(r[1])])}}function H(r){var n=V(r[2]);return m(r[1],n)}function V(r){if(0!==r[0])return n(Jee,[0,QC(r[1][2])]);var t=r[1],e=Q(r[2]);return n(Xee,[0,QC(t[2]),e])}function L(r){var t=r[2];if(!t)return $B;var e=t[1];switch(e[1]){case 0:return n(Yee,[0,Q(e[2])]);case 1:return n(rae,[0,Q(e[2])]);default:return n(nae,[0,Q(e[2])])}}function z(r){var n=S(r[2]);return m(r[1],n)}function S(r){var t=w(r[3]),e=_(r[2]);return n(eae,[0,s(r[1]),e,t])}function Z(r){var t=w(r[2][2]),e=n(aae,[0,Q(r[2][1]),t]);return m(r[1],e)}function W(r){var t=w(r[2][2]);return n(uae,[0,Q(r[2][1]),t])}return[0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(r){return n("Prog",c1(YY(O,r[2])))}]}var Tca=rY(Yve,rY(iXe,rY(Jve,rY(roe,rY(toe,noe)))));function Fca(r){var n=r[3];return{line:0=f.length-1)return 0;try{var o=i[1],A=vC(f,o)[o+1];if(1<=HH(A)&&45===VV(A,0)){try{var s=L3(A,Tca),b=0,l=s}catch(t){var B=iL(t);if(B!==WL)throw kQ(B,0);try{var j=V0(A,HH(A),0,61),k=[0,K0(A,j+1|0,HH(A)-(j+1|0)|0)],p=L3(K0(A,0,j),Tca);b=k,l=p}catch(t){var m=iL(t);if(m===WL)throw kQ([0,H3,[0,A]],1);throw kQ(m,0)}}let r=A,n=b;var d=function(t){if(n)return n[1];if((i[1]+1|0)>=f.length-1)throw kQ([0,H3,[2,r]],1);var e=i[1]+1|0;return vC(f,e)[e+1]},_=function(n){switch(n[0]){case 0:var t=n[1];return e(0),PL(t,0);case 1:var v=n[1],o=a(0);try{var A=[0,o!==_D?o!==bt?LJ("bool_of_string"):1:0]}catch(r){var s=iL(r);if(s[1]!==zL)throw kQ(s,0);A=0}if(!A)throw kQ([0,H3,[1,r,o,"a boolean"]],1);return PL(v,A[1]),u(0);case 2:var b=n[1];return e(0),b[1]=1,0;case 3:var l=n[1];return e(0),l[1]=0,0;case 4:return PL(n[1],a(0)),u(0);case 5:return n[1][1]=a(0),u(0);case 6:var B=n[1],j=a(0),k=Z3(j);if(!k)throw kQ([0,H3,[1,r,j,T6]],1);return PL(B,k[1]),u(0);case 7:var p=n[1],m=a(0),d=Z3(m);if(!d)throw kQ([0,H3,[1,r,m,F6]],1);return p[1]=d[1],u(0);case 8:var _=n[1],h=a(0),x=W3(h);if(!x)throw kQ([0,H3,[1,r,h,M6]],1);return PL(_,x[1]),u(0);case 9:var y=n[1],w=a(0),g=W3(w);if(!g)throw kQ([0,H3,[1,r,w,P6]],1);return y[1]=g[1],u(0);case 10:var q=n[1];return e(0),t0(c,q);case 11:var I=n[1],D=n[2],E=a(0);if(!v0(E,I))throw kQ([0,H3,[1,r,E,"one of: "+z3("",U6,"",I)]],1);return PL(D,E),u(0);case 12:var N=n[1];for(e(0);;){if(i[1]>=(f.length-2|0))return 0;var T=i[1]+1|0;PL(N,vC(f,T)[T+1]),u(0)}break;case 13:var F=n[1];e(0);for(var M=[0,0];;){if(i[1]>=(f.length-2|0))return PL(F,XY(M[1]));var P=i[1]+1|0,U=M[1];M[1]=[0,vC(f,P)[P+1],U],u(0)}break;default:throw kQ([0,zL,"Arg.Expand is is only allowed with Arg.parse_and_expand_argv_dynamic"],1)}};let e=function(t){if(n)throw kQ([0,H3,[1,r,n[1],"no argument"]],1)},a=d,u=function(r){return n||i[1]++,0},c=_;_(l)}}catch(t){var h=iL(t);if(h[1]===Q3)throw kQ(v([3,h[2]]),1);if(h[1]===H3)throw kQ(v(h[2]),1);throw kQ(h,0)}i[1]++}}),saveFile:fV(function(r,n,t){var e=SC(n),a=SC(t);try{var u=function(r,n){var t=oH(r);return t.device.register||mC("cannot register file"),t.device.register(t.rest,n),0}(e,a);return u}catch(u){var f=TV(EV(e,I6,Xo));return GV(f,e),uY(f,a),_V(f),hV(f)}}),removeFile:fV(function(r,n){return function(r){var n=oH(r);return n.device.unlink(n.rest)}(SC(n))}),renameFile:fV(function(r,n,t){return function(r,n){var t=oH(r),e=oH(n);t.device!==e.device&&mC("caml_sys_rename: cannot move file between two filesystem"),t.device.rename||mC("caml_sys_rename: no implemented"),t.device.rename(t.rest,e.rest)}(SC(n),SC(t))}),readFile:fV(function(r,n){return QC(function(r){var n=oH(r="string"==typeof r?SC(r):r);if(n.device.exists(n.rest)){var t=n.device.open(n.rest,{rdonly:1}),e=t.length(),a=new Uint8Array(e);return t.read(a,0,e),bV(a)}rH(QC(r))}(SC(n)))}),readDir:fV(function(r,n){return GQ(u1(QC,tL(SC(n))))}),addPackage:fV(function(r,n,t){return dce[1]=Ace[4].call(null,SC(n),SC(t),dce[1]),0}),clearPackage:fV(function(r,n){return dce[1]=Ace[1],0}),setCandidPath:fV(function(r,n){return xce[1]=[0,SC(n)],0}),setActorAliases:fV(function(r,n){var t=v1(u1(function(r){var n=eV(r),t=SC(vC(n,1)[2]);return[0,SC(vC(n,0)[1]),t]},eV(n)));function e(r){return[0,r[1],[1,[0,r[2],0]]]}return hce[1]=Ace[40].call(null,function(r){return DY(e,t)}),0}),setPublicMetadata:fV(function(r,n){return wce[1]=f1(u1(SC,eV(n))),0}),setRunStepLimit:fV(function(r,n){return mQe[1]=n,0}),setTypecheckerCombineSrcs:fV(function(r,n){return Kce[1]=n,0}),setBlobImportPlaceholders:fV(function(r,n){return Oce[1]=n,0}),gcFlags:fV(function(r,n){var t=SC(n);if("classicOP"===t)return Mce[1]=0,0;if(t===_b)return Dce[1]=2,0;if("enhancedOP"===t)return Mce[1]=1,0;if("force"===t)return Ece[1]=1,0;if(t===Te)return Dce[1]=3,0;if(t===pf)return Dce[1]=4,0;if("marking"===t)return Dce[1]=1,0;if("scheduling"!==t)throw kQ([0,zL,"gc_flags: Unexpected flag"],1);return Ece[1]=0,0}),run:fV(function(r,n,t){gce[1]=0;var e=Npe(0,function(r){var e=VBe(bca(0,Lia,YY(SC,f1(eV(n))),aca)),a=SC(t);if(e)for(var u=e[1],f=u[3],i=u[2],c=Bca(yca,u[1]),v=i;;){if(v){var o=v[2],A=lca(c,v[1]);if(A){c=eQe(c,A[1][2]),v=o;continue}var s=0}else s=[0,c];if(s){var b=[0,[0,f,s[1]]];break}b=0;break}else b=0;if(b){var l=b[1],B=l[1],j=l[2],k=VBe(zca(Via(0,jMe,Lle,a),B));if(k){var p=k[1],m=p[4],d=p[2],_=lca(Bca(j,p[1]),d);if(_){var h=_[1][1];Lca(0,m,h);var x=[0,h]}else x=0}else x=0}else x=0;return x?{error:gca}:{error:{}}}),a=_2(Hca),u=_2(Vca);return h2(Hca),h2(Vca),{stdout:a,stderr:u,result:e}}),check:fV(function(r,n){return gce[1]=0,Npe(0,function(r){var t=[0,SC(n),0],e=bca(0,Pue[1]?zia:Lia,t,aca),a=0===e[0]?[0,[0,0,e[1][2]]]:[1,e[1]];return 0===a[0]?{diagnostics:GQ(Pca(a[1][2])),code:gca}:{diagnostics:GQ(Pca(a[1])),code:gca}})}),checkWithScopeCache:fV(function(r,n,t){gce[1]=0;var e=Qca(1,zia,[0,SC(n),0],Oca(t));if(0===e[0])var a=e[1],u=a[2],f=Rca(a[1][4]),i=u;else f=gca,i=e[1];return{diagnostics:GQ(Pca(i)),scopeCache:f}}),candid:fV(function(r,n){return gce[1]=1,Npe(0,function(r){var t=function(r){return EBe(bca(wne,Lia,r,aca),function(r){return qBe(WRe([0,r[2],r[3]]))})}([0,SC(n),0]);if(0!==t[0])return{diagnostics:GQ(Pca(t[1])),code:gca};var e=t[1],a=e[1],u=e[2],f=QC(sje([0,[0,a[3][2]]])[18].call(null,a));return{diagnostics:GQ(Pca(u)),code:f}})}),stableCompatible:fV(function(r,n,t){var e=SC(t),a=EBe(ica(SC(n)),function(r){return EBe(ica(e),function(n){return EBe(Npe([0,r[3][1]],function(n){return oMe(nca,r)}),function(r){return EBe(Npe([0,n[3][1]],function(r){return oMe(nca,n)}),function(n){return EEe(r,n)})})})});return 0===a[0]?{diagnostics:GQ(Pca(a[1][2])),code:gca}:{diagnostics:GQ(Pca(a[1])),code:gca}}),compileWasm:fV(function(r,n,t){gce[1]=1;var e=SC(n),a=SC(t);if("ic"!==e){if("wasi"!==e)throw kQ([0,zL,"js_compile_with: Unexpected mode"],1);var u=3}else u=1;return Npe(0,function(r){var n=Sca(u,1,[0,a,0]);if(0!==n[0])return{diagnostics:GQ(Pca(n[1])),code:gca};var t=n[1],e=t[1],f=e[2],i=f[5][2],c=t[2],v=e[1],o=i?QC(i[1][2]):gca,A=Bje(v),s=iIe(f)[2],b={wasm:wca.Uint8Array.from({length:HH(s)},uV(function(r,n){return VV(s,n)})),candid:QC(A),stable:o};return{diagnostics:GQ(Pca(c)),code:b}})}),parseCandid:fV(function(r,n){var t=ype(x1(0,SC(n)),lpe,"source1"),e=0===t[0]?qBe([0,t[1],"source2"]):[1,t[1]];if(0!==e[0])return{diagnostics:GQ(Pca(e[1])),code:gca};var a=e[1],u=a[1][1],f=u[2][2],i=a[2],c=f?[1,ftr,[0,oje(f[1]),0]]:itr,v=PL(Uca,[1,"Decs",rY(YY(cXe,u[2][1]),[0,c,0])]);return{diagnostics:GQ(Pca(i)),code:v}}),parseMotoko:fV(function(r,n,t){var e=((n==gca?0:n)?Hia:Cia)("",SC(t));if(0!==e[0])return{diagnostics:GQ(Pca(e[1])),code:gca};var a=e[1],u=a[1][1],f=a[2],i=Nca([0,1,0,0,[0,u[3][2]],0,[0,""]])[55].call(null,u);return{diagnostics:GQ(Pca(f)),code:i}}),parseMotokoWithDeps:fV(function(r,n,t,e){var a=SC(t),u=SC(e),f=EBe(((n==gca?0:n)?Hia:Cia)(a,u),function(r){var n=r[1];return EBe($ia(Sia(1,a,0),n,a),function(r){return qBe([0,n,r])})});if(0!==f[0])return{diagnostics:GQ(Pca(f[1])),code:gca};var i=f[1],c=i[1],v=c[1],o=i[2],A=c[2],s=Nca([0,1,0,0,[0,v[3][2]],0,[0,a]]),b=GQ(c1(YY(function(r){return QC(oca(r))},A))),l={ast:s[55].call(null,v),immediateImports:b};return{diagnostics:GQ(Pca(o)),code:l}}),parseMotokoTyped:fV(function(r,n){var t=Cca(gca,n,gca);if(0!==t[0])return{diagnostics:GQ(Pca(t[1])),code:gca};var e=t[1],a=e[2],u=GQ(u1(function(r){return{ast:r[1],scope:r[3]}},e[1][1]));return{diagnostics:GQ(Pca(a)),code:u}}),parseMotokoTypedWithScopeCache:fV(function(r,n,t,e){var a=Cca(n,t,e);if(0!==a[0])return{diagnostics:GQ(Pca(a[1])),code:gca};var u=a[1],f=u[1],i=u[2],c=f[2],v=GQ([0,GQ(u1(function(r){return{ast:r[1],immediateImports:r[2],scope:r[3]}},f[1])),c]);return{diagnostics:GQ(Pca(i)),code:v}}),contextualDotSuggestions:fV(function(r,n,t){var e=t[3][1];function a(r){var n=r[1],t=h0(r[2]);function a(r){var t=STe(r[2],e);if(!t)return 0;var a=t[1][2],u=r[1];return[0,[0,KEe(n),u,a]]}return function(r){return EY(a,t)}}var u=M_e[36].call(null,n[2]);function f(r){return EY(CTe,u)}var i=h0(x0(function(r){return TY(a,f)}));function c(r){var n=QC(che(r[3]));return{moduleUri:QC(r[1]),funcName:QC(r[2]),funcType:n}}return GQ(o1(function(r){return DY(c,i)}))}),contextualDotModule:fV(function(r,n){var t=n[2];if(19===t[0]){var e=t[3][1],a=t[2];if(e){var u=e[1][2];r:{if(19===u[0]){var f=u[1][2];switch(f[0]){case 2:var i=[0,f[1][2]];break r;case 43:i=[0,f[1]];break r}}i=0}if(i)var c=a[2],v=[0,[0,KEe(i[1]),c]];else v=0}else v=0}else v=0;if(!v)return gca;var o=v[1];return{moduleNameOrUri:QC(o[1]),funcName:QC(o[2])}}),printDeps:fV(function(r,n){for(var t=SC(n),e=LBe(Via(0,jMe,Lle,t))[1],a=nL(t)?t:Uie(t),u=LBe(HBe(0,function(r){return[0,YY(function(n){var t=n[1],e=n[3],u=zxe(t);if(0===u[0]){var f=u[1];if("number"!=typeof f&&1===f[0]){var i=Nia(e,Mia(a,f[1]),Eia);return 0===i[0]?[0,t,[0,i[1]]]:(MBe(r,i[1]),[0,t,0])}}return[0,t,0]},Uia(e))]}));;){if(!u){var f=_2(Hca);return h2(Hca),ZQ(f)}var i=u[2],c=u[1],v=c[2],o=c[1];if(J0("blob:",o))u=i;else if(v){var A=v[1];UL($3(nY,zne),o,A),u=i}else PL($3(nY,Sne),o),u=i}})},Wca=SC("object")===Ok&&0 stack_ptr",b="func",l="expected function type, but expression produces type\n ",B="box_f64",j="idl_sub_buf_words",k="__",p="__stablememory_load_float64",m="malformed UTF-8 encoding",d="to_candid argument must have shared type, but instead has non-shared type%a",_="malformed operator",h="duplicate binding for ",x="deadline",y="clz64",w="M0141",g="deserialize",q="popcntInt8",I="sys_big_int_of_string",D=244,E="Unsupported persistence version. Use newer Motoko compiler version.",N="text_concat",T="tup_scrut",F="region0_get",M="",P="obj_idx<",U="convertee",G="canister_inspect_message",$="M0222",K="Int8Lit",O="DIDL",R="rts_version",Q=870828711,C="ExpField",H="lowering/desugar.ml",V="idllib/arrange_idl.ml",L="parsing",z="mutbox_value",S="actor classes with non non-async return types are deprecated; please declare the return type as 'async ...'",Z="nat32",W=246,X=160,J="max_res_bytes",Y="actor class configuration unsupported in interpreter",rr="?",er="rsh_Nat",nr='compile_const_exp/VarE: "%s" not found',tr="get_typtbl_size_ptr",ar="__stablememory_load_word64",ur="schedule_incremental_gc",fr="ObjP",ir="__idl_types_length",vr=" and ",cr="StableMemory offset out of bounds",Ar="NegOp",or="canister_init",sr="asin",br="if_can_tag_i64",lr="int16",Br="env_var_value_copy",jr="v_rng",kr="EEXIST",pr=431,mr="blob_compare",dr="start_gc_after_destabilization",_r="cannot reject when running locally",hr=405,xr="__stablemem_ensure",yr="jsError",wr=-872313182,gr="fmax",qr=7947,Ir="file size is larger than an OCaml 63-bit integer",Dr="Int64Lit",Er="fmodf",Nr="h_ptr",Tr="M0146",Fr="cannot get deadline when running locally",Mr="B+div",Pr="bigint_ge",Ur="json",Gr="__stablememory_store_word16",$r="canister_subnet",Kr="shared function has non-shared parameter type%a",Or="clz16",Rr=781116926,Qr=322,Cr="ENOMEM",Hr=8041,Vr="ENETDOWN",Lr=852405675,zr="env",Sr="regionStoreNat64",Zr="prim",Wr=110,Xr=420,Jr="src/sexp_conv.ml",Yr="field",re="LitE",ee=-798940232,ne="array index out of bounds",te="region_page_count",ae=250,ue="expected array type, but expression produces type\n %s",fe="<- await",ie="value_len",ve="inspect",ce="",Ae=130,oe="cannot send references on IC System API",se="last",be="float32",le="RotROp",Be="Map.bal",je="cannot have more than one mode",ke="bigint_to_word64_wrap",pe="heapSize",me="ctz8",de="msg",_e="first_word",he="__motoko_runtime_information",xe=140,ye="Shared Composite",we="get_maintyps_ptr",ge="bigint_isneg",qe="Nat32Lit",Ie="btst32",De="arithmetic overflow",Ee="bad import: imported actor class cannot be anonymous",Ne="text_size",Te="IDL error: exceeded value limit",Fe=" of type:",Me="non-",Pe="AsyncT",Ue="multi_val_",Ge="log",$e="PostPreUpgrade",Ke="heartbeat_exp",Oe="A.B.C",Re="mo_types/typ_hash.ml",Qe="__stablememory_size",Ce="PrimT",He=": ",Ve="msg_caller_info_data_size",Le="object type",ze="skip_any",Se="InInit",Ze=176,We=55296,Xe="cannot infer type of primitive",Je=126,Ye="regionStoreNat32",rn="Array",en=345,nn="count",tn="of_string",an=" Display this list of options",un="BoolLit",fn="EFBIG",vn="ERANGE",cn="actor class has non-async return type",An="opt_inject",on="EPROTOTYPE",sn="env_var_value_size",bn="true",ln="msg_arg_data_size",Bn="shared function has non-async result type",jn="shared query function must have syntactic return type 'async '",kn="ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0",pn="set_upgrade_instructions",mn=1348,dn="type ",_n="continuation_table_size",hn="data_certificate_copy",xn=288,yn="with",wn="assign_stable_type",gn=216,qn="find_field",In="fmod",Dn="mo_frontend/bi_match.ml",En="Arr.toBlob",Nn="object pattern cannot consume expected type",Tn="",Fn=65535,Mn=405210929,Pn="InPostUpgrade",Un="get_heap_base",Gn="CatOp",$n="maxLiveSize",Kn="inner actor classes are not supported yet; any actor class must come last in your program",On=737308346,Rn=228,Qn="decrement",Cn="migration",Hn="alloc_words",Vn="Expect one table in first module",Ln="newPages",zn="LeOp",Sn=1132,Zn="src/fmt.ml",Wn="word16",Xn=342,Jn=112,Yn="decodeUtf8",rt="",et="obj_idx<%d>",nt="destination_invalid",tt="fmtFloat->Text",at=413,ut="stableMemoryLoadNat32",ft="M0207",it="EADDRINUSE",vt="bigint_trap",ct="AsyncE*",At="ELOOP",ot="blob_of_ptr_size",st="idllib/typing.ml",bt=";",lt="if_can_tag_i32",Bt="TagE",jt="subnet_self_size",kt="bad import: expected a module or actor class but found an actor",pt="Export ",mt="",dt="stableMemoryLoadNat16",_t="Assert_failure",ht="bigint_div",xt="@@typtbl_end",yt=357,wt="CPSAwait answer type error",gt="record",qt=684370880,It="T1",Dt="M0089",Et=149,Nt="generational",Tt="too few type arguments",Ft="<= %s",Mt="NatLit",Pt="cost_call",Ut="switch",Gt="TryE",$t="n",Kt="blob too long for actor principal",Ot="curve",Rt="Failure",Qt=" declared",Ct=57344,Ht="remember_continuation",Vt="param",Lt="WeakT",zt="ESOCKTNOSUPPORT",St="moc_stable_mem_set_version",Zt="region_load_word64",Wt="s",Xt="unop",Jt="fatan",Yt="M0190",ra="M0131",ea=1255,na="inspect_exp",ta=143,aa="wpow_nat",ua="async",fa="AndT",ia="cycles",va="ENOBUFS",ca="graph_stabilization_increment",Aa="initialize_static_variables",oa="totalAllocation",sa="cannot decide subtyping between type",ba="rts_in_upgrade",la="M0166",Ba="/static/",ja="init_region",ka="Blob.compare_lt",pa="the type ",ma="Module",da="idlHash only implemented in interpreter",_a="Fatal error: exception %s\n",ha="InComposite",xa=511,ya=824580451,wa="val",ga="ETOOMANYREFS",qa=336,Ia="MixinD",Da="lib.mo",Ea="Any",Na="amount",Ta="field names ",Fa="ffloor",Ma=223,Pa="regionGrow",Ua="RetE",Ga="__motoko_gc_trigger",$a="nat64",Ka=" of type ",Oa="bigint_2complement_bits",Ra="regionLoadNat16",Qa="set_dedup_table",Ca="principal_of_blob",Ha="popcnt32",Va="stableMemoryLoadInt8",La=" does not exist in ",za="MulOp",Sa="regionStoreNat8",Za=1350,Wa="v_dom",Xa="expected mutable assignment target",Ja="(%s%s)",Ya="memorySize",ru="relop",eu="integer too large",nu=4100401,tu="write_location",au="stableMemoryStoreInt64",uu="M0241",fu="cost_sign_with_ecdsa",iu="ir_def/construct.ml",vu="num_conv",cu="multi_val_%d",Au="array_len",ou="fd_write",su="LitP",bu="\n",lu="rts_lifetime_instructions",Bu="could not perform oneway",ju="BinOp",ku="sleb128_decode",pu="bigint_lsh",mu="cycle_available",du="rts_max_live_size",_u="M0145",hu="error_value",xu="arg_typ",yu=454,wu="principalOfActor",gu="tan",qu="PreInit",Iu="ValPF",Du=65528,Eu="as_obj",Nu=737455525,Tu="DecField",Fu="cast",Mu="__stablemem_%swrite_%s",Pu="cannot get root-key when running locally",Uu="system_transient",Gu="cannot get caller_info_data when running locally",$u="btstInt16",Ku=".",Ou=416,Ru="ignored argument of `async*` type has no effect",Qu="@reject_callback",Cu=155,Hu="alloc_array",Vu="__lifetime_instructions",Lu="human",zu="ImplicitLibE",Su="Nat64",Zu="regionLoadInt64",Wu=334,Xu=247,Ju="ic0_stable64_read",Yu="set_val: ",rf="Odd: Type hash scratch space not empty",ef="__type_offsets_length",nf=4294967296,tf="M0211",af="meth_pair1",uf="cannot get caller when running locally",ff="persistent",vf="pages_needed",cf="M0195",Af="cannot compute union of types containing recursive or forward references to other type definitions",of="type field",sf=15713,bf="EPIPE",lf="public",Bf=7977,jf="incremental",kf="ctz16",pf="wasi_snapshot_preview1",mf="start_graph_stabilization",df='compile_const_exp/ObjE: "%s" not found',_f="IDL error: left-over references ",hf="ctzInt32",xf="stableMemoryStoreBlob",yf=756711075,wf=287,gf=374,qf="as_ptr_size",If=837731904,Df="Sys_blocked_io",Ef="performance_counter",Nf="bigint_leb128_decode",Tf="@get_actor_to_persist",Ff="",Mf="root_key_copy",Pf="num_wrap",Uf="unexpected ",Gf="CPSAwait bad cont",$f="B_lt",Kf=8045,Of="cannot infer return type",Rf="sanityChecks",Qf="Variant",Cf="nat",Hf="with --enhanced-migration, this stable declaration cannot have an initializer.\n Remove the expression and initialize the declaration using a `migration` function.",Vf="int64",Lf=8044,zf="not a module, skipping",Sf="..",Zf="post_upgrade",Wf="oneway function has non-unit return type",Xf=65536,Jf="len2",Yf="UnboxedTuple %d",ri="IDL error: too few arguments ",ei="",ni="wasm-exts/customModuleDecode.ml",ti="compile_eq",ai=65535,ui="system_unknown",fi="Replies",ii="Blob",vi="warning",ci="EADDRNOTAVAIL",Ai="bigint_rem",oi=437,si="getCandidLimits",bi="M0235",li="serialize_go",Bi="custom section size mismatch",ji="idl_limit_check",ki="@anon-",pi="_",mi="word64",di="misplaced stability declaration on field of non-actor",_i="No global named ",hi="var ",xi=-1073741824,yi="EqOp",wi="([^/]+)",gi="bigint_of_word32",qi="assert_nonneg",Ii="with flag --default-persistent-actors, the `persistent` keyword is redundant and can be removed",Di="opt_scrut",Ei="cos",Ni="ObjBlockE",Ti="OptE",Fi="c",Mi="utf8_valid",Pi="msg_arg_data_copy",Ui="Mixins are not yet supported in the interpreter",Gi="cannot combine `(with migration = ...)` with --enhanced-migration; use one or the other.",$i="linking/linkModule.ml",Ki="continue outside of loop",Oi=236,Ri="_start",Qi="get_n_ptr",Ci="canister_reject",Hi="EINTR",Vi="__heap_base",Li="M0142",zi="CallE",Si="__wasm_call_ctors",Zi='compile_const_exp/VarE: "',Wi="env_var",Xi="stableMemoryStoreNat16",Ji="regionLoadNat8",Yi="data_start",rv="regionLoadFloat",ev="duplicate binding for type ",nv=354,tv="is_ref",av='" not found',uv="composite send capability required, but not available\n (cannot call a `composite query` function from a non-`composite query` function)",fv="[var ",iv="unexpected `system` capability (try deleting it)",vv="__stablememory_store_word8",cv="skip_fields",Av="implicit",ov="ref_size",sv="async expressions are not supported",bv="\\\\",lv="EINVAL",Bv="get_total_allocations",jv="str_caller",kv="timer_exp",pv="schedule",mv="\\n",dv="Error",_v="misplaced ",hv="Query",xv=7976,yv="ObjE",wv="idltyp2",gv="fasin",qv="__stablememory_load_word8",Iv="ic0_stable64_grow",Dv="NewObjE",Ev="",Nv="IDL error: coercion failure encountered",Tv="@@data_buf",Fv="mo_frontend/parser.ml",Mv="rts_reclaimed",Pv=434,Uv=" missing",Gv=323557469,$v="rts_start",Kv="WMulOp",Ov="rts",Rv="compile_lit_pat",Qv="alloc_weak_ref",Cv="heartbeat",Hv="Float32",Vv="DotH",Lv="call_new",zv="%.*g",Sv="b",Zv="PrimE",Wv="Stack_overflow",Xv="text",Jv="Invalid_argument",Yv="shared function has unexpected type parameters",rc="Nat",ec="schedule_",nc="getCandidTypeLimits",tc=422,ac=492,uc="text_of_ptr_size",fc=466,ic=" than expected",vc="ftan",cc=252,Ac="serialize",oc="-help",sc="B_mod",bc="timer",lc=178,Bc="/",jc="v",kc="Out_of_memory",pc="idltyp1",mc=256,dc=-48,_c=16777212,hc="EHOSTUNREACH",xc="Blob size out of bounds",yc="blob_of_text",wc="recall_continuation",gc="rts_stable_memory_size",qc="codegen/compile_enhanced.ml",Ic="ir_passes/eq.ml",Dc="the new type of stable variable `",Ec=-10,Nc=937,Tc="EPERM",Fc="@;<0 0>",Mc="@[<2>async@ %a@]",Pc="NotE",Uc="bigint_to_float64",Gc="None",$c="conv_Char_Text",Kc="message result is not sharable:\n ",Oc="Prim",Rc="idl_sub_buf_init",Qc="not a directory",Cc="data_size",Hc="unexpected call_conv ",Vc="principalOfBlob",Lc="Local actors not supported by backend",zc="let",Sc="compile_const_exp/ProjE: not a static tuple",Zc=114,Wc="actor classes are not supported",Xc="blobOfPrincipal",Jc="data_segment_blob",Yc=350,rA="send capability required, but not available\n (cannot call a `shared` function from a `query` function)",eA="setCandidLimits",nA="IDL error: incompatible actor type",tA="length",aA="bigint_leb128_size",uA="ENOEXEC",fA=", characters ",iA="compile_unop",vA=-588596599,cA="type_desc: unexpected type ",AA="Candid limit denominator cannot be zero",oA="ctzInt64",sA="continue",bA=1022,lA="cannot perform ",BA="from_candid requires but is missing a known type (from context)",jA=" must not depend on itself",kA="cost_sign_with_schnorr",pA=" does not match pattern",mA="M0007",dA=201,_A="compile_relop",hA="region_load_word32",xA="binop",yA=16777153,wA="from_%i_tuple",gA="arrayMutToBlob",qA="TagP",IA="typ_field",DA="start",EA="reference buffer not filled",NA="stableMemoryLoadInt16",TA="module",FA=148,MA="set_val: %s is const",PA=154,UA="exp",GA=7944,$A=308,KA="get",OA="M0155",RA="stableVarQuery",QA="open",CA="blobToArray",HA="Division_by_zero",VA="cycles out of bounds",LA="env_var_name_size",zA=438,SA="payload_size",ZA=104,WA="Blob.compare",XA="type:",JA="clzInt64",YA="UnboxedWord64",ro="ENOTSOCK",eo="i",no="M0061",to=380,ao="rts_total_allocation",uo="IdxE",fo="mo_frontend/stability.ml",io="Undefined_recursive_module",vo="Nat16",co="EHOSTDOWN",Ao=226,oo="ESPIPE",so="cannot compile library",bo="operator is not defined for operand type",lo="M0101",Bo=300,jo="free_stable_actor",ko="assertion failed at %s",po="illegal escape",mo="clzInt16",_o="maxStackSize",ho="promising function cannot be local:\n ",xo=151,yo="field name ",wo="region_store_word16",go="bigint_to_word64_trap_with",qo=185,Io="msg_reply",Do=" <: ",Eo=")\n",No="Int",To=146,Fo=65280,Mo="object",Po=144,Uo="compute_crc32",Go="label",$o="btstInt32",Ko="raw call",Oo="tuple pattern has ",Ro="__call_perform_message",Qo=438511779,Co="error_code",Ho="actor classes with type parameters are not supported yet",Vo="EWOULDBLOCK",Lo="incremental_gc",zo="cannot reply when running locally",So="no such file or directory",Zo="ECHILD",Wo="region_vec_pages",Xo="cannot infer type of implicit argument",Jo=1024,Yo="compile_start_func: Cannot compile library",rs="cannot get arg_data when running locally",es="` is missing from ",ns=138,ts="Int->Int64",as="GOT.func",us=382,fs=366,is="sin",vs="meth_pair2",cs='"',As="bigint_to_word64_trap",os=105,ss="ctzInt8",bs="M0238",ls="Idle",Bs=224,js="Array.idx",ks="@@type_bias",ps="tuple pattern cannot consume expected type",ms="__stablemem_size",ds="GeOp",_s="bad file descriptor",hs="AllocHow.join: cannot join StoreStatic and StoreHeap",xs=129,ys="__motoko_destabilize_after_upgrade",ws=504,gs="buf",qs="message result is not sharable:\n %s",Is="blob index out of bounds",Ds="next",Es="pipeline/pipeline.ml",Ns="actor class cannot take a context pattern",Ts="ENAMETOOLONG",Fs=1031864215,Ms=1114112,Ps="DoOptE",Us="",Gs="M0005",$s=1e3,Ks=921,Os="rmdir",Rs="str_self",Qs="\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Cs=8047,Hs="this looks like an unintended function call, perhaps a missing ';'?",Vs="}",Ls="IfE",zs="bigint_leb128_stream_encode",Ss="M0177",Zs="cannot get caller_info_signer when running locally",Ws=158,Xs="illegal operation on a directory",Js="a float",Ys="stableMemoryStoreInt32",rb="@;<0 -2>",eb="rts_max_stack_size",nb="__init_message_payload",tb="@ ",ab="this uninitialized `let` can only use a simple identifier pattern `let : `",ub="mo_types/productive.ml",fb=389604418,ib="",vb="text_iter",cb="text_uppercase",Ab="ExpD",ob="AndE",sb="AndOp",bb="M0218",lb="no type can be inferred for actor reference",Bb="T2",jb="lower",kb="internal error: left-over ThrowPrim",pb=107,mb="copying",db="alloc_size<",_b=197,hb="'",xb=482,yb="ESRCH",wb="codepoint out of range",gb="lib/pack/menhirLib.ml",qb="EISDIR",Ib="operator is not defined for operand type%a",Db="%.17g",Eb="Int8",Nb="y",Tb="unbound variable %s%a",Fb=1073741823,Mb="moc_stable_mem_set_size",Pb="regionLoadBlob",Ub="call_cycles_add128",Gb="text_iter_done",$b="M0254",Kb="\n scope ",Ob="try handler",Rb="SwitchE",Qb=478,Cb="bigint_sleb128_encode",Hb=">_tag<",Vb=242899572,Lb="`, `",zb="msg_reject_msg_copy",Sb=180,Zb=2147483647,Wb="moc_stabilization_instruction_limit",Xb="M0032",Jb="temp_ptr",Yb="M0074",rl="OrOp",el="done",nl="M0244",tl="menhir-recovery-lib/menhirRecoveryLib.ml",al="M0062",ul="",fl="res",il="pattern failed",vl="bigint_to_word32_trap",cl="bigint_sleb128_stream_encode",Al="regionId",ol="@@global_typtbl_end",sl="Arr.ofBlobMut",bl="__candid_data_length",ll="__run_post_upgrade",Bl="Expected no arguments",jl="Text.compare_ge",kl=428,pl="type",ml="EMSGSIZE",dl="codegen/compile_classical.ml",_l="caller_info_signer",hl="read_",xl="rts_logical_stable_memory_size",yl="call_on_cleanup",wl="stableMemoryStoreNat32",gl="used more than once",ql="unvisited mutable data in serialize_go (Array)",Il="__destabilized_actor",Dl="__stablemem_",El="Stable memory error: Aliased at wrong type, expected: ",Nl="PreLit",Tl="trans_state",Fl="hash",Ml="variable ",Pl=500,Ul=102,Gl=248,$l="start_graph_destabilization",Kl="else",Ol="misplaced return",Rl=1000000010,Ql="__stablemem_ensure_pages",Cl="Unreachable",Hl="Int->",Vl="system_fatal",Ll=359,zl="lowmemory",Sl="Nat64Lit",Zl="EMLINK",Wl="misplaced parenthetical (`async*` calls cannot be modified)",Xl=2146435072,Jl="0x%x",Yl="bigint function error",rB="canister_composite_query ",eB=392,nB="RelE",tB="bigint_sub",aB="operator may trap for inferred type",uB=4202101,fB="IDL error: unexpected variant tag",iB="unknown mixin %s",vB="Vanilla",cB="List.map2",AB="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",oB="@@rel_buf_opt",sB="System",bB=324,lB="bigint_leb128_decode_word64",BB="assert",jB="cycle_burn",kB="cannot get ",pB="canister_query ",mB=512,dB="B_pow",_B="__stablememory_grow",hB="mismatching sources",xB="EACCES",yB=143365725,wB="mo:",gB="empty",qB="$",IB="M0037",DB="__stablememory_load_word32",EB="ShowE",NB="msg_reply_data_append",TB="IDL error: out of bounds read",FB="explode_Int32",MB=231,PB="ENOTTY",UB="idl_sub",GB=737453762,$B="mixins can only be included in an actor context",KB="e",OB="fatan2",RB="migration expression consumes field `",QB="Local",CB=" components but expected type has ",HB="M0000",VB="moc_stable_mem_grow",LB="fcopysign",zB="unbound variable ",SB=989373200,ZB="has_stable_actor",WB=781515420,XB="Passive data segments are not yet supported in the RTS module",JB=254,YB=7949,rj=7948,ej="certified_data_set",nj="env_var_count",tj="mkdir",aj="canister_error",uj="is_graph_stabilization_started",fj="__motoko_async_helper",ij=848054398,vj="clz8",cj="compile_prim_invocation",Aj="__stablememory_load_blob",oj=191,sj="canister_global_timer",bj="call_perform",lj=127,Bj="popcnt64",jj="Out of stable memory.",kj="ic0_performance_counter",pj="show is not defined for operand type",mj="region_store_word32",dj=266,_j="boxed_f64",hj=16776960,xj="type parameters",yj=769,wj=16777211,gj="type field also present in base, here",qj="stable variable",Ij="timeout",Dj="%s%!",Ej="ENOTDIR",Nj="IgnoreE",Tj="__stabilization_completed",Fj="variant",Mj="alloc_size<%d>_tag<%d>",Pj=" in object pattern",Uj="RotLOp",Gj="Value.compare",$j='file "',Kj="len_self",Oj="set_val: %s is PublicMethod",Rj="word",Qj="rts_heap_size",Cj="costSignWithEcdsa",Hj="misplaced await",Vj=-216810653,Lj="@@value_bias",zj="garbageCollector",Sj="Pervasives.do_at_exit",Zj="from_word128_ptr",Wj=341,Xj="msg_caller_info_signer_size",Jj=240,Yj="lseek",rk="ignore",ek="rotl",nk="unrecognised attribute ",tk=461,ak="B_add",uk=297,fk="nan:0x",ik="can_recover",vk="",ck="\nand",Ak=135,ok=" has cyclic bounds ",sk=1067124520,bk=106,lk=290,Bk=" or ",jk="cannot set certified data when running locally",kk="compile",pk="version",mk="running_gc",dk="region",_k="print_ptr",hk="old_pages",xk="debug_show",yk=437082891,wk=7982,gk="cannot decide type constructor equality",qk="data_certificate_size",Ik=1073741824,Dk="@deserialize_go<",Ek=188,Nk="M0135",Tk="Text.compare_le",Fk="non-toplevel actor; an actor can only be declared at the toplevel of a program",Mk="(Program not linked with -g, cannot print stack backtrace)\n",Pk="",Uk="Array.unsafe_idx",Gk="checking",$k="word32",Kk="cycle_refunded",Ok=245,Rk="ESHUTDOWN",Qk="type:%a",Ck="ENODEV",Hk="function",Vk="variable",Lk=241,zk="in",Sk="Nat->",Zk="set_static_variable",Wk="cycle_add",Xk="canister_cycle_balance128",Jk="EBADF",Yk="sub",rp="Arr.ofBlob",ep="stable64_grow",np=-605101559,tp="an integer",ap="cycles_burn128",up="ir_passes/show.ml",fp="postupgrade",ip="@@global_typtbl",vp="too many type arguments",cp="import",Ap="an actor or actor class must be the only non-imported declaration in a program",op="text_compare",sp=386,bp="cannot get self-actor-reference when running locally",lp="preupgrade",Bp="stableMemoryStoreNat8",jp="__stablemem_grow",kp="blob_iter",pp="principal",mp="EROFS",dp="│",_p="@[<1>(%a)@]",hp="Func",xp=115,yp="M0118",wp="chars",gp="BlobLit",qp="get_upgrade_instructions",Ip="AwaitE?",Dp="rel_buf",Ep="mo_idl/mo_to_idl.ml",Np="cannot get cycles available when running locally",Tp="pointer",Fp="candid:service",Mp="stableMemoryLoadInt32",Pp="M0017",Up="blob_copy_",Gp="canister_version",$p="self call",Kp="get_migrations",Op="switch_in",Rp="get_dedup_table",Qp="@[<2>async%s@ %a@]",Cp="obj_idx_ind<",Hp="refs_size",Vp="msg_method_name_copy",Lp="@reset_cycles",zp="\nbecause operand types are inconsistent,\nleft operand is",Sp=309,Zp="regionNew",Wp="Blob.compare_ge",Xp="@@value_denominator",Jp="",Yp="; ",rm=", ",em="fexp",nm="value ",tm="text_lowercase",am="region_store_word64",um="TODO: ",fm="actor field ",im="@motoko_async_destabilization",vm="M0191",cm="alloc_blob",Am="get_reclaimed",om="Principal too long",sm="expected array type, but expression produces type\n ",bm="M0059",lm="in_replicated_execution",Bm="<",jm="this function has the name of a system method, but is declared without system visibility and will not be called by the system",km="array",pm="subnet_self_copy",mm="ObjT",dm="unreachable",_m=316,hm="EAGAIN",xm=141,ym="nativeint_of_big_int",wm="^",gm="rts.wasm",qm=933,Im="<1>",Dm="EBUSY",Em="@timeout",Nm="__motoko_stable_var_info",Tm=368,Fm="region_new",Mm=1836278016,Pm="cannot get environment variable names when running locally",Um="classical",Gm="codegen/compile_common.ml",$m="__typtbl_size",Km="M0236",Om="Float32Lit",Rm="Invalid stack rep join (%s, %s)\n",Qm="ECONNRESET",Cm=926227490,Hm="result",Vm="cannot compute intersection of types containing recursive or forward references to other type definitions",Lm="M0239",zm="@@typtbl",Sm=4298439,Zm="unbox64",Wm="UnboxedFloat32",Xm="ENOENT",Jm="as_func",Ym="enhanced-orthogonal-persistence",rd=394,ed="explode_Nat32",nd=239,td="Returns",ad="\nLast environment:\n",ud=294,fd="get_max_live_size",id="this pattern will always match, so the else clause is useless. Consider removing the else clause",vd="misplaced parenthetical (this call does not send a message)",cd="@@global_typtbl_size",Ad="uncovered relop",od="%.16g",sd="btst8",bd="TODO: compile_unop",ld="redundant `stable` keyword, this declaration is implicitly stable",Bd="Unknown stack_rep conversion %s -> %s\n",jd="WhileE",kd="alloc_stream",pd="costSignWithSchnorr",md="flog",dd="arrayToBlob",_d=-840203068,hd=433,xd=277,yd=-397582078,wd="unicode escape out of range",gd="ir_passes/await.ml",qd="` not found in persisted state (migration should have initialized it)",Id="lsh_Nat",Dd="LabelE",Ed="ENFILE",Nd=218,Td=1023,Fd="AltP",Md="to_candid argument must have shared type, but instead has non-shared type",Pd="to_var_type: UnboxedTuple",Ud="ENOSYS",Gd="stream_write",$d="Match_failure",Kd="name",Od="Actor",Rd="GtOp",Qd=698610924,Cd="AllocHow.disjoint_union: ",Hd="IDL error: variant index out of bounds",Vd=7983,Ld="_HP",zd="len",Sd="wrap_pow_Int64",Zd=" is const",Wd="canister_self",Xd="@",Jd=8046,Yd=4194304,r_="bigint_of_word64",e_="`system` capability required, but not available\n (need an enclosing async expression or function body or explicit `system` type parameter)",n_="char_is_lowercase",t_="M",a_="fnearest",u_="region_id",f_="float64",i_=-211555818,v_="keep_memory_reserve",c_="keys",A_="ensured",o_="TupT",s_="compilerVersion",b_=">",l_="M0064",B_="%s: %s",j_="ForE",k_="region_load_word8",p_=7980,m_="Async*",d_="Expect fixed sized table in first module",__=284,h_="ic0",x_="moc_stable_mem_get_version",y_=16777215,w_="nan",g_=395,q_="@@type_scaler",I_="__mutator_instructions",D_="Unknown stack_rep conversion ",E_="operator may trap for inferred type%a",N_="anon_async",T_="compile_exp",F_=659980059,M_="regionStoreInt64",P_=" : ",U_="Private",G_="canister_self_copy",$_=1000000009,K_="B_ge",O_="ActorUrlE",R_="@@",Q_="tuple projection ",C_="to_candid",H_="M0194",V_=194,L_="char_is_alphabetic",z_="UnboxedTuple ",S_="pre_upgrade",Z_="idlHash",W_="\\t",X_="costCreateCanister",J_=1252,Y_=2147483648,rh=111,eh="to_%i_tuple",nh="(",th=331,ah="TextLit",uh="Region",fh="stack_overflow",ih="variant pattern cannot consume expected type",vh="time",ch="__stablememory_store_float64",Ah="ENOSPC",oh="mo_values/show.ml",sh="cannot perform %s when running locally",bh="E2BIG",lh="remote call",Bh="data buffer not filled",jh=268,kh="IDL error: blob not a vector of nat8",ph="ActorU",mh="@;<0 1>",dh="promising function cannot be local:\n %s",_h="different set of bindings in pattern alternatives",hh=330,xh="call_raw",yh=471,wh="composite",gh="__call_perform_status",qh="Blob.idx",Ih=128,Dh="mo_values/prim.ml",Eh="callbackTableCount",Nh=" or\n ",Th="DivOp",Fh="async expression",Mh="EFAULT",Ph="send capability required, but not available\n (cannot call a `shared` function from a `composite query` function; only calls to `query` and `composite query` functions are allowed)",Uh="trap",Gh="regionLoadNat32",$h="IDL error: did not find field %s in record",Kh="reserved",Oh="stableMemoryStoreInt8",Rh="M0226",Qh="region_store_float64",Ch="\\r",Hh="M0041",Vh=776,Lh="shared function has non-async result type%a",zh="send capability required, but not available\n (need an enclosing async expression or function body)",Sh="file already exists",Zh="StableMemory range out of bounds",Wh="Name",Xh="M0212",Jh="offset",Yh="__upgrade_instructions",rx="var_scrut",ex="msg_reject_msg_size",nx="canister_pre_upgrade",tx="res64",ax="int_from_i64",ux="stable",fx="B_mul",ix="mo_types/type.ml",vx="x",cx="InQuery",Ax="field ",ox="stableMemoryStoreNat64",sx="char_to_upper",bx="@.",lx="@[<1>(%a%s)@]",Bx=7978,jx="duplicate binding for %s in pattern",kx="<2>",px="lib/lib.ml",mx="Fatal error: exception ",dx=441,_x=1058,hx="NotOp",xx="M0199",yx="skip_leb128",wx="expected object type, but expression produces type\n ",gx="break",qx="flexible",Ix="text_singleton",Dx="text_len",Ex="abs",Nx="regionStoreInt8",Tx="inconsistent migration chain",Fx="<:",Mx="illegal T.Pre type",Px="region_store_blob",Ux=122,Gx="Promises",$x=222,Kx="blob_size",Ox="env_var_name_exists",Rx="as_array",Qx=1333,Cx="\ncannot produce expected type",Hx="",Vx="` of type `",Lx=463,zx=289,Sx="ptr",Zx="to_opt_",Wx="@[<1>?%a@]",Xx="bigint_abs",Jx="stable variable `%s` of type `%s` not found in persisted state (migration should have initialized it)",Yx="acos",ry="k",ey="@reset_refund",ny="btst16",ty="popcntInt16",ay="stableMemoryLoadNat8",uy="stream_shutdown",fy="root_key_size",iy="FuncE",vy=737456202,cy=" (in TAG 0x",Ay="EOVERFLOW",oy="AllocHow.disjoint_union: %s",sy="blob_vals_iter",by="pow",ly="actor reference must have an actor type",By="err_msg",jy="str",ky="TypF",py="{",my='", not found in static environment\n',dy=182,_y='/*\nThe primitive definitions.\n\nThis module should contain everything that cannot be implemented in plain\nMotoko. It is available via `import Prim "mo:⛔"`. Normal user code would\nusually not import that module directly, but through `base`, which takes\ncare of providing a proper module structure, e.g. exposing `Array_tabulate`\nthrough `Array.tabulate`.\n\nTherefore, the prim module does not need to provide a stable interface, as its\nonly supported consumer is the `base` library, and that is bundled with the\ncompiler.\n\nNevertheless, it shoud be _safe_ to import prim, i.e. the definitions here\nshould not break type safety or other guarantees of the language.\n*/\n\nmodule Types = {\n public type Any = prim "Any";\n public type None = prim "None";\n public type Null = prim "Null";\n public type Bool = prim "Bool";\n public type Nat = prim "Nat";\n public type Nat8 = prim "Nat8";\n public type Nat16 = prim "Nat16";\n public type Nat32 = prim "Nat32";\n public type Nat64 = prim "Nat64";\n public type Int = prim "Int";\n public type Int8 = prim "Int8";\n public type Int16 = prim "Int16";\n public type Int32 = prim "Int32";\n public type Int64 = prim "Int64";\n public type Float = prim "Float";\n public type Float32 = prim "Float32";\n public type Char = prim "Char";\n public type Text = prim "Text";\n public type Blob = prim "Blob";\n public type Error = prim "Error";\n public type Principal = prim "Principal";\n public type Region = prim "Region";\n};\n\nfunc abs(x : Int) : Nat { (prim "abs" : Int -> Nat) x };\nfunc shiftLeft(x : Nat, shift : Nat32) : Nat {\n (prim "lsh_Nat" : (Nat, Nat32) -> Nat)(x, shift);\n};\nfunc shiftRight(x : Nat, shift : Nat32) : Nat {\n (prim "rsh_Nat" : (Nat, Nat32) -> Nat)(x, shift);\n};\n\n// for testing\nfunc idlHash(x : Text) : Nat32 { (prim "idlHash" : Text -> Nat32) x };\n\n// Printing\n\nfunc debugPrint(x : Text) { (prim "print" : Text -> ()) x };\nfunc debugPrintNat(x : Nat) { debugPrint(@text_of_Nat x) };\nfunc debugPrintInt(x : Int) { debugPrint(@text_of_Int x) };\nfunc debugPrintChar(x : Char) { debugPrint(charToText x) };\n\n// Trapping\n\nfunc trap(x : Text) : None { (prim "trap" : Text -> None) x };\n\n// RTS stats\n\nfunc rts_version() : Text { (prim "rts_version" : () -> Text)() };\nfunc rts_memory_size() : Nat { (prim "rts_memory_size" : () -> Nat)() };\nfunc rts_heap_size() : Nat { (prim "rts_heap_size" : () -> Nat)() };\nfunc rts_total_allocation() : Nat {\n (prim "rts_total_allocation" : () -> Nat)();\n};\nfunc rts_reclaimed() : Nat { (prim "rts_reclaimed" : () -> Nat)() };\nfunc rts_max_live_size() : Nat { (prim "rts_max_live_size" : () -> Nat)() };\nfunc rts_max_stack_size() : Nat { (prim "rts_max_stack_size" : () -> Nat)() };\nfunc rts_callback_table_count() : Nat {\n (prim "rts_callback_table_count" : () -> Nat)();\n};\nfunc rts_callback_table_size() : Nat {\n (prim "rts_callback_table_size" : () -> Nat)();\n};\nfunc rts_mutator_instructions() : Nat {\n (prim "rts_mutator_instructions" : () -> Nat)();\n};\nfunc rts_collector_instructions() : Nat {\n (prim "rts_collector_instructions" : () -> Nat)();\n};\nfunc rts_lifetime_instructions() : Nat {\n (prim "rts_lifetime_instructions" : () -> Nat)();\n};\nfunc rts_upgrade_instructions() : Nat {\n (prim "rts_upgrade_instructions" : () -> Nat)();\n};\n\nfunc rts_stable_memory_size() : Nat {\n (prim "rts_stable_memory_size" : () -> Nat)();\n};\n\nfunc rts_logical_stable_memory_size() : Nat {\n (prim "rts_logical_stable_memory_size" : () -> Nat)();\n};\n\n//TODO: just call this `weak`?\nfunc allocWeakRef(obj : T) : weak T {\n (prim "alloc_weak_ref" : T -> weak T)(obj);\n};\n\nfunc weakGet(w : weak T) : ?T {\n (prim "weak_get" : weak T -> ?T)(w);\n};\n\nfunc isLive(weak_ref : weak Any) : Bool {\n (prim "weak_ref_is_live" : weak Any -> Bool)(weak_ref);\n};\n\nfunc envVarNames() : [Text] {\n (prim "env_var_names" : () -> [Text])();\n};\n\nfunc envVar(name : Text) : ?Text {\n (prim "env_var" : Text -> ?Text)(name);\n};\n\nfunc callerInfoSigner() : Blob {\n (prim "caller_info_signer" : () -> Blob)();\n};\n\nfunc callerInfoData() : Blob {\n (prim "caller_info_data" : () -> Blob)();\n};\n\n/// EXPERIMENTAL SECTION AND API. DO NOT USE IN PRODUCTION CODE!\n///\ntype __WeakRef = {\n ref : weak Blob;\n};\ntype __List = {\n var next : ?__List;\n value : ?__WeakRef;\n originalBlob : Blob;\n index : Nat;\n};\nfunc __getDedupTable() : ?[var __List] {\n (prim "get_dedup_table" : () -> ?[var __List])();\n};\n\nclass BlobIterator(hash : [var __List]) {\n let HASH_ARRAY_SIZE = 16_384;\n var currentIndex : Nat = 0;\n var currentList : ?__List = null;\n let hashArray = hash;\n\n // Counts the number of dead blobs.\n public func size() : Nat {\n var len = 0;\n var i = 0;\n while (i < HASH_ARRAY_SIZE) {\n var list = hashArray[i];\n label countLoop loop {\n let weakRef = list.value;\n switch weakRef {\n case (?weakRef) {\n let deref = weakGet(weakRef.ref);\n switch deref {\n case (?deref) {};\n case null { len += 1 };\n };\n };\n case null {};\n };\n let next = list.next;\n switch next {\n case (?next) { list := next };\n case null { break countLoop };\n };\n };\n i += 1;\n };\n len;\n };\n\n func getDeadBlobFromListNode(list : ?__List) : ?Blob {\n switch list {\n case (?myList) {\n let weakRef = myList.value;\n switch weakRef {\n case (?weakRef) {\n let deref = weakGet(weakRef.ref);\n switch deref {\n case (?deref) { return null };\n case null { return ?myList.originalBlob };\n };\n };\n case null { return null };\n };\n };\n case null { return null };\n };\n };\n\n func advanceListNode(list : ?__List) : ?__List {\n switch list {\n case (?list) { list.next };\n case null { null };\n };\n };\n\n public func nextDeadBlob() : Blob {\n // Start at the current index and list.\n loop {\n // Get the blob from the current list node.\n let blob = getDeadBlobFromListNode(currentList);\n switch blob {\n // If we found a blob, return it.\n case (?blob) {\n // Advance to the next list node.\n // So that next time we call nextDeadBlob(), we get the next blob.\n currentList := advanceListNode(currentList);\n return blob;\n };\n case null {\n // If we didn\'t find a blob, advance to the next list node.\n currentList := advanceListNode(currentList);\n\n switch currentList {\n case (?_) {};\n // If we reached the end of the list, advance to the next index.\n case null {\n currentIndex += 1;\n // If we reached the end of the hash array, return null.\n if (currentIndex >= HASH_ARRAY_SIZE) {\n return "";\n };\n // Get the new list node.\n currentList := ?hashArray[currentIndex];\n };\n };\n\n };\n };\n };\n "";\n };\n\n func computeIndex(b : Blob) : Nat {\n // Append the magic bytes to compute the hash.\n let magicBytes : [Nat8] = [0x21, 0x63, 0x61, 0x66, 0x21];\n let originalBlob : [Nat8] = blobToArray(b);\n let concat = Array_tabulate(magicBytes.size() + originalBlob.size(), func(i : Nat) : Nat8 = if (i < magicBytes.size()) { magicBytes[i] } else { originalBlob[i - magicBytes.size()] });\n let bWithMagic = arrayToBlob(concat);\n // Get hash bucket.\n let hashValue = hashBlob(bWithMagic);\n nat32ToNat(hashValue) % HASH_ARRAY_SIZE;\n };\n\n public func isBlobLive(b : Blob) : Bool {\n let index = computeIndex(b);\n var list = hashArray[index];\n // Walk the list and check if the blob is live.\n loop {\n if (blobCompare(list.originalBlob, b) == 0) {\n let weakRef = list.value;\n switch weakRef {\n case (?weakRef) { return isLive(weakRef.ref) };\n // The weak ref should not be null, but just in case.\n case null { return false };\n };\n } else {\n // Advance to the next list node.\n let next = list.next;\n switch next {\n case (?next) { list := next };\n // If we reached the end of the list, return false.\n case null { return false };\n };\n };\n };\n };\n\n func pruneFirstElement(list : __List, b : Blob, index : Nat) : Bool {\n let deadBlob = getDeadBlobFromListNode(?list);\n switch deadBlob {\n case (?deadBlob) {\n if (blobCompare(deadBlob, b) == 0) {\n let nextElem = list.next;\n switch nextElem {\n case (?next) { hashArray[index] := next; return true };\n case null {\n // Do nothing. This case should not happen as the array is initialized\n // with a sentinel (empty) value that is non-null.};\n };\n };\n };\n };\n // No dead blob in this list node.\n case null {};\n };\n false;\n };\n\n public func pruneDeadBlobs(confirmedDeadBlobs : [Blob]) {\n // For each element in the confirmedDeadBlobs array, we check if it is in the hash array.\n // If it is, and if the corresponding WeakRef is null, we remove the whole list node\n // from the hash array.\n var i = 0;\n while (i < confirmedDeadBlobs.size()) {\n let b = confirmedDeadBlobs[i];\n // Get hash bucket.\n let index = computeIndex(b);\n // Get the list of the hash bucket and walk it until we find the blob b.\n let list = hashArray[index];\n // Special case for the first list node.\n let pruned = pruneFirstElement(list, b, index);\n if (pruned == false) {\n // If we\'re here, we know that the blob is not the first list node.\n // So we can advance to the next list node.\n var prev = ?list;\n var crntNode = advanceListNode(?list);\n label findLoop loop {\n let crntBlob = getDeadBlobFromListNode(crntNode);\n switch crntBlob {\n case (?crntBlob) {\n if (blobCompare(crntBlob, b) == 0) {\n // We found the blob and we know for sure it\'s dead.\n // We just need to prune the current list node.\n switch (prev, crntNode) {\n case (?prev, ?crntNode) {\n prev.next := crntNode.next;\n // Break the loop, we found the blob and pruned.\n break findLoop;\n };\n case _ {};\n };\n };\n };\n case null {\n // No dead blob in this list node.\n // We can advance pointers.\n prev := crntNode;\n crntNode := advanceListNode(crntNode);\n };\n };\n switch crntNode {\n case (?crntNode) {};\n // We reached the end, break.\n case null { break findLoop };\n };\n };\n };\n // Continue loop.\n i += 1;\n };\n\n };\n\n};\n\nfunc getDeadBlobs() : ?[Blob] {\n let dedupTableOption = __getDedupTable();\n switch dedupTableOption {\n case (?dedupTable) {\n let dedupTableIter = BlobIterator(dedupTable);\n let numDeadBlobs = dedupTableIter.size();\n let deadBlobs = Array_tabulate(numDeadBlobs, func(i : Nat) : Blob { dedupTableIter.nextDeadBlob() });\n return ?deadBlobs;\n };\n case null { return null };\n };\n\n};\n\nfunc pruneConfirmedDeadBlobs(confirmedDeadBlobs : [Blob]) {\n let dedupTableOption = __getDedupTable();\n switch dedupTableOption {\n case (?dedupTable) {\n let dedupTableIter = BlobIterator(dedupTable);\n dedupTableIter.pruneDeadBlobs(confirmedDeadBlobs);\n };\n };\n};\n\nfunc isStorageBlobLive(b : Blob) : Bool {\n let dedupTableOption = __getDedupTable();\n switch dedupTableOption {\n case (?dedupTable) {\n let iter = BlobIterator(dedupTable);\n iter.isBlobLive(b);\n };\n case null { false };\n };\n};\n///\n/// END EXPERIMENTAL SECTION.\n\n// Total conversions (fixed to big)\n\nlet int64ToInt = @int64ToInt;\nlet int32ToInt = @int32ToInt;\nlet int16ToInt = @int16ToInt;\nlet int8ToInt = @int8ToInt;\nlet nat64ToNat = @nat64ToNat;\nlet nat32ToNat = @nat32ToNat;\nlet nat16ToNat = @nat16ToNat;\nlet nat8ToNat = @nat8ToNat;\n\n// Trapping conversions (big to fixed)\n\nfunc intToInt64(n : Int) : Int64 = (prim "num_conv_Int_Int64" : Int -> Int64) n;\nfunc intToInt32(n : Int) : Int32 = (prim "num_conv_Int_Int32" : Int -> Int32) n;\nfunc intToInt16(n : Int) : Int16 = (prim "num_conv_Int_Int16" : Int -> Int16) n;\nfunc intToInt8(n : Int) : Int8 = (prim "num_conv_Int_Int8" : Int -> Int8) n;\n\nfunc natToNat64(n : Nat) : Nat64 = (prim "num_conv_Nat_Nat64" : Nat -> Nat64) n;\nfunc natToNat32(n : Nat) : Nat32 = (prim "num_conv_Nat_Nat32" : Nat -> Nat32) n;\nfunc natToNat16(n : Nat) : Nat16 = (prim "num_conv_Nat_Nat16" : Nat -> Nat16) n;\nfunc natToNat8(n : Nat) : Nat8 = (prim "num_conv_Nat_Nat8" : Nat -> Nat8) n;\n\n// Wrapping conversions (big to fixed, and within fixed)\n\nfunc intToInt64Wrap(n : Int) : Int64 = (prim "num_wrap_Int_Int64" : Int -> Int64) n;\nfunc intToInt32Wrap(n : Int) : Int32 = (prim "num_wrap_Int_Int32" : Int -> Int32) n;\nfunc intToInt16Wrap(n : Int) : Int16 = (prim "num_wrap_Int_Int16" : Int -> Int16) n;\nfunc intToInt8Wrap(n : Int) : Int8 = (prim "num_wrap_Int_Int8" : Int -> Int8) n;\n\nfunc intToNat64Wrap(n : Int) : Nat64 = (prim "num_wrap_Int_Nat64" : Int -> Nat64) n;\nfunc intToNat32Wrap(n : Int) : Nat32 = (prim "num_wrap_Int_Nat32" : Int -> Nat32) n;\nfunc intToNat16Wrap(n : Int) : Nat16 = (prim "num_wrap_Int_Nat16" : Int -> Nat16) n;\nfunc intToNat8Wrap(n : Int) : Nat8 = (prim "num_wrap_Int_Nat8" : Int -> Nat8) n;\n\n// Across same width\nfunc int64ToNat64(n : Int64) : Nat64 = (prim "num_wrap_Int64_Nat64" : Int64 -> Nat64) n;\nfunc nat64ToInt64(n : Nat64) : Int64 = (prim "num_wrap_Nat64_Int64" : Nat64 -> Int64) n;\nfunc int32ToNat32(n : Int32) : Nat32 = (prim "num_wrap_Int32_Nat32" : Int32 -> Nat32) n;\nfunc nat32ToInt32(n : Nat32) : Int32 = (prim "num_wrap_Nat32_Int32" : Nat32 -> Int32) n;\nfunc int16ToNat16(n : Int16) : Nat16 = (prim "num_wrap_Int16_Nat16" : Int16 -> Nat16) n;\nfunc nat16ToInt16(n : Nat16) : Int16 = (prim "num_wrap_Nat16_Int16" : Nat16 -> Int16) n;\nfunc int8ToNat8(n : Int8) : Nat8 = (prim "num_wrap_Int8_Nat8" : Int8 -> Nat8) n;\nfunc nat8ToInt8(n : Nat8) : Int8 = (prim "num_wrap_Nat8_Int8" : Nat8 -> Int8) n;\n\n// Between adjacent widths\nfunc nat8ToNat16(n : Nat8) : Nat16 = (prim "num_conv_Nat8_Nat16" : Nat8 -> Nat16) n;\nfunc nat16ToNat32(n : Nat16) : Nat32 = (prim "num_conv_Nat16_Nat32" : Nat16 -> Nat32) n;\nfunc nat32ToNat64(n : Nat32) : Nat64 = (prim "num_conv_Nat32_Nat64" : Nat32 -> Nat64) n;\n\nfunc nat64ToNat32(n : Nat64) : Nat32 = (prim "num_conv_Nat64_Nat32" : Nat64 -> Nat32) n;\nfunc nat32ToNat16(n : Nat32) : Nat16 = (prim "num_conv_Nat32_Nat16" : Nat32 -> Nat16) n;\nfunc nat16ToNat8(n : Nat16) : Nat8 = (prim "num_conv_Nat16_Nat8" : Nat16 -> Nat8) n;\n\nfunc int8ToInt16(n : Int8) : Int16 = (prim "num_conv_Int8_Int16" : Int8 -> Int16) n;\nfunc int16ToInt32(n : Int16) : Int32 = (prim "num_conv_Int16_Int32" : Int16 -> Int32) n;\nfunc int32ToInt64(n : Int32) : Int64 = (prim "num_conv_Int32_Int64" : Int32 -> Int64) n;\n\nfunc int64ToInt32(n : Int64) : Int32 = (prim "num_conv_Int64_Int32" : Int64 -> Int32) n;\nfunc int32ToInt16(n : Int32) : Int16 = (prim "num_conv_Int32_Int16" : Int32 -> Int16) n;\nfunc int16ToInt8(n : Int16) : Int8 = (prim "num_conv_Int16_Int8" : Int16 -> Int8) n;\n\n// Exploding to bytes\nfunc explodeNat16(n : Nat16) : (msb : Nat8, lsb : Nat8) = (prim "explode_Nat16" : Nat16 -> (Nat8, Nat8)) n;\nfunc explodeInt16(n : Int16) : (msb : Nat8, lsb : Nat8) = (prim "explode_Int16" : Int16 -> (Nat8, Nat8)) n;\nfunc explodeNat32(n : Nat32) : (msb : Nat8, Nat8, Nat8, lsb : Nat8) = (prim "explode_Nat32" : Nat32 -> (Nat8, Nat8, Nat8, Nat8)) n;\nfunc explodeInt32(n : Int32) : (msb : Nat8, Nat8, Nat8, lsb : Nat8) = (prim "explode_Int32" : Int32 -> (Nat8, Nat8, Nat8, Nat8)) n;\nfunc explodeNat64(n : Nat64) : (msb : Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, lsb : Nat8) = (prim "explode_Nat64" : Nat64 -> (Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8)) n;\nfunc explodeInt64(n : Int64) : (msb : Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, lsb : Nat8) = (prim "explode_Int64" : Int64 -> (Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8, Nat8)) n;\n\n// Char conversion and properties\n\nfunc charToNat32(c : Char) : Nat32 = (prim "num_wrap_Char_Nat32" : Char -> Nat32) c;\nfunc nat32ToChar(w : Nat32) : Char = (prim "num_conv_Nat32_Char" : Nat32 -> Char) w;\n\nfunc charToText(c : Char) : Text = (prim "conv_Char_Text" : Char -> Text) c;\n\nfunc charToUpper(c : Char) : Char = (prim "char_to_upper" : Char -> Char) c;\nfunc charToLower(c : Char) : Char = (prim "char_to_lower" : Char -> Char) c;\nfunc charIsWhitespace(c : Char) : Bool = (prim "char_is_whitespace" : Char -> Bool) c;\nfunc charIsLowercase(c : Char) : Bool = (prim "char_is_lowercase" : Char -> Bool) c;\nfunc charIsUppercase(c : Char) : Bool = (prim "char_is_uppercase" : Char -> Bool) c;\nfunc charIsAlphabetic(c : Char) : Bool = (prim "char_is_alphabetic" : Char -> Bool) c;\n\n// Blob functions\n\nfunc blobCompare(b1 : Blob, b2 : Blob) : Int8 = (prim "blob_compare" : (Blob, Blob) -> Int8)(b1, b2);\nfunc hashBlob(b : Blob) : Nat32 { (prim "crc32Hash" : Blob -> Nat32) b };\n\n// Text conversion\nfunc decodeUtf8(b : Blob) : ?Text = (prim "decodeUtf8" : Blob -> ?Text) b;\nfunc encodeUtf8(t : Text) : Blob = (prim "encodeUtf8" : Text -> Blob) t;\n\n// Text comparison\nfunc textCompare(t1 : Text, t2 : Text) : Int8 = (prim "text_compare" : (Text, Text) -> Int8)(t1, t2);\n\n// Text lowercase\nfunc textLowercase(t : Text) : Text = (prim "text_lowercase" : (Text) -> Text)(t);\n// Text uppercase\nfunc textUppercase(t : Text) : Text = (prim "text_uppercase" : (Text) -> Text)(t);\n\n// Exotic bitwise operations\nfunc popcntNat8(w : Nat8) : Nat8 = (prim "popcnt8" : Nat8 -> Nat8) w;\nfunc clzNat8(w : Nat8) : Nat8 = (prim "clz8" : Nat8 -> Nat8) w;\nfunc ctzNat8(w : Nat8) : Nat8 = (prim "ctz8" : Nat8 -> Nat8) w;\nfunc btstNat8(w : Nat8, amount : Nat8) : Bool = (prim "btst8" : (Nat8, Nat8) -> Nat8)(w, amount) != (0 : Nat8);\n\nfunc popcntNat16(w : Nat16) : Nat16 = (prim "popcnt16" : Nat16 -> Nat16) w;\nfunc clzNat16(w : Nat16) : Nat16 = (prim "clz16" : Nat16 -> Nat16) w;\nfunc ctzNat16(w : Nat16) : Nat16 = (prim "ctz16" : Nat16 -> Nat16) w;\nfunc btstNat16(w : Nat16, amount : Nat16) : Bool = (prim "btst16" : (Nat16, Nat16) -> Nat16)(w, amount) != (0 : Nat16);\n\nfunc popcntNat32(w : Nat32) : Nat32 = (prim "popcnt32" : Nat32 -> Nat32) w;\nfunc clzNat32(w : Nat32) : Nat32 = (prim "clz32" : Nat32 -> Nat32) w;\nfunc ctzNat32(w : Nat32) : Nat32 = (prim "ctz32" : Nat32 -> Nat32) w;\nfunc btstNat32(w : Nat32, amount : Nat32) : Bool = (prim "btst32" : (Nat32, Nat32) -> Nat32)(w, amount) != (0 : Nat32);\n\nfunc popcntNat64(w : Nat64) : Nat64 = (prim "popcnt64" : Nat64 -> Nat64) w;\nfunc clzNat64(w : Nat64) : Nat64 = (prim "clz64" : Nat64 -> Nat64) w;\nfunc ctzNat64(w : Nat64) : Nat64 = (prim "ctz64" : Nat64 -> Nat64) w;\nfunc btstNat64(w : Nat64, amount : Nat64) : Bool = (prim "btst64" : (Nat64, Nat64) -> Nat64)(w, amount) != (0 : Nat64);\n\nfunc popcntInt8(w : Int8) : Int8 = (prim "popcntInt8" : Int8 -> Int8) w;\nfunc clzInt8(w : Int8) : Int8 = (prim "clzInt8" : Int8 -> Int8) w;\nfunc ctzInt8(w : Int8) : Int8 = (prim "ctzInt8" : Int8 -> Int8) w;\nfunc btstInt8(w : Int8, amount : Int8) : Bool = (prim "btstInt8" : (Int8, Int8) -> Int8)(w, amount) != (0 : Int8);\n\nfunc popcntInt16(w : Int16) : Int16 = (prim "popcntInt16" : Int16 -> Int16) w;\nfunc clzInt16(w : Int16) : Int16 = (prim "clzInt16" : Int16 -> Int16) w;\nfunc ctzInt16(w : Int16) : Int16 = (prim "ctzInt16" : Int16 -> Int16) w;\nfunc btstInt16(w : Int16, amount : Int16) : Bool = (prim "btstInt16" : (Int16, Int16) -> Int16)(w, amount) != (0 : Int16);\n\nfunc popcntInt32(w : Int32) : Int32 = (prim "popcntInt32" : Int32 -> Int32) w;\nfunc clzInt32(w : Int32) : Int32 = (prim "clzInt32" : Int32 -> Int32) w;\nfunc ctzInt32(w : Int32) : Int32 = (prim "ctzInt32" : Int32 -> Int32) w;\nfunc btstInt32(w : Int32, amount : Int32) : Bool = (prim "btstInt32" : (Int32, Int32) -> Int32)(w, amount) != (0 : Int32);\n\nfunc popcntInt64(w : Int64) : Int64 = (prim "popcntInt64" : Int64 -> Int64) w;\nfunc clzInt64(w : Int64) : Int64 = (prim "clzInt64" : Int64 -> Int64) w;\nfunc ctzInt64(w : Int64) : Int64 = (prim "ctzInt64" : Int64 -> Int64) w;\nfunc btstInt64(w : Int64, amount : Int64) : Bool = (prim "btstInt64" : (Int64, Int64) -> Int64)(w, amount) != (0 : Int64);\n\n// Float32 conversions\n\nfunc floatToFloat32(f : Float) : Float32 = (prim "num_conv_Float_Float32" : Float -> Float32) f;\nfunc float32ToFloat(f : Float32) : Float = (prim "num_conv_Float32_Float" : Float32 -> Float) f;\n\n// Checked Float -> Float32 conversion: returns ?Float32 if round-trip stays within epsilon, null otherwise\nfunc safeFloatToFloat32(f : Float, epsilon : Float) : ?Float32 {\n let f32 = floatToFloat32 f;\n if (floatAbs(float32ToFloat f32 - f) <= epsilon) ?f32 else null\n};\n\n// Float operations\n\nfunc floatAbs(f : Float) : Float = (prim "fabs" : Float -> Float) f;\nfunc floatSqrt(f : Float) : Float = (prim "fsqrt" : Float -> Float) f;\nfunc floatCeil(f : Float) : Float = (prim "fceil" : Float -> Float) f;\nfunc floatFloor(f : Float) : Float = (prim "ffloor" : Float -> Float) f;\nfunc floatTrunc(f : Float) : Float = (prim "ftrunc" : Float -> Float) f;\nfunc floatNearest(f : Float) : Float = (prim "fnearest" : Float -> Float) f;\nfunc floatMin(f : Float, g : Float) : Float = (prim "fmin" : (Float, Float) -> Float)(f, g);\nfunc floatMax(f : Float, g : Float) : Float = (prim "fmax" : (Float, Float) -> Float)(f, g);\nfunc floatCopySign(f : Float, g : Float) : Float = (prim "fcopysign" : (Float, Float) -> Float)(f, g);\nfunc floatToInt(f : Float) : Int = (prim "num_conv_Float_Int" : Float -> Int)(f);\nfunc intToFloat(n : Int) : Float = (prim "num_conv_Int_Float" : Int -> Float)(n);\nfunc floatToInt64(f : Float) : Int64 = (prim "num_conv_Float_Int64" : Float -> Int64)(f);\nfunc int64ToFloat(n : Int64) : Float = (prim "num_conv_Int64_Float" : Int64 -> Float)(n);\n\nlet floatToText = @text_of_Float;\n\n// Configurable Float formatter\n// mode:\n// 0) fixed format "%.*f"\n// 1) exponent format "%.*e"\n// 2) generic format "%.*g"\n// 3) hexadecimal format "%.*h"\n// _) invalid (traps)\nfunc floatToFormattedText(f : Float, prec : Nat8, mode : Nat8) : Text = (prim "fmtFloat->Text" : (Float, Nat8, Nat8) -> Text)(f, prec, mode);\n\n// Trigonometric and transcendental functions\n\nfunc sin(f : Float) : Float = (prim "fsin" : Float -> Float) f;\nfunc cos(f : Float) : Float = (prim "fcos" : Float -> Float) f;\nfunc tan(f : Float) : Float = (prim "ftan" : Float -> Float) f;\nfunc arcsin(f : Float) : Float = (prim "fasin" : Float -> Float) f;\nfunc arccos(f : Float) : Float = (prim "facos" : Float -> Float) f;\nfunc arctan(f : Float) : Float = (prim "fatan" : Float -> Float) f;\nfunc arctan2(y : Float, x : Float) : Float = (prim "fatan2" : (Float, Float) -> Float)(y, x);\n\nfunc exp(f : Float) : Float = (prim "fexp" : Float -> Float) f;\nfunc log(f : Float) : Float = (prim "flog" : Float -> Float) f;\n\n// Array utilities\n\nfunc Array_init(len : Nat, x : T) : [var T] {\n (prim "Array.init" : (Nat, T) -> [var T]) (len, x);\n};\n\nfunc Array_tabulate(len : Nat, gen : Nat -> T) : [T] {\n (prim "Array.tabulate" : (Nat, Nat -> T) -> [T]) (len, gen);\n};\n\nfunc Array_tabulateVar(len : Nat, gen : Nat -> T) : [var T] {\n (prim "Array.tabulateVar" : (Nat, Nat -> T) -> [var T]) (len, gen);\n};\n\nfunc blobToArray(b : Blob) : [Nat8] = (prim "blobToArray" : (Blob) -> [Nat8]) b;\nfunc blobToArrayMut(b : Blob) : [var Nat8] = (prim "blobToArrayMut" : (Blob) -> [var Nat8]) b;\nfunc arrayToBlob(a : [Nat8]) : Blob = (prim "arrayToBlob" : [Nat8] -> Blob) a;\nfunc arrayMutToBlob(a : [var Nat8]) : Blob = (prim "arrayMutToBlob" : [var Nat8] -> Blob) a;\n\n// Error codes\ntype ErrorCode = {\n #system_fatal;\n #system_transient;\n #destination_invalid;\n #canister_reject;\n #canister_error;\n #system_unknown;\n #future : Nat32;\n #call_error : { err_code : Nat32 };\n};\n\n// creation and inspection of abstract error\nfunc error(message : Text) : Error {\n let e = (#canister_reject, message);\n (prim "cast" : (ErrorCode, Text) -> Error) e;\n};\nfunc errorCode(e : Error) : ErrorCode = ((prim "cast" : Error -> (ErrorCode, Text)) e).0;\nfunc errorMessage(e : Error) : Text = ((prim "cast" : Error -> (ErrorCode, Text)) e).1;\n\n// Message deadline (best-effort messaging)\n\nfunc replyDeadline() : Nat64 = (prim "deadline" : () -> Nat64)();\n\n// Time\n\nfunc time() : Nat64 = (prim "time" : () -> Nat64)();\n\n// Principal\n\nfunc blobOfPrincipal(id : Principal) : Blob = (prim "blobOfPrincipal" : Principal -> Blob) id;\nfunc principalOfBlob(act : Blob) : Principal {\n // TODO: better: check size in prim "principalOfBlob" instead\n if (act.size() > 29) {\n trap("blob too long for principal");\n };\n (prim "principalOfBlob" : Blob -> Principal) act;\n};\n\nfunc principalOfActor(act : actor {}) : Principal = (prim "principalOfActor" : (actor {}) -> Principal) act;\nfunc actorOfPrincipal(p : Principal) : A = (prim "actorOfPrincipal" : Principal -> A) p;\nfunc isController(p : Principal) : Bool = (prim "is_controller" : Principal -> Bool) p;\nfunc isReplicatedExecution() : Bool = (prim "replicated_execution" : () -> Bool)();\nfunc canisterVersion() : Nat64 = (prim "canister_version" : () -> Nat64)();\nfunc canisterSubnet() : Principal = (prim "canister_subnet" : () -> Principal)();\nfunc rootKey() : Blob = (prim "root_key" : () -> Blob)();\nfunc getSelfPrincipal() : Principal = (prim "canister_self" : () -> Principal)();\n\n// Untyped dynamic actor creation from blobs\nlet createActor : (wasm : Blob, argument : Blob) -> async Principal = @create_actor_helper;\n\nfunc cyclesBalance() : Nat = (prim "cyclesBalance" : () -> Nat)();\nfunc cyclesAvailable() : Nat = (prim "cyclesAvailable" : () -> Nat)();\nfunc cyclesRefunded() : Nat = @refund;\nfunc cyclesAccept(amount : Nat) : Nat = (prim "cyclesAccept" : Nat -> Nat) amount;\n\nfunc cyclesAdd(amount : Nat) : () {\n if (amount == 0) return;\n @cycles += amount;\n // trap if @cycles would exceed 2^128\n if (@cycles > 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) {\n trap("cannot add more than 2^128 cycles");\n };\n};\n\nfunc cyclesBurn(amount : Nat) : Nat = (prim "cyclesBurn" : Nat -> Nat) amount;\n\nfunc costCall(methodNameSize : Nat64, payloadSize : Nat64) : Nat = (prim "costCall" : (Nat64, Nat64) -> Nat)(methodNameSize, payloadSize);\n\nfunc costCreateCanister() : Nat = (prim "costCreateCanister" : () -> Nat)();\n\nfunc costHttpRequest(requestSize : Nat64, maxResBytes : Nat64) : Nat = (prim "costHttpRequest" : (Nat64, Nat64) -> Nat)(requestSize, maxResBytes);\n\nfunc costSignWithEcdsa(keyName : Text, curveEncoding : Nat32) : (resultCode : Nat32, costOrUndefined : Nat) = (prim "costSignWithEcdsa" : (Text, Nat32) -> (Nat32, Nat))(keyName, curveEncoding);\n\nfunc costSignWithSchnorr(keyName : Text, algorithmEncoding : Nat32) : (resultCode : Nat32, costOrUndefined : Nat) = (prim "costSignWithSchnorr" : (Text, Nat32) -> (Nat32, Nat))(keyName, algorithmEncoding);\n\n// certified data\nfunc setCertifiedData(data : Blob) = (prim "setCertifiedData" : Blob -> ()) data;\nfunc getCertificate() : ?Blob = (prim "getCertificate" : () -> ?Blob)();\n\n// stable memory\n\n/// @deprecated M0199\nfunc stableMemorySize() : Nat64 = (prim "stableMemorySize" : () -> Nat64)();\n\n/// @deprecated M0199\nfunc stableMemoryGrow(pages : Nat64) : Nat64 = (prim "stableMemoryGrow" : Nat64 -> Nat64) pages;\n\n/// @deprecated M0199\nfunc stableMemoryLoadNat32(offset : Nat64) : Nat32 = (prim "stableMemoryLoadNat32" : Nat64 -> Nat32) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreNat32(offset : Nat64, val : Nat32) : () = (prim "stableMemoryStoreNat32" : (Nat64, Nat32) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadNat8(offset : Nat64) : Nat8 = (prim "stableMemoryLoadNat8" : Nat64 -> Nat8) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreNat8(offset : Nat64, val : Nat8) : () = (prim "stableMemoryStoreNat8" : (Nat64, Nat8) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadNat16(offset : Nat64) : Nat16 = (prim "stableMemoryLoadNat16" : Nat64 -> Nat16) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreNat16(offset : Nat64, val : Nat16) : () = (prim "stableMemoryStoreNat16" : (Nat64, Nat16) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadNat64(offset : Nat64) : Nat64 = (prim "stableMemoryLoadNat64" : Nat64 -> Nat64) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreNat64(offset : Nat64, val : Nat64) : () = (prim "stableMemoryStoreNat64" : (Nat64, Nat64) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadInt32(offset : Nat64) : Int32 = (prim "stableMemoryLoadInt32" : Nat64 -> Int32) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreInt32(offset : Nat64, val : Int32) : () = (prim "stableMemoryStoreInt32" : (Nat64, Int32) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadInt8(offset : Nat64) : Int8 = (prim "stableMemoryLoadInt8" : Nat64 -> Int8) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreInt8(offset : Nat64, val : Int8) : () = (prim "stableMemoryStoreInt8" : (Nat64, Int8) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadInt16(offset : Nat64) : Int16 = (prim "stableMemoryLoadInt16" : Nat64 -> Int16) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreInt16(offset : Nat64, val : Int16) : () = (prim "stableMemoryStoreInt16" : (Nat64, Int16) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadInt64(offset : Nat64) : Int64 = (prim "stableMemoryLoadInt64" : Nat64 -> Int64) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreInt64(offset : Nat64, val : Int64) : () = (prim "stableMemoryStoreInt64" : (Nat64, Int64) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadFloat(offset : Nat64) : Float = (prim "stableMemoryLoadFloat" : Nat64 -> Float) offset;\n\n/// @deprecated M0199\nfunc stableMemoryStoreFloat(offset : Nat64, val : Float) : () = (prim "stableMemoryStoreFloat" : (Nat64, Float) -> ())(offset, val);\n\n/// @deprecated M0199\nfunc stableMemoryLoadBlob(offset : Nat64, size : Nat) : Blob = (prim "stableMemoryLoadBlob" : (Nat64, Nat) -> Blob)(offset, size);\n\n/// @deprecated M0199\nfunc stableMemoryStoreBlob(offset : Nat64, val : Blob) : () = (prim "stableMemoryStoreBlob" : (Nat64, Blob) -> ())(offset, val);\n\n// Returns a query that computes the current actor\'s stable variable statistics (for now, the current size, in bytes, of serialized stable variable data).\nfunc stableVarQuery() : shared query () -> async { size : Nat64 } = (prim "stableVarQuery" : () -> (shared query () -> async { size : Nat64 }))();\n\n// stable regions\n\nfunc regionNew() : Region = (prim "regionNew" : () -> Region)();\n\nfunc regionId(r : Region) : Nat = (prim "regionId" : Region -> Nat) r;\n\nfunc regionSize(r : Region) : Nat64 = (prim "regionSize" : Region -> Nat64) r;\n\nfunc regionGrow(r : Region, pages : Nat64) : Nat64 = (prim "regionGrow" : (Region, Nat64) -> Nat64)(r, pages);\n\nfunc regionLoadNat32(r : Region, offset : Nat64) : Nat32 = (prim "regionLoadNat32" : (Region, Nat64) -> Nat32)(r, offset);\n\nfunc regionStoreNat32(r : Region, offset : Nat64, val : Nat32) : () = (prim "regionStoreNat32" : (Region, Nat64, Nat32) -> ())(r, offset, val);\n\nfunc regionLoadNat8(r : Region, offset : Nat64) : Nat8 = (prim "regionLoadNat8" : (Region, Nat64) -> Nat8)(r, offset);\n\nfunc regionStoreNat8(r : Region, offset : Nat64, val : Nat8) : () = (prim "regionStoreNat8" : (Region, Nat64, Nat8) -> ())(r, offset, val);\n\nfunc regionLoadNat16(r : Region, offset : Nat64) : Nat16 = (prim "regionLoadNat16" : (Region, Nat64) -> Nat16)(r, offset);\n\nfunc regionStoreNat16(r : Region, offset : Nat64, val : Nat16) : () = (prim "regionStoreNat16" : (Region, Nat64, Nat16) -> ())(r, offset, val);\n\nfunc regionLoadNat64(r : Region, offset : Nat64) : Nat64 = (prim "regionLoadNat64" : (Region, Nat64) -> Nat64)(r, offset);\n\nfunc regionStoreNat64(r : Region, offset : Nat64, val : Nat64) : () = (prim "regionStoreNat64" : (Region, Nat64, Nat64) -> ())(r, offset, val);\n\nfunc regionLoadInt32(r : Region, offset : Nat64) : Int32 = (prim "regionLoadInt32" : (Region, Nat64) -> Int32)(r, offset);\n\nfunc regionStoreInt32(r : Region, offset : Nat64, val : Int32) : () = (prim "regionStoreInt32" : (Region, Nat64, Int32) -> ())(r, offset, val);\n\nfunc regionLoadInt8(r : Region, offset : Nat64) : Int8 = (prim "regionLoadInt8" : (Region, Nat64) -> Int8)(r, offset);\n\nfunc regionStoreInt8(r : Region, offset : Nat64, val : Int8) : () = (prim "regionStoreInt8" : (Region, Nat64, Int8) -> ())(r, offset, val);\n\nfunc regionLoadInt16(r : Region, offset : Nat64) : Int16 = (prim "regionLoadInt16" : (Region, Nat64) -> Int16)(r, offset);\n\nfunc regionStoreInt16(r : Region, offset : Nat64, val : Int16) : () = (prim "regionStoreInt16" : (Region, Nat64, Int16) -> ())(r, offset, val);\n\nfunc regionLoadInt64(r : Region, offset : Nat64) : Int64 = (prim "regionLoadInt64" : (Region, Nat64) -> Int64)(r, offset);\n\nfunc regionStoreInt64(r : Region, offset : Nat64, val : Int64) : () = (prim "regionStoreInt64" : (Region, Nat64, Int64) -> ())(r, offset, val);\n\nfunc regionLoadFloat(r : Region, offset : Nat64) : Float = (prim "regionLoadFloat" : (Region, Nat64) -> Float)(r, offset);\n\nfunc regionStoreFloat(r : Region, offset : Nat64, val : Float) : () = (prim "regionStoreFloat" : (Region, Nat64, Float) -> ())(r, offset, val);\n\nfunc regionLoadBlob(r : Region, offset : Nat64, size : Nat) : Blob = (prim "regionLoadBlob" : (Region, Nat64, Nat) -> Blob)(r, offset, size);\n\nfunc regionStoreBlob(r : Region, offset : Nat64, val : Blob) : () = (prim "regionStoreBlob" : (Region, Nat64, Blob) -> ())(r, offset, val);\n\nlet call_raw = @call_raw;\n\nfunc performanceCounter(counter : Nat32) : Nat64 = (prim "performanceCounter" : (Nat32) -> Nat64) counter;\n\n// Candid configuration\nfunc setCandidLimits({\n numerator : Nat32;\n denominator : Nat32;\n bias : Nat32;\n}) {\n (prim "setCandidLimits" : (Nat32, Nat32, Nat32) -> ())(numerator, denominator, bias);\n};\n\nfunc getCandidLimits() : {\n numerator : Nat32;\n denominator : Nat32;\n bias : Nat32;\n} {\n let (numerator, denominator, bias) = (prim "getCandidLimits" : () -> (Nat32, Nat32, Nat32))();\n {\n numerator;\n denominator;\n bias;\n };\n};\n\nfunc setCandidTypeLimits({\n scalar : Nat32;\n bias : Nat32;\n}) {\n (prim "setCandidTypeLimits" : (Nat32, Nat32) -> ())(scalar, bias);\n};\n\nfunc getCandidTypeLimits() : {\n scalar : Nat32;\n bias : Nat32;\n} {\n let (scalar, bias) = (prim "getCandidTypeLimits" : () -> (Nat32, Nat32))();\n {\n scalar;\n bias;\n };\n};\n',hy='""',xy="closure",yy="weak",wy="mo_frontend/parsing.ml",gy="EOPNOTSUPP",qy="T",Iy=124,Dy="popcnt8",Ey="regionStoreInt32",Ny="redundant ignore, operand already has type ()",Ty="\n is not compatible with type ",Fy="AnnotP",My="assertion failure",Py="mo_frontend/parser.mly",Uy="",Gy="tuple pattern has %i components but expected type has %i",$y="M0206",Ky="@[",Oy="stream_write_text",Ry="__frame_pointer",Qy="ENOPROTOOPT",Cy="index out of bounds",Hy=696517344,Vy="io_vec",Ly="explode_Int64",zy="nat_sub",Sy="await",Zy="serialize_go: unexpected variant",Wy=" ",Xy="of",Jy="Int32Lit",Yy="call_perform_status",rw="Text.compare_eq",ew=424,nw="char_is_whitespace",tw="product",aw="this code is (or uses) the deprecated library `ExperimentalStableMemory`.\nPlease use the `Region` library instead: https://internetcomputer.org/docs/current/motoko/main/stable-memory/stable-regions/#the-region-library or compile with flag `--experimental-stable-memory 1` to suppress this message.",uw=119,fw="truncate",iw=913,vw="move these declarations into the body of the main actor or actor class",cw="stable variable `",Aw=338,ow="stream_write_byte",sw="install_arg",bw="infinity",lw="expression of type",Bw="code",jw="root_key",kw="write_",pw="B_div",mw="\ninstead of expected type",dw="file %s must not depend on itself",_w="AsyncT*",hw="EPROTONOSUPPORT",xw="M0128",yw="B_lsh",ww="state",gw="OptT",qw="register_stable_type",Iw="region_grow",Dw="atan2",Ew="btstInt8",Nw="continuation_count",Tw="Win32",Fw="weak_ref_is_live",Mw="msg_deadline",Pw="stableMemoryLoadInt64",Uw="TupE",Gw="get_typtbl_ptr",$w="TypPF",Kw="cannot read balance when running locally",Ow="parse_idl_header",Rw="IDL error: unexpected function reference",Qw=157,Cw="shared function has non-shared return type%a",Hw="M0243",Vw="EINPROGRESS",Lw="write",zw=243,Sw="candid:args",Zw="Odd offset",Ww="Array.tabulateVar",Xw="Array.tabulate",Jw=" is declared stable but has non-stable type",Yw="cb_index",rg="unexpected %s, expected one of token or sequence:\n %s",eg=" in block",ng="Could not find ",tg="mixins may only be imported by binding to a name",ag=301,ug="try",fg="wpow_int",ig=171,vg="regionStoreBlob",cg="buffer_size overflow",Ag=499,og="+",sg="type parameter ",bg="reclaimed",lg=7950,Bg="src",jg="M0237",kg=412,pg="Principal",mg="misplaced '!' (no enclosing 'do ? { ... }' expression)",dg=7946,_g="B_eq",hg="Invalid stack rep join (",xg="Nat32->Char",yg=" does not exist in type\n ",wg="mo_interpreter/interpret.ml",gg="",qg="Mixin",Ig="case",Dg="ParP",Eg="continue ",Ng=66447547,Tg="arg%i",Fg="Not_found",Mg="bigint_leb128_encode",Pg="char_to_lower",Ug="Nat8Lit",Gg="expected object type, but expression produces type%a",$g="await*",Kg="the type %a\n is not compatible with type %a%s",Og="@callback<",Rg="cannot get method_name when running locally",Qg="__stablemem_version",Cg="(Flexible)",Hg="as_mut",Vg="#%s",Lg="this declaration has no initializer. Omitting an initializer is only allowed in an actor and with flag --enhanced-migration.",zg='compile_const_exp/ObjE: "',Sg=159,Zg="EDEADLK",Wg="@{",Xg="{}",Jg="global_timer_set",Yg="EDOM",rq=7945,eq="PowOp",nq="caller_info_data",tq="settings",aq="unclosed comment",uq=251,fq="Unix.Unix_error",iq="tag_scrut",vq="N",cq="msg_cycles_accept128",Aq="AssertE",oq="null rel_buf",sq="stableMemoryStoreInt16",bq="M0033",lq="fmin",Bq="alt_scrut",jq="actor",kq="class",pq="decode_principal",mq="file",dq="regionStoreNat16",_q="blob_iter_done",hq="B+sub",xq="tup",yq="Sys_error",wq=1051,gq=101,qq=16777152,Iq="OCAMLRUNPARAM",Dq="IDL error: left-over bytes ",Eq="post_write_barrier",Nq="error_message",Tq=198,Fq="bigint_rsh",Mq="ENOTCONN",Pq="contains_field",Uq="cycle_accept",Gq="@[{@;<0 0>%a@;<0 -2>}@]",$q=186,Kq="tagidx",Oq="int_from_i32",Rq="CPSAsync unexpected typ",Qq="ArrayE",Cq="field name %s does not exist in type\n %s",Hq="call_data_append",Vq="Int32",Lq='": captures "',zq=343,Sq="B_neg",Zq="region_load_blob",Wq="compile_const_dec: Unexpected VarD/RefD",Xq="values",Jq="EPFNOSUPPORT",Yq="costCall",rI="=",eI="wasm_features",nI="arg_count",tI=" :",aI=")",uI="M0217",fI="bigint_sleb128_decode",iI="this declaration is currently implicitly transient, please declare it explicitly `transient`",vI=.0009765625,cI="ctz32",AI="blobToArrayMut",oI="B_sub",sI="ETIMEDOUT",bI="",lI="value",BI="Pos",jI="error",kI="encodeUtf8",pI=460,mI="BangE",dI="assertion failed at ",_I="cannot infer type of forward field reference %s",hI="cannot get system time when running locally",xI=125,yI=" in ",wI="service constructor not supported",gI=179,qI="stableMemoryLoadFloat",II=1021133848,DI="callbackTableSize",EI="memory",NI=" <: ",TI="BreakE",FI="this declares an implicit oneway function.\n if this is intentional, annotate explicitly with `: ()`, otherwise annotate with `: async ()`",MI="async*",PI="obj_idx_ind<%d>",UI="buffer_in_32_bit_range",GI=150,$I="fceil",KI="M0223",OI="f",RI="Stable",QI="graph_destabilization_increment",CI=32768,HI="set_local %i",VI="canister_update ",LI="expression of type%a\ncannot produce expected type%a",zI="!",SI="replicated_execution",ZI="ftrunc",WI="caller",XI="get_heap_size",JI="data_buffer",YI="Invalid UTF-8",rD="\\u{%02x}",eD="FromCandidE",nD=8042,tD="\n because ",aD=131,uD="StackRep.of_type",fD="Flexible",iD=1006505782,vD="bigint_mul",cD="ShiftROp",AD="moc_stable_mem_get_size",oD="XorOp",sD="suspend",bD=401,lD="redundant type instantiation",BD="mo_frontend/coverage.ml",jD="@motoko_async_stabilization",kD="Array.init",pD="data_certificate_present",mD="NullLit",dD=206,_D=184,hD="IDL error: circular record read",xD=472,yD=256,wD="FloatLit",gD="M0119",qD=12582912,ID="false",DD="Text.compare_gt",ED="bool",ND="boundary",TD="DIDL\0\0",FD="TypD",MD="memo",PD="misplaced actor migration expression on module or object",UD="load_stable_actor",GD="stableMemoryLoadBlob",$D="tag",KD="blob_len",OD="InPreUpgrade",RD="FuncT",QD="M0057",CD=508,HD="len1",VD="atan",LD=390,zD="@[%s%s@]",SD="write_with_barrier",ZD="msg_caller_size",WD=193,XD="actors are not supported",JD="cannot get environment variable when running locally",YD="stableMemorySize",rE="cannot get actor-subnet-reference when running locally",eE="@cleanup",nE=919,tE=327,aE="ModOp",uE="mo_types/expansive.ml",fE="variable %s is declared stable but has non-stable type%a",iE="cannot get cycles refunded when running locally",vE="fsin",cE="type parameter %s has cyclic bounds %s",AE="guarded_",oE="ParT",sE="mismatching source",bE="CharLit",lE="__typtbl",BE="region_size",jE="clzInt8",kE="future",pE="List.nth",mE="Shared Query",dE="End_of_file",_E=346,hE="idl_alloc_typtbl",xE="...",yE=".\n",wE="int32",gE=375,qE="ClassD",IE="rts_trap",DE="public ",EE="blob_iter_next",NE=" when running locally",TE=200,FE="ic0_stable64_size",ME="type_desc: unexpected type %s\n",PE="deprecated syntax: an imported library should be a module or named actor class",UE=307,GE=363,$E="region_init",KE=" = ",OE=" argument",RE="motoko:stable-types",QE="include",CE="acc",HE="private",VE="%Lx",LE="print_text",zE="cannot accept cycles when running locally",SE="\ndoes not match expected type",ZE="shared",WE=139,XE="initialize_incremental_gc",JE="Public",YE="Null",rN="mul",eN=489,nN="file$",tN="Float->Text",aN="\n does not match ",uN="this pattern is never matched",fN="buffer_size called on value of type None",iN="mo_frontend/menhir_error_reporting.ml",vN="@@ref_buf",cN=440380662,AN="unknown primitive type",oN="Composite",sN=296,bN="M0121",lN=870530776,BN=24029,jN="fsqrt",kN="Int16Lit",pN="WildP",mN="M0240",dN="leb128_encode",_N=258,hN="field %s does not exist in %a",xN="",yN="@@typtbl_size",wN=-808010220,gN="could not perform %s",qN="shared function cannot take a context pattern",IN="overwrite field to resolve error",DN="stream_reserve",EN="obj_scrut",NN="mo_def/compUnit.ml",TN="bad annotation (object type expected)",FN=165,MN="M0039",PN="field also present in base, here (consider overwriting)",UN="actor_public_field",GN="request_size",$N=3654863,KN="a shared function is only allowed as a public field of an actor",ON="stable64_write",RN=" is PublicMethod",QN="cannot get certificate when running locally",CN="method_name_size",HN="opt_project",VN="Float32->Text",LN="_clos",zN="WSubOp",SN="Could not find %s\n",ZN=108,WN="expected object type, but expression produces type\n %s",XN="canister_pre_upgrade attempted with outstanding message callbacks (try stopping the canister before upgrade)",JN="@callback",YN="AddOp",rT="logicalStableMemorySize",eT="ValF",nT="ImportE",tT="set of bindings differ for alternative pattern",aT="compile_comparison",uT="lexp with non-mutable type",fT="__wasm_apply_data_relocs",iT=" in pattern",vT="compiler bug: expected a module or actor class but found a program, i.e. a sequence of declarations",cT="VarD",AT="InUpdate",oT="explode_Int16",sT="new_object",bT="PathT",lT=409,BT="\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0ÿ\0\0\0\0\0\0\0\0\0\0\0\0",jT="reply_with_data",kT="ArrayT",pT="DotE",mT="bigint_eq",dT="@[%*s %a %a@]",_T="box64",hT="serialization overflow",xT="system function timer is present but -no-timer flag is specified",yT="cost_create_canister",wT="fcos",gT="%s\n",qT="ECONNABORTED",IT="to_var_type: Unreachable",DT="Object",ET="msg_caller_copy",NT="Int64",TT="Shared",FT=109,MT="M0215",PT="text_iter_next",UT="ECONNREFUSED",GT="Weak",$T="src/automaton_state_intf.ml",KT="leb128_decode",OT="M0251",RT="regionStoreFloat",QT="int",CT="LoopE",HT="actors cannot serve as bases in record extensions",VT="peek_future_continuation",LT="ShiftLOp",zT="EAFNOSUPPORT",ST="bigint_of_int32",ZT="cycle_balance",WT="actorOfPrincipal",XT="low_memory_exp",JT=1080,YT=257,rF="M0077",eF="canister_post_upgrade",nF=192,tF="canister_status",aF="mo_values/operator.ml",uF=173,fF="Blob.compare_neq",iF="-",vF="Int16",cF="illegal control character in text literal",AF="class cannot be a query",oF="word8",sF="file ",bF="set_val: %s missing",lF="regionStoreInt16",BF="__stablemem_store_blob",jF="serializing value of type None",kF="cannot get %s when running locally",pF=365180284,mF="not a self-call or call from controller",dF="clzInt32",_F=3455931,hF="temp",xF="A",yF="expected function type, but expression produces type\n %s",wF=" but got ",gF="canister_heartbeat",qF="close",IF="%s\n%!",DF=-976970511,EF="null",NF="shared function with async result type has non-async body",TF="__stablememory_store_word64",FF=261,MF="IDL error: did not find field ",PF=2147483647,UF=-822677911,GF="Int64.of_string",$F="could not perform ",KF="while",OF="Blob.compare_le",RF="int_of_string",QF="Nat8",CF="popcntInt64",HF="VariantT",VF="M0096",LF="src/pre_sexp.ml",zF=1/0,SF="ir_def/check_ir.ml",ZF="rts_callback_table_size",WF="call_with_best_effort_response",XF=834,JF="powf",YF="rotr",rM=502,eM="M0221",nM="Const",tM="deserialize_go (Region): unexpected idl_typ",aM="%s",uM="stable64_size",fM=116,iM="expected object type, but expression produces type",vM="cannot infer type of forward field reference ",cM="GOT.mem",AM="popcnt16",oM="compile_const_exp/DotE: not a static object",sM="--enhanced-migration: no valid migration modules found (migration modules must export a public `migration` function)",bM="lang_utils/expGraph.ml",lM="public actor field needs to be a manifest function",BM="bigint_gt",jM="by",kM=32768,pM="StableMemory range overflow",mM="__stablemem_%sread_%s",dM="Nat32",_M="cannot infer the type of this or-pattern, please add a type annotation",hM="WPowOp",xM="msg_cycles_available128",yM="No global named %s declared",wM="cannot decide subtyping between type%a\nand%a",gM="failed",qM="as_tup",IM="note: ",DM="@ret",EM=137,NM="actor import",TM="__stablememory_store_blob",FM="0x",MM="written_value",PM="syntax",UM="__collector_instructions",GM="compare: functional value",$M="%d",KM="stableMemoryGrow",OM="message",RM="Text.compare_lt",QM="multi-memory",CM="float_fmt",HM="IDL error: unexpected IDL type when parsing ",VM="post_exp",LM="shared function has non-shared return type",zM=1087,SM="ref_buffer",ZM="ENETUNREACH",WM="btst64",XM=8421504,JM=" ",YM="object_size/Mut: Unexpected tag.",rP="option pattern cannot consume expected type",eP=376,nP="B_rsh",tP=-2147483648,aP="OptP",uP="Range overflow",fP="stableMemoryStoreFloat",iP="package",vP="__stablemem_load_blob",cP="readdir",AP="M0189",oP=286,sP="arg",bP="name_len",lP="internals",BP="ctzInt16",jP="put",kP="is_controller",pP="bigint_lt",mP="rts_callback_table_count",dP="non-actor class cannot take a context pattern",_P="Float",hP="rts_memory_size",xP="EALREADY",yP="regionLoadNat64",wP="AsyncE",gP="bigint_le",qP="motoko",IP=229,DP="AwaitE*",EP="misplaced %s",NP='" not defined',TP="r",FP="Obj.extension_constructor",MP="B_rem",PP="Array.idx_bigint",UP="M0168",GP=" -> ",$P="stream_stable_dest",KP="ir_passes/async.ml",OP="duplicate variable definition in block",RP=221,QP="__motoko_stabilize_before_upgrade",CP="4fvqy2fv-swhw07ba-rv40i4rw-bpbq824l",HP="rts_collector_instructions",VP=121,LP=118,zP="finally",SP='internal error: const "%s": captures "%s", not found in static environment\n',ZP="Text",WP=120,XP="@@value_numerator",JP=999,YP="boxed_i64",rU=": calling convention ",eU="old_pos",nU="LetD",tU="M0038",aU="\n ",uU="__typtbl_idltyps",fU='internal error: const "',iU="msg_reject_code",vU=7981,cU="shared function has non-shared parameter type",AU="failed to determine type for type pattern field",oU="shared functions are not supported",sU="msg_caller_info_data_copy",bU="$lambda",lU=145,BU="rtsVersion",jU="print",kU=82908052,pU="from_",mU="--help",dU="SubOp",_U="",hU="integer representation too long",xU="init",yU="cannot infer type of variable",wU="lib/core/index.ml",gU="mixin",qU="new_size",IU="blob_copy_%s_%s",DU="clos",EU="win32",NU="sort mismatch",TU="bigint_pow",FU="unbound variable %s",MU="",PU="fabs",UU="rts_mutator_instructions",GU="camlinternalMod.ml",$U="PosOp",KU="AwaitE",OU="new",RU="int8",QU="Natural subtraction underflow",CU=123,HU="@prim",VU="ctz64",LU="idx",zU="msg_cycles_refunded128",SU="clz32",ZU="VarE",WU="Nat->Nat64",XU="env_var_name_copy",JU="to_var_type: Const",YU="IDL error: unexpected principal reference",rG="rts_upgrade_instructions",eG=" of type",nG="%lx",tG=-16777216,aG="explode_Nat16",uG="explode_Nat64",fG="migration module does not export a `migration` function, skipping",iG="But got no arguments",vG="bigint_sleb128_decode_word64",cG="refs_start",AG="_tuple",oG="Bool",sG="var",bG="sleb128_encode",lG="not a self-call",BG="M0210",jG=749039939,kG="EDESTADDRREQ",pG="ThrowE",mG="Blob.idx_bigint",dG="bigint_count_bits",_G="__typtbl_end",hG=" doesn't exist",xG="compacting",yG="regionSize",wG="Blob.compare_eq",gG="unvisited mutable data in serialize_go (MutBox)",qG="BlockE",IG="regionLoadInt16",DG="__stablememory_load_word16",EG=31744,NG="msg_reject",TG="",FG="misplaced system visibility, did you mean private?",MG="IDL error: unexpecting primitive alias type",PG="__stablemem_guard_range",UG="\nbecause ",GG="closure_data",$G="NamedT",KG="NeqOp",OG=486,RG="return",QG="IDL error: principal too long",CG=65516,HG="add",VG="different set of type bindings in pattern alternatives",LG="Weak references are not supported in classical mode.",zG="unvisited mutable data in serialize_go (Region)",SG=162,ZG="actor-alias",WG="stop_gc_before_stabilization",XG="char_is_uppercase",JG="alloc_region",YG=787,r$="call_as_prim was true?",e$="debug",n$="from_candid",t$="regionLoadInt32",a$="Var",u$="popcntInt32",f$="",i$="neg_trap",v$="AnnotE",c$="",A$=117,o$="ProjE",s$="invalid argument",b$="ENOLCK",l$="Char",B$="as_async",j$="weak ",k$="blob import placeholder",p$=253,m$="__persistence_version",d$="cost_http_request",_$="read_persistence_version",h$="query",x$="bigint_of_float64",y$="crc32Hash",w$="msg_caller_info_signer",g$="stop_gc_on_upgrade",q$="` of type",I$="setCandidTypeLimits",D$="B_gt",E$=103,N$="` is provided but not expected in object of type",T$=100,F$="loop",M$="algorithm",P$="PostQuery",U$="zero flag expected",G$="@[<2>%s :@ %a@]",$$="bigint_add",K$="lib/ansi_renderer/snippet.ml",O$="M0167",R$="expected `",Q$=-440679759,C$="ENOTEMPTY",H$="TupP",V$="__stablememory_store_word32",L$="M0198",z$="bigint_to_word32_wrap",S$="vals",Z$="`%s`",W$="WAddOp",X$="Memory",J$="unclosed text literal",Y$="Nat16Lit",rK="IDL error: unexpected actor reference",eK=2139095040,nK="uncaught throw",tK="EMFILE",aK=113,uK="canister_on_low_wasm_memory",fK="as_variant",iK="bigint_to_word32_trap_with",vK=" = a: 0x",cK=":",AK="M0242",oK=" in record",sK="%a",bK="camlinternalFormat.ml",lK="performanceCounter",BK="BinE",jK="msg_caller_info_signer_copy",kK="mixins may only be declared at the top-level",pK="redundant empty parenthetical note",mK="IDL error: incompatible function type",dK=399,_K="IntLit",hK="%s<%s>",xK="M0154",yK=7951,wK="DebugE",gK="service",qK="compile_binop",IK="0",DK="",EK="Array index out of bounds",NK="canister_self_size",TK=445,FK="Ill-typed intermediate code after ",MK="M0081",PK="get_static_roots",UK=474,GK="throw",$K="M0031",KK="debug_print",OK="this uninitialized declaration requires a type annotation",RK="catch",QK="table",CK=328,HK=836501035,VK="lib/ansi_renderer/snippet_renderer.ml",LK=255,zK=16777215,SK=362,ZK="allocation_barrier",WK="IncludeD",XK="stream",JK="blob_of_principal",YK="ENETRESET",rO="cannot upgrade from an actor using enhanced migration to an actor not using enhanced migration",eO="IDL error: did not find tuple field in record",nO="shared function with () result type has unexpected body:\n the body must either be of sugared form '{ ... }' \n or explicit form '= ignore ((async ...) : async ())'",tO="Set.bal",aO=209,uO=408,fO="moc_stable_memory_access_limit",iO="parenthetical notes aren't allowed on shared functions",vO="@@value_quota",cO=963043957,AO="dst",oO="negative power",sO="@[<1>weak %a@]",bO="call_perform_message",lO="unknown mixin ",BO=7979,jO="",kO=402,pO="ic0_stable64_write",mO="to_opt_%i_tuple",dO="AssignE",_O="LtOp",hO="#",xO="system",yO="pre_exp",wO="@add_cycles",gO="cannot import canister urls without --actor-idl param",qO="Blob.compare_gt",IO="internal error: unexpected state entering ",DO="VarP",EO="int64_of_big_int",NO="weak_get",TO="get_graph_destabilized_actor",FO=134,MO="region_load_word16",PO="region_load_float64",UO="cannot burn cycles when running locally",GO="value %s does not match pattern",$O="M0169",KO="stable64_read",OO="nat16",RO="set_migrations",QO="@cleanup_callback",CO="ENXIO",HO=205556449,VO=230,LO="len_caller",zO="key_name",SO="regionLoadInt8",ZO="a shared function cannot be private",WO="accept_message",XO="msg_caller_info_data",JO="exec/ixx.ml",YO=",",rR=", expected one of token or sequence:\n ",eR=" in imports",nR="bigint_neg",tR="transient",aR="utf8_validate",uR="buffer_size",fR="EXDEV",iR=384,vR=8043,cR="memcmp",AR="_bigarr02",oR="this actor or actor class should be declared `persistent`",sR=388,bR=373,lR="B_le",BR=377,jR="Async",kR="btstInt64",pR="@buffer_size<",mR=".mo",dR="UnboxedFloat64",_R="call ",hR=" is not contained in expected type",xR="\nright operand is",yR="env_var_names",wR="M0086",gR="ToCandidE",qR="mo_frontend/typing.ml",IR=195,DR="bigint_sleb128_size",ER=196,NR="read",TR="unbound label ",FR="mo_idl/idl_to_mo.ml",MR="nat8",PR="IDL error: deserializing value of type None",UR=-97,GR=391,$R=306,KR="meth_pair",OR=8040,RR="EISCONN",QR="motoko:compiler",CR="msg_method_name_size",HR="shared function must have syntactic return type '()' or 'async '",VR="bulk-memory",LR="region_store_word8",zR="prelude",SR="costHttpRequest",ZR="IDL error: byte tag not 0 or 1",WR="blob",XR="/// ",JR=220,YR="wasm-exts/customModuleEncode.ml",rQ="pages",eQ="Printexc.handle_uncaught_exception",nQ="__stack_pointer",tQ="bigint_of_int64",aQ="Pre",uQ="bitwidth_mask_of_type",fQ="text_to_buf",iQ="SignP",vQ="save_stable_actor",cQ="M0200",AQ="accessing identifier before its definition",oQ="info",sQ="get_static_variable",bQ="losing precision",lQ="Blob index out of bounds",BQ="stableMemoryLoadNat64",jQ="a",kQ="";function pQ(r,e,n,t){for(var a=t,u=0;u>>0)+a;if(r.data[e+u]=0|f,f===f>>>0){a=0;break}a=1}return a}function mQ(r,e,n,t,a,u,f){for(var i=f,v=0;v>>0)+(t.data[a+v]>>>0)+i;r.data[e+v]=c,i=c===c>>>0?0:1}return pQ(r,e+u,n-u,i)}function dQ(r,e,n,t,a){for(var u=0;u>>0>=(Zb/4|0)&&EQ();r=r+1|0;var n=new Array(r);n[0]=0;for(var t=1;t>-e-14,u[r|yD]=1024>>-e-14|CI,f[r]=-e-1,f[r|yD]=-e-1):e<=15?(u[r]=e+15<<10,u[r|yD]=e+15<<10|CI,f[r]=13,f[r|yD]=13):e0?1:-1,i=Math.abs(u);if(i65504||Number.isNaN(c)?f*Number.POSITIVE_INFINITY:f*c}(r);const i=c[0],A=i>>23&511;return u[A]+((8388607&i)>>f[A])}}(),OQ=function(){var r=Math.pow,e=r(2,-24),n=vI;return function(t){var a=t>>>15,u=t>>>10&31,f=1023&t;return 31===u?0===f?0===a?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:Number.NaN:0===u?f*(0===a?e:-e):r(2,u-15)*(0===a?1+f*n:-1-f*n)}}(),RQ=Math.pow(2,-24);function QQ(r){throw r}function CQ(){QQ(wQ.Division_by_zero)}class HQ{constructor(r,e,n){this.lo=r&y_,this.mi=e&y_,this.hi=n&ai,this.caml_custom="_j"}static UNSIGNED_MAX=new HQ(y_,y_,ai);static SIGNED_MAX=new HQ(y_,y_,32767);static SIGNED_MIN=new HQ(0,0,CI);slice(){return new HQ(this.lo,this.mi,this.hi)}ucompare(r){return this.hi>r.hi?1:this.hir.mi?1:this.mir.lo?1:this.lon?1:er.mi?1:this.mir.lo?1:this.lo>24),n=-this.hi+(e>>24);return new HQ(r,e,n)}add(r){var e=this.lo+r.lo,n=this.mi+r.mi+(e>>24),t=this.hi+r.hi+(n>>24);return new HQ(e,n,t)}sub(r){var e=this.lo-r.lo,n=this.mi-r.mi+(e>>24),t=this.hi-r.hi+(n>>24);return new HQ(e,n,t)}mul(r){var e=this.lo*r.lo,n=(e*RQ|0)+this.mi*r.lo+this.lo*r.mi,t=(n*RQ|0)+this.hi*r.lo+this.mi*r.mi+this.lo*r.hi;return new HQ(e,n,t)}isZero(){return 0===(this.lo|this.mi|this.hi)}isNeg(){return this.hi<<16<0}and(r){return new HQ(this.lo&r.lo,this.mi&r.mi,this.hi&r.hi)}or(r){return new HQ(this.lo|r.lo,this.mi|r.mi,this.hi|r.hi)}xor(r){return new HQ(this.lo^r.lo,this.mi^r.mi,this.hi^r.hi)}shift_left(r){return 0===(r&=63)?this:r<24?new HQ(this.lo<>24-r,this.hi<>24-r):r<48?new HQ(0,this.lo<>48-r):new HQ(0,0,this.lo<>r|this.mi<<24-r,this.mi>>r|this.hi<<24-r,this.hi>>r):r<48?new HQ(this.mi>>r-24|this.hi<<48-r,this.hi>>r-24,0):new HQ(this.hi>>r-48,0,0)}shift_right(r){if(0===(r&=63))return this;var e=this.hi<<16>>16;if(r<24)return new HQ(this.lo>>r|this.mi<<24-r,this.mi>>r|e<<24-r,this.hi<<16>>r>>>16);var n=this.hi<<16>>31;return r<48?new HQ(this.mi>>r-24|this.hi<<48-r,this.hi<<16>>r-24>>16,n&ai):new HQ(this.hi<<16>>r-32,n,n)}lsl1(){this.hi=this.hi<<1|this.mi>>23,this.mi=(this.mi<<1|this.lo>>23)&y_,this.lo=this.lo<<1&y_}lsr1(){this.lo=(this.lo>>>1|this.mi<<23)&y_,this.mi=(this.mi>>>1|this.hi<<23)&y_,this.hi=this.hi>>>1}udivmod(r){for(var e=0,n=this.slice(),t=r.slice(),a=new HQ(0,0,0);n.ucompare(t)>0;)e++,t.lsl1();for(;e>=0;)e--,a.lsl1(),n.ucompare(t)>=0&&(a.lo++,n=n.sub(t)),t.lsr1();return{quotient:a,modulus:n}}div(r){var e=this;r.isZero()&&CQ();var n=e.hi^r.hi;e.hi&CI&&(e=e.neg()),r.hi&CI&&(r=r.neg());var t=e.udivmod(r).quotient;return n&CI&&(t=t.neg()),t}mod(r){var e=this;r.isZero()&&CQ();var n=e.hi;e.hi&CI&&(e=e.neg()),r.hi&CI&&(r=r.neg());var t=e.udivmod(r).modulus;return n&CI&&(t=t.neg()),t}toInt(){return this.lo|this.mi<<24}toFloat(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo}toArray(){return[this.hi>>8,this.hi&A,this.mi>>16,this.mi>>8&A,this.mi&A,this.lo>>16,this.lo>>8&A,this.lo&A]}lo32(){return this.lo|(this.mi&A)<<24}hi32(){return this.mi>>>8&ai|this.hi<<16}}function VQ(r){return r.hi32()}function LQ(r){return r.lo32()}var zQ=AR;class SQ{constructor(r,e,n,t){this.kind=r,this.layout=e,this.dims=n,this.data=t,this.caml_custom=zQ}offset(r){var e=0;if("number"==typeof r&&(r=[r]),Array.isArray(r)||DQ("bigarray.js: invalid offset"),this.dims.length!==r.length&&DQ("Bigarray.get/set: bad number of dimensions"),0===this.layout)for(var n=0;n=this.dims[n])&&EQ(),e=e*this.dims[n]+r[n];else for(n=this.dims.length-1;n>=0;n--)(r[n]<1||r[n]>this.dims[n])&&EQ(),e=e*this.dims[n]+(r[n]-1);return e}get(r){switch(this.kind){case 7:return function(r,e){return new HQ(r&y_,r>>>24&A|(e&ai)<<8,e>>>16&ai)}(this.data[2*r+0],this.data[2*r+1]);case 10:case 11:var e=this.data[2*r+0],n=this.data[2*r+1];return[JB,e,n];case 13:return OQ(this.data[r]);default:return this.data[r]}}set(r,e){switch(this.kind){case 7:this.data[2*r+0]=LQ(e),this.data[2*r+1]=VQ(e);break;case 10:case 11:this.data[2*r+0]=e[1],this.data[2*r+1]=e[2];break;case 13:this.data[r]=KQ(e);break;default:this.data[r]=e}return 0}fill(r){switch(this.kind){case 7:var e=LQ(r),n=VQ(r);if(e===n)this.data.fill(e);else for(var t=0;tu)return 1;if(a!==u){if(!e)return Number.NaN;if(!Number.isNaN(a))return 1;if(!Number.isNaN(u))return-1}}break;case 7:for(t=0;tr.data[t+1])return 1;if(this.data[t]>>>0>>0)return-1;if(this.data[t]>>>0>r.data[t]>>>0)return 1}break;case 13:for(t=0;ti)return 1}break;case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 12:for(t=0;tr.data[t])return 1}}return 0}}class ZQ extends SQ{offset(r){return"number"!=typeof r&&(Array.isArray(r)&&1===r.length?r=r[0]:DQ("Ml_Bigarray_c_1_1.offset")),(r<0||r>=this.dims[0])&&EQ(),r}get(r){return this.data[r]}set(r,e){return this.data[r]=e,0}fill(r){return this.data.fill(r),0}}function WQ(r,e,n,t){var a=UQ(r);return $Q(n)*a!==t.length&&DQ("length doesn't match dims"),0===e&&1===n.length&&1===a&&13!==r?new ZQ(r,e,n,t):new SQ(r,e,n,t)}function XQ(r){return r.slice(1)}function JQ(r){return function(r,e){return(e<0||e>=r.dims.length)&&DQ("Bigarray.dim"),r.dims[e]}(r,0)}function YQ(r,e){return r.get(r.offset(e))}function rC(r,e,n){return r.set(r.offset(e),n),0}function eC(r,e,n){var t=String.fromCharCode;if(0===e&&n<=4096&&n===r.length)return t.apply(null,r);for(var a=kQ;0=n.l||2===n.t&&a>=n.c.length))n.c=4===r.t?eC(r.c,e,a):0===e&&r.c.length===a?r.c:r.c.slice(e,e+a),n.t=n.c.length===n.l?0:2;else if(2===n.t&&t===n.c.length)n.c+=4===r.t?eC(r.c,e,a):0===e&&r.c.length===a?r.c:r.c.slice(e,e+a),n.t=n.c.length===n.l?0:2;else{4!==n.t&&nC(n);var u=r.c,f=n.c;if(4===r.t)if(t<=e)for(var i=0;i=0;i--)f[t+i]=u[e+i];else{var v=Math.min(a,u.length-e);for(i=0;ilj)return!1;return!0}return!/[^\x00-\x7f]/.test(r)}class cC{constructor(r,e,n){this.t=r,this.c=e,this.l=n}toString(){switch(this.t){case 9:case 8:return this.c;case 4:case 2:iC(this);case 0:return vC(this.c)?this.t=9:this.t=8,this.c}}toUtf16(){if(9===this.t)return this.c;var r=uC(this);return aC.decode(r)}slice(){var r=4===this.t?this.c.slice():this.c;return new cC(this.t,r,this.l)}}function AC(r){return new cC(0,r,r.length)}function oC(r){return r}function sC(r){return AC(r)}function bC(r,e,n,t,a){return tC(sC(r),e,n,t,a),0}function lC(){DQ(Cy)}function BC(r,e){switch(6&r.t){case 0:return r.c.charCodeAt(e);case 2:return e>=r.c.length?0:r.c.charCodeAt(e);case 4:return r.c[e]}}function jC(r,e){return e>>>0>=r.l&&lC(),BC(r,e)}function kC(r){return new HQ(r[7]|r[6]<<8|r[5]<<16,r[4]|r[3]<<8|r[2]<<16,r[1]|r[0]<<8)}function pC(r,e){e>>>0>=r.l-7&&lC();for(var n=new Array(8),t=0;t<8;t++)n[7-t]=BC(r,e+t);return kC(n)}function mC(r,e,n){if(n&=A,4!==r.t){if(e===r.c.length)return r.c+=String.fromCharCode(n),e+1===r.l&&(r.t=0),0;nC(r)}return r.c[e]=n,0}function dC(r,e,n){return e>>>0>=r.l&&lC(),mC(r,e,n)}function _C(r,e,n){e>>>0>=r.l-1&&lC();var t=A&n>>8;return mC(r,e+0,A&n),mC(r,e+1,t),0}function hC(r,e,n){e>>>0>=r.l-3&&lC();var t=A&n>>24,a=A&n>>16,u=A&n>>8;return mC(r,e+0,A&n),mC(r,e+1,u),mC(r,e+2,a),mC(r,e+3,t),0}function xC(r){return r.toArray()}function yC(r,e,n){e>>>0>=r.l-7&&lC();for(var t=xC(n),a=0;a<8;a++)mC(r,e+7-a,t[a]);return 0}function wC(r,e){var n=r.l>=0?r.l:r.l=r.length,t=e.length,a=n-t;if(0===a)return r(...e);if(a<0)return"function"!=typeof(u=r(...e.slice(0,n)))?u:wC(u,e.slice(n));switch(a){case 1:var u=function(n){for(var a=new Array(t+1),u=0;u>>0>=r.length-1&&EQ(),r}function qC(r){return Number.isFinite(r)?Math.abs(r)>=22250738585072014e-324?0:0!==r?1:2:Number.isNaN(r)?4:3}function IC(r){return r===Ok?1:0}var DC=new DataView(new ArrayBuffer(8));function EC(r){return DC.setFloat32(0,r,!0),0|DC.getUint32(0,!0)}function NC(r,e,n){return new HQ(r,e,n)}function TC(r){DC.setFloat64(0,r,!0);var e=DC.getUint32(0,!0),n=DC.getUint32(4,!0);return NC(e&y_,e>>>24|n<<8&y_,n>>>16&ai)}function FC(r,e,n){if(r.write(32,e.dims.length),r.write(32,e.kind|e.layout<<8),e.caml_custom===AR)for(var t=0;t>>8|t<<16,!0),DC.getFloat64(0,!0)}function UC(r){wQ.Failure||(wQ.Failure=[Gl,Rt,-3]),IQ(wQ.Failure,r)}function GC(r,e,n){var t=r.read32s();(t<0||t>16)&&UC("input_value: wrong number of bigarray dimensions");var a=r.read32s(),u=a&A,f=a>>8&1,i=[];if(n===AR)for(var v=0;v>>17,461845907))<<13|r>>>19)+(r<<2)|0)-430675100|0}function RC(r,e){return(e&EG)===EG&&1023&e?e=31745:e===CI&&(e=0),OC(r,e)}function QC(r,e){var n=EC(e);return(n&eK)===eK&&8388607&n?n=2139095041:n===(0|Y_)&&(n=0),r=OC(r,n)}function CC(r,e){var n=TC(e),t=LQ(n),a=VQ(n);return(a&Xl)===Xl&&t|1048575&a?(a=Xl,t=1):a===(0|Y_)&&0===t&&(a=0),r=OC(r,t),r=OC(r,a)}function HC(r){var e=$Q(r.dims),n=0;switch(r.kind){case 2:case 3:case 12:e>mc&&(e=mc);var t=0,a=0;for(a=0;a+4<=e;a+=4)n=OC(n,t=r.data[a+0]&A|(r.data[a+1]&A)<<8|(r.data[a+2]&A)<<16|r.data[a+3]<<24);switch(t=0,3&e){case 3:t=r.data[a+2]<<16;case 2:t|=r.data[a+1]<<8;case 1:n=OC(n,t|=r.data[a+0])}break;case 4:case 5:e>Ih&&(e=Ih);t=0,a=0;for(a=0;a+2<=e;a+=2)n=OC(n,t=r.data[a+0]&ai|r.data[a+1]<<16);1&e&&(n=OC(n,r.data[a]));break;case 6:e>64&&(e=64);for(a=0;a64&&(e=64);for(a=0;a32&&(e=32),e*=2;for(a=0;a64&&(e=64);for(a=0;a32&&(e=32);for(a=0;aIh&&(e=Ih);for(a=0;a0?a(e,r,t):a(r,e,t);if(t&&Number.isNaN(u))return n;if(Number.isNaN(+u))return+u;if(0|u)return 0|u}return n}function ZC(r){return"string"==typeof r&&!/[^\x00-\xff]/.test(r)}function WC(r){return r instanceof cC}function XC(r){if("number"==typeof r)return $s;if(WC(r))return cc;if(ZC(r))return J_;if(Array.isArray(r)&&r[0]===r[0]>>>0&&r[0]<=LK){var e=0|r[0];return e===JB?0:e}return r instanceof String||"string"==typeof r?12520:r instanceof Number?$s:r?.caml_custom?ea:r?.compare?1256:"function"==typeof r?1247:"symbol"==typeof r?1251:1001}function JC(r,e){return re?1:0}function rH(r,e){return 6&r.t&&iC(r),6&e.t&&iC(e),r.ce.c?1:0}function eH(r,e,n){for(var t=[];;){if(!n||r!==e){var a=XC(r);if(a===ae){r=r[1];continue}var u=XC(e);if(u===ae){e=e[1];continue}if(a!==u)return a===$s?u===ea?SC(r,e,-1,n):-1:u===$s?a===ea?SC(e,r,1,n):1:ae)return 1;if(r!==e){if(!n)return Number.NaN;if(!Number.isNaN(r))return 1;if(!Number.isNaN(e))return-1}break;case 1001:if(re)return 1;if(r!==e)return n?1:Number.NaN;break;case 1251:if(r!==e)return n?1:Number.NaN;break;case 1252:if((r=oC(r))!==(e=oC(e))){if(re)return 1}break;case 12520:if((r=r.toString())!==(e=e.toString())){if(re)return 1}break;default:if(IC(a)){DQ("compare: continuation value");break}if(r.length!==e.length)return r.length1&&t.push(r,e,1)}}if(0===t.length)return 0;var v=t.pop();e=t.pop(),v+1<(r=t.pop()).length&&t.push(r,e,v+1),r=r[v],e=e[v]}}function nH(r,e){return eH(r,e,!0)}function tH(r){return r<0&&DQ("Bytes.create"),new cC(r?2:9,kQ,r)}var aH=new ArrayBuffer(Jo);function uH(r){if(vC(r))return r;for(var e=r.length<=aH.length?new Uint8Array(aH,0,r.length):new Uint8Array(r.length),n=0;n=a){var u=tH(r+t),f=this.data;this.data=u,tC(f,0,this.data,0,a)}return tC(pH(e),n,this.data,r,t),t}read(r,e,n,t){var a=this.length();if(r+t>=a&&(t=a-r),t){var u=tH(0|t);tC(this.data,r,u,0,t),e.set(uC(u),n)}return t}}class hH{constructor(r,e,n){this.file=e,this.name=r,this.flags=n,this.offset=0,this.seeked=!1}err_closed(r,e){jH(e,Jk,r,_s)}length(){if(this.file)return this.file.length();this.err_closed(tA)}truncate(r,e){if(this.file)return this.flags.wronly||this.flags.rdwr||jH(e,lv,fw,s$),this.file.truncate(r);this.err_closed(fw,e)}write(r,e,n,t){if(this.file&&(this.flags.wronly||this.flags.rdwr)){var a=this.offset;return n=this.file.write(a,r,e,n),this.offset+=n,n}this.err_closed(Lw,t)}read(r,e,n,t){if(this.file&&!this.flags.wronly){var a=this.offset;return n=this.file.read(a,r,e,n),this.offset+=n,n}this.err_closed(NR,t)}seek(r,e,n){switch(e){case 0:break;case 1:r+=this.offset;break;case 2:r+=this.length()}r<0&&jH(n,lv,Yj,s$),this.offset=r,this.seeked=!0}close(){this.file||this.err_closed(qF),this.file=void 0}check_stream_semantics(r){if(!this.file)return this.err_closed(r,1)}}class xH{constructor(r,e){this.content={},this.root=r,this.lookupFun=e}nm(r){return this.root+r}create_dir_if_needed(r){for(var e=r.split(Bc),n=kQ,t=0;t0&&sH(this.nm(e)+" : directory not empty"));var n=this.slash(r),t=this.slash(e);this.create_dir_if_needed(t);for(const e of this.readdir(r))this.rename(n+e,t+e);delete this.content[n]}rename(r,e){this.exists(r)||sH(this.nm(r)+" : no such file or directory"),this.is_dir(r)?this.rename_dir(r,e):(this.exists(e)&&this.is_dir(e)&&sH(this.nm(e)+" : file already exists and is a directory"),this.content[e]=this.content[r],delete this.content[r])}mkdir(r,e,n){this.exists(r)&&jH(n,kr,tj,Sh,this.nm(r));var t=/^(.*)\/[^/]+/.exec(r);t=t?.[1]||kQ,this.exists(t)||jH(n,Xm,tj,So,this.nm(r)),this.is_dir(t)||jH(n,Ej,tj,Qc,this.nm(r)),this.create_dir_if_needed(this.slash(r))}rmdir(r,e){var n=r===kQ?kQ:this.slash(r),t=new RegExp(wm+n+wi);for(var a in this.exists(r)||jH(e,Xm,Os,So,this.nm(r)),this.is_dir(r)||jH(e,Ej,Os,Qc,this.nm(r)),this.content)a.match(t)&&jH(e,C$,Os,"directory not empty",this.nm(r));delete this.content[n]}readdir(r){var e=r===kQ?kQ:this.slash(r);this.exists(r)||sH(r+": No such file or directory"),this.is_dir(r)||sH(r+": Not a directory");var n=new RegExp(wm+e+wi),t={},a=[];for(var u in this.content){var f=u.match(n);f&&!t[f[1]]&&(t[f[1]]=!0,a.push(f[1]))}return a}opendir(r,e){var n=this.readdir(r),t=!1,a=0;return{readSync:function(){if(t&&jH(e,Jk,cP,_s),a===n.length)return null;var r=n[a];return a++,{name:r}},closeSync:function(){t&&jH(e,Jk,cP,_s),t=!0,n=[]}}}is_dir(r){if(r===kQ)return!0;var e=this.slash(r);return this.content[e]?1:0}unlink(r,e){return this.exists(r,!0)||jH(e,Xm,"unlink",So,r),delete this.content[r],0}access(r,e,n){return this.lookup(r),this.content[r]?this.is_dir(r)&&jH(n,"EACCESS","access","permission denied,",this.nm(r)):kH(this.nm(r),n),0}open(r,e,n,t){var a;return this.lookup(r),this.content[r]?(this.is_dir(r)&&jH(t,qb,QA,Xs,this.nm(r)),e.create&&e.excl&&jH(t,kr,QA,Sh,this.nm(r)),a=this.content[r],e.truncate&&a.truncate()):e.create?(this.create_dir_if_needed(r),this.content[r]=new _H(tH(0)),a=this.content[r]):kH(this.nm(r),t),new hH(this.nm(r),a,e)}truncate(r,e,n){this.lookup(r),this.content[r]?(this.is_dir(r)&&jH(n,qb,QA,Xs,this.nm(r)),this.content[r].truncate(e)):kH(this.nm(r),n)}register(r,e){var n;if(this.content[r]&&sH(this.nm(r)+" : file already exists"),WC(e)&&(n=new _H(e)),ZC(e))n=new _H(sC(e));else if(Array.isArray(e))n=new _H(function(r){return r instanceof Uint8Array||(r=new Uint8Array(r)),new cC(4,r,r.length)}(e));else if("string"==typeof e)n=new _H(AC(e));else if(e.toString){var t=sC(oH(e.toString()));n=new _H(t)}n?(this.create_dir_if_needed(r),this.content[r]=n):sH(this.nm(r)+" : registering file with invalid content type")}}function yH(r){var e=iH(r);if(e)return e[0]+Bc}var wH=yH(fH)||UC("unable to compute caml_root"),gH=[];function qH(r){for(var e,n=function(r){r=uH(r),iH(r)||(r=fH+r);for(var e=iH(r),n=e[1].split(/[/\\]/),t=[],a=0;a=3;t--){var a=e[t];if(r.WeakRef&&a instanceof r.WeakRef){if(void 0===a.deref()){e[t]=TH;continue}r.WeakMap&&(n=(new r.WeakMap).set(a,n))}}return e[2]=n,0}function $H(r,e){return 0===e?function(r){r[2]=TH}(r):GH(r,e[1]),0}function KH(e,n,t){var a=PH(e);return r.WeakRef&&t instanceof Object&&(t=new r.WeakRef(t)),e[3+n]=t,$H(e,a),0}function OH(r,e){return+(0===eH(r,e,!1))}function RH(r){var e,n=/^ *[-+]?(?:\d*\.?\d+|\d+\.?\d*)(?:[eE][-+]?\d+)?$/;if(e=+r,!Number.isNaN(e)&&n.test(r))return e;if(e=+(r=r.replace(/_/g,kQ)),!Number.isNaN(e)&&n.test(r)||/^[+-]?nan$/i.test(r))return e;var t=/^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)(p([+-]?[0-9]+))?$/i.exec(r);if(t){var a=t[3].replace(/0+$/,kQ),u=Number.parseInt(t[1]+t[2]+a,16),f=(+t[5]||0)-4*a.length;return e=u*Math.pow(2,f)}return/^\+?inf(inity)?$/i.test(r)?Number.POSITIVE_INFINITY:/^-inf(inity)?$/i.test(r)?Number.NEGATIVE_INFINITY:void UC("float_of_string")}function QH(r){var e=r.length;e>31&&DQ("format_int: format too long");for(var n={justify:og,signstyle:iF,filler:Wy,alternate:!1,base:0,signedconv:!1,width:0,uppercase:!1,sign:1,prec:-1,conv:OI},t=0;t=0&&a<=9;)n.width=10*n.width+a,t++;t--;break;case".":for(n.prec=0,t++;(a=r.charCodeAt(t)-48)>=0&&a<=9;)n.prec=10*n.prec+a,t++;t--;break;case"d":case"i":n.signedconv=!0,n.base=10;break;case"u":n.base=10;break;case"x":n.base=16;break;case"X":n.base=16,n.uppercase=!0;break;case"o":n.base=8;break;case"e":case"f":case"g":n.signedconv=!0,n.conv=a;break;case"E":case"F":case"G":n.signedconv=!0,n.uppercase=!0,n.conv=a.toLowerCase()}}return n}function CH(r,e){r.uppercase&&(e=e.toUpperCase());var n=e.length;r.signedconv&&(r.sign<0||r.signstyle!==iF)&&n++,r.alternate&&(8===r.base&&(n+=1),16===r.base&&(n+=2));var t=kQ;if(r.justify===og&&r.filler===Wy)for(var a=n;a20?(n-=20,r/=Math.pow(10,n),r+=fC(n,IK),e>0&&(r=r+Ku+fC(e,IK)),r):r.toFixed(e)}(e,t);break;case"g":t=t||1;var f=(a=e.toExponential(t-1)).indexOf(KB),i=+a.slice(f+1);if(i<-4||e>=1e21||e.toFixed(0).length>t){for(u=f-1;a.charAt(u)===IK;)u--;a.charAt(u)===Ku&&u--,u=(a=a.slice(0,u+1)+a.slice(f)).length,a.charAt(u-3)===KB&&(a=a.slice(0,u-1)+IK+a.slice(u-1));break}var v=t;if(i<0)v-=i+1,a=e.toFixed(v);else for(;(a=e.toFixed(v)).length>t+1;)v--;if(v){for(u=a.length-1;a.charAt(u)===IK;)u--;a.charAt(u)===Ku&&u--,a=a.slice(0,u+1)}}else a="inf",n.filler=Wy;return CH(n,a)}function VH(r,e){if(r===$M)return kQ+e;var n=QH(r);e<0&&(n.signedconv?(n.sign=-1,e=-e):e>>>=0);var t=e.toString(n.base);if(n.prec>=0){n.filler=Wy;var a=n.prec-t.length;a>0&&(t=fC(a,IK)+t)}return CH(n,t)}var LH=0;function zH(){return LH++}function SH(r,e){return+(eH(r,e,!1)>=0)}function ZH(r,e){return+(eH(r,e,!1)>0)}function WH(r,e){var n,t,a=e.length;for(n=0;n+4<=a;n+=4)r=OC(r,t=e.charCodeAt(n)|e.charCodeAt(n+1)<<8|e.charCodeAt(n+2)<<16|e.charCodeAt(n+3)<<24);switch(t=0,3&a){case 3:t=e.charCodeAt(n+2)<<16;case 2:t|=e.charCodeAt(n+1)<<8;case 1:r=OC(r,t|=e.charCodeAt(n))}return r^=a}function XH(r,e){return WH(r,e)}function JH(r,e){var n=function(r){return 2==(6&r.t)?(iC(r),r.c):r.c}(e);return"string"==typeof n?WH(r,n):function(r,e){var n,t,a=e.length;for(n=0;n+4<=a;n+=4)r=OC(r,t=e[n]|e[n+1]<<8|e[n+2]<<16|e[n+3]<<24);switch(t=0,3&a){case 3:t=e[n+2]<<16;case 2:t|=e[n+1]<<8;case 1:r=OC(r,t|=e[n])}return r^a}(r,n)}function YH(r,e,n,t){var a,u,f,i,v,c,A,o,s;for(((i=e)<0||i>mc)&&(i=mc),v=r,c=n,a=[t],u=0,f=1;u0;){if(A=a[u++],A?.caml_custom){if(LC[A.caml_custom]&&LC[A.caml_custom].hash)c=OC(c,LC[A.caml_custom].hash(A)),v--}else if(Array.isArray(A)&&A[0]===(0|A[0]))switch(A[0]){case 248:c=OC(c,A[2]),v--;break;case 250:a[--u]=A[1];break;default:if(IC(A[0]))break;for(c=OC(c,A.length-1<<10|A[0]),o=1,s=A.length;o=i);o++)a[f++]=A[o]}else WC(A)?(c=JH(c,A),v--):ZC(A)?(c=XH(c,A),v--):"string"==typeof A?(c=WH(c,A),v--):A===(0|A)?(c=OC(c,A+A+1),v--):"number"==typeof A&&(c=CC(c,A),v--)}return c=function(r){return r=KC(r^=r>>>16,-2048144789),r=KC(r^=r>>>13,-1028477387),r^r>>>16}(c),1073741823&c}function rV(r,e){return r.add(e)}function eV(r,e){return r.and(e)}function nV(r,e){return r.div(e)}function tV(r){return+r.isZero()}function aV(r){return new HQ(r&y_,r>>24&y_,r>>31&ai)}function uV(r){return r.toInt()}function fV(r){return r.neg()}function iV(r,e){var n=QH(r);n.signedconv&&function(r){return+r.isNeg()}(e)&&(n.sign=-1,e=fV(e));var t=kQ,a=aV(n.base);do{var u=e.udivmod(a);e=u.quotient,t="0123456789abcdef".charAt(uV(u.modulus))+t}while(!tV(e));if(n.prec>=0){n.filler=Wy;var f=n.prec-t.length;f>0&&(t=fC(f,IK)+t)}return CH(n,t)}function vV(r,e){return r.mod(e)}function cV(r,e){return r.mul(e)}function AV(r){return r.length}function oV(r,e){return r.charCodeAt(e)}function sV(r,e){return r.ucompare(e)<0}function bV(r){var e=0,n=AV(r),t=10,a=1,u=1;if(n>0)switch(oV(r,e)){case 45:e++,a=-1;break;case 43:e++,a=1}if(e+1=48&&r<=57?r-48:r>=65&&r<=90?r-55:r>=97&&r<=Ux?r-87:-1}function BV(r){var e=bV(r),n=e[0],t=e[1],a=e[2],u=e[3],f=aV(a),i=HQ.UNSIGNED_MAX.udivmod(f).quotient,v=oV(r,n),c=lV(v);(c<0||c>=a)&&UC(GF);for(var A=aV(c);;)if(95!==(v=oV(r,++n))){if((c=lV(v))<0||c>=a)break;sV(i,A)&&UC(GF),c=aV(c),sV(A=rV(cV(f,A),c),c)&&UC(GF)}return n!==AV(r)&&UC(GF),u&&sV(t<0?HQ.SIGNED_MIN:HQ.SIGNED_MAX,A)&&UC(GF),t<0&&(A=fV(A)),A}function jV(r,e){return r.or(e)}function kV(r,e){return r.shift_left(e)}function pV(r,e){return r.shift_right(e)}function mV(r,e){return r.shift_right_unsigned(e)}function dV(r,e){return r.sub(e)}function _V(r){return r.toFloat()}function hV(r,e){return r.xor(e)}function xV(r){var e=bV(r),n=e[0],t=e[1],a=e[2],u=e[3],f=AV(r),i=n=a)&&UC(RF);var c=v;for(n++;n=a)break;(c=a*c+v)>4294967295&&UC(RF)}return n!==f&&UC(RF),c*=t,u&&(0|c)!==c&&UC(RF),0|c}function yV(r){var e=r.length,n=new Array(e+1);n[0]=0;for(var t=0;t>16;return n}function TV(r){for(var e=0,n=r.length-1;n>=0;n--){e=[0,r[n],e]}return e}var FV=BV(oH("0xdaba0b6eb09322e3")),MV=BV(oH("0xd1342543de82ef95"));function PV(r){function e(r,e){return kV(r,e)}function n(r,e){return mV(r,e)}function t(r,e){return hV(r,e)}function a(r,e){return rV(r,e)}function u(r,e){return cV(r,e)}function f(r,t){return function(r,e){return jV(r,e)}(e(r,t),n(r,64-t))}function i(r,e){return YQ(r,e)}function v(r,e,n){return rC(r,e,n)}var c,A,o,s=MV,b=FV,l=r,B=i(l,0),j=i(l,1),k=i(l,2),p=i(l,3);return c=u(t(c=a(j,k),n(c,32)),b),c=u(t(c,n(c,32)),b),c=t(c,n(c,32)),v(l,1,a(u(j,s),B)),o=t(o=p,A=k),A=t(t(A=f(A,24),o),e(o,16)),o=f(o,37),v(l,2,A),v(l,3,o),c}var UV=function(){function r(r,e){return r+e|0}function e(e,n,t,a,u,f){return n=r(r(n,e),r(a,f)),r(n<>>32-u,t)}function n(r,n,t,a,u,f,i){return e(n&t|~n&a,r,n,u,f,i)}function t(r,n,t,a,u,f,i){return e(n&a|t&~a,r,n,u,f,i)}function a(r,n,t,a,u,f,i){return e(n^t^a,r,n,u,f,i)}function u(r,n,t,a,u,f,i){return e(t^(n|~a),r,n,u,f,i)}return function(e,f){var i=e[0],v=e[1],c=e[2],A=e[3];i=n(i,v,c,A,f[0],7,3614090360),A=n(A,i,v,c,f[1],12,3905402710),c=n(c,A,i,v,f[2],17,606105819),v=n(v,c,A,i,f[3],22,3250441966),i=n(i,v,c,A,f[4],7,4118548399),A=n(A,i,v,c,f[5],12,1200080426),c=n(c,A,i,v,f[6],17,2821735955),v=n(v,c,A,i,f[7],22,4249261313),i=n(i,v,c,A,f[8],7,1770035416),A=n(A,i,v,c,f[9],12,2336552879),c=n(c,A,i,v,f[10],17,4294925233),v=n(v,c,A,i,f[11],22,2304563134),i=n(i,v,c,A,f[12],7,1804603682),A=n(A,i,v,c,f[13],12,4254626195),c=n(c,A,i,v,f[14],17,2792965006),i=t(i,v=n(v,c,A,i,f[15],22,1236535329),c,A,f[1],5,4129170786),A=t(A,i,v,c,f[6],9,3225465664),c=t(c,A,i,v,f[11],14,643717713),v=t(v,c,A,i,f[0],20,3921069994),i=t(i,v,c,A,f[5],5,3593408605),A=t(A,i,v,c,f[10],9,38016083),c=t(c,A,i,v,f[15],14,3634488961),v=t(v,c,A,i,f[4],20,3889429448),i=t(i,v,c,A,f[9],5,568446438),A=t(A,i,v,c,f[14],9,3275163606),c=t(c,A,i,v,f[3],14,4107603335),v=t(v,c,A,i,f[8],20,1163531501),i=t(i,v,c,A,f[13],5,2850285829),A=t(A,i,v,c,f[2],9,4243563512),c=t(c,A,i,v,f[7],14,1735328473),i=a(i,v=t(v,c,A,i,f[12],20,2368359562),c,A,f[5],4,4294588738),A=a(A,i,v,c,f[8],11,2272392833),c=a(c,A,i,v,f[11],16,1839030562),v=a(v,c,A,i,f[14],23,4259657740),i=a(i,v,c,A,f[1],4,2763975236),A=a(A,i,v,c,f[4],11,1272893353),c=a(c,A,i,v,f[7],16,4139469664),v=a(v,c,A,i,f[10],23,3200236656),i=a(i,v,c,A,f[13],4,681279174),A=a(A,i,v,c,f[0],11,3936430074),c=a(c,A,i,v,f[3],16,3572445317),v=a(v,c,A,i,f[6],23,76029189),i=a(i,v,c,A,f[9],4,3654602809),A=a(A,i,v,c,f[12],11,3873151461),c=a(c,A,i,v,f[15],16,530742520),i=u(i,v=a(v,c,A,i,f[2],23,3299628645),c,A,f[0],6,4096336452),A=u(A,i,v,c,f[7],10,1126891415),c=u(c,A,i,v,f[14],15,2878612391),v=u(v,c,A,i,f[5],21,4237533241),i=u(i,v,c,A,f[12],6,1700485571),A=u(A,i,v,c,f[3],10,2399980690),c=u(c,A,i,v,f[10],15,4293915773),v=u(v,c,A,i,f[1],21,2240044497),i=u(i,v,c,A,f[8],6,1873313359),A=u(A,i,v,c,f[15],10,4264355552),c=u(c,A,i,v,f[6],15,2734768916),v=u(v,c,A,i,f[13],21,1309151649),i=u(i,v,c,A,f[4],6,4149444226),A=u(A,i,v,c,f[11],10,3174756917),c=u(c,A,i,v,f[2],15,718787259),v=u(v,c,A,i,f[9],21,3951481745),e[0]=r(i,e[0]),e[1]=r(v,e[1]),e[2]=r(c,e[2]),e[3]=r(A,e[3])}}();function GV(r){return eC(r,0,r.length)}function $V(r,e,n){var t=function(){var r=new ArrayBuffer(64),e=new Uint32Array(r),n=new Uint8Array(r);return{len:0,w:new Uint32Array([1732584193,4023233417,2562383102,271733878]),b32:e,b8:n}}();return function(r,e,n){var t=63&r.len,a=0;if(r.len+=n,t){var u=64-t;if(n=64;)r.b8.set(e.subarray(a,a+64),0),UV(r.w,r.b32),n-=64,a+=64;n&&r.b8.set(e.subarray(a,a+n),0)}(t,uC(r).subarray(e,e+n),n),GV(function(r){var e=63&r.len;if(r.b8[e]=128,++e>56){for(var n=e;n<64;n++)r.b8[n]=0;for(UV(r.w,r.b32),n=0;n<56;n++)r.b8[n]=0}else for(n=e;n<56;n++)r.b8[n]=0;r.b32[14]=r.len<<3,r.b32[15]=r.len>>29&536870911,UV(r.w,r.b32);for(var t=new Uint8Array(16),a=0;a<4;a++)for(n=0;n<4;n++)t[4*a+n]=r.w[a]>>8*n&A;return t}(t))}function KV(r){this.id=r}var OV=new class{constructor(){this.map=new r.WeakMap,this.opened=new r.Set}close(r){this.opened.delete(r)}get(r){return this.map.get(r)}set(r,e){return e.opened&&this.opened.add(r),this.map.set(r,e)}all(){return this.opened.values()}};function RV(r){return OV.get(r)}function QV(r){return 0|RV(r).file.length()}var CV=new Array(3);function HV(r){var e=RV(r);if(e.opened||sH("Cannot flush a closed channel"),!e.buffer||0===e.buffer_curr)return 0;if(e.output)e.output(eC(e.buffer,0,e.buffer_curr));else for(var n=0;n0)e.set(a.buffer.subarray(a.buffer_curr,a.buffer_curr+f),n),a.buffer_curr+=f,u=f;else{var f;a.buffer_curr=0,a.buffer_max=0,LV(a),u>(f=a.buffer_max-a.buffer_curr)&&(u=f),e.set(a.buffer.subarray(a.buffer_curr,a.buffer_curr+u),n),a.buffer_curr+=u}return 0|u}(r,uC(e),n,t)}function SV(r){var e=RV(r);e.buffer_curr>=e.buffer_max&&(e.buffer_curr=0,e.buffer_max=0,LV(e)),e.buffer_curr>=e.buffer_max&&QQ(wQ.End_of_file);var n=e.buffer[e.buffer_curr];return e.buffer_curr++,n}function ZV(r){var e=RV(r),n=e.buffer_curr;do{if(n>=e.buffer_max){if(e.buffer_curr>0&&(e.buffer.set(e.buffer.subarray(e.buffer_curr),0),n-=e.buffer_curr,e.buffer_max-=e.buffer_curr,e.buffer_curr=0),e.buffer_max>=e.buffer.length)return 0|-e.buffer_max;var t=e.buffer_max;if(LV(e),t===e.buffer_max)return 0|-e.buffer_max}}while(10!==e.buffer[n++]);return n-e.buffer_curr|0}class WV{constructor(){this.locked=!1}}var XV=Xf;class JV extends _H{constructor(r,e){super(tH(0)),this.log=function(r){return 0},1===r&&"function"==typeof console.log?this.log=console.log:2===r&&"function"==typeof console.error?this.log=console.error:"function"==typeof console.log&&(this.log=console.log),this.flags=e}length(){return 0}truncate(r,e){jH(e,lv,"ftruncate",s$)}write(r,e,n,t){var a=n;if(this.log){n>0&&e>=0&&e+n<=r.length&&10===r[e+n-1]&&n--;var u=tH(n);return tC(pH(r),e,u,0,n),this.log(u.toUtf16()),a}jH(t,Jk,Lw,_s)}read(r,e,n,t){jH(t,Jk,NR,_s)}seek(r,e,n){jH(n,oo,Yj,"illegal seek")}close(){this.log=void 0}check_stream_semantics(r){}}function YV(r,e){var n;return n=void 0===e?new KV(e=CV.length):CV[e]?CV[e].chanid:new KV(e),CV[e]={file:r,chanid:n},0|e}function rL(r,e,n){for(var t={};e;){switch(e[1]){case 0:t.rdonly=1;break;case 1:t.wronly=1;break;case 2:t.append=1,t.writeonly=1;break;case 3:t.create=1;break;case 4:t.truncate=1;break;case 5:t.excl=1;break;case 6:t.binary=1;break;case 7:t.text=1;break;case 8:t.nonblock=1}e=e[2]}var a=qH(r);return YV(a.device.open(a.rest,t,n),void 0)}function eL(r){var e=CV[r];void 0===e&&sH("fd "+r+hG);var n=e.file,t=e.chanid,a={file:n,offset:n.offset,fd:r,opened:!0,out:!1,buffer_curr:0,buffer_max:0,buffer:new Uint8Array(XV),refill:null};return OV.set(t,a),t}function nL(r){var e=CV[r];void 0===e&&sH("fd "+r+hG);var n=e.file,t=e.chanid,a=void 0!==n.flags.buffered?n.flags.buffered:1,u={file:n,offset:n.offset,fd:r,opened:!0,out:!0,buffer_curr:0,buffer:new Uint8Array(XV),buffered:a};return OV.set(t,u),t}function tL(r,e,n,t){return function(r,e,n,t){var a=RV(r);if(a.opened||sH("Cannot output to a closed channel"),e=e.subarray(n,n+t),a.buffer_curr+e.length>a.buffer.length){var u=new Uint8Array(a.buffer_curr+e.length);u.set(a.buffer),a.buffer=u}switch(a.buffered){case 0:a.buffer.set(e,a.buffer_curr),a.buffer_curr+=e.length,HV(r);break;case 1:a.buffer.set(e,a.buffer_curr),a.buffer_curr+=e.length,a.buffer_curr>=a.buffer.length&&HV(r);break;case 2:var f=e.lastIndexOf(10);f<0?(a.buffer.set(e,a.buffer_curr),a.buffer_curr+=e.length,a.buffer_curr>=a.buffer.length&&HV(r)):(a.buffer.set(e.subarray(0,f+1),a.buffer_curr),a.buffer_curr+=f+1,HV(r),a.buffer.set(e.subarray(f+1),a.buffer_curr),a.buffer_curr+=e.length-f-1)}return 0}(r,e=uC(e),n,t)}function aL(r,e,n,t){return tL(r,sC(e),n,t)}function uL(r,e){return aL(r,String.fromCharCode(e),0,1),0}function fL(r){return 0|function(r){var e=RV(r);return e.offset-(e.buffer_max-e.buffer_curr)}(r)}function iL(r,e){return RV(r).name=e,0}function vL(r,e){return 0===e&&CQ(),r%e}function cL(r,e){return+(0!==eH(r,e,!1))}function AL(r){return"number"==typeof r?r:r.slice()}function oL(r){return Array.isArray(r)&&r[0]===r[0]>>>0?r[0]:WC(r)||ZC(r)?cc:r instanceof Function||"function"==typeof r?Xu:r?.caml_custom?LK:$s}!function(){function r(r,e){return new JV(r,e)}YV(r(0,{rdonly:1,altname:"/dev/stdin",isCharacterDevice:!0}),0),YV(r(1,{buffered:2,wronly:1,isCharacterDevice:!0}),1),YV(r(2,{buffered:2,wronly:1,isCharacterDevice:!0}),2)}();function sL(r,e,n){if(n){var t=n;if(wQ.symbols){wQ.symidx||(wQ.symidx=function(r){var e={},n=-1;if(r)for(var t=1;t=0)r=a;else{r=wQ.symidx.next_idx++;wQ.symidx[t]=r}}}wQ[r+1]=e,n&&(wQ[n]=e)}function bL(r,e){return lH[r]=e,0}function lL(r,e){return r===e?1:0}function BL(r,e){return e>>>0>=AV(r)&&DQ(Cy),oV(r,e)}function jL(r,e){return r<=e?1:0}function kL(r,e){return jL(e,r)}function pL(r,e){return r=0;t--)if(0!==r.data[e+t])return t+1;return 1}function FL(r,e,n,t,a,u){var f=TL(r,e,n),i=TL(t,a,u);if(f>i)return 1;if(f=0;v--){if(r.data[e+v]>>>0>t.data[a+v]>>>0)return 1;if(r.data[e+v]>>>0>>0)return-1}return 0}class ML{constructor(r){this.data=new Int32Array(r),this.length=this.data.length+2,this.caml_custom="_nat"}}function PL(r){for(var e=new ML(r),n=0;n>>0)-a;if(r.data[e+u]=f,f>=0){a=0;break}a=1}return 1===a?0:1}function GL(r,e,n){var t=r*Xf+(e>>>16),a=Math.floor(t/n)*Xf,u=t%n*Xf+(65535&e);return[a+Math.floor(u/n),u%n]}function $L(r,e,n,t,a,u,f,i,v){for(var c=a.data[u+f-1]>>>0,A=f-2;A>=0;A--){var o=GL(c,a.data[u+A]>>>0,i.data[v]>>>0);r.data[e+A]=o[0],c=o[1]}return n.data[t]=c,0}function KL(r,e){var n=r.data[e],t=0;return 4294901760&n&&(t+=16,n>>>=16),65280&n&&(t+=8,n>>>=8),240&n&&(t+=4,n>>>=4),12&n&&(t+=2,n>>>=2),2&n&&(t+=1,n>>>=1),1&n&&(t+=1),32-t}function OL(r,e,n,t,a,u){if(0===u)return t.data[a]=0,0;for(var f=0,i=0;i>>0;r.data[e+i]=v<>>32-u}return t.data[a]=f,0}function RL(r,e,n,t,a,u){if(0===u)return t.data[a]=0,0;for(var f=0,i=n-1;i>=0;i--){var v=r.data[e+i]>>>0;r.data[e+i]=v>>>u|f,f=v<<32-u}return t.data[a]=f,0}function QL(r,e,n){for(var t=0;t>>0,A=0;A>>0)+(t.data[a+A]>>>0)*(65535&c)+v,s=(t.data[a+A]>>>0)*(c>>>16);v=Math.floor(s/Xf);var b=o+s%Xf*Xf;r.data[e+A]=b,v+=Math.floor(b/nf)}return u>>0)-(t.data[a+v]>>>0)-i;r.data[e+v]=c,i=c>=0?0:1}return UL(r,e+u,n-u,1===i?0:1)}function LL(r,e,n){var t=e.data.length;r.write(32,t);for(var a=0;a=0?1:0}function WL(r,e){return 0===r.data[e]?1:0}function XL(r){return r.data.length}function JL(r,e,n,t,a,u,f,i,v){for(var c=0,A=0;At&&(e+=rm);var u=n[a];e+="number"==typeof u?u.toString():u instanceof cC||"string"==typeof u?cs+u.toString()+cs:pi}e+=aI}else r[0]===Gl&&(e+=r[1]);return e}(r),t=BH(Sj);if(t&&wV(t,[0]),console.error(mx+n),r.js_error)throw r.js_error}}!function(){var e=r.process;e?.on?e.on("uncaughtException",function(r,n){tz(r),e.exit(2)}):r.addEventListener&&r.addEventListener(jI,function(r){r.error&&tz(r.error)})}();var az=void 0!==r.caml_unix_map_file_bytecode?r.caml_unix_map_file_bytecode:function(){UC("caml_unix_map_file_bytecode not implemented")};function uz(r,e){return 1===(r.l>=0?r.l:r.l=r.length)?r(e):wC(r,[e])}function fz(r,e,n){return 2===(r.l>=0?r.l:r.l=r.length)?r(e,n):wC(r,[e,n])}function iz(r,e,n,t){return 3===(r.l>=0?r.l:r.l=r.length)?r(e,n,t):wC(r,[e,n,t])}function vz(r,e,n,t,a){return 4===(r.l>=0?r.l:r.l=r.length)?r(e,n,t,a):wC(r,[e,n,t,a])}function cz(r,e,n,t,a,u){return 5===(r.l>=0?r.l:r.l=r.length)?r(e,n,t,a,u):wC(r,[e,n,t,a,u])}function Az(r,e,n,t,a,u,f){return 6===(r.l>=0?r.l:r.l=r.length)?r(e,n,t,a,u,f):wC(r,[e,n,t,a,u,f])}function oz(r,e,n,t,a,u,f,i){return 7===(r.l>=0?r.l:r.l=r.length)?r(e,n,t,a,u,f,i):wC(r,[e,n,t,a,u,f,i])}function sz(r,e,n,t,a,u,f,i,v){return 8===(r.l>=0?r.l:r.l=r.length)?r(e,n,t,a,u,f,i,v):wC(r,[e,n,t,a,u,f,i,v])}function bz(r,e,n,t,a,u,f,i,v,c,A,o){return 11===(r.l>=0?r.l:r.l=r.length)?r(e,n,t,a,u,f,i,v,c,A,o):wC(r,[e,n,t,a,u,f,i,v,c,A,o])}var lz=[Gl,kc,-1],Bz=[Gl,yq,-2],jz=[Gl,Rt,-3],kz=[Gl,Jv,-4],pz=[Gl,dE,-5],mz=[Gl,HA,-6],dz=[Gl,Fg,-7],_z=[Gl,$d,-8],hz=[Gl,Wv,-9],xz=[Gl,_t,-11],yz=[Gl,io,-12],wz="List.iter2",gz="List.fold_left2",qz="List.for_all2",Iz=NC(zK,zK,Fn),Dz=NC(0,0,0),Ez=NC(1,0,0),Nz=NC(zK,zK,Fn),Tz=NC(0,0,kM),Fz=NC(zK,zK,32767),Mz=[0,kQ,0,0,-1],Pz=[0,kQ,1,0,0],Uz=$M,Gz=[0,[11,'File "',[2,0,[11,'", line ',[4,0,0,0,[11,fA,[4,0,0,0,[12,45,[4,0,0,0,[11,He,[2,0,0]]]]]]]]]],'File "%s", line %d, characters %d-%d: %s'],$z=[0,0],Kz=[0,kQ,0,kQ],Oz=Ku,Rz=Ku,Qz=Ku,Cz=CP,Hz=[0,NC(14026752,10728,0),NC(14824448,1072,0)],Vz=[0,kQ,0,0],Lz=EF,zz=IK,Sz=[0,kQ,0,0],Zz=[0,"\0\0Öÿ\0\0\0\0Á\0A×ÿØÿÙÿÚÿË\0Ñg²ýH“Þ)t¿\n…xƒ‚\0¼\0„\0øÿùÿúÿûÿüÿýÿþÿÿÿöÿôÿõÿóÿ³Vmîÿïÿðÿ¤škÊ%ee¥e\bæ\b&\tf\t¦\tæ\t&\nf\n¦\næ\níÿ|\0¦\vX\bo\b™\vw\f\fè\f3\r~\rÉ\r_ªõ@‹Ö!l·M˜ã.yÄZ¥ð;†Ñg²ýH“Þ)t¿\nU ë6Ìb­øCŽÙ$oºP›æ1|Ç]¨Ûÿ®ÝÿÞÿ/ \n_ Ÿ ß ß !_!Ÿ!ß!\"_\"Ÿ\"ß\"#_#Ÿ#ß#$_$Ÿ$ß$%_%Ÿ%U&úÿ&`\vÆ&'F'F'†'ûÿüÿýÿÎ\0Ì\0ÿÿþÿÆ'(F(†(Æ()F)†)Æ)","ÿÿÿÿ)\0)\0)\0)\0)\0)\0)\0ÿÿÿÿÿÿÿÿ(\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0(\0\0\0\r\0(\0\b\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0ÿÿÿÿÿÿ \0 \0 \0 \0\0 \0 \0 \0 \0 \0\0 \0 \0\0 \0 \0\0 \0 \0\0 \0 \0 \0\0 \0 \0\0 \0 \0 \0 \0\0 \0 \0 \0 \0\0 \0 \0\0 \0 \0 \0 \0 \0 \0 \0\0 \0 \0 \0\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0\0ÿÿ#\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0ÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;\0ÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0\0\0\0\0\0E\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿ;\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ´\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\f\0\v\0\t\0\t\0\f\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\f\0\0\0\t\0\t\0\t\0\t\0\t\0'\0&\0\t\0\t\0\"\0\0!\0\r\0\0\0\0\0\0\0\0\0\0\0 \0#\0\t\0\0\t\0\t\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\t\0\t\0\t\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0%\0\t\0$\0\t\0\t\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0+\0(\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ž\0*\0I\0º\0)\0\0¹\0\0\0\0\0\0\0\0\0\n\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0l\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0d\0\0\0\0e\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0]\0\0^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0W\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0L\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\0\0\0\0\x002\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0.\0.\0.\0.\0.\0\0\0\0\0\0\0-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x003\0-\0\0\0\0\0\0\0\0\0\0\0\0\0.\0.\0.\0.\0.\0.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\x009\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x008\x007\x007\x006\x004\x004\x004\x005\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0.\0.\0.\0.\0.\0\0\0/\0\0\0.\0.\0.\0.\0.\0.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0G\0\0\0\0\0\0\0\0\0G\0\0\0\0\0.\0.\0.\0.\0.\0.\0H\0H\0H\0H\0H\0H\0H\0H\0H\0H\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0H\0H\0H\0H\0H\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0\0\0\0\0\0\0\0\0\0\0G\0\0\0\0\0\0\0\0\0H\0H\0H\0H\0H\0H\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0G\0\0\0\0\0\0\0G\0\0\0G\0F\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿ>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\0\0\0\0\x002\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0;\0;\0;\0;\0;\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\0J\0J\0J\0J\0J\0\0\0\0\0\0\0;\0;\0;\0;\0;\0;\0\0\0\0\x003\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\0J\0J\0J\0J\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\x009\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x008\x007\x007\x006\x004\x004\x004\x005\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\0\0\0\0\x002\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\0J\0J\0J\0J\0J\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0K\0\0\0J\0J\0J\0J\0J\0J\0\0\0\0\x003\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\x009\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x008\x007\x007\x006\x004\x004\x004\x005\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\0J\0J\0J\0J\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\0J\0J\0J\0J\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0M\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0N\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0O\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0T\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0X\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0[\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0h\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0j\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0k\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0o\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0p\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0u\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0x\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0{\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‚\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ƒ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0„\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0…\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‡\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ˆ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‰\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Š\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‹\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0—\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0–\0•\0•\0”\0’\0’\0’\0“\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0¶\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¸\0\0\0\0\0\0\0\0\0·\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0²\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0±\0°\0°\0¯\0­\0­\0­\0®\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0µ\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\r\0\0F\0·\0\0\r\0¸\0ÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0ÿÿ\0\0\0\0\0\0\0\0\0\0,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,\0,\0,\0,\0,\0,\0ÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0-\0-\0-\0-\0-\0-\0-\0-\0-\0-\0ÿÿ,\0,\0,\0,\0,\0,\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.\0.\0.\0.\0.\0.\0/\0/\0/\0/\0/\0/\0/\0/\0/\0/\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ/\0/\0/\0/\0/\0/\0ÿÿ.\0ÿÿ.\0.\0.\0.\0.\0.\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3\0ÿÿÿÿÿÿÿÿ3\0ÿÿÿÿ/\0/\0/\0/\0/\0/\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3\x003\x003\x003\x003\x003\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0ÿÿÿÿÿÿÿÿÿÿ3\0ÿÿÿÿÿÿÿÿ3\x003\x003\x003\x003\x003\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3\0ÿÿÿÿÿÿ3\0ÿÿ3\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x008\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\x009\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0:\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0ÿÿÿÿ;\0H\0H\0H\0H\0H\0H\0H\0H\0H\0H\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿH\0H\0H\0H\0H\0H\0I\0I\0I\0I\0I\0I\0I\0I\0I\0I\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿI\0I\0I\0I\0I\0I\0ÿÿÿÿÿÿH\0H\0H\0H\0H\0H\0ÿÿÿÿ;\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿI\0I\0I\0I\0I\0I\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0;\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0<\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0>\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0?\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0B\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0C\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0ÿÿÿÿG\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿJ\0J\0J\0J\0J\0J\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿJ\0ÿÿJ\0J\0J\0J\0J\0J\0ÿÿÿÿG\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿJ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿG\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0K\0K\0K\0K\0K\0K\0K\0K\0K\0K\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿK\0K\0K\0K\0K\0K\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿL\0L\0L\0L\0L\0L\0L\0L\0L\0L\0ÿÿK\0K\0K\0K\0K\0K\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0ÿÿÿÿÿÿÿÿL\0ÿÿL\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0L\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿM\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0ÿÿÿÿÿÿÿÿM\0ÿÿM\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0M\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿN\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0ÿÿÿÿÿÿÿÿN\0ÿÿN\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿO\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0ÿÿÿÿÿÿÿÿO\0ÿÿO\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿP\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0ÿÿÿÿÿÿÿÿP\0ÿÿP\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿQ\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0ÿÿÿÿÿÿÿÿQ\0ÿÿQ\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿR\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0ÿÿÿÿÿÿÿÿR\0ÿÿR\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0R\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿS\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0ÿÿÿÿÿÿÿÿS\0ÿÿS\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0S\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿT\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0ÿÿÿÿÿÿÿÿT\0ÿÿT\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0T\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿU\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0ÿÿÿÿÿÿÿÿU\0ÿÿU\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0U\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿV\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0ÿÿÿÿÿÿÿÿV\0ÿÿV\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿW\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0ÿÿÿÿÿÿÿÿW\0ÿÿW\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿX\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0ÿÿÿÿÿÿÿÿX\0ÿÿX\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿY\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0ÿÿÿÿÿÿÿÿY\0ÿÿY\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿZ\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0ÿÿÿÿÿÿÿÿZ\0ÿÿZ\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0ÿÿÿÿÿÿÿÿ[\0ÿÿ[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0[\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0ÿÿÿÿÿÿÿÿ\\\0ÿÿ\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0\\\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0ÿÿÿÿÿÿÿÿ]\0ÿÿ]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0]\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0ÿÿÿÿÿÿÿÿ^\0ÿÿ^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0^\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0ÿÿÿÿÿÿÿÿ_\0ÿÿ_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0ÿÿÿÿÿÿÿÿ`\0ÿÿ`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿa\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0ÿÿÿÿÿÿÿÿa\0ÿÿa\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿb\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0ÿÿÿÿÿÿÿÿb\0ÿÿb\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿc\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0ÿÿÿÿÿÿÿÿc\0ÿÿc\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿd\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0ÿÿÿÿÿÿÿÿd\0ÿÿd\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿe\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0ÿÿÿÿÿÿÿÿe\0ÿÿe\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿf\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0ÿÿÿÿÿÿÿÿf\0ÿÿf\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿg\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0ÿÿÿÿÿÿÿÿg\0ÿÿg\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿh\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0ÿÿÿÿÿÿÿÿh\0ÿÿh\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿi\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0ÿÿÿÿÿÿÿÿi\0ÿÿi\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿj\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0ÿÿÿÿÿÿÿÿj\0ÿÿj\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿk\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0ÿÿÿÿÿÿÿÿk\0ÿÿk\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿl\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0ÿÿÿÿÿÿÿÿl\0ÿÿl\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿm\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0ÿÿÿÿÿÿÿÿm\0ÿÿm\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿn\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0ÿÿÿÿÿÿÿÿn\0ÿÿn\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿo\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0ÿÿÿÿÿÿÿÿo\0ÿÿo\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿp\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0ÿÿÿÿÿÿÿÿp\0ÿÿp\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿq\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0ÿÿÿÿÿÿÿÿq\0ÿÿq\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿr\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0ÿÿÿÿÿÿÿÿr\0ÿÿr\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0r\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿs\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0ÿÿÿÿÿÿÿÿs\0ÿÿs\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0s\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿt\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0ÿÿÿÿÿÿÿÿt\0ÿÿt\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0t\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿu\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0ÿÿÿÿÿÿÿÿu\0ÿÿu\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0u\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿv\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0ÿÿÿÿÿÿÿÿv\0ÿÿv\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0v\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿw\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0ÿÿÿÿÿÿÿÿw\0ÿÿw\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0w\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿx\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0ÿÿÿÿÿÿÿÿx\0ÿÿx\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿy\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0ÿÿÿÿÿÿÿÿy\0ÿÿy\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿz\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0ÿÿÿÿÿÿÿÿz\0ÿÿz\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0ÿÿÿÿÿÿÿÿ{\0ÿÿ{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0ÿÿÿÿÿÿÿÿ|\0ÿÿ|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0ÿÿÿÿÿÿÿÿ}\0ÿÿ}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0ÿÿÿÿÿÿÿÿ~\0ÿÿ~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0ÿÿÿÿÿÿÿÿ€\0ÿÿ€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0ÿÿÿÿÿÿÿÿ‚\0ÿÿ‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ÿÿÿÿÿÿÿÿƒ\0ÿÿƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0ÿÿÿÿÿÿÿÿ„\0ÿÿ„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0ÿÿÿÿÿÿÿÿ…\0ÿÿ…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0ÿÿÿÿÿÿÿÿ†\0ÿÿ†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0ÿÿÿÿÿÿÿÿ‡\0ÿÿ‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ÿÿÿÿÿÿÿÿˆ\0ÿÿˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0ÿÿÿÿÿÿÿÿ‰\0ÿÿ‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0ÿÿÿÿÿÿÿÿŠ\0ÿÿŠ\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0ÿÿÿÿÿÿÿÿ‹\0ÿÿ‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0\0ÿÿÿÿÿÿŒ\0ÿÿŒ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0£\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0ª\0«\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«\0ÿÿÿÿÿÿÿÿ«\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0«\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¾\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0¿\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",kQ,kQ,kQ,kQ,kQ,kQ],Wz=[0,rb,0,-2],Xz=[15,[17,[0,rb,0,-2],[12,xI,[17,0,0]]]],Jz=[0,Fc,0,0],Yz=[7,0],rS=[7,0],eS=[2,1],nS=[2,2],tS=[2,5],aS=[2,6],uS=[2,7],fS=[2,15],iS=[2,16],vS=[2,17],cS=[2,18],AS=[2,17],oS=[2,17],sS=[8,0,0,0,[0,[2,6],0],0],bS=fj,lS=Nm,BS=Ga,jS=ia,kS=Cn,pS=Ij,mS=kQ,dS="ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",_S=[15,0],hS=[0,0,0],xS=[0,2,0],yS="<>auto",wS="continue <>auto",gS="feed: outgoing transition does not exist",qS=Wy,IS=bu,DS='/*\nThe prelude. This stuff is always initially in scope.\nThis should only be type definitions for primitive types.\n*/\n\ntype Any = prim "Any";\ntype None = prim "None";\ntype Null = prim "Null";\ntype Bool = prim "Bool";\ntype Nat = prim "Nat";\ntype Nat8 = prim "Nat8";\ntype Nat16 = prim "Nat16";\ntype Nat32 = prim "Nat32";\ntype Nat64 = prim "Nat64";\ntype Int = prim "Int";\ntype Int8 = prim "Int8";\ntype Int16 = prim "Int16";\ntype Int32 = prim "Int32";\ntype Int64 = prim "Int64";\ntype Float = prim "Float";\ntype Float32 = prim "Float32";\ntype Char = prim "Char";\ntype Text = prim "Text";\ntype Blob = prim "Blob";\ntype Error = prim "Error";\ntype Principal = prim "Principal";\ntype Region = prim "Region";\n',ES=[0,0,0,0,0,0,0,0,0,0,0],NS=[0,0,0,0],TS=[11,rm,[4,0,0,0,[11,Eo,0]]],FS="repeat_until overshot",MS="unexpected end of section or function",PS=[0,0],US="https://internetcomputer.org/docs/motoko/fundamentals/actors/compatibility#explicit-migration-using-a-migration-function",GS="Compatibility",$S=Sy,KS=[0,16,"Î\0\0\0\0g(#%\0\0\0\0&'$q\0\0p\0\0\0\0\0\0b\0\0\0\0\0\0\0\0\0\0\0\0R\0\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ø\0\0\0\0\0\0\0\0\0\0\0\0\0\0²\0\0\0\0\0\0\0\0ý\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ó\0\0\0\0\0\0\0\0\0\0ü÷ù\0\0\0\0\0\0\0\0áòÿâ\0\0\0\0\0\0Ï\0\0\0\0\0\0\0\0Ð\0\0¯\0\0ÒUïúí\0\0\0\0\0\0\0\0ì\0\0\0\0ë\0\0ñ\0\0ð\0\0\0\0ä\0\0\0\0\0\0\0\0ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0º\0\0¹\0\0ôû\0\0\0\0\0\0þ\0\0\0\0\0\0\0\0\0\0Á\0\0ÀÇ\0\0Æ\0\0\0\0\0\0ê\0\0\0\0\0\0\0\0é\0\0\0\0è\0\0\0\0\"\0\0\0\0\0\0\0\0ç\0\0\0\0\0\0\0\0æ\0\0\0\0å\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0½\0\0î\0\0\0\0\0\0\0h\0\0\0\0cmi\0\0o]k\0\0\0\0^\0\0\0\0a\0\0d\0\0\0\0¤\0\0£n\0\0j\0\0\0\0 \0\0J\0\0\0\0V\0\0\0\0™\0\0˜\0Î\0\0\0\0\0\0\0\0\0Ø\0\0\0\0\0\0\0\0\0×\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0î\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ö\0Ô\0Ü\0Õ+\0\0\0\0\0\0\0\0\0\0\0\0\0Ó\0\0\0\0\0\0\0\0\0\0e\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ËÊÉ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v\0\f\0\rA\0\0\0\0\0\0\0\0?\0\0\0\0\0\0\0\0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\01\0\0\0\0\0\07\0\0\0\02\0\0\0\0\0\0\0\0-\0\0\0\0\0\05\0\0\0\0.\0\0\0\0\0\0\0\03\0\0\0\0\0\08\0\0\0\04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0“\0\0\0\0}\0\0|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\r\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0Ò\0\0\0ú\0è\0ä\0\0\0þ\0\0\0û\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ê\0É\0\0\0\0\0\0\0\0\0\0P\0»\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\0\0\0\0\0\0\0\0D\0\0\0\0\0\0\0\0G\0\0\0\0\0\0\0\0\0\0\0\0\0H\0\0\0\0\0\0\0\0E\0\0\0\0\0\09\0\0\0\0\0¹L\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ñ\0\0\0\0\0õ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0š\0™\0\0\0\0ÿ\0\0\0\0\0‹\0\0\0\0\0‰\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0÷\0\0\0\0\0\0\0\0/\0\0\0\0\0\06\0ý\0\0\0\00\0\0+\0\0\0\0\0\0\0Ð\0Þ\0!\0Ë\0´\0\0\0\0\0H\0\0\0\0\0R\0\0\0\0\0\0\0N\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0³\0j\0\"\0Ì\0i\0Ï\0\0\0²\0\0\0·\0\0\0#\0Í\0\0\0\0\0\0\0\0\0©\0$\0Î\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¤\0\0\0¦\0\0\0¥\0\0\0\0\0\0\0£\0\0\0\0\0\0\0«\0\0\0ª\0\0\0­\0\0\0¬\0\0\0¢\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¨\0\0\0Ÿ\0\0\0¡\0\0\0ž\0\0\0 \0\0\0c\0\0\0®\0\0\0œ\0\0\0§\0y\0\0\0\0\0\0\0t\0\0\x005\0\0\0v\0\0\0\0\0\0\0u\0\0\0\0\0\0\0s\0\0\0\0\0\0\0\0\0\0\0{\0\0\0\0\0\0\0z\0\0\0\0\0\0\0}\0\0\0\0\0\0\0|\0\0\x001\0\0\0r\0\0\0m\0\0\0\0\0\0\0\0\0\0\0x\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0o\0\0\0\0\0\0\0q\0\0\0n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0p\0\0\0F\0\0\0~\0\0\0l\0\0\0\0\0\0\0w\0\0\0\0\0\0\0\0\0\0\0á\0â\0\0\0ã\0æ\0\0\0*\0\0\0)\0\0\0\0\0'\0\0\0\0‹\0(\0%\0&\0å\0‡\0‚\0ƒ\0„\0…\0†\0Œ\0µ\0\0\0\0\0—\0\0\0\0\0Ž\0˜\0ˆ\0¶\0\0\0à\0\0\0\0’\0\0\0ß\0\0\0\0\0–\0¼\0\0\0\0\0Ç\0\0\0\0Ý\0\0\0\0\0\0\0ç\0\0\0\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\0\0\0\0\0\0\0\0=\0\0\0\0\0\0>\0\0\0\0\0\0\0\0;\0\0\0\0\0\0\0\0\0\0C\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ž\0\0\0ì\0\0\0í\0ð\0\0\0ï\0\0\0\0\0¾\0\0\0ë\0ö\0È\0\0€\0¸\0\0\0\0ê\0\0\0é\0ø\0’\0\0\0\0\0Æ\0\0\0\0\0\0\0ñ\0\0\0\0\0\0\0\0\0\0\0±\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0„\0\0ƒ\0\0°\0\0\0,\0\0\0\0ˆ\0\0‡<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‘\0\0\0\0\0\n\0\0\0\0\0\0”\0\t\0\0\0Ã\0h\0\0\0\0\0Ù\0\0\0\0\0\0\0Û\0\0\0\0Ä\0\0Ã\0\0\0\0\0\0\0Ú\0\0\0\0y\0ü\0Â\0\0\0\0\0\0\0\0\v\n\b\0ù\0\0\0\0\0Á\0\0\0\0\0À\0\0\0\0Ä\0\0\f\t\0\0W\0Î\0\0\0\0\0\0X\0\0\0\0€\0\0\0\0•\0Î\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¶\0\0µ\0\0\0\0*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¬\0\0«\0\0[\0\0\0\0\0\0\0\0\0\0\0\0œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Z\0\0\0\0¨\0\0§\0\0\0\0Y\0"],OS=[0,aD,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0 \b€@@\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b$\0@\0À€\0\b@\0\0\0\0\0\0H\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b$\0\0@\0À€\0\b@\0\0€\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`@\0\0\0\0\0\0€\0\0\0\0@\0 c\0\0\0\0\b\0\0\0@\0\0` \0\0\0\0\0\0\0\0\0\b\0\0\0Œ\0\0\0\0\0\0\0 \0\t\b\b1„€\0\0€\0\0\0\x000\0\00\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\b\0\0\0\0€\0 @ Æ\0\0\0\f\0\0\0\0€\0\0À@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0Œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0À\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0ÈÀ@\0\0@€€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0 \0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0 \0\b\b\b1€€\0\0€\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0H\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\b\0\0\0@\0\0` \0\0\0\0\0\0€\0@\f€@AŒ\0\0\0\b\0 \0\b\b\b1€€\0\0€ëݟÿóÿÿÿþ÷ßÿÛÿà\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0À@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0Œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0 @ Æ\0\0\0\f\0\0\0\0ˆ\bÀ@\0\0\0€€\0\0\0\0€\b\0\0\0\x000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ëݟÿóÿÿÿþ÷ÏÿÛÿà\0€\0 @ Æ@\0\0\fÿ¯vÿÏÿÿïùÿß?ÿoÿ€\0\0€\0€ƒ\b\0\0\b\x000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿ¯vÿÏÿÿÿùÿßÿoÿ€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0 \0\0€\0\b\0\b\0\0d\f` \0\0 \0ÀX÷`x|”úLræú8\0 \0\b\b\b1€€\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0 @ Æ@\0\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0€\0\0\bÀ@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0 c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\b\b\b1€€\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0@\f€@AŒ\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0€ƒ\b\0\0\b\x000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\f€@AŒ\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0@\f€@AŒ\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0€ƒ\b\0\0\b\x000\0\0\0\f\b\0 \0\0\0\0\0\0\0\0\b\0\b\0\0d\f` \0\0 \0À@\0\0\x000 \0€\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\x0020\0\0\0` \0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0@\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\b\0\0d\f` \0\0 \0À@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\00\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0ÈÀ@\0\0@€€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\b\0\0d\f` \0\0 \0À@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\b\0\0d\f` \0\0 \0À@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\00\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0ÈÀ@\0\0@€€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\b\0\0d\f` \0\0 \0À@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\x0020\0\0\0` \0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0€\0\b\0\0\0\0@0\0\0\0\0€\0€ƒ\b\0\0\b\x000\0\0\0\0\0 \0\0\0\0\0\0€\0\b\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0H\f€@AŒ$\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À»Ãd§Ògxñâæ7ÑÀ\0\0\x000 \0\0\0\0\0\0@\0\0\0\0\b$\0\0@\0À€\0\b@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$ƒ\0\t \bˆ@W\x006 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0ƒ\0\b\0\0\b\0\x002\0\0 \0‚@\0\0$\f\b\0\0„\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0d\f` \0\0 \0À@\0\x0080\0€\0\0€p \0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0@\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\b\0\0\0\0\0\x000\0\0 \0‚@\0$\f\b\0\0„\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0½Ø%“;Ǐ\b1¾†À»d£Ògzñáæ7ÐÀ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0^ì\b\t’IëDŽG˜ßC\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000îÀ€™(ô™Þ¼xDyô6\0½Ø%“;Ǐ\b1¾†À)\0\0DÐ$`0 \0Ø\0E \0\b:Œ\0 B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f{°$&J=&wc}\f\0\0\0\b \b€@@\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À»Bd£Ògxñàæ7ÐÀ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0 \0\0\0\0\x0020\0\0\0` \0\0\0@\0\0\0\0¸\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000îÀ€™(ô™Þc}\r€/vÉG¤ÎñãÀ\'Ìo¡€\0‚\0\0\0$\b\b\0\0„\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À)\0\0DÐ$`0 \0Ø÷`@\\”zLï<<Æú\0Nì\b\v’IãǀG˜ßC@€\0 \0H \0\b\0@\0\0\0\0\0\0\0\0¸\0€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0½Ø%“;Ǐ\0Ÿq¾†À»d£Ògxñàæ7Ðßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0`\v݁2Qé3¼xð\bóèl{° &J=&w>c}\r€R\0\0‰ HÀa@ €\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0þIïì>åí¦Ñl`܁<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E \0\b:Œ\0 B\0\0\b¤\0@‘€Â€\b@`€\0"@è0P\0\b\0`\0\0€\0\0\0\t\0@\0\0\0!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0þIïì>åíçÑo`ÜÁ<\0\b\0d\f`$\0\0 \0À@\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0 \0\b\b\b1€€\0\0€\0\0\0\0\0\0\0\0\0\0\0\b\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0÷`@L”zLï<<Æú\0\b \0\0@\0€€\0\b@\0`\v݁2Qé3¼xð\tóè`\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\0Š@\0 t\t\f(\0@„\x000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b¤\0@‘€Â€\b@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0"\0HF\n\0!\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\rïÀ™(ô™Þc}\r€/vÉG¤ÎñãÀ\'Ìo¡°îÀ€™(ô™Þc}\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁2Qé3¼xð\tóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/vÉG¤ÎñãÀ\'Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0€"\0p€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`€\0"@è0P\0\b\0oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E \0\b:Œ\0 B\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`€\0"@è0P\0\b\0oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý€R\0\0‰ HÀa@ ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö\0H\0$#…\0\b€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØ\0E \0\b:Œ\0 B\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`€\0"@è0P\0\b\0oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý€R\0\0‰ HÀa@ ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö\0½Ø%“;Ǐ\01¾†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0÷`@L”zLï<<Æú\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁2Qé3¼xð\bóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€R\0\0‰ HÀa@ ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö\0½Ø%“;Ǐ\01¾†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E \0\b:Œ\0 B\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`\v݁2Qé3¼xð\bóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0½Ø%“;Ǐ\01¾†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0÷`@L”zLï<<Æú\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁2Qé3¼xð\bóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0$#…\0\b€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØ\0E \0\b:Œ\0 B\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`€\0"@è0P\0\b\0oý\0ߨ=ÀÚ\0\0˜Á˜y€R\0\0‰ HÀa@ ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö\0H\0$#…\0\b€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØ\0E \0\b:Œ\0 B\0ÿ@÷öp6€\0@&0f\0ž`€\0"@è0P\0\b\0oý\0ߨ=ÀÚ\0\0˜Á˜y€R\0\0‰ HÀa@ ¿ô\0O`÷h\0c`\tæ\0H\0$#…\0\b€ÿÐ=ýƒÜ\r \0\tŒ€\'˜\0E \0\b:Œ\0 B\0ÿ@÷öp6€\0@&0f\0ž`€\0"@è0P\0\b\0oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0½Ø%“;Ǐ\01¾†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0÷`@L”zLï<<Æú\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁2Qé3¼xð\bóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0 c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0÷`@L”zLï<<Æú\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁2Qé3¼xð\bóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À)\0\0DÐ$`0 \0ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû\0^ì\b\t’IãǀG˜ßC\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0"\0HF\n\0!\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000îÀ€™(ô™ÞåíçÑo`ÜÁ<\0\0\0Á\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\b \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 €\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÄxø¹{yÀtHØ50O\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b \0\0@\0€€\0\b@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý€/vÉG¤ÎñãÀ\'Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÀ»d£Ògxñàæ7ÐÀ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b \0\0@1€€€\b`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 €\0@\t\0Æ\0!€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0A\0@„r@Œ\0Â\b\v\0^ì\b\t’IãǀO˜ßC\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 €\0\0@\t\0Æ\0!€\0\0\0\0\b \b€@@\0 \0?ô‚Oa÷/o8‹{æ\tä\0H\0\0€"\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0÷`@L”zLï<<Æú\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁2Qé3¼xð\tóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁²Qé3¼xðˆóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/vÉG¤ÎñãÂ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/þ„ùG¤Îñãà#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¿úå“;Ǐ€1¾†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b \0\0\0@0\0€€\0\b@\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0÷`@L”zLï<|Æú\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H \0\b\0\f{° &J=&w>c}\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö\0½Ø%“;Ǐ\0Ÿ1¾†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b‚\0`A\0$\b\b˜†\0@\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ˆ \0\0@1€€€\b`\0\0\0\0È0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b‚\0\0A\0$\b\b\0†\0@\0@\0\0 \f€#\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0‚\0\0\0d\b\b\0\0„\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000îÀ€™(ô™Þc}\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000îÀÀ™(ô™Þ¼xyô6\0½Ø%“;Ǐ\01¾†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\v݁2Qé3¼xð\bóè`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€/vÉG¤ÎñãÀ#Ìo¡°îÀÀ™(ô™Þ¼xyô0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0d\f` \0\0 \0À@\0\0\x000\0\0€\0\b\0\0\0\0\0\0(\0 \0\b\b\b1€€\0\0€\0\0\0\0À\0\0\0 \0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\b\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\x0020\0\0\0` \0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0€ƒ\b\0\0\b\x000\0\0\0\f\b\0 \0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\b\0\0d\f` \0\0 \0À@\0\0\x000 \0€\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\b\0 \0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0ÈÀ@\0\0@€€\0\0\0`@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\b\0\0d\f` \0\0 \0À@\0\0\x000 \0€\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0ÈÀ@\0\0@€€\0\0\0`@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\b\0\0d\f` \0\0 \0À@\0\0\x000 \0€\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'],RS=[0,8,'\0iihgfedddccccbaaaaaaaaaaaa``__^^]]]]]]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ZZZZYYXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWVVUUTTTTTSSSSSRRRQQPPPPPPPPPPOOOOOOOOOONNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMLLKKKKKKJIHHHGGFFEEEEEEDCBA@@@@@@@@@@@@@@@@@@@@@@@@@@@@??>>==<<;;;::987666544433322110000///////..----,,++++***))))((((\'\'\'&&&&%%%$$$####""""!!! \r\r\r\f\f\f\f\f\f\f\f\f\f\f\f\f\v\v\v\v\v\v\n\t\t\b\b\b\b\b\b\b'],QS=[0,[0,16,'\0\t\0\f\0¼\0\0\0\0\0\0\0\0\0\t"\0\0\0\0\0\0\0\0\0q\0\0b0\0\0\0\0\bVxXÆ|\t&\0\0\0\0\0\0Z\b&\t\tj\0\0,¤\b8\0\0 \0Ò\0\0\0\0.\0\0\0\0Ì\0Ò\0\0\0\0V\0\0þ\0\0\0\0\0\0p\bê\0\0Ð\b¨\0\08\0n\0\0\0\0ÄÒ\t\0\06\0\0\0\0b\0²!:\t”\0\0\0\0\0\0\0(Ô\0\0ê\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b\0\0È\0\0¨\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00\0\0¾\0\0\0\0R\0\0\0\0\0\0\0\0\0\0\0\0ž\0\0\0\0Ä\0\0V\0\0\0\0X\0\0Èz\0\0",\0\0œ\0\0\0\0\\\0\0 \0\0ì\0\0\0\0ô\0\0\0\0¬\0\0®\0\0\0\0\0\0\0\0\0\0\0\0\0\0ä\0\0\0\0\0\0\0\0´\0\0Ð\0\0\0\0Þ\0\0\0\0\0\0\0\0þ\0\0\0\0ê\0\0\0\0\0\0v\0\0\0\0\b¸\0\0\0\0È\0\0 6\0\0\0\04\0\0ê\0\0\0\0ª\0\0\0\0\n\0\0\0\06\0\0\0\0’\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!Â\0\0\0\0D\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0š\0\0º\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\0\0\0F\0\0\t&\0\0\0\0\0\0\0\0\0\0\0\0\0\0è\0\0Ú\0\0\0\0ö²\fÞ Ð ¾\0\0\0\0\b"\0\0\0\0\0Ø\0\0\b¤\0\0\0\0\0\0\0\0ü\0\0\0\0Þ\0\0²\0\0~!! ⠚\0\0!8!F\0Øz>\0\0\bâ\0\0\r>"\b\0\0\0\0\0\0\0\0\0\0\0\0ê\0R,!À|\0\0\bþ\0\0ˆ\b–\0ˆ\0\0\0\0\0\0\0\0ŠX\bT\0\0ä\0\0\0\0<\0\0(\b,\0\0*\0\0\0\0z\0\0\0\0\0\0ÄBN\0\0\0\0\0\0\bd\0\0\0\0\0\0\0Ò\0Ü\0\0\0\0\0\0þfFÔ\f\0\0\0\0\0\0\0\0\0\0R>œ\0\0\0\06v\f\0\0¨\0\rž\0\0\0\0¦\0fæ\0\0¶ð\0\0$t\0\0žè’œ\0\0ª:ò\0\0”\0\0ˆ²FV\0\0\0p\0\0šà\0\0\\â\0\0\0OºØTþ!ö\0\0˜\0\0\0\0\0\0Æ\0\0â\0\0¢”`\tt\0\0N\0\0º\bPŽ\0\0\r€ h\0\0!Ê\0\0Ê Œ ZÀ\0\0\0\0\bv\0\b\f†\b\0\0\0\0\0\0\0\0\0\0\v†d\0‚\0\0\0\0Ö\0\0\0\0\0\0 6\0\0\bÈ\0\0\x000\0ÀØ\n\b\n\0ê\rþ\0\0¼\0\0\n6\bÈ\0\0\0\0°T$\br\0\0\0\0\0\0®\0\0\0\0\0\0ü\b8\0’\0\0\0\0N\bò\0\0\0\00\bB˜\0\0"\bFº\0\0\0\0Ü\b^°\0\0\0\0T\bdÀ\0\0ú\bl¸\0\0\0\0\0\0\0\0\0\bz\0\0\bp‚.!Ò\0\0\0\0",\0\0!x\0\0\0\0!Ð\0\0\t¦Ö\b‚\b†\0\0\0\0\0\0\0ú\0\0X\bà\0\0\0\0˜\0\0R\0¬¨V\0!j\0\0ì\bŒ\bæ\bæ\0\0\\\b¤d\0\0\0\0\t\t6\0\0\0\0\0\0\böB„\0\0\0\0\0\0\0\0\0\0\0\0þ\0\0\0\0Ú\0\0F\0\0\0\0¶\0\0B\0\0f\0\0\rÎ\0X\0\0\0\0\0\0\0\0\0\0\0\0Ú\0\0\0¬\0\0À\0\0\0\0\0\0®\0\0\fv\0\0\0\0\0\0ü\0\0 \0\0\0®\0\0R\0\0R\0\0Ž\0\0ö\0\0\tF\0\0\fF\0\0\0\0B\0\0®\0\0B\0\0\rn\0\0r\0\0¾\0\0\vV\0\0²\0\0"\0\0Ž\0\0h\0\0Œ\0\0j\0\0z\0\0°\0\0"\0\0ü\0\0ú\0\0”\0\0î\0\02\0\0î\0\0\nö\0\0¢\0\0¢\0\0X\0\0R\0\0\tv\0\0\væ\0\0\0\0F\0\0B\0\0\0\0Ò\0\0@\0\0â\0\0²\0\0\f\0\0Ö\0\0\0\0‚\0\0j\0\0~\0\0ú\0\0^\0\0Ž\0\0.\0\04\0\0\nf\0\0\v¶\0\0€\0\0´\0\0’\0\0"\0\0ì\0\0Ø\0\0\0\0Ò\0\0\tÖ\0\0b\0\0ú\0\0 \0\0¢\0\0D\0\0ˆ\0\0Ì\0\0N\0\0ò\0\0ì\0\0\n\0\0r\0\0Š\0\0Â\0\0Ú\0\0‚\0\0\0\0\0\0\0\0\0\0\0\0\0\0¬\0\0\0\0\0\0\bÖ\0\0\0\0\0\0°\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0È\0\0\0\0\0\0\0\0®\0\0\0\0\0\0Ò\0\0\0\0\0\0\0\0\0\0\bö\0\0\0\0\0\0\0\0Z\b \0\0\n–\0\0\0\0Ö\bæÖ\0\0\0\0Þ\bà:\0\0\0\0Ò\bèò\0\0\n\b|Ž\0\0\0\0&\bt\0\0¸\0\0^\bnÜ\0\0\0\0Î\bðÄ\0\0\0\0°\0\00\0\0À\0\0\bž„\0\0\0\0Þ\0\0\b \0\0\bv\0\0\0\0\0\0\0\0\\\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ø\0\0\bv\0\0\0\0\0\0\0\0p\0\0 ((\0\0\b^\0W\0\00\0\0\nÆ\0\0*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v&\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x008\0\00\0\0\0\0¦î>\0\0\0\0\0\0èZ\0\0\0lü\0\0\0\0,\0\0\0\0\0\0\0\0\0\0\0\0\b \0\0\0\0\0\0\0\0\0\0\0\02\0\0\0\0\bv\fÐ\0\0\0\0\bv¸\0\0\0\0\0\0\0\0N\0\0 (\0\0\0\0\0\0\0\0\0\0\0\0¦Ô\0\0\0\0\b&\0\0\0\0ª\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"®â\0\0\0\0\0\0\fª\0\0\0\0T\0\0\0\0 ä\0\0\0\0~\0\0\0\0˜\0\0Â\0\0\0\00\0\0¬\0\0\0\0ä\0\0\0\0\0\0\0\0ž\0\0\0\0\0\0\0\0\0\0Ž\0\0\0\0\0\0\0N\0\0\0\0\0\0\0\0\0\0\0\0l\0\0\0ì\0\0\0\0\0\0\0:\0\0\0\0\0\0L\0\0\0\0Z\0\0\0\0\0\0\0\0D\0\0\0\0B\0\0\0\0\0\0\0\0\0%\0\0\0\0\0\0\0\0º\0\0\0f\0\0^\0\0\0\0\0\0'],[0,16,'eWV0\0H\0S1\0U\0Q\0V\0W\0\\|\0c\0Í\0t23ÞVÄAÕWB0€e1X^Ö׉ß\0fc3£\0ú23Þ\0Y~\0ñWÌ€W=0…†1x\0á\0Üe\0âÝ\0ócä£\0Þ23Þ~ž\0g\0û\0ý€ƒ\0Þ=k…†W\0Ü071\0H\0O\0h\0Q\0V\0Wc\0Ü£ò23ÞW~\0Þ\0 1ƒ€@A=\0“…†X\0ÞY\\â\0«]W^\0˜_s1\0Ya\0Þotuv\0ÜX\0öY\\wx]W^d_ª1^a@etuv\0ÞX1Y\\wx]$^_|g\\a\0Þ]tuv\0é]`V‚wx0æd1VWZ0ox1;\0ëÍ…23Þc\0ÜÍ\0Ý23ÞW~W1¥€\0ð\0Ü=\0â…†X\0ÞY\\z}]W^\0Þ_˜1\0Þa\0ÞtuvâXY\\wx]W^W_ð1taWtuvoX\x003Y\\wx]W^\0Þ_`1\0‰a|\0ÞtuvyX†Y\\wx]W^W_^1ua„WtuvoX1Y\\wx]W^\0Þ_¿1Sa\0\0Þtuv5XèY\\wx]W^b_¬1ˆaÆTtuvVXBY\\wx]ì^[_öAFaB3tuv‡]`-wx03B1\0„WW0@ü1©ÍG23ÞcžÍJ23ÞW~\0Þ\0Þ1\x003€’3=\0ý…†XBY\\\0°^]W^W__1Da]`tuvoX\x003Y\\wx]W^\0Þ_z1JaiWtuvàXŠY\\wx]W^W_Q1”a\0ï\0ÞtuvoXxY\\wx]W^\0Þ_R1\0ëasWtuvoX‹Y\\wx]W^W_J1paâ\0ÞtuvXXY\\wx]W^\0Þ_S1 aéWtuv8X1Y\\wx]W^W_G1Ëa*\0Þtuv•XxY\\wx]W^\0Þ_K1‡aTtuvX\x003Y\\wx]W^W_D1<aŽWtuvoX\0“Y\\wx]W^\0Þ_N1\0•a\0Þtuv¯XPY\\wx]?^ž_½AçaBtuv@гwx03\0£1\0ÿWW0@u1»Í\0Þ23Þc\0¨Í23ÞW~\0Þ\0Þ1±€}W=\0ý…†X\x003Y\\\0ý]W^W_1\x006a±\0ÞtuvLXY\\wx]W^\0Þ_O1ža†Wtuv\0ÞX\0“Y\\wx]W^U_ø1\0—až\0ÞtuvVXŒY\\wx]W^\0Þ_E1“a@–tuv\0ÞX\x003Y\\wx]W^W_²1\x005a\0ÞWtuvIX\x003Y\\wx]W^\0Þ_#1Sa‘\0Þtuv\0ÞXY\\wx]W^W_1RamWtuv–XoY\\wx]W^\0Þ_¼1\0Þa\0Þtuv\0£X\nY\\wx]W^ë_É1\0£a\0¥tuv\0£X\x003Y\\wx]W^\0§_I1\0ya\0ªtuv—XoY\\wx]e^ _÷AoaBµtuvù\0ío,wx031nW¡0o\f1°CÍ\0ë23ÞcoÍ23ÞW~š1“€6ž=ñ…†XoY\\Žq]W^±_H1±aotuv›XY\\wx]W^œ_Ò1\0šaˆotuvŸX\x003Y\\wx]W^z_\\1\0jažotuv¢X\x003Y\\wx]W^R_1ajotuvoX\x003Y\\wx]W^ƒ_F1\0Àa£¦tuv¢XY\\wx]W^_b1a¾btuvYXÓY\\wx]W^Ò_ó1ôa\0ŸPtuvêX\0&Y\\wx]W^ž_ 1éaGòtuvùXËY\\wx]W^\0:_µ1¨a?tuv\vXY\\wx];^\0×_Tœa\0=tuv&\0º‡wx0‚817W>0tL1ãMÍN23ÞcnÍQ23ÞW~U61\0¹€\0F\0»=…†X\0Y\\\0à\0ø]\0N^\0\r_îy,aV~tuv’W\0\00wx1\0á\0Ü\0\0\0â\0\0\0ãºc\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0Þ1–\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Ò\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01L\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01%\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01`\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01û\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01p\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0WÚ0€\0\01Ð\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01È\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0\0\0\0\0ÕW\0\00€\0\01\0\0\0\0Ö×\0\0Ø\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01¨\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01­\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01ý\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Ô\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01å\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€21˜\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0\0\0\nW€0(„1…†\0\0\0\0\0\0\0\0\0\0c\0\0Í\0\023Þ\0\00\0\0Õ1\0\0W€0\0\0\0\01Ö×\f023Þc\0\0Í\0\023Þ\0\0\0\0\0\0ÕW\0\00€\0\01\0\0\0\0Ö×\0\0Ø\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01³\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0WÓ0€\0\01û\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01¢\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0\0\0\0\0ÕW\0\00€\0\01\0\0\0\0Ö×\0\0Ø\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Õ\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01c\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01÷\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01ó\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01´\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0WÜ0€\0\01¦\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Æ\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0\0\0\0\0ÕW\0\00€\0\01\0\0\0\0Ö×\0\0Ø\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01¶\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€.1ï\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þš~\0\0\0\01W€0\0\0ž1…†\0\0\0\0›\\\0\0c]Í\0\023Þ\0\0\0\0\0\0ÕW\0\00€\0\01\0\0\0\0Ö×x0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01š\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\010\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01\'\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Ê\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Þ\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01\v\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Ä\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01+\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01!\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01¬\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Ð\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01ë\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01ª\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01á\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01!\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01Ù\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01¤\0\0…†\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0~\0\0W\0\00€\0\01ÌU…†\0\0\0\0\0\0cZÍ\0\023Þ\0\0~\0\0\0\0\0\0\0\0€\0\0\0\0Ý\0\0…†W\0\00\0\0\0\01\0\0W\0\00·\0\01c\0\0Í\0\023ÞcWÍ23Þ€W\0\0\0\00†€1¹W\0\00†\0\01c\0\0Í\0\023Þc\0\0Í\0\023ÞŽW\0\0\0\0YW€0\0á\0Ü1\0â†\0ãí\0\0\0\0\0\0c\0\0Í\0\023Þ\0\0W\0\0\0\0\0ÞW€0\0\0\0\01\0\0†\0\00\0\0\0\01c\0\0Í\0\023ÞÝWÍ23Þ€\0\0\0\0\0\0\0H\0S†\0U\0Q\0V\0W\0\\\0Î\0\0\0\0\0H\0S\0Ð\0U\0Q\0V\0W\0\\\0Î\0Ò\0\0\0H\0S\0Ð\0U\0Q\0V\0W\0\\\0\0\0Ñ\0\0\0H\0S\0]\0U\0Q\0V\0W\0n\0Y\0\0\0\0\0H\0S\0c\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0]\0U\0Q\0V\0W\0Ä\0Y\0\0\0\0\0H\0S\0d\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0]\0U\0Q\0V\0W\0´\0Y\0\0\0\0\0H\0SÕ\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0¸\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0Sw\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0€\0U\0Q\0V\0W\0\\\0Yý\0\0\0á\0Ü\0r\0âÿ\0ãÎ\0\0\0Y\0\0\0H\0S\0\0\0U\0Q\0V\0W\0\\\0\0\0Y\0\0\0\0\0Þ?\0\0\0\00\0\0\0\01\0Y\0H\0S\0\0\0U\0Q\0V\0W\0\\\b\0\023ÞA0\0\0\0\01\0\0ž\0Y\0H\0S\0\0\0U\0Q\0V\0W\0\\23Ù\0H\0S\0\0U\0Q\0V\0W\0\\\0\0\0Y\0\0\0H\0S_\0U\0Q\0V\0W\0\\\0\0\0\0\0\0\0H\0SR\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0›\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0St\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0So\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0~\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0SÑ\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0ˆ\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0a\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0’\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0Ê\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0Í\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0Sl\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0_\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0Ö\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0SU\0U\0Q\0V\0W\0\\\0Y\0\0\0\0\0H\0S\0U\0Q\0V\0W\0\\\0Y0\0\0\0\01\0ç\0\0\0\0\0\0\0\0\0\0\0Yc\0\0Í\0\023Þ\0\0\0\00\0Y\0\01\0\0\0\00\0\01c\0YÍ\0\023Þc\0\0Í\0\023Þ¶0\0\0\0\01\0\00\0\01\0\0\0\0c\0\0Í\0\023Þ\f\0\023Þ\0H\0SŒ\0U\0Q\0V\0W\0}0\0\0\0\01\0\0\0\0\0\00\0\0\0\01c\0õÍ\0\023Þc\0\0Í\0\023Þ\0á\0Ü\0\0\0â\0\0\0ó\0Y\0H\0S\0\0\0U\0Q\0V\0W\0Ç0\0\0\0\01\0\0\0\0\0Þ0\0\0\0\01c\0\0Í\0\023Þc\0\0Í\0\023Þß\0á\0Ü\0\0\0â\0\0\0å\0Y\0H\0S\0\0\0U\0Q\0V\0W\0¯0\0\0\0\01\0\0\0\0\0Þ0\0\0\0\01c\0\0Í\0\023Þc\0\0Í\0\023ÞÀ\0\0\0\0\0\0\0\0\0\0\0\0\0Y\0H\0S\0\0\0U\0Q\0V\0W\0q\0H\0S\0\0\0U\0Q\0V\0W\0i\0\00\0H\0S1\0U\0Q\0V\0W\0·\0\0\0\0c\0\0Í\0\023Þ0\0\0\0\01\0H\0­\0Y¾\0Q\0V\0Wc\0\0Í\0Y23Þ0\0\0\0\01\0H\0{\0Yj\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0n\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0p\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0H\0l\0\0)\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0‚\0\0\0\0\0\0c\0\0Í\0\023Þ0!\0\01\0\00\0\0\r1\0Y\0\0c\0\0Í\0\023Þ\0\0\0\023"\0H\0S”\0U\0Q\0V\0W\0x0\0\0\0\01\0\0\0\0\0\00\0\0\0\01c\0\0Í\0\023Þc\0\0Í\0\023Þù0\0\0\0\01\0H\0² \0Y\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0°\0\0\0\0\0\0c\0\0Í\0\023Þ0\0\0\0\01\0\00\0\0²1\0Y\0\0c\0\0Í\0\023ÞÀ\0\023Þ\0H\0S¸\0U\0Q\0V\0WÎ0\0\0\0\01\0\0\0\0\0\00\0\0\0\01c\0\0Í\0\023Þc\0\0Í\0\023ÞÂ0\0\0\0\01\0H\0µ¼\0Y\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0H\0½\0\0º\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0×\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0´\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0H\0Â\0\0®\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0H\0Õ\0\0ã\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0ç\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0ñ\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0H\0o\0\0Û\0Q\0V\0Wc\0\0Í\0\023Þ\0\0\0\0\0\0\0\0\0\0\0H\0Sœ\0U\0Q\0V\0W\0X0\0\0\0\01\0\0\0\0\0\00\0\0\0\01c\0\0Í\0Y23Þc\0\0Í\0\023Þÿ0\0\0\0\01\0H\0I’\0Y\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0H\0Å\0\0\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0\t\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0ˆ\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0H\0Ô\0\0\0Q\0V\0Wc\0\0Í\0\023Þ\0\0\0\0\0\0\0\0\0\0\0H\0S\0U\0Q\0V\0W#0\0\0\0\01\0\0\0\0\0\00\0\0\0\01c\0\0Í\0Y23Þc\0\0Í\0\023Þ/0\0\0\0\01\0H\0vé\0Y\0Q\0V\0Wc\0\0Í\0\023Þ0\0\0\0\01\0H\0\0\0\0l\0Q\0V\0‹c\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0f\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0d\0\0\0Y\0\0c\0\0Í\0\023Þ0\0\0\0\01\0H\0\0\0\0\0Q\0V\0c\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\0h\0\0\0\0\0\0c\0\0Í\0\023Þ0A\0\01\0\00\0\0í1\0Y\0\0c\0\0Í\0\023Þ\0\0\0\023"\0H\0Sõ\0U\0Q\0V\0W\0¿0\0\0\0\01\0\0\0\0\0\00\0\0\0\01c\0\0Í\0\023Þc\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0-\0Y\0\0\0\0\0\0c\0\0Í\0\023Þš\0\00\0\0\0\01\0\0Š\0\00\0\0\0\01\0\0\0\0Ê\0\023Þá\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\00\0\0\0\01Ì\0\0Í\0\023Þ±\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\00\0\0\0\01¯\0\0Í\0\023Þ\0\0Í\0\023Þ0\0H\0O1\0P\0Q\0V\0W\0\00\0\0&1Í\0\023Þ0\0\0\'1Í\0\023Þ\0\0\0\0\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0Y0\0\0\0\01\0\0Í\0\023Þ\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\00\0\0\0\01\0\0Í\0\023Þ\0\0Í\0\023Þ0\0\0\0\01\0\0\0\0\0\00\0\0\0\01I\0\0Í\0\023Þ/\0\0Í\0\023Þ\0á\0Ü\0\0\0â\0\0\0ã\0è\0á\0Ü\0\0\0â\0H\0ã2\0\0\0Q\0V\0†0\0\0\0\01\0Þ0\0\0\0\010\0\0\0Þ1\0\0\0\0239\0\0\0\023Æ\0\023)0\0\0\0\01\0\00\0\0\0Y10\0\0\0\01\0\0\0\023­\0\0\0\023"\0\02340\0\0\0\01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\023-']],CS=[0,16,"\0\0\0\0\0\0\0\0\0\0\b\0\t\0\n\0\v\0\f\0\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0!\0\"\0#\0$\0%\0&\0'\0(\0)\0*\0+\0,\0-\0.\0/\x000\x001\x002\x003\x004\x005\x006\x007\x008\x009\0:\0;\0<\0=\0>\0?\0@\0A\0B\0C\0D\0E\0F\0G\0H\0I\0J\0K\0L\0M\0N\0O\0P\0Q\0R\0S\0T\0U\0V\0W\0X\0Y\0Z\0[\0\\\0]\0^\0_\0`\0a\0b\0c\0d\0e\0f\0g\0h\0i\0j\0k\0l\0m\0n\0o\0p\0q\0r\0s\0t\0u\0v\0w\0x\0y\0z\0{\0|\0}\0~\0\0€\0\0‚\0ƒ\0„\0…\0†\0‡\0ˆ\0‰\0Š\0‹\0Œ\0\0Ž\0\0\0‘\0’\0“\0”\0•\0–\0—\0˜\0™\0š\0›\0œ\0\0ž\0Ÿ\0 \0¡\0¢\0£\0¤\0¥\0¦\0§\0¨\0©\0ª\0«\0¬\0­\0®\0¯\0°\0±\0²\0³\0´\0µ\0¶\0·\0¸\0¹\0º\0»\0¼\0½\0¾\0¿\0À\0Á\0Â\0Ã\0Ä\0Å\0Æ\0Ç\0È\0É\0Ê\0Ë\0Ì\0Í\0Î\0Ï\0Ð\0Ñ\0Ò\0Ó\0Ô\0Õ\0Ö\0×\0Ø\0Ù\0Ú\0Û\0Ü\0Ý\0Þ\0ß\0à\0á\0â\0ã\0ä\0å\0æ\0ç\0è\0é\0ê\0ë\0ì\0í\0î\0ï\0ð\0ñ\0ò\0ó\0ô\0õ\0ö\0÷\0ø\0ù\0ú\0û\0ü\0ý\0þ\0ÿ\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abchipqxyrstuvwœžŸ ¡¢£¤¥¦§¨©ª«de¬­®¯fgjk|}–—‚ƒ„…’“°±²³´µlm¶·no¸¹º»¼½¾¿ÀÁÂÃz{~€Š‹š›†‡ˆ‰ŒŽ‘˜™ÄÅÆÇÈÉÊËÌÍ”•ÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†"],HS=[0,"\0\0uÿ\0\0\0\0Á\0Avÿwÿxÿ¶\0¡\0ì\0À\vV¡ì7‚Íc®ùDÚ%p»QÌÃ\b¿Š\tÂ\t¹\0º\0»\0½\0¾\0ÏÕÖØ¿\0Á\0Â\0ôÿù\vÞøÿùÿúÿûÿüÿýÿþÿÿÿÙÿÚÿÞàöÿÏÿãÍÿ\tÌÿ\t\bÜÿÝÿ\rÛÿÎÿØÿËÿÆÿ×ÿ)ÊÿÖÿ*ÛÓÿ+ÈÿÉÿ}ÿ½\tÕÿ>\nN\bn\n®\nÌ\bÎ\n\vN\vŽ\vÎ\v\fN\fŽ\fÎ\f\rN\rÔÿÒÿÑÿçÿÐÿÇÿB\tÞ\r)\r\bB \tƒ©Ïcª\tÄ'Lœðç2}1‡BŸ•fÅEE…ÅE…ÅE…ÅðU¯Àÿl’©Ï\f½ÿ¾ÿ¿ÿstõ–%e¥¥å%e¥å%e¥å%¼ÿåØï¶ód¯úEÛ&q¼X¸ÿ£î9„Ï ´ÿµÿk ¶ !L!—!â!-\"x\"Ã\"#Y#¤#ï#:$…$Ð$%f%±%ü%G&’&Ý&('s'¾'\t(T(Ÿ(ê(5)€)Ë)*a*¬*÷*B++Ø+#,n,¹,-O-š-å-0.{.Æ./\\/§/ò/=0ˆ0Ó01i1´1ÿ1J2•2à2+3v3Á3\f4W4¢4í485ƒ5Î56d6¯6ú6E77Û7&8q8¼89R99è93:~:É:;_;ª;õ;@<‹<ÖM>˜>ã>.?y?Ä?@Z@¥@ð@;A†AÑABgB²BýBHC“CÞC)DtD¿D\nEUE EëE6FFÌFGbG­GøGCHŽHÙH$IoIºIJPJ›JæJ1K|KÇKL]L¨LóL>M‰MÔMNjNµN\0OKO–OáO,PwPÂP\rQXQ£QîQ9R„RÏRSeS°SûSFT‘TÜT'UrU½U\bVSVžVéV4WWÊWX`X«XöXAYŒY×Y\"ZmZ¸Z[N[™[ä[/\\z\\Å\\][]¦]ñ]<^‡^zÿ‚^Â^_B_‚_Â_`B`‚`8aúÿè`Ó©aéa)b)bibûÿüÿýÿgcÿÿþÿ©béb)cic©céc)did©d","ÿÿÿÿŠ\0Š\0Š\0Š\0Š\0Š\0Š\0ÿÿÿÿÿÿ†\0„\0ƒ\0‰\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‰\0‰\0<\0<\0:\0!\0\0\0\0\0\0\0\0\0\0\r\0\f\0ÿÿ\n\0\0\b\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿÿÿÿ\0ÿÿ\0ÿÿ;\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿÿÿÿÿÿ\0ÿÿÿÿ\0\0ÿÿ \0ÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ>\0ÿÿÿÿ<\0ÿÿ>\0ÿÿ>\0ÿÿ>\0ÿÿÿÿ>\0=\0=\0ÿÿ=\0=\0>\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿC\0C\0C\0ÿÿÿÿÿÿ\0\0\0\0\0\0D\0E\0\0\0\0F\0ÿÿ\0\0H\0\0\0I\0ÿÿÿÿ\0\0\0L\0\0\0\0\0\0M\0\0N\0\0\0O\0\0\0\0\0\0\0\0P\0\0\0\0\0Q\0T\0\0\0\0R\0\0\0\0\0S\0\0\0U\0\0\0\0\0\0\0\0\0V\0\0\0\0\0W\0\0\0\0\0\0X\0Y\0\0\0\0\0\0\0\0\0Z\0\0[\0\0^\0\0\\\0\0\0\0]\0\0\0\0\0a\0\0\0\0\0\0\0_\0\0`\0\0\0\0\0b\0\0\0\0c\0\0\0d\0\0e\0g\0\0\0\0\0f\0\0\0\0\0\0h\0i\0\0j\0\0\0\0\0\0\0\0\0\0\0k\0\0~\0\0\0\0l\0\0\0\0m\0\0\0\0n\0\0\0\0\0o\0\0\0\0\0\0\0\0p\0\0\0\0q\0\0\0\0r\0\0\0\0s\0\0\0\0\0\0u\0\0\0\0\0\0\0t\0x\0\0\0v\0\0\0\0\0\0\0w\0\0y\0\0z\0\0\0\0\0{\0\0\0|\0\0}\0€\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0ÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0ÿÿ\0\0ÿÿ\0\0ÿÿÿÿ\0\0\0\0ÿÿ\0\0\0\0\0\0ÿÿ\0\0\0\0\0\0ÿÿ\0\0\0\0ÿÿÿÿ\0\0ÿÿ\0\0\0\0\0\0`\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0¬\0¾\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿ¬\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\0\v\0\t\0\t\0\f\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\r\x003\0#\0(\0\t\0,\0+\0$\0?\0>\0.\x000\x008\0/\x005\0-\0&\0%\0%\0%\0%\0%\0%\0%\0%\0%\x007\x009\x006\x002\x001\x004\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0=\0\t\0<\0)\0'\0\t\0\"\0!\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0*\0:\0\t\0\t\0································································¯\r\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\0v\0t\0u\0s\0r\0O\0N\0M\0L\0\n\0µµµµµµµµµµµµµµµµ³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0®®®®®®®®®®®®®®®®®®®®®®®®®®@\0H\0E\0F\0®G\0®®®®®®®®®®®®®®®®®®®®®®®®®®\0\0\0\0\0\0\0\0\0\0D\0I\0C\0A\0B\0P\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0W\0^\0]\0£\0\0¦\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Â\0ÈÇ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¦\0\0¥¤\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¢\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Š\0\0\0\0\0\0‰\0\0‹\0\0\0\0\0\0ˆ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\0\0\0\0\0\0\0\0\0\0\0v\0\0u\0t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0o\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0k\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0X\0\0\0\0\0\0\0\0\0\0\0\0W\0\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0O\0\0\0N\0\0\0\0\0\0\0\0\0M\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0G\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0C\0\0\0\0\0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\0\0\0\0\x009\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&%\0\0\0\0\0#$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0÷\0\0\0\0\0\0\0\0\0\0ö\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0à\0\0\0\0\0\0\0\0\0\0\0ß\0\0\0Þ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ú\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0È\0\0\0\0\0\0\0\0\0\0\0Ç\0\0\0\0\0Æ\0\0\0\0Å\0\0\0\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0£\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0\0\0y\0«\0%\0%\0%\0%\0%\0%\0%\0%\0%\0%\0_\0Y\0V\0\0\0R\0`\0Z\0\\\0\0\0\0\0\0\0x\0\0\0\0\0\0\0\0\0\0\0\0\0¤\0a\0\0\0\0\0\0\0\0\0\0\0X\0U\0T\0Q\0\0\0\0\0[\0\0\0\0\0\0\0\0\0\0\0{\0\0\0\0\0\0\0\0\0\0\0x\0\0\0\0\0\0\0­\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0%\0%\0%\0%\0%\0%\0%\0%\0%\0%\0\0\0\0\0\0\0\0\0©\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0³\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0²\0±\0±\0°\0®\0®\0®\0¯\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿª\0Ž\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0\0\0\0\0\0\0\0\0\0\0Ž\0Ž\0\0\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0\0\0ˆ\0\0\0ˆ\0\0\0K\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0•\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0”\0“\0“\0’\0\0\0\0‘\0y\0\0\0%\0%\0%\0%\0%\0%\0%\0%\0%\0%\0\0\0\0\0\0\0ÿÿ\0\0\0\0\0\0ƒ\0\0\0ƒ\0\0\0x\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0\0\0\0\0\0\0\0\0\0\0{\0\0\0\0\0\0\0\0\0\0\0x\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿh\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0g\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0f\0e\0e\0d\0b\0b\0b\0c\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿp\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0†\0†\0†\0†\0‡\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0\0\0\0\0\0\0\0\0†\0\0\0†\0†\0†\0†\0‡\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0|\0|\0|\0|\0|\0|\0~\0\0\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0|\0|\0|\0|\0|\0|\0\0\0|\0|\0|\0|\0|\0|\0\0\0\0\0}\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0\0\0\0\0\0\0\0\0\0\0\0|\0|\0|\0|\0|\0|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0\0\0\0\0\0\0\0\0\0\0„\0\0\0€\0€\0€\0€\0€\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0\0\0\0\0\0\0\0\0\0\0|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0\0\0€\0€\0€\0€\0€\0€\0|\0|\0|\0|\0|\0|\0\0\0\0\0\0\0}\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0\0\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0\0\0|\0|\0|\0|\0|\0|\0€\0€\0€\0€\0€\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0\0\0\0\0\0\0\0\0\0\0\0€\0€\0€\0€\0€\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0€\0€\0€\0€\0€\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0\0\0x\0\0\0\0\0\0\0\0\0€\0€\0€\0€\0€\0€\0\0\0\0\0\0\0\0\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0\0\0\0\0\0\0\0\0\0\0\0x\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0\0\0\0\0\0\0\0\0†\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0ˆ\0\0\0ˆ\0\0\0\0\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0\0\0\0\0\0\0\0\0†\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0\0\0\0\0\0\0\0\0Š\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0\0\0\0\0\0\0\0\0†\0\0\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0Ž\0\0\0\0\0\0\0\0\0Ž\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0\0\0\0\0\0\0Œ\0\0\0\0\0\0\0¡\0¡\0¡\0¡\0¡\0¡\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0\0\0\0\0\0\0\0\0\0\0Ž\0\0\0\0\0\0\0\0\0¡\0¡\0¡\0¡\0¡\0¡\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ž\0\0\0\0\0\0\0Ž\0\0\0Ž\0 \0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0Ž\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¢\0¢\0¢\0¢\0¢\0¢\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¥\0¥\0¥\0¥\0¥\0¥\0\0\0\0\0\0\0¢\0¢\0¢\0¢\0¢\0¢\0\0\0\0\0\0\0\0\0\0\0\0\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0¢\0\0\0¥\0¥\0¥\0¥\0¥\0¥\0¢\0¢\0¢\0¢\0¢\0¢\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0§\0§\0§\0§\0§\0§\0\0\0\0\0\0\0¢\0¢\0¢\0¢\0¢\0¢\0\0\0\0\0\0\0\0\0\0\0\0\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0\0\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¨\0\0\0§\0§\0§\0§\0§\0§\0\0\0\0\0\0\0\0\0\0\0\0\0§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0\0\0\0\0\0\0\0\0\0\0\0\0Ž\0§\0§\0§\0§\0§\0§\0ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0§\0§\0§\0§\0§\0§\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0\0\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0\0\0\0\0«\0À\0\0\0\0\0\0\0\0\0À\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Á\0Á\0Á\0Á\0Á\0Á\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0­\0À\0\0\0\0\0\0\0\0\0Á\0Á\0Á\0Á\0Á\0Á\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À\0\0\0\0\0\0\0À\0\0\0À\0¿\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0©\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0³\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0²\0±\0±\0°\0®\0®\0®\0¯\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿª\0ÿÿ¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0\0\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0©\0\0\0\0\0«\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¬\0¬\0¬\0¬\0¬\0¬\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0¬\0¬\0¬\0¬\0¬\0¬\0\0\0\0\0­\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0©\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0³\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0²\0±\0±\0°\0®\0®\0®\0¯\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿª\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ä\0\0\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0¬\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Õ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Í\0\0\0\0\0\0Î\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ì\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0É\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ê\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ë\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ò\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ï\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ð\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ñ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ó\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ô\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ö\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0×\0\0\0\0\0\0\0Ù\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ø\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Û\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ü\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ý\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ê\0é\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0æ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0â\0á\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ä\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0å\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ç\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0è\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ñ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ë\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ì\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0í\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0î\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ï\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ð\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ò\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ó\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ô\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0õ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ø\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ù\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ú\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0û\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ü\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ý\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0þ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0/\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x002\0\x001\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x007\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x003\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x004\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x005\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x006\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x008\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0>\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0=\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0A\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0D\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0K\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0L\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0T\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0[\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0]\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b\0\0\0\0\0\0\0\0c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0d\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0e\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0h\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0j\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0l\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0p\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0„\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0x\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0{\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‚\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ƒ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0…\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0†\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‡\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0™\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0–\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ž\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0•\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‘\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0’\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0“\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0”\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0—\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0˜\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0š\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0›\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ž\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¡\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0£\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¬\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0©\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0§\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¨\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ª\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0«\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0­\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0®®®®®®®®®®\0\0\0\0\0\0\0\0\0\0\0\0\0\0®®®®®®®®®®®®®®®®®®®®®®®®®®\0\0\0\0\0\0\0\0®\0\0®®®®®®®®®®®®®®®®®®®®®®®®®®\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0\t\0Ä\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Æ\0\0\0\0\0\0\0\0ÅÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÀ¾¾¾¾¾¾¾¾¾¾¾¾¿¾¾½»»»¼ºººººººººººÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(\0)\0*\0*\0+\0,\x001\x001\x002\x003\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x007\0B\0C\0C\0\0F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x006\0H\x006\x006\x006\0N\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0V\0Y\0\\\0Ž\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¿\0ÅÆÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0ÿÿÿÿÿÿÿÿ \0ÿÿ \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0ÿÿÿÿÿÿÿÿ!\0ÿÿ!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0!\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0ÿÿÿÿÿÿÿÿ\"\0ÿÿ\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0\"\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0¢\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0ÿÿ%\0#\0%\0%\0%\0%\0%\0%\0%\0%\0%\0%\0-\0.\0/\0ÿÿ0\0-\0.\0Z\0ÿÿÿÿÿÿ%\0ÿÿÿÿÿÿÿÿÿÿÿÿ¢\0-\0ÿÿÿÿÿÿÿÿÿÿ.\0/\0/\x000\0ÿÿÿÿZ\0ÿÿÿÿÿÿÿÿÿÿ%\0ÿÿÿÿÿÿÿÿÿÿ%\0ÿÿÿÿÿÿ#\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0K\0K\0K\0K\0K\0K\0K\0K\0K\0K\0{\0{\0{\0{\0{\0{\0{\0{\0{\0{\0ÿÿÿÿÿÿÿÿ#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0#\0$\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0ÿÿÿÿÿÿÿÿÿÿ$\0$\0ÿÿ$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0J\0J\0J\0J\0J\0J\0J\0J\0J\0J\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0f\0ÿÿx\0ÿÿx\0ÿÿJ\0x\0x\0x\0x\0x\0x\0x\0x\0x\0x\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0$\0&\0ÿÿ&\0&\0&\0&\0&\0&\0&\0&\0&\0&\0ÿÿÿÿÿÿ`\0ÿÿÿÿÿÿ}\0ÿÿ}\0ÿÿ&\0}\0}\0}\0}\0}\0}\0}\0}\0}\0}\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ƒ\0ÿÿÿÿÿÿÿÿÿÿ&\0ÿÿÿÿÿÿÿÿÿÿ&\0ÿÿÿÿ'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0ÿÿÿÿÿÿÿÿÿÿÿÿ&\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0ÿÿÿÿÿÿÿÿ'\0ÿÿ'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0g\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0h\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0i\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0j\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0k\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0l\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0m\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0n\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0o\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0p\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0q\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿy\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0ÿÿÿÿÿÿÿÿy\0ÿÿy\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0y\0z\0z\0z\0z\0z\0z\0z\0z\0z\0z\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿz\0z\0z\0z\0z\0z\0|\0ÿÿ|\0|\0|\0|\0|\0|\0|\0|\0|\0|\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|\0|\0|\0|\0|\0|\0ÿÿz\0z\0z\0z\0z\0z\0ÿÿÿÿ|\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0‚\0ÿÿÿÿÿÿÿÿ|\0ÿÿ|\0|\0|\0|\0|\0|\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|\0~\0~\0~\0~\0~\0~\0~\0~\0~\0~\0ÿÿÿÿÿÿÿÿÿÿ‚\0ÿÿ~\0~\0~\0~\0~\0~\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~\0ÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0ÿÿ~\0~\0~\0~\0~\0~\0\0\0\0\0\0\0ÿÿÿÿÿÿ~\0„\0„\0„\0„\0„\0„\0„\0„\0„\0„\0ÿÿ€\0€\0€\0€\0€\0€\0€\0€\0€\0€\0ÿÿ\0\0\0\0\0\0€\0€\0€\0€\0€\0€\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0ÿÿÿÿÿÿÿÿ€\0ÿÿ€\0€\0€\0€\0€\0€\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0…\0…\0…\0…\0…\0…\0…\0…\0…\0…\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0Œ\0ÿÿ…\0ÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿ†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0…\0ÿÿÿÿÿÿÿÿÿÿ…\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0ÿÿÿÿÿÿÿÿ†\0ÿÿ†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0†\0‡\0ÿÿ‡\0ÿÿÿÿ‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0ÿÿÿÿÿÿÿÿ‡\0ÿÿ‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‡\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0ÿÿÿÿÿÿÿÿ‰\0ÿÿ‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0‰\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0ÿÿÿÿÿÿÿÿŠ\0ÿÿŠ\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0Š\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0‹\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿ‹\0ÿÿÿÿÿÿ\0\0\0\0\0\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0‘\0ÿÿÿÿÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0’\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0“\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0”\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0•\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0–\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0—\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0˜\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0™\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0š\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0›\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0ž\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0Ÿ\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0¡\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¡\0¡\0¡\0¡\0¡\0¡\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0¤\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤\0¤\0¤\0¤\0¤\0¤\0ÿÿÿÿÿÿ¡\0¡\0¡\0¡\0¡\0¡\0ÿÿÿÿÿÿÿÿÿÿÿÿ¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0¥\0ÿÿ¤\0¤\0¤\0¤\0¤\0¤\0¥\0¥\0¥\0¥\0¥\0¥\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0¦\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¦\0¦\0¦\0¦\0¦\0¦\0ÿÿÿÿÿÿ¥\0¥\0¥\0¥\0¥\0¥\0ÿÿÿÿÿÿÿÿÿÿÿÿ§\0§\0§\0§\0§\0§\0§\0§\0§\0§\0ÿÿ¦\0¦\0¦\0¦\0¦\0¦\0§\0§\0§\0§\0§\0§\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0¯\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ§\0ÿÿ§\0§\0§\0§\0§\0§\0ÿÿÿÿÿÿÿÿÿÿÿÿ¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0¨\0ÿÿÿÿÿÿÿÿÿÿÿÿ§\0¨\0¨\0¨\0¨\0¨\0¨\0¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¨\0¨\0¨\0¨\0¨\0¨\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0ÿÿ¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0ÿÿÿÿ¬\0­\0ÿÿÿÿÿÿÿÿ­\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­\0­\0­\0­\0­\0­\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬\0­\0ÿÿÿÿÿÿÿÿ­\0­\0­\0­\0­\0­\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­\0ÿÿÿÿÿÿ­\0ÿÿ­\0­\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0¬\0­\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0®\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0°\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0²\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0³\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0´\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0¶\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0·\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¸\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0º\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0»\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0¼\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0ÿÿÀ\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0ÿÿÿÿÀ\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0Á\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁ\0Á\0Á\0Á\0Á\0Á\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0Â\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ\0Â\0Â\0Â\0Â\0Â\0ÿÿÿÿÿÿÁ\0Á\0Á\0Á\0Á\0Á\0ÿÿÿÿÀ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ\0Â\0Â\0Â\0Â\0Â\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0À\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0Ã\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ\0Ã\0Ã\0Ã\0Ã\0Ã\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ\0ÿÿÃ\0Ã\0Ã\0Ã\0Ã\0Ã\0ÿÿÿÿÿÿÿÿÿÿÿÿÄ\0Ä\0Ä\0Ä\0Ä\0Ä\0Ä\0Ä\0Ä\0Ä\0ÿÿÿÿÿÿÿÿÿÿÿÿÃ\0Ä\0Ä\0Ä\0Ä\0Ä\0Ä\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0ÿÿÄ\0Ä\0Ä\0Ä\0Ä\0Ä\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0ÿÿÿÿÿÿÿÿÅ\0ÿÿÅ\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0ÿÿÿÿÿÿÿÿÆ\0ÿÿÆ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Æ\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇ\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0ÿÿÿÿÿÿÿÿÇ\0ÿÿÇ\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0Ç\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0ÿÿÿÿÿÿÿÿÈ\0ÿÿÈ\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0È\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0ÿÿÿÿÿÿÿÿÉ\0ÿÿÉ\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÊ\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0ÿÿÿÿÿÿÿÿÊ\0ÿÿÊ\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ê\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿË\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0ÿÿÿÿÿÿÿÿË\0ÿÿË\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ë\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0ÿÿÿÿÿÿÿÿÌ\0ÿÿÌ\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Ì\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍ\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0ÿÿÿÿÿÿÿÿÍ\0ÿÿÍ\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0ÿÿÿÿÿÿÿÿÎ\0ÿÿÎ\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Î\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0ÿÿÿÿÿÿÿÿÏ\0ÿÿÏ\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ï\0Ð\0ÿÿÿÿÿÿÿÿÿÿÐ\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐ\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0ÿÿÿÿÿÿÿÿÐ\0ÿÿÐ\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ð\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒ\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0ÿÿÿÿÿÿÿÿÒ\0ÿÿÒ\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ò\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÓ\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0ÿÿÿÿÿÿÿÿÓ\0ÿÿÓ\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ó\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔ\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0ÿÿÿÿÿÿÿÿÔ\0ÿÿÔ\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Ô\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0ÿÿÿÿÿÿÿÿÕ\0ÿÿÕ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖ\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0ÿÿÿÿÿÿÿÿÖ\0ÿÿÖ\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0Ö\0×\0ÿÿÿÿÿÿÿÿÿÿ×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0ÿÿÿÿÿÿÿÿÿÿ×\0ÿÿ×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0ÿÿÿÿÿÿÿÿ×\0ÿÿ×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0×\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚ\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0ÿÿÿÿÿÿÿÿÚ\0ÿÿÚ\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Ú\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛ\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0ÿÿÿÿÿÿÿÿÛ\0ÿÿÛ\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Û\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜ\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0ÿÿÿÿÿÿÿÿÜ\0ÿÿÜ\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ü\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝ\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0ÿÿÿÿÿÿÿÿÝ\0ÿÿÝ\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÞ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0ÿÿÿÿÿÿÿÿÞ\0ÿÿÞ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0Þ\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ÿÿÿÿÿÿÿÿß\0ÿÿß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0ß\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿà\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0ÿÿÿÿÿÿÿÿà\0ÿÿà\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0à\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿá\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0ÿÿÿÿÿÿÿÿá\0ÿÿá\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0á\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0ÿÿÿÿÿÿÿÿâ\0ÿÿâ\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0â\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ÿÿÿÿÿÿÿÿã\0ÿÿã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ã\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ÿÿÿÿÿÿÿÿä\0ÿÿä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0ä\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿå\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0ÿÿÿÿÿÿÿÿå\0ÿÿå\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0å\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿæ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0ÿÿÿÿÿÿÿÿæ\0ÿÿæ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0æ\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ÿÿÿÿÿÿÿÿç\0ÿÿç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0ç\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿè\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0ÿÿÿÿÿÿÿÿè\0ÿÿè\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0è\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿé\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0ÿÿÿÿÿÿÿÿé\0ÿÿé\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0é\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ÿÿÿÿÿÿÿÿê\0ÿÿê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ê\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ÿÿÿÿÿÿÿÿë\0ÿÿë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ë\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ÿÿÿÿÿÿÿÿì\0ÿÿì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0ì\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿí\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0ÿÿÿÿÿÿÿÿí\0ÿÿí\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0í\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿî\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0ÿÿÿÿÿÿÿÿî\0ÿÿî\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0î\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ÿÿÿÿÿÿÿÿï\0ÿÿï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ï\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ÿÿÿÿÿÿÿÿð\0ÿÿð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ð\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ÿÿÿÿÿÿÿÿñ\0ÿÿñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ÿÿÿÿÿÿÿÿò\0ÿÿò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ò\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ÿÿÿÿÿÿÿÿó\0ÿÿó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ó\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ÿÿÿÿÿÿÿÿô\0ÿÿô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0ô\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿõ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0ÿÿÿÿÿÿÿÿõ\0ÿÿõ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0õ\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ÿÿÿÿÿÿÿÿö\0ÿÿö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0ö\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0ÿÿÿÿÿÿÿÿ÷\0ÿÿ÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0÷\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ÿÿÿÿÿÿÿÿø\0ÿÿø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ø\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ÿÿÿÿÿÿÿÿù\0ÿÿù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ù\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ÿÿÿÿÿÿÿÿú\0ÿÿú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0ú\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿû\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0ÿÿÿÿÿÿÿÿû\0ÿÿû\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0û\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ÿÿÿÿÿÿÿÿü\0ÿÿü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ü\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ÿÿÿÿÿÿÿÿý\0ÿÿý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0ý\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0ÿÿÿÿÿÿÿÿþ\0ÿÿþ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0þ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿÿÿÿÿÿÿÿÿ\0ÿÿÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\b\b\b\b\b\b\b\b\b\bÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bÿÿÿÿÿÿÿÿ\bÿÿ\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\t\t\t\t\t\t\t\t\t\tÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tÿÿÿÿÿÿÿÿ\tÿÿ\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\n\n\n\n\n\n\n\nÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nÿÿÿÿÿÿÿÿ\nÿÿ\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\v\v\v\v\v\v\v\v\v\vÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\vÿÿÿÿÿÿÿÿ\vÿÿ\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\f\f\f\f\f\f\f\f\f\fÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\fÿÿÿÿÿÿÿÿ\fÿÿ\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\r\r\r\r\r\r\r\r\r\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\rÿÿÿÿÿÿÿÿ\rÿÿ\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ          ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ                          ÿÿÿÿÿÿÿÿ ÿÿ                          !!!!!!!!!!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!!!!!!!!!!!!!!!!!!!!!!!!!!ÿÿÿÿÿÿÿÿ!ÿÿ!!!!!!!!!!!!!!!!!!!!!!!!!!\"\"\"\"\"\"\"\"\"\"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"ÿÿÿÿÿÿÿÿ\"ÿÿ\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"##########ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ##########################ÿÿÿÿÿÿÿÿ#ÿÿ##########################$$$$$$$$$$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$$$$$$$$$$$$$$$$$$$$$$$$$$ÿÿÿÿÿÿÿÿ$ÿÿ$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ%%%%%%%%%%%%%%%%%%%%%%%%%%ÿÿÿÿÿÿÿÿ%ÿÿ%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿ&ÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ''''''''''''''''''''''''''ÿÿÿÿÿÿÿÿ'ÿÿ''''''''''''''''''''''''''((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ((((((((((((((((((((((((((ÿÿÿÿÿÿÿÿ(ÿÿ(((((((((((((((((((((((((())))))))))ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ))))))))))))))))))))))))))ÿÿÿÿÿÿÿÿ)ÿÿ))))))))))))))))))))))))))**********ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ**************************ÿÿÿÿÿÿÿÿ*ÿÿ**************************++++++++++ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ++++++++++++++++++++++++++ÿÿÿÿÿÿÿÿ+ÿÿ++++++++++++++++++++++++++,,,,,,,,,,ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,,,,,,,,,,,,,,,,,,,,,,,,,,ÿÿÿÿÿÿÿÿ,ÿÿ,,,,,,,,,,,,,,,,,,,,,,,,,,----------ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ--------------------------ÿÿÿÿÿÿÿÿ-ÿÿ--------------------------..........ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ..........................ÿÿÿÿÿÿÿÿ.ÿÿ..........................//////////ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ//////////////////////////ÿÿÿÿÿÿÿÿ/ÿÿ//////////////////////////0000000000ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00000000000000000000000000ÿÿÿÿÿÿÿÿ0ÿÿ000000000000000000000000001111111111ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ11111111111111111111111111ÿÿÿÿÿÿÿÿ1ÿÿ111111111111111111111111112222222222ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ22222222222222222222222222ÿÿÿÿÿÿÿÿ2ÿÿ222222222222222222222222223333333333ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ33333333333333333333333333ÿÿÿÿÿÿÿÿ3ÿÿ333333333333333333333333334444444444ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ44444444444444444444444444ÿÿÿÿÿÿÿÿ4ÿÿ444444444444444444444444445555555555ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ55555555555555555555555555ÿÿÿÿÿÿÿÿ5ÿÿ555555555555555555555555556666666666ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ66666666666666666666666666ÿÿÿÿÿÿÿÿ6ÿÿ666666666666666666666666667777777777ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ77777777777777777777777777ÿÿÿÿÿÿÿÿ7ÿÿ777777777777777777777777778888888888ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ88888888888888888888888888ÿÿÿÿÿÿÿÿ8ÿÿ888888888888888888888888889999999999ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ99999999999999999999999999ÿÿÿÿÿÿÿÿ9ÿÿ99999999999999999999999999::::::::::ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ::::::::::::::::::::::::::ÿÿÿÿÿÿÿÿ:ÿÿ::::::::::::::::::::::::::;;;;;;;;;;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;;;;;;;;;;;;;;;;;;;;;;;;;;ÿÿÿÿÿÿÿÿ;ÿÿ;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<<<<<<<<<<<<<<<<<<<<<<<<<<ÿÿÿÿÿÿÿÿ<ÿÿ<<<<<<<<<<<<<<<<<<<<<<<<<<==========ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ==========================ÿÿÿÿÿÿÿÿ=ÿÿ==========================>>>>>>>>>>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ>>>>>>>>>>>>>>>>>>>>>>>>>>ÿÿÿÿÿÿÿÿ>ÿÿ>>>>>>>>>>>>>>>>>>>>>>>>>>??????????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????????????????????????ÿÿÿÿÿÿÿÿ?ÿÿ??????????????????????????@@@@@@@@@@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@@@@@@@@@@@@@@@@@@@@@@@@@@ÿÿÿÿÿÿÿÿ@ÿÿ@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAÿÿÿÿÿÿÿÿÿÿÿÿÿÿAAAAAAAAAAAAAAAAAAAAAAAAAAÿÿÿÿÿÿÿÿAÿÿAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBÿÿÿÿÿÿÿÿÿÿÿÿÿÿBBBBBBBBBBBBBBBBBBBBBBBBBBÿÿÿÿÿÿÿÿBÿÿBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCÿÿÿÿÿÿÿÿÿÿÿÿÿÿCCCCCCCCCCCCCCCCCCCCCCCCCCÿÿÿÿÿÿÿÿCÿÿCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDÿÿÿÿÿÿÿÿÿÿÿÿÿÿDDDDDDDDDDDDDDDDDDDDDDDDDDÿÿÿÿÿÿÿÿDÿÿDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEÿÿÿÿÿÿÿÿÿÿÿÿÿÿEEEEEEEEEEEEEEEEEEEEEEEEEEÿÿÿÿÿÿÿÿEÿÿEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFÿÿÿÿÿÿÿÿÿÿÿÿÿÿFFFFFFFFFFFFFFFFFFFFFFFFFFÿÿÿÿÿÿÿÿFÿÿFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGÿÿÿÿÿÿÿÿÿÿÿÿÿÿGGGGGGGGGGGGGGGGGGGGGGGGGGÿÿÿÿÿÿÿÿGÿÿGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHÿÿÿÿÿÿÿÿÿÿÿÿÿÿHHHHHHHHHHHHHHHHHHHHHHHHHHÿÿÿÿÿÿÿÿHÿÿHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIÿÿÿÿÿÿÿÿÿÿÿÿÿÿIIIIIIIIIIIIIIIIIIIIIIIIIIÿÿÿÿÿÿÿÿIÿÿIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJÿÿÿÿÿÿÿÿÿÿÿÿÿÿJJJJJJJJJJJJJJJJJJJJJJJJJJÿÿÿÿÿÿÿÿJÿÿJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKÿÿÿÿÿÿÿÿÿÿÿÿÿÿKKKKKKKKKKKKKKKKKKKKKKKKKKÿÿÿÿÿÿÿÿKÿÿKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLÿÿÿÿÿÿÿÿÿÿÿÿÿÿLLLLLLLLLLLLLLLLLLLLLLLLLLÿÿÿÿÿÿÿÿLÿÿLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMÿÿÿÿÿÿÿÿÿÿÿÿÿÿMMMMMMMMMMMMMMMMMMMMMMMMMMÿÿÿÿÿÿÿÿMÿÿMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNÿÿÿÿÿÿÿÿÿÿÿÿÿÿNNNNNNNNNNNNNNNNNNNNNNNNNNÿÿÿÿÿÿÿÿNÿÿNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOOOOOOOOOOOOOOOOOOOOOOOOÿÿÿÿÿÿÿÿOÿÿOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPPPPPPPPPPPPPPPPPPPPPÿÿÿÿÿÿÿÿPÿÿPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQÿÿÿÿÿÿÿÿÿÿÿÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQÿÿÿÿÿÿÿÿQÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRÿÿÿÿÿÿÿÿÿÿÿÿÿÿRRRRRRRRRRRRRRRRRRRRRRRRRRÿÿÿÿÿÿÿÿRÿÿRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿSSSSSSSSSSSSSSSSSSSSSSSSSSÿÿÿÿÿÿÿÿSÿÿSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTÿÿÿÿÿÿÿÿÿÿÿÿÿÿTTTTTTTTTTTTTTTTTTTTTTTTTTÿÿÿÿÿÿÿÿTÿÿTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿUUUUUUUUUUUUUUUUUUUUUUUUUUÿÿÿÿÿÿÿÿUÿÿUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVÿÿÿÿÿÿÿÿÿÿÿÿÿÿVVVVVVVVVVVVVVVVVVVVVVVVVVÿÿÿÿÿÿÿÿVÿÿVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWÿÿÿÿÿÿÿÿÿÿÿÿÿÿWWWWWWWWWWWWWWWWWWWWWWWWWWÿÿÿÿÿÿÿÿWÿÿWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXÿÿÿÿÿÿÿÿÿÿÿÿÿÿXXXXXXXXXXXXXXXXXXXXXXXXXXÿÿÿÿÿÿÿÿXÿÿXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYÿÿÿÿÿÿÿÿÿÿÿÿÿÿYYYYYYYYYYYYYYYYYYYYYYYYYYÿÿÿÿÿÿÿÿYÿÿYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZÿÿÿÿÿÿÿÿÿÿÿÿÿÿZZZZZZZZZZZZZZZZZZZZZZZZZZÿÿÿÿÿÿÿÿZÿÿZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ[[[[[[[[[[[[[[[[[[[[[[[[[[ÿÿÿÿÿÿÿÿ[ÿÿ[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ÿÿÿÿÿÿÿÿ\\ÿÿ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]]]]]]]]]]]]]]]]]]]]]]]]]]ÿÿÿÿÿÿÿÿ]ÿÿ]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ^^^^^^^^^^^^^^^^^^^^^^^^^^ÿÿÿÿÿÿÿÿ^ÿÿ^^^^^^^^^^^^^^^^^^^^^^^^^^__________ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ__________________________ÿÿÿÿÿÿÿÿ_ÿÿ__________________________``````````ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ``````````````````````````ÿÿÿÿÿÿÿÿ`ÿÿ``````````````````````````aaaaaaaaaaÿÿÿÿÿÿÿÿÿÿÿÿÿÿaaaaaaaaaaaaaaaaaaaaaaaaaaÿÿÿÿÿÿÿÿaÿÿaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbÿÿÿÿÿÿÿÿÿÿÿÿÿÿbbbbbbbbbbbbbbbbbbbbbbbbbbÿÿÿÿÿÿÿÿbÿÿbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccÿÿÿÿÿÿÿÿÿÿÿÿÿÿccccccccccccccccccccccccccÿÿÿÿÿÿÿÿcÿÿccccccccccccccccccccccccccddddddddddÿÿÿÿÿÿÿÿÿÿÿÿÿÿddddddddddddddddddddddddddÿÿÿÿÿÿÿÿdÿÿddddddddddddddddddddddddddeeeeeeeeeeÿÿÿÿÿÿÿÿÿÿÿÿÿÿeeeeeeeeeeeeeeeeeeeeeeeeeeÿÿÿÿÿÿÿÿeÿÿeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffÿÿÿÿÿÿÿÿÿÿÿÿÿÿffffffffffffffffffffffffffÿÿÿÿÿÿÿÿfÿÿffffffffffffffffffffffffffggggggggggÿÿÿÿÿÿÿÿÿÿÿÿÿÿggggggggggggggggggggggggggÿÿÿÿÿÿÿÿgÿÿgggggggggggggggggggggggggghhhhhhhhhhÿÿÿÿÿÿÿÿÿÿÿÿÿÿhhhhhhhhhhhhhhhhhhhhhhhhhhÿÿÿÿÿÿÿÿhÿÿhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiÿÿÿÿÿÿÿÿÿÿÿÿÿÿiiiiiiiiiiiiiiiiiiiiiiiiiiÿÿÿÿÿÿÿÿiÿÿiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjÿÿÿÿÿÿÿÿÿÿÿÿÿÿjjjjjjjjjjjjjjjjjjjjjjjjjjÿÿÿÿÿÿÿÿjÿÿjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkÿÿÿÿÿÿÿÿÿÿÿÿÿÿkkkkkkkkkkkkkkkkkkkkkkkkkkÿÿÿÿÿÿÿÿkÿÿkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllÿÿÿÿÿÿÿÿÿÿÿÿÿÿllllllllllllllllllllllllllÿÿÿÿÿÿÿÿlÿÿllllllllllllllllllllllllllmmmmmmmmmmÿÿÿÿÿÿÿÿÿÿÿÿÿÿmmmmmmmmmmmmmmmmmmmmmmmmmmÿÿÿÿÿÿÿÿmÿÿmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnÿÿÿÿÿÿÿÿÿÿÿÿÿÿnnnnnnnnnnnnnnnnnnnnnnnnnnÿÿÿÿÿÿÿÿnÿÿnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooÿÿÿÿÿÿÿÿÿÿÿÿÿÿooooooooooooooooooooooooooÿÿÿÿÿÿÿÿoÿÿooooooooooooooooooooooooooppppppppppÿÿÿÿÿÿÿÿÿÿÿÿÿÿppppppppppppppppppppppppppÿÿÿÿÿÿÿÿpÿÿppppppppppppppppppppppppppqqqqqqqqqqÿÿÿÿÿÿÿÿÿÿÿÿÿÿqqqqqqqqqqqqqqqqqqqqqqqqqqÿÿÿÿÿÿÿÿqÿÿqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrÿÿÿÿÿÿÿÿÿÿÿÿÿÿrrrrrrrrrrrrrrrrrrrrrrrrrrÿÿÿÿÿÿÿÿrÿÿrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssÿÿÿÿÿÿÿÿÿÿÿÿÿÿssssssssssssssssssssssssssÿÿÿÿÿÿÿÿsÿÿssssssssssssssssssssssssssttttttttttÿÿÿÿÿÿÿÿÿÿÿÿÿÿttttttttttttttttttttttttttÿÿÿÿÿÿÿÿtÿÿttttttttttttttttttttttttttuuuuuuuuuuÿÿÿÿÿÿÿÿÿÿÿÿÿÿuuuuuuuuuuuuuuuuuuuuuuuuuuÿÿÿÿÿÿÿÿuÿÿuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvÿÿÿÿÿÿÿÿÿÿÿÿÿÿvvvvvvvvvvvvvvvvvvvvvvvvvvÿÿÿÿÿÿÿÿvÿÿvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwÿÿÿÿÿÿÿÿÿÿÿÿÿÿwwwwwwwwwwwwwwwwwwwwwwwwwwÿÿÿÿÿÿÿÿwÿÿwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxÿÿÿÿÿÿÿÿÿÿÿÿÿÿxxxxxxxxxxxxxxxxxxxxxxxxxxÿÿÿÿÿÿÿÿxÿÿxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyÿÿÿÿÿÿÿÿÿÿÿÿÿÿyyyyyyyyyyyyyyyyyyyyyyyyyyÿÿÿÿÿÿÿÿyÿÿyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzÿÿÿÿÿÿÿÿÿÿÿÿÿÿzzzzzzzzzzzzzzzzzzzzzzzzzzÿÿÿÿÿÿÿÿzÿÿzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ{{{{{{{{{{{{{{{{{{{{{{{{{{ÿÿÿÿÿÿÿÿ{ÿÿ{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ||||||||||||||||||||||||||ÿÿÿÿÿÿÿÿ|ÿÿ||||||||||||||||||||||||||}}}}}}}}}}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}}}}}}}}}}}}}}}}}}}}}}}}}}ÿÿÿÿÿÿÿÿ}ÿÿ}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~~~~~~~~~~~~~~~~~~~~~~~~~~ÿÿÿÿÿÿÿÿ~ÿÿ~~~~~~~~~~~~~~~~~~~~~~~~~~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€€€€€€€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€€€€€€€€€€€€€€€€€€€€€€€€€ÿÿÿÿÿÿÿÿ€ÿÿ€€€€€€€€€€€€€€€€€€€€€€€€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚‚‚‚‚‚‚‚‚‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ÿÿÿÿÿÿÿÿ‚ÿÿ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒÿÿÿÿÿÿÿÿƒÿÿƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„„„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„„„„„„„„„„„„„„„„„„„„„„„„„„ÿÿÿÿÿÿÿÿ„ÿÿ„„„„„„„„„„„„„„„„„„„„„„„„„„…………………………ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ……………………………………………………………………ÿÿÿÿÿÿÿÿ…ÿÿ……………………………………………………………………††††††††††ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ††††††††††††††††††††††††††ÿÿÿÿÿÿÿÿ†ÿÿ††††††††††††††††††††††††††‡‡‡‡‡‡‡‡‡‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡ÿÿÿÿÿÿÿÿ‡ÿÿ‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡ˆˆˆˆˆˆˆˆˆˆÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÿÿÿÿÿÿÿÿˆÿÿˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰‰‰‰‰‰‰‰‰‰ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÿÿÿÿÿÿÿÿ‰ÿÿ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ŠŠŠŠŠŠŠŠŠŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠÿÿÿÿÿÿÿÿŠÿÿŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠ‹‹‹‹‹‹‹‹‹‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ÿÿÿÿÿÿÿÿ‹ÿÿ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ŒŒŒŒŒŒŒŒŒŒÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒÿÿÿÿÿÿÿÿŒÿÿŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽŽŽŽŽŽŽŽŽŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽÿÿÿÿÿÿÿÿŽÿÿŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘‘‘‘‘‘‘‘‘‘ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘ÿÿÿÿÿÿÿÿ‘ÿÿ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘’’’’’’’’’’ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’’’’’’’’’’’’’’’’’’’’’’’’’’ÿÿÿÿÿÿÿÿ’ÿÿ’’’’’’’’’’’’’’’’’’’’’’’’’’““““““““““ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ““““““““““““““““““““““““““ÿÿÿÿÿÿÿÿ“ÿÿ““““““““““““““““““““““““““””””””””””ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ””””””””””””””””””””””””””ÿÿÿÿÿÿÿÿ”ÿÿ””””””””””””””””””””””””””••••••••••ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ••••••••••••••••••••••••••ÿÿÿÿÿÿÿÿ•ÿÿ••••••••••••••••••••••••••––––––––––ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ––––––––––––––––––––––––––ÿÿÿÿÿÿÿÿ–ÿÿ––––––––––––––––––––––––––——————————ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ——————————————————————————ÿÿÿÿÿÿÿÿ—ÿÿ——————————————————————————˜˜˜˜˜˜˜˜˜˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜ÿÿÿÿÿÿÿÿ˜ÿÿ˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜™™™™™™™™™™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ™™™™™™™™™™™™™™™™™™™™™™™™™™ÿÿÿÿÿÿÿÿ™ÿÿ™™™™™™™™™™™™™™™™™™™™™™™™™™ššššššššššÿÿÿÿÿÿÿÿÿÿÿÿÿÿššššššššššššššššššššššššššÿÿÿÿÿÿÿÿšÿÿšššššššššššššššššššššššššš››››››››››ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ››››››››››››››››››››››››››ÿÿÿÿÿÿÿÿ›ÿÿ››››››››››››››››››››››››››œœœœœœœœœœÿÿÿÿÿÿÿÿÿÿÿÿÿÿœœœœœœœœœœœœœœœœœœœœœœœœœœÿÿÿÿÿÿÿÿœÿÿœœœœœœœœœœœœœœœœœœœœœœœœœœÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿžžžžžžžžžžÿÿÿÿÿÿÿÿÿÿÿÿÿÿžžžžžžžžžžžžžžžžžžžžžžžžžžÿÿÿÿÿÿÿÿžÿÿžžžžžžžžžžžžžžžžžžžžžžžžžžŸŸŸŸŸŸŸŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸÿÿÿÿÿÿÿÿŸÿÿŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ          ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ                          ÿÿÿÿÿÿÿÿ ÿÿ                          ¡¡¡¡¡¡¡¡¡¡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÿÿÿÿÿÿÿÿ¡ÿÿ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢¢¢¢¢¢ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢ÿÿÿÿÿÿÿÿ¢ÿÿ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢££££££££££ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ££££££££££££££££££££££££££ÿÿÿÿÿÿÿÿ£ÿÿ££££££££££££££££££££££££££¤¤¤¤¤¤¤¤¤¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ÿÿÿÿÿÿÿÿ¤ÿÿ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¥¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ÿÿÿÿÿÿÿÿ¥ÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¦¦¦¦¦¦¦¦¦¦ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ÿÿÿÿÿÿÿÿ¦ÿÿ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦§§§§§§§§§§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ§§§§§§§§§§§§§§§§§§§§§§§§§§ÿÿÿÿÿÿÿÿ§ÿÿ§§§§§§§§§§§§§§§§§§§§§§§§§§¨¨¨¨¨¨¨¨¨¨ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ÿÿÿÿÿÿÿÿ¨ÿÿ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨©©©©©©©©©©ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ©©©©©©©©©©©©©©©©©©©©©©©©©©ÿÿÿÿÿÿÿÿ©ÿÿ©©©©©©©©©©©©©©©©©©©©©©©©©©ªªªªªªªªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªÿÿÿÿÿÿÿÿªÿÿªªªªªªªªªªªªªªªªªªªªªªªªªª««««««««««ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ««««««««««««««««««««««««««ÿÿÿÿÿÿÿÿ«ÿÿ««««««««««««««««««««««««««¬¬¬¬¬¬¬¬¬¬ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ÿÿÿÿÿÿÿÿ¬ÿÿ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬­­­­­­­­­­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­­­­­­­­­­­­­­­­­­­­­­­­­­ÿÿÿÿÿÿÿÿ­ÿÿ­­­­­­­­­­­­­­­­­­­­­­­­­­®®®®®®®®®®ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®®®®®®®®®®®®®®®®®®®®®®®®®®ÿÿÿÿÿÿÿÿ®ÿÿ®®®®®®®®®®®®®®®®®®®®®®®®®®°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶································································¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ÿÿÿÿÿÿÿÿ¹»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½½¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",kQ,kQ,kQ,kQ,kQ,kQ],VS=[0,[1,[0,96]],[0,[0,Wj],0]],LS=[0,[1,[0,34]],[0,[0,361],0]],zS=[0,[1,[0,57]],[0,[0,lk],0]],SS=[0,[1,[0,83]],[0,[0,Ll],0]],ZS=[0,[1,[0,40]],[0,[0,355],0]],WS=[0,[0,339],[0,[0,494],0]],XS=[0,[1,[0,34]],[0,[0,493],0]],JS=[0,[0,xn],[0,[0,zx],0]],YS=[0,[1,[0,40]],[0,[0,Ag],0]],rZ=[0,[0,pr],[0,[0,hd],0]],eZ=[0,[1,[0,41]],[0,[0,495],0]],nZ=[0,[1,[0,41]],[0,[0,496],0]],tZ=[0,[1,[0,86]],[0,[0,465],0]],aZ=[0,[1,[0,83]],[0,[0,501],0]],uZ=[0,[0,kl],[0,[0,430],0]],fZ=[0,[0,zA],[0,[0,440],0]],iZ=[0,[0,5],[0,[0,509],0]],vZ=[0,[0,TK],[0,[0,447],0]],cZ=[0,[0,442],[0,[0,444],0]],AZ=[0,[0,Ou],[0,[0,418],0]],oZ=[0,[0,at],[0,[0,415],0]],sZ=[0,[0,hr],[0,[0,407],0]],bZ=[0,[1,[0,96]],[0,[0,Xn],0]],lZ=[0,[1,[1,79]],[0,[0,MB],0]],BZ=[0,[1,[0,34]],[0,[0,271],0]],jZ=[0,[1,[1,91]],[0,[0,os],0]],kZ=[0,[1,[0,34]],[0,[0,JR],0]],pZ=[0,[1,[1,90]],[0,[0,30],0]],mZ=[0,[1,[0,40]],[0,[0,gn],0]],dZ=[0,[0,5],[0,[0,gq],0]],_Z=[0,[1,[0,40]],[0,[0,V_],0]],hZ=[0,[1,[0,34]],[0,[0,LK],0]],xZ=[0,[1,[1,90]],[0,[0,273],0]],yZ=[0,[1,[0,40]],[0,[0,299],0]],wZ=[0,[1,[0,xp]],[0,[0,qo],[0,[0,15],[0,[0,17],0]]]],gZ=[0,[1,[0,40]],[0,[0,7],0]],qZ=[0,[1,[0,40]],[0,[0,To],0]],IZ=[0,[0,BR],[0,[0,379],0]],DZ=[0,[1,[0,41]],[0,[0,232],0]],EZ=[0,[1,[0,41]],[0,[0,233],0]],NZ=[0,[1,[1,90]],[0,[0,29],0]],TZ=[0,[1,[0,86]],[0,[0,__],0]],FZ=[0,[1,[0,86]],[0,[0,285],0]],MZ=[0,[0,oP],[0,[0,wf],0]],PZ=[0,[1,[0,41]],[0,[0,234],0]],UZ=[0,[1,[0,41]],[0,[0,$x],0]],GZ=[0,[1,[0,41]],[0,[0,Ma],0]],$Z=[0,[1,[0,41]],[0,[0,Bs],0]],KZ=[0,[1,[0,15]],[0,[0,41],0]],OZ=[0,[1,[0,34]],[0,[0,38],0]],RZ=[0,[0,eB],[0,[0,rd],0]],QZ=[0,[0,dK],[0,[0,bD],0]],CZ=[0,[0,5],[0,[0,T$],0]],HZ=[0,[0,g_],[0,[0,397],0]],VZ=[0,[0,iR],[0,[0,sp],0]],LZ=[0,[0,sR],[0,[0,LD],0]],zZ=[0,[1,[0,40]],[0,[0,Nd],0]],SZ=[0,[1,[0,32]],[0,[0,zq],0]],ZZ=[0,[0,381],[0,[0,383],0]],WZ=[0,[0,kO],[0,[0,404],0]],XZ=[0,[1,[0,40]],[0,[0,344],0]],JZ=[0,[0,Pv],[0,[0,436],0]],YZ=[0,[1,[0,40]],[0,[0,_E],0]],rW=[0,[0,ew],[0,[0,426],0]],eW=[0,[0,lT],[0,[0,411],0]],nW=[0,[1,[0,34]],[0,[0,en],0]],tW=[0,[0,Xr],[0,[0,tc],0]],aW=jI,uW=yn,fW=KF,iW=yy,vW=sG,cW=pi,AW=pl,oW=ug,sW=tR,bW=C_,lW=GK,BW=xO,jW=Ut,kW=Fx,pW=ux,mW=ZE,dW=bt,_W=bt,hW=aI,xW=RG,yW=Vs,wW=rr,gW=h$,qW=lf,IW=HE,DW=Zr,EW=ff,NW=Mo,TW="num.id",FW=EF,MW=TA,PW=gU,UW=Bm,GW=nh,$W=F$,KW=zc,OW=py,RW=Go,QW=QE,CW=zk,HW=cp,VW=Av,LW=rk,zW=f$,SW=b_,ZW=b,WW=n$,XW=xN,JW=qx,YW=zP,rX=rI,eX="",nX=Kl,tX=Ku,aX="",uX=xk,fX=e$,iX=sA,vX=wh,cX=YO,AX=cK,oX=kq,sX=RK,bX=Ig,lX=gx,BX="",jX=zI,kX=$g,pX="await?",mX=Sy,dX=MI,_X=ua,hX=BB,xX=jq,yX=kQ,wX="-=",gX="",qX=iF,IX="",DX="+=",EX="",NX="==",TX="",FX=og,MX="",PX="42",UX=vx,GX=No,$X='import Array "mo:base/Array"',KX="",OX="#t",RX=[0,"",bt],QX=[0,bt,bt],CX=[0,YO,YO],HX="",VX=[0,2,0,0,0],LX=Ds,zX=[0,xF,0],SX=[6,0],ZX=[0,0,0],WX=vx,XX=Sv,JX=[0,qy,0],YX=[1,0],rJ=[1,0],eJ=[0,0,0],nJ=De,tJ=De,aJ=NC(2,0,0),uJ=NC(2,0,0),fJ=NC(2,0,0),iJ=NC(2,0,0),vJ=NC(2,0,0),cJ=il,AJ=ys,oJ=QP,sJ=QO,bJ=NC(zK,LK,0),lJ=Qu,BJ=NC(1,0,0),jJ=NC(3,0,0),kJ=NC(1,0,0),pJ=NC(1,0,0),mJ=NC(1,0,0),dJ=NC(1,0,0),_J=NC(1,0,0),hJ=NC(1,0,0),xJ=NC(16777213,zK,Fn),yJ=wO,wJ=dm,gJ=F,qJ=NC(2,0,0),IJ=NC(2,0,0),DJ=NC(2,0,0),EJ=NC(2,0,0),NJ=NC(2,0,0),TJ=NC(6,0,0),FJ=jQ,MJ=ak,PJ=fx,UJ=hq,GJ=oI,$J=NC(2,0,0),KJ=gs,OJ=NC(7,0,0),RJ=NC(15,0,0),QJ=NC(31,0,0),CJ=NC(1,0,0),HJ=Lo,VJ=[0,0],LJ=NC(8,0,0),zJ=NC(wj,zK,Fn),SJ=NC(2,0,0),ZJ=NC(0,0,0),WJ=NC(1,0,0),XJ=NC(8,0,0),JJ="@initialize_main_actor",YJ=Tf,rY=NC(0,0,0),eY=NC(1,0,0),nY=NC(2,0,0),tY=NC(16,0,0),aY=NC(8,0,0),uY=NC(4,0,0),fY=jD,iY="@async_stabilization_reply_callback",vY="@async_stabilization_reject_callback",cY=im,AY="@async_destabilization_reply_callback",oY="@async_destabilization_reject_callback",sY=De,bY=De,lY=il,BY=QO,jY=Qu,kY=wO,pY=dm,mY=[18,[0,0]],dY=F,_Y=jQ,hY=ak,xY=fx,yY=hq,wY=oI,gY=[0,0],qY=Tf,IY=kP,DY="stable-types";function EY(r){if("number"==typeof r)return 0;switch(r[0]){case 0:return[0,EY(r[1])];case 1:return[1,EY(r[1])];case 2:return[2,EY(r[1])];case 3:return[3,EY(r[1])];case 4:return[4,EY(r[1])];case 5:return[5,EY(r[1])];case 6:return[6,EY(r[1])];case 7:return[7,EY(r[1])];case 8:return[8,r[1],EY(r[2])];case 9:var e=r[1];return[9,e,e,EY(r[3])];case 10:return[10,EY(r[1])];case 11:return[11,EY(r[1])];case 12:return[12,EY(r[1])];case 13:return[13,EY(r[1])];default:return[14,EY(r[1])]}}function NY(r,e){if("number"==typeof r)return e;switch(r[0]){case 0:return[0,NY(r[1],e)];case 1:return[1,NY(r[1],e)];case 2:return[2,NY(r[1],e)];case 3:return[3,NY(r[1],e)];case 4:return[4,NY(r[1],e)];case 5:return[5,NY(r[1],e)];case 6:return[6,NY(r[1],e)];case 7:return[7,NY(r[1],e)];case 8:return[8,r[1],NY(r[2],e)];case 9:var n=r[2];return[9,r[1],n,NY(r[3],e)];case 10:return[10,NY(r[1],e)];case 11:return[11,NY(r[1],e)];case 12:return[12,NY(r[1],e)];case 13:return[13,NY(r[1],e)];default:return[14,NY(r[1],e)]}}function TY(r,e){if("number"==typeof r)return e;switch(r[0]){case 0:return[0,TY(r[1],e)];case 1:return[1,TY(r[1],e)];case 2:return[2,r[1],TY(r[2],e)];case 3:return[3,r[1],TY(r[2],e)];case 4:var n=r[3],t=r[2];return[4,r[1],t,n,TY(r[4],e)];case 5:var a=r[3],u=r[2];return[5,r[1],u,a,TY(r[4],e)];case 6:var f=r[3],i=r[2];return[6,r[1],i,f,TY(r[4],e)];case 7:var v=r[3],c=r[2];return[7,r[1],c,v,TY(r[4],e)];case 8:var A=r[3],o=r[2];return[8,r[1],o,A,TY(r[4],e)];case 9:return[9,r[1],TY(r[2],e)];case 10:return[10,TY(r[1],e)];case 11:return[11,r[1],TY(r[2],e)];case 12:return[12,r[1],TY(r[2],e)];case 13:var s=r[2];return[13,r[1],s,TY(r[3],e)];case 14:var b=r[2];return[14,r[1],b,TY(r[3],e)];case 15:return[15,TY(r[1],e)];case 16:return[16,TY(r[1],e)];case 17:return[17,r[1],TY(r[2],e)];case 18:return[18,r[1],TY(r[2],e)];case 19:return[19,TY(r[1],e)];case 20:var l=r[2];return[20,r[1],l,TY(r[3],e)];case 21:return[21,r[1],TY(r[2],e)];case 22:return[22,TY(r[1],e)];case 23:return[23,r[1],TY(r[2],e)];default:var B=r[2];return[24,r[1],B,TY(r[3],e)]}}function FY(r){throw gQ([0,jz,r],1)}function MY(r){throw gQ([0,kz,r],1)}sL(11,yz,io),sL(10,xz,_t),sL(9,[Gl,Df,Ec],Df),sL(8,hz,Wv),sL(7,_z,$d),sL(6,dz,Fg),sL(5,mz,HA),sL(4,pz,dE),sL(3,kz,Jv),sL(2,jz,Rt),sL(1,Bz,yq),sL(0,lz,kc);var PY=[Gl,"Stdlib.Exit",zH()];function UY(r,e){return DV(r,e)?r:e}function GY(r,e){return SH(r,e)?r:e}function $Y(r){return 0<=r?r:0|-r}var KY=PF,OY=bn,RY=ID;function QY(r,e){if(!r)return e;var n=r[2],t=r[1];if(!n)return[0,t,e];var a=n[2],u=n[1];if(!a)return[0,t,[0,u,e]];for(var f=[0,a[1],BN],i=f,v=1,c=a[2];;){if(c){var A=c[2],o=c[1];if(A){var s=A[2],b=A[1];if(s){var l=[0,s[1],BN],B=s[2];i[v+1]=[0,o,[0,b,l]],i=l,v=1,c=B;continue}i[v+1]=[0,o,[0,b,e]]}else i[v+1]=[0,o,e]}else i[v+1]=e;return[0,t,[0,u,f]]}}eL(0);var CY=nL(1),HY=nL(2),VY=[0,0,[0,7,0]],LY=[0,0,[0,6,0]];function zY(r,e){return aL(r,e,0,AV(e))}function SY(r,e,n,t){return 0<=n&&0<=t&&(AV(e)-t|0)>=n?aL(r,e,n,t):MY("output_substring")}function ZY(r,e,n){var t=eL(rL(n,r,e));return iL(t,n),t}function WY(r){return ZY(VY,0,r)}function XY(r){return ZY(LY,0,r)}function JY(r,e,n,t){return 0<=n&&0<=t&&(mH(e)-t|0)>=n?zV(r,e,n,t):MY("input")}function YY(r){function e(r,e,n){for(var t=e,a=n;;){if(!a)return r;var u=a[1],f=mH(u),i=a[2];tC(u,0,r,t-f|0,f),t=t-f|0,a=i}}for(var n=0,t=0;;){var a=ZV(r);if(0===a){if(!n)throw gQ(pz,1);var u=e(tH(t),t,n)}else{if(0>=a){var f=tH(0|-a);zV(r,f,0,0|-a),n=[0,f,n],t=t-a|0;continue}var i=tH(a-1|0);if(zV(r,i,0,a-1|0),SV(r),n){var v=(t+a|0)-1|0;u=e(tH(v),v,[0,i,n])}else u=i}return _L(u)}}function r0(r){return zY(HY,r),uL(HY,10),HV(HY)}var e0=[0,function(r){for(var e=function(){var r=0,e=OV.all();for(var n of e){var t=RV(n);t.opened&&t.out&&(r=[0,n,r])}return r}();;){if(!e)return 0;var n=e[2],t=e[1];try{HV(t),e=n}catch(r){var a=NL(r);if(a[1]!==Bz)throw gQ(a,0);e=n}}}],n0=[0,function(r){}];function t0(r){return uz(n0[1],0),uz(PQ(e0),0)}function a0(e){return t0(),function(e){r.quit&&r.quit(e),r.process?.exit&&r.process.exit(e),DQ("Function 'exit' not implemented")}(e)}bL(Sj,t0);var u0=xL,f0=Zb/4|0,i0=2147483643;function v0(r){try{return[0,yL(r)]}catch(r){var e=NL(r);if(e===dz)return 0;throw gQ(e,0)}}var c0=[Gl,"Stdlib.Sys.Break",zH()];function A0(r){return 1-("number"==typeof r?1:0)}function o0(r,e,n){var t=0<=e?1:0,a=1-(t?e<(r.length-3|0)?1:0:t);return a?MY(n):a}var s0=[Gl,"CamlinternalLazy.Undefined",zH()],b0=pE,l0=cB,B0=cB,j0=[0,0,0];function k0(r){if(0!==function(r){return Array.isArray(r)&&r[0]===r[0]>>>0&&IV(r,W,D)?0:1}(r))throw gQ(s0,1);var e=r[1];r[1]=0;try{var n=uz(e,0);return r[1]=n,function(r){IV(r,D,ae)}(r),n}catch(e){var t=NL(e);throw r[1]=function(r){throw gQ(t,0)},function(r){IV(r,D,W)}(r),gQ(t,0)}}function p0(r){return 0}function m0(r,e,n){var t=uz(r,0);if(!t)return uz(e,0);var a=t[2];return[0,t[1],function(r){return m0(a,e,r)}]}function d0(r,e,n){var t=uz(e,0);if(!t)return 0;var a=t[2];return[0,uz(r,t[1]),function(e){return d0(r,a,e)}]}function _0(r,e,n){for(var t=e;;){var a=uz(t,0);if(!a)return 0;var u=a[2],f=uz(r,a[1]);if(f)break;t=u}return[0,f[1],function(e){return _0(r,u,e)}]}function h0(r,e,n){for(var t=e;;){var a=uz(t,0);if(!a)return 0;var u=a[2],f=a[1];if(uz(r,f))break;t=u}return[0,f,function(e){return h0(r,u,e)}]}function x0(r,e,n){var t=uz(e,0);if(!t)return 0;var a=t[2];return m0(uz(r,t[1]),function(e){return x0(r,a,e)})}function y0(r,e,n){var t=uz(r,e);if(!t)return 0;var a=t[1],u=a[2];return[0,a[1],function(e){return y0(r,u,e)}]}function w0(r,e){return r?r[1]:e}function g0(r){return r?r[1]:MY("option is None")}function q0(r,e){return e?[0,uz(r,e[1])]:0}function I0(r,e){return e?uz(r,e[1]):0}function D0(r){return r?0:1}function E0(r){return r?1:0}function N0(r){return r?[0,r[1],0]:0}function T0(r){return 0<=r&&LK>=r?r:MY("Char.chr")}function F0(r){return 25>>0?r:r+32|0}function M0(r){return 25>>0?r:r+-32|0}function P0(r,e){return r-e|0?0:1}function U0(r){var e=0<=r?1:0,n=e?r<=55295?1:0:e;if(n)var t=n;else{var a=Ct<=r?1:0;t=a?r<=c?1:0:a}return t?r:MY(VH("%X",r)+" is not a Unicode scalar value")}function G0(r){for(var e=0,n=r;;){if(!n)return e;e=e+1|0,n=n[2]}}function $0(r){return r?r[1]:FY("hd")}function K0(r){return r?r[2]:FY("tl")}function O0(r,e){if(0>e)return MY(b0);for(var n=r,t=e;;){if(!n)return FY("nth");var a=n[2],u=n[1];if(0===t)return u;n=a,t=t-1|0}}function R0(r,e){for(var n=r,t=e;;){if(!n)return t;var a=[0,n[1],t];n=n[2],t=a}}function Q0(r){return R0(r,0)}function C0(r){return r?QY(r[1],C0(r[2])):0}function H0(r,e){if(!e)return 0;var n=e[2],t=e[1];if(!n)return[0,uz(r,t),0];for(var a=n[2],u=n[1],f=uz(r,t),i=[0,uz(r,u),BN],v=i,c=1,A=a;;){if(A){var o=A[2],s=A[1];if(o){var b=o[2],l=o[1],B=uz(r,s),j=[0,uz(r,l),BN];v[c+1]=[0,B,j],v=j,c=1,A=b;continue}v[c+1]=[0,uz(r,s),0]}else v[c+1]=0;return[0,f,i]}}function V0(r,e){if(!e)return 0;var n=e[2],t=e[1];if(!n)return[0,fz(r,0,t),0];for(var a=n[2],u=n[1],f=fz(r,0,t),i=[0,fz(r,1,u),BN],v=i,c=1,A=2,o=a;;){if(o){var s=o[2],b=o[1];if(s){var l=s[2],B=s[1],j=fz(r,A,b),k=[0,fz(r,A+1|0,B),BN];v[c+1]=[0,j,k],v=k,c=1,A=A+2|0,o=l;continue}v[c+1]=[0,fz(r,A,b),0]}else v[c+1]=0;return[0,f,i]}}function L0(r,e){for(var n=e;;){if(!n)return 0;var t=n[2];uz(r,n[1]),n=t}}function z0(r,e,n){for(var t=e,a=n;;){if(!a)return t;var u=a[2];t=fz(r,t,a[1]),a=u}}function S0(r,e,n){return e?fz(r,e[1],S0(r,e[2],n)):n}function Z0(r,e,n){if(e){var t=e[2],a=e[1];if(t){if(n){var u=n[2];if(u)for(var f=u[2],i=u[1],v=t[2],c=t[1],A=fz(r,a,n[1]),o=[0,fz(r,c,i),BN],s=o,b=1,l=v,B=f;;){r:{if(l){var j=l[2],k=l[1];if(j){if(B){var p=B[2];if(p){var m=p[2],d=p[1],_=j[2],h=j[1],x=fz(r,k,B[1]),y=[0,fz(r,h,d),BN];s[b+1]=[0,x,y],s=y,b=1,l=_,B=m;continue}}}else if(B&&!B[2]){s[b+1]=[0,fz(r,k,B[1]),0];break r}}else if(!B){s[b+1]=0;break r}s[b+1]=MY(B0)}return[0,A,o]}}}else if(n&&!n[2])return[0,fz(r,a,n[1]),0]}else if(!n)return 0;return MY(l0)}function W0(r,e,n,t){if(e){if(n){var a=n[1];return iz(r,e[1],a,W0(r,e[2],n[2],t))}}else if(!n)return t;return MY("List.fold_right2")}function X0(r,e){for(var n=e;;){if(!n)return 1;var t=n[2],a=uz(r,n[1]);if(!a)return a;n=t}}function J0(r,e){for(var n=e;;){if(!n)return 0;var t=n[2],a=uz(r,n[1]);if(a)return a;n=t}}function Y0(r,e){for(var n=e;;){if(!n)return 0;var t=0===nH(n[1],r)?1:0,a=n[2];if(t)return t;n=a}}function r1(r,e){for(var n=e;;){if(!n)throw gQ(dz,1);var t=n[1],a=n[2],u=t[2];if(0===nH(t[1],r))return u;n=a}}function e1(r,e){for(var n=e;;){if(!n)return 0;var t=n[1],a=n[2],u=t[2];if(0===nH(t[1],r))return[0,u];n=a}}function n1(r,e){for(var n=e;;){if(!n)return 0;var t=0===nH(n[1][1],r)?1:0,a=n[2];if(t)return t;n=a}}function t1(r,e){for(var n=e;;){if(!n)return 0;var t=n[2],a=uz(r,n[1]);if(a)return a;n=t}}function a1(r,e){for(var n=e;;){if(!n)return 0;var t=n[2],a=n[1];if(uz(r,a))break;n=t}for(var u=[0,a,BN],f=u,i=1,v=t;;){if(!v)return f[i+1]=0,u;var c=v[2],A=v[1];if(uz(r,A)){var o=[0,A,BN];f[i+1]=o,f=o,i=1,v=c}else v=c}}function u1(r,e){for(var n=e;;){if(!n)return 0;var t=n[2],a=uz(r,n[1]);if(a)break;n=t}for(var u=[0,a[1],BN],f=u,i=1,v=t;;){if(!v)return f[i+1]=0,u;var c=v[2],A=uz(r,v[1]);if(A){var o=[0,A[1],BN];f[i+1]=o,f=o,i=1,v=c}else v=c}}function f1(r,e){for(var n=e;;){if(!n)return 0;var t=n[2],a=uz(r,n[1]);if(a)break;n=t}for(var u=[0,a[1],BN],f=t,i=a[2],v=1,c=u;;)for(var A=c,o=v,s=i;;){if(!s){if(f){var b=f[2],l=uz(r,f[1]);f=b,i=l,v=o,c=A;break}return A[o+1]=0,u}var B=[0,s[1],BN],j=s[2];A[o+1]=B,A=B,o=1,s=j}}function i1(r,e){if(r<0&&MY("List.take"),0!==r&&e)for(var n=[0,e[1],BN],t=n,a=1,u=r-1|0,f=e[2];;){if(0===u||!f)return t[a+1]=0,n;var i=[0,f[1],BN],v=f[2];t[a+1]=i,t=i,a=1,u=u-1|0,f=v}return 0}function v1(r,e){r<0&&MY("List.drop");for(var n=0,t=e;;){if(t){var a=t[2];if(n>1,B=t(l,n),j=B[1],k=t(e-l|0,B[2]),p=j,m=k[1],d=0,_=k[2];;){if(p){if(m){var h=m[1],x=p[1],y=m[2],w=p[2];if(0>1,B=n(l,t),j=B[1],k=n(e-l|0,B[2]),p=j,m=k[1],d=0,_=k[2];;){if(p){if(m){var h=m[1],x=p[1],y=m[2],w=p[2];if(00)if(0===e&&(n>=r.l||2===r.t&&n>=r.c.length))0===t?(r.c=kQ,r.t=2):(r.c=fC(n,String.fromCharCode(t)),r.t=n===r.l?0:2);else for(4!==r.t&&nC(r),n+=e;e=e){var t=tH(n);return tC(r,e,t,0,n),t}return MY("String.sub / Bytes.sub")}function g1(r,e,n){return _L(w1(r,e,n))}function q1(r,e,n,t,a){if(!(0<=a&&0<=e&&(mH(r)-a|0)>=e&&0<=t&&(mH(n)-a|0)>=t))return MY("Bytes.blit");tC(r,e,n,t,a)}function I1(r,e,n,t,a){if(!(0<=a&&0<=e&&(AV(r)-a|0)>=e&&0<=t&&(mH(n)-a|0)>=t))return MY("String.blit / Bytes.blit_string");bC(r,e,n,t,a)}function D1(r){var e=r-9|0;r:{if(4>>0){if(23!==e)break r}else if(2===e)break r;return 1}return 0}function E1(r,e){var n=mH(e);if(0===n)return e;var t=tH(n),a=n-1|0;if(a>=0)for(var u=0;;){mC(t,u,uz(r,BC(e,u)));var f=u+1|0;if(a===u)break;u=f}return t}function N1(r,e){return _L(d1(r,e))}function T1(r,e,n){return _L(w1(sC(r),e,n))}function F1(r,e){if(!e)return"";var n=AV(r);r:{for(var t=0,a=e,u=0;;){if(!a){var f=t;break r}var i=a[1];if(!a[2])break;var v=a[2],c=(AV(i)+n|0)+t|0;t<=c?(t=c,a=v):(t=MY("String.concat"),a=v)}f=AV(i)+t|0}for(var A=tH(f),o=u,s=e;;){if(s){var b=s[1];if(s[2]){var l=s[2];bC(b,0,A,o,AV(b)),bC(r,0,A,o+AV(b)|0,n),o=(o+AV(b)|0)+n|0,s=l;continue}bC(b,0,A,o,AV(b))}return _L(A)}}function M1(r,e){return _L(E1(r,sC(e)))}function P1(r){var e=r-9|0;r:{if(4>>0){if(23!==e)break r}else if(2===e)break r;return 1}return 0}function U1(r){if(r===kQ)return r;if(!P1(oV(r,0))&&!P1(oV(r,AV(r)-1|0)))return r;for(var e=sC(r),n=mH(e),t=[0,0];!(t[1]>=n)&&D1(BC(e,t[1]));)t[1]++;for(var a=[0,n-1|0];;){if(!(t[1]<=a[1]&&D1(BC(e,a[1]))))return _L(t[1]<=a[1]?w1(e,t[1],1+(a[1]-t[1]|0)|0):_1);a[1]--}}function G1(r){var e=sC(r),n=[0,0],t=mH(e)-1|0;if(t>=0)for(var a=0;;){var u=BC(e,a);r:{e:{n:{if(32<=u){var f=u+-34|0;if(58>>0){if(93<=f)break n}else if(56>>0)break e;var i=1;break r}if(11<=u){if(13===u)break e}else if(8<=u)break e}i=4;break r}i=2}n[1]=n[1]+i|0;var v=a+1|0;if(t===a)break;a=v}if(n[1]===mH(e))var c=e;else{var A=tH(n[1]);n[1]=0;var o=mH(e)-1|0;if(o<0)c=A;else for(var s=0;;){var b=BC(e,s);r:{e:{n:{if(35<=b){if(92!==b){if(lj<=b)break e;break n}}else{if(32>b){if(14<=b)break e;switch(b){case 8:mC(A,n[1],92),n[1]++,mC(A,n[1],98);break r;case 9:mC(A,n[1],92),n[1]++,mC(A,n[1],fM);break r;case 10:mC(A,n[1],92),n[1]++,mC(A,n[1],Wr);break r;case 13:mC(A,n[1],92),n[1]++,mC(A,n[1],Zc);break r;default:break e}}if(34>b)break n}mC(A,n[1],92),n[1]++,mC(A,n[1],b);break r}mC(A,n[1],b);break r}mC(A,n[1],92),n[1]++,mC(A,n[1],48+(b/T$|0)|0),n[1]++,mC(A,n[1],48+((b/10|0)%10|0)|0),n[1]++,mC(A,n[1],48+(b%10|0)|0)}n[1]++;var l=s+1|0;if(o===s){c=A;break}s=l}}return e===c?r:_L(c)}function $1(r,e,n,t){for(var a=n;;){if(e<=a)throw gQ(dz,1);if(oV(r,a)===t)return a;a=a+1|0}}function K1(r,e,n,t){for(var a=n;;){if(e<=a)return 0;if(oV(r,a)===t)return[0,a];a=a+1|0}}function O1(r,e){return K1(r,AV(r),0,e)}function R1(r,e,n){var t=AV(r);return 0<=e&&t>=e?$1(r,t,e,n):MY("String.index_from / Bytes.index_from")}function Q1(r,e){var n=AV(r),t=0;if(n<0)return MY("String.contains_from / Bytes.contains_from");try{$1(r,n,0,e);return 1}catch(t){var a=NL(t);if(a===dz)return 0;throw gQ(a,0)}}function C1(r){return _L(E1(M0,sC(r)))}function H1(r){return _L(E1(F0,sC(r)))}function V1(r,e){var n=AV(r),t=n<=AV(e)?1:0;if(!t)return t;for(var a=0;;){if(a===n)return 1;if(oV(e,a)!==oV(r,a))return 0;a=a+1|0}}function L1(r,e){var n=[0,0],t=[0,AV(e)],a=AV(e)-1|0;if(a>=0)for(var u=a;;){if(oV(e,u)===r){var f=n[1];n[1]=[0,T1(e,u+1|0,(t[1]-u|0)-1|0),f],t[1]=u}var i=u-1|0;if(0===u)break;u=i}var v=n[1];return[0,T1(e,0,t[1]),v]}var z1=YC,S1=kD;function Z1(r){var e=sC(r);function n(r,t){if(r===mH(e))return 0;var a=r+1|0;return[0,jC(e,r),function(r){return n(a,r)}]}return function(r){return n(0)}}function W1(r){for(var e=[0,0],n=[0,d1(mc,0)],t=r;;){var a=uz(t,0);if(!a)return _L(w1(n[1],0,e[1]));var u=a[2],f=a[1];if(e[1]===mH(n[1])){var i=p1(2*mH(n[1])|0,i0);mH(n[1])===i&&FY("Bytes.of_seq: cannot grow bytes");var v=d1(i,0);q1(n[1],0,v,0,e[1]),n[1]=v}dC(n[1],e[1],f),e[1]++,t=u}}function X1(r,e){return pC(sC(r),e)}function J1(r,e){if(0===r)return[0];if(0>r)return MY(S1);var n=NQ(r,uz(e,0)),t=r-1|0;if(t>=1)for(var a=1;;){n[a+1]=uz(e,a);var u=a+1|0;if(t===a)break;a=u}return n}function Y1(r,e,n,t,a){if(!(0<=a&&0<=e&&(r.length-1-a|0)>=e&&0<=t&&(n.length-1-a|0)>=t))return MY("Array.blit");!function(r,e,n,t,a){if(t<=e)for(var u=1;u<=a;u++)n[t+u]=r[e+u];else for(u=a;u>=1;u--)n[t+u]=r[e+u]}(r,e,n,t,a)}function r2(r,e){var n=e.length-1;if(0===n)return[0];var t=NQ(n,uz(r,e[1])),a=n-1|0;if(a>=1)for(var u=1;;){t[u+1]=uz(r,e[u+1]);var f=u+1|0;if(a===u)break;u=f}return t}function e2(r){for(var e=r.length-2|0,n=0;;){if(0>e)return n;var t=[0,r[e+1],n];e=e-1|0,n=t}}function n2(r,e){for(var n=r,t=e;;){if(!t)return n;n=n+1|0,t=t[2]}}function t2(r){if(!r)return[0];for(var e=r[2],n=r[1],t=NQ(n2(0,r),n),a=1,u=e;;){if(!u)return t;var f=u[2];t[a+1]=u[1],a=a+1|0,u=f}}function a2(r){function e(n,t){if(n>=r.length-1)return 0;var a=n+1|0;return[0,r[n+1],function(r){return e(a,r)}]}return function(r){return e(0)}}function u2(r){for(var e=r,n=0;;){var t=uz(e,0);if(!t)break;e=t[2],n=[0,t[1],n]}if(!n)return[0];for(var a=n[2],u=n[1],f=n2(0,n),i=NQ(f,u),v=f-2|0,c=a;;){if(!c)return i;var A=c[2];i[v+1]=c[1],v=v-1|0,c=A}}function f2(r){return SH(r,0)?r:0|-r}var i2=tP,v2=PF;function c2(r){return-1^r}function A2(r){return VH($M,r)}var o2=JC,s2=NC(0,0,0);function b2(r){return SH(r,s2)?r:fV(r)}function l2(r){return hV(r,Iz)}function B2(r){return iV($M,r)}function j2(r,e,n){var t=function(r,e,n){r.lex_default||(r.lex_base=NV(r[1]),r.lex_backtrk=NV(r[2]),r.lex_check=NV(r[5]),r.lex_trans=NV(r[4]),r.lex_default=NV(r[3]));var t,a=e,u=n[2];for(a>=0?(n[7]=n[5]=n[6],n[8]=-1):a=-a-1;;){var f=r.lex_base[a];if(f<0)return-f-1;var i=r.lex_backtrk[a];if(i>=0&&(n[7]=n[6],n[8]=i),n[6]>=n[3]){if(0===n[9])return-a-1;t=mc}else t=BC(u,n[6]),n[6]++;if((a=r.lex_check[f+t]===a?r.lex_trans[f+t]:r.lex_default[a])<0){if(n[6]=n[7],-1!==n[8])return n[8];UC("lexing: empty token")}else t===mc&&(n[9]=0)}}(r,e,n),a=0<=t?1:0;if(a?n[12]!==Mz?1:0:a){n[11]=n[12];var u=n[12];n[12]=[0,u[1],u[2],u[3],n[4]+n[6]|0]}return t}function k2(r,e){var n=r?r[1]:1,t=n?Pz:Mz,a=n?Pz:Mz,u=tH(mB);return[0,function(r){var n=JY(e,u,0,mH(u)),t=0=0)for(var A=0;;){var o=gC(v,A)[A+1];0<=o&&(gC(v,A)[A+1]=o-i|0);var s=A+1|0;if(c===A)break;A=s}}return q1(u,0,r[2],r[3],t),r[3]=r[3]+t|0,0},tH(Jo),0,0,0,0,0,0,0,[0],a,t]}function p2(r,e){var n=r?r[1]:1,t=y1(e),a=n?Pz:Mz,u=n?Pz:Mz;return[0,function(r){return r[9]=1,0},t,mH(t),0,0,0,0,0,1,[0],u,a]}function m2(r,e,n){return g1(r[2],e,n-e|0)}function d2(r){var e=r[12];e!==Mz&&(r[12]=[0,e[1],e[2]+1|0,e[4],e[4]])}var _2=[Gl,"Stdlib.Parsing.Parse_error",zH()];function h2(r,e){function n(e,n){if(2===e){if(n){var a=n[2];if(a){var u=a[1],f=n[1],i=a[2],v=fz(r,f,u);return[0,0===v?[0,f,0]:0<=v?[0,u,[0,f,0]]:[0,f,[0,u,0]],i]}}}else if(3===e&&n){var c=n[2];if(c){var A=c[2];if(A){var o=A[1],s=c[1],b=n[1],l=A[2],B=fz(r,b,s);if(0===B)var j=fz(r,s,o),k=0===j?[0,s,0]:0<=j?[0,o,[0,s,0]]:[0,s,[0,o,0]];else if(0<=B){var p=fz(r,b,o);if(0===p)k=[0,s,[0,b,0]];else if(0<=p){var m=fz(r,s,o);k=0===m?[0,s,[0,b,0]]:0<=m?[0,o,[0,s,[0,b,0]]]:[0,s,[0,o,[0,b,0]]]}else k=[0,s,[0,b,[0,o,0]]]}else{var d=fz(r,s,o);if(0===d)k=[0,b,[0,s,0]];else if(0<=d){var _=fz(r,b,o);k=0===_?[0,b,[0,s,0]]:0<=_?[0,o,[0,b,[0,s,0]]]:[0,b,[0,o,[0,s,0]]]}else k=[0,b,[0,s,[0,o,0]]]}return[0,k,l]}}}for(var h=e>>1,x=t(h,n),y=x[1],w=t(e-h|0,x[2]),g=y,q=w[1],I=0,D=w[2];;){if(g){if(q){var E=q[2],N=q[1],T=g[2],F=g[1],M=fz(r,F,N);if(0===M){g=T,q=E,I=[0,F,I];continue}if(0>1,x=n(h,t),y=x[1],w=n(e-h|0,x[2]),g=y,q=w[1],I=0,D=w[2];;){if(g){if(q){var E=q[2],N=q[1],T=g[2],F=g[1],M=fz(r,F,N);if(0===M){g=T,q=E,I=[0,F,I];continue}if(0<=M){q=E,I=[0,N,I];continue}g=T,I=[0,F,I];continue}var P=R0(g,I)}else P=R0(q,I);return[0,P,D]}}var a=G0(e);return 2<=a?n(a,e)[1]:e}var x2=tO,y2=tO,w2=tO,g2=tO,q2=[0,0,0,0],I2=[0,"set.ml",571,18],D2=Be,E2=Be,N2=Be,T2=Be,F2=[0,0,0,0],M2=[0,"map.ml",uO,10];function P2(r){function e(r){return r?r[4]:0}function n(r,e,n){var t=r?r[4]:0,a=n?n[4]:0;return[0,r,e,n,a<=t?t+1|0:a+1|0]}function t(r,t,a){var u=r?r[4]:0,f=a?a[4]:0;if((f+2|0)=f)return[0,r,t,a,f<=u?u+1|0:f+1|0];if(!a)return MY(g2);var b=a[3],l=a[2],B=a[1];if(e(B)<=e(b))return n(n(r,t,B),l,b);if(!B)return MY(w2);var j=B[2],k=B[1],p=n(B[3],l,b);return n(n(r,t,k),j,p)}function a(e,n){if(!n)return[0,0,e,0,1];var u=n[3],f=n[2],i=n[1],v=fz(r[1],e,f);if(0===v)return n;if(0<=v){var c=a(e,u);return u===c?n:t(i,f,c)}var A=a(e,i);return i===A?n:t(A,f,u)}function u(r){return[0,0,r,0,1]}function f(r,e){if(!e)return u(r);var n=e[3],a=e[2];return t(f(r,e[1]),a,n)}function i(r,e){if(!e)return u(r);var n=e[2];return t(e[1],n,i(r,e[3]))}function v(r,e,a){if(!r)return f(e,a);if(!a)return i(e,r);var u=a[4],c=r[4],A=a[3],o=a[2],s=a[1],b=r[3],l=r[2],B=r[1];return(u+2|0)=r>>>0)switch(r){case 0:return[0,0,e];case 1:if(e)return[0,[0,0,e[1],0,1],e[2]];break;case 2:if(e){var t=e[2];if(t)return[0,[0,[0,0,e[1],0,1],t[1],0,2],t[2]]}break;default:if(e){var a=e[2];if(a){var u=a[2];if(u)return[0,[0,[0,0,e[1],0,1],a[1],[0,0,u[1],0,1],2],u[2]]}}}var f=r/2|0,i=l(f,e),v=i[2],c=i[1];if(!v)throw gQ([0,xz,I2],1);var A=v[1],o=l((r-f|0)-1|0,v[2]),s=o[2];return[0,n(c,A,o[1]),s]};return l(G0(b),b)[1]}return a(o[1],a(s,a(A,a(v,u(f)))))},,function(r){var e=l(r,0);return function(r){return j(e)}},,,function(r){return function(r,e){for(var n=r,t=e;;){var u=uz(n,0);if(!u)return t;n=u[2],t=a(u[1],t)}}(r,0)}]}function U2(r){function e(r){return r?r[5]:0}function n(r,n,t,a){var u=e(r),f=e(a);return[0,r,n,t,a,f<=u?u+1|0:f+1|0]}function t(r,e){return[0,0,r,e,0,1]}function a(r,t,a,u){var f=r?r[5]:0,i=u?u[5]:0;if((i+2|0)=i)return[0,r,t,a,u,i<=f?f+1|0:i+1|0];if(!u)return MY(T2);var j=u[4],k=u[3],p=u[2],m=u[1];if(e(m)<=e(j))return n(n(r,t,a,m),p,k,j);if(!m)return MY(N2);var d=m[3],_=m[2],h=m[1],x=n(m[4],p,k,j);return n(n(r,t,a,h),_,d,x)}function u(e,n,t){if(!t)return[0,0,e,n,0,1];var f=t[4],i=t[3],v=t[2],c=t[1],A=t[5],o=fz(r[1],e,v);if(0===o)return i===n?t:[0,c,e,n,f,A];if(0<=o){var s=u(e,n,f);return f===s?t:a(c,v,i,s)}var b=u(e,n,c);return c===b?t:a(b,v,i,f)}function f(r){for(var e=r;;){if(!e)throw gQ(dz,1);var n=e[1];if(!n)return[0,e[2],e[3]];e=n}}function i(r){if(!r)return MY("Map.remove_min_elt");var e=r[1];if(!e)return r[4];var n=r[4],t=r[3],u=r[2];return a(i(e),u,t,n)}function v(r,e){if(!r)return e;if(!e)return r;var n=f(e),t=n[2];return a(r,n[1],t,i(e))}function c(r,e,n){if(!n)return t(r,e);var u=n[4],f=n[3],i=n[2];return a(c(r,e,n[1]),i,f,u)}function A(r,e,n){if(!n)return t(r,e);var u=n[3],f=n[2];return a(n[1],f,u,A(r,e,n[4]))}function o(r,e,t,u){if(!r)return c(e,t,u);if(!u)return A(e,t,r);var f=u[5],i=r[5],v=u[4],s=u[3],b=u[2],l=u[1],B=r[4],j=r[3],k=r[2],p=r[1];return(f+2|0)=(n+e|0));)t[1]=2*t[1]|0;i0a){if(32!==a){if(43>a)break r;switch(a+-43|0){case 5:if(t>=(n+2|0))break e;if(1>=t)break e;if(WP!==BL(e,1)&&88!==BL(e,1))break e;var u=d1(n+2|0,48);return dC(u,1,BL(e,1)),I1(e,2,u,4+(n-t|0)|0,t-2|0),_L(u);case 0:case 2:break;case 1:case 3:case 4:break r;default:break e}}if(t>=(n+1|0))break r;var f=d1(n+1|0,48);return dC(f,0,a),I1(e,1,f,2+(n-t|0)|0,t-1|0),_L(f)}if(71<=a){if(5>>0)break r}else if(65>a)break r}if(tr)return e;var n=[0,0],t=AV(e)-1|0;if(t>=0)for(var a=0;;){9>=oV(e,a)+dc>>>0&&n[1]++;var u=a+1|0;if(t===a)break;a=u}var f=n[1],i=tH(AV(e)+((f-1|0)/3|0)|0),v=[0,0];function c(r){dC(i,v[1],r),v[1]++}var A=[0,1+((f-1|0)%3|0)|0],o=AV(e)-1|0;if(o>=0)for(var s=0;;){var b=oV(e,s);9>>0||(0===A[1]&&(c(95),A[1]=3),A[1]--),c(b);var l=s+1|0;if(o===s)break;s=l}return _L(i)}function y6(r,e){switch(r){case 1:var n="%+d";break;case 2:n="% d";break;case 4:n="%+i";break;case 5:n="% i";break;case 6:n="%x";break;case 7:n="%#x";break;case 8:n="%X";break;case 9:n="%#X";break;case 10:n="%o";break;case 11:n="%#o";break;case 0:case 13:n=Uz;break;case 3:case 14:n="%i";break;default:n="%u"}return x6(r,VH(n,e))}function w6(r,e){switch(r){case 1:var n="%+ld";break;case 2:n="% ld";break;case 4:n="%+li";break;case 5:n="% li";break;case 6:n=J3;break;case 7:n="%#lx";break;case 8:n="%lX";break;case 9:n="%#lX";break;case 10:n="%lo";break;case 11:n="%#lo";break;case 0:case 13:n="%ld";break;case 3:case 14:n="%li";break;default:n="%lu"}return x6(r,VH(n,e))}function g6(r,e){switch(r){case 1:var n="%+nd";break;case 2:n="% nd";break;case 4:n="%+ni";break;case 5:n="% ni";break;case 6:n="%nx";break;case 7:n="%#nx";break;case 8:n="%nX";break;case 9:n="%#nX";break;case 10:n="%no";break;case 11:n="%#no";break;case 0:case 13:n="%nd";break;case 3:case 14:n="%ni";break;default:n="%nu"}return x6(r,VH(n,e))}function q6(r,e){switch(r){case 1:var n="%+Ld";break;case 2:n="% Ld";break;case 4:n="%+Li";break;case 5:n="% Li";break;case 6:n=X3;break;case 7:n="%#Lx";break;case 8:n="%LX";break;case 9:n="%#LX";break;case 10:n="%Lo";break;case 11:n="%#Lo";break;case 0:case 13:n="%Ld";break;case 3:case 14:n="%Li";break;default:n="%Lu"}return x6(r,iV(n,e))}function I6(r,e,n){function t(t){switch(r[1]){case 0:var a=45;break;case 1:a=43;break;default:a=32}return function(r,e,n){if(!Number.isFinite(r))return Number.isNaN(r)?oH(w_):oH(r>0?bw:"-infinity");var t=0===r&&1/r===Number.NEGATIVE_INFINITY?1:r>=0?0:1;t&&(r=-r);var a=0;if(0===r);else if(r<1)for(;r<1&&a>-bA;)r*=2,a--;else for(;r>=2;)r/=2,a++;var u=a<0?kQ:og,f=kQ;if(t)f=iF;else switch(n){case 43:f=og;break;case 32:f=Wy}if(e>=0&&e<13){var i=Math.pow(2,4*e);r=Math.round(r*i)/i}var v=r.toString(16);if(e>=0){var c=v.indexOf(Ku);if(c<0)v+=Ku+fC(e,IK);else{var A=c+1+e;v.length>>0){if(55!==v)break e}else if(21>=v-1>>>0)break e;var c=1;break r}f=f+1|0;continue}c=0}return a(c?u:u+Ku)}case 6:return t();case 7:return C1(t());case 8:return a(t());default:return HH(h6(r,e),n)}}function D6(r,e,n,t){r:{e:{n:{t:{a:{u:{f:{i:{v:{c:{A:{var a=e,u=n,f=t;o:for(;;){if("number"==typeof f)return uz(a,u);switch(f[0]){case 0:break r;case 1:break e;case 2:break n;case 3:return M6(a,u,f[2],f[1],_6);case 4:return P6(a,u,f[4],f[2],f[3],y6,f[1]);case 5:return P6(a,u,f[4],f[2],f[3],w6,f[1]);case 6:return P6(a,u,f[4],f[2],f[3],g6,f[1]);case 7:return P6(a,u,f[4],f[2],f[3],q6,f[1]);case 8:break t;case 9:return M6(a,u,f[2],f[1],L3);case 10:u=[7,u],f=f[1];break;case 11:u=[2,u,f[1]],f=f[2];break;case 12:u=[3,u,f[1]],f=f[2];break;case 13:break a;case 14:break u;case 15:break f;case 16:break i;case 17:u=[0,u,f[1]],f=f[2];break;case 18:var i=f[1];if(0===i[0]){let r=u,e=a,n=f[2];a=function(t){return E6(e,[1,r,[0,t]],n)},u=0,f=i[1][1]}else{let r=u,e=a,n=f[2];a=function(t){return E6(e,[1,r,[1,t]],n)},u=0,f=i[1][1]}break;case 19:throw gQ([0,xz,n6],1);case 20:break v;case 21:break c;case 22:break A;case 23:break o;default:var v=f[3],c=f[1],A=uz(f[2],0);return r<50?U6(r+1|0,a,u,v,c,A):IL(U6,[0,a,u,v,c,A])}}var o=f[2],s=f[1];if("number"==typeof s){if(2===s)throw gQ([0,xz,t6],1);return r<50?F6(r+1|0,a,u,o):IL(F6,[0,a,u,o])}if(9!==s[0])return r<50?F6(r+1|0,a,u,o):IL(F6,[0,a,u,o]);var b=s[2];return r<50?N6(r+1|0,a,u,b,o):IL(N6,[0,a,u,b,o])}var l=f[1];return function(r){return E6(a,[5,u,r],l)}}var B=f[2];return function(r){return E6(a,[4,u,VH("%u",r)],B)}}var j=f[3],k=[8,u,"Printf: bad conversion %["];return function(r){return E6(a,k,j)}}var p=f[1];return function(r){return E6(a,[6,u,r],p)}}var m=f[1];return function(r,e){return E6(a,[6,u,function(n){return fz(r,n,e)}],m)}}var d=f[3],_=f[2];return function(r){var e=j6(r[1],EY(Q3(_)));if("number"==typeof e[2])return E6(a,u,TY(e[1],d));throw gQ(V3,1)}}var h=f[3],x=f[2],y=P3(16);R3(y,x);var w=K3(y);return function(r){return E6(a,[4,u,w],h)}}var g=f[4],q=f[3],I=f[2],D=f[1];if("number"==typeof I){if("number"==typeof q)return q?function(r,e){return E6(a,[4,u,I6(D,r,e)],g)}:function(r){return E6(a,[4,u,I6(D,M3(D),r)],g)};var E=q[1];return function(r){return E6(a,[4,u,I6(D,E,r)],g)}}if(0===I[0]){var N=I[2],T=I[1];if("number"==typeof q)return q?function(r,e){return E6(a,[4,u,m6(T,N,I6(D,r,e))],g)}:function(r){return E6(a,[4,u,m6(T,N,I6(D,M3(D),r))],g)};var F=q[1];return function(r){return E6(a,[4,u,m6(T,N,I6(D,F,r))],g)}}var M=I[1];if("number"==typeof q)return q?function(r,e,n){return E6(a,[4,u,m6(M,r,I6(D,e,n))],g)}:function(r,e){return E6(a,[4,u,m6(M,r,I6(D,M3(D),e))],g)};var P=q[1];return function(r,e){return E6(a,[4,u,m6(M,r,I6(D,P,e))],g)}}return M6(a,u,f[2],f[1],function(r){return r})}var U=f[1];return function(r){e:{n:{if(40<=r){if(92===r){var e=z3;break e}if(lj<=r)break n}else{if(32>r){if(14<=r)break n;switch(r){case 8:e="\\b";break e;case 9:e=S3;break e;case 10:e=Z3;break e;case 13:e=W3;break e;default:break n}}if(39<=r){e="\\'";break e}}var n=tH(1);mC(n,0,r);e=_L(n);break e}var t=tH(4);mC(t,0,92),mC(t,1,48+(r/T$|0)|0),mC(t,2,48+((r/10|0)%10|0)|0),mC(t,3,48+(r%10|0)|0);e=_L(t)}var f=AV(e),i=d1(f+2|0,39);return bC(e,0,i,1,f),E6(a,[4,u,_L(i)],U)}}var G=f[1];return function(r){return E6(a,[5,u,r],G)}}function E6(r,e,n){return qL(D6(0,r,e,n))}function N6(r,e,n,t,a){if("number"==typeof t)return r<50?F6(r+1|0,e,n,a):IL(F6,[0,e,n,a]);switch(t[0]){case 0:var u=t[1];return function(r){return T6(e,n,u,a)};case 1:var f=t[1];return function(r){return T6(e,n,f,a)};case 2:var i=t[1];return function(r){return T6(e,n,i,a)};case 3:var v=t[1];return function(r){return T6(e,n,v,a)};case 4:var c=t[1];return function(r){return T6(e,n,c,a)};case 5:var A=t[1];return function(r){return T6(e,n,A,a)};case 6:var o=t[1];return function(r){return T6(e,n,o,a)};case 7:var s=t[1];return function(r){return T6(e,n,s,a)};case 8:var b=t[2];return function(r){return T6(e,n,b,a)};case 9:var l=t[3],B=t[2],j=H3(Q3(t[1]),B);return function(r){return T6(e,n,NY(j,l),a)};case 10:var k=t[1];return function(r,t){return T6(e,n,k,a)};case 11:var p=t[1];return function(r){return T6(e,n,p,a)};case 12:var m=t[1];return function(r){return T6(e,n,m,a)};case 13:throw gQ([0,xz,a6],1);default:throw gQ([0,xz,u6],1)}}function T6(r,e,n,t){return qL(N6(0,r,e,n,t))}function F6(r,e,n,t){var a=[8,n,"Printf: bad conversion %_"];return r<50?D6(r+1|0,e,a,t):IL(D6,[0,e,a,t])}function M6(r,e,n,t,a){if("number"==typeof t)return function(t){return E6(r,[4,e,uz(a,t)],n)};if(0===t[0]){var u=t[2],f=t[1];return function(t){return E6(r,[4,e,m6(f,u,uz(a,t))],n)}}var i=t[1];return function(t,u){return E6(r,[4,e,m6(i,t,uz(a,u))],n)}}function P6(r,e,n,t,a,u,f){if("number"==typeof t){if("number"==typeof a)return a?function(t,a){return E6(r,[4,e,d6(t,fz(u,f,a))],n)}:function(t){return E6(r,[4,e,fz(u,f,t)],n)};var i=a[1];return function(t){return E6(r,[4,e,d6(i,fz(u,f,t))],n)}}if(0===t[0]){var v=t[2],c=t[1];if("number"==typeof a)return a?function(t,a){return E6(r,[4,e,m6(c,v,d6(t,fz(u,f,a)))],n)}:function(t){return E6(r,[4,e,m6(c,v,fz(u,f,t))],n)};var A=a[1];return function(t){return E6(r,[4,e,m6(c,v,d6(A,fz(u,f,t)))],n)}}var o=t[1];if("number"==typeof a)return a?function(t,a,i){return E6(r,[4,e,m6(o,t,d6(a,fz(u,f,i)))],n)}:function(t,a){return E6(r,[4,e,m6(o,t,fz(u,f,a))],n)};var s=a[1];return function(t,a){return E6(r,[4,e,m6(o,t,d6(s,fz(u,f,a)))],n)}}function U6(r,e,n,t,a,u){if(a){var f=a[1];return function(r){return function(r,e,n,t,a){return qL(U6(0,r,e,n,t,a))}(e,n,t,f,uz(u,r))}}var i=[4,n,u];return r<50?D6(r+1|0,e,i,t):IL(D6,[0,e,i,t])}function G6(r,e){for(var n=e;;){if("number"==typeof n)return;switch(n[0]){case 0:var t=n[1],a=O3(n[2]);return G6(r,t),zY(r,a);case 1:var u=n[2],f=n[1];if(0===u[0]){var i=u[1];G6(r,f),zY(r,f6),n=i}else{var v=u[1];G6(r,f),zY(r,i6),n=v}break;case 6:var c=n[2];return G6(r,n[1]),uz(c,r);case 7:return G6(r,n[1]),void HV(r);case 8:var A=n[2];return G6(r,n[1]),MY(A);case 2:case 4:var o=n[2];return G6(r,n[1]),zY(r,o);default:var s=n[2];return G6(r,n[1]),void uL(r,s)}}}function $6(r,e){for(var n=e;;){if("number"==typeof n)return;switch(n[0]){case 0:var t=n[1],a=O3(n[2]);return $6(r,t),r3(r,a);case 1:var u=n[2],f=n[1];if(0===u[0]){var i=u[1];$6(r,f),r3(r,v6),n=i}else{var v=u[1];$6(r,f),r3(r,c6),n=v}break;case 6:var c=n[2];return $6(r,n[1]),uz(c,r);case 7:n=n[1];break;case 8:var A=n[2];return $6(r,n[1]),MY(A);case 2:case 4:var o=n[2];return $6(r,n[1]),r3(r,o);default:var s=n[2];return $6(r,n[1]),J2(r,s)}}}function K6(r,e){for(var n=e;;){if("number"==typeof n)return;switch(n[0]){case 0:var t=n[1],a=O3(n[2]);return K6(r,t),r3(r,a);case 1:var u=n[2],f=n[1];if(0===u[0]){var i=u[1];K6(r,f),r3(r,A6),n=i}else{var v=u[1];K6(r,f),r3(r,o6),n=v}break;case 6:var c=n[2];return K6(r,n[1]),r3(r,uz(c,0));case 7:n=n[1];break;case 8:var A=n[2];return K6(r,n[1]),MY(A);case 2:case 4:var o=n[2];return K6(r,n[1]),r3(r,o);default:var s=n[2];return K6(r,n[1]),J2(r,s)}}}function O6(r){if(r===kQ)return s6;var e=AV(r);function n(e){return uz(function(r){var e=r[1],n=z2(mc);return E6(function(r){return K6(n,r),FY(S2(n))},0,e)}(b6),r)}function t(n){for(var t=n;;){if(t===e)return t;var a=BL(r,t);if(9!==a&&32!==a)return t;t=t+1|0}}for(var a=t(0),u=a;u!==e&&!(25>>0);)u=u+1|0;for(var f=T1(r,a,u-a|0),i=t(u),v=i;v!==e;){var c=BL(r,v);if(48<=c){if(58<=c)break}else if(45!==c)break;v=v+1|0}if(i===v)var A=0;else try{A=xV(T1(r,i,v-i|0))}catch(e){var o=NL(e);if(o[1]!==jz)throw gQ(o,0);A=n()}t(v)!==e&&n();r:if(f===kQ||f===Sv)s=4;else{if("h"===f){var s=0;break r}if("hov"===f){var s=3;break r}if("hv"===f){s=2;break r}if(f!==jc){s=n();break r}s=1}return[0,A,s]}function R6(r,e){return E6(function(e){return G6(r,e),0},0,e[1])}function Q6(r,e){return E6(function(e){return $6(r,e),0},0,e[1])}function C6(r,e){return E6(function(e){var n=z2(64);return K6(n,e),uz(r,S2(n))},0,e[1])}function H6(r){return C6(function(r){return r},r)}var V6=[Gl,"Stdlib.Arg.Bad",zH()],L6=[Gl,"Stdlib.Arg.Help",zH()],z6=[Gl,"Stdlib.Arg.Stop",zH()],S6=[0,oc];function Z6(r,e){for(var n=e;;){if(!n)throw gQ(dz,1);var t=n[1],a=t[2];if(OH(t[1],r))return a;n=n[2]}}function W6(r,e,n,t){if(!t)return"";for(var a=t[2],u=r+t[1];;){if(!a)return u+n;var f=u+e+a[1];a=a[2],u=f}}function X6(r){throw gQ([0,z6,S6],1)}function J6(r){try{return[0,xV(r)]}catch(r){var e=NL(r);if(e[1]===jz)return 0;throw gQ(e,0)}}function Y6(r){try{return[0,RH(r)]}catch(r){var e=NL(r);if(e[1]===jz)return 0;throw gQ(e,0)}}function r4(r,e,n){var t=XY(n),a=z2(TE),u=[0,0];function f(e){var n=S2(a);if(r)var t=AV(n),f=0>>0)var d=k4(r,2),_=j4(r,1),h=fz(H6(f4),_,d);else switch(p){case 2:var x=j4(r,1);h=uz(H6(i4),x);break;case 0:h="";break;default:h=""}var y=[0,m,[0,h]]}else y=[0,r[1],0];var w=y[2],g=y[1];return w?g+w[1]:g}function m4(r,e){function n(e){return e?0===r?"Raised at":"Re-raised at":0===r?"Raised by primitive operation at":"Called from"}if(0!==e[0]){if(e[1])return 0;var t=n(0);return[0,uz(H6(o4),t)]}if(e[3]===e[6])var a=e[3],u=uz(H6(v4),a);else{var f=e[6],i=e[3];u=fz(H6(A4),i,f)}var v=e[7],c=e[4],A=e[8]?" (inlined)":"",o=e[2],s=e[9],b=n(e[1]);return[0,oz(H6(c4),b,s,o,A,u,c,v)]}function d4(r,e){var n=[0,[0]];if(!n)return R6(r,b4);var t=n[1],a=t.length-2|0;if(a>=0)for(var u=0;;){var f=m4(u,gC(t,u)[u+1]);if(f){var i=f[1];uz(R6(r,s4),i)}var v=u+1|0;if(a===u)break;u=v}}function _4(r){var e=[0,[0]];if(!e)return B4;var n=e[1],t=z2(Jo),a=n.length-2|0;if(a>=0)for(var u=0;;){var f=m4(u,gC(n,u)[u+1]);if(f){var i=f[1];uz(Q6(t,l4),i)}var v=u+1|0;if(a===u)break;u=v}return S2(t)}function h4(r){for(;;){var e=PQ(e4),n=1-FQ(e4,e,[0,r,e]);if(!n)return n}}AL([0,kQ,"(Cannot print locations:\n bytecode executable program file not found)","(Cannot print locations:\n bytecode executable program file appears to be corrupt)","(Cannot print locations:\n bytecode executable program file has wrong magic number)","(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)"]);var x4=[0,[11,mx,[2,0,[12,10,0]]],_a],y4=[0,[11,mx,[2,0,[12,10,0]]],_a],w4=[0,[11,"Fatal error in uncaught exception handler: exception ",[2,0,[12,10,0]]],"Fatal error in uncaught exception handler: exception %s\n"];bL(eQ,function(r,e){try{try{try{t0()}catch(n){}try{var n=p4(r);uz(R6(HY,x4),n),d4(HY);var t=HV(HY)}catch(n){var a=NL(n),u=p4(r);uz(R6(HY,y4),u),d4(HY);var f=p4(a);uz(R6(HY,w4),f),d4(HY);t=HV(HY)}var i=t}catch(n){var v=NL(n);if(v!==lz)throw gQ(v,0);i=r0("Fatal error: out of memory in uncaught exception handler")}return i}catch(n){return 0}});var g4=[Gl,"Stdlib.Fun.Finally_raised",zH()];h4(function(r){return r[1]===g4?[0,"Fun.Finally_raised: "+p4(r[2])]:0});function q4(r,e){function n(e){try{return void uz(r,0)}catch(r){var n=NL(r),t=[0,g4,n];throw gQ(t,0)}}try{var t=uz(e,0)}catch(r){var a=NL(r);throw n(),gQ(a,0)}return n(),t}function I4(r,e){var n=XY(r);return q4(function(r){try{return VV(n)}catch(r){return 0}},function(r){return uz(e,n)})}function D4(r,e,n,t){for(var a=n,u=t;;){if(0!==u){var f=JY(r,e,a,u);if(0!==f){a=a+f|0,u=u-f|0;continue}}return a-n|0}}function E4(r,e,n){var t=mH(r);if((e+n|0)<=t)return r;for(var a=[0,t];;){if(a[1]>=(e+n|0)){var u=a[1],f=tH(u<=i0?u:e=0)for(var i=0;;){yC(u,8*i|0,aV(gC(n,i)[i+1]));var v=i+1|0;if(f===i)break;i=v}dC(u,8*a|0,1);var c=F4(u);dC(u,8*a|0,2);var A=F4(u),o=X1(A,8),s=X1(A,0),b=X1(c,8);return V4(t,X1(c,0),b,s,o),t}function S4(r){return uV(PV(r))&Fb}function Z4(r){return(r.length-1<4?1:0)||(r[4]<0?1:0)}function W4(r){r[4]=0|-r[4]}var X4=[0,1,[0,3,[0,4,[0,7,0]]]],J4=FP,Y4=FP,r5=pE,e5=tp,n5=tp,t5=Js,a5=Js,u5=Wy,f5=[0,[2,0,[11,": unknown option '",[2,0,[11,"'.\n",0]]]],"%s: unknown option '%s'.\n"],i5=[0,[2,0,[11,": wrong argument '",[2,0,[11,"'; option '",[2,0,[11,"' expects ",[2,0,[11,yE,0]]]]]]]],"%s: wrong argument '%s'; option '%s' expects %s.\n"],v5=[0,[2,0,[11,": option '",[2,0,[11,"' needs an argument.\n",0]]]],"%s: option '%s' needs an argument.\n"],c5=[0,[2,0,[11,He,[2,0,[11,yE,0]]]],"%s: %s.\n"],A5=[0,oc],o5=[0,mU],s5=iF,b5=[0,[2,0,[12,10,0]],gT],l5=oc,B5=an,j5=oc,k5=mU,p5=an,m5=mU,d5=[0,[11,JM,[2,0,[12,32,[2,0,[12,10,0]]]]]," %s %s\n"],_5=Vs,h5=py,x5=[0,[11,JM,[2,0,[12,32,[2,0,[2,0,[12,10,0]]]]]]," %s %s%s\n"],y5=[4,0,3],w5=Ku,g5=bu,q5=[1,"max_indent < 2"],I5=[1,"margin <= max_indent"],D5=[1,"margin >= pp_infinity"],E5=[0,0],N5=[0,kQ],T5=[0,GU,72,5],F5=[0,GU,81,2],M5=[0,0],P5=Bc,U5=Ku,G5=Bc,$5=[0,[11,"Optint.to_unsigned_int: ",[5,6,0,0,[11," can not fit into a 31 bits unsigned integer",0]]],"Optint.to_unsigned_int: %lx can not fit into a 31 bits unsigned integer"],K5=[0,[11,"Optint.to_int: ",[5,6,0,0,[11," can not fit into a 31 bits integer",0]]],"Optint.to_int: %lx can not fit into a 31 bits integer"],O5=[0,[11,"Conversion from int64 to int63 failed: ",[7,0,0,0,[11," is out of range",0]]],"Conversion from int64 to int63 failed: %Ld is out of range"],R5=NC(zK,zK,Fn),Q5=NC(0,0,0),C5=NC(1,0,0),H5=KI,V5=bi,L5=Km,z5=jg,S5=[0,[2,0,0],aM],Z5=[0,[11,"Fatal error (exit ",[4,0,0,0,[12,41,0]]],"Fatal error (exit %d)"],W5=[0,"plain",[0,Lu,[0,Ur,0]]],X5=[0,[8,[0,0,6],0,0,0],"%h"],J5=iF,Y5=tn,r7=tn,e7=NC(1,0,0),n7=NC(zK,zK,Fn),t7=NC(0,0,65520),a7=[0,[8,[0,0,3],0,1,0],zv],u7=NC(0,0,16),f7=NC(zK,zK,15),i7=[0,[8,[0,0,3],0,1,0],zv],v7=[0,[7,6,0,0,0],VE],c7=[0,"exec/fxx.ml",67,10],A7=[0,[8,[0,0,3],0,[0,17],0],Db],o7=[0,[5,6,0,0,0],nG],s7=NC(0,0,32760),b7=NC(0,0,Du),l7=NC(0,0,32752),B7=[0,[7,6,0,0,0],VE],j7=tn,k7=tn,p7=tn,m7=[0,JO,Sp,4],d7=NC(v,0,0),_7=[0,JO,298,4],h7=[0,JO,ud,4],x7=[0,[5,6,0,0,0],nG],y7=[0,[5,6,0,0,0],nG],w7=[0,[7,6,0,0,0],VE],g7=[0,[5,6,0,0,0],nG],q7=NC(zK,LK,0),I7=[0,[11,FM,[4,6,0,0,0]],Jl],D7=dv,E7=Wy,N7=aI,T7=nh,F7=bu,M7=nh,P7=aI,U7=[0,[15,[17,2,0]],"%a@?"],G7=mv,$7=cs,K7=[0,1],O7=[0,"Sexplib.Conv.Of_sexp_error"],R7=[0,Jr,406,15],Q7=[0,0],C7=_t,H7=[0,Jr,hh,15],V7=[0,"Exit"],L7=[0,Jr,Wu,15],z7=[0,dE],S7=[0,Jr,Aw,15],Z7=[0,Rt],W7=[0,Jr,Xn,15],X7=[0,Fg],J7=[0,Jr,_E,15],Y7=[0,Jv],r8=[0,Jr,Yc,15],e8=$d,n8=[0,Jr,nv,15],t8=[0,"Not_found_s"],a8=[0,Jr,358,15],u8=[0,yq],f8=[0,Jr,SK,15],i8=[0,"Arg.Help"],v8=[0,Jr,fs,15],c8=[0,"Arg.Bad"],A8=[0,Jr,370,15],o8=[0,"Lazy.Undefined"],s8=[0,Jr,gf,15],b8=[0,"Parsing.Parse_error"],l8=[0,Jr,378,15],B8=[0,"Queue.Empty"],j8=[0,Jr,us,15],k8=[0,"Scanf.Scan_failure"],p8=[0,Jr,sp,15],m8=[0,"Stack.Empty"],d8=[0,Jr,LD,15],_8=[0,"Sys.Break"],h8=[0,Jr,rd,15],x8=[0,[2,0,[12,32,[2,0,[12,58,[4,0,0,0,[12,58,[4,0,0,0,0]]]]]]],"%s %s:%d:%d"],y8=[0,2],w8=[1,0],g8=[0,[11,sF,[2,0,[11," has been located with a name of different case",0]]],"file %s has been located with a name of different case"],q8=[0,[11,sF,[2,0,[11," has been located with a different name",0]]],"file %s has been located with a different name"],I8=Sf,D8=Bc,E8=Bc,N8=Ku,T8=Bc,F8=Bc,M8=tA,P8=se,U8=[0,0,0,0],G8=mv,$8=W_,K8=bv,O8=[0,[11,"\\u{",[4,6,[0,2,2],0,[12,xI,0]]],rD],R8=W_,Q8=mv,C8=Ch,H8=[0,0,0],V8=[0,0,0],L8=[0,px,Wr,13],z8=[0,px,ZA,11],S8=[0,[5,12,0,0,0],"%lu"],Z8=[0,[18,[1,[0,[11,Ev,0],Ev]],[15,[17,0,0]]],"@[%a@]"],W8=[0,[17,3,[18,[1,[0,[11,Ev,0],Ev]],[11,JM,[15,[17,0,0]]]]],"@\n@[ %a@]"],X8=[0,[18,[1,[0,0,kQ]],[15,[17,0,0]]],"@[%a@]"],J8=[0,[8,[0,0,3],0,[0,16],0],od],Y8=[0,[8,[0,0,3],0,[0,17],0],Db],r9=[0,[8,[0,0,3],0,[0,16],0],od],e9=[0,[8,[0,0,3],0,[0,17],0],Db],n9=bn,t9=ID,a9=W_,u9=mv,f9=Ch,i9=bv,v9=[0,[11,"src=",[3,0,[11," start=",[4,3,0,0,[11," len=",[4,3,0,0,[12,10,[10,0]]]]]]]],"src=%S start=%i len=%i\n%!"],c9=bt,A9=IK,o9=[0,Zn,674,60],s9=vq,b9=xF,l9=[0,Zn,665,55],B9=OI,j9=[0,"end_pos"],k9=[0,"start_pos"],p9=[0,Jh],m9=[0,"col"],d9=[0,"line"],_9=[0,$T,46,2],h9=[0,$T,58,2],x9=[0,"parse_error.ml.Parse_error"],y9=[0,"src/parse_error.ml",40,11],w9=[0,OM],g9=[0,"position"],q9=[0,"of_sexp_error.ml.Of_sexp_error"],I9=[0,"src/of_sexp_error.ml",65,11],D9=[0,"location"],E9=[0,"sub_sexp"],N9=[0,"user_exn"],T9=[0,LF,889,13],F9=[0,"buf_pos"],M9=[0,"global_offset"],P9=[0,"text_char"],U9=[0,"text_line"],G9=[0,By],$9=[0,"Sexplib.Sexp.Parse_error"],K9=[0,LF,UE,11],O9=[0,LF,W,6],R9=[0,LF,Tq,13],Q9=[0,"containing_sexp"],C9=[0,"invalid_sexp"],H9=[0,[0,"Of_sexp_error"],0],V9=[0,[2,0,[11,He,[2,0,0]]],B_],L9=[0,[11,Ir,0],Ir],z9=[0,wU,45,4],S9=[0,wU,39,4],Z9=[0,wU,31,4],W9=[0,"lib/core/range.ml",67,2],X9=[0,[11,"range start ",[15,[11," is greater than range stop ",[15,0]]]],"range start %a is greater than range stop %a"],J9=[0,[11,"range beyond end of source; stop = ",[15,[11," > ",[4,0,0,0,[11," = eos",0]]]]],"range beyond end of source; stop = %a > %d = eos"],Y9=vi,rrr=jI,err=bh,nrr=xB,trr=hm,arr=Jk,urr=Dm,frr=Zo,irr=Zg,vrr=Yg,crr=kr,Arr=Mh,orr=fn,srr=Hi,brr=lv,lrr=qb,Brr=tK,jrr=Zl,krr=Ts,prr=Ed,mrr=Ck,drr=Xm,_rr=uA,hrr=b$,xrr=Cr,yrr=Ah,wrr=Ud,grr=Ej,qrr=C$,Irr=PB,Drr=CO,Err=Tc,Nrr=bf,Trr=vn,Frr=mp,Mrr=oo,Prr=yb,Urr=fR,Grr=Vo,$rr=Vw,Krr=xP,Orr=ro,Rrr=kG,Qrr=ml,Crr=on,Hrr=Qy,Vrr=hw,Lrr=zt,zrr=gy,Srr=Jq,Zrr=zT,Wrr=it,Xrr=ci,Jrr=Vr,Yrr=ZM,rer=YK,eer=qT,ner=Qm,ter=va,aer=RR,uer=Mq,fer=Rk,ier=ga,ver=sI,cer=UT,Aer=co,oer=hc,ser=At,ber=Ay,ler=[0,[11,"EUNKNOWNERR ",[4,0,0,0,0]],"EUNKNOWNERR %d"],Ber=[0,[11,"Unix.Unix_error(Unix.",[2,0,[11,rm,[3,0,[11,rm,[3,0,[12,41,0]]]]]]],"Unix.Unix_error(Unix.%s, %S, %S)"],jer=fq,ker=fq,per=[0,[11,hB,0],hB],mer=[0,[15,[11," > ",[15,[11,": line index exceeds the last line index",0]]]],"%a > %a: line index exceeds the last line index"],der=[0,[11,sE,0],sE],_er=[0,NC(0,0,0)],her=[0,0,0],xer=[0,[11,"could not open file ",[2,0,0]],"could not open file %s"],yer=[0,[11,"could not read the file ",[2,0,0]],"could not read the file %s"],wer=[0,"src/uutf.ml",WP,9],ger=[0,[11,"invalid bounds (index ",[4,0,0,0,[11,", length ",[4,0,0,0,[12,41,0]]]]],"invalid bounds (index %d, length %d)"],qer=[0,[17,4,0],bx],Ier=[0,[12,32,0],Wy],Der=[0,[0,sf,jG],0],Eer=[0,[0,sf,jG],0],Ner=[0,[0,sf,jG],0],Ter=[0,[0,sf,jG],0],Fer=[0,Nu,0],Mer=[0,"┌─",dp,"·",rI,wm,iF,wm,wm,hb,hb,"╭","─","╰","─",dp,dp],Per=[0,K$,Ou,14],Uer=[0,K$,bD,15],Ger=[0,K$,en,4],$er=[0,1],Ker=[0,0],Oer=[0,K$,217,8],Rer=[0,K$,JR,8],Qer=[0,K$,Ze,12],Cer=[0,'File "lib/ansi_renderer/snippet.ml", line 149, characters 24-31'],Her=[0,K$,49,4],Ver=[0,K$,19,18],Ler=[0,qt],zer=[0,0,0],Ser=[0,[18,[1,[0,[11,"",0],""]],0],"@["],Zer=[0,[17,0,0],"@]"],Wer=[0,[18,[1,[0,[11,ib,0],ib]],[15,[11,He,[15,[17,0,0]]]]],"@[%a: %a@]"],Xer=[0,[2,[1,1],[12,32,[15,[12,32,0]]]],"%*s %a "],Jer=[0,[18,[1,[0,[11,ib,0],ib]],[15,[15,[11,He,[15,[17,0,0]]]]]],"@[%a%a: %a@]"],Yer=[0,[12,93,0],"]"],rnr=[0,[12,91,0],"["],enr=[0,[17,4,0],bx],nnr=[0,[18,[1,[0,[11,ib,0],ib]],[2,[1,1],[12,32,[15,[12,32,[15,[17,0,0]]]]]]],dT],tnr=[0,[18,[1,[0,[11,ib,0],ib]],[2,0,[12,58,[15,[12,58,[15,[17,0,0]]]]]]],"@[%s:%a:%a@]"],anr=[0,0,0],unr=[0,[18,[1,[0,[11,ib,0],ib]],[2,[1,1],[12,32,[15,[12,32,[15,[17,0,0]]]]]]],dT],fnr=[0,[17,4,[15,0]],"@.%a"],inr=[0,VK,lT,8],vnr=[0,VK,kO,8],cnr=[0,[2,0,0],aM],Anr=[0,[15,0],sK],onr=[0,VK,Tm,6],snr=[0,[12,32,[15,0]]," %a"],bnr=[0,VK,305,14],lnr=[0,[15,[15,[12,32,0]]],"%a%a "],Bnr=[0,uB,Vj],jnr=[0,[2,[1,1],[12,32,[15,[12,32,[15,0]]]]],"%*s %a %a"],knr=[0,[18,[1,[0,[11,ib,0],ib]],[2,0,[2,0,[17,0,0]]]],zD],pnr=[0,[18,[1,[0,[11,ib,0],ib]],[2,[1,1],[2,0,[17,0,0]]]],"@[%*s%s@]"],mnr=[0,[15,0],sK],dnr=[0,[18,[1,[0,[11,ib,0],ib]],[2,0,[2,0,[17,0,0]]]],zD],_nr=[0,[15,0],sK],hnr=[0,kQ,0],xnr=[0,[18,[1,[0,[11,ib,0],ib]],[2,[1,1],[12,32,[15,[12,32,[15,[17,0,0]]]]]]],dT],ynr=[0,[18,[1,[0,[11,ib,0],ib]],[15,[12,32,[15,[12,32,[15,[15,[17,0,0]]]]]]]],"@[%a %a %a%a@]"],wnr=[0,[4,0,[1,1],0,0],"%*d"],gnr=[0,'File "lib/ansi_renderer/snippet_renderer.ml", line 129, characters 39-46'],qnr=[0,VK,rh,4],Inr=[0,'File "lib/ansi_renderer/snippet_renderer.ml", line 116, characters 26-33'],Dnr=bu,Enr=[0,[11,FM,[4,6,0,0,0]],Jl],Nnr=bu,Tnr=[0,[0,kQ]],Fnr=Wy,Mnr=[0,kQ],Pnr=Wy,Unr=bu,Gnr=[0,"lang_utils/trivia.ml",9,26],$nr=TV([[0,Gs,0,"Case mismatch between import and filename"],[0,no,0,"Comparing abstract type to itself at supertype"],[0,al,0,"Comparing incompatible type at common supertype"],[0,Yb,0,"Array elements have inconsistent types"],[0,MK,0,"If branches have inconsistent types"],[0,Dt,0,"Redundant ignore"],[0,lo,0,"Switch with inconsistent branch types"],[0,xw,0,"Function with system function name but wrong visibility"],[0,Nk,0,"Actor class has non-async return type"],[0,Li,0,"An imported library should be a module or named actor class"],[0,_u,0,"Pattern does not cover value"],[0,Tr,0,"Pattern is never matched"],[0,xK,[0,"# M0154\n\nYou are using a field (typically a module field) that has a deprecation annotation\nattached to its definition, e.g.\n\n```motoko\nmodule SomeModule {\n\n /// @deprecated The foo function is deprecated and will be removed next release\n public func foo() {}\n\n}\n```\n\nThe warning should include an explanation provided by the author of that code.\n"],"Deprecation annotation"],[0,OA,[0,"# M0155\n\nThis warning indicates that the type of a subtraction operation had to be deduced from its operands and was inferred to be `Nat`.\nThat implies that it traps when the result is negative, which may be unintentional.\n\nOffending code examples:\n\n```motoko\nfunc f(n : Nat) {\n if (n < 10) { return };\n let m = 2 * (n - 1);\n};\n\nfunc g(n : Nat) {\n if (n - 1 < 10) { return };\n};\n```\n\nIf the subtraction was indeed intended to have a `Nat` result, you can let the compiler know by annotating the intended type explicitly:\n\n```motoko\nfunc f(n : Nat) {\n let m : Nat = 2 * (n - 1);\n};\n```\n\nIf the intended type was `Int`, however, you can either annotate it as such:\n\n```\nfunc f(n : Nat) {\n let m : Int = 2 * (n - 1);\n};\n```\n\nOr you can insert a sign operator `+`, which also forces the expression to be of type `Int`:\n\n```\nfunc f(n : Nat) {\n let m = 2 * (+n - 1);\n};\n```\n\nThis latter possibility is particularly convenient in the case of comparisons, because it is always okay to perform them at type `Int`:\n\n```\nfunc g(n : Nat) {\n if (+n - 1 < 10) { return };\n};\n```\n"],"Inferred type Nat for subtraction"],[0,la,0,"Type intersection results in abstract type"],[0,O$,0,"Type union results in bottom type"],[0,Yt,0,"Types inconsistent for alternative pattern variables, losing information"],[0,vm,0,"Code requires Wasm features ... to execute"],[0,H_,[0,'# M0194\n\nThis warning means that you defined an identifier without\nreferencing it later, a good indicator of dead code.\n\nDubious code example:\n\n```motoko\nlet nickname = "klutz";\n// code that never uses `nickname`\n```\n\nIf you encounter this warning, you can either delete the definition (if the code has no other side-effect),\n\n```motoko\n// code that never uses `nickname`\n```\n\nreplace it by a wildcard pattern:\n\n```motoko\nlet _ = "klutz";\n// code that never uses `nickname`\n```\n\nor just prefix the identifier with an underscore:\n\n```motoko\nlet _nickname = "klutz";\n// code that never uses `nickname`\n```\n'],"Unused identifier warning"],[0,cf,[0,"# M0195\n\nThis warning means that you called a function that demands elevated (`system`) capabilities,\nwithout manifestly passing the capability.\n\n"],"warn that `system` capability is implicitly supplied"],[0,L$,[0,'# M0198\n\nThis warning means that you specified a field identifier in an object pattern without referencing this identifier later, a good indicator of dead code.\n\nDubious code example:\n\n```motoko\nimport Debug "mo:core/Debug";\n\nlet person = { firstName = "Anna"; secondName = "Smith" };\n\nlet { firstName; secondName } = person;\nDebug.print(firstName);\n\n// secondName is not used\n```\n\nIf you encounter this warning and the identifier is indeed not needed, \nyou can either remove the field identifier from the object pattern,\n\n```motoko\nimport Debug "mo:core/Debug";\n\nlet person = { firstName = "Anna"; secondName = "Smith" };\n\nlet { firstName } = person;\nDebug.print(firstName);\n```\n\nbind the field to a wildcard pattern:\n\n```motoko\nimport Debug "mo:core/Debug";\n\nlet person = { firstName = "Anna"; secondName = "Smith" };\n\nlet { firstName; secondName = _ } = person;\nDebug.print(firstName);\n\n// secondName is not needed\n```\n\nor bind the field to an identifier with an underscore prefix:\n\n```motoko\nimport Debug "mo:core/Debug";\n\nlet person = { firstName = "Anna"; secondName = "Smith" };\n\nlet { firstName; secondName = _secondName } = person;\nDebug.print(firstName);\n\n// secondName is not needed\n```\n'],"Unused field pattern warning"],[0,xx,[0,"# M0199\n\nThis error or warning means that your code is either directly or indirectly using the now deprecated library `ExperimentalStableMemory.mo` (or its supporting compiler primitives).\n\nThe library works as advertised but is a potential hazard as the resource it provides access to is shared between all clients of the library.\nThis means that a library may unintentionally or maliciously read or modify data maintained by your application, or by another library imported by your application.\n\nIf possible, please upgrade your code to use library `Region.mo` instead.\nThis improved library offers a similar abstraction, but instead of a single memory that is implicitly accessible to all callers, it provides multiple memories.\nThese memories, called regions, are isolated from each other and inaccessible unless a region is explicitly shared between libraries.\n\nThe `moc` compiler flag `--experimental-stable-memory ` flag controls the production of this error or warning message, allowing your code to compile as before:\n* n < 0: error on use of stable memory primitives.\n* n = 0: warn on use of stable memory primitives (the default).\n* n > 1: warning-less use of stable memory primitives (for legacy applications).\n\nI.e. if your application cannot easily be upgraded to use `Regions.mo` and still requires access to `ExperimentalStableMemory.mo`, you can opt-in to legacy support for `ExperimentalStableMemory.mo` using the `moc` compiler flag `--experimental-stable-memory 1`.\n"],"Deprecate experimental stable memory"],[0,$y,0,"Migration consumes, but does not produce, a declared field"],[0,ft,0,"Migration consumes, but does not produce, an un-declared field"],[0,BG,0,"Parenthetical note must be applied to a message send"],[0,tf,0,"Parenthetical note has no attributes"],[0,Xh,[0,"# M0212\n\nThis warning means that you are affixing a parenthetical note to a message send (i.e. either\na canister method call of a self-send with `async`, or `actor`) that contains an attribute not recognised\nby this version of the Motoko compiler.\n\nCurrently, only these attributes are recognized in parenthetical notes:\n\nFor _message_ sends and `async` expressions\n- `cycles : Nat`\n- `timeout : Nat32`\n\nFor `actor` and `actor class` declarations:\n- `migration : {} -> {}`\n"],"Unrecognised attribute in parenthetical note"],[0,MT,0,"Field is lost in record used at supertype"],[0,uI,0,"Redundant `persistent`"],[0,bb,0,"Redundant `stable`"],[0,$,0,"Ignored `async*`"],[0,KI,0,"Redundant type instantiation"],[0,bi,0,"Deprecate for caffeine"],[0,Km,0,"Suggest contextual dot notation"],[0,jg,0,"Suggest redundant explicit arguments"],[0,Lm,0,"Avoid binding a unit `()` result"],[0,mN,0,"Unused identifier in shared pattern warning"],[0,uu,0,"Unused field in shared pattern warning"],[0,AK,0,"Implicit oneway declaration"],[0,Hw,0,"Unreachable else in let-else"],[0,nl,0,"Mutable variable is never reassigned"],[0,$b,0,"Initial actor requires field"]]),Knr=[0,[11,"moc: invalid warning code: ",[2,0,[11,". Run 'moc --warn-help' to see available warning codes.",0]]],"moc: invalid warning code: %s. Run 'moc --warn-help' to see available warning codes."],Onr=[0,1],Rnr=[0,bM,lc,2],Qnr=[0,bM,PA,4],Cnr=[0,bM,X,2],Hnr=[0,bM,98,2],Vnr=[0,[2,0,[10,0]],Dj],Lnr=[0,[2,0,[10,0]],Dj],znr=[0,[2,0,[12,10,[10,0]]],IF],Snr=Bw,Znr=OM,Wnr=[0,DF,"MachineApplicable"],Xnr=Go,Jnr=[0,0],Ynr=mq,rtr=vi,etr=jI,ntr=oQ,ttr=[0,[11,"help: remove `",[2,0,[12,96,0]]],"help: remove `%s`"],atr=[0,[11,"help: insert `",[2,0,[12,96,0]]],"help: insert `%s`"],utr=[0,[11,"help: replace `",[2,0,[11,"` with `",[2,0,[12,96,0]]]]],"help: replace `%s` with `%s`"],ftr=[0,[2,0,0],aM],itr=[0,[11,IM,[2,0,0]],"note: %s"],vtr=[0,[2,0,0],aM],ctr=[0,[15,[17,4,0]],"%a@."],Atr=[0,[11," [",[2,0,[12,93,0]]]," [%s]"],otr=vi,str=[0,[2,0,[11," error",0]],"%s error"],btr=oQ,ltr=bu,Btr=bu,jtr=[0,[2,0,[11,He,[2,0,[2,0,[11,rm,[2,0,[2,0,[2,0,[12,10,0]]]]]]]]],"%s: %s%s, %s%s%s\n"],ktr=pi,ptr=pi,mtr=pi,dtr=pi,_tr=[0,[11,"Candid method name '",[2,0,[11,"' is not a valid Motoko identifier",0]]],"Candid method name '%s' is not a valid Motoko identifier"],htr=cp,xtr=[0,[12,95,[2,0,[12,95,0]]],"_%s_"],ytr=pi,wtr=[0,"BlobT"],gtr=[0,"PrincipalT"],qtr=[0,"PreT"],Itr=Ce,Dtr=RD,Etr=gw,Ntr=HF,Ttr=FD,Ftr=Od,Mtr=[0,"NoActor"],Ptr=bt,Utr=WR,Gtr=pp,$tr=[0,V,lj,14],Ktr=b,Otr=gt,Rtr=Fj,Qtr=Vs,Ctr=[0,V,Je,18],Htr=bt,Vtr=Vs,Ltr=[0,14],ztr=cK,Str=cK,Ztr=cK,Wtr=YO,Xtr=nh,Jtr=aI,Ytr=cK,rar=XR,ear=XR,nar=bt,tar=bt,aar=bt,uar=gK,far=cK,iar=Vs,car=gK,Aar=cK,oar=Vs,sar=gK,bar=cK,lar=GP,Bar=[0,V,275,11],jar=pl,kar=rI,par=cs,mar=cs,dar=cs,_ar=Cf,har=MR,xar=OO,yar=Z,war=$a,gar=QT,qar=RU,Iar=lr,Dar=wE,Ear=Vf,Nar=be,Tar=f_,Far=ED,Mar=Xv,Par=EF,Uar=Kh,Gar=gB,$ar=[0,st,ns,12],Kar=[0,[11,je,0],je],Oar=[0,[11,Wf,0],Wf],Rar=[0,[11,wI,0],wI],Qar=[0,[11,yo,[2,0,[11," hash collision with field ",[2,0,0]]]],"field name %s hash collision with field %s"],Car=[0,[2,0,[11," is a non-function type\n ",[2,0,0]]],"%s is a non-function type\n %s"],Har=[0,[11,h,[2,0,[11," in service",0]]],"duplicate binding for %s in service"],Var=[0,[11,h,[2,0,[11," in type definitions",0]]],"duplicate binding for %s in type definitions"],Lar=[0,st,Nd,14],zar=[0,[2,0,[11," is a non-service type\n ",[2,0,0]]],"%s is a non-service type\n %s"],Sar=[0,[2,0,[11," has a cyclic type definition",0]],"%s has a cyclic type definition"],Zar=[0,[11,"unbound type identifier ",[2,0,0]],"unbound type identifier %s"],War=[0,0],Xar=[0,0],Jar=[0,0],Yar=pl,rur=[0,[11,"Internal failure -- please contact the parser generator's developers.\n",[10,0]],"Internal failure -- please contact the parser generator's developers.\n%!"],eur=[0,"idllib/parser.ml",2461,4],nur=[0,14],tur=YI,aur=[0,14],uur=[0,14],fur=YI,iur=YI,vur=YI,cur=YI,Aur=YI,our=YI,sur=YI,bur=[0,"idllib/parser.mly",12,2],lur=TV([[0,Cf,0],[0,MR,1],[0,OO,2],[0,Z,3],[0,$a,4],[0,QT,5],[0,RU,6],[0,lr,7],[0,wE,8],[0,Vf,9],[0,be,10],[0,f_,11],[0,ED,12],[0,Xv,13],[0,EF,14],[0,Kh,15],[0,gB,16]]),Bur=J$,jur=cF,kur=po,pur=_,mur=m,dur=aq,_ur=m,hur=[0,10,0],xur=[0,13,0],yur=[0,9,0],wur=wd,gur=[0,92,0],qur=[0,39,0],Iur=[0,34,0],Dur=[0,[11,sF,[2,0,[11,jA,0]]],dw],Eur=cp,Nur=[0,[11,"conflict type definition for ",[2,0,0]],"conflict type definition for %s"],Tur=cp,Fur=[0,[11,'cannot open "',[2,0,[12,34,0]]],'cannot open "%s"'],Mur=mq,Pur=PM,Uur=PM,Gur=[0,0,[0,zR]],$ur=[0,[2,0,[2,0,[4,3,0,0,0]]],"%s%s%i"],Kur=[0,ix,OG,16],Our=[0,0],Rur=[0,1],Qur=[0,2],Cur=[0,mc],Hur=[0,Xf],Vur=[0,2],Lur=[0,ix,yj,19],zur=[0,1],Sur=xj,Zur=[0,ix,1430,4],Wur=[0,ix,1467,18],Xur=[0,ix,1499,11],Jur=[0,ix,1514,15],Yur=[0,ix,1525,11],rfr=[0,ix,1539,15],efr=[0,ix,1617,2],nfr=[0,ix,1654,23],tfr=[1,0,2],afr=[0,ix,1694,31],ufr=[0,[18,[1,[0,[11,c$,0],c$]],[15,[17,0,[17,3,0]]]],"@[%a@]@\n"],ffr=[0,ix,2636,4],ifr=[0,0],vfr=[0,ix,2072,13],cfr=[0,[18,[1,[0,[11,TG,0],TG]],[2,0,[12,CU,[17,[0,Fc,0,0],[15,[17,[0,rb,0,-2],[12,xI,[17,0,0]]]]]]]],"@[%s{@;<0 0>%a@;<0 -2>}@]"],Afr=[0,[18,[1,[0,[11,TG,0],TG]],[12,CU,[17,[0,Fc,0,0],[15,[17,[0,rb,0,-2],[12,xI,[17,0,0]]]]]]],Gq],ofr=[0,[18,[1,[0,[11,TG,0],TG]],[12,CU,[17,[0,Fc,0,0],[15,[17,[0,rb,0,-2],[12,xI,[17,0,0]]]]]]],Gq],sfr=[0,[18,[1,[0,[11,Im,0],Im]],[2,0,[11,P_,[15,[17,0,0]]]]],"@[<1>%s : %a@]"],bfr=Ea,lfr=Gc,Bfr=[0,[11,"??? ",[2,0,[12,32,[4,3,0,0,0]]]],"??? %s %i"],jfr=[0,[18,[1,[0,0,kQ]],[2,0,[12,60,[18,[1,[0,[11,Im,0],Im]],[15,[17,0,[12,62,[17,0,0]]]]]]]],"@[%s<@[<1>%a@]>@]"],kfr=[0,[18,[1,[0,[11,Im,0],Im]],[11,fv,[15,[12,93,[17,0,0]]]]],"@[<1>[var %a]@]"],pfr=[0,[18,[1,[0,[11,Im,0],Im]],[12,91,[15,[12,93,[17,0,0]]]]],"@[<1>[%a]@]"],mfr=YO,dfr=[0,[18,[1,[0,[11,Im,0],Im]],[12,40,[15,[2,0,[12,41,[17,0,0]]]]]],lx],_fr=[0,[18,[1,[0,[11,Im,0],Im]],[12,40,[2,0,[11,P_,[15,[12,41,[17,0,0]]]]]]],"@[<1>(%s : %a)@]"],hfr=[0,[18,[1,[0,[11,Im,0],Im]],[12,40,[15,[12,41,[17,0,0]]]]],_p],xfr=[0,[18,[1,[0,[11,Im,0],Im]],[12,63,[15,[17,0,0]]]],Wx],yfr=[0,[18,[1,[0,[11,Im,0],Im]],[11,j$,[15,[17,0,0]]]],sO],wfr=[0,[18,[1,[0,[11,kx,0],kx]],[11,ua,[2,0,[17,[0,tb,1,0],[15,[17,0,0]]]]]],Qp],gfr=[0,[18,[1,[0,[11,kx,0],kx]],[11,ua,[2,0,[12,60,[15,[12,62,[17,[0,tb,1,0],[15,[17,0,0]]]]]]]]],"@[<2>async%s<%a>@ %a@]"],qfr=[0,[18,[1,[0,[11,kx,0],kx]],[11,ua,[2,0,[17,[0,tb,1,0],[15,[17,0,0]]]]]],Qp],Ifr=[0,[18,[1,[0,[11,Im,0],Im]],[12,40,[15,[12,41,[17,0,0]]]]],_p],Dfr=xO,Efr=[0,[18,[1,[0,[11,kx,0],kx]],[2,0,[15,[15,[11," ->",[17,[0,tb,1,0],[15,[17,0,0]]]]]]]],"@[<2>%s%a%a ->@ %a@]"],Nfr=[0,[18,[1,[0,[11,kx,0],kx]],[11,ua,[2,0,[17,[0,tb,1,0],[15,[17,0,0]]]]]],Qp],Tfr=[0,[18,[1,[0,[11,kx,0],kx]],[11,ua,[17,[0,tb,1,0],[15,[17,0,0]]]]],Mc],Ffr=[0,[18,[1,[0,[11,kx,0],kx]],[11,"replies",[17,[0,tb,1,0],[15,[17,0,0]]]]],"@[<2>replies@ %a@]"],Mfr=[0,[18,[1,[0,[11,Im,0],Im]],[11,sG,[17,[0,tb,1,0],[15,[17,0,0]]]]],"@[<1>var@ %a@]"],Pfr=[0,[18,[1,[0,[11,Im,0],Im]],[11,dn,[2,0,[15,[12,32,[2,0,[17,[0,tb,1,0],[15,[17,0,0]]]]]]]]],"@[<1>type %s%a %s@ %a@]"],Ufr=[0,[18,[1,[0,[11,kx,0],kx]],[11,hi,[2,0,[11,tI,[17,[0,tb,1,0],[15,[17,0,0]]]]]]],"@[<2>var %s :@ %a@]"],Gfr=[0,[18,[1,[0,[11,kx,0],kx]],[2,0,[11,tI,[17,[0,tb,1,0],[15,[17,0,0]]]]]],G$],$fr=[0,[18,[1,[0,[11,kx,0],kx]],[11,dn,[2,0,[15,[12,32,[2,0,[17,[0,tb,1,0],[15,[17,0,0]]]]]]]]],"@[<2>type %s%a %s@ %a@]"],Kfr=[0,[18,[1,[0,[11,kx,0],kx]],[11,"stable var ",[2,0,[11,tI,[17,[0,tb,1,0],[15,[17,0,0]]]]]]],"@[<2>stable var %s :@ %a@]"],Ofr=[0,[18,[1,[0,[11,kx,0],kx]],[11,"stable ",[2,0,[11,tI,[17,[0,tb,1,0],[15,[17,0,0]]]]]]],"@[<2>stable %s :@ %a@]"],Rfr=zk,Qfr=ux,Cfr=[0,[18,[1,[0,[11,kx,0],kx]],[2,0,[11," var ",[2,0,[11,tI,[17,[0,tb,1,0],[15,[17,0,0]]]]]]]],"@[<2>%s var %s :@ %a@]"],Hfr=[0,[18,[1,[0,[11,kx,0],kx]],[2,0,[12,32,[2,0,[11,tI,[17,[0,tb,1,0],[15,[17,0,0]]]]]]]],"@[<2>%s %s :@ %a@]"],Vfr=[0,[12,35,[2,0,0]],Vg],Lfr=[0,[18,[1,[0,[11,kx,0],kx]],[12,35,[2,0,[11,tI,[17,[0,tb,1,0],[15,[17,0,0]]]]]]],"@[<2>#%s :@ %a@]"],zfr=[0,[2,0,[11,Do,[15,0]]],"%s <: %a"],Sfr=[0,[18,[1,[0,[11,Im,0],Im]],[12,60,[15,[12,62,[17,0,0]]]]],"@[<1><%a>@]"],Zfr=rI,Wfr=Fx,Xfr=[0,[18,[1,[0,[11,kx,0],kx]],[2,0,[11,tI,[17,[0,tb,1,0],[15,[17,0,0]]]]]],G$],Jfr=[0,[18,[1,[0,[11,Ev,0],Ev]],[2,0,[12,CU,[17,[0,Fc,0,0],[15,[17,[0,rb,0,-2],[12,xI,[17,0,0]]]]]]]],"@[%s{@;<0 0>%a@;<0 -2>}@]"],Yfr=[0,[18,[1,[0,[11,Ev,0],Ev]],[2,0,[11,"({",[17,[0,Fc,0,0],[15,[17,[0,rb,0,-2],[11,"}, {",[17,[0,Fc,0,0],[15,[17,Wz,[11,"})",[17,0,0]]]]]]]]]]]],"@[%s({@;<0 0>%a@;<0 -2>}, {@;<0 0>%a@;<0 -2>})@]"],rir=[0,[18,[1,[0,[11,Ev,0],Ev]],[12,CU,[17,[0,Fc,0,0],[15,[17,[0,rb,0,-2],[12,xI,[17,[0,"@;<0-2>",0,-2],[2,0,[11," {",[17,Jz,Xz]]]]]]]]]],"@[{@;<0 0>%a@;<0 -2>}@;<0-2>%s {@;<0 0>%a@;<0 -2>}@]"],eir=[0,[18,[1,[0,[11,c$,0],c$]],[15,[15,[15,[12,59,[17,0,0]]]]]],"@[%a%a%a;@]"],nir=[0,[15,[11,KE,[15,0]]],"%a = %a"],tir=MI,air=ua,uir=Mo,fir=jq,iir=gU,vir=TA,cir=EI,Air=zk,oir=[0,[11,pa,[15,[11,Ty,[15,[2,0,0]]]]],Kg],sir=zk,bir=[0,[11,pa,[15,[11,Ty,[15,[2,0,0]]]]],Kg],lir=[0,[11,"type variable ",[15,[11,"\n was promoted to its bound ",[15,[11,"\n and ",[2,0,0]]]]]],"type variable %a\n was promoted to its bound %a\n and %s"],Bir=Xy,jir=[0,[2,0,[11,"case `#",[2,0,[11,es,[2,0,[11,dn,[15,[2,0,0]]]]]]]],"%scase `#%s` is missing from %stype %a%s"],kir=of,pir=Yr,mir=Xy,dir=[0,[2,0,[2,0,[11," `",[2,0,[11,es,[2,0,[11,dn,[15,[2,0,0]]]]]]]]],"%s%s `%s` is missing from %stype %a%s"],_ir=zk,hir=[0,[11,"there are fewer ",[2,0,[11,ic,[2,0,0]]]],"there are fewer %s than expected%s"],xir=zk,yir=[0,[11,"there are more ",[2,0,[11,ic,[2,0,0]]]],"there are more %s than expected%s"],wir=zk,gir=[0,[11,"promoting ",[15,[11,"\n to `Any` loses data",[2,0,0]]]],"promoting %a\n to `Any` loses data%s"],qir=zk,Iir=[0,[11,pa,[15,[11,Ty,[15,[2,0,0]]]]],Kg],Dir=zk,Eir=[0,[11,"of incompatible object sorts:\n ",[2,0,[11," does not match ",[2,0,[2,0,0]]]]],"of incompatible object sorts:\n %s does not match %s%s"],Nir=zk,Tir=[0,[11,"of incompatible function modifiers: ",[2,0,[11,aN,[2,0,[2,0,0]]]]],"of incompatible function modifiers: %s\n does not match %s%s"],Fir=zk,Mir=[0,[11,"of incompatible function controls: ",[2,0,[11,aN,[2,0,[2,0,0]]]]],"of incompatible function controls: %s\n does not match %s%s"],Pir=zk,Uir=[0,[11,"of incompatible function types: ",[15,[11,aN,[15,[2,0,0]]]]],"of incompatible function types: %a\n does not match %a%s"],Gir=zk,$ir=[0,[11,"of incompatible async sorts: ",[2,0,[11,aN,[2,0,[2,0,0]]]]],"of incompatible async sorts: %s\n does not match %s%s"],Kir=zk,Oir=[0,[11,"of incompatible async scopes: ",[15,[11,aN,[15,[2,0,0]]]]],"of incompatible async scopes: %a\n does not match %a%s"],Rir=[0,[2,0,[11," (used by ",[2,0,[12,41,0]]]],"%s (used by %s)"],Qir=[0,[2,0,[12,32,[2,0,[12,32,[2,0,0]]]]],"%s %s %s"],Cir=pl,Hir=[0,xj,Xy],Vir=[0,"arguments",Xy],Lir=[0,"results",Xy],zir=zk,Sir=[0,[12,96,[2,0,[12,96,0]]],Z$],Zir=zk,Wir=[0,[11,"`(",[2,0,[11," : _)`",0]]],"`(%s : _)`"],Xir=Xy,Jir=[0,[12,96,[2,0,[12,96,0]]],Z$],Yir=zk,rvr=[0,[12,96,[2,0,[12,96,0]]],Z$],evr=[0,[2,0,0],aM],nvr=[0,[2,0,[2,0,[4,0,0,0,0]]],"%s%s%d"],tvr=[0,[12,59,[17,[0,tb,1,0],0]],";@ "],avr=[0,[12,44,[17,[0,tb,1,0],0]],",@ "],uvr=[0,[11,xE,[17,[0,tb,1,0],0]],"...@ "],fvr=YE,ivr=oG,vvr=rc,cvr=QF,Avr=vo,ovr=dM,svr=Su,bvr=No,lvr=Eb,Bvr=vF,jvr=Vq,kvr=NT,pvr=_P,mvr=Hv,dvr=l$,_vr=ZP,hvr=ii,xvr=dv,yvr=pg,wvr=uh,gvr=[0,ix,991,21],qvr=[0,ix,974,23],Ivr=[0,ix,Nc,23],Dvr=[0,ix,862,23],Evr="lookup_typ_deprecation",Nvr="lookup_typ_field",Tvr=[0,0,1],Fvr=[0,0,0],Mvr=[0,"X",1,0],Pvr=Hg,Uvr=B$,Gvr=Jm,$vr=qM,Kvr=fK,Ovr=Rx,Rvr=Eu,Qvr=[0,ix,599,2],Cvr=[1,0,2],Hvr=Ds,Vvr=[2,14],Lvr=Ci,zvr=kE,Svr=ui,Zvr=aj,Wvr=nt,Xvr=Uu,Jvr=Vl,Yvr=WI,rcr=i,ecr=pk,ncr=oa,tcr=YD,acr=Rf,ucr=BU,fcr=bg,icr=Ya,vcr=_o,ccr=$n,Acr=rT,ocr=pe,scr=zj,bcr=s_,lcr=DI,Bcr=Eh,jcr=he,kcr=tq,pcr=OU,mcr=k,dcr=pi,_cr=k,hcr=pi,xcr=[0,Re,lj,27],ycr=zI,wcr=[0,[0,0,jQ],0],gcr=[0,[0,0,KB],0],qcr=[0,Re,ns,11],Icr=[0,Re,WE,13],Dcr=TP,Ecr=jc,Ncr=[0,1,"V"],Tcr=[0,1,jc],Fcr=[0,1,rr],Mcr=[0,2,kQ],Pcr=[0,[0,0,"u"],0],Ucr=TP,Gcr=Wt,$cr=[0,1,t_],Kcr=[0,1,"w"],Ocr=[0,Re,To,4],Rcr=[0,Re,xo,4],Qcr=YO,Ccr=Sv,Hcr=vq,Vcr=OI,Lcr=Fi,zcr=[0,ub,41,12],Scr=[0,ub,30,6],Zcr=[0,ub,64,19],Wcr=pi,Xcr=[0,[11,dn,[2,0,[2,0,[12,32,[2,0,[12,32,[2,0,0]]]]]]],"type %s%s %s %s"],Jcr=YO,Ycr=[0,[2,0,[12,60,[2,0,[12,62,0]]]],hK],rAr=[0,[11,":\n ",[2,0,[11,"\nis expansive, because ",[2,0,[11," occurs as an indirect argument of recursive type ",[2,0,[11,".\n(",[2,0,[11," would be allowed as an immediate argument, but cannot be part of a larger type expression.)",[2,0,0]]]]]]]]]],":\n %s\nis expansive, because %s occurs as an indirect argument of recursive type %s.\n(%s would be allowed as an immediate argument, but cannot be part of a larger type expression.)%s"],eAr=[0,uE,Cu,8],nAr=[0,uE,ta,4],tAr=[0,uE,94,6],aAr=[0,Ea],uAr=[0,"Non"],fAr=[0,aQ],iAr=a$,vAr=Oc,cAr=Qf,AAr=rn,oAr=hp,sAr=m_,bAr=jR,lAr=Wh,BAr=GT,jAr=R_,kAr=BI,pAr=[0,YE],mAr=[0,oG],dAr=[0,rc],_Ar=[0,QF],hAr=[0,vo],xAr=[0,dM],yAr=[0,Su],wAr=[0,No],gAr=[0,Eb],qAr=[0,vF],IAr=[0,Vq],DAr=[0,NT],EAr=[0,_P],NAr=[0,Hv],TAr=[0,l$],FAr=[0,ZP],MAr=[0,ii],PAr=[0,dv],UAr=[0,pg],GAr=[0,uh],$Ar=mE,KAr=TT,OAr=ye,RAr=QB,QAr=[0,DT],CAr=[0,Od],HAr=[0,qg],VAr=[0,ma],LAr=[0,X$],zAr=td,SAr=Gx,ZAr=fi,WAr=[0,[6,12,0,0,0],"%nu"],XAr=[0,"big_int.ml",879,2],JAr=NC(1,0,0),YAr=I,ror=I,eor=I,nor=EO,tor=NC(zK,LK,0),aor=NC(zK,LK,0),uor=NC(0,0,0),ior=EO,vor=NC(0,0,0),cor=EO,Aor=NC(0,0,0),oor=NC(0,0,0),sor=NC(0,0,0),bor=ym,lor=ym,Bor=ym,jor=wB,kor=[1,"The prim package has no modules"],por=Sf,mor=[0,[11,"Package imports mustn't access parent directories: ",[2,0,[11," is invalid.",0]]],"Package imports mustn't access parent directories: %s is invalid."],dor=[0,0],_or=[1,"Unrecognized URL"],hor=[1,"principal cannot be empty"],xor=[1,"principal too short"],yor=[0,[11,"invalid principal. Did you mean ",[3,0,[12,63,0]]],"invalid principal. Did you mean %S?"],wor=BT,gor=kn,qor=Qs,Ior=Qs,Dor=kn,Eor=BT,Nor=[0,[12,40,[2,0,[4,3,0,0,[12,32,[2,0,[12,32,[4,3,0,0,[12,41,0]]]]]]]],"(%s%i %s %i)"],Tor=[0,0,0,1,1],For=[0,"mo_values/numerics.ml",bk,10],Mor=NC(0,0,0),Por=[0,[7,6,0,0,0],VE],Uor=Gj,Gor=Gj,$or=[0,1],Kor=M,Oor=EF,Ror=bn,Qor=ID,Cor=YO,Hor=[0,[18,[1,[0,[11,Im,0],Im]],[12,40,[15,[2,0,[12,41,[17,0,0]]]]]],lx],Vor=hi,Lor=[0,[18,[1,[0,[11,Im,0],Im]],[12,91,[15,[15,[12,93,[17,0,0]]]]]],"@[<1>[%a%a]@]"],zor=[0,[18,[1,[0,[11,TG,0],TG]],[15,[12,CU,[17,[0,Fc,0,0],[15,[17,[0,rb,0,-2],[12,xI,[17,0,0]]]]]]]],"@[%a{@;<0 0>%a@;<0 -2>}@]"],Sor=[0,[18,[1,[0,[11,Im,0],Im]],[12,40,[15,[12,41,[17,0,0]]]]],_p],Zor=[0,[18,[1,[0,[11,kx,0],kx]],[2,0,[11," =",[17,[0,tb,1,0],[15,[17,0,0]]]]]],"@[<2>%s =@ %a@]"],Wor=M,Xor=[0,[18,[1,[0,[11,Im,0],Im]],[12,63,[15,[17,0,0]]]],Wx],Jor=[0,[12,35,[2,0,0]],Vg],Yor=[0,[18,[1,[0,0,kQ]],[12,35,[2,0,[17,[0,mh,0,1],[15,[17,0,0]]]]]],"@[#%s@;<0 1>%a@]"],rsr=[0,[18,[1,[0,0,kQ]],[12,35,[2,0,[17,[0,mh,0,1],[12,40,[15,[12,41,[17,0,0]]]]]]]],"@[#%s@;<0 1>(%a)@]"],esr=[0,[18,[1,[0,[11,kx,0],kx]],[11,"async[",[4,0,0,0,[12,93,[17,[0,tb,1,0],[15,[17,0,0]]]]]]],"@[<2>async[%d]@ %a@]"],nsr=[0,[18,[1,[0,[11,kx,0],kx]],[11,ua,[17,[0,tb,1,0],[15,[17,0,0]]]]],Mc],tsr=[0,[18,[1,[0,[11,Im,0],Im]],[11,j$,[15,[17,0,0]]]],sO],asr=[0,[18,[1,[0,0,kQ]],[11,dv,[17,[0,tb,1,0],[15,[17,0,0]]]]],"@[Error@ %a@]"],usr=pi,fsr=pi,isr=[0,[12,59,[17,[0,tb,1,0],0]],";@ "],vsr=[0,[12,44,[17,[0,tb,1,0],0]],",@ "],csr=og,Asr=[0,[11,"ID:",[4,3,0,0,0]],"ID:%i"],osr=Hg,ssr=B$,bsr=Jm,lsr=Eu,Bsr=qM,jsr=fK,ksr=Rx,psr=EF,msr=bn,dsr=ID,_sr=Yp,hsr=[0,[12,CU,[2,0,[12,xI,0]]],"{%s}"],xsr=[0,[12,35,[2,0,[2,0,0]]],"#%s%s"],ysr=[0,[12,35,[2,0,0]],Vg],wsr=[0,[12,35,[2,0,[12,40,[2,0,[12,41,0]]]]],"#%s(%s)"],gsr=[0,oh,87,11],qsr=rm,Isr=[0,[11,fv,[2,0,[12,93,0]]],"[var %s]"],Dsr=rm,Esr=[0,[12,91,[2,0,[12,93,0]]],"[%s]"],Nsr=EF,Tsr=YO,Fsr=rm,Msr=[0,[12,40,[2,0,[2,0,[12,41,0]]]],Ja],Psr=[0,[11,"(weak ",[2,0,[12,41,0]]],"(weak %s)"],Usr=[0,[18,[1,[0,0,kQ]],[11,"show_val: ",[15,[11,P_,[15,[17,4,[17,0,0]]]]]]],"@[show_val: %a : %a@.@]"],Gsr=[0,oh,93,4],$sr=[0,[2,0,[11,KE,[2,0,0]]],"%s = %s"],Ksr=og,Osr=[0,Dh,oP,17],Rsr=[0,0],Qsr=[14,kQ],Csr=[14,kQ],Hsr=[14,kQ],Vsr=[14,kQ],Lsr=[14,kQ],zsr=[13,"0.1"],Ssr=[0,Dh,ag,12],Zsr=[0,0],Wsr=[0,[2,0,[12,10,[10,0]]],IF],Xsr=er,Jsr=Id,Ysr=[0,Dh,Ae,12],rbr=[0,Dh,Je,12],ebr=[0,Dh,xm,12],nbr=[0,Dh,xo,12],tbr=[0,Dh,FO,12],abr=[0,24,[0,16,[0,8,[0,0,0]]]],ubr=[0,56,[0,48,[0,40,[0,32,[0,24,[0,16,[0,8,[0,0,0]]]]]]]],fbr=[0,24,[0,16,[0,8,[0,0,0]]]],ibr=[0,56,[0,48,[0,40,[0,32,[0,24,[0,16,[0,8,[0,0,0]]]]]]]],vbr=[0,Dh,UE,12],cbr=[13,kQ],Abr=[0,Dh,_m,11],obr=[0,Dh,329,11],sbr=[0,Dh,Wj,11],bbr=vu,lbr=[0,Dh,us,11],Bbr=Pf,jbr=[0,Dh,GR,11],kbr=[0,[8,[0,0,0],0,1,0],"%.*f"],pbr=[0,[8,[0,0,1],0,1,0],"%.*e"],mbr=[0,[8,[0,0,3],0,1,0],zv],dbr=[0,[8,[0,0,6],0,1,0],"%.*h"],_br=ru,hbr=[0,aF,zw,41],xbr=[0,aF,212,19],ybr=[0,1],wbr=[0,aF,202,20],gbr=[0,0],qbr=[0,0],Ibr=[0,1],Dbr=[0,aF,t,21],Ebr=[0,aF,$x,43],Nbr=[0,aF,nd,7],Tbr=[0,aF,Ze,66],Fbr=[0,aF,gI,25],Mbr=ru,Pbr=xA,Ubr=xA,Gbr=xA,$br=Xt,Kbr=Xt,Obr=Xt,Rbr=[0,yi],Qbr=[0,KG],Cbr=[0,_O],Hbr=[0,Rd],Vbr=[0,zn],Lbr=[0,ds],zbr=[0,YN],Sbr=[0,dU],Zbr=[0,za],Wbr=[0,Th],Xbr=[0,aE],Jbr=[0,eq],Ybr=[0,sb],rlr=[0,rl],elr=[0,oD],nlr=[0,LT],tlr=[0,cD],alr=[0,Uj],ulr=[0,le],flr=[0,W$],ilr=[0,zN],vlr=[0,Kv],clr=[0,hM],Alr=[0,Gn],olr=[0,$U],slr=[0,Ar],blr=[0,hx],llr=[6,0],Blr=ki,jlr=gB,klr=[0,NN,xs,4],plr=[0,0,0],mlr=[0,0,0],dlr=[0,NN,51,6],_lr=[0,NN,20,9],hlr=[0,0,0],xlr=Zv,ylr=ZU,wlr=re,glr=O_,qlr=BK,Ilr=nB,Dlr=EB,Elr=gR,Nlr=eD,Tlr=Uw,Flr=o$,Mlr=Ti,Plr=Ps,Ulr=mI,Glr=[0,cK],$lr=[0,pi],Klr=Ni,Olr=[0,[0,yn],0],Rlr=yv,Qlr=yv,Clr=Bt,Hlr=pT,Vlr=dO,Llr=Qq,zlr=uo,Slr=rI,Zlr=[0,pi],Wlr=iy,Xlr=zi,Jlr=qG,Ylr=Pc,rBr=ob,eBr=Ls,nBr=Rb,tBr=jd,aBr=CT,uBr=CT,fBr=j_,iBr=Dd,vBr=TI,cBr=TI,ABr=Ua,oBr=wK,sBr=[0,"mo_def/arrange.ml",Ak,43],bBr=ct,lBr=wP,BBr=Ip,jBr=KU,kBr=DP,pBr=Aq,mBr=v$,dBr=nT,_Br=zu,hBr=pG,xBr=[0,bt],yBr=Gt,wBr=Gt,gBr=Nj,qBr=[0,xO],IBr=[0,pN],DBr=DO,EBr=su,NBr=iQ,TBr=H$,FBr=fr,MBr=aP,PBr=qA,UBr=Fd,GBr=Fy,$Br=Dg,KBr=[0,mD],OBr=[0,[0,bn],0],RBr=un,QBr=[0,[0,ID],0],CBr=un,HBr=Mt,VBr=Ug,LBr=Y$,zBr=qe,SBr=Sl,ZBr=_K,WBr=K,XBr=kN,JBr=Jy,YBr=Dr,rjr=wD,ejr=Om,njr=bE,tjr=ah,ajr=gp,ujr=Nl,fjr=Ig,ijr=RK,vjr=Iu,cjr=$w,Ajr=[0,pi],ojr=hv,sjr=TT,bjr=oN,ljr=[0,QB],Bjr=[0,hv],jjr=[0,TT],kjr=[0,oN],pjr=[0,QB],mjr=[0,a$],djr=[0,nM],_jr=[0,sB],hjr=[0,U_],xjr=JE,yjr=[0,JE],wjr=[0,RI],gjr=[0,fD],qjr=[0,Cg],Ijr=eT,Djr=ky,Ejr=Tu,Njr=C,Tjr=Vv,Fjr=bT,Mjr=Ce,Pjr=mm,Ujr=kT,Gjr=gw,$jr=HF,Kjr=o_,Ojr=RD,Rjr=_w,Qjr=Pe,Cjr=fa,Hjr=oE,Vjr=$G,Ljr=Lt,zjr=Ab,Sjr=nU,Zjr=nU,Wjr=cT,Xjr=FD,Jjr=[0,pi],Yjr=qE,rkr=Ia,ekr=WK,nkr=[0,DT],tkr=[0,Od],akr=[0,qg],ukr=[0,ma],fkr=[0,X$],ikr=[0,gb,3725,4],vkr=[0,gb,3664,8],ckr=[0,gb,3615,4],Akr=[0,gb,3427,4],okr=[0,gb,3340,4],skr=[0,gb,3334,4],bkr=[0,gb,3315,4],lkr=[0,gb,2677,6],Bkr=GP,jkr=Ku,kkr=[0,gb,1471,4],pkr=[0,gb,1486,4],mkr=[0,gb,1831,8],dkr=[0,gb,2019,6],_kr=[0,gb,1804,4],hkr=_y,xkr=Wy,ykr=[0,[11,"opcode not covered: ",[4,0,0,0,0]],"opcode not covered: %d"],wkr=[0,[11,"\\u{",[4,6,[0,2,2],0,[12,xI,0]]],rD],gkr=[0,2],qkr=[0,1],Ikr=[0,0],Dkr=[0,1],Ekr=[0,0],Nkr=[0,[0,2,1]],Tkr=[0,[0,2,0]],Fkr=[0,[0,1,1]],Mkr=[0,[0,1,0]],Pkr=[0,[0,0,1]],Ukr=[0,[0,0,0]],Gkr=[0,[0,1,1]],$kr=[0,[0,1,0]],Kkr=[0,[0,0,1]],Okr=[0,[0,0,0]],Rkr=[19,[0,0]],Qkr=[19,[0,1]],Ckr=[19,[0,2]],Hkr=[19,[1,0]],Vkr=[19,[1,1]],Lkr=[19,[1,2]],zkr=[19,[2,0]],Skr=[19,[2,1]],Zkr=[19,[2,6]],Wkr=[19,[2,2]],Xkr=[19,[2,3]],Jkr=[19,[2,4]],Ykr=[19,[2,5]],rpr=[19,[3,0]],epr=[19,[3,1]],npr=[19,[3,6]],tpr=[19,[3,2]],apr=[19,[3,3]],upr=[19,[3,4]],fpr=[19,[3,5]],ipr=[20,[0,0]],vpr=[20,[0,1]],cpr=[20,[0,2]],Apr=[20,[0,3]],opr=[20,[0,4]],spr=[20,[0,5]],bpr=[20,[0,6]],lpr=[20,[0,7]],Bpr=[20,[0,8]],jpr=[20,[0,9]],kpr=[20,[0,10]],ppr=[20,[0,11]],mpr=[20,[0,12]],dpr=[20,[0,13]],_pr=[20,[0,14]],hpr=[20,[1,0]],xpr=[20,[1,1]],ypr=[20,[1,2]],wpr=[20,[1,3]],gpr=[20,[1,4]],qpr=[20,[1,5]],Ipr=[20,[1,6]],Dpr=[20,[1,7]],Epr=[20,[1,8]],Npr=[20,[1,9]],Tpr=[20,[1,10]],Fpr=[20,[1,11]],Mpr=[20,[1,12]],Ppr=[20,[1,13]],Upr=[20,[1,14]],Gpr=[20,[2,0]],$pr=[20,[2,1]],Kpr=[20,[2,2]],Opr=[20,[2,3]],Rpr=[20,[2,4]],Qpr=[20,[2,5]],Cpr=[20,[2,6]],Hpr=[20,[3,0]],Vpr=[20,[3,1]],Lpr=[20,[3,2]],zpr=[20,[3,3]],Spr=[20,[3,4]],Zpr=[20,[3,5]],Wpr=[20,[3,6]],Xpr=[17,[0,0]],Jpr=[17,[1,0]],Ypr=[18,[0,0]],rmr=[18,[0,1]],emr=[18,[0,2]],nmr=[18,[0,3]],tmr=[18,[0,6]],amr=[18,[0,7]],umr=[18,[0,4]],fmr=[18,[0,5]],imr=[18,[0,8]],vmr=[18,[0,9]],cmr=[18,[1,0]],Amr=[18,[1,1]],omr=[18,[1,2]],smr=[18,[1,3]],bmr=[18,[1,6]],lmr=[18,[1,7]],Bmr=[18,[1,4]],jmr=[18,[1,5]],kmr=[18,[1,8]],pmr=[18,[1,9]],mmr=[18,[2,0]],dmr=[18,[2,1]],_mr=[18,[2,2]],hmr=[18,[2,4]],xmr=[18,[2,3]],ymr=[18,[2,5]],wmr=[18,[3,0]],gmr=[18,[3,1]],qmr=[18,[3,2]],Imr=[18,[3,4]],Dmr=[18,[3,3]],Emr=[18,[3,5]],Nmr=[19,[0,[0,0]]],Tmr=[19,[0,[0,1]]],Fmr=[19,[1,[0,0]]],Mmr=[19,[1,[0,1]]],Pmr=[19,[1,[0,2]]],Umr=[21,[0,2]],Gmr=[21,[0,3]],$mr=[21,[0,4]],Kmr=[21,[0,5]],Omr=[21,[0,6]],Rmr=[21,[0,7]],Qmr=[21,[0,8]],Cmr=[21,[0,9]],Hmr=[21,[0,10]],Vmr=[21,[1,0]],Lmr=[21,[1,1]],zmr=[21,[1,3]],Smr=[21,[1,4]],Zmr=[21,[1,5]],Wmr=[21,[1,6]],Xmr=[21,[2,0]],Jmr=[21,[2,1]],Ymr=[21,[2,2]],rdr=[21,[2,3]],edr=[21,[1,7]],ndr=[21,[1,8]],tdr=[21,[1,9]],adr=[21,[1,10]],udr=[21,[2,5]],fdr=[21,[3,0]],idr=[21,[3,1]],vdr=[21,[3,2]],cdr=[21,[3,3]],Adr=[21,[3,4]],odr=[21,[0,11]],sdr=[21,[1,11]],bdr=[21,[2,6]],ldr=[21,[3,6]],Bdr=[0,"wasm-exts/abbreviation.ml",15,2],jdr=NC(lj,0,0),kdr=NC(0,0,0),pdr=NC(Ih,0,0),mdr=NC(lj,0,0),ddr=NC(qq,zK,Fn),_dr=NC(64,0,0),hdr=[0,YR,Qb,8],xdr=[0,YR,ac,8],ydr=[0,YR,Pl,53],wdr=[0,YR,ws,58],gdr=[0,YR,524,24],qdr=[0,YR,525,24],Idr=[0,YR,568,46],Ddr=[0,YR,641,42],Edr=[0,YR,642,42],Ndr=[0,YR,656,39],Tdr=[0,YR,671,42],Fdr=[0,YR,680,41],Mdr=[0,YR,oi,18],Pdr=[0,[11,"attr: 0x",[4,6,0,0,[11,vK,[4,6,0,0,[11,cy,[4,6,0,0,[11,Eo,0]]]]]]],"attr: 0x%x = a: 0x%x (in TAG 0x%x)\n"],Udr=[0,YR,zM,12],Gdr=Zr,$dr=[0,[11,"DATA1 attr: 0x",[4,6,0,0,[11,vK,[4,6,0,0,[11,cy,[4,6,0,0,[11,") PATH: ",[2,0,[11," ULT: (",[2,0,TS]]]]]]]]]],"DATA1 attr: 0x%x = a: 0x%x (in TAG 0x%x) PATH: %s ULT: (%s, %d)\n"],Kdr=[0,YR,1083,12],Odr=[0,YR,1089,45],Rdr=[0,YR,1062,18],Qdr=[0,YR,1295,6],Cdr=Zr,Hdr=TV([0,1,1,1,1,0,0,0,1,0,0,1]),Vdr=[0,[1,0,0,0],0],Ldr=[0,YR,1009,12],zdr=[0,YR,964,8],Sdr=[0,YR,950,57],Zdr=YO,Wdr=eI,Xdr=Fp,Jdr=Sw,Ydr=Ym,r_r=RE,e_r=QR,n_r=qP,t_r=DE,a_r=Kd,u_r=[0,YR,822,54],f_r=[0,YR,815,45],i_r=[0,YR,813,16],v_r=[0,YR,Ll,6],c_r=NC(zK,LK,0),A_r=NC(zK,LK,0),o_r=[0,YR,ud,13],s_r=[0,YR,jh,25],b_r=[0,[1,0,0,0],0],l_r=gm,B_r=lP,j_r=Zr,k_r=zR,p_r=[0,pk,[0,$N,3]],m_r=hU,d_r=eu,__r=hU,h_r=eu,x_r=[0,5],y_r=U$,w_r=U$,g_r=[0,ni,804,6],q_r=[0,ni,800,6],I_r=[0,ni,808,2],D_r=eI,E_r=Fp,N_r=Sw,T_r=Ym,F_r=RE,M_r=QR,P_r=m,U_r=qP,G_r=[0,[11,"unknown motoko section subsection id ",[4,0,0,0,0]],"unknown motoko section subsection id %d"],$_r=Kd,K_r=[0,[11,"unknown name section subsection id ",[4,0,0,0,0]],"unknown name section subsection id %d"],O_r=Bi,R_r=[0,1],Q_r=[0,0],C_r=Bi,H_r=NC(0,mc,0),V_r=NC(0,0,0),L_r=[1,0],z_r=m,S_r=[0,[4,6,[0,2,2],0,0],"%02x"],Z_r=Fp,W_r=Sw,X_r=RE,J_r=[0,tl,337,25],Y_r=[0,tl,uk,18],rhr=[0,[4,0,0,0,[11,He,0]],"%d: "],ehr=[0,[11,"Candidate #",[4,0,0,0,[12,10,0]]],"Candidate #%d\n"],nhr=[0,"mo_frontend/variance.ml",52,23],thr=Lb,ahr=[0,[12,96,[2,0,[11,"` cannot be inferred.",0]]],"`%s` cannot be inferred."],uhr=[0,Dn,600,4],fhr=[0,Dn,607,4],ihr=[0,0,0],vhr=[0,[2,0,[11," := ",[2,0,0]]],"%s := %s"],chr=[0,0,0],Ahr=rm,ohr=[0,[11,"bug: inferred bad instantiation\n <",[2,0,[11,">\nplease report this error message and, for now, supply an explicit instantiation instead",0]]],"bug: inferred bad instantiation\n <%s>\nplease report this error message and, for now, supply an explicit instantiation instead"],shr=Fx,bhr=[0,[15,[11," (for the expected return type) ",0]],"%a (for the expected return type) "],lhr=Fx,Bhr=[0,[15,[11," (for argument `",[2,0,[11,"`) ",0]]]],"%a (for argument `%s`) "],jhr=Fx,khr=[0,[15,0],sK],phr=[0,[11,"there is no way to satisfy subtyping",[2,0,0]],"there is no way to satisfy subtyping%s"],mhr=rm,dhr=[0,[11,"Hint: Add explicit type instantiation, e.g. <",[2,0,[12,62,0]]],"Hint: Add explicit type instantiation, e.g. <%s>"],_hr=[0,Dn,zw,17],hhr=[0,Dn,xd,6],xhr=[0,Dn,__,6],yhr=[0,Dn,292,6],whr=[0,Dn,Bo,8],ghr=[0,Dn,ag,8],qhr=[0,Dn,dD,6],Ihr=[0,Dn,aO,6],Dhr=[0,[11,"bug: impossible over-constrained type parameter `",[2,0,[11,"` with",[15,[11,"\nwhere",[15,[11,"\nPlease report this bug and supply an explicit instantiation instead.",0]]]]]]],"bug: impossible over-constrained type parameter `%s` with%a\nwhere%a\nPlease report this bug and supply an explicit instantiation instead."],Ehr=Wt,Nhr=Lb,Thr=[0,[11,'there is no "best" choice for type parameter',[2,0,[11," `",[2,0,[11,"`.",0]]]]],'there is no "best" choice for type parameter%s `%s`.'],Fhr=[0,[11,"type parameter `",[2,0,[11,"` has a bound ",[15,[11,"\ninvolving another type parameter. Please provide an explicit instantiation.",0]]]]],"type parameter `%s` has a bound %a\ninvolving another type parameter. Please provide an explicit instantiation."],Mhr=[0,Dn,ta,9],Phr=[0,Dn,WE,9],Uhr=[0,0,0],Ghr=DM,$hr=[0,[18,[1,[0,[11,TG,0],TG]],[15,[11,NI,[17,[0,tb,1,0],[18,[1,[0,[11,TG,0],TG]],[2,0,[11,NI,[17,[0,tb,1,0],[15,[17,0,[17,0,0]]]]]]]]]]],"@[%a <: @ @[%s <: @ %a@]@]"],Khr=[0,[18,[1,[0,[11,TG,0],TG]],[15,[11,JM,[2,0,[12,32,[17,[0,tb,1,0],[15,[17,0,0]]]]]]]],"@[%a %s @ %a@]"],Ohr=[0,0,0],Rhr=[0,0,0],Qhr=[0,[4,0],0],Chr=[0,0,0],Hhr=[0,BD,fM,10],Vhr=[0,0,0],Lhr=pi,zhr=rm,Shr=Yp,Zhr=[0,BD,Qw,2],Whr=Bk,Xhr=[0,0],Jhr=[0,BD,213,13],Yhr=[0,BD,Ma,13],rxr=[0,0],exr=[0,BD,Jj,13],nxr=[0,BD,dj,11],txr=[0,BD,uk,4],axr=[0,BD,$R,4],uxr=[0,0],fxr=[0,0],ixr=[11,0],vxr=[0,BD,qo,16],cxr=[0,0],Axr=[0,0],oxr=[0,fo,os,4],sxr=[0,fo,uw,6],bxr=[0,fo,Ux,6],lxr=[0,[11,"cannot upgrade from an actor using enhanced migration to an actor not using enhanced migration. Please see ",[2,0,[12,46,0]]],"cannot upgrade from an actor using enhanced migration to an actor not using enhanced migration. Please see %s."],Bxr=[0,[2,0,[11," does not contain the stable variable `",[2,0,[11,"`. The migration function cannot require this variable as input, please see ",[2,0,[12,46,0]]]]]],"%s does not contain the stable variable `%s`. The migration function cannot require this variable as input, please see %s."],jxr=$O,kxr=[0,[11,Dc,[2,0,[11,"` implicitly drops data of ",[2,0,[11,". \n The previous type",[15,[11,"\n is not a stable subtype of",[15,[11,tD,[2,0,[11,".\n The data can only be dropped by an explicit migration function, please see ",[2,0,[12,46,0]]]]]]]]]]]]],"the new type of stable variable `%s` implicitly drops data of %s. \n The previous type%a\n is not a stable subtype of%a\n because %s.\n The data can only be dropped by an explicit migration function, please see %s."],pxr=[0,[11,Dc,[2,0,[11,"` is not compatible with ",[2,0,[11,".\n The previous type",[15,[11,"\n is not a subtype of",[15,[11,tD,[2,0,[11,".\n Write an explicit migration function, please see ",[2,0,[12,46,0]]]]]]]]]]]]],"the new type of stable variable `%s` is not compatible with %s.\n The previous type%a\n is not a subtype of%a\n because %s.\n Write an explicit migration function, please see %s."],mxr=[0,[11,"the stable variable `",[2,0,[11,"` of ",[2,0,[11," cannot be implicitly discarded. The variable can only be dropped by an explicit migration function, please see ",[2,0,0]]]]]],"the stable variable `%s` of %s cannot be implicitly discarded. The variable can only be dropped by an explicit migration function, please see %s"],dxr=$O,_xr=pl,hxr=pl,xxr=[0,[11,wB,[2,0,0]],"mo:%s"],yxr=[0,[11,wB,[2,0,[12,47,[2,0,0]]]],"mo:%s/%s"],wxr=[0,[11," after adding `import ",[2,0,[11,' = "mo:',[2,0,[12,47,[2,0,[11,'"`',0]]]]]]],' after adding `import %s = "mo:%s/%s"`'],gxr=Xd,qxr=Nh,Ixr=[0,[11,"\nMaybe try conversion:\n ",[2,0,[12,63,0]]],"\nMaybe try conversion:\n %s?"],Dxr=[0,[12,96,[2,0,[12,46,[2,0,[11,"(_)`",[2,0,0]]]]]],"`%s.%s(_)`%s"],Exr=[0,[11,"The ",[2,0,[12,32,[2,0,[11," is not available. Try something else?",0]]]]],"The %s %s is not available. Try something else?"],Nxr=Bk,Txr=rm,Fxr=[0,[11,"help: did you mean ",[2,0,[12,32,[2,0,[12,63,0]]]]],"help: did you mean %s %s?"],Mxr=[0,[11,"expected module, object, or actor type, but path expression produces type",[15,0]],"expected module, object, or actor type, but path expression produces type%a"],Pxr=[0,[11,"cannot infer type of forward variable reference ",[2,0,0]],"cannot infer type of forward variable reference %s"],Uxr=[0,[11,"unavailable variable ",[2,0,0]],"unavailable variable %s"],Gxr=[0,[11,zB,[2,0,[15,0]]],Tb],$xr=Vk,Kxr=[0,[11,Ax,[2,0,[11,La,[15,0]]]],hN],Oxr=Yr,Rxr=[0,[11,vM,[2,0,0]],_I],Qxr=[0,[11,"unbound type ",[2,0,[15,0]]],"unbound type %s%a"],Cxr="M0029",Hxr=pl,Vxr=[0,[11,"type field ",[2,0,[11,La,[15,0]]]],"type field %s does not exist in %a"],Lxr="M0030",zxr=of,Sxr=of,Zxr=[0,[11,LM,[15,0]],Cw],Wxr=Xb,Xxr=[0,[11,AN,0],AN],Jxr="M0040",Yxr=Yr,ryr=Le,eyr=of,nyr=Le,tyr=$D,ayr="variant type",uyr=[0,[11,cU,[15,0]],Kr],fyr=$K,iyr=[0,1],vyr=[0,[11,Bn,[15,0]],Lh],cyr=Hh,Ayr=[0,[11,"async has non-shared content type",[15,0]],"async has non-shared content type%a"],oyr=bq,syr=[0,[11,Vm,0],Vm],byr=UP,lyr=[0,[11,"this intersection results in type",[15,[11,zp,[15,[11,xR,[15,0]]]]]],"this intersection results in type%a\nbecause operand types are inconsistent,\nleft operand is%a\nright operand is%a"],Byr=la,jyr=[0,[11,Af,0],Af],kyr=UP,pyr=[0,[11,"this union results in type",[15,[11,zp,[15,[11,xR,[15,0]]]]]],"this union results in type%a\nbecause operand types are inconsistent,\nleft operand is%a\nright operand is%a"],myr=O$,dyr=[0,[11,fm,[2,0,[11," must have shared function type, but has type\n ",[2,0,0]]]],"actor field %s must have shared function type, but has type\n %s"],_yr=Do,hyr=[0,[11,sg,[2,0,[11,ok,[2,0,0]]]],cE],xyr=[0,qR,994,26],yyr=[0,qR,bA,12],wyr=[0,[11,"duplicate type name ",[2,0,[11," in type parameter list",0]]],"duplicate type name %s in type parameter list"],gyr=[1,0,2],qyr=[0,qR,1032,9],Iyr=[0,[11,"type argument",[15,[11,"\ndoes not match parameter bound",[15,0]]]],"type argument%a\ndoes not match parameter bound%a"],Dyr=[0,qR,_x,12],Eyr=[0,[11,"wrong number of type arguments: expected ",[4,0,0,0,[11,wF,[4,0,0,0,0]]]],"wrong number of type arguments: expected %d but got %d"],Nyr=rm,Tyr=[0,[11,"block contains non-productive definition",[2,0,[12,32,[2,0,0]]]],"block contains non-productive definition%s %s"],Fyr=[0,[11,"block contains expansive type definitions",[2,0,0]],"block contains expansive type definitions%s"],Myr=[0,qR,JT,4],Pyr=[0,[11,e_,0],e_],Uyr=[0,0],Gyr=[0,1],$yr=[0,2],Kyr=[0,[11,uv,0],uv],Oyr=[0,[11,Ph,0],Ph],Ryr=[0,[11,rA,0],rA],Qyr=[0,[11,zh,0],zh],Cyr=[0,qR,1117,4],Hyr=[0,[11,"cannot infer type of expression while trying to infer surrounding class type,\nbecause its type is a forward reference to type",[15,0]],"cannot infer type of expression while trying to infer surrounding class type,\nbecause its type is a forward reference to type%a"],Vyr=[0,qR,1716,2],Lyr=[0,qR,1718,2],zyr=[0,qR,1722,4],Syr=[0,[11,LM,[15,0]],Cw],Zyr=Xb,Wyr=[0,[11,Xo,0],Xo],Xyr=[0,[11,Xe,0],Xe],Jyr=[0,[11,"cannot infer type of forward variable ",[2,0,0]],"cannot infer type of forward variable %s"],Yyr=[0,[11,Ml,[2,0,[11," is in scope but not available in compiled code",0]]],"variable %s is in scope but not available in compiled code"],rwr=[0,1,0],ewr=[0,0,0],nwr=[0,[11,zB,[2,0,[15,0]]],Tb],twr=QD,awr=Bk,uwr=[0,[11,"help: Did you mean to import ",[2,0,[12,63,0]]],"help: Did you mean to import %s?"],fwr=[0,[11,zB,[2,0,[15,0]]],Tb],iwr=QD,vwr=Vk,cwr=[0,[11,lb,0],lb],Awr=[0,qR,1790,6],owr=[0,[11,bo,[15,0]],Ib],swr=bm,bwr=[0,qR,1801,6],lwr=[0,[11,aB,[15,0]],E_],Bwr=OA,jwr=[0,qR,1812,6],kwr=[0,[11,"comparing abstract type",[15,[11,"\nto itself at supertype",[15,0]]]],"comparing abstract type%a\nto itself at supertype%a"],pwr=no,mwr=[0,[11,"comparing incompatible types",[15,[11,ck,[15,[11,"\nat common supertype",[15,0]]]]]],"comparing incompatible types%a\nand%a\nat common supertype%a"],dwr=al,_wr=[0,[11,pj,[15,0]],"show is not defined for operand type%a"],hwr=[0,[11,Md,[15,0]],d],xwr=[2,16],ywr=[0,[11,BA,0],BA],wwr=[0,[11,Q_,[21,1,[11," is out of bounds for type",[15,0]]]],"tuple projection %n is out of bounds for type%a"],gwr=[0,[11,"expected tuple type, but expression produces type",[15,0]],"expected tuple type, but expression produces type%a"],qwr=[2,0],Iwr=zI,Dwr=zI,Ewr=[0,[11,mg,0],mg],Nwr=l_,Twr=[0,[11,"expected option type before '!', but expression produces type",[15,0]],"expected option type before '!', but expression produces type%a"],Fwr=[0,[11,XD,0],XD],Mwr=[0,3,[0,0,0]],Pwr=[0,[11,Fk,0],Fk],Uwr=[0,1,[0,2,0]],Gwr=[0,[11,"body of type",[15,[11,SE,[15,[15,0]]]]],"body of type%a\ndoes not match expected type%a%a"],$wr=[0,[11,Xa,0],Xa],Kwr=[0,[11,"this array has type",[15,[11,"\nbecause elements have inconsistent types",0]]],"this array has type%a\nbecause elements have inconsistent types"],Owr=Yb,Rwr=[2,3],Qwr=[0,[11,"expected array type or Blob, but expression produces type",[15,0]],"expected array type or Blob, but expression produces type%a"],Cwr=[0,[11,oU,0],oU],Hwr=[0,3,[0,0,0]],Vwr=[0,[11,KN,0],KN],Lwr=rF,zwr=[0,1,[0,2,0]],Swr=[0,[11,FI,0],FI],Zwr=AK,Wwr=[6,0],Xwr=[0,[11,iO,0],iO],Jwr=[0,[11,cU,[15,0]],Kr],Ywr=$K,rgr=[0,1],egr=[0,[11,nO,0],nO],ngr=[0,[11,NF,0],NF],tgr=[0,[11,Bn,[15,0]],Lh],agr=Hh,ugr=[0,[11,"this if has type",[15,[11,"\nbecause branches have inconsistent types,\ntrue produces",[15,[11,"\nfalse produces",[15,0]]]]]],"this if has type%a\nbecause branches have inconsistent types,\ntrue produces%a\nfalse produces%a"],fgr=MK,igr=Ut,vgr=[0,Ds,0],cgr=Ds,Agr=[0,[11,"expected iterable type, but expression has type",[15,0]],"expected iterable type, but expression has type%a"],ogr=Eg,sgr=[0,[11,Ki,0],Ki],bgr=bs,lgr=[0,[11,TR,[2,0,[15,0]]],"unbound label %s%a"],Bgr=Go,jgr=sA,kgr=gx,pgr=[0,[2,0,[11," outside of loop",0]],"%s outside of loop"],mgr=bs,dgr=[0,[11,Ol,0],Ol],_gr=[0,[11,Of,0],Of],hgr=[0,[11,sv,0],sv],xgr=wR,ygr=[0,3,[0,0,0]],wgr=Fh,ggr=[0,2],qgr=[0,[11,"async type has non-shared content type",[15,0]],"async type has non-shared content type%a"],Igr=bq,Dgr=[0,[11,"ill-scoped await: expected async type from current scope ",[15,[11,", found async type from other scope ",[15,[15,[15,0]]]]]],"ill-scoped await: expected async type from current scope %a, found async type from other scope %a%a%a"],Egr=[0,[11,"expected async",[2,0,[11," type, but expression has type",[15,[2,0,0]]]]],"expected async%s type, but expression has type%a%s"],Ngr=GK,Tgr=ug,Fgr=Ob,Mgr=[0,[11,Ny,0],Ny],Pgr=Dt,Ugr=[0,[11,Ru,0],Ru],Ggr=$,$gr=Yr,Kgr=[0,[11,Ax,[2,0,[11,La,[15,0]]]],hN],Ogr=[0,[11,Ax,[2,0,[11," does exist in ",[15,[11,"\nbut is not ",[2,0,[12,46,0]]]]]]],"field %s does exist in %a\nbut is not %s."],Rgr=Yr,Qgr=[0,[11,iM,[15,0]],Gg],Cgr=[0,[11,vM,[2,0,0]],_I],Hgr=Yr,Vgr=[0,[11,gj,0],gj],Lgr=[0,[11,"ambiguous type field in base",[15,0]],"ambiguous type field in base%a"],zgr=Ss,Sgr=[0,[11,IN,0],IN],Zgr=[0,[11,"base has non-aliasable var field",[15,0]],"base has non-aliasable var field%a"],Wgr=[0,[11,PN,0],PN],Xgr=[0,[11,"ambiguous field in base",[15,0]],"ambiguous field in base%a"],Jgr=Ss,Ygr=[0,[11,iM,[15,0]],Gg],rqr=[0,[11,HT,0],HT],eqr=Yr,nqr=Mo,tqr=[3,0,0,0],aqr=[0,qR,2396,2],uqr=[0,qR,2397,2],fqr=[0,qR,2398,2],iqr=[0,[11,lw,[15,[11,Cx,[15,[15,0]]]]],"expression of type%a\ncannot produce expected type%a%a"],vqr=VF,cqr=[0,[11,"function return type",[15,[11,"\ndoes not match expected return type",[15,[15,0]]]]],"function return type%a\ndoes not match expected return type%a%a"],Aqr="M0095",oqr=[0,[12,39,[2,0,[12,39,0]]],"'%s'"],sqr=[0,[11,"If you're trying to omit an implicit argument named ",[2,0,[11," you need to have a matching declaration named ",[2,0,[11," in scope.",0]]]]],"If you're trying to omit an implicit argument named %s you need to have a matching declaration named %s in scope."],bqr=Bk,lqr=[0,[11,"Did you mean to import ",[2,0,[12,63,0]]],"Did you mean to import %s?"],Bqr=[0,[11,"Cannot determine implicit argument ",[2,0,[11,eG,[15,0]]]],"Cannot determine implicit argument %s of type%a"],jqr="M0230",kqr=[0,[11,ly,0],ly],pqr="M0090",mqr=[0,[11,aB,[15,0]],E_],dqr=OA,_qr=[2,16],hqr=[0,[11,"to_candid produces a Blob that is not a subtype of",[15,0]],"to_candid produces a Blob that is not a subtype of%a"],xqr="M0172",yqr=[0,[11,Md,[15,0]],d],wqr="M0173",gqr=[2,16],qqr=[2,16],Iqr=[0,[11,"from_candid produces an optional shared type, not type",[15,0]],"from_candid produces an optional shared type, not type%a"],Dqr="M0174",Eqr=[2,0],Nqr=zI,Tqr=zI,Fqr=[0,[11,mg,0],mg],Mqr=l_,Pqr=Wt,Uqr=rm,Gqr=[0,[11,"missing field",[2,0,[12,32,[2,0,[11," from expected type",[15,0]]]]]],"missing field%s %s from expected type%a"],$qr="M0151",Kqr=[0,[2,0,[11,"mutable array expression cannot produce expected type",[15,0]]],"%smutable array expression cannot produce expected type%a"],Oqr="M0091",Rqr=Ut,Qqr=[0,[11,sv,0],sv],Cqr=wR,Hqr=[0,3,[0,0,0]],Vqr=Fh,Lqr="Use keyword 'async' (not 'async*') to produce the expected type.",zqr="Use keyword 'async*' (not 'async') to produce the expected type.",Sqr=[0,[11,"async expression cannot produce expected async type ",[15,[11,yE,[2,0,0]]]],"async expression cannot produce expected async type %a.\n%s"],Zqr="M0183",Wqr=[0,[11,"async at scope",[15,[11,"\ncannot produce expected scope",[15,[15,[15,0]]]]]],"async at scope%a\ncannot produce expected scope%a%a%a"],Xqr="M0092",Jqr=ug,Yqr=Ob,rIr=[0,[11,lw,[15,[11,Cx,[15,[15,[2,0,0]]]]]],"expression of type%a\ncannot produce expected type%a%a%s"],eIr=VF,nIr=[0,[11,"expected mutable 'var' field ",[2,0,[11,eG,[15,[11,"\nbut found immutable field (insert 'var'?)",0]]]]],"expected mutable 'var' field %s of type%a\nbut found immutable field (insert 'var'?)"],tIr=[0,[11,"expected immutable field ",[2,0,[11,eG,[15,[11,"\nbut found mutable 'var' field (delete 'var'?)",0]]]]],"expected immutable field %s of type%a\nbut found mutable 'var' field (delete 'var'?)"],aIr=[0,qR,2664,35],uIr=[0,[11,KN,0],KN],fIr=rF,iIr=[0,1,[0,2,0]],vIr=Me,cIr=Me,AIr=[0,[2,0,[11,"shared function does not match expected ",[2,0,[11,"shared function type",0]]]],"%sshared function does not match expected %sshared function type"],oIr=[0,[11,"field `",[2,0,[11,"` is provided but not expected in record",[2,0,[11,eG,[15,0]]]]]],"field `%s` is provided but not expected in record%s of type%a"],sIr=MT,bIr=[0,[11,"public type `",[2,0,[11,N$,[15,0]]]],"public type `%s` is provided but not expected in object of type%a"],lIr=MT,BIr=[0,[11,"public field `",[2,0,[11,N$,[15,0]]]],"public field `%s` is provided but not expected in object of type%a"],jIr=MT,kIr=[0,qR,2703,24],pIr=[0,qR,2689,24],mIr=[0,1,0],dIr=Bk,_Ir=[0,[11,"\nHint: Did you mean to import ",[2,0,[12,63,0]]],"\nHint: Did you mean to import %s?"],hIr=[1,"hole"],xIr=[0,[11,"The `",[2,0,[11,"` argument can be inferred and omitted here (the function parameter is `implicit`).",0]]],"The `%s` argument can be inferred and omitted here (the function parameter is `implicit`)."],yIr=jg,wIr=jg,gIr=[0,[11,"expected function type, but expression produces type",[15,0]],"expected function type, but expression produces type%a"],qIr=[0,[11,Hs,0],Hs],IIr=[0,qR,2870,14],DIr=KI,EIr=[0,[11,lD,0],lD],NIr=KI,TIr=[0,[11,"shared function argument contains abstract type",[15,0]],"shared function argument contains abstract type%a"],FIr=[0,[11,"shared function call result contains abstract type",[15,0]],"shared function call result contains abstract type%a"],MIr=[0,[11,iv,0],iv],PIr=[0,[11,"this function call implicitly requires `system` capability and may perform undesired actions (please review the call and provide a type instantiation `` to suppress this warning)",0]]],"this function call implicitly requires `system` capability and may perform undesired actions (please review the call and provide a type instantiation `` to suppress this warning)"],UIr=cf,GIr=[0,[11,"wrong number of arguments: expected ",[4,0,0,0,[11,wF,[4,0,0,0,[12,10,[15,[12,10,[15,0]]]]]]]],"wrong number of arguments: expected %d but got %d\n%a\n%a"],$Ir=[0,[11,lw,[15,[11,Cx,[15,0]]]],LI],KIr=VF,OIr=[0,qR,3063,10],RIr=[0,[11,"function `.",[2,0,[12,96,0]]],"function `.%s`"],QIr=Hk,CIr=[0,[12,10,[2,0,0]],"\n%s"],HIr=[0,[11,"cannot apply ",[2,0,[11,eG,[15,[11,"\nto argument of type",[15,[11,UG,[2,0,[2,0,0]]]]]]]]],"cannot apply %s of type%a\nto argument of type%a\nbecause %s%s"],VIr=[0,qR,3155,2],LIr=[0,[11,"the switch has type",[15,[11,"\nbecause branches have inconsistent types,\nthis case produces type",[15,[11,"\nthe previous produce type",[15,0]]]]]],"the switch has type%a\nbecause branches have inconsistent types,\nthis case produces type%a\nthe previous produce type%a"],zIr=lo,SIr=[0,qR,3217,2],ZIr=[0,[11,f,0],f],WIr="M0102",XIr=[0,[11,yU,0],yU],JIr="M0103",YIr=[0,[11,bo,[15,0]],Ib],rDr=bm,eDr=[0,[11,_M,0],_M],nDr="M0184",tDr=[0,[11,h,[2,0,[11,iT,0]]],jx],aDr=Pp,uDr=[0,[11,h,[2,0,[11,iT,0]]],jx],fDr=Pp,iDr=[0,[11,AU,0],AU],vDr=eM,cDr=[0,[11,qN,0],qN],ADr=[0,3,[0,0,0]],oDr=[0,[11,dP,0],dP],sDr=[0,[11,Ns,0],Ns],bDr=[0,3,[0,0,0]],lDr=[0,[11,AF,0],AF],BDr=[0,qR,3321,19],jDr=[0,qR,3334,2],kDr=[0,[11,"this expression has type `",[15,[12,96,0]]],"this expression has type `%a`"],pDr=[0,qR,3346,2],mDr=[0,[11,"literal pattern cannot consume expected type",[15,0]],"literal pattern cannot consume expected type%a"],dDr="M0110",_Dr=[0,[11,"operator pattern cannot consume expected type",[15,0]],"operator pattern cannot consume expected type%a"],hDr="M0111",xDr=pi,yDr=[0,[11,R$,[15,[11,"`, got `(",[2,0,[11,")`",0]]]]],"expected `%a`, got `(%s)`"],wDr=[0,[11,ps,0],ps],gDr="M0112",qDr=[0,[11,R$,[15,[11,"`, got object type",0]]],"expected `%a`, got object type"],IDr=[0,[11,Nn,0],Nn],DDr="M0113",EDr=[0,[11,"object pattern cannot consume values from actor type",[15,0]],"object pattern cannot consume values from actor type%a"],NDr="M0114",TDr=[0,[11,R$,[15,[11,"`, got `?_`",0]]],"expected `%a`, got `?_`"],FDr=[0,[11,rP,0],rP],MDr="M0115",PDr=[0,[11,R$,[15,[11,"`, got `{#",[2,0,[11," : _}`",0]]]]],"expected `%a`, got `{#%s : _}`"],UDr=[0,[11,ih,0],ih],GDr="M0116",$Dr=[0,[11,_h,0],_h],KDr=AP,ODr=[0,[11,"pattern of type",[15,[11,"\ncannot consume expected type",[15,0]]]],"pattern of type%a\ncannot consume expected type%a"],RDr="M0117",QDr=[0,[11,h,[2,0,[11,iT,0]]],jx],CDr=Pp,HDr=[0,[11,Oo,[4,3,0,0,[11,CB,[4,3,0,0,0]]]],Gy],VDr=yp,LDr=[0,[11,"duplicate field ",[2,0,[11,Pj,0]]],"duplicate field %s in object pattern"],zDr=bN,SDr=[0,[11,"object field ",[2,0,[11,hR,[15,0]]]],"object field %s is not contained in expected type%a"],ZDr=gD,WDr=[0,[11,"cannot pattern match mutable field ",[2,0,0]],"cannot pattern match mutable field %s"],XDr="M0120",JDr=Yr,YDr=[0,[11,h,[2,0,[11,iT,0]]],jx],rEr=Pp,eEr=[0,[11,AU,0],AU],nEr=eM,tEr=[0,[11,"mismatched types for type ",[2,0,[11," in patterns",0]]],"mismatched types for type %s in patterns"],aEr=AP,uEr=[0,[11,VG,0],VG],fEr=AP,iEr=[0,[11,ev,[2,0,[11,iT,0]]],"duplicate binding for type %s in pattern"],vEr=Pp,cEr=[0,[11,Oo,[4,3,0,0,[11,CB,[4,3,0,0,0]]]],Gy],AEr=yp,oEr=[0,[11,"object type field ",[2,0,[11,hR,[15,0]]]],"object type field %s is not contained in expected type%a"],sEr=gD,bEr=[0,[11,"duplicate type field ",[2,0,[11,Pj,0]]],"duplicate type field %s in object pattern"],lEr=bN,BEr=[0,[11,"duplicate type binding for ",[2,0,[11,iT,0]]],"duplicate type binding for %s in pattern"],jEr=Pp,kEr=[0,[11,Ta,[2,0,[11,vr,[2,0,[11,yI,[2,0,[11,"object type have colliding hashes",0]]]]]]],"field names %s and %s in %sobject type have colliding hashes"],pEr=[0,[11,ZO,0],ZO],mEr=[0,1,[0,2,0]],dEr=[0,[11,lM,0],lM],_Er=[0,[11,"public actor field ",[2,0,[11," has non-shared function type",[15,0]]]],"public actor field %s has non-shared function type%a"],hEr=[0,[11,Ax,[2,0,[11," in parenthetical is declared with type",[15,[11,mw,[15,0]]]]]],"field %s in parenthetical is declared with type%a\ninstead of expected type%a"],xEr=[0,qR,3799,39],yEr=[0,[11,Wl,0],Wl],wEr=BG,gEr=[0,[11,vd,0],vd],qEr=BG,IEr=[0,qR,3802,25],DEr=[0,[11,pK,0],pK],EEr=tf,NEr=[0,[11,nk,[2,0,[11," in parenthetical",0]]],"unrecognised attribute %s in parenthetical"],TEr=Xh,FEr=[0,[11,"system function ",[2,0,[11," is declared with type",[15,[11,mw,[15,0]]]]]],"system function %s is declared with type%a\ninstead of expected type%a"],MEr=[0,[11,xT,0],xT],PEr=[0,[11,jm,0],jm],UEr=xw,GEr=Bk,$Er=[0,[11,"unexpected system method named ",[2,0,[11,", expected ",[2,0,0]]]],"unexpected system method named %s, expected %s"],KEr=[0,[11,FG,0],FG],OEr=[0,qR,3862,9],REr=Cn,QEr=[0,[11,fG,0],fG],CEr=OT,HEr=[0,[11,zf,0],zf],VEr=OT,LEr=[0,[11,sM,0],sM],zEr=OT,SEr=[0,[11,PD,0],PD],ZEr=[0,[11,"expected stable type, but migration expression ",[2,0,[11," non-stable type",[15,0]]]],"expected stable type, but migration expression %s non-stable type%a"],WEr=[0,[11,"expected object type, but migration expression ",[2,0,[11," non-object type",[15,0]]]],"expected object type, but migration expression %s non-object type%a"],XEr=[0,[11,"expected non-generic, local function type, but migration expression produces type",[15,0]],"expected non-generic, local function type, but migration expression produces type%a"],JEr=[0,[11,"initial actor requires field `",[2,0,[11,q$,[15,0]]]],"initial actor requires field `%s` of type%a"],YEr=$b,rNr=[0,[11,RB,[2,0,[11,q$,[15,[11,"\nbut does not produce it, yet the field is declared in the actor.\n",[2,0,[12,10,[2,0,0]]]]]]]],"migration expression consumes field `%s` of type%a\nbut does not produce it, yet the field is declared in the actor.\n%s\n%s"],eNr=$y,nNr=[0,[11,RB,[2,0,[11,q$,[15,[11,"\nbut does not produce it. The field is not declared in the actor.\n",[2,0,[12,10,[2,0,0]]]]]]]],"migration expression consumes field `%s` of type%a\nbut does not produce it. The field is not declared in the actor.\n%s\n%s"],tNr=ft,aNr=[0,[11,"migration expression produces unexpected field `",[2,0,[11,q$,[15,[12,10,[2,0,0]]]]]],"migration expression produces unexpected field `%s` of type%a\n%s"],uNr=Yr,fNr=[0,[11,"migration expression produces field `",[2,0,[11,q$,[15,[11,"\n, not the expected type",[15,[15,0]]]]]]],"migration expression produces field `%s` of type%a\n, not the expected type%a%a"],iNr=[0,[11,"expected expression with field `migration`, but expression has type",[15,0]],"expected expression with field `migration`, but expression has type%a"],vNr=[0,[11,Gi,0],Gi],cNr=qj,ANr=[0,qR,4076,24],oNr=[0,[11,nk,[2,0,[11," in parenthetical note",0]]],"unrecognised attribute %s in parenthetical note"],sNr=Xh,bNr=[0,[11,iI,0],iI],lNr="M0219",BNr=[0,[11,ld,0],ld],jNr=bb,kNr=[0,[11,Hf,0],Hf],pNr="M0250",mNr=[0,[11,Ii,0],Ii],dNr=uI,_Nr=[0,[11,oR,0],oR],hNr="M0220",xNr=[0,[11,di,0],di],yNr=[0,[11,_v,[2,0,[11,"stability modifier: allowed on var or simple let declarations only",0]]],"misplaced %sstability modifier: allowed on var or simple let declarations only"],wNr=[0,[11,Ml,[2,0,[11,Jw,[15,0]]]],fE],gNr=ra,qNr=[0,qR,4138,14],INr=qj,DNr=sG,ENr=zc,NNr=[0,[11,"Avoid binding a unit `()` result; remove `",[2,0,[11,"` and keep the expression",0]]],"Avoid binding a unit `()` result; remove `%s` and keep the expression"],TNr=Lm,FNr=[0,[11,OK,0],OK],MNr=[0,[11,Lg,0],Lg],PNr=[0,[11,ab,0],ab],UNr=[0,[11,"shared constructor has non-shared parameter type",[15,0]],"shared constructor has non-shared parameter type%a"],GNr=[0,[11,cn,0],cn],$Nr=[0,qR,4403,35],KNr=[0,[11,S,0],S],ONr=Nk,RNr=[0,[11,"class body of type",[15,[11,SE,[15,0]]]],"class body of type%a\ndoes not match expected type%a"],QNr=[0,[11,kK,0],kK],CNr=[0,[11,$B,0],$B],HNr=[0,[11,lO,[2,0,0]],iB],VNr=Rh,LNr=[0,[11,"empty block cannot produce expected type",[15,0]],"empty block cannot produce expected type%a"],zNr=[0,[11,lw,[15,[11,Cx,[15,0]]]],LI],SNr=VF,ZNr=dn,WNr=[0,[11,lO,[2,0,0]],iB],XNr=Rh,JNr=dn,YNr=dn,rTr=[0,0,2],eTr=[0,[11,lO,[2,0,0]],iB],nTr=Rh,tTr=[0,qR,4692,2],aTr=[0,qR,4695,10],uTr=[0,[11,id,0],id],fTr=Hw,iTr=[0,[11,Wc,0],Wc],vTr=[0,3,[0,0,0]],cTr=[0,[11,Kn,0],Kn],ATr=[0,1,[0,2,0]],oTr=[0,[11,Ho,0],Ho],sTr=[0,[11,Ml,[2,0,[11,Jw,[15,0]]]],fE],bTr=ra,lTr=[0,qR,5003,28],BTr=Yr,jTr=Le,kTr=$D,pTr=[0,[11,Tx,0],Tx],mTr=[0,[11,vT,0],vT],dTr=HB,_Tr=[0,[11,kt,0],kt],hTr=[0,[11,PE,0],PE],xTr=Li,yTr=[0,[11,Ee,0],Ee],wTr=xO,gTr=[0,qR,4930,26],qTr=[0,qR,4931,23],ITr=[0,[11,Ap,0],Ap],DTr=w,ETr=[0,1,[0,2,0]],NTr=[0,[11,vw,0],vw],TTr=w,FTr=[0,[11,"duplicate binding for mixin ",[2,0,[11,eR,0]]],"duplicate binding for mixin %s in imports"],MTr=Pp,PTr=[0,[11,ev,[2,0,[11,eR,0]]],"duplicate binding for type %s in imports"],UTr=Pp,GTr=[0,[11,h,[2,0,[11,eR,0]]],"duplicate binding for %s in imports"],$Tr=Pp,KTr=[0,[11,tg,0],tg],OTr=[0,qR,4802,4],RTr=[0,qR,4806,9],QTr=Km,CTr=xE,HTr=[0,[11,"You can use the dot notation `",[2,0,[12,46,[2,0,[11,"(...)` here",0]]]]],"You can use the dot notation `%s.%s(...)` here"],VTr=Km,LTr=rm,zTr=[0,[11,"overlapping resolution for `",[2,0,[11,"` in scope from these modules: ",[2,0,0]]]],"overlapping resolution for `%s` in scope from these modules: %s"],STr=rm,ZTr=[0,[11,"The ambiguous implicit candidates are: ",[2,0,[12,46,0]]],"The ambiguous implicit candidates are: %s."],WTr=[0,[11,"ambiguous implicit argument ",[2,0,[11,Ka,[15,[12,46,0]]]]],"ambiguous implicit argument %s of type %a."],XTr=[0,0,0],JTr=[0,[11,"operator is not defined for operand types",[15,[11,ck,[15,0]]]],"operator is not defined for operand types%a\nand%a"],YTr=[0,[11,"duplicate definition for ",[2,0,[2,0,[11,eg,0]]]],"duplicate definition for %s%s in block"],rFr=[8,0,0,0,0,[0,[2,2],0]],eFr=i,nFr=[2,14],tFr=wp,aFr=[2,2],uFr=c_,fFr=[8,0,0,0,0,[0,[2,2],0]],iFr=i,vFr=[2,3],cFr=Xq,AFr=[2,3],oFr=S$,sFr=[8,0,0,0,[0,[2,2],0],[0,[2,3],0]],bFr=KA,lFr=[2,2],BFr=jP,jFr=Xq,kFr=S$,pFr=[2,2],mFr=c_,dFr=[8,0,0,0,0,[0,[2,2],0]],_Fr=i,hFr=[0,[2,2],0],xFr=KA,yFr=[0,[11,"literal of type",[15,[11,"\ndoes not have expected type",[15,[2,0,0]]]]],"literal of type%a\ndoes not have expected type%a%s"],wFr=[0,qR,1280,4],gFr=[0,[11,'string literal "',[2,0,[11,'": is not valid utf8',0]]],'string literal "%s": is not valid utf8'],qFr=[0,[11,"literal out of range for type ",[2,0,0]],"literal out of range for type %s"],IFr=[0,[11,_v,[2,0,[11,"; try enclosing in an async expression or query function",0]]],"misplaced %s; try enclosing in an async expression or query function"],DFr=MN,EFr=[0,[11,_v,[2,0,0]],EP],NFr=MN,TFr=[0,[11,_v,[2,0,[11,"; try enclosing in an async expression",0]]],"misplaced %s; try enclosing in an async expression"],FFr=tU,MFr=[0,[11,_v,[2,0,0]],EP],PFr=tU,UFr=[0,[11,_v,[2,0,[11,"; a query cannot contain an ",[2,0,0]]]],"misplaced %s; a query cannot contain an %s"],GFr=IB,$Fr=[0,[11,_v,[2,0,[11,"; a composite query cannot contain an ",[2,0,0]]]],"misplaced %s; a composite query cannot contain an %s"],KFr=IB,OFr=[0,[11,_v,[2,0,[11,"; try enclosing in an async function",0]]],"misplaced %s; try enclosing in an async function"],RFr=IB,QFr=[0,qR,745,22],CFr=[0,[11,"start of scope ",[2,0,[11,n,[2,0,0]]]],"start of scope %s mentioned in error at %s"],HFr=[0,[11,"end of scope ",[2,0,[11,n,[2,0,0]]]],"end of scope %s mentioned in error at %s"],VFr=[0,[11,Kb,[15,[11," is ",[2,0,0]]]],"\n scope %a is %s"],LFr=[0,[11,Kb,[15,[11," is the global scope",0]]],"\n scope %a is the global scope"],zFr=[0,[11,jn,0],jn],SFr=[0,[11,HR,0],HR],ZFr=[0,qR,680,2],WFr=[0,[11,Yv,0],Yv],XFr=[0,[11,"\ntype",[15,[11,"\nis or contains non-shared type",[15,0]]]],"\ntype%a\nis or contains non-shared type%a"],JFr=[0,[11,"unresolved import ",[2,0,0]],"unresolved import %s"],YFr=HU,rMr=[0,[11,"cannot infer type of forward import ",[2,0,0]],"cannot infer type of forward import %s"],eMr=[0,[11,"imported file ",[2,0,[11," not loaded",0]]],"imported file %s not loaded"],nMr=rm,tMr=[0,[11,dn,[2,0,[2,0,[12,32,[2,0,[12,32,[2,0,[11," references type parameter",[2,0,[12,32,[2,0,[11," from an outer scope",0]]]]]]]]]]]],"type %s%s %s %s references type parameter%s %s from an outer scope"],aMr=de,uMr=sP,fMr=WI,iMr=ve,vMr=zl,cMr=fp,AMr=lp,oMr=bc,sMr=Cv,bMr=[0,[11,gl,0],gl],lMr=[0,[11,"first use of ",[2,0,0]],"first use of %s"],BMr=[0,[11,"duplicate ",[2,0,[11," name ",[2,0,[11,yI,[2,0,0]]]]]],"duplicate %s name %s in %s"],jMr=[0,[2,0,[11," names ",[2,0,[11,vr,[2,0,[11,yI,[2,0,[11," have colliding hashes",0]]]]]]]],"%s names %s and %s in %s have colliding hashes"],kMr=[0,[11,uN,0],uN],pMr=Tr,mMr=Nh,dMr=[0,[11,"this ",[2,0,[11,eG,[15,[11,"\ndoes not cover value\n ",[2,0,0]]]]]],"this %s of type%a\ndoes not cover value\n %s"],_Mr=_u,hMr=[0,[11,gk,0],gk],xMr=cQ,yMr=[0,[11,"cannot decide equality between type",[15,[11,ck,[15,0]]]],"cannot decide equality between type%a\nand%a"],wMr=cQ,gMr=[0,[11,sa,[15,[11,ck,[15,0]]]],wM],qMr=cQ,IMr=[0,[11,sa,[15,[11,ck,[15,0]]]],wM],DMr=cQ,EMr=mN,NMr=H_,TMr=[0,[11,"unused identifier: `",[2,0,[12,96,0]]],"unused identifier: `%s`"],FMr=[0,[11,"help: if this is intentional, prefix it with an underscore: `_",[2,0,[12,96,0]]],"help: if this is intentional, prefix it with an underscore: `_%s`"],MMr=uu,PMr=L$,UMr=[0,[11,"unused field in pattern: `",[2,0,[12,96,0]]],"unused field in pattern: `%s`"],GMr=[0,[11,"help: if this is intentional, delete or rewrite as `",[2,0,[11," = _`",0]]],"help: if this is intentional, delete or rewrite as `%s = _`"],$Mr=[0,[11,Ml,[2,0,[11," is never reassigned, consider using `let`",0]]],"variable %s is never reassigned, consider using `let`"],KMr=nl,OMr=[0,[11,"pattern variable ",[2,0,[11," has larger type",[15,[11,"\nbecause its types in the pattern alternatives are unrelated smaller types:\ntype in left pattern is",[15,[11,"\ntype in right pattern is",[15,0]]]]]]]],"pattern variable %s has larger type%a\nbecause its types in the pattern alternatives are unrelated smaller types:\ntype in left pattern is%a\ntype in right pattern is%a"],RMr=Yt,QMr=Wt,CMr=[0,[2,0,[11,"\n (This is a limitation of the current version",[2,0,[11,".)",0]]]],"%s\n (This is a limitation of the current version%s.)"],HMr=[0,[2,0,[12,32,[2,0,[11," is deprecated for caffeine",0]]]],"%s %s is deprecated for caffeine"],VMr=[0,[11,aw,0],aw],LMr=[0,[2,0,[12,32,[2,0,[11," is deprecated:\n",[2,0,0]]]]],"%s %s is deprecated:\n%s"],zMr=xK,SMr=[0,[2,0,0],aM],ZMr=pl,WMr=pl,XMr=pl,JMr=[0,[11," in type environment:",[15,0]]," in type environment:%a"],YMr=[0,[11," in label environment:",[15,0]]," in label environment:%a"],rPr=[0,[11," in environment:",[15,0]]," in environment:%a"],ePr=[0,[11,XA,[15,0]],Qk],nPr=Mo,tPr=jq,aPr=gU,uPr=TA,fPr=EI,iPr=[0,[2,0,[12,46,0]],"%s."],vPr=[0,[11,XA,[15,0]],Qk],cPr=[0,[11,iG,0],iG],APr=[0,[11,"But got ",[4,0,0,0,[11,OE,[2,0,[11,Fe,[15,0]]]]]],"But got %d argument%s of type:%a"],oPr=[0,[11,Bl,0],Bl],sPr=[0,[11,"Expected ",[4,0,0,0,[11,OE,[2,0,[11,Fe,[15,0]]]]]],"Expected %d argument%s of type:%a"],bPr=Wt,lPr=[0,[11,UG,[2,0,0]],"\nbecause %s"],BPr=[0,1],jPr=[0,[0,0]],kPr=[0,Fv,27159,12],pPr=[0,[1,0]],mPr=[0,[1,1]],dPr=[0,[1,2]],_Pr=[0,[1,3]],hPr=[0,[1,4]],xPr=[0,[1,5]],yPr=[0,[1,6]],wPr=[0,[1,7]],gPr=[0,[1,8]],qPr=[0,[1,9]],IPr=[0,[1,10]],DPr=[0,[1,11]],EPr=[0,[1,12]],NPr=[0,[1,13]],TPr=[0,[1,14]],FPr=[0,[1,15]],MPr=[0,[1,16]],PPr=[0,[1,17]],UPr=[0,[1,18]],GPr=[0,[1,19]],$Pr=[0,[1,20]],KPr=[0,[1,21]],OPr=[0,[1,22]],RPr=[0,[1,23]],QPr=[0,[1,24]],CPr=[0,[1,25]],HPr=[0,[1,26]],VPr=[0,[1,27]],LPr=[0,[1,28]],zPr=[0,[1,29]],SPr=[0,[1,30]],ZPr=[0,[1,31]],WPr=[0,[1,32]],XPr=[0,[1,33]],JPr=[0,[1,34]],YPr=[0,[1,35]],rUr=[0,[1,36]],eUr=[0,[1,37]],nUr=[0,[1,38]],tUr=[0,[1,39]],aUr=[0,[1,40]],uUr=[0,[1,41]],fUr=[0,[1,42]],iUr=[0,[1,43]],vUr=[0,[1,44]],cUr=[0,[1,45]],AUr=[0,[1,46]],oUr=[0,[1,47]],sUr=[0,[1,48]],bUr=[0,[1,49]],lUr=[0,[1,50]],BUr=[0,[1,51]],jUr=[0,[1,52]],kUr=[0,[1,53]],pUr=[0,[1,54]],mUr=[0,[1,55]],dUr=[0,[1,56]],_Ur=[0,[1,57]],hUr=[0,[1,58]],xUr=[0,[1,59]],yUr=[0,[1,60]],wUr=[0,[1,61]],gUr=[0,[1,62]],qUr=[0,[1,63]],IUr=[0,[1,64]],DUr=[0,[1,65]],EUr=[0,[1,66]],NUr=[0,[1,67]],TUr=[0,[1,68]],FUr=[0,[1,69]],MUr=[0,[1,70]],PUr=[0,[1,71]],UUr=[0,[1,72]],GUr=[0,[1,73]],$Ur=[0,[1,74]],KUr=[0,[1,75]],OUr=[0,[1,76]],RUr=[0,[1,77]],QUr=[0,[1,78]],CUr=[0,[1,79]],HUr=[0,[1,80]],VUr=[0,[1,81]],LUr=[0,[1,82]],zUr=[0,[1,83]],SUr=[0,[1,84]],ZUr=[0,[1,85]],WUr=[0,[1,86]],XUr=[0,[1,87]],JUr=[0,[1,88]],YUr=[0,[1,89]],rGr=[0,[1,90]],eGr=[0,[1,91]],nGr=[0,[1,92]],tGr=[0,[1,93]],aGr=[0,[1,94]],uGr=[0,[1,95]],fGr=[0,[1,96]],iGr=[0,[1,97]],vGr=[0,[1,98]],cGr=[0,[1,99]],AGr=[0,[1,T$]],oGr=[0,[1,gq]],sGr=[0,Fv,26949,12],bGr=[0,[0,0]],lGr=[0,[0,1]],BGr=[0,[0,2]],jGr=[0,[0,3]],kGr=[0,[0,4]],pGr=[0,[0,5]],mGr=[0,[0,6]],dGr=[0,[0,7]],_Gr=[0,[0,8]],hGr=[0,[0,9]],xGr=[0,[0,10]],yGr=[0,[0,11]],wGr=[0,[0,12]],gGr=[0,[0,13]],qGr=[0,[0,14]],IGr=[0,[0,15]],DGr=[0,[0,16]],EGr=[0,[0,17]],NGr=[0,[0,18]],TGr=[0,[0,19]],FGr=[0,[0,20]],MGr=[0,[0,21]],PGr=[0,[0,22]],UGr=[0,[0,23]],GGr=[0,[0,24]],$Gr=[0,[0,25]],KGr=[0,[0,26]],OGr=[0,[0,27]],RGr=[0,[0,28]],QGr=[0,[0,29]],CGr=[0,[0,30]],HGr=[0,[0,31]],VGr=[0,[0,32]],LGr=[0,[0,33]],zGr=[0,[0,34]],SGr=[0,[0,35]],ZGr=[0,[0,36]],WGr=[0,[0,37]],XGr=[0,[0,38]],JGr=[0,[0,39]],YGr=[0,[0,40]],r$r=[0,[0,41]],e$r=[0,[0,42]],n$r=[0,[0,43]],t$r=[0,[0,44]],a$r=[0,[0,45]],u$r=[0,[0,46]],f$r=[0,[0,47]],i$r=[0,[0,48]],v$r=[0,[0,49]],c$r=[0,[0,50]],A$r=[0,[0,51]],o$r=[0,[0,52]],s$r=[0,[0,53]],b$r=[0,[0,54]],l$r=[0,[0,55]],B$r=[0,[0,56]],j$r=[0,[0,57]],k$r=[0,[0,58]],p$r=[0,[0,59]],m$r=[0,[0,60]],d$r=[0,[0,61]],_$r=[0,[0,62]],h$r=[0,[0,63]],x$r=[0,[0,64]],y$r=[0,[0,65]],w$r=[0,[0,66]],g$r=[0,[0,67]],q$r=[0,[0,68]],I$r=[0,[0,69]],D$r=[0,[0,70]],E$r=[0,[0,71]],N$r=[0,[0,72]],T$r=[0,[0,73]],F$r=[0,[0,74]],M$r=[0,[0,75]],P$r=[0,[0,76]],U$r=[0,[0,77]],G$r=[0,[0,78]],$$r=[0,[0,79]],K$r=[0,[0,80]],O$r=[0,[0,81]],R$r=[0,[0,82]],Q$r=[0,[0,83]],C$r=[0,[0,84]],H$r=[0,[0,85]],V$r=[0,[0,86]],L$r=[0,[0,87]],z$r=[0,[0,88]],S$r=[0,[0,89]],Z$r=[0,[0,90]],W$r=[0,[0,91]],X$r=[0,[0,92]],J$r=[0,[0,93]],Y$r=[0,[0,94]],rKr=[0,[0,95]],eKr=[0,[0,96]],nKr=[0,[0,97]],tKr=[0,[0,98]],aKr=[0,[0,99]],uKr=[0,[0,T$]],fKr=[0,[0,gq]],iKr=[0,[0,Ul]],vKr=[0,[0,E$]],cKr=[0,[0,ZA]],AKr=[0,[0,os]],oKr=[0,[0,bk]],sKr=[0,[0,pb]],bKr=[0,[0,ZN]],lKr=[0,[0,FT]],BKr=[0,[0,Wr]],jKr=[0,[0,rh]],kKr=[0,[0,Jn]],pKr=[0,[0,aK]],mKr=[0,[0,Zc]],dKr=[0,[0,xp]],_Kr=[0,[0,fM]],hKr=[0,[0,A$]],xKr=[0,[0,LP]],yKr=[0,[0,uw]],wKr=[0,[0,WP]],gKr=[0,[0,VP]],qKr=[0,[0,Ux]],IKr=[0,[0,CU]],DKr=[0,[0,Iy]],EKr=[0,[0,xI]],NKr=[0,[0,Je]],TKr=[0,[0,lj]],FKr=[0,[0,Ih]],MKr=[0,[0,xs]],PKr=[0,[0,Ae]],UKr=[1,"dummy"],GKr=Mo,$Kr=Mo,KKr=[1,pi],OKr=b,RKr=b,QKr=b,CKr=b,HKr=[1,pi],VKr=pi,LKr=pi,zKr=pi,SKr=[11,0],ZKr=ua,WKr=ua,XKr=MI,JKr=[0,0],YKr=[0,1],rOr=[6,0],eOr=[11,0],nOr=[11,0],tOr=[11,0],aOr=[11,0],uOr=[11,0],fOr=ua,iOr=ua,vOr=MI,cOr=[0,0],AOr=[0,1],oOr=[6,0],sOr=[11,0],bOr=[11,0],lOr=[11,0],BOr=[11,0],jOr=pi,kOr=pi,pOr=xO,mOr=xO,dOr=[11,0],_Or=[11,0],hOr=[0,Py,JP,30],xOr=ua,yOr=[0,0],wOr=Mo,gOr=jq,qOr=TA,IOr=[0,Py,JP,30],DOr=ua,EOr=[0,0],NOr=[0,Py,JP,30],TOr=ua,FOr=[0,0],MOr=Mo,POr=jq,UOr=TA,GOr=[0,Py,JP,30],$Or=ua,KOr=[0,0],OOr=[0,Py,JP,30],ROr=ua,QOr=[0,0],COr=Mo,HOr=jq,VOr=TA,LOr=[0,Py,JP,30],zOr=ua,SOr=[0,0],ZOr=[0,Py,JP,30],WOr=ua,XOr=[0,0],JOr=Mo,YOr=jq,rRr=TA,eRr=[0,Py,JP,30],nRr=ua,tRr=[0,0],aRr=kq,uRr=kq,fRr=kq,iRr=kq,vRr=kq,cRr=kq,ARr=kq,oRr=kq,sRr=kq,bRr=kq,lRr=kq,BRr=kq,jRr=kq,kRr=kq,pRr=kq,mRr=kq,dRr=kq,_Rr=kq,hRr=kq,xRr=kq,yRr=[3,0],wRr=[1,Ea],gRr=Av,qRr=[6,0],IRr=[0,1],DRr=wa,ERr=[1,Ea],NRr=PM,TRr=[0,[0,16,'\0\x009†WB\0\0\0\0\0\0\0\0\\¨R\0\0\0\0\0\0\0\0R\0\0WB3/è\0\x006žZxZxZx[°X¾\0\x002\0\x001V3ê+¶3ê/fZx2X3Æ+¶2Zx0<*,ŒZx/6\0\x0020^WàWàWàWà\0\0WàWà=f>^WàKP3¢6ž5R5²\0\0\0\0\0\0\0\0\0\x004/†WB>^5²>^\0\0>^2Ì8ŽX¾WB\0\x004p3¦2FH3à+¶2FWB\0\x002.WB\0\0Vä3ˆ+¶2WB\0\x001þWB\0\0\0\0\0\x006ž/R7–\0\0\0\0\0\0;v\0\0\0\0\0\0:~RWB3(0Ö0øFH6ž/R/R/R\0\0\0\0\0\0\0\0,FH6ž/R\0\0,¶FH6ž/R\0\0FH6ž>^:~,”/Ò6ž.˜/R\0\0FH6ž/R\0\0.˜/R\0\0.\\6ž.˜/R\0\0FH6ž/R\0\0.˜/R\0\0/z6ž.˜/R\0\0FH6ž/R\0\0.˜/R\0\0WB/R\0\0=fYš=f>^>^5²/T/†/¸\0\x001Ô/†\0\0/†\0\0WàB>8ŽWBB¨R/‚6ž>^6/„R>^Wà/Æ5²\0\0WàWàWà5²\0\0\0\0/ºZx8ŽZx8Ž\0\0/Ü\0\0/Þ\0\0R5²>^0l\0\0Wà\0\0\0\0\0\0Wà\0\0Wà\0\x008ŽZ\f8ŽFH6ž>^R0WB0R+p>^\0\0\0\0>^>^AF8ŽZ\0\0\0\x000‚WB2ô00NFH6ž/R\0\x000dFH6ž/R\0\x000zFH6ž/R\0\0FH6ž>^\0\0\0\0FH6ž/R\0\x000˜FH6ž/R\0\0FH6ž/R\0\0\nY&\0\0\0\0>^0æ6ž>^>^5²>^\0\x000è4°\0\0Wà\0\x001"WB1R>^,t>^\0\0\0\0\0\0Wà\0\0>^Z\0\0:Y&\0\0>^>^>^>^>^>^Wà\0\0Z6ž.˜/R\0\0FH6ž/R\0\0\0\0.˜/R\0\0\0\0\0\x001¾R>^\0\0\0\0\0\0\0\0\0\0zWà\0\0^Wà\0\0WàCBWà\0\0WàFHWàGJWàINR>^\0\0\0\0\0\0\0\0\0\0\0\0>^\0\0>^\0\0Z\0\0\0\0FWà\f.R\0\0\0\0\0\0Wà>Wà$ŽWà\0WàWà)¢WàWàNR\0\0R\0\0R\0\0WàR\0\0Wà&–R\0\0R\0\0R\0\0R\0\0R\0\0R\0\0WàVWà!‚WàQ^WàWà(žWàOZWàR`WàSbWàTdWàUfWà\t"R\0\0R\0\0R\0\0R\0\0R\0\0Zx\0\0R\0\0R\0\0R\0\0\0\0WàZR\0\0Wà\0\0R\0\0Wà ~R\0\0Wà\bR\0\0WàJWàJPR\0\0WàEFR\0\0WàDDR\0\0WàHLR\0\0Wà\0\0R\0\0R\0\0WàjWàvR\0\0WàBWàP\\WànR\0\0WàrR\0\0R\0\0WàVhWàLTWàbWàKRWàMVWàNXWàfR\0\0Zx\0\0R\0\0R\0\0Wà\r2R\0\0Wà%’Wà\v*3Z\0\0\0\x003\f\0\0\0\0EF\0\x003Ž\0\x008Ž3š\0\0/V8Ž\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x003Â>^\0\0"†>^\0\0\0\0\0\0\0\x003Â\0\0.ª8Ž\0\x003Ð\0\0\n&>^\0\0\0\x003ú>^\0\0\0\0\0\x004\0\0DD3Â\\\n\0\x004X16ž2R\0\x004,Z\fX¾WB4p3œFH6ž/R\0\x003ÊFH6ž/R\0\0FH6ž/R\0\x001šFH6ž/R\0\0WB3(FH6ž/R\0\x003ðFH6ž/R\0\x003ŒWB2ô>^\0\0Z\0\x001¾EF0¼31\0\x001\0\0/º\0\x002â\0\0\0\0EF\0\0\'š>^\0\x003"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x003\0\x002f\0\0\0\0\0\0#Š>^\0\0CB4\\\0\x002þ13\0Yš>^\0\0/ºEF2ÀWB0ÒR3¤>^\0\x004z\0\0\0\0\0\0\0\0/ž:~\0\0:~\0\0\0\0\0\0\0\x002\0\x004’7–\0\x007–\0\0\0\0FH6ž>^\0\x004Œ\0\0-,>^\0\0WB>^\0\0>^\0\0\0\0\0\x002T\0\0\0\0X@2>\0\x002v12,\0\x004Æ1\0\x001\0\0[2Yš.&\0\0ZüYš\0\0\0\0\0\x004Â12Yš\0\0\0\0\0\0\0\0\0\0\0\0,’>^\0\0>^\0\0\0\0>^\0\x002\b\0\0\0\0\0\x001r\0\0\0\0\0\x009†:~4œ\0\0+œ:~\0\0@N9†\0\0\0\0\0\0/N1-L3ê484@ZxKªZx.|.¬/N\0\0/N\0\0*Ê,D\0\0*ˆ*@*ü,,,,4/ÄZx1/øZx;v2Ö,\0\0,\0\0,¶\0\0,tZx8Ž.¾,D\0\0,D\0\0*F-40ü*ä-8-vZx4\n-Zx6* -ð.˜Zx56-êZx2.x..ª,.¢.\0\x001`0ü\0\x000ü\0\0,0†\0\0\0\0'],[0,16,'\nMMM\t’MMMMMMMMMMMMMMMMMMMMM\tšM\tªMMMMM\t²M\tºMMMMMMMMM\t¢MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n2MMMM\nIII\t’IIIIIIIIIIIIIIIIIIIII\tšI\tªIIIII\t²I\tºIIIIIIIII\t¢IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII\n111\t’111111111111111111111\tš1\tª11111\t²1\tº111111111\t¢1111\n*1111111111111111111111111111111111111111111111111111111111111111111111111\n21111åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå\b~ååååååååååååååååååååååååååååååååååååååååååååååå99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999Ò9999999999999999999999999999999999999\n999\t’9\n"9999999999999999999\tš9\tª99999\t²9\tº999999999\t¢9999\n*99999999\n:99\nB999999999999999999999999999999999999\nJ999999999999999999999999\n29999\neee\t’e\n"eeeeeeeeeeeeeeeeeee\tše\tªeeeee\t²e\tºeeeeeeeee\t¢eeee\n*eeeeeeee\n:ee\nBeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\nJeeeeeeeeeeeeeeeeeeeeeeee\n2eeeeùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùzùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùù\n\0Å\0Å\0Å\t’\0Å\n"\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\tš\0Å\tª\0Å\0Å\0Å\0Å\0Å\t²\0Å\tº\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\t¢\0Å\0Å\0Å\0Å\n*\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\n:\0Å\0Å\nB\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\nJ\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\0Å\n2\0Å\0Å\0Å\0Å\n\n\t’\n"\nj\nz\tš\tª\t²\tº\t¢\n*\n\n:\nB\nځ\n⁁\nÊ\nê\nò\nú\nJ\n2\nҁQQQQQQQQQQQ\rrQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ\n\0­\0­\0­\t’\0­\n"\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\tš\0­\tª\0­\0­\0­\0­\0­\t²\0­\tº\0­\0­\0­\0­\0­\0­\0­\0­\0­\t¢\0­\0­\0­\0­\n*\0­\0­\0­\0­\0­\0­\0­\0­\n:\0­\0­\nB\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\nJ\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\0­\n2\0­\0­\0­\0­QQQQ\t’QQQQQQQQQQQQQQQQQQQQQ\tšQ\tªQQQQQ\t²Q\tºQQQQQQQQQ\t¢QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ\n\0Õ\0Õ\0Õ\t’\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\tš\0Õ\tª\0Õ\0Õ\0Õ\0Õ\0Õ\t²\0Õ\tº\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\t¢\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õ\0Õùùùùùùùùù*ù:Rvù"š\0ù¶~ùùùùùùöùùùùùùùŠùù‚Žùù.ùù†ùúùùù.Š\0Žù\0ùù^ùùŽ’ùùš¦âù¢Úîþùùù^ºùùùšª\0&ùùùùùùùùºùùùÊÚæùù\bj\0*ùùù\bz\0.ù\bŠ\bÎ\tj\tÆ\tâù\têùùùù"\tò%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\bþ%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n===\t’=\n"===================\tš=\tª=====\t²=\tº=========\t¢====\n*========\n:==\nB====================================\nJ========================\n2====\n\n\t’\n"\nj\nz\tš\tª\t²\tº\t¢\n*\nÂ\n:\nB\nÚ\nâ\nÊ\nê\nò\nú\nJ\n2\v\nÒ\n\n\n\n\nR\t’\nZ\n"\nb\nj\nriiiiiiiiiiiii\nzii\tš\n‚\tª\nŠiiii\t²\n’\tº\nšiiiiiiii\t¢\n¢\nª\n²i\n*\v\n\nºiiii\nÂi\n:\vi\nB\vi\v"\nÚiiii\nâiiiiiiiiii\nÊ\nêi\nòiiiiii\núiiiiii\nJ\v*iiiiii\v2iii\v:iiiiiiiii\vBii\n2\vJ\v\nÒi\n\0±\0±\0±\t’\0±\n"\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\tš\0±\tª\0±\0±\0±\0±\0±\t²\0±\tº\0±\0±\0±\0±\0±\0±\0±\0±\0±\t¢\0±\0±\0±\0±\n*\0±\0±\0±\0±\0±\0±\0±\0±\n:\0±\0±\nB\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\nJ\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\0±\n2\0±\0±\0±\0±\n---\t’---------------------\tš-\tª-----\t²-\tº---------\t¢----\n*-------------------------------------------------------------------------\n2----¹¹¹¹¹¹¹¹¹*¹:Rv¹"š\0¹¶~¹¹¹¹¹¹ö¹¹¹¹¹¹¹Š¹¹‚޹¹.¹¹†¹ú¹¹¹.Š\0޹\0¹¹^¹¹Ž’¹¹š¦â¹¢Úîþ¹¹¹^º¹¹¹šª\0&¹¹¹¹¹¹¹¹º¹¹¹ÊÚæ¹¹\bj\0*¹¹¹\bz\0.¹\bŠ\bÎ\tj\tÆ\tâ¹\tê¹¹¹¹"\tò\n\n\t’\n"\nj\nz\tš\tª\t²\tº\t¢\n*\nº\n\n:\nB\nڍ\n⍍\nÊ\nê\nò\nú\nJ\n2\v\nҍ\n\0É\0É\0É\t’\0É\n"\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\tš\0É\tª\0É\0É\0É\0É\0É\t²\0É\tº\0É\0É\0É\0É\0É\0É\0É\0É\0É\t¢\0É\0É\0É\0É\n*\0É\0É\0É\0É\0É\0É\0É\0É\n:\0É\0É\nB\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\nJ\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\0É\n2\0É\0É\0É\0É\0Ý\0Ý\0Ý\0Ý\t’\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\tš\0Ý\tª\0Ý\0Ý\0Ý\0Ý\0Ý\t²\0Ý\tº\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\t¢\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\0Ý\n\0ñ\0ñ\0ñ\t’\0ñ\n"\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\tš\0ñ\tª\0ñ\0ñ\0ñ\0ñ\0ñ\t²\0ñ\tº\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\t¢\0ñ\0ñ\0ñ\0ñ\n*\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\n:\0ñ\0ñ\nB\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\nJ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\0ñ\n2\0ñ\0ñ\0ñ\0ñ\n\0¹\0¹\0¹\t’\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\tš\0¹\tª\0¹\0¹\0¹\0¹\0¹\t²\0¹\tº\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\t¢\0¹\0¹\0¹\0¹\n*\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\0¹\n2\0¹\0¹\0¹\0¹\n\n\t’\n"\nj\nz\tš\tª\t²\tº\t¢\n*\nº\nÂ\n:\nB\nÚ\nâ\nÊ\nê\nò\nú\nJ\n2\v\nÒ\n\0µ\0µ\0µ\t’\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\tš\0µ\tª\0µ\0µ\0µ\0µ\0µ\t²\0µ\tº\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\t¢\0µ\0µ\0µ\0µ\n*\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\0µ\n2\0µ\0µ\0µ\0µ\n\0½\0½\0½\t’\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\tš\0½\tª\0½\0½\0½\0½\0½\t²\0½\tº\0½\0½\0½\0½\0½\0½\0½\0½\0½\t¢\0½\0½\0½\0½\n*\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\0½\n2\0½\0½\0½\0½\n\0Ù\0Ù\0Ù\t’\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\tš\0Ù\tª\0Ù\0Ù\0Ù\0Ù\0Ù\t²\0Ù\tº\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\t¢\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\0Ù\n2\0Ù\0Ù\0Ù\0Ù\t†\tÂ\vV\v^\vf\vn\vv\v~\v†\vŽ©©©©©©©©©©©©©\v–©©\vž\v¦\v®\v¶©©©©\v¾\vÆ\vÎ\vÖ©©©©©©©©\vÞ\væ\vî\vö©\vþ\f\f©©©©\f©\f\f&©\f.\f6©\f>\fF©©©©\fN©©©©©©©©©©\fV\f^©\ff©©©©©©\fn©©©©©©\fv\f~©©©©©©\f†©©©\fŽ©©©©©©©©©\f–©©\fž\f¦\f®\f¶©\n\0Í\0Í\0Í\t’\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\tš\0Í\tª\0Í\0Í\0Í\0Í\0Í\t²\0Í\tº\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\t¢\0Í\0Í\0Í\0Í\n*\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\0Í\n2\0Í\0Í\0Í\0Í\n…\n…\t’…\n"…\nj……………………………………\nz……\tš…\tª……………\t²…\tº………………………\t¢…………\n*………………\nÂ…\n:……\nB………\nÚ…………\nâ…………………………\nÊ\nê…\nò………………\nú………………\nJ………………………………………………………………\n2…\v\nÒ…111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r>111111111111111111111111111111111ö\nAAA\t’AAAAAAAAAAAAAAAAAAAAA\tšA\tªAAAAA\t²A\tºAAAAAAAAA\t¢AAAA\n*AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n2AAAA\n\r\n\r\t’\r\n"\r\nj\r\r\r\r\r\r\r\r\r\r\r\r\r\r\nz\r\r\tš\r\tª\r\r\r\r\r\t²\r\tº\r\r\r\r\r\r\r\r\r\t¢\r\r\r\r\n*\r\r\r\r\r\r\nÂ\r\n:\r\r\nB\r\r\r\nÚ\r\r\r\r\nâ\r\r\r\r\r\r\r\r\r\r\nÊ\nê\r\nò\r\r\r\r\r\r\nú\r\r\r\r\r\r\nJ\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\n2\r\r\nÒ\r\n%%%\t’%\n"%%%%%%%%%%%%%%%%%%%\tš%\tª%%%%%\t²%\tº%%%%%%%%%\t¢%%%%\n*%%%%%%%%\n:%%\nB%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\nJ%%%%%%%%%%%%%%%%%%%%%%%%\n2%%%%ññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññªñññññññññññññññññññññññññññññññññ\n!!!\t’!\n"!!!!!!!!!!!!!!!!!!!\tš!\tª!!!!!\t²!\tº!!!!!!!!!\t¢!!!!\n*!!!!!!!!\n:!!\nB!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\nJ!!!!!!!!!!!!!!!!!!!!!!!!\n2!!!!\n)))\t’)))))))))))))))))))))\tš)\tª)))))\t²)\tº)))))))))\t¢))))\n*)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))\n2))))ÑÑÑÑÑÑÑÑÑÑÂÑ\0¦ÑÑÑÑ\0ÆÑÑÑ–ÑÑ*ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑú¢ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ.ÒÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑrÅÑÑÑÑÑÑÑÑÑÑÑÑÑѲÑÑ2ÑÑÑÑÑÑÑÑÑÑÑÑÑÕÕÕÕÕÕÕÕÕÕvÕ¾ÕÕÕÕ’ÕÕÕÁÕÕùÂÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ\0ÎöÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ:îÕÕÕÕÕÕÕÕÕÕՁÕÕÕÕÕ"ÉÕÕÕÕÕÕÕÕÕÕÕÕÕÕ\0~ÕÕeÕÕÕÕÕÕÕÕÕÕÕÕÕMMMMMMMMMM6M\bÖMMMMJMMM>MM¡ÆMMMMMMMMMMMMMMMMMoöMMMMMMMMMMMMMMMMMMMMMMMFMMMMMMMMMnvMMMMMMMMMMM\0ªMMMMMÂõMMMMMMMMMMMMMMÚMMþMMMMMMMMMMMMMÙÙÙÙÙÙÙÙÙÙšÙ†ÙÙÙÙêÙÙÙ¦ÙÙíºÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙþÂÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙáÙÙÙÙÙÙÙÙÙª÷ÙÙÙÙÙÙÙÙÙÙÙ¶ÙÙÙÙÙ*:ÙÙÙÙÙÙÙÙÙÙÙÙÙÙÆÙÙZÙÙÙÙÙÙÙNÙÙÙÙÙAAQQy!Ö\0â}}AnAAAA}AAABAAvæ\n\0òAAAAA‚Š2AAAAAiQA\0^A\0A\0ž\0úAAAAA!A\nA\0RBAAêÍAAA^AAAAAyÚAAAA\0²A6AAAAâAÊAAA~AQ\r^AAAAAAAAAA\0†%AAAAAAA\0‚Aͽy~AA5&åm.ŽbjÉmf¶\0®¾\0ªMBmbòm\föm\0M6mΖmZÉ\0Rr\0¢Ñ\0¾m\0Ö\0VmbŽ’ÑNVÙ\0J\0jmBÑmš\0Ú\0Z®\0R¶\0ÞÉÉÉÉÉÉÉÉÉÉNÉê‘Å\0^n‘\0ž\0úÉÑ.ÉÉÉÉÉÉÉÉÉÉÉöÉÉÑ\0M\0MÑ‘ÉÉÉÉ\0MÉÉÉú¦‘žÉ‘ÉÉ®ÉÉ\bÉÉ‘‘¶‘É‘‘-\b"11u\0î-‘ÉÉ1ÉÂÊ\0V‘\bZÉÉÖÉÉ‘‘vÉÉ\0ö\b’\b®:\0MÉɾ‘ÉÉþ‘‘æ\0Zî\b•É\bÊ\r²ÉÉÉÉÅÅÅÅÅÅÅÅÅÅžÅ\0‚šm½\0v\0^öm\0ž\0úÅu\nÅÅÅÅÅÅÅÅÅÅÅ\nÅÅÆÎ~mÅÅÅÅéÅÅÅNVm£ÅmÅÅÝÅÅ"ÅÅ6m’ÚÅm\tfNÕÕ‘‘‘mÅÅÕÅ‘J\0VmÅÅÅÅ\fÆ\fÊvÅÅþöj‚¢ÅÅ&mÅÅæm\fÒN\0Z\0šB\0ºÅ¦æÅÅÅÅ\t\t\t\t\t\t\t\t\t\t¾\t*\rº¹‚\0Ž\0^\0nƹ\0ž\0ú\t\t\t\t\t\t\t\t\t\t\t\tâ\t\tZb~¹\t\t\t\t¥\t\t\tŽ–¹\0F\t¹\t\tù\t\t\t\t¹¹ïª\t¹¹òòz‚1\b\n¹\t\t1\tÞ\b¶¹&\t\tf\t\t¹¹–\t\t–2jÂ\t\t>¹\t\t\b2Ö¹¹\fÂ\0\0\fÎ:\t\fâ\0N\t\t\t\t\0N\0\0\0\0\bF\0\0\0ê\0\0\fîVR\0I\0Ib\0\0\0\0\0’\0If\bV\0\0Ê\0\0*\r2\0\0‚\0½\0\rV\0zv\0\0\0\0\rj\0®¶\0:\0‚\0\0½…\0\0\0\r‚\0\0\0\0ªÑÑ\0\0\0\0\r–µÑ\0\0\0\0\0IB\r¢\0\0‚\r®\rƽ\0v\rÚ\0\0\0\0\0†\0‚\0\0½’\0‚\0\0½\0\0\0\0\0Ò\0\rî\n~\0\0ÍÍÍÍÍÍÍÍÍͲÍN>²Š’F\0»\rÖÍòÍÍÍÍ\rêÍÍÍÍÍÍÍöÍÍæ~.ÍÍÍÍÍÍÍ\0\0ž\0\0\0Í\0ÍÍ\0\0ÍÍ\0\0ÍÍ\0\06\0\0\0\0Í¢\0\0\0\0\0\0\rþ\0\0•••ºÍÍ\0\0Í•\0\0\0\0\0&\0\0ÍÍ\0\0ÍÍÙÙÍÍ\0\0\0\0\0\0\0\0ÙÍÍ\0\0\0*ÍÍ\0\0\0\0\0.\0\0\0\0\0\0\0\0v\0\0Í\0\0\0\0ÍÍÍÍ\r\r\r\r\r\r\r\r\r\r\0\0\r\0\0²\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\r\0\0\0\0\r\r\r\r\0\0\r\r\r\r\r\r\r\0\0\r\r\0\0\0\0\0\0\0\0.\r\r\r\r\0\0\r\r\r\0\0\0\0\0\0\0\r\0\r\r\0\0\r\r~\r\r\0\06\0\0\0\0\r¢\0\0\0\0\0\0\0\0\0\0\0\0Íͺ\r\r\0\0\r\0\0Í\0\0\0&\0\0\r\r\0\0\r\r\0\0\0\0\0\0\r\rv\0\0\0\0\0\0\0\0\r\r\0\0\0*\r\rqq\0.\0\0\0\0\0\0\0\0q\r\0\0\0\0\r\r\r\r\0\0\0\0\0\0\0v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\r\b\r]]\0\0\0\0\0\0\0\0\0\0]\b\r\0\0\b\r\b\r\b\r\b\r\b\r\b\r\b\r\b\rj\b\r\b\rv\b\r\0\0\0\0\0\0\0\0\b\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\r\0\0\b\r\b\rnr\b\r\0\0\0\0\b\r\0\0\b\r\0\0\0\0\0\0\b\r\b\r\b\r\b\r\0\0\b\r\0\0\0\0\b\r\0\0\0\0\b\r\b\r\0\0\0\0\b\r\b\r\b\r\0\0\b\r\b\r\b\r\b\r\0\0\0\0\0\0\b\r\b\r\b\r\b\r\0\0\0\0\0\0\b\r\b\r\b\r\b\r\b\r\0\0\0\0\0\0\0\0\0\0\0\0~\b\rmm\0\0\b\r\b\r\b\r\b\r\0\0m\b\r\b\r\0\0\0\0\0\0\b\r\b\r\0\0\b\r\b\r\b\r\b\r\b\rv\b\r\0\0\0\0\b\r\b\r\0\0\0\0\0\0\0\01*\0\0:Rv\0\0"š\0’¶~\0\0\0\0\0\0\0\0\0\0\0\0ö¡¡!\0\0\0\0aaŠ¡=‚Ž\0\0a.\0\0\0\0†\0\0ú\0\0\0\0v.Š\0Žv\0\0\0\0\0^\0\0\0\0Ž’\0\0\0\0š¦â~¢Úîþ\0\0\0\0\0\0^º\0\0y\0\0šª\0&\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ºii\0\0ÊÚæ>i\bj\0*\0\0\0\0\0\0\bz\0.\0\0\bŠ\bÎ\tj\tÆ\tâv\têII\0\0~"\tò\0\0\0\0~\0\0\0\0I\0\0IIII\0\0III\0\0II\0\0\0\0\0\0\0\0\0\0\0\0II\0\0\0\0\0\0\0\0YYI\0\0\0\0II\0\0YI\0\0\0\0I\0\0I\0\0\0\0\0\0IIIIvI\0\0\0\0I\0\0\0\0II\0\0\0\0III~IIII\0\0\0\n\0\0IIII\0\0\0\0\0\0IIII\0\0\0\0\0\0\0\0U\0\0\0\0\0\0Iee\0\0IIII\0\0eII\0\0\0\0\0\0II\0\0IIIIIvI\0\0\0\0II\0\0\0\0~\0\0\0\0*\0\0:Rv\0\0"š\0\0\0¶~\0\0\0\0\0\0\0\0\0\0\0\0öõ\0\0\0\0\0\0\0\0\0\0\0\0Š\0\0‚Ž\0\0\0\0.\0\0\0\0†\0\0ú\0\0\0\0\0\0.Š\0Ž\0\0\0\0\0\0\0^\0\0\0\0Ž’\0\0\0\0š¦2~¢Úîþ\0\0\0\0\0\0^º\0\0\0\0\0\0šª\0&\0\0\0\0\0\0\0\0\0\0\0\0\0\0º\0\0\0\0\0\0ÊÚæ\0\0\0\0\bj\0*\0\0\0\0\0\0\bz\0.\0\0\bŠ\bÎ\tj\tÆ\tâ\0\0\tê\0\0\0\0"\tò\0\0\0\0\0\0\0\0\0\0\0\0z\0\0\0\0~\0\0\0\0\0\0\0\0--\0\0\0\0\0\0\0\0\0\0-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\0\0‚\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\0\0\0\0\0\0\0\0\0\0\0\0YY\0\0~\0\0\0\0\0\0\0\0\0\0Y\0\0YYYY\0\0YYY\0\0YY\0\0\0\0\0\0\0\0\0\0\0\0Yöþ\0\0\0\0\0\0\0\0\0\0Y\0\0\0\0YY\0\0\0\0Y\0\0\0\0Y\0\0Y\0\0\0\0\0\0YYYY\0\0Y\0\0\0\0Y\0\0\0\0YY\0\0\0\0YYY\0\0YYYY\0\0\0\0\0\0YYYY\0\0\0\0\0\0YYYY\0\0\0\0\0\0\0\0Y\0\0\0\0\0\0Y\0\0\0\0\0\0YYYY\0\0\0\0YY\0\0\0\0\0\0YY\0\0YYYYY\0\0Y\0\0\0\0YY\0\0\0\0\0\0\0\01*\0\0:Rv\0\0"š\0ž¶~\0\0\0\0\0\0\0\0\0\0\0\0ö\0\0\0\0!\0\0\0\0\0\0\0\0Š\0\0\0\0‚Ž\0\0\0\0.\0\0\0\0†\0\0ú\0\0\0\0\0\0.Š\0Ž\0\0\0\0\0\0\0^\0\0\0\0Ž’\0\0\0\0š¦â\0\0¢Úîþ\0\0\0\0\0\0^º\0\0\0\0\0\0šª\0&\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0º\0\0\0\0\0\0ÊÚæ\0\0\0\0\bj\0*\0\0\0\0\0\0\bz\0.\0\0\bŠ\bÎ\tj\tÆ\tâ\0\0\têzž\0\0\0\0"\tò\0\0\0\0\0\0\0\0\0\0Þ\0\0:æRê\0\0îª\0\0\0®Ö\0\0\0\0\0\0\0\0\0\0\0\0ö\0\0\0\0\0\0\0\0\0\0\0\0\0\0ú\0\0\0\0\nŽ\0\0\0\0f\0\0\0\0n\0\0ú\0\0\0\0\0\0.z\0~\0\0\0\0\0\0\0^\0\0\0\0ކ\0\0\0\0ŽÎâ\0\0öÒ\bŽþ\0\0\0\0\0\0\bš\bž\b¦\bª\0\0\0\0\0\0š\b¶\b¾\0&\0\0\0\0\0\0¦\0\0\0\0\0\0\0\0\bÒ\0\0\0\0\bâ\bæ\bî\bòæ\0\0\0\0\bj\0*\0\0\0\0\0\0\bú\0.\0\0\t\t\n\t\t\t\0\0\tUU\0\0\0\0\t\t&\0\0\0\0\0\0\0\0\0\0U\0\0UUUU\0\0UUU\0\0UU\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0UU\0\0\0\0U\0\0\0\0U\0\0U\0\0\0\0\0\0UUUU\0\0U\0\0\0\0U\0\0\0\0UU\0\0\0\0UUU\0\0UUUU\0\0\0\n\0\0UUUU\0\0\0\0\0\0UUUU\0\0\0\0\0\0\0\0U\0\0\0\0\0\0U\0\0\0\0\0\0UUUU\0\0\0\0UU\0\0\0\0\0\0UU\0\0UUUUU\0\0UMM\0\0\0\0UU\0\0\0\0\0\0\0\0\0\0M\0\0MMMM\0\0MMM\0\0MM\0\0\0\0\0\0\0\0\0\0\0\0MMÎ\0\0\0\0\0\0\0\0\0\0M\0\0\0\0MM\0\0\0\0M\0\0\0\0M\0\0M\0\0\0\0\0\0MMMM\0\0M\0\0\0\0M\0\0\0\0MM\0\0\0\0MMM\0\0MMMM\0\0\0\0\0\0MMMM\0\0\0\0\0\0MMMM\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0M\0\0\0\0\0\0MMMM\0\0\0\0MM\0\0\0\0\0\0MM\0\0MMMMM\0\0M\0\0\0\0MM\0\0\0\0\0\0\0\0\0\0*\0\0ÖRv\0\0"š\0\0\0¶~\0\0\0\0\0\0\0\0\0\0\0\0ö\0\0\0\0\0\0\0\0\0\0\0\0\0\0Š\0\0=‚Ž\0\0\0\0.\0\0\0\0†\0\0ú\0\0\0\0\0\0.Š\0Ž\0\0\0\0\0\0\0^\0\0\0\0Ž’\0\0\0\0š¦â\0\0¢Úîþ\0\0\0\0\0\0^º\0\0\0\0\0\0šª\0&\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0º\0\0\0\0\0\0ÊÚæ\0\0\0\0\bj\0*\0\0\0\0\0\0\bz\0.\0\0\bŠ\bÎ\tj\tÆ\tâ\0\0\tê\0\0\0\0"\tò\0\0\0\0\0\0\0\0\0\0*\0\0ÞRv\0\0"š\0\0\0¶~\0\0\0\0\0\0\0\0\0\0\0\0ö\0\0\0\0\0\0\0\0\0\0\0\0\0\0Š\0\0=‚Ž\0\0\0\0.\0\0\0\0†\0\0ú\0\0\0\0\0\0.Š\0Ž\0\0\0\0\0\0\0^\0\0\0MŽ’\0\0\0\0š¦â\0\0¢Úîþ\0\0\0\0\0\0^º\0M\0M\0Mšª\0&\0\0\0M\0M\0\0\0\0\0\0\0\0\0\0º\0\0\0\0\0\0ÊÚæ\0\0\0\0\bj\0*\0\0\0\0\0\0\bz\0.\0\0\bŠ\bÎ\tj\tÆ\tâ\0\0\tê\0\0\0\0\0\0\0\0"\tòYYYY\t’YYYYY\0\0Y\0\0\0\0m\0M\0\0ê\0M\0Mm\0\0\0\0Y\0\0\0\0\0\0Y\0\0Y\0MYYY\0MY\0\0Y\0\0YY\0\0\0\0\0\0\0\0m\t¢YYY\0\0YYY\0\0\0\0m\0\0YmYY\0\0YY\0\0YY6m\0\0\0\0YmZ\0\0\0\0\0\0\0\0\0\0\0\0\0\0mYY\0\0Y\0\0\0\0\0\0m\0\0YY\0\0YYŽ\0\0YY\0\0\0\0\0\0\0\0\0\0YY\0\0mYY\0\0\0\0mš\0\0\0\0\0\0\0\0\0\0Y\0\0\0\0YYYY\0í\0í\0í\0í\t’\0í\0í\0í\0í\0í\0\0\0í\0\0\0\0m\0\0\0\0\0\0\0\0\0\0m\0\0\0\0\0í\0\0\0\0\0\0\0í\0\0\0í\0\0\0í\0í\0í\0\0\0í\0\0\0í\0\0\0í\0í\0\0\0\0\0\0\0\0m\t¢\0í\0í\0í\0\0\0í\0í\0í\0\0\0\0m\0\0\0ím\0í\0í\0\0\0í\0í\0\0\0í\0í6m\0\0\0\0\0ím\tf\0\0\0\0\0\0\0\0\0\0\0\0\0\0m\0í\0í\0\0\0í\0\0\0\0\0\0m\0\0\0í\0í\0\0\0í\0í\fÆ\rž\0\0\0í\0í\0\0\0\0\0\0\0\0\0\0\0í\0í\0\0m\0í\0í\0\0\0\0m\fÒ\0\0\0\0\0\0\0\0\0\0\0í\0\0\0\0\0í\0í\0í\0í\0á\0á\0á\0á\t’\0á\0á\0á\0á\0á\0\0\0á\0\0\0\0\fÚ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0á\0\0\0\0\0\0\0á\0\0\0á\0\0\0á\0á\0á\0\0\0á\0\0\0á\0\0\0á\0á\0\0\0\0\0\0\0\0\fÞ\t¢\0á\0á\0á\0\0\0á\0á\0á\0\0\0\0\0\0\0\0á\0\0á\0á\0\0\0á\0á\0\0\0á\0á\0\0\fæ\0\0\0\0\0á¢\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\fþ\0á\0á\0\0\0á\0\0\0\0\0\0\0&\0\0\0á\0á\0\0\0á\0á\0\0\0\0\0\0\0á\0á\0\0\0\0\0\0\0\0\0\0\0á\0á\0\0\0*\0á\0á\0\0\0\0\0.\0\0\0\0\0\0\0\0\0\0\0\0\0á\0\0\0\0\0á\0á\0á\0áUUUU\t’UUUUU\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0\0\0U\0\0U\0\0UUU\0\0U\0\0U\0\0UU\0\0\0\0\0\0\0\0\0\0\t¢UUU\0\0UUU\0\0\0\0\0\0\0U\0UU\0\0UU\0\0UU\0\0\0\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\02UU\0\0U\0\0\0\0\0\0\0&\0\0UU\0\0UU\0\0\0\0\0\0UU\0\0\0\0\0\0\0\0\0\0UU\0\0\0*UU\0\0\0\0\0.\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0UUUUaaaa\t’aaaaa\0\0a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\0\0\0\0\0\0a\0\0a\0\0aaa\0\0a\0\0a\0\0aa\0\0\0\0\0\0\0\0\0\0\t¢aaa\0\0aaa\0\0\0\0\0\0\0\0a\0\0aa\0\0aa\0\0aa\0\0\0\0\0\0\0\0a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aa\0\0a\0\0\0\0\0\0\0\0\0\0aa\0\0aa\0\0\0\0\0\0aa\0\0\0\0\0\0\0\0\0\0aa\0\0\0\0aa\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\0\0\0\0aaaa\0é\0é\0é\0é\t’\0é\0é\0é\0é\0é\0\0\0é\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0é\0\0\0\0\0\0\0é\0\0\0é\0\0\0é\0é\0é\0\0\0é\0\0\0é\0\0\0é\0é\0\0\0\0\0\0\0\0\0\0\t¢\0é\0é\0é\0\0\0é\0é\0é\0\0\0\0\0\0\0\0\0é\0\0\0é\0é\0\0\0é\0é\0\0\0é\0é\0\0\0\0\0\0\0\0\0é\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0é\0é\0\0\0é\0\0\0\0\0\0\0\0\0\0\0é\0é\0\0\0é\0é\0\0\0\0\0\0\0é\0é\0\0\0\0\0\0\0\0\0\0\0é\0é\0\0\0\0\0é\0é\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0é\0\0\0\0\0é\0é\0é\0é]]]]\t’]]]]]\0\0]\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0]\0\0\0\0\0\0]\0\0]\0\0]]]\0\0]\0\0]\0\0]]\0\0\0\0\0\0\0\0\0\0\t¢]]]\0\0]]]\0\0\0\0\0\0\0\0]\0\0]]\0\0]]\0\0]]\0\0\0\0\0\0\0\0]\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0]]\0\0]\0\0\0\0\0\0\0\0\0\0]]\0\0]]\0\0\0\0\0\0]]\0\0\0\0\0\0\0\0\0\0]]\0\0\0\0]]\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0]\0\0\0\0]]]]\0å\0å\0å\0å\t’\0å\0å\0å\0å\0å\0\0\0å\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0å\0\0\0\0\0\0\0å\0\0\0å\0\0\0å\0å\0å\0\0\0å\0\0\0å\0\0\0å\0å\0\0\0\0\0\0\0\0\0\0\t¢\0å\0å\0å\0\0\0å\0å\0å\0\0\0\0\0\0\0\0\0å\0\0\0å\0å\0\0\0å\0å\0\0\0å\0å\0\0\0\0\0\0\0\0\0å\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0å\0å\0\0\0å\0\0\0\0\0\0\0\0\0\0\0å\0å\0\0\0å\0å\0\0\0\0\0\0\0å\0å\0\0\0\0\0\0\0\0\0\0\0å\0å\0\0\0\0\0å\0å\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0å\0\0\0\0\0å\0å\0å\0å\n\n\t’\n"\nj\0\0¦\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tš\tª\0\0\t²\tº-\0\0\0\0\0\0.\0\0\t¢\0\0\n*Š\0\0\0\0\0\0\0\0\n:\0\0\nB\0\0\0\0¢\0\0\0\0\0\0¢Ú\0\0UU}\0\0\0\0\0\0î\0\0\nÊÒ\0\0\0\0\0\0\0\0\0&\0\0\0\0\0\0\0\0v\0\0\0\0\nJ\0\0\0\0\0\0\0\0\0\0\0*\0\0\0\0\0.\0\0\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\n2\nÒ\n\n\t’\n"\nj\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\nz\0\0\0\0\tš\tª\0\0\t²\tº\0\0\0\0~\0\0U\0\0\t¢\0\0\n*\0\0\0\0\0\0\0\0\0\0\0\0\n:\0\0\nB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nJ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n2\nÒ\n\t\n\t\t’\t\n"\t\nj\t\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tš\t\tª\t\0\0\t\t\t\t²\t\tº\t\0\0\t\t\0\0\0\0\0\0\0\0\0\0\t¢\t\t\t\0\0\n*\t\t\0\0\0\0\0\0\0\0\0\0\0\0\n:\t\0\0\nB\t\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\t\t\0\0\0\0\0\0\nJ\t\0\0\0\0\0\0\0\0\0\0\t\t\0\0\0\0\t\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\n2\t\t\nÒ\n\0õ\n\0õ\t’\0õ\n"\0õ\nj\0õ\0\0\0õ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tš\0õ\tª\0õ\0\0\0õ\0õ\0õ\t²\0õ\tº\0õ\0\0\0õ\0õ\0\0\0\0\0\0\0\0\0\0\t¢\0õ\0õ\0õ\0\0\n*\0õ\0õ\0\0\0\0\0\0\0\0\0\0\0\0\n:\0õ\0\0\nB\0õ\0\0\0õ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0õ\0\0\0\0\0õ\0õ\0\0\0\0\0\0\nJ\0õ\0\0\0\0\0\0\0\0\0\0\0õ\0õ\0\0\0\0\0õ\0õ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0õ\0\0\0\0\n2\0õ\0õ\nÒ\nq\nq\t’q\n"q\njq\0\0q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tšq\tªq\0\0qqq\t²q\tºq\0\0qq\0\0\0\0\0\0\0\0\0\0\t¢qqq\0\0\n*qq\0\0\0\0\0\0\0\0\0\0\0\0\n:q\0\0\nBq\0\0q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0q\0\0\0\0qq\0\0\0\0\0\0\nJq\0\0\0\0\0\0\0\0\0\0qq\0\0\0\0qq\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0q\0\0\0\0\n2qq\nÒ\n\0ù\n\0ù\t’\0ù\n"\0ù\nj\0ù\0\0\0ù\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tš\0ù\tª\0ù\0\0\0ù\0ù\0ù\t²\0ù\tº\0ù\0\0\0ù\0ù\0\0\0\0\0\0\0\0\0\0\t¢\0ù\0ù\0ù\0\0\n*\0ù\0ù\0\0\0\0\0\0\0\0\0\0\0\0\n:\0ù\0\0\nB\0ù\0\0\0ù\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ù\0\0\0\0\0ù\0ù\0\0\0\0\0\0\nJ\0ù\0\0\0\0\0\0\0\0\0\0\0ù\0ù\0\0\0\0\0ù\0ù\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ù\0\0\0\0\n2\0ù\0ù\nÒ\nm\nm\t’m\n"m\njm\0\0m\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tšm\tªm\0\0mmm\t²m\tºm\0\0mm\0\0\0\0\0\0\0\0\0\0\t¢mmm\0\0\n*mm\0\0\0\0\0\0\0\0\0\0\0\0\n:m\0\0\nBm\0\0m\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0m\0\0\0\0mm\0\0\0\0\0\0\nJm\0\0\0\0\0\0\0\0\0\0mm\0\0\0\0mm\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0m\0\0\0\0\n2mm\nÒ\nu\nu\t’u\n"u\nju\0\0u\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tšu\tªu\0\0uuu\t²u\tºu\0\0uu\0\0\0\0\0\0\0\0\0\0\t¢uuu\0\0\n*uu\0\0\0\0\0\0\0\0\0\0\0\0\n:u\0\0\nBu\0\0u\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0u\0\0\0\0uu\0\0\0\0\0\0\nJu\0\0\0\0\0\0\0\0\0\0uu\0\0\0\0uu\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0u\0\0\0\0\n2uu\nÒ\ny\ny\t’y\n"y\njy\0\0y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tšy\tªy\0\0yyy\t²y\tºy\0\0yy\0\0\0\0\0\0\0\0\0\0\t¢yyy\0\0\n*yy\0\0\0\0\0\0\0\0\0\0\0\0\n:y\0\0\nBy\0\0y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0y\0\0\0\0yy\0\0\0\0\0\0\nJy\0\0\0\0\0\0\0\0\0\0yy\0\0\0\0yy\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0y\0\0\0\0\n2yy\nÒ\n}\n}\t’}\n"}\nj}\0\0}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tš}\tª}\0\0}}}\t²}\tº}\0\0}}\0\0\0\0\0\0\0\0\0\0\t¢}}}\0\0\n*}}\0\0\0\0\0\0\0\0\0\0\0\0\n:}\0\0\nB}\0\0}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0\0\0\0}}\0\0\0\0\0\0\nJ}\0\0\0\0\0\0\0\0\0\0}}\0\0\0\0}}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}\0\0\0\0\n2}}\nÒ\ni\ni\t’i\n"i\nji\0\0i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tši\tªi\0\0iii\t²i\tºi\0\0ii\0\0\0\0\0\0\0\0\0\0\t¢iii\0\0\n*ii\0\0\0\0\0\0\0\0\0\0\0\0\n:i\0\0\nBi\0\0i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\0\0\0\0ii\0\0\0\0\0\0\nJi\0\0\0\0\0\0\0\0\0\0ii\0\0\0\0ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\0\0\0\0\n2ii\nÒ\n\0ý\n\0ý\t’\0ý\n"\0ý\nj\0ý\0\0\0ý\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nz\0\0\0\0\tš\0ý\tª\0ý\0\0\0ý\0ý\0ý\t²\0ý\tº\0ý\0\0\0ý\0ý\0\0\0\0\0\0\0\0\0\0\t¢\0ý\0ý\0ý\0\0\n*\0ý\0ý\0\0\0\0\0\0\0\0\0\0\0\0\n:\0ý\0\0\nB\0ý\0\0\0ý\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nÊ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ý\0\0\0\0\0ý\0ý\0\0\0\0\0\0\nJ\0ý\0\0\0\0\0\0\0\0\0\0\0ý\0ý\0"\0\0\0ý\0ý\0\0\0\0\0\0\0\0\0\0\0\0\0­\0\0ý\0\0\0\n2\0ý\0ý\nÒ\06\0\x006\0\0\0\0\0\0\0\0\0\0\0\0­­­\0\0b\0\0\0\0\0\0­­\0>\0\0\0&\0\0\0\0\0\0\0\0\0\0•\0\0\0\0­•\0\0\0\0\0\0\0\0\0\0•\0*\0\0\0\0\0\0\0\0\0.\0\0\0\0\0\0\0\0B\0\0\0\0\0\0­\0\0\0\0bf\0\0\0\0\0\0•\0\0\0\0\0&\0\0­­­­"\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\0­­•\0*­\0\0\0\0\0\0\0.\0\0\0\0\0\0\0\0‚\0\0\0\0\0\0.\0\0\0\0†z•\0\0\0\0\0\0\0\0Š\0ŽU\0\0\0\0\0U\0\0\0\0\0\0’\0\0U–\0\0\0\0\0\0¢Ú\0\0\0\0\0\0\0\0\0\0\0\0º\0\0\0\0\0\0\0\0\0\0&\0\0\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0U\0\0\0\0\0*\0\0\0\0\0\0\0\0\0.UU\0\0\0\0\0\0UUA\0\0A\0\0\0\0"&UA\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0\0\0\0\0\0\0\0UU\0\0\0\0\0\0\0\0\0\0A\0f\0\0\0\0\0R\0\0U\0\0\0\0A\0\0UUA\0\0A\0\0\0\0A\0\0\0\0A)U\0\0\0\0AA\0\0\0\0\0AA\0\0\0\0\0\0\0\0\0\0\0\0\0\0A)))\0\0A\0\0\0\0A))\0\0\0\0\0\0\0\0.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0j\0\0\0AA\0\0\0\0\0\0\0A\0\0\0\0\0\0\0\0\0\06\0\0\0\0¢\0\0\0\0\0\0A\0\0\0\0\0\0\0º\0\0\0\0\0\0\0\0\0\0\rÊ\0\0\0&\0\0)\0\0\0\0))\0\0\0\0\0\0"\0\0\0\0.\0\0\0\0\0\0)ú\0\0\0*).Š\0\0.\0\0\0\0\0\0\0^\0\09\0\0\0\0\0\0\0\0¢\0\0æ\0\0¢Ú\0\0\0\0\0\0\0\0\0\0\0\0º\0\0999\rÊ\0\0\0\0\0&\0\099\0\0\0\0\0\0\0\0\0\0"\0\0\0\0f\0\0\0\0\0\0Nú\0\0\bj\0*.z\0\0\0\0.\0\0\0\0^\0\0\0\0V\0þ\0\0–\0\0\0\0b6Ò:\0\0\0Þ\0\0\0\0\0\0\b¦\0\0\0b\0\0\t*\0\09\0\0\0&99\0\0\0&\0Z\0Š\0\0\0\0®\0\0\0\0\bâ9\0\0\0\0N9\0¶\bj\0*\0\0\0R\t:\0*\0.\0â\0\0\0\0\0.\0\0Z\0ê\0^\0\0\0\0\0\0\0ž\0úbÝ\0\0\0\0\0\0m\0\0\0\0\0\0±m\0\0y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ý\0\0Ýmyyym\0\0m\0\0\0\0yy\0\0\0\0*.m\0\0\0\0m\0\0\0\0\0\02v\0\0\0\0\0\06m\0\0\0\0mmZ\0\0\0\0\0\0\0\0\0\0\0\0\0\0mm\0\0\0\0m\0\0y\0\0m\0\0\0\0\0\0\0\06mŽ’\0\0mZ\0Vy\0\0yyy\0\0mm\0\0\0\0\0\0\0\0mšmyy\0b\0\0y鎒\0\02\0\0\0\0\0\0\0Z\0Š\0\0\0\0\0®\0\0m~\0\0\0\0\0\0mš\0¶\0\0\0\0±\0\0‰\0\0\0\0\0â±"‰\0\0\0\0\0ê\0^\0\0\0\0\0\0\0ž\0ú\0\0\n\0\0\r¦\0\0\0\0*\0\0\0\0\0\0\0\0\0\0±\0\0‰\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0±\0\0‰±\0\0‰\0\0\0\0\0\0\0\0\0\0±±‰‰\0\0±±‰‰*.\0\0\0\0\0"±\0\0‰\0\02\0\0\0\0\0\0±\0\0‰\0\0\0\0\0\0\0±±‰‰\0\0\0m\x006\0\0\0\0\0\0\0\0\0\0±\0\0‰\0\0u±±‰‰\0\0\0\0\0\0\0>mmm\0\0\0\0\0\0\0\0\0\0mm\0\0\0\0\0\0\0\0\0\0}\0\0\0\0\0\0\0\0\0\0\0Ž\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0B\0\0\0\0\0\0\0}\0}\0}\0\0\0\0bf\0\0\0}\0}\0\0m\0\0\0&\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0v\0\0\0\0\0\0m\0Ummm\0\0\0\0\0*\0\0\0\0\0\0\0\0\0.\0\0\0\0m–\0\0\0\0m\0\0\0U\0U\0U\0Qz\0\0\0\0\0\0\0U\0U\0\0\0\0\0\0\0\0\0}\0\0\0\0}\0}\0\0\0\0\0\0v\0Q\0Q\0Q\0\0\0\0\0\0\0}\0\0\0Q\0Q\0}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0v\0\0\0\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0\0U\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\0\0\0\0\0\0U\0\0\0\0\0\0\0Q\0\0\0\0\0Q\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0Q\0\0\0\0\0\0\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~']],FRr=[0,16,"\0\0\0'\0 \0 \0,\0t\0z\0Ž\0\0¸\0à\0ê\0‹\x002\0‹\0V\0–\0\"\0¨\0¨\0Ü\0\0V\0Ž\0@\0X\0Ø\0X\0w\0Œ\0.\0Ú\0¨\x004\0X\0Œ\0.\0\0®\0–\0\0¨\0Ü\0^\0,\0p\0–\0\"\0¨\0Œ\0!\0Ú\x009\x009\0®\0À\0€\0\0Œ\0.\0\0®\0˜\0\0¨\0Ø\0X\0Œ\0.\0\0®\0\v\0\r\0ü\0ô\0ö\0\0\r\0\0\0Œ\0\r\0ü\0\0\0\0\0]\0È\0¨\0\0%\0n\0%\0%\0Ú\0;\0;\0®\0#\0u\0\0\x009\0®\0\r\0ü\0\0\r\0ü\0\0%\0T\0%\0T\0\r\0ü\0\x009\0®\0\r\0ü\0\0%\0À\0%\0¨\0Œ\0.\0\0®\0\0Ü\0%\x009\0®\0\0Ü\0%\0Ü\0%\0\0Ü\0%\0\0B\x005\0D\x005\x005\0R\0\0%\0ª\0R\0¨\0Ó\0\0B\0ª\0\0B\x001\0D\x001\x001\0D\x001\0-\0R\0\r\0ü\0\x009\0®\0\r\0ü\0\0\r\0ü\0\0%\0!\0\0\0®\0\r\0ü\0\x009\0®\0\r\0ü\0\0\r\0ü\0\0¢\0Ü\0%\0¨\0Ü\0%\0\0Ú\0%\x003\x003\0F\0\r\0\r\0%\0Ó\0À\0¨\0ª\0¨\0a\0e\0‹\0‹\0_\0e\0i\0n\0i\0Ü\0%\0k\0A\0R\0g\0B\0A\0D\0A\0_\0C\0F\0i\0Ú\0C\0e\0À\0\0,\0G\0“\0Â\0•\0B\0G\0D\0G\0s\0\0\0'\0G\0\0\0 \0(\0Ž\0\0^\0,\0Ž\0\0¨\0Ü\0%\0Ó\0À\0\"\0¨\0Œ\x009\0®\0À\0%\0À\0%\0$\0\x002\0V\0d\0r\0v\0ˆ\0Ž\0*\0\0–\0\0¨\0Ó\0À\x000\0¨\0…\0‹\0£\0¥\0§\0–\0æ\0e\0\0§\0 \0$\0(\0Ž\0@\0w\0a\0c\0h\0Þ\0Œ\0.\0\0®\0a\x009\0®\0a\0¨\0Œ\0.\0\0®\0a\x009\0®\0a\0a\0a\0—\0Ó\0–\0.\0Z\0\\\0\t\0&\x006\0º\0+\0P\0X\0c\0h\0Þ\0—\0Ó\0À\0¨\0ƒ\0ƒ\0ƒ\0É\0p\0Þ\0—\0Ó\0É\0€\0Þ\0—\0Ó\0É\0²\0—\0Ó\0–\0h\0¨\0Ó\0\0ƒ\0Þ\0—\0Ó\0É\0Ó\0\0ƒ\0p\0¨\0Ó\0\0ƒ\0Þ\0—\0Ó\0É\0Ó\0\0ƒ\0€\0¨\0Ó\0\0ƒ\0Þ\0—\0Ó\0É\0Ó\0\0ƒ\0†\0a\0ƒ\0Ž\0.\0Ž\0\0*\x000\0§\0–\0W\0R\0Í\0B\0W\0D\0W\x002\0˜\0\0’\0k\0À\0š\0¨\0Ó\0P\0œ\0¨\0¤\0V\0ª\0¨\0§\0´\0Ò\0£\0›\0Ÿ\0Œ\0.\0Ú\0%\0\0\0®\0;\0®\0˜\0¦\0§\0^\0,\0d\0›\0§\0r\0v\0›\0ˆ\0›\0Ž\0.\0Ž\0²\0—\0Ó\0À\0¶\0Ž\0k\0ž\0Ê\0V\0Ï\0Ï\0Ô\0\0˜\0\0Ö\0¨\0y\0Ø\0X\0c\0h\0Þ\0—\0Ó\0É\0p\0Þ\0—\0Ó\0É\0€\0Þ\0—\0Ó\0É\0²\0—\0Ó\0™\0Ï\0Þ\0—\0Ó\0É\0Þ\0—\0Ó\0É\0Þ\0—\0Ó\0É\0è\0¨\0}\0§\0î\0š\0¨\0Ó\0¤\0¦\0§\0¨\0ª\0¨\0§\0´\0›\0¶\0Ž\0k\0ž\0ð\0Ê\0V\0Ï\0Ï\0Ð\0Ò\0›\0Ô\0Ö\0y\0è\0¨\0}\0î\0ð\0ò\0ô\0ö\0ú\0›\0¨\0Ó\0\0ƒ\0Þ\0—\0Ó\0É\0£\0Ó\0\0ƒ\0\0\0¡\0˜\0ò\0£\0©\0­\0±\0³\0¹\0\0›\0·\0\0·\0\b\0·\0\f\0·\0\0·\0\0·\x002\0·\x008\0·\0<\0·\0H\0·\0L\0·\0`\0·\0f\0·\0j\0·\0n\0·\0x\0·\0|\0·\0‚\0·\0Š\0·\0”\0·\0ª\0·\0¬\0·\0°\0·\0¾\0·\0Ì\0·\0Ü\0\0þ\0·\0·\0·\0\0ô\0³\0¿\0Á\0Ã\0Ï\0Ñ\0ö\0³\0ú\0³\0«\0¯\0·\0\0½\0Á\0Ã\0\n\0½\0\0½\0\0½\0\0½\0:\0½\0>\0½\0J\0½\0N\0½\0b\0½\0d\0½\0l\0½\0~\0½\0„\0½\0ˆ\0½\0Î\0½\0ä\0½\0ø\0½\0\0½\0½\0\b\0·\0\n\0½\0\f\0·\0\0½\0\0·\0\0½\0\0·\0\0½\x002\0·\x008\0·\0:\0½\0<\0·\0>\0½\0H\0·\0J\0½\0L\0·\0N\0½\0`\0·\0b\0½\0d\0½\0f\0·\0j\0·\0l\0½\0n\0·\0x\0·\0|\0·\0~\0½\0‚\0·\0„\0½\0ˆ\0½\0Š\0·\0”\0·\0ª\0·\0¬\0·\0°\0·\0¾\0·\0Ì\0·\0Î\0½\0Ü\0\0ä\0½\0ø\0½\0þ\0·\0\0½\0·\0·\0½\0T\0Æ\0È\0¨\0ì\0‘\0 \0^\0,\0Ž\0O\0F\0½\0Ú\0O\0¨\0…\0‹\0»\0³\0³\0³\0³\0³\0³\0³\0³\0½\0F\0³\0³\0Ä\0³\0³\0³\0³\0K\0T\0«\0Ú\0K\0K\0T\0³\0\0³\0³\0½\0F\0³\0½\0™\0O\0F\0¡\0È\0¨\0F\0{\0\0¨\0Ó\0À\0½\0M\0F\0@\0w\0c\0p\0Þ\0—\0Ó\0É\0€\0Þ\0—\0Ó\0É\0Þ\0—\0Ó\0É\0Þ\0—\0Ó\0É\0X\0c\0Þ\0—\0Ó\0É\0Þ\0—\0Ó\0É\0Ø\0X\0c\0ö\0³\0\0¡\0‘\0»\0µ\0B\0M\0D\0M\0Ÿ\0Æ\0È\0¨\0ì\0‘\0»\0³\0Ä\0³\0½\0T\0›\0›\0›\0³\0½\0½\0³\0½\0K\0T\0K\0T\0›\0³\0³\0\0³\0Ÿ\0È\0¨\0F\0{\0\0M\0F\0ö\0³\0Ÿ\0‘\0»\0’\0k\0À\0½\0Ä\0³\0S\0R\0¯\0Á\0Ã\0Ç\0B\0S\0D\0S\0™\0½\0Ç\0Q\0R\0Å\0B\0Q\0D\0Q\0É\0²\0—\0Ó\0™\0O\0F\0³\0¼\0³\0â\0e\0³\0Ë\0¼\0³\0³\0³\0W\0R\0½\0¨\0M\0R\0Y\0\0/\0R\0µ\0B\0M\0D\0M\0Ÿ\0Y\0R\0Ÿ\0Y\0›\0³\0{\0\0M\0F\0›\0›\0›\0›\0›\0›\0³\0¼\0³\0Ë\0¼\0³\0½\0§\0³\0O\0F\0›\0›\0S\0Â\0q\0\0\0'\0I\0U\0B\0Ç\0D\0U\0•\0D\0I\0o\0\0\0'\0\"\0¨\0Œ\x009\0®\0À\0%\0À\0%\0\0B\x007\0D\x007\x007\0–\0,\0E\0R\0–\x006\0\0¨\0Ü\0%\0¨\0Ü\0%\0)\0B\0=\0D\0=\0=\0R\0‡\0Ü\0%\0‰\0B\0E\0D\0E\0Ž\0–\x006\0\0¨\0Ü\0%\0¨\0Ü\0%\0ž\0\0¨\0Ü\0%\0¨\0Ü\0%\0?\0R\0Ú\0–\0=\0R\0F\0[\0B\0?\0D\0?\0–\0=\0R\0m"],MRr=[0,[0,16,'\0s\0q\0o\0m\0Ü\0%\0Ð\0–\0S\0R\0æ\0e\0³\0â\0e\0³\0À\0¨\0ƒ\0À\0ƒ\0ƒ\0Á\0Ã\0¯\0’\0k\0À\0½\0Ä\0³\0\t\0+\0Ç\0’\0k\0À\0½\0’\0k\0"\0¨\0À\0%\0"\0¨\0Œ\x009\0®\0À\0%\0²\0—\0Ó\0™\0@\0w\0c\0²\0—\0Ó\0™\0X\0c\0²\0—\0Ó\0™\0Ø\0X\0c\0²\0—\0Ó\0™\0Ž\0{\0\0M\0F\0\0\0†\0a\0ƒ\0œ\0¨\0½\0\0¨\0Ó\0À\0½\0\0¨\0Ü\0%\0­\0Á\0«\0Á\0…\0‹\0Ž\0O\0F\0¨\0^\0,\0 \0\0¹\0·\0¹\x002\0·\0¹\0|\0·\0¹\0Ì\0·\0¹\0‚\0·\0¹\0`\0·\0¹\0\0·\0¹\0\b\0·\0¹\0\0·\0¹\0\f\0·\0¹\0þ\0·\0¹\0j\0·\0¹\0\0·\0¹\0<\0·\0¹\x008\0·\0¹\0L\0·\0¹\0H\0·\0¹\0ª\0·\0¹\0¾\0·\0¹\0x\0·\0¹\0Š\0·\0¹\0”\0·\0¹\0¬\0·\0¹\0°\0·\0¹\0·\0¹\0n\0·\0¹\0Ü\0\0¹\0f\0·\0›\0·\0·\0·\x002\0·\0·\0|\0·\0·\0Ì\0·\0·\0‚\0·\0·\0`\0·\0·\0\0·\0·\0\b\0·\0·\0\0·\0·\0\f\0·\0·\0þ\0·\0·\0j\0·\0·\0\0·\0·\0<\0·\0·\x008\0·\0·\0L\0·\0·\0H\0·\0·\0ª\0·\0·\0¾\0·\0·\0x\0·\0·\0Š\0·\0·\0”\0·\0·\0¬\0·\0·\0°\0·\0·\0·\0·\0n\0·\0·\0Ü\0\0·\0f\0·\0¨\0Ó\0\0¨\0Ó\0¨\0Ó\0À\0½\0\0¨\0Ó\0À\0½\0Ï\0¿\0¹\0¹\0ø\0½\0¹\0d\0½\0¹\0ˆ\0½\0¹\0~\0½\0¹\0Î\0½\0¹\0„\0½\0¹\0b\0½\0¹\0\0½\0¹\0\n\0½\0¹\0\0½\0¹\0\0½\0¹\0\0½\0¹\0l\0½\0¹\0\0½\0¹\0>\0½\0¹\0:\0½\0¹\0N\0½\0¹\0J\0½\0¹\0ä\0½\0P\0P\0½\0Ž\0{\0\0M\0F\0ö\0³\0ö\0³\0ô\0³\0ò\0³\0ð\0³\0î\0³\0ú\0³\0š\0¨\0Ó\0³\0è\0¨\0}\0è\0Ö\0y\0Ô\0³\0¦\0§\0³\0¦\0§\0³\0Ä\0³\0$\0³\0Ë\0$\0³\0Ë\0¼\0³\0$\0³\0¼\0³\0*\0³\x000\0§\0–\0W\0R\0\0§\0³\0\0³\0\0³\0\0³\0¶\0Ž\0k\0ž\0½\0F\0³\0¤\0³\0Ê\0Ï\0Ê\0V\0Ï\0·\0·\0ø\0½\0·\0d\0½\0·\0ˆ\0½\0·\0~\0½\0·\0Î\0½\0·\0„\0½\0·\0b\0½\0·\0\0½\0·\0\n\0½\0·\0\0½\0·\0\0½\0·\0\0½\0·\0l\0½\0·\0\0½\0·\0>\0½\0·\0:\0½\0·\0N\0½\0·\0J\0½\0·\0ä\0½\0P\0P\0½\0Ž\0{\0\0M\0F\0ö\0³\0ö\0³\0ô\0³\0ò\0³\0ð\0³\0î\0³\0ú\0³\0š\0¨\0Ó\0³\0è\0¨\0}\0è\0Ö\0y\0Ô\0³\0¦\0§\0³\0¦\0§\0³\0Ä\0³\0$\0³\0Ë\0$\0³\0Ë\0¼\0³\0$\0³\0¼\0³\0*\0³\x000\0§\0–\0W\0R\0\0§\0³\0\0³\0\0³\0\0³\0¶\0Ž\0k\0ž\0½\0F\0³\0¤\0³\0Ê\0Ï\0Ê\0V\0Ï\0±\0Ã\0¯\0Ã\0Ñ\0£\0¨\0^\0,\0 \0…\0£\0¨\0^\0,\0 \0–\0M\0R\0–\0Ÿ\0Y\0R\0–\0Y\0\0/\0R\0‹\0Ž\0O\0F\0©\0˜\0K\0T\0˜\0\0K\0T\0¡\0˜\0½\0T\0¡\0Æ\0¡\0È\0¨\0r\0¡\0‘\0»\0¡\0ì\0Ž\0.\0¡\0È\0¨\0F\0§\0˜\0K\0T\0˜\0\0K\0T\0Ÿ\0˜\0½\0T\0Ÿ\0Æ\0Ÿ\0È\0¨\0r\0Ÿ\0‘\0»\0Ÿ\0ì\0Ž\0.\0Ÿ\0È\0¨\0F\0¡\0Ž\0{\0\0M\0F\0¡\0‘\0»\0ª\0¨\0ª\0¨\0§\0V\0›\0›\x002\0›\0\0›\0d\0›\0ˆ\0›\0\0›\0£\0v\0›\0Ò\0›\0(\0Ž\0O\0F\0´\0›\0Ÿ\0Ž\0{\0\0M\0F\0Ÿ\0‘\0»\0ª\0¨\0ª\0¨\0§\0V\0›\0›\x002\0›\0\0›\0d\0›\0ˆ\0›\0\0›\0£\0v\0›\0Ò\0›\0(\0Ž\0O\0F\0´\0›\0À\0½\0Ï\0¨\0a\0¨\0Œ\x009\0®\0a\0¨\0Œ\0.\0\0®\0a\0a\0Œ\x009\0®\0a\0Œ\0.\0\0®\0a\0 \0e\0\0,\0G\0Œ\0;\0®\0Œ\0.\0\0®\0Ú\0%\0\0Ú\0!\0\0t\0ê\0z\0¸\0à\0,\0‡\0Ü\0%\0,\0¥\0–\0Q\0R\0p\0¨\0Ó\0\0ƒ\0p\0Ó\0\0ƒ\0¨\0Ó\0\0ƒ\0Ó\0\0ƒ\0h\0¨\0Ó\0\0ƒ\0h\0Ó\0\0ƒ\0€\0¨\0Ó\0\0ƒ\0€\0Ó\0\0ƒ\0p\0Þ\0—\0Ó\0É\0Þ\0—\0Ó\0É\0h\0Þ\0—\0Ó\0É\0€\0Þ\0—\0Ó\0É\0Þ\0—\0Ó\0É\0@\0w\0c\0p\0Þ\0—\0Ó\0É\0@\0w\0c\0Þ\0—\0Ó\0É\0@\0w\0c\0h\0Þ\0—\0Ó\0É\0@\0w\0c\0€\0Þ\0—\0Ó\0É\0@\0w\0c\0Þ\0—\0Ó\0É\0X\0c\0p\0Þ\0—\0Ó\0É\0X\0c\0Þ\0—\0Ó\0É\0X\0c\0h\0Þ\0—\0Ó\0É\0X\0c\0€\0Þ\0—\0Ó\0É\0X\0c\0Þ\0—\0Ó\0É\0Ø\0X\0c\0p\0Þ\0—\0Ó\0É\0Ø\0X\0c\0Þ\0—\0Ó\0É\0Ø\0X\0c\0h\0Þ\0—\0Ó\0É\0Ø\0X\0c\0€\0Þ\0—\0Ó\0É\0Ø\0X\0c\0Þ\0—\0Ó\0É\0À\0§\0Ÿ\0¨\0X\0Ø\0X\0#\0\'\0“\0Â\0\'\0G\0S\0Â\0\'\0I\0U\0B\0\'\x007\0–\0=\0R\0\'\x007\0Ž\0–\0?\0R\0Ú\0–\0=\0R\0F\0\'\x007\0–\0E\0R\0–\0=\0R\0i\0_\0i\0n\0i\0i\0Ü\0%\0¨\0Ó\0¨\0Ó\0À\0k\0"\0¨\0a\0–\0A\0R\0a\0 \0¨\0‹\0Ž\0C\0F\0e\0ª\0¨\0ª\0¨\0e\0V\0_\0‹\x002\0‹\0\0‹\0¨\0]\0È\0¨\x006\0¨\0Ü\0%\x006\0\0¨\0Ü\0%\0ž\0¨\0Ü\0%\0ž\0\0¨\0Ü\0%\0Ÿ\0Ÿ\0Y\0Í\0Í\0D\0W\0Í\0B\0W\0Ç\0Ç\0D\0U\0Ç\0Ç\0D\0S\0Ç\0B\0S\0Å\0Å\0D\0Q\0Å\0B\0Q\0½\0½\0Ú\0O\0µ\0µ\0D\0M\0µ\0B\0M\0«\0«\0Ú\0K\0•\0•\0D\0I\0•\0•\0D\0G\0•\0B\0G\0‰\0‰\0D\0E\0‰\0B\0E\0i\0i\0Ú\0C\0g\0g\0D\0A\0g\0B\0A\0[\0[\0D\0?\0[\0B\0?\0)\0)\0D\0=\0)\0B\0=\0%\0%\0Ú\0;\0!\0!\0Ú\x009\0\0\0D\x007\0\0B\x007\0\0\0D\x005\0\0B\x005\0\0\0Ú\x003\0\0\0D\x001\0\0B\x001\0µ\0µ\0D\0M\0µ\0B\0M\0\0\0D\x001\0\0B\x001\0º\x006\0&\x006\0¨\0Ü\0%\x006\0\0¨\0Ü\0%\0\0%\0%\0%\0n\0%\0Œ\0;\0®\0¨\x004\0%\0¨\0"\0¨\0À\0%\0"\0¨\0Œ\x009\0®\0À\0%\0"\0¨\0À\0%\0"\0¨\0Œ\x009\0®\0À\0%\0¨\0Ü\0%\0\0¨\0Ü\0%\0¨\0\0Ü\0%\0¨\0Œ\x009\0®\0\0Ü\0%\0¨\0Œ\0.\0\0®\0\0Ü\0%\0¢\0Ü\0%\0¨\0Ü\0%\0%\0\0\r\0ü\0\0Œ\x009\0®\0\r\0ü\0\0Œ\0.\0\0®\0\r\0ü\0\0@\0w\0\r\0ü\0\0@\0w\0Œ\x009\0®\0\r\0ü\0\0@\0w\0Œ\0.\0\0®\0\r\0ü\0\0X\0\r\0ü\0\0X\0Œ\x009\0®\0\r\0ü\0\0X\0Œ\0.\0\0®\0\r\0ü\0\0Ø\0X\0\r\0ü\0\0Ø\0X\0Œ\x009\0®\0\r\0ü\0\0Ø\0X\0Œ\0.\0\0®\0\r\0ü\0\0Ž\x003\0F\0\0u\0˜\0%\0T\0˜\0\0%\0T\0\0\v\0–\x005\0R\0¨\0]\0È\0¨\0\r\0^\0,\0ö\0\0ô\0\0p\0\0\0€\0\0ª\0¨\0Ó\0\0V\0\r\0\0\r\0–\0ª\0R\0–\0-\0R\0\\\0Z\0.'],[0,16,"\0\0\0\0\0\0\0\0\0\0\n\0\r\0\0\0\0\0\0\0\0\0\"\0&\0(\0,\x003\x007\0>\0D\0K\0Q\0R\0U\0X\0]\0a\0b\0c\0d\0e\0f\0g\0j\0k\0m\0n\0o\0r\0u\0x\0{\0~\0\0„\0‡\0Š\0\0\0“\0–\0™\0œ\0Ÿ\0¢\0¥\0¨\0«\0®\0±\0´\0·\0º\0½\0À\0Ã\0Ä\0Ç\0Ê\0Í\0Ð\0Ó\0Ö\0Ù\0Ü\0ß\0â\0å\0è\0ë\0î\0ñ\0ô\0÷\0ú\0ý\0\t\f!&'(),/258;>ADGJMPSVY\\_bcelnprtvx|€‚„‡Œ”˜šŸ¢¤¨¯±³¶·º½ÀÃÆÉÌÏÒÕØÛÞáäçêíðñóúüþ\0\n\r\"&(-026=?ADEFGHIJKMNOPQSTW\\abefimqsvwz|‚ƒ†ŠŽ“”—™Ÿ ¨ª­¯±³µ·¹»½¿ÁÅÇÈÐÒÕ×ÙÛÝßáãåçéíïñòôùÿ\0\t\r !$%&).27;AFKOTY_dhpx‰—ž¦­³»ÃÌÔÛÛÜÜÝÝÞÞßßàââãæêîô\0\t\n\v !$%'*,.0236:?CHILLMPSSTWWX[^^_beefiijmppqttuxxy|€ƒ††‡ŠŠ‹Ž‘‘’•˜˜™œŸŸ ££¤§§¨«®®¯²µµ¶¹¹º½ÀÁÄÇÈËÎÎÏÐÑÕÚÚÛÞáäçèìó÷þ\t #)05=FJQY^fortw{|}€„…‡‰‹‘”•—™œŸŸ ¡¢"]],PRr=[0,[0,32,"\0\0\0\0\0T\0d\0˜\0œ\0ˆ\0\0¤\0À\0”\0˜\0Œ\0À\0¼\0¼\0´\0Œ\0„\0„\0€\0|\0\0\0\b\0\0ü\0´\0˜\0”\0\0D\0H\0H\0˜\0”\0\0˜\0”\0˜\0„\0L\0H\0H\0¤\0 \0œ\0¤\0 \0¤\0¤\0¤\0\b\b\0\b\0Ì\0d\0d\0d\0Ü\0Ü\0è\0Ì\0\\\0X\0\\\0X\0\\\0Ä\0À\0Ä\0Ä\0\\\0\\\0\\\0ð\0ð\0Œ\0ˆ\0Œ\0Œ\0Œ\0À\0¼\0À\0Ð\0Ä\0°\0¬\0¨\0°\0¬\0¨\0°\0¬\0°\0°\0°\0È\0°\0°\b\0ä\0à\0ì\0ì\0Ø\0à\0¸\0D\0Ø\0„\0„\0€\0Ä\0ø\0„\0Ô\0È\0Ô\0È\0Ô\0È\08\0@\0<\0¸\0´\0@\0@\0@\0<\0<\0@\0<\0<\0¸\0¸\0D\0D\0P\0¸\0ä\0°\t\0¬\0¬\0¬\0¬\0¬\b\0¨\0¨\0¨\0À\0@\0<\0À\0¼\0@\0<\0¼\0Œ\0Œ\0Œ\0ˆ\0ˆ\0ˆ\0ˆ\0ˆ\0\\\0@\0<\0X\0X\0@\0<\0p\0l\0h\0`\0p\0l\0p\0p\0p\0p\0p\0p\b\0@\0<\0l\0l\0l\0l\0l\0@\0<\0`\0`\0@\0<\0h\0h\0h\0@\0<\0ä\0à\0Ü\0ä\0ä\0à\0à\0Ì\0Ì\0è\0d\0@\0<\0\b\0ô\0\b\0ô\0ô\0\0\0\0\0ô\0\0\0ü\0ø\0\0\0\0\0ü\0ü\0\0\0\0\b\b\0\b\b\0¤\0¤\0¤\b\0 \0 \0 \0 \0 \0œ\0œ\0œ\0H\0@\0<\0„\0„\0˜\0˜\0˜\0˜\b\0˜\t\0”\0”\0”\0”\0”\b\0\0\0\0t\0t\0t\0@\0<\0Ð\0x\0Ä\0x\0x\0@\0<\0ð\0ì\0ð\0|\0@\0<\0ð\0´\0´\0ü\0\b\0\0@\0<\0\0\0€\0|\0€\0œ\0°\0¬\0°\0¬\0ˆ\0°\0 \0¸\0¸\0p\0¨\0x\0t\0l\0t\0x\0t\0t\0x\0@\0<\0x\0€\0Œ\0Œ\0Œ\0ˆ\0„\0Œ\0Œ\0ˆ\0ˆ\0´\0¤\0¤\0|\0x\0x\0t\0|\0|\0d\0$\0d\0d\0h\0T\0T\0`\0\\\0X\0`\0`\0\\\0\\\0\0\0\0\0\0\0X\0X\0 \0,\0\\\0<\0<\0\f\0X\0X\0p\0\0|\0\0x\0\0|\0\0x\0\0|\0\0\0@\0<\0\0|\0\0\0\0x\0\0x\0\0T\0\0P\0\0T\0\0P\0\0T\0\0T\0\0T\0\0T\0@\0<\0\0T\0\0P\0@\0<\0\0P\0\0\0ü\0ø\0à\0\0\0$\0´\04\0(\0\b\0À\0p\0\0ì\0h\0d\0`\0œ\0”\0œ\0”\0œ\0”\0œ\0\b\0T\0L\0l\0P\0¨\0\b\0\b\0\0 \0\0 \0L\0L\0H\0@\0<\08\0ü\0ü\0ô\0ð\0ì\0è\0ä\0\0\\\0ô\0ð\0ì\0è\0ä\0\0\\\0\0ô\0ð\0ì\0è\0ä\0\0\\\0ì\0ì\0ì\0`\0\\\0`\0`\0`\0`\0\\\0\\\0\\\0œ\0T\0P\0L\0T\0P\0T\0T\0T\0T\0P\0P\0P\0L\0X\0ì\0ì\b\0¬\0\b\0\b\0\b\0\0D\0(\0$\0 \0\0D\0¼\0¸\0\b\0\0\0\0ü\0ø\0\0`\0\b\0\0\0\0ü\0ø\0\0`\0\0\0\0\0\0\0\0\0\0\0\0,\0\0(\0\0(\0\0(\0\0,\0\x000\0\0\b\0ø\0ø\0ø\0ø\0ø\0\0\0\0\0\0\0`\0\0`\0\0`\0\0\0Ø\0Ä\0À\0Ø\0Ä\0À\0À\0À\0À\0À\0Ø\0Ø\0Ø\0Ø\0Ä\0Ä\0Ä\0Ð\0´\0°\0°\0°\0°\0°\0Ð\0Ð\0Ð\0Ð\0´\0´\0´\0Ü\0Ì\0È\0È\0È\0È\0È\0Ü\0Ü\0Ü\0Ü\0Ì\0Ì\0Ì\0\0p\0\0p\0\0p\0\b\0À\0p\0À\0\0h\0À\0À\0p\0\0\0D\0H\0H\0H\0H\0H\0ð\0ì\0è\0ð\0ð\0ì\0ì\0Ü\0¤\0 \0¤\0\0L\0\0H\0\0L\0\0H\0\0H\0Ü\0Ü\0Ü\0ü\0ø\0\0t\0\0t\0\0Ô\0\0\f\0\0\f\0\0@\08\0\00\00\0\0\0¼\0¸\0°\0¬\0¨\0t\0p\0t\0|\0@\0<\0|\0|\0t\0t\0p\0p\0¨\0ô\0ð\0ô\0ð\0D\0D\0ä\0ä\0œ\0Œ\0ô\0ô\0è\0è\0È\0˜\0p\0\0\0\0h\0˜\0˜\0p\0\0X\0\0X\0\0X\0D\0\0\0\0\0$\0 \0$\0$\0 \0ì\0T\0P\0|\0x\0|\0è\0<\0è\0\0\0\0\0\f\0\0d\0\0\0\0\0\f\0\0d\0\0\0\0\0\f\0\0d\0\0\0\0\0\b\0\t\0\f\0\f\0\f\0\f\0\f\b\0\0\0\0\0\b\0\0d\0\0d\0\0d\0\0d\0H\0\0\0\0\0\0\0\0\0\b\0à\0à\0à\0à\0ä\0à\0à\0à\0,\0Ô\0\0\0\0\\\04\00\04\00\0@\0Ð\0Ì\0Ð\0Ì\0Ð\0\0\0\0\0X\0X\0X\0X\0Ð\0d\0`\0d\0d\0`\0\0\0ø\0ø\0,\0(\0(\0$\0 \0 \0 \0\0\0\f\0\b\0\0\0Ø\0Ø\0Ô\0¼\0¸\0ð\0¸\0¸\0¸\0¸\0Ô\0Ô\0Ô\0Ô\0ð\0¼\0¼\0¼\0\0l\0\0¨\0Ä\0”\0\0ˆ\0„\0€\0€\0Ì\0<\0t\0\0€\0(\0Ì\0ô\0ð\0ì\0è\0ä\0à\0Ü\0Ø\0Ô\0Ð\0Ì\0È\0Ä\0À\0¼\0¸\0´\0°\0¬\0¨\0\0\0\0\f\0\b\0\0\0\0\0ü\0\0ø\0\0ô\0\0ð\0\0ì\0\0è\0\0ä\0\0à\0\0Ü\0\0Ø\0\0Ô\0\0Ð\0\0Ì\0\0È\0\0Ä\0\0À\0\0¼\0\0¸\0\0´\0\0°\0\0¬\0\0Ü\0\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0Ü\0P\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0<\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\0<\08\04\00\0,\0(\0$\0 \0D\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0D\0@\0<\08\04\00\0,\0(\0$\0 \0@\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0@\0<\08\04\00\0,\0(\0$\0 \08\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\08\04\00\0,\0(\0$\0 \0$\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0$\0 \0X\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0T\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0`\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\\\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \04\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\04\00\0,\0(\0$\0 \0Œ\0Œ\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0L\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0„\0Œ\0ˆ\0„\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0l\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0(\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0(\0$\0 \00\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\00\0,\0(\0$\0 \0p\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0t\0Œ\0ˆ\0„\0€\0|\0x\0t\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0d\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0x\0Œ\0ˆ\0„\0€\0|\0x\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0|\0Œ\0ˆ\0„\0€\0|\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0h\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0,\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0,\0(\0$\0 \0ˆ\0ˆ\0H\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0€\0Œ\0ˆ\0„\0€\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0 \0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0 \0à\0È\0È\0¤\0\0„\0,\0 \08\0Ä\0Ä\0Ø\0Ø\0Ô\0¼\0¸\00\0\0ˆ\00\0´\0°\0¬\0¨\0¤\0 \0œ\0˜\0”\0\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0 \0 \0\0Œ\04\0Œ\0Œ\0”\0”\0\0\0ˆ\0ˆ\0¨\0¨\0¤\0¤\0°\0°\0¬\0¬\0„\0„\0p\0p\0œ\0œ\0x\0x\0€\0€\0t\0t\0|\0|\0´\0´\0l\0l\0˜\0˜\0à\0\0È\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0È\0Ì\0Ì\0\0Ð\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0Ð\0Ô\0Ô\0\0Ì\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0Ì\0Ð\0Ð\0\0Ä\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0Ä\0È\0È\0\0°\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0°\0\0ä\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0ä\0è\0è\0\0à\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0à\0ä\0ä\0\0ì\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0ì\0ð\0ð\0\0è\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0è\0ì\0ì\0\0À\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0À\0Ä\0Ä\0°\0°\0\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0\0Ø\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0Ø\0Ü\0Ü\0\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0\0ø\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0ø\0\0´\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0´\0¸\0¸\0\0¼\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0¼\0À\0À\0´\0´\0\0ü\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0ü\0\0\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0\0\0ð\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0ð\0\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0\b\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\b\0\0ô\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0ô\0\0¸\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0¸\0¼\0¼\0\0\0ô\0ô\0¬\0¬\0\0Ô\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0Ô\0Ø\0Ø\0\f\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\f\0\0¬\0Œ\0ˆ\0„\0€\0|\0x\0t\0p\0l\0h\0d\0`\0\\\0X\0T\0P\0L\0H\0D\0@\0<\08\04\00\0,\0(\0$\0 \0\0¬\0€\0€\0„\0ˆ\0ˆ\0”\0\0\0¤\0\0 \0\0 \0\0˜\0\0˜\0\0˜\0(\0$\0(\0(\0\0œ\0\0\0\0”\0\0\0\0\b\0\f\0\0\0,\0Ð\0X\0X\0X\04\00\04\04\0\\\0\0Ô\0|\0|\0D\0@\0D\0D\0x\0x\0T\0P\0T\0T\0ì\0\0\0\0D\0\0X\0p\0p\0˜\0”\0\0ˆ\0„\0€\0˜\0ˆ\0˜\0ˆ\0˜\0È\0\0\0\0h\0È\0\0\0\0h\0˜\0\0˜\0\0˜\0˜\0È\0\0\0\0h\0È\0\0\0\0h\0ô\0ð\0ì\0è\0ä\0ô\0ð\0ì\0è\0ä\0ô\0ð\0ì\0è\0ä\0ä\0ä\0ä\0ä\0ä\b\0ð\0ð\0ð\0ð\0ð\b\0ô\0ô\0ô\0ô\0è\0è\0è\0è\0è\b\0\b\0\0\0\0ü\0ø\0\b\0\0\0\0ü\0ø\0\b\0\b\0\b\0\b\0ü\0ü\0ü\0ü\0ü\0\0\0\0\0\f\0\0\0\0\0\f\0\0\0\0\0\f\0\0\0\0\0Ô\0¼\0¸\0\0h\0È\0”\0\0ˆ\0„\0€\0È\0\0È\b\0\08\04\00\08\08\04\04\04\0\0¼\0¸\0°\0¬\0¨\0¬\0°\0°\0¼\0¸\0¸\0ô\0ð\0ô\0ô\0¨\0¨\08\0@\0Ô\0\0\0t\0ü\0Ü\0\0H\0¤\0¤\0 \0 \0Ü\0D\0\0\0\0\0À\0¼\0¸\0°\0¬\0¨\0À\0°\0À\0°\0À\0\b\0À\0\0h\0\b\0À\0\0h\0\b\0À\0\0h\0\b\0À\0\0h\0À\0À\0\b\0¼\0¸\0°\0¬\0¨\0\b\0¸\0\b\b\0¸\0\0L\0\0H\0\0@\0\0L\0\0H\0\0@\0\0H\0\0@\0\0H\0\0@\0\0@\0\0@\0\0\0\0\0\0<\0\x004\0\x008\0\f\0\b\0\0\f\0\f\0\b\0\b\0\0`\0¼\0\0D\0¬\0¬\0\0\0\0\0\0\0\0ì\t\0\0\\\0\0\\\0\0\\\0\0\\\0ü\0ü\0@\0<\08\0@\0@\0\0$\0\0$\0\0$\0<\08\0<\0<\0L\0\0 \0\b\0\b\0œ\0T\0˜\0\0`\0`\0h\0h\0h\0h\0\f\0\b\0\0\f\0\f\0\b\0\b\0à\0Ü\0¼\0¸\0°\0¬\0¨\0d\0à\0d\0à\0d\0d\0à\0Ü\0¼\0¸\0°\0¬\0¨\0à\0à\0ì\0\0\b\0\b\0\b\0\b\0(\04\0$\0\0\0à\0\0\0ü\0ø\0\0\0\0\0ü\0ø\0ü\0ü\0\0x\0\f\0\f\0<\0<\0,\0 \0X\0X\0\0\0\0\b\0\0\\\0\\\0\\\0\\\0ü\0ø\0ü\0ü\0P\0L\0P\0P\0\0\b\0\0\f\0\0h\0d\0`\0T\0P\0T\0P\0T\0T\0T\0T\0T\0@\0<\0P\0P\0@\0<\0Ô\0Ð\0Ì\0Ô\0Ô\0Ð\0Ð\0h\0d\0`\0h\0¤\0h\0h\0h\0h\00\0,\00\00\00\0@\0<\00\0,\0,\0@\0<\0,\0¬\0¨\0¤\0¬\0¬\0¨\0¨\0h\b\0h\t\0 \0 \0@\0<\0 \0p\0l\0h\0p\0p\0l\0l\0d\0`\0d\0d\0Ð\0Ì\0Ð\0Ð\0Ð\0@\0<\0Ð\0Ì\0Ì\0@\0<\0Ì\0Ø\0Ô\0Ø\0Ø\0Ø\0@\0<\0Ø\0Ô\0Ô\0@\0<\0Ô\0d\0d\0d\b\0d\t\0d\n\0d\v\0d\f\0œ\0˜\0”\0œ\0œ\0˜\0˜\0`\0`\0`\0\0\f"],[0,16,'\0\0\0\0\0\0\0\0\0\0\b\0\t\0\n\0\v\0\f\0\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"\0$\0%\0&\0(\0)\0,\0.\0/\x000\x001\x004\x005\x006\x007\x008\x009\0:\0;\0=\0?\0@\0B\0C\0D\0E\0F\0G\0H\0I\0K\0L\0M\0N\0P\0Q\0S\0V\0Y\0[\0\\\0]\0^\0_\0`\0a\0b\0c\0d\0e\0f\0g\0h\0i\0k\0l\0m\0n\0o\0p\0r\0t\0v\0w\0{\0|\0\0€\0ƒ\0„\0…\0†\0‡\0ˆ\0‰\0Š\0‹\0Œ\0\0Ž\0\0\0‘\0’\0“\0–\0—\0š\0›\0œ\0\0ž\0Ÿ\0 \0¡\0¢\0£\0¦\0§\0ª\0®\0°\0±\0²\0³\0´\0µ\0¸\0¹\0º\0»\0¼\0¿\0À\0Ã\0Ä\0Å\0È\0Ë\0Ì\0Í\0Î\0Ï\0Ð\0Ñ\0Ò\0Õ\0×\0Ø\0Ù\0Ú\0Ý\0Þ\0ß\0â\0ã\0ä\0å\0æ\0ç\0è\0é\0ê\0ë\0ì\0í\0î\0ï\0ð\0ñ\0ò\0ó\0ô\0õ\0ö\0ù\0ú\0û\0ü\0ý\0þ\0ÿ\0\b\t\n\r"$%&(*+,-./014589<=>?BCDEFGHIMNOPQRSTUVYZ[\\]^_`abcdefghijlnptuvxz{|}~‚…ˆ‰Š‹ŒŽ’“”—™›žŸ ¡¢£¤¥¦§¨©ª«®¯°¶¼½ÃÄÅÆÈÉÊËÌÍÎÏÓÕÖרÙÚÛÜÝÞßàáâãäåæçèéëñ÷øùúûüþÿ\0\b\t\n\v\f\r !"%&\'()*+,-./03456789:;<=>?@AFGIKLMNOPQTUVWXY[\\^`abcdfghijlnopqrstu{}~‚ƒ„…†‡ˆŠŒŽ‘’“”•–›œžŸ ¡¢£¤¥¦¨©ª«¬®°±²³´ºÀÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèêëìíîïðñòôö÷ùûüýþÿ\0\b\t\n\v\f\r !"#$%&\'()*+,23456789ijkˆ‰¦§ÄÅâã\0<=Z[xy–—´µÒÓðñ,-JKhi†‡¤¥ÂÃàáþÿ:;XYZ[xy–—´µ¶·¸¹º»¼½¾¿ÀÄÅÆö÷øùúûüýþÿ\0\b\t\n\v\f\r =>?@]^_`}~€žŸ ½¾ÛÜÝÞûüýþ\b\b\b\b\b;\b<\b=\b>\b[\b\\\b]\b^\b_\b`\b}\b~\b›\bœ\b\bž\b»\b¼\bÙ\bÚ\b÷\bø\bù\bú\t\t\t\t\t\t\t9\t:\tW\tX\tu\tv\t“\t”\t±\t²\tÏ\tÐ\tí\tî\tï\tð\tñ\tò\tó\tô\tõ\tö\n\n\n\n\n3\n4\nQ\nR\nS\nT\nU\nV\nW\nX\nY\nZ\n[\n\\\n]\n^\n`\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\ns\nt\nu\nv\nw\nx\ny\nz\n|\n}\n~\n\n€\n‚\nƒ\n„\n…\n†\n‡\nˆ\n‰\nŠ\n‹\nŒ\n’\n”\n–\n—\nš\n\nŸ\n¡\n¢\n£\n¦\n©\n®\n³\n¸\n¹\nº\n»\n¼\n½\n¾\n¿\nÀ\nÁ\nÂ\nÃ\nÄ\nÅ\nÆ\nÇ\nÈ\nÉ\nÊ\nË\nÐ\nÕ\nÖ\n×\nØ\nÙ\nÚ\nÛ\nÜ\nÝ\nÞ\nã\nè\ní\nî\nï\nò\nó\nù\nû\ný\v\0\v\v\v\v\v\v\v\f\v\r\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v \v!\v"\v#\v$\v%\v\'\v(\v)\v/\v1\v3\v4\v7\v:\v=\v@\vA\vB\vH\vJ\vL\vO\vR\vT\vV\vW\vX\vY\vZ\v[\v\\\v]\v`\va\vb\vc\vd\ve\vf\vg\vh\vi\vl\vm\vn\vo\vp\vq\vr\vs\vt\vu\vv\vw\vz\v{\v|\v}\v~\v\v\v‚\vƒ\v„\v…\v†\v‡\vˆ\v‹\vŒ\v\vŽ\v\v\v‘\v”\v•\v–\v—\v˜\v \v¢\v¤\v¥\v¬\v­\v®\v¯\v°\v±\v²\v³\v´\vµ\v¶\v·\v¸\v¹\vº\v½\v¾\v¿\vÁ\vÂ\vÃ\vÄ\vÅ\vÆ\vÇ\vÈ\vÉ\vÊ\vË\vÌ\vÍ\vÎ\vÏ\vÐ\vÑ\vÒ\vÔ\vÕ\vÖ\vØ\vÙ\vÚ\vÛ\vÜ\vß\vá\vã\vä\vå\væ\vç\vê\vë\vî\vñ\vò\vó\vô\võ\vø\vù\vú\vû\vü\vý\vþ\f\0\f\f\f\f\f\f\b\f\v\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f \f"\f#\f$\f&\f\'\f(\f)\f,\f-\f.\f1\f3\f4\f5\f6\f9\f:\f;\f>\f?\f@\fA\fB\fC\fD\fE\fH\fI\fJ\fK\fL\fM\fN\fO\fP']],URr=[0,aD,'\0\0€\0\0\0\0\0\0 \0\0\0\0\0\0,{°0&J=&w¯c}\r€/vÉG¤ÎõãÂ#Ìo¡€\0\0\0\0\0\0\0\0\0€\0@\0\0\0\0\0\0 \0\0À\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\b\0\0\0Œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"0\0\0\0\0` \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0@\0 c\0\0\0\0\b\0\0d\fa \0\0 \0À@\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0ÈÀ@\0\0@€€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0€\0 @ Æ\0\0\0\f\0\n\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0d\f` \0\0 \0À@\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\b\0 \0\0\t\0D\0\0!\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À»d£Ògxñàæ7ÐÀ\0€\0\0\0\0\0\0\0\0\0\0\0\0\0^ì\b\t’IãǀG˜ßC`\vÿ¡>Qé3¼xø\bóèl{° &J=&wc}\r€/vÉG¤ÎñãÀ#Ìo¡€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0 \f€#\0\0€\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b$\0\0@\0À€\0\b@\0\0\0\0\0H\0\0\b\0\0\0 €\0\0\0\t\0@\0\0!\0\0\0\0\0\0 \b€@@\0 \0\0\0@\0\0\0\0\0\0\0\b\0\0\0\0\0\0H\0\0€"\0\0€€\t\0\0@\0@0 \0\0€\0 \0\0\0\0\0\0\b\0\0\0\0\0\0\v\0^ì\f\t’IëǀG˜ßC`\v݁2Qé3½xðˆóè`\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0` \0\0\0\0A\0\0\0€\0ˆ\0\0B\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0‚\0\0\0\0$\0\b\b\0\0„\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À)\0\0DÐ$`0 \0Ø\0E \0\b:„\0`B\0\0\b \0\0@€€€\0\b@\0\0\0\0\0È\b\0\0\0\0€\0\0\0\t\0@\0\0\0!\0\0\0\0\0\0\0\0\0\0\0€\0\0\0\0\0\0\0\0‚\0\0\0$\b\b\0\0„\0\0\0@\0\0 € \0€\0À»d£Ògxñàæ7ÐØw`@L”zLç<|Æú\0Jì\0\t@™ÃÀG\bßC`\t]€"@èxp\táèl{° &J=&w>c}\f\0\b\0\0\0\0\0\0\0\0@\0\0\0\0\x000\0Š@\0 t\t\f(\0@„\x006\0H\0$!…\0€\0\b\0\0\0@ \0\0÷`@L”zLï<<Æú\0^ì\b\t’IœãǀO˜ßC\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0  $P€\0@\0€/þ„ùG¤Îñãà#Ìo¡°îÀ€™(ô™Þ",'"text"'],B8r=[0,gg,IK],j8r=[0,".",".1"],k8r=[0,"","'c'"],p8r=[0,"",lf],m8r=ul,d8r=[0,mt,Oe],_8r=[0,"",Xg],h8r=ce,x8r=ei,y8r=jO,w8r=Us,g8r=[0,"",kQ],q8r=ul,I8r=ce,D8r=IA,E8r=ei,N8r=jO,T8r=Us,F8r=IA,M8r=IA,P8r=Uy,U8r=Hx,G8r=vk,$8r=vk,K8r=MU,O8r=rt,R8r=DK,Q8r=Pk,C8r=bI,H8r=bI,V8r=Tn,L8r=[0,mt,Oe],z8r=Uy,S8r=[0,"?",h$],Z8r=[0,"?",vx],W8r=[0,"=?","=?"],X8r=[0,"",Xg],J8r=[0,"",hy],Y8r=Hx,r9r=[0,"",bn],e9r=vk,n9r=[0,"","f(x : Int)"],t9r=[0,"",Xg],a9r=[0,"",bn],u9r=Jp,f9r=MU,i9r=rt,v9r=Jp,c9r=DK,A9r=[0,"","var x : Int = 0"],o9r=Pk,s9r=bI,b9r=[0,"","= {}"],l9r=Tn,B9r=[0,"",Xg],j9r=[0,_U,_U],k9r=[0,Vs,0],p9r=py,m9r=Wy,d9r=rI,_9r=pl,h9r=Wy,x9r=ux,y9r=Wy,w9r=zk,g9r=Wy,q9r=[0,"mo_frontend/error_reporting.ml",11,19],I9r=[0,xE],D9r=[1,[0,Ff,f$]],E9r=[2,gg],N9r=[3,f$],T9r=[4,xN],F9r=[5,Ff],M9r=[6,0],P9r=[7,0],U9r=[0,iN,97,8],G9r=[0,iN,T$,8],$9r=[0,iN,xe,21],K9r=[0,iN,82,4],O9r=[0,iN,71,4],R9r=[0,wy,49,9],Q9r=[0,wy,uF,13],C9r=[0,[11,Uf,[2,0,0]],"unexpected %s"],H9r=[0,[11,Uf,[2,0,[11,", expected one of token or :\n ",[2,0,0]]]],"unexpected %s, expected one of token or :\n %s"],V9r=[0,[11,Uf,[2,0,[11,rR,[2,0,0]]]],rg],L9r=[0,[11,Uf,[2,0,[11," in position marked . of partially parsed item(s):\n",[2,0,0]]]],"unexpected %s in position marked . of partially parsed item(s):\n%s"],z9r=[0,[11,Uf,[2,0,[11,rR,[2,0,0]]]],rg],S9r=PM,Z9r=JM,W9r=aU,X9r=aU,J9r=Wy,Y9r=Wy,rre=Wy,ere=aU,nre=[0,[11,"cannot use ",[2,0,[11," before ",[2,0,[11," has been defined",0]]]]],"cannot use %s before %s has been defined"],tre=[0,0],are=[0,0],ure=[0,15],fre=[0,16],ire=[0,Ep,93,20],vre=[0,15],cre=[0,16],Are=[0,Ep,bk,16],ore=[0,Ep,FT,16],sre=[0,Ep,Je,15],bre=[0,Ep,WE,27],lre=[0,14],Bre=[0,Ep,Qw,14],jre=[0,Ep,FN,13],kre=[0,1,0],pre=[0,1,0],mre=[0,Ep,FF,15],dre=[0,Ep,Lk,11],_re=[0,14],hre=[0,12],xre=[0,0],yre=[0,1],wre=[0,2],gre=[0,3],qre=[0,4],Ire=[0,5],Dre=[0,6],Ere=[0,7],Nre=[0,8],Tre=[0,9],Fre=[0,11],Mre=[0,10],Pre=[0,3],Ure=[0,13],Gre=[0,Ep,86,15],$re=[0,Ep,57,35],Kre=[0,[2,0,[11,k,[4,0,0,0,[12,95,[4,0,0,0,0]]]]],"%s__%d_%d"],Ore=[0,[2,0,[11,k,[4,0,0,0,0]]],"%s__%d"],Rre=[0,[2,0,[12,95,[4,0,0,0,0]]],"%s_%d"],Qre=[0,Ep,63,11],Cre=[2,16],Hre=[2,18],Vre=[0,FR,85,12],Lre=[1,0,2],zre=cp,Sre=[7,0],Zre=[0,FR,Ih,14],Wre=cp,Xre=[0,FR,A$,15],Jre=[0,FR,uw,14],Yre=[0,FR,WP,11],ree=[0,1,0],eee=[0,0,1],nee=[0,2,1],tee=[0,1,1],aee=[0,FR,34,9],uee=[2,2],fee=[2,3],iee=[2,4],vee=[2,5],cee=[2,6],Aee=[2,7],oee=[2,8],see=[2,9],bee=[2,10],lee=[2,11],Bee=[2,13],jee=[2,12],kee=[2,1],pee=[2,15],mee=[2,0],dee=[0,[11,My,0],My],_ee=[0,wg,726,17],hee=[0,[11,nm,[2,0,[11,pA,0]]],GO],xee=Ds,yee=[0,[2,0,0],aM],wee=[0,wg,574,17],gee=[0,wg,582,17],qee=[0,wg,568,17],Iee=[0,wg,584,13],Dee=[0,wg,540,82],Eee=[0,wg,529,13],Nee=zI,Tee=xk,Fee=[0,[11,De,0],De],Mee=[0,[2,0,0],aM],Pee=[0,[11,Kt,0],Kt],Uee=[0,[11,"could not parse ",[3,0,[11," as an actor reference: ",[2,0,0]]]],"could not parse %S as an actor reference: %s"],Gee=[0,[2,0,0],aM],$ee=[0,[11,AQ,0],AQ],Kee=zI,Oee=[3,1,0,0],Ree=[0,wg,753,4],Qee=[0,wg,Lx,20],Cee=HU,Hee=[0,[11,NM,0],NM],Vee=[0,[11,k$,0],k$],Lee=[2,16],zee=[0,wg,yh,8],See=[0,[11,"switch value ",[2,0,[11," does not match any case",0]]],"switch value %s does not match any case"],Zee=[0,wg,897,19],Wee=[0,wg,nE,11],Xee=[0,wg,943,9],Jee=[0,[11,"context value ",[2,0,[11," does not match context pattern",0]]],"context value %s does not match context pattern"],Yee=[0,wg,Td,4],rne=[0,wg,1046,56],ene=[0,[11,nm,[2,0,[11,pA,0]]],GO],nne=[0,[11,Ui,0],Ui],tne=[0,[11,"<= ",[2,0,0]],Ft],ane=[0,[2,0,[2,0,0]],"%s%s"],une=WI,fne=[0,[11,"argument value ",[2,0,[11," does not match parameter list",0]]],"argument value %s does not match parameter list"],ine=tq,vne=[0,[11,Y,0],Y],cne=xO,Ane=[0,wg,1190,9],one=[0,[11,nK,0],nK],sne=[0,[11,"cancelled: ",[2,0,[12,10,0]]],"cancelled: %s\n"],bne=[0,[11,_R,[2,0,[11,rU,[2,0,[11," cannot handle non-tuple value ",[2,0,0]]]]]],"call %s: calling convention %s cannot handle non-tuple value %s"],lne=[0,[11,_R,[2,0,[11,rU,[2,0,[11," got tuple of wrong length ",[2,0,0]]]]]],"call %s: calling convention %s got tuple of wrong length %s"],Bne=[0,[11,"call_conv mismatch: function ",[2,0,[11,Ka,[2,0,[11," expecting ",[2,0,[11,", found ",[2,0,0]]]]]]]],"call_conv mismatch: function %s of type %s expecting %s, found %s"],jne=Ds,kne=Ds,pne=[0,[11,Is,0],Is],mne=Ds,dne=Ds,_ne=Ds,hne=[15,0],xne=[0,[11,ne,0],ne],yne=[0,[11,ne,0],ne],wne=[0,wg,wf,16],gne=[0,[11,"actorfield: ",[2,0,[12,32,[2,0,0]]]],"actorfield: %s %s"],qne=[0,[11,fe,[2,0,[12,32,[2,0,[2,0,0]]]]],"<- await%s %s%s"],Ine=[0,[11,fe,[2,0,[12,32,[2,0,[11," threw ",[2,0,0]]]]]],"<- await%s %s threw %s"],Dne=rr,Ene=[0,[11,"=> await",[2,0,[12,32,[2,0,0]]]],"=> await%s %s"],Nne=[0,[11,"<= ",[2,0,0]],Ft],Tne=[0,[11,"<- async ",[2,0,0]],"<- async %s"],Fne=[0,[11,"-> async ",[2,0,0]],"-> async %s"],Mne=Ci,Pne=[0,wg,dA,9],Une=[0,[2,0,[11,": execution error, ",[2,0,[12,10,0]]]],"%s: execution error, %s\n"],Gne=[0,[2,0,[11,KE,[2,0,[12,10,0]]]],"%s = %s\n"],$ne=[0,[10,0],"%!"],Kne=[0,[2,0,[11,": internal error, ",[2,0,[12,10,0]]]],"%s: internal error, %s\n"],One=[0,[11,ad,0],ad],Rne=[0,[12,10,0],bu],Qne=[0,[2,0,0],aM],Cne=[0,[10,0],"%!"],Hne=[0,[2,0,[2,0,[12,10,[10,0]]]],"%s%s\n%!"],Vne=[0,[11,'Actor "',[2,0,[11,'" has no method "',[2,0,[12,34,0]]]]],'Actor "%s" has no method "%s"'],Lne=[0,[11,'Unknown actor "',[2,0,[12,34,0]]],'Unknown actor "%s"'],zne=Wy,Sne=[0,[11,"unbound identifier ",[2,0,[11," in domain ",[2,0,0]]]],"unbound identifier %s in domain %s"],Zne=[0,1,1,1,1,1],Wne=[0,0,1],Xne=[0,1,0],Jne=[0,"ir_def/ir_effect.ml",os,22],Yne=[0,iu,823,19],rte=el,ete=el,nte=el,tte=[0,iu,715,9],ate=[0,iu,708,8],ute=bU,fte=bU,ite=[0,iu,669,9],vte=[0,iu,634,2],cte=[0,iu,633,11],Ate=Vt,ote=[0,iu,606,11],ste=jc,bte=[0,iu,550,2],lte=[0,iu,545,2],Bte=[0,iu,496,2],jte=[1,0],kte=[2,0],pte=[2,0],mte=[0,iu,cc,11],dte=[0,iu,IR,11],_te=[0,iu,ER,9],hte=[0,iu,oj,9],xte=[0,iu,xm,11],yte=[0,[2,0,[4,3,0,0,0]],"%s%i"],wte=[0,[12,36,[2,0,[12,47,[4,3,0,0,0]]]],"$%s/%i"],gte=[0,"ir_def/rename.ml",xm,4],qte=[0,"ir_def/subst_var.ml",81,4],Ite=Zv,Dte=ZU,Ete=re,Nte=dO,Tte=qG,Fte=Ls,Mte=Rb,Pte=CT,Ute=Dd,Gte=ct,$te=wP,Kte=iy,Ote=Dv,Rte=[0,bt],Qte=Gt,Cte=Gt,Hte=aQ,Vte=sB,Lte=[0,"TupPrim"],zte=[0,"OptPrim"],Ste=[0,"IdxPrim"],Zte=[0,"IdxBlobPrim"],Wte=[0,"RetPrim"],Xte=[0,"AssertPrim"],Jte=[0,"ThrowPrim"],Yte=[0,"DecodeUtf8"],rae=[0,"EncodeUtf8"],eae=[0,"BlobOfIcUrl"],nae=[0,"IcUrlOfBlob"],tae=[0,"SystemTimePrim"],aae=[0,"NextArrayOffset"],uae=[0,"EqArrayOffset"],fae=[0,"DerefArrayOffset"],iae=[0,"GetLastArrayOffset"],vae=[0,"SystemCyclesAddPrim"],cae=[0,"SystemCyclesAcceptPrim"],Aae=[0,"SystemCyclesAvailablePrim"],oae=[0,"SystemCyclesBalancePrim"],sae=[0,"SystemCyclesRefundedPrim"],bae=[0,"SystemCyclesBurnPrim"],lae=[0,"SystemTimeoutSetPrim"],Bae=[0,"SetCertifiedData"],jae=[0,"GetCertificate"],kae=[0,"ICPerformGC"],pae=[0,"ICRejectPrim"],mae=[0,"ICCallerPrim"],dae=[0,"ICCallPrim"],_ae=[0,"ICCallRawPrim"],hae=[0,"ICMethodNamePrim"],xae=[0,"ICReplyDeadlinePrim"],yae=[0,"ICArgDataPrim"],wae=Bt,gae=[0,"AwaitPrim?"],qae=[0,"AwaitPrim"],Iae=[0,"AwaitPrim*"],Dae=[0,a$],Eae=[0,nM],Nae=[0,pN],Tae=DO,Fae=su,Mae=H$,Pae=fr,Uae=aP,Gae=qA,$ae=Fd,Kae=[0,mD],Oae=bn,Rae=ID,Qae=un,Cae=Mt,Hae=Ug,Vae=Y$,Lae=qe,zae=Sl,Sae=_K,Zae=K,Wae=kN,Xae=Jy,Jae=Dr,Yae=wD,rue=Om,eue=bE,nue=ah,tue=[0,[3,0,0],"%S"],aue=gp,uue=Ig,fue=nU,iue=cT,vue=ph,cue=ph,Aue=[0,[11,Mx,0],Mx],oue=[0,[11,"free type variable ",[2,0,[11,", index ",[4,3,0,0,0]]]],"free type variable %s, index %i"],sue=[0,[11,"free type constructor ",[2,0,[12,32,0]]],"free type constructor %s "],bue=Mo,lue=[0,[11,"object type's fields are not distinct and sorted ",[2,0,0]],"object type's fields are not distinct and sorted %s"],Bue=Fj,jue=[0,[11,"variant type's fields are not distinct and sorted ",[2,0,0]],"variant type's fields are not distinct and sorted %s"],kue=[0,1],pue=[0,[11,"one-shot function cannot have non-unit return types:\n ",[2,0,0]],"one-shot function cannot have non-unit return types:\n %s"],mue=[0,[11,ho,[2,0,0]],dh],due=[0,[11,Kc,[2,0,0]],qs],_ue=[0,[11,"replying function cannot be local:\n ",[2,0,0]],"replying function cannot be local:\n %s"],hue=[0,[11,Kc,[2,0,0]],qs],xue=[0,[11,ho,[2,0,0]],dh],yue=[0,[11,"unexpected T.Mut ",[2,0,0]],"unexpected T.Mut %s"],wue=[0,[11,fm,[2,0,[11," must have shared function type, found ",[2,0,0]]]],"actor field %s must have shared function type, found %s"],gue=Do,que=[0,[11,sg,[2,0,[11,ok,[2,0,0]]]],cE],Iue=[0,SF,CK,56],Due=[0,[11,vp,0],vp],Eue=[0,[11,Tt,0],Tt],Nue=Dv,Tue=iy,Fue=[0,[11,"const ",[2,0,[11," with non-const variable ",[2,0,0]]]],"const %s with non-const variable %s"],Mue=[0,[11,"IR has aliasing (or Check_ir visits nodes twice):\n",[2,0,0]],"IR has aliasing (or Check_ir visits nodes twice):\n%s"],Pue=[2,3],Uue=[0,SF,557,21],Gue=[0,[11,Ol,0],Ol],$ue=[0,[11,sm,[2,0,0]],ue],Kue=[0,[11,l,[2,0,0]],yF],Oue=[0,[11,l,[2,0,0]],yF],Rue=[0,[11,"expected tuple type, but expression produces type\n ",[2,0,0]],"expected tuple type, but expression produces type\n %s"],Que=[0,[11,Q_,[21,1,[11," is out of bounds for type\n ",[2,0,0]]]],"tuple projection %n is out of bounds for type\n %s"],Cue=[0,[11,TR,[2,0,0]],"unbound label %s"],Hue=[0,[11,Hj,0],Hj],Vue=[0,[11,"expected async type, but expression has type\n ",[2,0,0]],"expected async type, but expression has type\n %s"],Lue=pj,zue=[0,[11,"ActorOfIdBlob cast to actor object type, not\n ",[2,0,0]],"ActorOfIdBlob cast to actor object type, not\n %s"],Sue=[0,[11,"CPSAwait expect async arg, found ",[2,0,0]],"CPSAwait expect async arg, found %s"],Zue=[0,[11,wt,0],wt],Wue=[0,[11,Gf,0],Gf],Xue=[0,[11,Rq,0],Rq],Jue=[0,[11,wx,[2,0,0]],WN],Yue=NU,rfe=[0,[11,yo,[2,0,[11,yg,[2,0,0]]]],Cq],efe=[0,[11,sm,[2,0,0]],ue],nfe=[0,[11,"PrimE ",[2,0,[11," does not work with ",[4,0,0,0,[11," arguments",0]]]]],"PrimE %s does not work with %d arguments"],tfe=[0,[11,zB,[2,0,0]],FU],afe=[0,SF,435,7],ufe=[0,SF,432,7],ffe=[0,[11,Xa,0],Xa],ife=[0,SF,790,4],vfe=[0,[11,"expected mutable ",[2,0,0]],"expected mutable %s"],cfe=[0,[11,zB,[2,0,0]],FU],Afe=TN,ofe=TN,sfe=ZU,bfe=[0,[11,uT,0],uT],lfe=[0,[11,zB,[2,0,0]],FU],Bfe=[0,[11,sm,[2,0,0]],ue],jfe=[0,[11,wx,[2,0,0]],WN],kfe=NU,pfe=[0,[11,yo,[2,0,[11,yg,[2,0,0]]]],Cq],mfe=[0,[11,h,[2,0,[11," in argument list",0]]],"duplicate binding for %s in argument list"],dfe=[0,[11,h,[2,0,[11,eg,0]]],"duplicate binding for %s in block"],_fe=[0,SF,wq,2],hfe=[6,0],xfe=[0,[11,tT,0],tT],yfe=[0,[11,h,[2,0,[11,iT,0]]],jx],wfe=[0,[11,"cannot match mutable field ",[2,0,0]],"cannot match mutable field %s"],gfe=[0,[11,"field typing for ",[2,0,[11," not found",0]]],"field typing for %s not found"],qfe=[0,SF,Sn,2],Ife=[0,SF,1150,9],Dfe=OP,Efe=OP,Nfe=[0,[11,FK,[2,0,[11,":\n",0]]],"Ill-typed intermediate code after %s:\n"],Tfe=[0,[2,0,0],aM],Ffe=[0,[2,0,0],aM],Mfe=[0,[2,0,0],aM],Pfe=[0,[11,FK,[2,0,[11," (use -v to see dumped IR):\n",0]]],"Ill-typed intermediate code after %s (use -v to see dumped IR):\n"],Ufe=[0,[2,0,0],aM],Gfe=[0,[2,0,0],aM],$fe=TN,Kfe=[0,[11,Ta,[2,0,[11,vr,[2,0,[11,yI,[2,0,[11," type have colliding hashes",0]]]]]]],"field names %s and %s in %s type have colliding hashes"],Ofe=[0,[11,"message argument is not concrete:\n ",[2,0,0]],"message argument is not concrete:\n %s"],Rfe=[0,[11,"message argument is not sharable:\n ",[2,0,0]],"message argument is not sharable:\n %s"],Qfe=[0,[11,"subtype violation:\n ",[2,0,[11,aU,[2,0,[12,10,0]]]]],"subtype violation:\n %s\n %s\n"],Cfe=[0,[2,0,0],aM],Hfe=[0,0],Vfe=[0,0],Lfe=[0,0],zfe=HB,Sfe=[0,SF,26,2],Zfe=[20,Uh],Wfe=[0,H,Ux,11],Xfe=zI,Jfe=jc,Yfe=zI,rie=[20,Au],eie=[20,Dx],nie=[20,Kx],tie=vu,aie=[0,H,gI,11],uie=Pf,fie=[0,H,Ek,11],iie=[0,H,MB,4],vie=[0,[0,20,0]],cie=[0,H,225,4],Aie=[0,[0,19,0]],oie=[0,H,Rn,4],sie=[0,[0,18,0]],bie=[0,H,Tq,11],lie=[0,[0,27,0]],Bie=[0,H,gn,12],jie=[11,0],kie=[0,H,RP,4],pie=[0,[0,11,0]],mie=[0,H,204,11],die=[0,H,Ok,4],_ie=[0,[0,24,0]],hie=[0,H,210,11],xie=[11,0],yie=[0,H,Nd,4],wie=[0,[0,31,0]],gie=[0,H,th,30],qie=[0,H,335,23],Iie=[0,[11,"Import expression found in unit body: ",[2,0,0]],"Import expression found in unit body: %s"],Die=[0,H,sN,4],Eie=Em,Nie=Em,Tie=[0,0,0],Fie=[0,H,442,11],Mie=se,Pie=el,Uie=[0,H,UK,26],Gie=[0,H,eN,11],$ie=[0,H,536,25],Kie=[0,0,0],Oie=WI,Rie=sP,Qie=de,Cie=de,Hie=sP,Vie=WI,Lie=gt,zie=[20,Uh],Sie=[20,Uh],Zie=de,Wie=sP,Xie=WI,Jie=[0,0,0],Yie=i,rve=It,eve=[1,0,0],nve=Bb,tve=i,ave=WI,uve=i,fve=[20,kP],ive=[0,0],vve=It,cve=[1,0,0],Ave=Bb,ove=xG,sve=mb,bve=Nt,lve=jf,Bve=[0,[2,0,[11," force",0]],"%s force"],jve=Kp,kve=pk,pve=ZF,mve=DI,dve=mP,_ve=Eh,hve=eb,xve=_o,yve=xl,wve=rT,gve=gc,qve=YD,Ive=du,Dve=$n,Eve=Mv,Nve=bg,Tve=ao,Fve=oa,Mve=Qj,Pve=pe,Uve=hP,Gve=Ya,$ve=Rf,Kve=R,Ove=BU,Rve=zj,Qve=s_,Cve=WI,Hve=[20,Uh],Vve=[20,kP],Lve=[0,0],zve=[0,H,685,9],Sve=[0,H,693,9],Zve=[0,H,697,14],Wve=Vt,Xve=It,Jve=[1,0,0],Yve=Bb,rce=WI,ece=[20,kP],nce=[20,Uh],tce=[0,0],ace=[0,0,0,0],uce=[0,H,732,18],fce=jc,ice=lp,vce=[0,[11,cw,[2,0,[11,Vx,[2,0,[11,"` expected but not found",0]]]]],"stable variable `%s` of type `%s` expected but not found"],cce=[20,Uh],Ace=[0,[11,"migration ",[2,0,[11,": field `",[2,0,[11,"` expected but not found in state",0]]]]],"migration %s: field `%s` expected but not found in state"],oce=[20,Uh],sce=ww,bce=Wa,lce=jr,Bce=Cn,jce=ww,kce=[0,H,808,6],pce=[0,1],mce=jc,dce=Wa,_ce=jr,hce=rO,xce=[20,Uh],yce=[20,ba],wce=rO,gce=[20,Uh],qce=jc,Ice=zl,Dce=ve,Ece=bc,Nce=Cv,Tce=fp,Fce=[0,[11,cw,[2,0,[11,Vx,[2,0,[11,qd,0]]]]],Jx],Mce=[20,Uh],Pce=[0,[11,cw,[2,0,[11,Vx,[2,0,[11,qd,0]]]]],Jx],Uce=[20,Uh],Gce=[0,H,1063,4],$ce=[0,H,1045,30],Kce=[0,0,0,0],Oce=[0,0,0,0],Rce=[0,H,1094,4],Qce=[0,H,1104,4],Cce=[0,H,1131,26],Hce=[0,H,1151,11],Vce=[0,xF,1,0],Lce=[0,H,1180,14],zce=[0,[2,3],0],Sce=[0,H,1192,12],Zce=[2,3],Wce=[0,H,1202,12],Xce=vx,Jce=[0,H,1265,29],Yce=[0,H,1272,8],rAe=[0,H,1274,13],eAe=[0,H,1342,18],nAe=[0,H,1467,13],tAe=WI,aAe=WI,uAe=Vt,fAe=Vt,iAe=[0,H,1389,31],vAe=[0,H,1357,14],cAe=[0,H,1405,36],AAe=[0,H,1416,6],oAe=Vt,sAe=Cn,bAe=[0,H,1475,2],lAe=[8,0,0,0,[0,[2,15],0],[0,[2,16],0]],BAe=k$,jAe=[2,16],kAe=[0,H,1494,9],pAe=[20,Uh],mAe=tq,dAe=OU,_Ae=[0,H,1653,2],hAe=[0,H,1664,13],xAe=[0,H,1673,13],yAe=sw,wAe=xO,gAe=tq,qAe=OU,IAe=[0,H,1630,11],DAe=[0,H,1604,8],EAe=[0,H,1621,11],NAe=[0,H,1609,13],TAe=[0,H,1581,11],FAe=Vt,MAe=pp,PAe=[0,H,1525,41],UAe=[0,H,1513,11],GAe=[0,H,1523,11],$Ae=sw,KAe=tq,OAe=OU,RAe=xO,QAe=[20,Kp],CAe=[20,Kp],HAe=[20,RO],VAe=[20,Kp],LAe=[11,0],zAe=xq,SAe=[0,1,0],ZAe=[0,1,0],WAe=[0,1,0],XAe=hF,JAe=[0,"ir_passes/tailcall.ml",dD,17],YAe=so,roe=so,eoe=[0,up,to,2],noe=rm,toe=Yp,aoe=EF,uoe=Vs,foe=py,ioe=aI,voe=nh,coe=b,Aoe=[20,NO],ooe=j$,soe=[0,up,Rn,9],boe=[0,[5,[10,[0,qy,0]]],0],loe=[0,qy,0],Boe=[0,[0,qy,1,0],0],joe=[0,[5,[0,qy,0]],0],koe=[0,qy,0],poe=[0,[0,qy,1,0],0],moe=[0,[0,qy,0],0],doe=[0,qy,0],_oe=[0,[0,qy,1,0],0],hoe=[0,[6,[0,qy,0]],0],xoe=[0,qy,0],yoe=[0,[0,qy,1,0],0],woe=[1,0,2],goe=[0,"ir_passes/erase_typ_field.ml",To,21],qoe=so,Ioe=so,Doe=[0,Ic,th,2],Eoe=[0,Ic,aD,17],Noe=[0,[5,[0,qy,0]],[0,[5,[0,qy,0]],0]],Toe=[0,qy,0],Foe=[0,[0,qy,1,0],0],Moe=so,Poe=[0,[11,"Unbound var: ",[2,0,[12,10,0]]],"Unbound var: %s\n"],Uoe=[0,gd,ZA,9],Goe=[0,gd,ZN,2],$oe=[0,gd,Po,16],Koe=[0,gd,EM,16],Ooe=[0,gd,TE,4],Roe=[0,gd,Et,5],Qoe=[0,gd,gI,4],Coe=[0,gd,Sb,4],Hoe=[0,gd,_b,19],Voe=[0,gd,GI,14],Loe=[0,gd,VO,4],zoe=jc,Soe=[0,gd,Xu,4],Zoe=jc,Woe=F$,Xoe=jc,Joe=[0,gd,xn,4],Yoe=[0,gd,$A,14],rse=jc,ese=KB,nse=[0,gd,bR,4],tse=[0,gd,gf,70],ase=[0,gd,Qr,4],use=[0,gd,kl,13],fse=[0,gd,Pv,13],ise=[0,gd,tc,13],vse=[0,gd,fc,13],cse=[0,gd,OG,13],Ase=[0,gd,oi,4],ose=[0,gd,450,13],sse=[0,gd,xb,19],bse=[0,gd,bB,4],lse=[0,gd,527,30],Bse=jc,jse=[0,gd,597,4],kse=[0,gd,598,4],pse=[0,gd,621,4],mse=[0,gd,622,4],dse=so,_se=eE,hse=KB,xse=eE,yse=KB,wse=[20,Jg],gse=[0,gd,76,18],qse=[0,gd,66,11],Ise=jc,Dse=jc,Ese=[0,gd,24,4],Nse=TP,Tse=ry,Fse=[0,KP,aO,17],Mse=[1,0,2],Pse=[8,0,0,0,0,0],Use=pv,Gse=pv,$se=sD,Kse=[0,KP,332,15],Ose=[0,KP,283,15],Rse=[0,KP,zx,13],Qse=Fi,Cse=KB,Hse=jc,Vse=[0,KP,Qr,15],Lse=jc,zse=KB,Sse=eE,Zse=[0,KP,sN,15],Wse=jc,Xse=KB,Jse=eE,Yse=[0,KP,zA,23],rbe=[0,KP,pr,23],ebe=jc,nbe=KB,tbe=eE,abe=[0,KP,uO,23],ube=[0,KP,bD,23],fbe=[0,KP,448,40],ibe=[0,KP,fc,21],vbe=[0,KP,us,16],cbe=so,Abe=jc,obe=vx,sbe=vx,bbe=vx,lbe=jc,Bbe=ry,jbe=TP,kbe=Sv,pbe=ua,mbe=ua,dbe=[0,[0,pv,[8,0,0,0,0,0]],0],_be=sD,hbe=[0,[0,qy,1,0],0],xbe=XB,ybe=[0,$i,Sn,6],wbe=XB,gbe=[0,0,0],qbe=Vi,Ibe=[0,[11,"The Wasm data segment size exceeds the supported maxmimum of ",[21,1,[11,"MB.",0]]],"The Wasm data segment size exceeds the supported maxmimum of %nMB."],Dbe=zr,Ebe=zr,Nbe=[0,$i,1028,2],Tbe=[0,$i,1070,4],Fbe=[0,[0,0,0],0],Mbe=[0,[0,0,0],0],Pbe=Si,Ube=fT,Gbe=Si,$be=fT,Kbe=NC(0,0,0),Obe=[0,$i,854,18],Rbe=[0,[20,[1,0]],0],Qbe=[0,[20,[0,0]],0],Cbe=[0,$i,816,11],Hbe=as,Vbe=cM,Lbe=[0,1,0,0],zbe=[0,[11,"Can't find export for GOT.mem import ",[2,0,0]],"Can't find export for GOT.mem import %s"],Sbe=[0,[11,"Can't find export for GOT.func import ",[2,0,0]],"Can't find export for GOT.func import %s"],Zbe=[0,1,0],Wbe=[0,0,0],Xbe=as,Jbe=cM,Ybe=[0,[11,pt,[2,0,[11," is not global",0]]],"Export %s is not global"],rle=[0,[11,pt,[2,0,[11," is not a function",0]]],"Export %s is not a function"],ele=[0,[11,"Type mismatch when linking ",[2,0,[12,46,[2,0,[11,":\nimport type: ",[2,0,[11,"\nexport type: ",[2,0,0]]]]]]]],"Type mismatch when linking %s.%s:\nimport type: %s\nexport type: %s"],nle=[0,0,0],tle=zr,ale=zr,ule=[0,$i,634,39],fle=[0,$i,612,14],ile=[0,$i,598,28],vle=[0,$i,590,28],cle=[0,$i,582,28],Ale=Vn,ole=NC(1,0,0),sle=d_,ble=d_,lle=Vn,Ble=[0,1,0],jle=[0,$i,529,4],kle=[0,0,0],ple=[0,$i,532,4],mle=[0,$i,534,9],dle=[0,$i,hd,40],_le=[0,1,0],hle=[0,$i,at,9],xle=[0,0,0],yle=[0,$i,Ou,9],wle=[0,$i,lT,12],gle=[0,$i,Lk,11],qle=[0,$i,Rn,13],Ile=[0,$i,EM,12],Dle=[1,0],Ele=[19,[0,1]],Nle=NC(1,0,0),Tle=[19,[1,1]],Fle=[18,[0,1]],Mle=[18,[0,0]],Ple=[18,[1,1]],Ule=[18,[1,0]],Gle=[18,[2,1]],$le=[18,[2,0]],Kle=[18,[3,1]],Ole=[18,[3,0]],Rle=NC(0,0,0),Qle=[17,[0,0]],Cle=NC(0,0,0),Hle=[17,[1,0]],Vle=NC(0,0,0),Lle=[17,[0,0]],zle=[18,[0,1]],Sle=[19,[0,0]],Zle=[19,[0,0]],Wle=[18,[0,0]],Xle=NC(0,0,0),Jle=NC(0,0,0),Yle=NC(1,0,0),rBe=NC(1,0,0),eBe=[0,Gm,xo,10],nBe=[0,Gm,SG,6],tBe=[0,[11,"Function import not declared: ",[2,0,[12,10,0]]],"Function import not declared: %s\n"],aBe=[0,Gm,lj,4],uBe=[0,[2,0,[11,He,[2,0,0]]],B_],fBe=[0,[2,0,[12,60,[2,0,[12,62,0]]]],hK],iBe=NC(1,0,0),vBe=NC(zK,zK,Fn),cBe=NC(56,0,0),ABe=NC(0,0,0),oBe=NC(56,0,0),sBe=bQ,bBe=bQ,lBe=bQ,BBe=bQ,jBe=[0,[11,sP,[4,3,0,0,0]],Tg],kBe=Ca,pBe=[1,6],mBe=NC(1,0,0),dBe=[20,[1,0]],_Be=NC(3,0,0),hBe=[0,qc,11753,4],xBe=NC(1,0,0),yBe=WF,wBe=[21,[0,2]],gBe=[1,5],qBe=KR,IBe=sP,DBe=ry,EBe=TP,NBe=Fi,TBe=KR,FBe=sP,MBe=ry,PBe=TP,UBe=Fi,GBe=[1,6],$Be=[0,qc,11586,25],KBe=[0,qc,11603,9],OBe=[0,qc,11615,11],RBe=r$,QBe=[0,qc,11622,9],CBe=[0,qc,11643,9],HBe=KR,VBe=sP,LBe=DU,zBe=[0,[11,Zx,[4,3,0,0,[11,AG,0]]],mO],SBe=[0,1,0],ZBe=wa,WBe=[0,1,0],XBe=[0,$t,1],JBe=WU,YBe=[1,6],rje=[0,1,0],eje=[0,$t,1],nje=Sk,tje=[1,5],aje=[1,14],uje=[1,6],fje=[0,1,0],ije=[0,$t,1],vje=ts,cje=[1,11],Aje=Sv,oje=Uc,sje=[21,[3,2]],bje=[0,3,0],lje=[0,1,0],Bje=[0,$t,1],jje=Hl,kje=[1,11],pje=[21,[3,2]],mje=[1,11],dje=x$,_je=[21,[1,5]],hje=[1,11],xje=[21,[2,5]],yje=[21,[3,4]],wje=cj,gje=U,qje=bQ,Ije=U,Dje=bQ,Eje=[1,5],Nje=cj,Tje=WR,Fje=Kt,Mje=NC(29,0,0),Pje=CM,Uje=NC(0,0,0),Gje=NC(6,0,0),$je=[21,[3,4]],Kje=CM,Oje=NC(0,0,0),Rje=NC(6,0,0),Qje=Qv,Cje=[1,3],Hje=[1,8],Vje=[1,3],Lje=[1,6],zje=[1,5],Sje=[1,4],Zje=[1,5],Wje=[1,8],Xje=[1,11],Jje=[1,10],Yje=L_,rke=[1,6],eke=[1,4],nke=[1,4],tke=sx,ake=Pg,uke=nw,fke=XG,ike=[19,[1,0]],vke=[1,11],cke=[1,11],Ake=[1,10],oke=[1,10],ske=[1,9],bke=[1,9],lke=[1,3],Bke=[1,3],jke=[19,[1,0]],kke=[1,6],pke=[1,6],mke=[1,5],dke=[1,5],_ke=n_,hke=[1,9],xke=[21,[0,2]],yke=[1,5],wke=[0,2],gke=[1,6],qke=[1,6],Ike=[1,6],Dke=[1,6],Eke=[1,3],Nke=[1,3],Tke=[19,[1,1]],Fke=[1,6],Mke=[1,6],Pke=[1,5],Uke=[1,5],Gke=[1,4],$ke=[1,4],Kke=[21,[1,1]],Oke=Uo,Rke=[1,5],Qke=[21,[0,2]],Cke=[1,5],Hke=[0,2],Vke=[1,8],Lke=[1,8],zke=[19,[1,1]],Ske=[1,11],Zke=[1,11],Wke=[1,10],Xke=[1,10],Jke=[1,9],Yke=[1,9],rpe=Dw,epe=VD,npe=sr,tpe=Yx,ape=[19,[3,1]],upe=Ge,fpe=[19,[3,3]],ipe=UA,vpe=Ei,cpe=[20,[3,6]],Ape=[19,[3,2]],ope=[19,[3,6]],spe=is,bpe=[19,[3,5]],lpe=CM,Bpe=[20,[3,4]],jpe=Kp,kpe=Rp,ppe=[0,2],mpe=[0,3],dpe=[19,[3,4]],_pe=gu,hpe=[20,[3,5]],xpe=[1,8],ype=[1,8],wpe=[19,[1,2]],gpe=[1,4],qpe=[1,4],Ipe=[1,5],Dpe=[1,6],Epe=[1,5],Npe=pp,Tpe=da,Fpe=[19,[1,2]],Mpe=[1,11],Ppe=[1,11],Upe=[19,[1,2]],Gpe=[1,10],$pe=[1,10],Kpe=[19,[1,2]],Ope=[1,9],Rpe=[1,9],Qpe=[19,[1,2]],Cpe=[1,3],Hpe=[1,3],Vpe=[19,[1,2]],Lpe=[1,6],zpe=[1,6],Spe=[19,[1,2]],Zpe=[1,5],Wpe=[1,5],Xpe=[1,6],Jpe=[1,6],Ype=[1,6],rme=xc,eme=[1,6],nme=[19,[1,2]],tme=[1,8],ame=[1,8],ume=[1,6],fme=[1,6],ime=[1,6],vme=[0,qc,12327,4],cme=[1,5],Ame=[1,5],ome=AA,sme=[1,5],bme=[1,5],lme=pk,Bme=[1,6],jme=xc,kme=[1,6],pme=[1,6],mme=[1,6],dme=RO,_me=Qa,hme=[1,5],xme=[1,5],yme=[1,6],wme=[1,6],gme=[1,6],qme=[1,14],Ime=op,Dme=[1,8],Eme=Fw,Nme=Jg,Tme=[1,6],Fme=[1,6],Mme=KB,Pme=NC(8,0,0),Ume=NC(0,0,Fo),Gme=[0,2],$me=KB,Kme=NC(32,0,0),Ome=NC(40,0,0),Rme=NC(48,0,0),Qme=NC(0,0,Fo),Cme=[0,4],Hme=KB,Vme=NC(0,0,0),Lme=NC(8,0,0),zme=NC(16,0,0),Sme=NC(24,0,0),Zme=NC(32,0,0),Wme=NC(40,0,0),Xme=NC(48,0,0),Jme=NC(0,0,Fo),Yme=[0,8],rde=[1,6],ede=[21,[0,2]],nde=[1,6],tde=[1,6],ade=[21,[0,2]],ude=[1,6],fde=[1,6],ide=[21,[0,2]],vde=[1,6],cde=[1,6],Ade=[1,6],ode=[1,6],sde=[21,[0,2]],bde=[1,6],lde=[1,6],Bde=[21,[0,2]],jde=[1,6],kde=[1,6],pde=[21,[0,2]],mde=[1,6],dde=[1,6],_de=[1,6],hde=zo,xde=[1,6],yde=JK,wde=cj,gde=[0,qc,13153,24],qde=Op,Ide=[0,qc,13217,25],Dde=kE,Ede=ry,Nde=TP,Tde=Fi,Fde=[0,[11,Lc,0],Lc],Mde=T_,Pde=[21,[1,1]],Ude=[21,[0,2]],Gde=[1,14],$de=[1,14],Kde=[21,[0,2]],Ode=[1,14],Rde=[2,3],Qde=[2,4],Cde=[2,6],Hde=[1,6],Vde=[2,8],Lde=[2,9],zde=[2,10],Sde=[2,11],Zde=[1,11],Wde=[2,14],Xde=[0,0],Jde=Rv,Yde=NC(1,0,0),r_e=[0,qc,13396,13],e_e=T,n_e=NC(0,0,0),t_e=EN,a_e=Di,u_e=iq,f_e=Bq,i_e=[0,0],v_e=[0,qc,13550,13],c_e=[0,qc,13571,4],A_e=[0,qc,13594,14],o_e=[0,[11,zg,[2,0,[11,av,0]]],df],s_e=[0,[11,fU,[2,0,[11,Lq,[2,0,[11,my,0]]]]],SP],b_e=[0,[11,kb,0],kb],l_e=[0,[11,Sc,0],Sc],B_e=[0,[11,oM,0],oM],j_e=[0,[11,Zi,[2,0,[11,av,0]]],nr],k_e=[0,qc,13644,25],p_e=[0,qc,13708,9],m_e=[0,qc,13723,2],d_e=[0,qc,13736,19],__e=[0,qc,13743,77],h_e=[0,qc,13731,56],x_e=[0,qc,13757,13],y_e=[0,qc,13763,12],w_e=[0,qc,13774,77],g_e=[0,[11,Wq,0],Wq],q_e=[0,qc,13779,2],I_e=[0,qc,13780,2],D_e=[0,qc,13781,2],E_e=[0,qc,13782,2],N_e=[0,qc,13783,2],T_e=[0,[11,Yo,0],Yo],F_e=xU,M_e=[0,qc,13801,11],P_e=[0,qc,13815,13],U_e=[0,qc,13814,15],G_e=yO,$_e=VM,K_e=Ke,O_e=kv,R_e=na,Q_e=XT,C_e=[0,1,0],H_e=Jg,V_e=[0,qc,13907,8],L_e=NC(0,0,0),z_e=RE,S_e=Fp,Z_e=Sw,W_e=xU,X_e=XE,J_e=Vi,Y_e=Vi,rhe=$v,ehe=[0,[0,0,"64-bit, layout version 1"]],nhe=QR,the=Ov,ahe=[0,qc,14053,2],uhe=[0,qc,14054,2],fhe=xU,ihe=_A,vhe=aT,che=Ad,Ahe=[0,qc,11496,13],ohe=[0,0,3,2],she=[0,3,5,4],bhe=[0,1,7,6],lhe=[0,2,9,8],Bhe=[21,[1,1]],jhe=[18,[2,0]],khe=ti,phe=[0,0],mhe=fl,dhe=[0,qc,11346,23],_he=[20,[1,2]],hhe=NC(64,0,0),xhe=NC(1,0,0),yhe=fl,whe=[0,1,0],ghe=NC(zK,zK,Fn),qhe=[0,1,0],Ihe=NC(0,0,kM),Dhe=[20,[1,3]],Ehe=fl,Nhe=[0,qc,11399,23],The=[20,[1,2]],Fhe=NC(64,0,0),Mhe=[20,[1,7]],Phe=[20,[1,7]],Uhe=NC(zK,zK,Fn),Ghe=oO,$he=[20,[1,1]],Khe=[20,[1,2]],Ohe=NC(8,0,0),Rhe=rN,Qhe=rN,Che=HG,Hhe=Yk,Vhe=rN,Lhe=[20,[1,0]],zhe=HG,She=Yk,Zhe=[20,[1,2]],Whe=rN,Xhe=[20,[1,4]],Jhe=[20,[1,6]],Yhe=by,rxe=[20,[1,12]],exe=$t,nxe=UA,txe=oO,axe=[20,[1,2]],uxe=NC(8,0,0),fxe=rN,ixe=rN,vxe=HG,cxe=Yk,Axe=rN,oxe=[20,[1,0]],sxe=HG,bxe=[20,[1,1]],lxe=Yk,Bxe=[20,[1,2]],jxe=rN,kxe=[20,[1,3]],pxe=[20,[1,5]],mxe=UA,dxe=by,_xe=oO,hxe=NC(0,0,0),xxe=[20,[1,11]],yxe=[20,[3,0]],wxe=[20,[3,1]],gxe=[20,[3,2]],qxe=[20,[3,3]],Ixe=In,Dxe=by,Exe=[20,[2,0]],Nxe=[20,[2,1]],Txe=[20,[2,2]],Fxe=[20,[2,3]],Mxe=Er,Pxe=JF,Uxe=[20,[1,10]],Gxe=[20,[1,13]],$xe=[20,[1,14]],Kxe=[20,[1,0]],Oxe=[20,[1,1]],Rxe=[20,[1,2]],Qxe=[20,[1,10]],Cxe=[20,[1,0]],Hxe=[20,[1,1]],Vxe=Yk,Lxe=HG,zxe=Yk,Sxe=HG,Zxe=[20,[1,5]],Wxe=[0,1,0],Xxe=[0,[0,$t,1],[0,UA,1]],Jxe=by,Yxe=[20,[1,11]],rye=[0,1,0],eye=[0,[0,jQ,1],[0,Sv,1]],nye=[20,[1,6]],tye=[0,1,0],aye=[0,[0,$t,1],[0,UA,1]],uye=by,fye=[20,[1,12]],iye=[20,[1,4]],vye=[20,[1,7]],cye=[20,[1,8]],Aye=[20,[1,9]],oye=ju,sye=qK,bye=fl,lye=NC(48,0,0),Bye=NC(48,0,0),jye=NC(48,0,0),kye=[0,1,0],pye=[0,[0,jQ,1],[0,Sv,1]],mye=fl,dye=NC(48,0,0),_ye=NC(48,0,0),hye=NC(48,0,0),xye=[0,1,0],yye=[0,[0,jQ,1],[0,Sv,1]],wye=[20,[1,9]],gye=NC(1,0,0),qye=fl,Iye=NC(32,0,0),Dye=NC(32,0,0),Eye=NC(32,0,0),Nye=[0,1,0],Tye=[0,[0,jQ,1],[0,Sv,1]],Fye=fl,Mye=NC(32,0,0),Pye=NC(32,0,0),Uye=NC(32,0,0),Gye=[0,1,0],$ye=[0,[0,jQ,1],[0,Sv,1]],Kye=[20,[1,9]],Oye=NC(1,0,0),Rye=NC(0,hj,Fn),Qye=fl,Cye=[0,1,0],Hye=[0,[0,jQ,1],[0,Sv,1]],Vye=NC(qq,zK,Fn),Lye=[20,[1,2]],zye=NC(64,0,0),Sye=[19,[1,0]],Zye=NC(64,0,0),Wye=NC(1,0,0),Xye=NC(64,0,0),Jye=[20,[1,0]],Yye=[19,[1,0]],rwe=[19,[1,0]],ewe=[20,[1,8]],nwe=NC(62,0,0),twe=NC(62,0,0),awe=fl,uwe=[0,1,0],fwe=[0,[0,jQ,1],[0,Sv,1]],iwe=NC(yA,zK,Fn),vwe=[20,[1,2]],cwe=NC(63,0,0),Awe=[19,[1,0]],owe=[20,[1,9]],swe=NC(1,0,0),bwe=NC(64,0,0),lwe=NC(1,0,0),Bwe=[20,[1,7]],jwe=NC(zK,zK,Fn),kwe=NC(65,0,0),pwe=[20,[1,0]],mwe=[19,[1,0]],dwe=[20,[1,9]],_we=NC(1,0,0),hwe=[19,[1,0]],xwe=[20,[1,9]],ywe=NC(1,0,0),wwe=[20,[1,8]],gwe=NC(63,0,0),qwe=[20,[1,9]],Iwe=NC(1,0,0),Dwe=NC(63,0,0),Ewe=[20,[1,9]],Nwe=NC(1,0,0),Twe=[20,[1,1]],Fwe=NC(0,0,kM),Mwe=[19,[3,0]],Pwe=[19,[2,0]],Uwe=[0,1,0],Gwe=[0,$t,1],$we=i$,Kwe=NC(zK,zK,Fn),Owe=[20,[1,9]],Rwe=bd,Qwe=ju,Cwe=iA,Hwe=[1,5],Vwe=[21,[1,1]],Lwe=kA,zwe=AO,Swe=[0,1,0],Zwe=[0,M$,0],Wwe=zO,Xwe=kA,Jwe=[1,5],Ywe=[21,[1,1]],rge=fu,ege=AO,nge=[0,1,0],tge=[0,Ot,0],age=zO,uge=fu,fge=d$,ige=AO,vge=[0,[0,GN,1],[0,J,1]],cge=d$,Age=yT,oge=AO,sge=[0,1,0],bge=yT,lge=Pt,Bge=AO,jge=[0,[0,CN,1],[0,SA,1]],kge=Pt,pge=[0,qc,10835,11],mge=[0,qc,10807,6],dge=[1,0],_ge=[0,[11,hs,0],hs],hge=[0,[11,Cd,[2,0,0]],oy],xge=E,yge=E,wge=_$,gge=[20,[1,8]],qge=[20,[1,8]],Ige=nb,Dge=nb,Ege=m$,Nge=m$,Tge=NC(0,0,0),Fge=m$,Mge=NC(0,0,0),Pge=nb,Uge=NG,Gge=[0,[0,zr,1],0],$ge=[0,[0,zr,1],0],Kge=dr,Oge=[21,[1,1]],Rge=bj,Qge=Lv,Cge=NC(0,0,0),Hge=NC(0,0,0),Vge=WG,Lge=NG,zge=[0,[0,zr,1],0],Sge=[0,[0,zr,1],0],Zge=[21,[1,1]],Wge=bj,Xge=Lv,Jge=NC(0,0,0),Yge=NC(0,0,0),rqe=Il,eqe=Il,nqe=Tj,tqe=Tj,aqe=NC(0,0,0),uqe=Tj,fqe=NC(0,0,0),iqe=Il,vqe=[0,1,0],cqe=Wb,Aqe=Wb,oqe=[0,1,0],sqe=fO,bqe=fO,lqe=[0,1],Bqe=xy,jqe=[0,1],kqe=[0,1],pqe=af,mqe=vs,dqe=[0,0],_qe=NC(1,0,0),hqe=NC(1,0,0),xqe=[0,0],yqe=NC(0,0,0),wqe=NC(0,0,0),gqe=[0,qc,10098,11],qqe=Bu,Iqe=[21,[1,1]],Dqe=bj,Eqe=Hq,Nqe=Lv,Tqe=NC(0,0,0),Fqe=NC(0,0,0),Mqe=NC(1,0,0),Pqe=NC(0,0,0),Uqe=$p,Gqe=Ko,$qe=lh,Kqe=[0,[11,lA,[2,0,[11,NE,0]]],sh],Oqe=[0,[11,$F,[2,0,0]],gN],Rqe=Yw,Qqe=NC(0,0,0),Cqe=[21,[1,1]],Hqe=bj,Vqe=Hq,Lqe=yl,zqe=Lv,Sqe=NC(1,0,0),Zqe=NC(0,0,0),Wqe=xy,Xqe=NC(2,0,0),Jqe=[0,[0,zr,1],0],Yqe=Yw,rIe=xy,eIe=NC(1,0,0),nIe=xy,tIe=NC(0,0,0),aIe=ln,uIe=Pi,fIe=NC(0,0,0),iIe=JN,vIe=[0,[0,zr,1],0],cIe=[0,[0,zr,1],0],AIe=N_,oIe=[0,qc,9859,42],sIe=[0,qc,9822,13],bIe=[0,qc,9854,11],lIe=[0,qc,9780,6],BIe=[0,1],jIe=[0,1],kIe=[20,[1,8]],pIe=[0,qc,9732,13],mIe=[0,qc,9709,13],dIe=[0,[0,DU,1],0],_Ie=Zk,hIe=[0,[11,"alloc_",[4,3,0,0,0]],"alloc_%i"],xIe=Aa,yIe=TO,wIe=QI,gIe=$l,qIe=ca,IIe=mf,DIe=uj,EIe=[6,0],NIe=wn,TIe=qw,FIe=[0,0,0],MIe=[0,qc,9557,4],PIe=jo,UIe=vQ,GIe=UD,$Ie=ZB,KIe=_e,OIe=NC(0,0,0),RIe=[0,[11,"unsupported stable memory version (expected ",[2,0,[11,Bk,[2,0,[12,41,0]]]]],"unsupported stable memory version (expected %s or %s)"],QIe=[20,[1,8]],CIe=[21,[1,1]],HIe=NC(0,0,0),VIe=_e,LIe=[21,[0,2]],zIe=NC(0,0,0),SIe=NC(0,0,0),ZIe=[0,qc,9431,11],WIe=NC(0,0,0),XIe=[0,qc,9424,11],JIe=[0,qc,9416,11],YIe=uM,rDe=NC(12,0,0),eDe=$D,nDe=NC(9,0,0),tDe=NC(5,0,0),aDe=YM,uDe=[20,[1,8]],fDe=[20,[1,8]],iDe=[0,1],vDe=[20,[1,8]],cDe=[20,[1,8]],ADe=[20,[1,0]],oDe=Rj,sDe=[20,[1,0]],bDe=Cc,lDe=ov,BDe=hF,jDe=[0,1],kDe=[20,[1,7]],pDe=[20,[1,7]],mDe=cg,dDe=NC(32,0,0),_De=fN,hDe=zd,xDe=zd,yDe=NC(2,0,0),wDe=NC(4,0,0),gDe=NC(8,0,0),qDe=a,IDe=[2,15],DDe=NC(1,0,0),EDe=[3,1,0,0],NDe=NC(0,0,0),TDe=uR,FDe=NC(0,0,0),MDe=NC(0,0,0),PDe=[0,1,[0,1,0]],UDe=[0,vx,1],GDe=[14,[0,1,0,NC(0,0,0),0]],$De=NC(8,0,0),KDe=$D,ODe=Jh,RDe=NC(0,hj,Fn),QDe=Zw,CDe=NC(0,0,0),HDe=[20,[1,1]],VDe=zG,LDe=ql,zDe=[0,1],SDe=gG,ZDe=NC(0,0,0),WDe=NC(0,0,0),XDe=NC(0,0,0),JDe=jF,YDe=[14,[0,3,0,NC(0,0,0),0]],rEe=NC(8,0,0),eEe=[14,[0,2,0,NC(0,0,0),0]],nEe=NC(4,0,0),tEe=[14,[0,1,0,NC(0,0,0),0]],aEe=NC(8,0,0),uEe=[14,[0,0,0,NC(0,0,0),[0,1]]],fEe=[21,[0,2]],iEe=NC(2,0,0),vEe=Zy,cEe=NC(0,0,0),AEe=[2,15],oEe=NC(1,0,0),sEe=[3,1,0,0],bEe=NC(0,0,0),lEe=Ac,BEe=li,jEe=[0,1,[0,1,0]],kEe=[0,[0,vx,1],[0,JI,1],[0,SM,1]],pEe=Hm,mEe=Hm,dEe=jq,_Ee=b,hEe=Rw,xEe=eO,yEe=qn,wEe=wa,gEe=cv,qEe=zd,IEe=vx,DEe=wa,EEe=xu,NEe=yx,TEe=yx,FEe=zd,MEe=Kq,PEe=$D,UEe=xu,GEe=fB,$Ee=Hd,KEe=[0,[11,MF,[2,0,[11,oK,0]]],$h],OEe=qn,REe=wa,QEe=cv,CEe=dk,HEe=NC(0,0,0),VEe=NC(0,0,0),LEe=tM,zEe=[2,19],SEe=NC(4,0,0),ZEe=tv,WEe=Hm,XEe=MD,JEe=xu,YEe=[0,0],rNe=rf,eNe=NC(0,0,0),nNe=NC(0,0,0),tNe=Jh,aNe=NC(_c,zK,Fn),uNe=Zw,fNe=NC(0,0,0),iNe=Tp,vNe=NC(0,0,0),cNe=Tp,ANe=NC(zK,LK,0),oNe=kh,sNe=NC(wj,zK,Fn),bNe=Qi,lNe=MG,BNe=[2,19],jNe=NC(0,0,0),kNe=[20,[1,0]],pNe=NC(0,0,0),mNe=[20,[1,0]],dNe=NC(0,0,0),_Ne=NC(0,0,0),hNe=rK,xNe=zd,yNe=vx,wNe=aR,gNe=zd,qNe=vx,INe=QG,DNe=NC(29,0,0),ENe=zd,NNe=vx,TNe=Sv,FNe=ZR,MNe=NC(1,0,0),PNe=NC(0,0,0),UNe=[0,qc,8178,15],GNe=ze,$Ne=[21,[0,2]],KNe=NC(2,0,0),ONe=NC(0,0,0),RNe=NC(1,0,0),QNe=NC(1,0,0),CNe=NC(3,0,0),HNe=eU,VNe=gM,LNe=[14,[0,0,0,NC(0,0,0),0]],zNe=[21,[0,2]],SNe=PR,ZNe=[2,2],WNe=WR,XNe=YU,JNe=[2,19],YNe=nA,rTe=wa,eTe=zd,nTe=vx,tTe=wa,aTe=xu,uTe=wa,fTe=xu,iTe=wa,vTe=[2,0],cTe=mK,ATe=g,oTe=hD,sTe=NC(2,0,0),bTe=NC(1,0,0),lTe=[0,1,0],BTe=NC(0,0,0),jTe=Nv,kTe=NC(1,0,0),pTe=NC(3,0,0),mTe=NC(0,0,0),dTe=NC(1,0,0),_Te=ze,hTe=[21,[0,2]],xTe=NC(0,0,0),yTe=[20,[1,0]],wTe=[20,[1,2]],gTe=hE,qTe=Ow,ITe=we,DTe=Gw,ETe=Cc,NTe=Hp,TTe=Yi,FTe=cG,MTe=nI,PTe=wa,UTe=tr,GTe=NC(0,0,0),$Te=[0,[0,WR,1],[0,ik,1]],KTe=Cc,OTe=Hp,RTe=Yi,QTe=cG,CTe=oe,HTe=NC(0,0,0),VTe=EA,LTe=[20,[1,0]],zTe=hT,STe=Ac,ZTe=[0,1,[0,1,0]],WTe=[0,vx,1],XTe=[21,[1,1]],JTe=UB,YTe=[21,[0,2]],rFe=[21,[0,2]],eFe=oq,nFe=[0,1,0],tFe=[0,[0,pc,1],[0,wv,1]],aFe=UB,uFe=Rc,fFe=NC(0,0,0),iFe=Dp,vFe=j,cFe=[0,[11,cA,[2,0,[12,10,0]]],ME],AFe=[0,qc,7467,12],oFe=[0,qc,7520,15],sFe=[0,qc,7526,18],bFe=[0,qc,7522,8],lFe=[5,[2,3]],BFe=[0,qc,7557,8],jFe=[0,qc,7572,17],kFe=[0,qc,7586,13],pFe=[0,qc,7491,6],mFe=O,dFe=[0,16],_Fe=[0,17],hFe=[0,2],xFe=[0,3],yFe=[0,5],wFe=[0,6],gFe=[0,8],qFe=[0,4],IFe=[0,9],DFe=[0,10],EFe=[0,11],NFe=[0,12],TFe=[0,14],FFe=[0,13],MFe=[0,15],PFe=[0,xs],UFe=[0,24],GFe=[0,Ih],$Fe=[0,7],KFe=[0,1],OFe=ji,RFe=[20,[1,1]],QFe=Te,CFe=[0,[0,Qn,0],[0,[0,nn,1],0]],HFe=ji,VFe=ks,LFe=ks,zFe=q_,SFe=q_,ZFe=tw,WFe=zd,XFe=NC(zK,zK,Fn),JFe=[20,[1,0]],YFe=NC(zK,zK,Fn),rMe=[20,[1,4]],eMe=NC(zK,zK,Fn),nMe=[20,[1,4]],tMe=[20,[1,2]],aMe=Lj,uMe=Lj,fMe=Xp,iMe=Xp,vMe=XP,cMe=XP,AMe=vO,oMe=vO,sMe=NC(0,0,0),bMe=NC(0,0,0),lMe=NC(0,0,0),BMe=NC(0,0,0),jMe=NC(0,0,0),kMe=NC(0,0,0),pMe=NC(0,0,0),mMe=NC(0,0,0),dMe=NC(0,0,0),_Me=cd,hMe=cd,xMe=ol,yMe=ol,wMe=ip,gMe=ip,qMe=yN,IMe=yN,DMe=xt,EMe=xt,NMe=zm,TMe=zm,FMe=vN,MMe=vN,PMe=Tv,UMe=Tv,GMe=oB,$Me=oB,KMe=NC(0,0,0),OMe=oB,RMe=NC(0,0,0),QMe=Tv,CMe=NC(0,0,0),HMe=vN,VMe=NC(0,0,0),LMe=zm,zMe=NC(0,0,0),SMe=xt,ZMe=NC(0,0,0),WMe=yN,XMe=NC(0,0,0),JMe=ip,YMe=NC(0,0,0),rPe=ol,ePe=NC(0,0,0),nPe=cd,tPe=Xp,aPe=XP,uPe=Lj,fPe=NC(0,0,0),iPe=vO,vPe=q_,cPe=ks,APe=[0,qc,7155,14],oPe=ir,sPe=ef,bPe=bl,lPe=ir,BPe=ef,jPe=bl,kPe=zd,pPe=zd,mPe=[14,[0,0,0,NC(0,0,0),[0,0]]],dPe=[21,[0,2]],_Pe=NC(4,0,0),hPe=[14,[0,0,0,NC(0,0,0),0]],xPe=[21,[0,2]],yPe=Rj,wPe=[20,[1,0]],gPe=Bh,qPe=[20,[1,0]],IPe=[0,qc,7012,11],DPe=ey,EPe=Lp,NPe=[0,qc,7002,11],TPe=[0,qc,6988,11],FPe=[0,qc,6983,11],MPe=[0,qc,6971,11],PPe=[0,qc,6943,14],UPe=rx,GPe=[0,[11,Yu,[2,0,[11,Zd,0]]],MA],$Pe=[0,[11,Yu,[2,0,[11,RN,0]]],Oj],KPe=[0,[11,Yu,[2,0,[11,Uv,0]]],bF],OPe=[0,[11,ng,[2,0,[12,10,0]]],SN],RPe=[0,qc,6801,14],QPe=[0,[11,ng,[2,0,[12,10,0]]],SN],CPe=[0,qc,6649,23],HPe=[21,[2,6]],VPe=[21,[0,2]],LPe=[21,[1,1]],zPe=[21,[0,11]],SPe=[0,qc,6717,6],ZPe=[0,[11,D_,[2,0,[11,GP,[2,0,[12,10,0]]]]],Bd],WPe=[0,qc,6722,6],XPe=[0,[11,hg,[2,0,[11,rm,[2,0,[11,Eo,0]]]]],Rm],JPe=vB,YPe=dR,rUe=Wm,eUe=Cl,nUe=[0,[11,z_,[4,0,0,0,0]],Yf],tUe=YA,aUe=nM,uUe=[0,1,0],fUe=[0,3,0],iUe=[0,2,0],vUe=[0,1,0],cUe=uD,AUe=NC(0,0,0),oUe=[20,[1,8]],sUe=[21,[1,1]],bUe=[20,[1,8]],lUe=Yl,BUe=[0,1,0],jUe=[0,[0,jc,1],0],kUe=ax,pUe=ax,mUe=vt,dUe=vt,_Ue=[0,0,0],hUe=v_,xUe=v_,yUe=[0,[0,jy,1],[0,[0,zd,0],0]],wUe=IE,gUe=IE,qUe=[0,1,0],IUe=[0,[0,"number",0],0],DUe=kj,EUe=Ef,NUe=h_,TUe=kj,FUe=[0,0,0],MUe=v_,PUe=v_,UUe=[0,[0,Jh,1],[0,[0,Bg,1],[0,[0,i,1],0]]],GUe=pO,$Ue=ON,KUe=h_,OUe=pO,RUe=[0,[0,AO,1],[0,[0,Jh,1],[0,[0,i,1],0]]],QUe=Ju,CUe=KO,HUe=h_,VUe=Ju,LUe=[0,1,0],zUe=FE,SUe=uM,ZUe=h_,WUe=FE,XUe=[0,1,0],JUe=[0,[0,Ln,1],0],YUe=Iv,rGe=ep,eGe=h_,nGe=Iv,tGe=[0,1,0],aGe=[0,[0,Ln,1],0],uGe=VB,fGe=VB,iGe=[0,1,0],vGe=AD,cGe=AD,AGe=[0,[0,rQ,1],0],oGe=Mb,sGe=Mb,bGe=[0,1,0],lGe=x_,BGe=x_,jGe=[0,[0,pk,1],0],kGe=St,pGe=St,mGe=ji,dGe=ji,_Ge=[20,[1,0]],hGe=pn,xGe=qp,yGe=[0,[0,Jh,1],[0,lI,3]],wGe=ch,gGe=[0,3,0],qGe=[0,3,0],IGe=[0,Jh,1],DGe=p,EGe=[0,[0,Jh,1],[0,lI,1]],NGe=TF,TGe=[0,1,0],FGe=[0,1,0],MGe=[0,Jh,1],PGe=ar,UGe=[0,[0,Jh,1],[0,lI,0]],GGe=V$,$Ge=[0,0,0],KGe=[0,0,0],OGe=[0,Jh,1],RGe=DB,QGe=[0,[0,Jh,1],[0,lI,0]],CGe=Gr,HGe=[0,0,0],VGe=[0,0,0],LGe=[0,Jh,1],zGe=DG,SGe=[0,[0,Jh,1],[0,lI,0]],ZGe=vv,WGe=[0,0,0],XGe=[0,0,0],JGe=[0,Jh,1],YGe=qv,r$e=[0,[0,Jh,1],[0,WR,1]],e$e=TM,n$e=[0,1,0],t$e=[0,1,0],a$e=[0,[0,Jh,1],[0,zd,1]],u$e=Aj,f$e=[0,1,0],i$e=[0,1,0],v$e=[0,rQ,1],c$e=_B,A$e=[0,1,0],o$e=[0,1,0],s$e=Qe,b$e=zd,l$e=[0,[0,Jh,1],[0,WR,1]],B$e=BF,j$e=WR,k$e=[0,1,0],p$e=[0,[0,Jh,1],[0,zd,1]],m$e=vP,d$e=[14,[0,3,0,NC(0,0,0),0]],_$e=NC(8,0,0),h$e=f_,x$e=[13,[0,3,0,NC(0,0,0),0]],y$e=NC(8,0,0),w$e=f_,g$e=NC(8,0,0),q$e=mi,I$e=NC(8,0,0),D$e=mi,E$e=[14,[0,0,0,NC(0,0,0),0]],N$e=NC(2,0,0),T$e=Wn,F$e=[13,[0,0,0,NC(0,0,0),[0,[0,1,1]]]],M$e=NC(2,0,0),P$e=Wn,U$e=[14,[0,0,0,NC(0,0,0),0]],G$e=NC(1,0,0),$$e=oF,K$e=[13,[0,0,0,NC(0,0,0),[0,[0,0,1]]]],O$e=NC(1,0,0),R$e=oF,Q$e=[14,[0,0,0,NC(0,0,0),0]],C$e=NC(4,0,0),H$e=$k,V$e=[13,[0,0,0,NC(0,0,0),0]],L$e=NC(4,0,0),z$e=$k,S$e=i,Z$e=qU,W$e=A_,X$e=NC(0,0,0),J$e=[20,[1,0]],Y$e=NC(zK,zK,Fn),rKe=[20,[1,0]],eKe=[0,1,0],nKe=[0,rQ,1],tKe=jp,aKe=jj,uKe=NC(0,0,0),fKe=NC(1,0,0),iKe=[20,[1,12]],vKe=uP,cKe=[20,[1,0]],AKe=[0,[0,Jh,1],[0,i,1]],oKe=xr,sKe=i,bKe=vf,lKe=NC(0,0,0),BKe=[20,[1,1]],jKe=[0,1,0],kKe=[0,rQ,1],pKe=Ql,mKe=NC(8,0,0),dKe=mi,_Ke=NC(4,0,0),hKe=$k,xKe=NC(8,0,0),yKe=mi,wKe=NC(4,0,0),gKe=$k,qKe=NC(4,0,0),IKe=NC(3,0,0),DKe=Jb,EKe=lI,NKe=[0,Jh,1],TKe=AE,FKe=[0,[11,Dl,[2,0,[11,kw,[2,0,0]]]],Mu],MKe=NC(4,0,0),PKe=NC(3,0,0),UKe=Jb,GKe=[0,Jh,1],$Ke=AE,KKe=[0,[11,Dl,[2,0,[11,hl,[2,0,0]]]],mM],OKe=NC(1,0,0),RKe=Zh,QKe=[20,[1,10]],CKe=[20,[1,0]],HKe=pM,VKe=[20,[1,1]],LKe=[0,[0,Jh,1],[0,i,1]],zKe=PG,SKe=cr,ZKe=[20,[1,10]],WKe=$E,XKe=NC(0,0,0),JKe=Qg,YKe=Qg,rOe=ms,eOe=ms,nOe=NC(0,0,0),tOe=ms,aOe=Qg,uOe=[0,[0,Jh,1],[0,Bg,1],[0,i,1]],fOe=ON,iOe=ON,vOe=[0,[0,AO,1],[0,Jh,1],[0,i,1]],cOe=KO,AOe=KO,oOe=[0,1,0],sOe=uM,bOe=uM,lOe=hk,BOe=NC(zK,zK,Fn),jOe=NC(zK,zK,Fn),kOe=[0,1,0],pOe=[0,rQ,1],mOe=ep,dOe=ep,_Oe=AO,hOe=[0,1,0],xOe=[0,ia,1],yOe=jB,wOe=AO,gOe=[0,1,0],qOe=Kk,IOe=AO,DOe=[0,1,0],EOe=mu,NOe=AO,TOe=[0,1,0],FOe=[0,ia,1],MOe=Uq,POe=[0,ia,1],UOe=Wk,GOe=AO,$Oe=[0,1,0],KOe=ZT,OOe=ia,ROe=NC(64,0,0),QOe=VA,COe=jb,HOe=NC(64,0,0),VOe=[13,[0,1,0,NC(8,0,0),0]],LOe=[13,[0,1,0,NC(8,0,0),0]],zOe=[13,[0,1,0,NC(0,0,0),0]],SOe=[0,1,0],ZOe=[0,Sx,1],WOe=Zj,XOe=qk,JOe=hn,YOe=NC(0,0,0),rRe=QN,eRe=pD,nRe=jk,tRe=ej,aRe=UO,uRe=ap,fRe=iE,iRe=zU,vRe=Np,cRe=xM,ARe=zE,oRe=cq,sRe=zE,bRe=Ub,lRe=Kw,BRe=Xk,jRe=mF,kRe=[20,[1,8]],pRe=ET,mRe=NC(0,0,0),dRe=LO,_Re=jv,hRe=ZD,xRe=lG,yRe=NC(0,0,0),wRe=G_,gRe=NC(0,0,0),qRe=ET,IRe=NC(0,0,0),DRe=jv,ERe=Kj,NRe=LO,TRe=NC(0,0,0),FRe=Rs,MRe=ZD,PRe=NK,URe=[0,[11,dI,[2,0,0]],ko],GRe=[0,1,0],$Re=[0,[0,jq,1],[0,b,1]],KRe=UN,ORe=TD,RRe=Io,QRe=NB,CRe=[0,[0,DA,1],[0,i,1]],HRe=jT,VRe=[0,1,0],LRe=hu,zRe=ex,SRe=zb,ZRe=NC(0,0,0),WRe=[0,1,0],XRe=Nq,JRe=Bw,YRe=kE,rQe=[0,[0,Vl,NC(1,0,0)],[0,[0,Uu,NC(2,0,0)],[0,[0,nt,NC(3,0,0)],[0,[0,Ci,NC(4,0,0)],[0,[0,aj,NC(5,0,0)],[0,[0,ui,NC(6,0,0)],0]]]]]],eQe=[21,[1,1]],nQe=iU,tQe=[0,1,0],aQe=Co,uQe=_r,fQe=NG,iQe=Fr,vQe=Mw,cQe=ln,AQe=Pi,oQe=NC(0,0,0),sQe=rs,bQe=CR,lQe=Vp,BQe=NC(0,0,0),jQe=Rg,kQe=Ve,pQe=sU,mQe=NC(0,0,0),dQe=Gu,_Qe=[0,0,0],hQe=XO,xQe=Xj,yQe=jK,wQe=NC(0,0,0),gQe=Zs,qQe=[0,0,0],IQe=w$,DQe=ZD,EQe=ET,NQe=NC(0,0,0),TQe=uf,FQe=bP,MQe=ie,PQe=lI,UQe=Br,GQe=sn,$Qe=Ox,KQe=JD,OQe=Kd,RQe=Wi,QQe=bP,CQe=Kd,HQe=XU,VQe=LA,LQe=zd,zQe=km,SQe=nj,ZQe=Pm,WQe=yR,XQe=hI,JQe=vh,YQe=fy,rCe=Mf,eCe=NC(0,0,0),nCe=Pu,tCe=jw,aCe=jt,uCe=pm,fCe=NC(0,0,0),iCe=rE,vCe=[0,1,0],cCe=$r,ACe=NK,oCe=G_,sCe=NC(0,0,0),bCe=bp,lCe=[0,1,0],BCe=Wd,jCe=xU,kCe=yO,pCe=XN,mCe=tF,dCe=S_,_Ce=Zf,hCe=nx,xCe=eF,yCe=xU,wCe=[0,qc,5211,4],gCe=Ri,qCe=Ri,ICe=VM,DCe=XT,ECe=[0,qc,5182,4],NCe=uK,TCe=uK,FCe=WO,MCe=na,PCe=[0,qc,5169,4],UCe=G,GCe=G,$Ce=kv,KCe=[0,qc,5157,4],OCe=sj,RCe=sj,QCe=Ke,CCe=[0,qc,5144,4],HCe=gF,VCe=gF,LCe=xU,zCe=[0,qc,5129,4],SCe=or,ZCe=or,WCe=EI,XCe=QK,JCe=Uh,YCe=[0,[0,Sx,1],[0,zd,1]],rHe=WR,eHe=[0,jy,1],nHe=LE,tHe=_k,aHe=Gp,uHe=[21,[1,1]],fHe=lm,iHe=[21,[1,1]],vHe=kP,cHe=Ef,AHe=[21,[0,2]],oHe=[0,[11,kB,[2,0,[11,NE,0]]],kF],sHe=UI,bHe=ou,lHe=pf,BHe=ou,jHe=pf,kHe=[14,[0,0,0,NC(16,0,0),[0,0]]],pHe=[14,[0,0,2,NC(12,0,0),0]],mHe=[14,[0,0,2,NC(8,0,0),0]],dHe=[14,[0,0,2,NC(4,0,0),0]],_He=[14,[0,0,2,NC(0,0,0),0]],hHe=Vy,xHe=KK,yHe=[0,[0,Sx,1],[0,[0,zd,1],0]],wHe=_k,gHe=_k,qHe=_k,IHe=h_,DHe=[0,0,0],EHe=[0,0,[0,0,[0,0,[0,0,0]]]],NHe=ou,THe=pf,FHe=WO,MHe=h_,PHe=Hq,UHe=h_,GHe=Ub,$He=h_,KHe=[0,0,0],OHe=WF,RHe=h_,QHe=Lv,CHe=h_,HHe=[0,0,0],VHe=bj,LHe=h_,zHe=yl,SHe=h_,ZHe=Xk,WHe=h_,XHe=G_,JHe=h_,YHe=NK,rVe=h_,eVe=[0,0,0],nVe=tF,tVe=h_,aVe=[0,1,0],uVe=Gp,fVe=h_,iVe=Mf,vVe=h_,cVe=fy,AVe=h_,oVe=[0,0,0],sVe=lm,bVe=h_,lVe=[0,0,0],BVe=kP,jVe=h_,kVe=pm,pVe=h_,mVe=jt,dVe=h_,_Ve=KK,hVe=h_,xVe=Pi,yVe=h_,wVe=ln,gVe=h_,qVe=ET,IVe=h_,DVe=ZD,EVe=h_,NVe=xM,TVe=h_,FVe=zU,MVe=h_,PVe=cq,UVe=h_,GVe=ap,$Ve=h_,KVe=Pt,OVe=h_,RVe=yT,QVe=h_,CVe=d$,HVe=h_,VVe=[0,0,0],LVe=fu,zVe=h_,SVe=[0,0,0],ZVe=kA,WVe=h_,XVe=ej,JVe=h_,YVe=[0,0,0],rLe=pD,eLe=h_,nLe=qk,tLe=h_,aLe=hn,uLe=h_,fLe=CR,iLe=h_,vLe=Vp,cLe=h_,ALe=[0,0,0],oLe=iU,sLe=h_,bLe=ex,lLe=h_,BLe=zb,jLe=h_,kLe=NG,pLe=h_,mLe=NB,dLe=h_,_Le=Io,hLe=h_,xLe=[0,1,0],yLe=Mw,wLe=h_,gLe=[0,1,0],qLe=[0,0,0],ILe=Ef,DLe=h_,ELe=Uh,NLe=h_,TLe=ON,FLe=h_,MLe=KO,PLe=h_,ULe=[0,1,0],GLe=uM,$Le=h_,KLe=[0,1,0],OLe=[0,1,0],RLe=ep,QLe=h_,CLe=nj,HLe=h_,VLe=LA,LLe=h_,zLe=XU,SLe=h_,ZLe=[0,0,0],WLe=Ox,XLe=h_,JLe=sn,YLe=h_,rze=Br,eze=h_,nze=Xj,tze=h_,aze=jK,uze=h_,fze=Ve,ize=h_,vze=sU,cze=h_,Aze=[0,1,0],oze=vh,sze=h_,bze=[0,1,0],lze=[0,1,0],Bze=Jg,jze=h_,kze=ll,pze=ll,mze=Ro,dze=Ro,_ze=gh,hze=gh,xze=NC(0,0,0),yze=gh,wze=NC(0,0,0),gze=Ro,qze=NC(0,0,0),Ize=ll,Dze=[20,[1,8]],Eze=[0,0,0],Nze=[0,1,[0,3,[0,8,[0,9,[0,11,0]]]]],Tze=[0,2,0],Fze=[0,2,0],Mze=[0,4,0],Pze=[0,2,[0,10,0]],Uze=[0,6,0],Gze=[0,1,[0,11,0]],$ze=[0,2,[0,9,0]],Kze=[0,2,[0,10,0]],Oze=[0,1,0],Rze=NC(0,0,0),Qze=NC(3,0,0),Cze=NC(4,0,0),Hze=NC(5,0,0),Vze=NC(6,0,0),Lze=NC(7,0,0),zze=NC(8,0,0),Sze=NC(9,0,0),Zze=NC(10,0,0),Wze=NC(11,0,0),Xze=NC(12,0,0),Jze=NC(13,0,0),Yze=qu,rSe=Se,eSe=ls,nSe=AT,tSe=cx,aSe=P$,uSe=OD,fSe=$e,iSe=Pn,vSe=ha,cSe=[0,[11,pU,[4,3,0,0,[11,AG,0]]],wA],ASe=[0,xq,1],oSe=[0,[11,sP,[4,3,0,0,0]],Tg],sSe=[0,[11,"to_",[4,3,0,0,[11,AG,0]]],eh],bSe=[0,1,0],lSe=[14,[0,1,0,NC(0,0,0),[0,0]]],BSe=[20,[1,0]],jSe=zd,kSe=TP,pSe=[0,1,0],mSe=[0,km,1],dSe=En,_Se=[13,[0,1,0,NC(0,0,0),[0,[0,0,1]]]],hSe=[20,[1,0]],xSe=zd,ySe=TP,wSe=[0,qc,4639,87],gSe=rp,qSe=sl,ISe=[0,1,0],DSe=[0,WR,1],ESe=NC(1,0,0),NSe=OI,TSe=TP,FSe=eo,MSe=NC(0,0,0),PSe=vx,USe=TP,GSe=ND,$Se=Tp,KSe=[20,[1,0]],OSe=[20,[1,0]],RSe=Hu,QSe=[0,qc,4518,12],CSe=EK,HSe=[0,1,0],VSe=[0,[0,km,1],[0,LU,1]],LSe=PP,zSe=[20,[1,0]],SSe=EK,ZSe=[0,1,0],WSe=[0,[0,km,1],[0,LU,1]],XSe=js,JSe=[20,[1,0]],YSe=[0,1,0],rZe=[0,[0,km,1],[0,LU,1]],eZe=Uk,nZe=[0,qc,4442,19],tZe=NC(0,0,0),aZe=op,uZe=rw,fZe=[0,qc,4430,19],iZe=RM,vZe=DD,cZe=Tk,AZe=jl,oZe=[0,1,0],sZe=[0,[0,vx,1],[0,Nb,1]],bZe=PT,lZe=Gb,BZe=vb,jZe=WR,kZe=Mi,pZe=cb,mZe=tm,dZe=yc,_Ze=Ix,hZe=[21,[0,2]],xZe=Dx,yZe=[0,1,0],wZe=[0,Xv,1],gZe=Dx,qZe=fQ,IZe=Ne,DZe=N,EZe=uc,NZe=Qh,TZe=PO,FZe=am,MZe=Zt,PZe=mj,UZe=hA,GZe=wo,$Ze=MO,KZe=LR,OZe=k_,RZe=Px,QZe=Zq,CZe=Iw,HZe=BE,VZe=Fm,LZe=Wo,zZe=te,SZe=u_,ZZe=ja,WZe=JG,XZe=[0,qc,4251,11],JZe=[0,[11,Cp,[4,0,0,0,[12,62,0]]],PI],YZe=[0,1,0],rWe=[0,[0,vx,1],[0,Fl,1]],eWe=Nr,nWe=[0,[11,P,[4,0,0,0,[12,62,0]]],et],tWe=[0,1,0],aWe=[0,[0,vx,1],[0,Fl,1]],uWe=Pq,fWe=[0,qc,4002,19],iWe=[13,[0,1,0,NC(0,0,0),[0,[0,0,1]]]],vWe=[20,[1,0]],cWe=[13,[0,1,0,NC(0,0,0),[0,[0,0,1]]]],AWe=[20,[1,0]],oWe=[0,0],sWe=[0,5],bWe=[0,4],lWe=HD,BWe=Jf,jWe=zd,kWe=jQ,pWe=Sv,mWe=[0,qc,4018,15],dWe=[0,0],_We=NC(zK,zK,Fn),hWe=NC(0,0,0),xWe=wG,yWe=fF,wWe=ka,gWe=qO,qWe=OF,IWe=Wp,DWe=WA,EWe=[0,1,0],NWe=[0,[0,vx,1],[0,Nb,1]],TWe=zd,FWe=lQ,MWe=[0,1,0],PWe=[0,[0,WR,1],[0,LU,1]],UWe=mG,GWe=[13,[0,1,0,NC(0,0,0),[0,[0,0,1]]]],$We=[20,[1,0]],KWe=lQ,OWe=[0,1,0],RWe=[0,[0,WR,1],[0,LU,1]],QWe=qh,CWe=EE,HWe=_q,VWe=kp,LWe=zd,zWe=WR,SWe=AO,ZWe=[0,[11,Up,[2,0,[12,95,[2,0,0]]]],IU],WWe=[0,1,0],XWe=[0,Bg,1],JWe=vx,YWe=[0,1,0],rXe=[0,[0,Sx,1],[0,i,1]],eXe=ot,nXe=Jc,tXe=[21,[0,2]],aXe=[0,1,[0,1,0]],uXe=[0,vx,1],fXe=qf,iXe=Jc,vXe=[21,[0,2]],cXe=cm,AXe=[0,1,0],oXe=[0,Xv,1],sXe=KD,bXe=dG,lXe=Oa,BXe=pP,jXe=gP,kXe=Pr,pXe=BM,mXe=ge,dXe=mT,_Xe=Fq,hXe=pu,xXe=TU,yXe=ht,wXe=Ai,gXe=tB,qXe=Ai,IXe=ht,DXe=tB,EXe=vD,NXe=$$,TXe=nR,FXe=Xx,MXe=QU,PXe=ge,UXe=[0,1,0],GXe=[0,$t,1],$Xe=qi,KXe=[0,[0,0],[0,[1,NC(0,0,0)],0]],OXe=fI,RXe=Nf,QXe=gs,CXe=$t,HXe=DR,VXe=Cb,LXe=gs,zXe=$t,SXe=aA,ZXe=Mg,WXe=DR,XXe=aA,JXe=tQ,YXe=r_,rJe=ke,eJe=[21,[1,1]],nJe=z$,tJe=go,aJe=As,uJe=jQ,fJe=[0,1,0],iJe=jQ,vJe=[0,1,0],cJe=jQ,AJe=[0,1,0],oJe=jQ,sJe=[0,1,0],bJe=jQ,lJe=[0,1,0],BJe=jQ,jJe=[0,1,0],kJe=vx,pJe=vx,mJe=vx,dJe=gs,_Je=vx,hJe=gs,xJe=jQ,yJe=[19,[1,1]],wJe=NC(XM,XM,32896),gJe=NC(zK,zK,Fn),qJe=vG,IJe=lB,DJe=jQ,EJe=[20,[1,1]],NJe=NC(0,0,0),TJe=NC(0,0,0),FJe=NC(1,0,0),MJe=[0,qc,3482,15],PJe=[20,[1,9]],UJe=NC(1,0,0),GJe=jQ,$Je=[0,qc,3442,15],KJe=[0,1,0],OJe=[0,1,0],RJe=[0,1,0],QJe=[0,1,0],CJe=[0,[0,jQ,1],[0,Sv,1]],HJe=_g,VJe=[0,1,0],LJe=[0,1,0],zJe=[0,1,0],SJe=[0,1,0],ZJe=[0,[0,jQ,1],[0,Sv,1]],WJe=[20,[1,1]],XJe=NC(0,0,0),JJe=[0,1,0],YJe=NC(1,0,0),rYe=[0,1,0],eYe=[0,$t,1],nYe=Sq,tYe=$t,aYe=NC(0,0,0),uYe=[0,1,0],fYe=fl,iYe=[20,[1,2]],vYe=[20,[1,12]],cYe=[0,1,0],AYe=[0,1,0],oYe=[0,[0,$t,1],[0,Na,1]],sYe=nP,bYe=[20,[1,10]],lYe=[20,[1,7]],BYe=NC(32,0,0),jYe=NC(0,0,0),kYe=NC(0,hj,Fn),pYe=[0,1,0],mYe=[0,1,0],dYe=[0,[0,$t,1],[0,Na,1]],_Ye=yw,hYe=fl,xYe=[0,1,0],yYe=[0,1,0],wYe=[0,1,0],gYe=[0,1,0],qYe=[0,[0,jQ,1],[0,Sv,1]],IYe=dB,DYe=fl,EYe=[0,1,0],NYe=[0,1,0],TYe=[0,1,0],FYe=[0,1,0],MYe=[0,[0,jQ,1],[0,Sv,1]],PYe=NC(64,0,0),UYe=NC(0,0,0),GYe=NC(1,hj,Fn),$Ye=[20,[1,8]],KYe=NC(64,0,0),OYe=Mr,RYe=sc,QYe=pw,CYe=MP,HYe=bG,VYe=dN,LYe=NC(7,0,0),zYe=[20,[1,1]],SYe=[19,[1,0]],ZYe=[20,[1,9]],WYe=NC(1,0,0),XYe=[19,[1,0]],JYe=$f,YYe=lR,r0e=K_,e0e=D$,n0e=NC(4,0,0),t0e=[13,[0,2,0,NC(0,0,0),0]],a0e=NC(4,0,0),u0e=NC(8,0,0),f0e=[13,[0,3,0,NC(0,0,0),0]],i0e=NC(8,0,0),v0e=NC(8,0,0),c0e=[13,[0,1,0,NC(0,0,0),0]],A0e=NC(8,0,0),o0e=[13,[0,1,0,NC(0,0,0),0]],s0e=NC(zK,zK,Fn),b0e=NC(8,0,0),l0e=NC(4,0,0),B0e=[21,[1,0]],j0e=[13,[0,0,0,NC(0,0,0),0]],k0e=NC(4,0,0),p0e=NC(4,0,0),m0e=[21,[1,1]],d0e=[13,[0,0,0,NC(0,0,0),0]],_0e=NC(4,0,0),h0e=NC(2,0,0),x0e=[21,[1,1]],y0e=[13,[0,0,0,NC(0,0,0),[0,[0,1,1]]]],w0e=NC(2,0,0),g0e=[21,[1,1]],q0e=[13,[0,0,0,NC(0,0,0),[0,[0,0,1]]]],I0e=NC(16,0,0),D0e=NC(Fn,0,0),E0e=TB,N0e=[20,[1,1]],T0e=ku,F0e=KT,M0e=[20,[1,0]],P0e=[20,[1,0]],U0e=[14,[0,1,3,NC(0,0,0),0]],G0e=[13,[0,1,3,NC(0,0,0),0]],$0e=_j,K0e=[1,2],O0e=[0,1,0],R0e=[0,OI,3],Q0e=B,C0e=[0,qc,2831,11],H0e=[0,qc,2822,11],V0e=[20,[1,14]],L0e=[20,[1,8]],z0e=[0,1,0],S0e=[0,[0,$t,1],[0,jM,1]],Z0e=YF,W0e=[20,[1,13]],X0e=[20,[1,8]],J0e=[0,1,0],Y0e=[0,[0,$t,1],[0,jM,1]],r1e=ek,e1e=oO,n1e=NC(0,0,0),t1e=fg,a1e=[0,1,0],u1e=[0,[0,$t,1],[0,UA,1]],f1e=CE,i1e=[20,[1,2]],v1e=NC(1,0,0),c1e=[20,[1,2]],A1e=[20,[1,2]],o1e=NC(63,0,0),s1e=NC(1,0,0),b1e=aa,l1e=[0,1,0],B1e=[0,[0,$t,1],[0,UA,1]],j1e=[20,[1,2]],k1e=wb,p1e=[20,[1,8]],m1e=NC(c,0,0),d1e=[20,[1,7]],_1e=NC(Ct,0,0),h1e=NC(We,0,0),x1e=[0,1,0],y1e=[0,$t,1],w1e=xg,g1e=Sv,q1e=[20,[1,7]],I1e=[20,[1,10]],D1e=[19,[1,1]],E1e=[19,[1,0]],N1e=[0,qc,2671,11],T1e=NC(1,0,0),F1e=NC(0,0,0),M1e=uQ,P1e=[0,qc,2642,11],U1e=NC(0,0,0),G1e=[0,qc,2632,12],$1e=[0,qc,2623,11],K1e=Sv,O1e=[20,[1,7]],R1e=[20,[1,10]],Q1e=oO,C1e=NC(0,0,0),H1e=[0,1,0],V1e=[0,[0,$t,1],[0,UA,1]],L1e=Sd,z1e=CE,S1e=[20,[1,2]],Z1e=NC(1,0,0),W1e=[20,[1,2]],X1e=[20,[1,2]],J1e=NC(63,0,0),Y1e=aa,r2e=[0,1,0],e2e=[0,[0,$t,1],[0,UA,1]],n2e=[20,[1,1]],t2e=QU,a2e=[0,1,0],u2e=[0,[0,"n1",1],[0,"n2",1]],f2e=zy,i2e=[20,[1,6]],v2e=[20,[1,4]],c2e=[20,[1,5]],A2e=[20,[1,3]],o2e=[20,[1,2]],s2e=[20,[1,1]],b2e=[20,[1,0]],l2e=[0,1,0],B2e=[0,1,0],j2e=[0,$t,1],k2e=Zm,p2e=[0,1,0],m2e=[0,1,0],d2e=[0,$t,1],_2e=_T,h2e=YP,x2e=NC(4,0,0),y2e=[0,qc,2494,11],w2e=[1,1],g2e=[1,0],q2e=NC(0,0,0),I2e=GG,D2e=[1,2],E2e=[1,1],N2e=[1,0],T2e=[0,1,0],F2e=[0,1,0],M2e=[0,1,0],P2e=[0,1,0],U2e=[0,1,0],G2e=[0,vx,1],$2e=[0,1,0],K2e=[0,1,0],O2e=[0,1,0],R2e=[0,1,0],Q2e=[0,vx,1],C2e=HN,H2e=[0,1,0],V2e=[0,1,0],L2e=[0,1,0],z2e=[0,1,0],S2e=[0,1,0],Z2e=[0,vx,1],W2e=An,X2e=z,J2e=sT,Y2e=MM,r3e=tu,e3e=SD,n3e=mk,t3e=ZK,a3e=$D,u3e=sT,f3e=NC(1,0,0),i3e=[0,qc,2032,4],v3e=[0,[11,db,[4,0,0,0,[11,Hb,[4,0,0,0,[12,62,0]]]]],Mj],c3e=[0,1,0],A3e=NC(1,0,0),o3e=NC(17,0,0),s3e=NC(19,0,0),b3e=NC(21,0,0),l3e=NC(23,0,0),B3e=NC(33,0,0),j3e=NC(35,0,0),k3e=NC(37,0,0),p3e=NC(41,0,0),m3e=NC(43,0,0),d3e=NC(39,0,0),_3e=NC(45,0,0),h3e=NC(46,0,0),x3e=NC(zK,zK,Fn),y3e=NC(16777214,zK,Fn),w3e=NC(3,0,0),g3e=NC(5,0,0),q3e=NC(7,0,0),I3e=NC(9,0,0),D3e=NC(11,0,0),E3e=NC(13,0,0),N3e=NC(15,0,0),T3e=NC(25,0,0),F3e=NC(27,0,0),M3e=NC(29,0,0),P3e=NC(31,0,0),U3e=NC(0,0,0),G3e=[0,qc,1899,11],$3e=NC(64,0,0),K3e=NC(64,0,0),O3e=NC(64,0,0),R3e=[20,[1,9]],Q3e=[0,1,0],C3e=[0,vx,1],H3e=br,V3e=[0,qc,1854,12],L3e=[0,1,0],z3e=[0,vx,1],S3e=br,Z3e=[0,qc,1798,11],W3e=[0,qc,1789,11],X3e=NC(1,0,0),J3e=NC(1,0,0),Y3e=NC(1,0,0),r6e=NC(0,0,0),e6e=NC(1,0,0),n6e=[20,[1,8]],t6e=NC(1,0,0),a6e=NC(1,0,0),u6e=NC(0,0,0),f6e=_n,i6e=Nw,v6e=VT,c6e=wc,A6e=Ht,o6e=NC(1,0,0),s6e=[0,wa,1],b6e=NC(1,0,0),l6e=[13,[0,1,3,NC(0,0,0),0]],B6e=NC(1,0,0),j6e=NC(1,0,0),k6e=[13,[0,1,3,NC(0,0,0),0]],p6e=s,m6e=[14,[0,1,3,NC(0,0,0),0]],d6e=NC(1,0,0),_6e=Ry,h6e=Ry,x6e=$t,y6e=[20,[1,0]],w6e=[20,[1,1]],g6e=[20,[1,0]],q6e=[0,qc,1515,4],I6e=[19,[1,0]],D6e=[20,[1,1]],E6e=[13,[0,1,3,NC(0,0,0),0]],N6e=NC(_c,zK,Fn),T6e=fh,F6e=nQ,M6e=nQ,P6e=nQ,U6e=Ry,G6e=nQ,$6e=sQ,K6e=XI,O6e=[0,1,0],R6e=Un,Q6e=Un,C6e=[21,[1,1]],H6e=cR,V6e=Hn,L6e=fd,z6e=Am,S6e=Bv,Z6e=Vi,W6e=[20,[1,0]],X6e=[20,[1,0]],J6e=[20,[1,1]],Y6e=Vu,r4e=Vu,e4e=UM,n4e=UM,t4e=I_,a4e=I_,u4e=NC(0,0,0),f4e=I_,i4e=NC(0,0,0),v4e=UM,c4e=NC(0,0,0),A4e=Vu,o4e=Ef,s4e=h_,b4e=Ov,l4e=XE,B4e=ur,j4e=Lo,k4e=[0,1,[0,1,0]],p4e=SD,m4e=[0,1,0],d4e=[0,1,0],_4e=ZK,h4e=[0,0,0],x4e=mk,y4e=[0,1,[0,1,0]],w4e=qw,g4e=[0,1,[0,1,0]],q4e=wn,I4e=[0,0,0],D4e=ZB,E4e=[0,1,0],N4e=UD,T4e=[0,1,0],F4e=vQ,M4e=jo,P4e=[0,0,0],U4e=[0,1,[0,1,0]],G4e=Pq,$4e=[0,1,0],K4e=Aa,O4e=[0,1,0],R4e=[0,1,0],Q4e=sQ,C4e=[0,1,[0,1,0]],H4e=Zk,V4e=[0,1,0],L4e=pn,z4e=[0,1,0],S4e=qp,Z4e=[0,0,0],W4e=[0,1,[0,1,[0,1,0]]],X4e=cR,J4e=[0,1,0],Y4e=pk,r5e=[0,0,[0,1,[0,1,[0,1,[0,1,[0,1,0]]]]]],e5e=Ow,n5e=[0,1,[0,1,[0,1,[0,1,[0,1,0]]]]],t5e=hE,a5e=[0,1,0],u5e=[0,1,[0,1,0]],f5e=j,i5e=[0,1,[0,1,[0,1,0]]],v5e=Rc,c5e=[0,0,0],A5e=[0,1,[0,1,[0,1,[0,1,[0,1,[0,1,[0,1,[0,0,[0,0,0]]]]]]]]],o5e=UB,s5e=[0,1,0],b5e=[0,1,0],l5e=KT,B5e=[0,1,0],j5e=[0,1,0],k5e=ku,p5e=[0,0,0],m5e=[0,1,0],d5e=z$,_5e=[0,1,0],h5e=[0,1,0],x5e=r_,y5e=[0,1,0],w5e=[0,1,0],g5e=tQ,q5e=[0,1,0],I5e=[0,3,0],D5e=x$,E5e=[0,3,0],N5e=[0,1,0],T5e=Uc,F5e=[0,1,0],M5e=[0,1,0],P5e=ke,U5e=[0,1,0],G5e=[0,1,0],$5e=As,K5e=[0,1,0],O5e=[0,1,[0,1,0]],R5e=go,Q5e=[0,0,0],C5e=[0,1,[0,1,0]],H5e=mT,V5e=[0,0,0],L5e=[0,1,0],z5e=ge,S5e=[0,1,0],Z5e=[0,1,0],W5e=dG,X5e=[0,1,0],J5e=[0,1,0],Y5e=Oa,r7e=[0,0,0],e7e=[0,1,[0,1,0]],n7e=pP,t7e=[0,0,0],a7e=[0,1,[0,1,0]],u7e=BM,f7e=[0,0,0],i7e=[0,1,[0,1,0]],v7e=gP,c7e=[0,0,0],A7e=[0,1,[0,1,0]],o7e=Pr,s7e=[0,1,0],b7e=[0,1,[0,1,0]],l7e=$$,B7e=[0,1,0],j7e=[0,1,[0,1,0]],k7e=tB,p7e=[0,1,0],m7e=[0,1,[0,1,0]],d7e=vD,_7e=[0,1,0],h7e=[0,1,[0,1,0]],x7e=Ai,y7e=[0,1,0],w7e=[0,1,[0,1,0]],g7e=ht,q7e=[0,1,0],I7e=[0,1,[0,1,0]],D7e=TU,E7e=[0,1,0],N7e=[0,1,0],T7e=nR,F7e=[0,1,0],M7e=[0,1,[0,1,0]],P7e=pu,U7e=[0,1,0],G7e=[0,1,[0,1,0]],$7e=Fq,K7e=[0,1,0],O7e=[0,1,0],R7e=Xx,Q7e=[0,1,0],C7e=[0,1,0],H7e=aA,V7e=[0,1,[0,1,0]],L7e=Mg,z7e=[0,1,0],S7e=[0,1,0],Z7e=Nf,W7e=[0,1,0],X7e=[0,1,[0,1,[0,1,0]]],J7e=lB,Y7e=[0,1,0],r8e=[0,1,0],e8e=DR,n8e=[0,1,[0,1,0]],t8e=Cb,a8e=[0,1,0],u8e=[0,1,0],f8e=fI,i8e=[0,1,0],v8e=[0,1,[0,1,[0,1,0]]],c8e=vG,A8e=[0,1,[0,1,0]],o8e=dN,s8e=[0,1,[0,1,0]],b8e=bG,l8e=[0,0,0],B8e=[0,1,[0,1,0]],j8e=Mi,k8e=[0,1,[0,1,0]],p8e=aR,m8e=[0,1,0],d8e=yx,_8e=[0,1,[0,1,[0,0,[0,0,0]]]],h8e=ze,x8e=[0,0,0],y8e=[0,1,[0,1,[0,1,[0,0,[0,1,0]]]]],w8e=qn,g8e=[0,1,[0,1,[0,1,[0,1,0]]]],q8e=cv,I8e=[0,1,0],D8e=[0,1,0],E8e=Ht,N8e=[0,1,0],T8e=[0,1,0],F8e=wc,M8e=[0,1,0],P8e=[0,1,0],U8e=VT,G8e=[0,1,0],$8e=Nw,K8e=[0,1,0],O8e=_n,R8e=[0,1,0],Q8e=[0,1,0],C8e=yc,H8e=[0,1,0],V8e=[0,1,[0,1,0]],L8e=op,z8e=[0,1,0],S8e=[0,1,[0,1,0]],Z8e=N,W8e=[0,1,0],X8e=[0,1,0],J8e=Gb,Y8e=[0,1,0],r9e=[0,1,0],e9e=vb,n9e=[0,0,0],t9e=[0,1,0],a9e=PT,u9e=[0,1,0],f9e=[0,1,0],i9e=Dx,v9e=[0,1,0],c9e=[0,1,[0,1,0]],A9e=uc,o9e=[0,1,0],s9e=[0,0,0],b9e=Ix,l9e=[0,1,0],B9e=[0,1,0],j9e=Ne,k9e=[0,1,[0,1,0]],p9e=fQ,m9e=[0,1,0],d9e=[0,1,0],_9e=tm,h9e=[0,1,0],x9e=[0,1,0],y9e=cb,w9e=[0,1,0],g9e=$E,q9e=[0,1,0],I9e=[0,1,[0,1,[0,1,0]]],D9e=JG,E9e=[0,1,[0,1,[0,1,[0,1,0]]]],N9e=ja,T9e=[0,1,0],F9e=Fm,M9e=[0,1,0],P9e=[0,1,0],U9e=u_,G9e=[0,1,0],$9e=[0,1,0],K9e=te,O9e=[0,1,0],R9e=[0,1,0],Q9e=Wo,C9e=[0,1,0],H9e=[0,1,0],V9e=BE,L9e=[0,1,0],z9e=[0,1,[0,1,0]],S9e=Iw,Z9e=[0,1,0],W9e=[0,1,[0,1,[0,1,0]]],X9e=Zq,J9e=[0,1,[0,1,[0,1,0]]],Y9e=Px,rrn=[0,0,0],ern=[0,1,[0,1,0]],nrn=k_,trn=[0,1,[0,1,[0,0,0]]],arn=LR,urn=[0,0,0],frn=[0,1,[0,1,0]],irn=MO,vrn=[0,1,[0,1,[0,0,0]]],crn=wo,Arn=[0,0,0],orn=[0,1,[0,1,0]],srn=hA,brn=[0,1,[0,1,[0,0,0]]],lrn=mj,Brn=[0,1,0],jrn=[0,1,[0,1,0]],krn=Zt,prn=[0,1,[0,1,[0,1,0]]],mrn=am,drn=[0,3,0],_rn=[0,1,[0,1,0]],hrn=PO,xrn=[0,1,[0,1,[0,3,0]]],yrn=Qh,wrn=[0,1,0],grn=F,qrn=[0,1,0],Irn=[0,1,0],Drn=JK,Ern=[0,1,0],Nrn=[0,1,0],Trn=Ca,Frn=[0,0,0],Mrn=[0,1,0],Prn=Uo,Urn=[0,1,0],Grn=[0,1,0],$rn=_q,Krn=[0,1,0],Orn=[0,1,0],Rrn=kp,Qrn=[0,1,0],Crn=[0,1,0],Hrn=EE,Vrn=[0,3,0],Lrn=[0,3,[0,3,0]],zrn=by,Srn=[0,2,0],Zrn=[0,2,[0,2,0]],Wrn=JF,Xrn=[0,3,0],Jrn=[0,3,0],Yrn=is,ren=[0,3,0],een=[0,3,0],nen=Ei,ten=[0,3,0],aen=[0,3,0],uen=gu,fen=[0,3,0],ien=[0,3,0],ven=sr,cen=[0,3,0],Aen=[0,3,0],oen=Yx,sen=[0,3,0],ben=[0,3,0],len=VD,Ben=[0,3,0],jen=[0,3,[0,3,0]],ken=Dw,pen=[0,3,0],men=[0,3,0],den=UA,_en=[0,3,0],hen=[0,3,0],xen=Ge,yen=[0,3,0],wen=[0,3,[0,3,0]],gen=In,qen=[0,2,0],Ien=[0,2,[0,2,0]],Den=Er,Een=[0,1,0],Nen=[0,3,[0,1,[0,1,0]]],Ten=CM,Fen=[0,0,0],Men=[0,0,0],Pen=sx,Uen=[0,0,0],Gen=[0,0,0],$en=Pg,Ken=[0,0,0],Oen=[0,0,0],Ren=nw,Qen=[0,0,0],Cen=[0,0,0],Hen=n_,Ven=[0,0,0],Len=[0,0,0],zen=XG,Sen=[0,0,0],Zen=[0,0,0],Wen=L_,Xen=[0,1,0],Jen=fd,Yen=[0,1,0],rnn=Am,enn=[0,1,0],nnn=[0,1,0],tnn=Hn,ann=[0,1,0],unn=Bv,fnn=[0,1,0],inn=XI,vnn=[0,1,0],cnn=[0,1,[0,1,0]],Ann=cm,onn=[0,1,0],snn=[0,1,[0,1,0]],bnn=Hu,lnn=[0,1,0],Bnn=_$,jnn=WG,knn=dr,pnn=[0,0,0],mnn=uj,dnn=[0,1,[0,1,[0,1,0]]],_nn=mf,hnn=[0,0,0],xnn=ca,ynn=[0,1,[0,1,0]],wnn=$l,gnn=[0,0,0],qnn=QI,Inn=[0,1,0],Dnn=TO,Enn=[0,1,0],Nnn=UI,Tnn=[0,1,0],Fnn=[0,1,0],Mnn=Qv,Pnn=[0,0,0],Unn=[0,1,0],Gnn=Fw,$nn=[0,1,0],Knn=Rp,Onn=[0,1,0],Rnn=Qa,Qnn=[0,1,0],Cnn=Kp,Hnn=[0,1,0],Vnn=RO,Lnn=[0,qc,1091,60],znn=[0,qc,1086,56],Snn=[0,qc,1082,52],Znn=[0,qc,JT,50],Wnn=[0,qc,1065,6],Xnn=[0,qc,1004,6],Jnn=[0,qc,996,6],Ynn=NC(0,0,0),rtn=[0,[11,Ue,[4,0,0,0,0]],cu],etn=[21,[0,2]],ntn=NC(zK,LK,0),ttn=NC(0,0,0),atn=$t,utn=eo,ftn=NC(1,0,0),itn=NC(0,0,0),vtn=NC(0,0,0),ctn=NC(0,0,0),Atn=NC(0,0,0),otn=NC(0,0,0),stn=NC(0,0,0),btn=NC(0,0,0),ltn=NC(0,0,0),Btn=NC(1,0,0),jtn=NC(0,0,0),ktn=NC(1,0,0),ptn=[21,[1,1]],mtn=[21,[1,1]],dtn=[21,[1,1]],_tn=[21,[1,1]],htn=[21,[1,1]],xtn=[0,qc,819,14],ytn=VR,wtn=QM,gtn=Ov,qtn=[0,qc,724,9],Itn=[0,qc,720,4],Dtn=[1,0],Etn=Ov,Ntn=[0,[11,_i,[2,0,[11,Qt,0]]],yM],Ttn=[0,qc,583,4],Ftn=[0,[11,IT,0],IT],Mtn=[0,[11,Pd,0],Pd],Ptn=[0,[11,JU,0],JU],Utn=[0,qc,$q,6],Gtn=[0,qc,FA,13],$tn=[0,qc,Qw,13],Ktn=NC(0,0,64),Otn=NC(0,Yd,0),Rtn=NC(0,64,0),Qtn=NC(4,0,0),Ctn=NC(0,0,nF),Htn=NC(0,qD,0),Vtn=NC(0,nF,0),Ltn=NC(12,0,0),ztn=NC(0,32,0),Stn=NC(0,131072,0),Ztn=[0,qc,Jn,12],Wtn=NC(2,0,0),Xtn=NC(0,0,0),Jtn=[0,qc,Ih,12],Ytn=NC(0,0,v),ran=NC(0,0,0),ean=NC(0,0,0),nan=NC(1,0,0),tan=NC(0,0,0),aan=[13,[0,0,0,NC(0,0,0),0]],uan=[14,[0,0,0,NC(0,0,0),0]],fan=NC(8,0,0),ian=NC(1,0,0),van=NC(1,0,0),can=NC(Jo,0,0),Aan=NC(16,0,0),oan=NC(Jo,0,0),san=Yr,ban=Eq,lan=Yr,Ban=Eq,jan=bQ,kan=bQ,pan=bQ,man=bQ,dan=[0,[11,sP,[4,3,0,0,0]],Tg],_an=Ca,han=[1,6],xan=[18,[0,0]],yan=[20,[0,0]],wan=[0,dl,11413,4],gan=WF,qan=[2,5],Ian=KR,Dan=sP,Ean=ry,Nan=TP,Tan=Fi,Fan=KR,Man=sP,Pan=ry,Uan=TP,Gan=Fi,$an=[1,6],Kan=[0,dl,11247,25],Oan=[0,dl,11264,9],Ran=[0,dl,11276,11],Qan=r$,Can=[0,dl,11283,9],Han=[0,dl,11304,9],Van=KR,Lan=sP,zan=DU,San=[17,[0,0]],Zan=[0,[11,Zx,[4,3,0,0,[11,AG,0]]],mO],Wan=[0,0,0],Xan=wa,Jan=[0,1,0],Yan=[0,$t,0],run=WU,eun=[1,6],nun=[0,0,0],tun=[0,$t,0],aun=Sk,uun=[2,3],fun=[2,4],iun=U,vun=bQ,cun=[2,4],Aun=[2,3],oun=[2,4],sun=[2,5],bun=[2,5],lun=U,Bun=bQ,jun=[2,5],kun=[21,[1,1]],pun=[2,5],mun=[1,6],dun=[2,5],_un=[2,14],hun=U,xun=[21,[0,2]],yun=bQ,wun=[21,[0,2]],gun=[1,6],qun=[1,6],Iun=[0,1,0],Dun=[0,$t,0],Eun=ts,Nun=[1,11],Tun=Sv,Fun=Uc,Mun=[21,[3,2]],Pun=[21,[1,0]],Uun=[0,3,0],Gun=[0,0,0],$un=[0,$t,0],Kun=Hl,Oun=[2,8],Run=[2,9],Qun=U,Cun=bQ,Hun=[2,9],Vun=[2,9],Lun=[2,8],zun=[2,9],Sun=[2,10],Zun=[2,10],Wun=U,Xun=bQ,Jun=[2,10],Yun=[2,9],rfn=[21,[1,0]],efn=[2,10],nfn=[1,11],tfn=[1,11],afn=U,ufn=[21,[0,2]],ffn=bQ,ifn=[2,6],vfn=[1,11],cfn=[21,[3,2]],Afn=[1,11],ofn=x$,sfn=[21,[1,5]],bfn=[1,11],lfn=[21,[2,5]],Bfn=[21,[3,4]],jfn=cj,kfn=[2,5],pfn=cj,mfn=WR,dfn=Kt,_fn=[18,[0,7]],hfn=CM,xfn=[21,[3,4]],yfn=CM,wfn=LG,gfn=Um,qfn=Qv,Ifn=[2,3],Dfn=[2,3],Efn=[1,6],Nfn=[2,5],Tfn=[2,4],Ffn=[2,5],Mfn=[2,8],Pfn=[1,11],Ufn=[2,10],Gfn=L_,$fn=[1,6],Kfn=[2,4],Ofn=[2,4],Rfn=sx,Qfn=Pg,Cfn=nw,Hfn=XG,Vfn=[19,[1,0]],Lfn=[1,11],zfn=[1,11],Sfn=[19,[0,0]],Zfn=[2,10],Wfn=[2,10],Xfn=[2,9],Jfn=[2,9],Yfn=[2,3],rin=[2,3],ein=[19,[1,0]],nin=[1,6],tin=[1,6],ain=[19,[0,0]],uin=[2,5],fin=[2,5],iin=n_,vin=[2,9],cin=[2,5],Ain=[0,2],oin=[1,6],sin=[1,6],bin=[1,6],lin=[1,6],Bin=[2,3],jin=[2,3],kin=[19,[1,1]],pin=[1,6],min=[1,6],din=[19,[0,1]],_in=[2,5],hin=[2,5],xin=[2,4],yin=[2,4],win=Uo,gin=[2,5],qin=[2,5],Iin=[0,2],Din=[2,8],Ein=[2,8],Nin=[19,[1,1]],Tin=[1,11],Fin=[1,11],Min=[19,[0,1]],Pin=[2,10],Uin=[2,10],Gin=[2,9],$in=[2,9],Kin=Dw,Oin=VD,Rin=sr,Qin=Yx,Cin=[19,[3,1]],Hin=Ge,Vin=[19,[3,3]],Lin=UA,zin=Ei,Sin=[20,[3,6]],Zin=[19,[3,2]],Win=[19,[3,6]],Xin=is,Jin=[19,[3,5]],Yin=CM,rvn=[20,[3,4]],evn=[0,2],nvn=[0,3],tvn=[19,[3,4]],avn=gu,uvn=[20,[3,5]],fvn=[2,8],ivn=[2,8],vvn=[19,[0,2]],cvn=[2,4],Avn=[2,4],ovn=[2,5],svn=[1,6],bvn=[2,5],lvn=pp,Bvn=da,jvn=[19,[1,2]],kvn=[1,11],pvn=[1,11],mvn=[19,[0,2]],dvn=[2,10],_vn=[2,10],hvn=[19,[0,2]],xvn=[2,9],yvn=[2,9],wvn=[19,[0,2]],gvn=[2,3],qvn=[2,3],Ivn=[19,[1,2]],Dvn=[1,6],Evn=[1,6],Nvn=[19,[0,2]],Tvn=[2,5],Fvn=[2,5],Mvn=[1,6],Pvn=[1,6],Uvn=[1,6],Gvn=xc,$vn=[1,6],Kvn=[19,[0,2]],Ovn=[2,8],Rvn=[2,8],Qvn=[1,6],Cvn=[1,6],Hvn=[1,6],Vvn=[2,5],Lvn=pk,zvn=[1,6],Svn=xc,Zvn=[1,6],Wvn=[1,6],Xvn=[1,6],Jvn=[2,5],Yvn=[2,5],rcn=[2,5],ecn=AA,ncn=[2,5],tcn=[2,5],acn=[1,6],ucn=[1,6],fcn=[1,6],icn=[2,14],vcn=op,ccn=[2,8],Acn=LG,ocn=Um,scn=Fw,bcn=LG,lcn=Um,Bcn=NO,jcn=[0,dl,12069,4],kcn=[17,[1,0]],pcn=Jg,mcn=[1,6],dcn=[1,6],_cn=KB,hcn=[0,2],xcn=KB,ycn=[0,4],wcn=KB,gcn=[21,[0,2]],qcn=[21,[0,2]],Icn=NC(32,0,0),Dcn=[0,8],Ecn=[1,6],Ncn=[1,6],Tcn=[1,6],Fcn=[1,6],Mcn=[1,6],Pcn=[1,6],Ucn=[1,6],Gcn=[1,6],$cn=[1,6],Kcn=[1,6],Ocn=[1,6],Rcn=[1,6],Qcn=[1,6],Ccn=[1,6],Hcn=[1,6],Vcn=[1,6],Lcn=zo,zcn=$E,Scn=[21,[1,1]],Zcn=[1,6],Wcn=JK,Xcn=cj,Jcn=[0,dl,12857,24],Ycn=Op,rAn=[0,dl,12921,25],eAn=kE,nAn=ry,tAn=TP,aAn=Fi,uAn=[0,[11,Lc,0],Lc],fAn=T_,iAn=[2,14],vAn=[2,14],cAn=[2,14],AAn=[18,[0,0]],oAn=[17,[0,0]],sAn=[2,3],bAn=[2,4],lAn=[2,5],BAn=[2,6],jAn=[1,6],kAn=[2,8],pAn=[2,9],mAn=[2,10],dAn=[2,10],_An=[2,11],hAn=[1,11],xAn=[2,14],yAn=[0,0],wAn=Rv,gAn=[0,dl,13098,13],qAn=T,IAn=EN,DAn=Di,EAn=iq,NAn=Bq,TAn=[0,0],FAn=[0,dl,13252,13],MAn=[0,dl,13273,4],PAn=[0,dl,13296,14],UAn=[0,[11,zg,[2,0,[11,av,0]]],df],GAn=[0,[11,fU,[2,0,[11,Lq,[2,0,[11,my,0]]]]],SP],$An=[0,[11,kb,0],kb],KAn=[0,[11,Sc,0],Sc],OAn=[0,[11,oM,0],oM],RAn=[0,[11,Zi,[2,0,[11,av,0]]],nr],QAn=[0,dl,13346,25],CAn=[0,dl,13410,9],HAn=[0,dl,13425,2],VAn=[0,dl,13438,19],LAn=[0,dl,13445,87],zAn=[0,dl,13433,61],SAn=[0,dl,13459,13],ZAn=[0,dl,13465,12],WAn=[0,dl,13476,77],XAn=[0,[11,Wq,0],Wq],JAn=[0,dl,13481,2],YAn=[0,dl,13482,2],ron=[0,dl,13483,2],eon=[0,dl,13484,2],non=[0,dl,13485,2],ton=[0,[11,Yo,0],Yo],aon=xU,uon=[0,dl,13501,11],fon=[0,dl,13515,13],ion=[0,dl,13514,15],von=yO,con=VM,Aon=Ke,oon=kv,son=na,bon=XT,lon=[0,0,0],Bon=RE,jon=Fp,kon=Sw,pon=Jg,mon=NC(1,0,0),don=[0,dl,13604,8],_on=ln,hon=xU,xon=Vi,yon=Vi,won=$v,gon=QR,qon=Ov,Ion=xU,Don=_A,Eon=aT,Non=Ad,Ton=[0,dl,11131,13],Fon=[0,0,3,2,3,2],Mon=[0,3,5,4,5,4],Pon=[0,1,7,6,7,6],Uon=[0,2,9,8,9,8],Gon=[18,[3,0]],$on=[18,[2,0]],Kon=[18,[1,0]],Oon=[18,[0,0]],Ron=ti,Qon=[0,0],Con=fl,Hon=[18,[0,2]],Von=[20,[0,2]],Lon=fl,zon=[18,[0,2]],Son=[20,[0,2]],Zon=oO,Won=[18,[0,2]],Xon=fl,Jon=[2,10],Yon=[20,[0,3]],rsn=fl,esn=[21,[0,2]],nsn=[21,[1,0]],tsn=[21,[1,0]],asn=[18,[0,2]],usn=[20,[0,2]],fsn=[18,[0,9]],isn=[20,[0,7]],vsn=[18,[0,2]],csn=[20,[0,7]],Asn=[18,[0,8]],osn=[18,[0,6]],ssn=oO,bsn=[18,[0,2]],lsn=[20,[1,1]],Bsn=[18,[1,9]],jsn=fl,ksn=[21,[0,2]],psn=[21,[1,1]],msn=[21,[1,1]],dsn=[18,[0,2]],_sn=[20,[0,2]],hsn=[18,[0,9]],xsn=[20,[0,2]],ysn=rN,wsn=rN,gsn=HG,qsn=Yk,Isn=rN,Dsn=[0,0,0],Esn=[0,[0,$t,0],[0,UA,0]],Nsn=by,Tsn=[20,[1,0]],Fsn=HG,Msn=Yk,Psn=[20,[1,2]],Usn=rN,Gsn=[20,[1,4]],$sn=[20,[1,6]],Ksn=by,Osn=[20,[1,12]],Rsn=$t,Qsn=UA,Csn=oO,Hsn=[20,[0,2]],Vsn=rN,Lsn=rN,zsn=HG,Ssn=Yk,Zsn=rN,Wsn=[20,[0,3]],Xsn=[0,0,0],Jsn=[0,[0,$t,0],[0,UA,0]],Ysn=by,rbn=[20,[1,0]],ebn=HG,nbn=[20,[1,1]],tbn=Yk,abn=[20,[1,2]],ubn=rN,fbn=[20,[1,3]],ibn=[20,[1,5]],vbn=UA,cbn=by,Abn=oO,obn=[18,[1,2]],sbn=NC(0,0,0),bbn=[20,[1,11]],lbn=[20,[3,0]],Bbn=[20,[3,1]],jbn=[20,[3,2]],kbn=[20,[3,3]],pbn=In,mbn=by,dbn=[20,[2,0]],_bn=[20,[2,1]],hbn=[20,[2,2]],xbn=[20,[2,3]],ybn=Er,wbn=JF,gbn=[20,[1,7]],qbn=[20,[1,8]],Ibn=[20,[1,9]],Dbn=[20,[1,10]],Ebn=[20,[1,13]],Nbn=[20,[1,14]],Tbn=[20,[1,0]],Fbn=[20,[1,1]],Mbn=[20,[1,2]],Pbn=[20,[0,7]],Ubn=[20,[0,8]],Gbn=[20,[0,9]],$bn=[20,[0,10]],Kbn=[20,[0,0]],Obn=[20,[0,1]],Rbn=Yk,Qbn=[0,0,0],Cbn=[0,[0,jQ,0],[0,Sv,0]],Hbn=[0,0,0],Vbn=[0,[0,$t,0],[0,UA,0]],Lbn=by,zbn=HG,Sbn=Yk,Zbn=[0,0,0],Wbn=[0,[0,$t,0],[0,UA,0]],Xbn=by,Jbn=HG,Ybn=[20,[0,13]],rln=[20,[0,14]],eln=[20,[0,11]],nln=[20,[0,5]],tln=[20,[0,12]],aln=[20,[0,6]],uln=[20,[0,4]],fln=ju,iln=qK,vln=fl,cln=[0,0,0],Aln=[0,[0,jQ,0],[0,Sv,0]],oln=fl,sln=[0,0,0],bln=[0,[0,jQ,0],[0,Sv,0]],lln=[20,[0,9]],Bln=fl,jln=[21,[0,2]],kln=[21,[1,1]],pln=[21,[1,1]],mln=[0,0,0],dln=[0,[0,jQ,0],[0,Sv,0]],_ln=fl,hln=[21,[0,2]],xln=[21,[1,0]],yln=[21,[1,0]],wln=[0,0,0],gln=[0,[0,jQ,0],[0,Sv,0]],qln=[20,[1,9]],Iln=NC(1,0,0),Dln=[17,[1,0]],Eln=NC(0,hj,Fn),Nln=fl,Tln=[0,1,0],Fln=[0,[0,jQ,1],[0,Sv,1]],Mln=[18,[1,8]],Pln=NC(qq,zK,Fn),Uln=[20,[1,2]],Gln=NC(64,0,0),$ln=[19,[1,0]],Kln=[18,[1,9]],Oln=NC(64,0,0),Rln=[17,[1,0]],Qln=NC(1,0,0),Cln=NC(1,0,0),Hln=[17,[1,0]],Vln=[18,[1,9]],Lln=NC(64,0,0),zln=[20,[1,0]],Sln=[19,[1,0]],Zln=[19,[1,0]],Wln=[17,[1,0]],Xln=[20,[1,8]],Jln=NC(62,0,0),Yln=NC(62,0,0),rBn=fl,eBn=[0,1,0],nBn=[0,[0,jQ,1],[0,Sv,1]],tBn=[18,[1,8]],aBn=NC(yA,zK,Fn),uBn=[20,[1,2]],fBn=NC(63,0,0),iBn=[19,[1,0]],vBn=[20,[1,9]],cBn=NC(1,0,0),ABn=[18,[1,9]],oBn=NC(64,0,0),sBn=[17,[1,0]],bBn=NC(1,0,0),lBn=NC(1,0,0),BBn=[17,[1,0]],jBn=[20,[1,7]],kBn=NC(1,0,0),pBn=[18,[1,0]],mBn=NC(zK,zK,Fn),dBn=NC(1,0,0),_Bn=[17,[1,0]],hBn=[18,[1,9]],xBn=NC(65,0,0),yBn=[20,[1,0]],wBn=[19,[1,0]],gBn=[20,[1,9]],qBn=NC(1,0,0),IBn=[19,[1,0]],DBn=[20,[1,9]],EBn=NC(1,0,0),NBn=[17,[1,0]],TBn=[20,[1,8]],FBn=NC(63,0,0),MBn=[20,[1,9]],PBn=NC(1,0,0),UBn=NC(63,0,0),GBn=[20,[1,9]],$Bn=NC(1,0,0),KBn=[20,[0,1]],OBn=[20,[1,1]],RBn=NC(0,0,0),QBn=NC(0,0,kM),CBn=[0,1,0],HBn=[0,$t,1],VBn=i$,LBn=[1,11],zBn=[1,11],SBn=[19,[3,0]],ZBn=[19,[2,0]],WBn=[0,0,0],XBn=[0,$t,0],JBn=NC(zK,zK,Fn),YBn=[20,[0,9]],rjn=bd,ejn=ju,njn=iA,tjn=[2,10],ajn=kA,ujn=AO,fjn=[0,0,0],ijn=[0,M$,0],vjn=zO,cjn=kA,Ajn=[2,10],ojn=fu,sjn=AO,bjn=[0,0,0],ljn=[0,Ot,0],Bjn=zO,jjn=fu,kjn=d$,pjn=AO,mjn=[0,[0,GN,1],[0,J,1]],djn=d$,_jn=yT,hjn=AO,xjn=yT,yjn=Pt,wjn=AO,gjn=[0,[0,CN,1],[0,SA,1]],qjn=Pt,Ijn=[0,dl,10428,11],Djn=[0,dl,10400,6],Ejn=[1,0],Njn=[0,[11,hs,0],hs],Tjn=[0,[11,Cd,[2,0,0]],oy],Fjn=TD,Mjn=[0,1],Pjn=xy,Ujn=[0,1],Gjn=[0,1],$jn=af,Kjn=vs,Ojn=[0,0],Rjn=[0,0],Qjn=[0,dl,10093,11],Cjn=Bu,Hjn=bj,Vjn=Hq,Ljn=Lv,zjn=$p,Sjn=Ko,Zjn=lh,Wjn=[0,[11,lA,[2,0,[11,NE,0]]],sh],Xjn=[0,[11,$F,[2,0,0]],gN],Jjn=Yw,Yjn=bj,rkn=Hq,ekn=yl,nkn=Lv,tkn=xy,akn=[0,[0,zr,0],0],ukn=Yw,fkn=xy,ikn=xy,vkn=ln,ckn=Pi,Akn=JN,okn=[0,[0,zr,0],0],skn=[0,[0,zr,0],0],bkn=N_,lkn=[0,dl,9861,42],Bkn=[0,dl,9824,13],jkn=[0,dl,9856,11],kkn=[0,dl,9783,6],pkn=[0,1],mkn=[0,1],dkn=[0,dl,9735,13],_kn=[0,dl,9721,13],hkn=[0,[0,DU,0],0],xkn=ey,ykn=Lp,wkn=[0,dl,9675,11],gkn=[0,dl,9661,11],qkn=[0,dl,9656,11],Ikn=[0,dl,9644,11],Dkn=[0,dl,9616,14],Ekn=rx,Nkn=Eq,Tkn=Eq,Fkn=[0,[11,Yu,[2,0,[11,Zd,0]]],MA],Mkn=[0,[11,Yu,[2,0,[11,RN,0]]],Oj],Pkn=[0,[11,Yu,[2,0,[11,Uv,0]]],bF],Ukn=[0,[11,ng,[2,0,[12,10,0]]],SN],Gkn=[0,dl,9458,14],$kn=[0,[11,ng,[2,0,[12,10,0]]],SN],Kkn=[0,dl,9297,26],Okn=[0,dl,9336,7],Rkn=[21,[2,5]],Qkn=[21,[3,4]],Ckn=[0,dl,9333,7],Hkn=[0,dl,9347,7],Vkn=[0,dl,9374,6],Lkn=[0,[11,D_,[2,0,[11,GP,[2,0,[12,10,0]]]]],Bd],zkn=[0,dl,9379,6],Skn=[0,[11,hg,[2,0,[11,rm,[2,0,[11,Eo,0]]]]],Rm],Zkn=vB,Wkn=dR,Xkn=Wm,Jkn=Cl,Ykn=[0,[11,z_,[4,0,0,0,0]],Yf],rpn=YA,epn=nM,npn=[0,0,0],tpn=[0,3,0],apn=[0,2,0],upn=[0,1,0],fpn=[0,0,0],ipn=uD,vpn=[0,0,0],cpn=PK,Apn=PK,opn=[0,dl,9175,11],spn=NC(zK,zK,Fn),bpn=NC(0,0,0),lpn=rQ,Bpn=[20,[1,0]],jpn=NC(zK,zK,Fn),kpn=zd,ppn=Jh,mpn=WR,dpn=wa,_pn=t_,hpn=[20,[1,0]],xpn=[18,[1,7]],ypn=NC(8,0,0),wpn=[20,[1,0]],gpn=NC(4,0,0),qpn=[17,[1,0]],Ipn=t_,Dpn=pk,Epn=vq,Npn=[18,[1,7]],Tpn=[20,[1,0]],Fpn=NC(4,0,0),Mpn=NC(0,0,0),Ppn=[0,[11,"higher stable memory version (expected 1..",[2,0,[12,41,0]]],"higher stable memory version (expected 1..%s)"],Upn=[18,[0,5]],Gpn=NC(1,0,0),$pn=[17,[0,0]],Kpn=NC(0,0,0),Opn=[17,[1,0]],Rpn=[17,[1,0]],Qpn=NC(0,0,0),Cpn=AO,Hpn=zd,Vpn=vq,Lpn=t_,zpn=NC(0,0,0),Spn=[21,[0,2]],Zpn=NC(1,0,0),Wpn=NC(4,0,0),Xpn=NC(24,0,0),Jpn=NC(4,0,0),Ypn=NC(4,0,0),rmn=NC(0,0,0),emn=NC(12,0,0),nmn=NC(0,0,0),tmn=[17,[1,0]],amn=g$,umn=[20,[0,0]],fmn=[21,[0,2]],imn=[20,[1,1]],vmn=[21,[0,2]],cmn=NC(4,0,0),Amn=[20,[1,1]],omn=uy,smn=zd,bmn=AO,lmn=$P,Bmn=[20,[1,0]],jmn=NC(4,0,0),kmn=[21,[1,1]],pmn=Oy,mmn=zd,dmn=Gd,_mn=ow,hmn=[14,[0,0,0,NC(0,0,0),0]],xmn=Rj,ymn=DN,wmn=DN,gmn=Oy,qmn=kd,Imn=$D,Dmn=YM,Emn=[20,[0,8]],Nmn=[20,[0,8]],Tmn=[0,1],Fmn=[20,[0,8]],Mmn=[20,[0,0]],Pmn=Rj,Umn=[20,[1,0]],Gmn=[21,[1,1]],$mn=Cc,Kmn=ov,Omn=hF,Rmn=[0,1],Qmn=[20,[0,7]],Cmn=[18,[0,9]],Hmn=[20,[0,7]],Vmn=[18,[0,1]],Lmn=[18,[0,1]],zmn=[21,[0,2]],Smn=cg,Zmn=[17,[1,0]],Wmn=NC(32,0,0),Xmn=fN,Jmn=zd,Ymn=zd,rdn=a,edn=[2,15],ndn=[3,1,0,0],tdn=uR,adn=NC(0,0,0),udn=[0,0,[0,0,0]],fdn=[0,vx,0],idn=[14,[0,1,0,NC(0,0,0),0]],vdn=$D,cdn=Jh,Adn=Zw,odn=[18,[0,2]],sdn=[20,[0,1]],bdn=zG,ldn=ql,Bdn=[0,1],jdn=gG,kdn=jF,pdn=[14,[0,3,0,NC(0,0,0),0]],mdn=[14,[0,2,0,NC(0,0,0),0]],ddn=[14,[0,1,0,NC(0,0,0),0]],_dn=[14,[0,0,0,NC(0,0,0),[0,1]]],hdn=Zy,xdn=[2,15],ydn=[3,1,0,0],wdn=Ac,gdn=li,qdn=[0,0,[0,0,0]],Idn=[0,[0,vx,0],[0,JI,0],[0,SM,0]],Ddn=Hm,Edn=jq,Ndn=b,Tdn=Rw,Fdn=eO,Mdn=qn,Pdn=wa,Udn=cv,Gdn=[21,[1,1]],$dn=zd,Kdn=vx,Odn=wa,Rdn=xu,Qdn=yx,Cdn=yx,Hdn=zd,Vdn=Kq,Ldn=$D,zdn=xu,Sdn=fB,Zdn=Hd,Wdn=[18,[0,3]],Xdn=[0,[11,MF,[2,0,[11,oK,0]]],$h],Jdn=qn,Ydn=wa,r_n=cv,e_n=dk,n_n=NC(0,0,0),t_n=tM,a_n=[2,19],u_n=tv,f_n=Hm,i_n=MD,v_n=xu,c_n=[18,[0,0]],A_n=rf,o_n=Jh,s_n=Zw,b_n=[18,[0,2]],l_n=kh,B_n=Qi,j_n=MG,k_n=[2,19],p_n=[18,[0,8]],m_n=[20,[0,0]],d_n=[18,[0,8]],__n=[20,[0,0]],h_n=[18,[0,8]],x_n=rK,y_n=zd,w_n=vx,g_n=aR,q_n=zd,I_n=vx,D_n=QG,E_n=[18,[0,7]],N_n=zd,T_n=vx,F_n=Sv,M_n=ZR,P_n=[0,dl,7780,15],U_n=ze,G_n=[18,[0,0]],$_n=eU,K_n=gM,O_n=PR,R_n=[2,2],Q_n=YU,C_n=[2,19],H_n=nA,V_n=wa,L_n=zd,z_n=vx,S_n=wa,Z_n=xu,W_n=wa,X_n=xu,J_n=wa,Y_n=[2,0],rhn=mK,ehn=g,nhn=hD,thn=[18,[0,7]],ahn=NC(1,0,0),uhn=[0,0,0],fhn=Nv,ihn=ze,vhn=[20,[0,0]],chn=[20,[0,2]],Ahn=Ow,ohn=we,shn=Gw,bhn=Cc,lhn=Hp,Bhn=Yi,jhn=cG,khn=nI,phn=wa,mhn=tr,dhn=Bm,_hn=[0,[0,WR,0],[0,ik,0]],hhn=Cc,xhn=Hp,yhn=Yi,whn=cG,ghn=oe,qhn=EA,Ihn=[18,[0,0]],Dhn=[20,[0,0]],Ehn=hT,Nhn=[18,[0,3]],Thn=Ac,Fhn=[0,0,[0,0,0]],Mhn=[0,vx,0],Phn=UB,Uhn=oq,Ghn=[0,0,0],$hn=[0,[0,Dp,0],[0,"typtbl1",0],[0,"typtbl_end1",0],[0,"typtbl_size1",0],[0,pc,0],[0,wv,0]],Khn=UB,Ohn=Rc,Rhn=Dp,Qhn=j,Chn=[0,[11,cA,[2,0,[12,10,0]]],ME],Hhn=[0,dl,7103,12],Vhn=[0,dl,7156,15],Lhn=[0,dl,7161,18],zhn=[5,[2,3]],Shn=[0,dl,7190,8],Zhn=[0,dl,7205,17],Whn=[0,dl,7217,13],Xhn=[0,dl,7127,6],Jhn=O,Yhn=[0,16],rxn=[0,17],exn=[0,2],nxn=[0,3],txn=[0,5],axn=[0,6],uxn=[0,8],fxn=[0,4],ixn=[0,9],vxn=[0,10],cxn=[0,11],Axn=[0,12],oxn=[0,14],sxn=[0,13],bxn=[0,15],lxn=[0,24],Bxn=[0,Ih],jxn=[0,7],kxn=[0,1],pxn=ji,mxn=[20,[1,1]],dxn=Te,_xn=[18,[1,3]],hxn=[0,[0,Qn,0],[0,[0,nn,1],0]],xxn=ji,yxn=tw,wxn=NC(zK,zK,Fn),gxn=[18,[1,3]],qxn=[20,[1,0]],Ixn=[21,[1,1]],Dxn=[20,[1,4]],Exn=[21,[1,1]],Nxn=[20,[1,2]],Txn=[21,[1,1]],Fxn=[21,[1,1]],Mxn=ks,Pxn=ks,Uxn=q_,Gxn=q_,$xn=Lj,Kxn=Lj,Oxn=Xp,Rxn=Xp,Qxn=XP,Cxn=XP,Hxn=vO,Vxn=vO,Lxn=yN,zxn=yN,Sxn=xt,Zxn=xt,Wxn=zm,Xxn=zm,Jxn=vN,Yxn=vN,ryn=Tv,eyn=Tv,nyn=oB,tyn=oB,ayn=oB,uyn=Tv,fyn=vN,iyn=zm,vyn=xt,cyn=yN,Ayn=Xp,oyn=XP,syn=Lj,byn=NC(0,0,0),lyn=vO,Byn=q_,jyn=ks,kyn=uU,pyn=_G,myn=$m,dyn=lE,_yn=uU,hyn=$m,xyn=_G,yyn=lE,wyn=zd,gyn=zd,qyn=[14,[0,0,0,NC(0,0,0),[0,0]]],Iyn=[14,[0,0,0,NC(0,0,0),0]],Dyn=Rj,Eyn=[20,[0,0]],Nyn=Bh,Tyn=[18,[0,0]],Fyn=[20,[0,0]],Myn=[20,[0,8]],Pyn=Yl,Uyn=[0,0,0],Gyn=[0,[0,jc,0],0],$yn=Oq,Kyn=Oq,Oyn=vt,Ryn=vt,Qyn=[0,[0,jy,0],[0,[0,zd,0],0]],Cyn=IE,Hyn=IE,Vyn=[0,0,0],Lyn=v_,zyn=v_,Syn=[0,[0,"new_hp",0],0],Zyn=[0,0,0],Wyn=[0,[0,Jh,1],[0,[0,Bg,1],[0,[0,i,1],0]]],Xyn=pO,Jyn=ON,Yyn=h_,rwn=pO,ewn=[0,[0,AO,1],[0,[0,Jh,1],[0,[0,i,1],0]]],nwn=Ju,twn=KO,awn=h_,uwn=Ju,fwn=[0,1,0],iwn=[0,[0,Ln,1],0],vwn=VB,cwn=VB,Awn=[0,1,0],own=AD,swn=AD,bwn=[0,0,0],lwn=x_,Bwn=x_,jwn=[0,[0,pk,0],0],kwn=St,pwn=St,mwn=ji,dwn=ji,_wn=Yh,hwn=Yh,xwn=NC(0,0,0),ywn=Yh,wwn=[0,[0,Jh,1],[0,lI,3]],gwn=ch,qwn=[0,3,0],Iwn=[0,3,0],Dwn=[0,Jh,1],Ewn=p,Nwn=[0,[0,Jh,1],[0,lI,1]],Twn=TF,Fwn=[0,1,0],Mwn=[0,1,0],Pwn=[0,Jh,1],Uwn=ar,Gwn=[0,[0,Jh,1],[0,lI,0]],$wn=V$,Kwn=[0,0,0],Own=[0,0,0],Rwn=[0,Jh,1],Qwn=DB,Cwn=[0,[0,Jh,1],[0,lI,0]],Hwn=Gr,Vwn=[0,0,0],Lwn=[0,0,0],zwn=[0,Jh,1],Swn=DG,Zwn=[0,[0,Jh,1],[0,lI,0]],Wwn=vv,Xwn=[0,0,0],Jwn=[0,0,0],Ywn=[0,Jh,1],rgn=qv,egn=[0,[0,Jh,1],[0,WR,0]],ngn=TM,tgn=[0,0,0],agn=[0,0,0],ugn=[0,[0,Jh,1],[0,zd,0]],fgn=Aj,ign=i,vgn=[20,[0,7]],cgn=[18,[1,5]],Agn=NC(0,0,0),ogn=[0,1,0],sgn=[0,1,0],bgn=[0,rQ,1],lgn=_B,Bgn=[0,1,0],jgn=[0,1,0],kgn=Qe,pgn=zd,mgn=[21,[1,1]],dgn=[21,[1,1]],_gn=[0,[0,Jh,1],[0,WR,0]],hgn=BF,xgn=WR,ygn=[21,[1,1]],wgn=[21,[1,1]],ggn=[0,0,0],qgn=[0,[0,Jh,1],[0,zd,0]],Ign=vP,Dgn=[14,[0,3,0,NC(0,0,0),0]],Egn=f_,Ngn=[13,[0,3,0,NC(0,0,0),0]],Tgn=f_,Fgn=[14,[0,1,0,NC(0,0,0),0]],Mgn=mi,Pgn=[13,[0,1,0,NC(0,0,0),0]],Ugn=mi,Ggn=Wn,$gn=[13,[0,0,0,NC(0,0,0),[0,[0,1,1]]]],Kgn=Wn,Ogn=oF,Rgn=[13,[0,0,0,NC(0,0,0),[0,[0,0,1]]]],Qgn=oF,Cgn=$k,Hgn=$k,Vgn=i,Lgn=qU,zgn=A_,Sgn=[18,[1,2]],Zgn=NC(0,0,0),Wgn=[20,[1,0]],Xgn=NC(zK,zK,Fn),Jgn=[18,[1,5]],Ygn=[20,[1,0]],rqn=[0,1,0],eqn=[0,rQ,1],nqn=jp,tqn=jj,aqn=[18,[1,2]],uqn=NC(0,0,0),fqn=NC(1,0,0),iqn=[20,[1,12]],vqn=uP,cqn=[18,[1,3]],Aqn=[20,[1,0]],oqn=[0,[0,Jh,1],[0,i,1]],sqn=xr,bqn=i,lqn=vf,Bqn=[18,[1,4]],jqn=NC(0,0,0),kqn=[20,[1,1]],pqn=[0,1,0],mqn=[0,rQ,1],dqn=Ql,_qn=[14,[0,1,2,NC(0,0,0),0]],hqn=[13,[0,1,2,NC(0,0,0),0]],xqn=NC(0,0,0),yqn=mi,wqn=$k,gqn=Rj,qqn=[21,[1,1]],Iqn=[21,[1,1]],Dqn=Jb,Eqn=[0,Jh,1],Nqn=[0,[11,"__stablemem_read_and_clear_",[2,0,0]],"__stablemem_read_and_clear_%s"],Tqn=[14,[0,1,2,NC(0,0,0),0]],Fqn=mi,Mqn=$k,Pqn=[21,[1,1]],Uqn=Jb,Gqn=lI,$qn=[0,Jh,1],Kqn=AE,Oqn=[0,[11,Dl,[2,0,[11,kw,[2,0,0]]]],Mu],Rqn=[21,[1,1]],Qqn=Jb,Cqn=[0,Jh,1],Hqn=AE,Vqn=[0,[11,Dl,[2,0,[11,hl,[2,0,0]]]],mM],Lqn=Zh,zqn=[18,[1,5]],Sqn=[20,[1,10]],Zqn=[20,[1,0]],Wqn=[21,[1,1]],Xqn=pM,Jqn=[18,[1,3]],Yqn=[20,[1,1]],rIn=[21,[1,1]],eIn=[18,[0,7]],nIn=[0,[0,Jh,1],[0,i,0]],tIn=PG,aIn=cr,uIn=[18,[1,9]],fIn=[20,[1,10]],iIn=Qg,vIn=Qg,cIn=ms,AIn=ms,oIn=NC(0,0,0),sIn=ms,bIn=Qg,lIn=[0,[0,Jh,1],[0,Bg,1],[0,i,1]],BIn=ON,jIn=ON,kIn=[0,[0,AO,1],[0,Jh,1],[0,i,1]],pIn=KO,mIn=KO,dIn=[21,[1,1]],_In=[0,1,0],hIn=uM,xIn=uM,yIn=hk,wIn=[21,[1,1]],gIn=NC(zK,zK,Fn),qIn=[18,[0,0]],IIn=[0,1,0],DIn=[0,rQ,1],EIn=ep,NIn=ep,TIn=[21,[0,2]],FIn=[21,[0,2]],MIn=NC(32,0,0),PIn=AO,UIn=[0,0,0],GIn=[0,ia,0],$In=jB,KIn=AO,OIn=[0,0,0],RIn=Kk,QIn=AO,CIn=[0,0,0],HIn=mu,VIn=AO,LIn=[0,0,0],zIn=[0,ia,0],SIn=Uq,ZIn=[0,ia,0],WIn=Wk,XIn=AO,JIn=[0,0,0],YIn=ZT,rDn=ia,eDn=VA,nDn=jb,tDn=[13,[0,1,0,NC(8,0,0),0]],aDn=[17,[1,0]],uDn=[13,[0,1,0,NC(8,0,0),0]],fDn=[13,[0,1,0,NC(0,0,0),0]],iDn=[0,0,0],vDn=[0,Sx,0],cDn=Zj,ADn=qk,oDn=hn,sDn=QN,bDn=pD,lDn=jk,BDn=ej,jDn=UO,kDn=ap,pDn=iE,mDn=zU,dDn=Np,_Dn=xM,hDn=zE,xDn=cq,yDn=zE,wDn=Ub,gDn=Kw,qDn=Xk,IDn=mF,DDn=[20,[0,8]],EDn=ET,NDn=LO,TDn=jv,FDn=ZD,MDn=lG,PDn=G_,UDn=ET,GDn=jv,$Dn=Kj,KDn=LO,ODn=Rs,RDn=[18,[0,0]],QDn=ZD,CDn=NK,HDn=[0,[11,dI,[2,0,0]],ko],VDn=[0,0,0],LDn=[0,[0,jq,0],[0,b,0]],zDn=UN,SDn=Io,ZDn=NB,WDn=[0,[0,DA,0],[0,i,0]],XDn=jT,JDn=[0,0,0],YDn=hu,rEn=ex,eEn=zb,nEn=[0,0,0],tEn=Nq,aEn=[18,[0,0]],uEn=Bw,fEn=kE,iEn=[0,[0,Vl,1],[0,[0,Uu,2],[0,[0,nt,3],[0,[0,Ci,4],[0,[0,aj,5],[0,[0,ui,6],0]]]]]],vEn=iU,cEn=[0,0,0],AEn=Co,oEn=_r,sEn=NG,bEn=Fr,lEn=Mw,BEn=ln,jEn=Pi,kEn=rs,pEn=CR,mEn=Vp,dEn=Rg,_En=Ve,hEn=sU,xEn=Gu,yEn=[0,0,0],wEn=XO,gEn=Xj,qEn=jK,IEn=Zs,DEn=[0,0,0],EEn=w$,NEn=ZD,TEn=ET,FEn=uf,MEn=bP,PEn=ie,UEn=lI,GEn=Br,$En=sn,KEn=Ox,OEn=JD,REn=Kd,QEn=Wi,CEn=bP,HEn=Kd,VEn=XU,LEn=LA,zEn=zd,SEn=km,ZEn=nj,WEn=Pm,XEn=yR,JEn=hI,YEn=vh,rNn=fy,eNn=Mf,nNn=Pu,tNn=jw,aNn=jt,uNn=pm,fNn=rE,iNn=[0,0,0],vNn=$r,cNn=NK,ANn=G_,oNn=bp,sNn=[0,0,0],bNn=Wd,lNn=VM,BNn=xU,jNn=yO,kNn=XN,pNn=tF,mNn=S_,dNn=Zf,_Nn=nx,hNn=eF,xNn=xU,yNn=[0,dl,5399,4],wNn=Ri,gNn=Ri,qNn=XT,INn=[0,dl,5387,4],DNn=uK,ENn=uK,NNn=WO,TNn=na,FNn=[0,dl,5374,4],MNn=G,PNn=G,UNn=kv,GNn=[0,dl,5362,4],$Nn=sj,KNn=sj,ONn=Ke,RNn=[0,dl,5349,4],QNn=gF,CNn=gF,HNn=xU,VNn=[0,dl,5334,4],LNn=or,zNn=or,SNn=EI,ZNn=QK,WNn=Uh,XNn=WR,JNn=[0,jy,0],YNn=LE,rTn=_k,eTn=[0,[11,kB,[2,0,[11,NE,0]]],kF],nTn=ou,tTn=pf,aTn=ou,uTn=pf,fTn=[14,[0,0,0,NC(16,0,0),[0,0]]],iTn=[14,[0,0,2,NC(12,0,0),0]],vTn=[14,[0,0,2,NC(8,0,0),0]],cTn=[14,[0,0,2,NC(4,0,0),0]],ATn=[14,[0,0,2,NC(0,0,0),0]],oTn=Vy,sTn=KK,bTn=[0,[0,Sx,0],[0,[0,zd,0],0]],lTn=_k,BTn=_k,jTn=_k,kTn=h_,pTn=[0,0,0],mTn=[0,0,[0,0,[0,0,[0,0,0]]]],dTn=ou,_Tn=pf,hTn=WO,xTn=h_,yTn=Hq,wTn=h_,gTn=Ub,qTn=h_,ITn=[0,0,0],DTn=WF,ETn=h_,NTn=Lv,TTn=h_,FTn=[0,0,0],MTn=bj,PTn=h_,UTn=yl,GTn=h_,$Tn=Xk,KTn=h_,OTn=G_,RTn=h_,QTn=NK,CTn=h_,HTn=[0,0,0],VTn=tF,LTn=h_,zTn=[0,1,0],STn=Gp,ZTn=h_,WTn=Mf,XTn=h_,JTn=fy,YTn=h_,rFn=[0,0,0],eFn=lm,nFn=h_,tFn=[0,0,0],aFn=kP,uFn=h_,fFn=pm,iFn=h_,vFn=jt,cFn=h_,AFn=KK,oFn=h_,sFn=Pi,bFn=h_,lFn=ln,BFn=h_,jFn=ET,kFn=h_,pFn=ZD,mFn=h_,dFn=xM,_Fn=h_,hFn=zU,xFn=h_,yFn=cq,wFn=h_,gFn=ap,qFn=h_,IFn=Pt,DFn=h_,EFn=yT,NFn=h_,TFn=d$,FFn=h_,MFn=[0,0,0],PFn=fu,UFn=h_,GFn=[0,0,0],$Fn=kA,KFn=h_,OFn=ej,RFn=h_,QFn=[0,0,0],CFn=pD,HFn=h_,VFn=qk,LFn=h_,zFn=hn,SFn=h_,ZFn=CR,WFn=h_,XFn=Vp,JFn=h_,YFn=[0,0,0],rMn=iU,eMn=h_,nMn=ex,tMn=h_,aMn=zb,uMn=h_,fMn=NG,iMn=h_,vMn=NB,cMn=h_,AMn=Io,oMn=h_,sMn=[0,1,0],bMn=Mw,lMn=h_,BMn=[0,1,0],jMn=[0,0,0],kMn=Ef,pMn=h_,mMn=Uh,dMn=h_,_Mn=ON,hMn=h_,xMn=KO,yMn=h_,wMn=[0,1,0],gMn=uM,qMn=h_,IMn=[0,1,0],DMn=[0,1,0],EMn=ep,NMn=h_,TMn=nj,FMn=h_,MMn=LA,PMn=h_,UMn=XU,GMn=h_,$Mn=[0,0,0],KMn=Ox,OMn=h_,RMn=sn,QMn=h_,CMn=Br,HMn=h_,VMn=Xj,LMn=h_,zMn=jK,SMn=h_,ZMn=Ve,WMn=h_,XMn=sU,JMn=h_,YMn=[0,1,0],rPn=vh,ePn=h_,nPn=[0,1,0],tPn=[0,1,0],aPn=Jg,uPn=h_,fPn=Ro,iPn=Ro,vPn=gh,cPn=gh,APn=gh,oPn=Ro,sPn=[0,0,0],bPn=[0,1,[0,3,[0,8,[0,9,0]]]],lPn=[0,2,0],BPn=[0,2,0],jPn=[0,4,0],kPn=[0,2,0],pPn=[0,6,0],mPn=[0,1,0],dPn=[0,2,[0,9,0]],_Pn=qu,hPn=Se,xPn=ls,yPn=AT,wPn=cx,gPn=P$,qPn=OD,IPn=$e,DPn=Pn,EPn=ha,NPn=[0,[11,pU,[4,3,0,0,[11,AG,0]]],wA],TPn=[0,xq,0],FPn=[0,[11,sP,[4,3,0,0,0]],Tg],MPn=[0,[11,"to_",[4,3,0,0,[11,AG,0]]],eh],PPn=[0,0,0],UPn=[14,[0,0,0,NC(0,0,0),[0,0]]],GPn=[20,[0,0]],$Pn=zd,KPn=TP,OPn=[0,0,0],RPn=[0,km,0],QPn=En,CPn=[13,[0,0,0,NC(0,0,0),[0,[0,0,1]]]],HPn=[20,[0,0]],VPn=zd,LPn=TP,zPn=[0,dl,4905,87],SPn=rp,ZPn=sl,WPn=[0,0,0],XPn=[0,WR,0],JPn=OI,YPn=TP,rUn=eo,eUn=vx,nUn=TP,tUn=ND,aUn=Tp,uUn=[18,[0,3]],fUn=[20,[0,0]],iUn=[20,[0,0]],vUn=Hu,cUn=[0,dl,4785,12],AUn=EK,oUn=[0,0,0],sUn=[0,[0,km,0],[0,LU,0]],bUn=PP,lUn=[20,[0,0]],BUn=EK,jUn=[18,[0,3]],kUn=[0,0,0],pUn=[0,[0,km,0],[0,LU,0]],mUn=js,dUn=[20,[0,0]],_Un=[0,0,0],hUn=[0,[0,km,0],[0,LU,0]],xUn=Uk,yUn=[18,[0,0]],wUn=[0,dl,4707,19],gUn=[18,[0,2]],qUn=[18,[0,4]],IUn=[18,[0,6]],DUn=[18,[0,8]],EUn=op,NUn=rw,TUn=[0,dl,4695,19],FUn=RM,MUn=DD,PUn=Tk,UUn=jl,GUn=[0,0,0],$Un=[0,[0,vx,0],[0,Nb,0]],KUn=PT,OUn=Gb,RUn=vb,QUn=WR,CUn=Mi,HUn=cb,VUn=tm,LUn=yc,zUn=Ix,SUn=Dx,ZUn=[0,0,0],WUn=[0,Xv,0],XUn=Dx,JUn=fQ,YUn=Ne,rGn=N,eGn=uc,nGn=Qh,tGn=PO,aGn=am,uGn=Zt,fGn=mj,iGn=hA,vGn=wo,cGn=MO,AGn=LR,oGn=k_,sGn=Px,bGn=Zq,lGn=Iw,BGn=BE,jGn=Fm,kGn=Wo,pGn=te,mGn=u_,dGn=ja,_Gn=JG,hGn=[18,[0,7]],xGn=[18,[0,9]],yGn=[18,[0,3]],wGn=[0,dl,4450,19],gGn=[18,[0,0]],qGn=[13,[0,0,0,NC(0,0,0),[0,[0,0,1]]]],IGn=[20,[0,0]],DGn=[13,[0,0,0,NC(0,0,0),[0,[0,0,1]]]],EGn=[20,[0,0]],NGn=[0,0],TGn=[0,5],FGn=[0,4],MGn=HD,PGn=Jf,UGn=zd,GGn=jQ,$Gn=Sv,KGn=[18,[0,7]],OGn=[18,[0,9]],RGn=[18,[0,5]],QGn=[18,[0,3]],CGn=[0,dl,4466,15],HGn=[0,0],VGn=[18,[0,0]],LGn=[18,[0,7]],zGn=wG,SGn=fF,ZGn=ka,WGn=qO,XGn=OF,JGn=Wp,YGn=WA,r$n=[0,0,0],e$n=[0,[0,vx,0],[0,Nb,0]],n$n=Sx,t$n=zd,a$n=[0,vx,0],u$n=zd,f$n=lQ,i$n=[0,0,0],v$n=[0,[0,WR,0],[0,LU,0]],c$n=mG,A$n=[13,[0,0,0,NC(0,0,0),[0,[0,0,1]]]],o$n=[20,[0,0]],s$n=lQ,b$n=[18,[0,3]],l$n=[0,0,0],B$n=[0,[0,WR,0],[0,LU,0]],j$n=qh,k$n=EE,p$n=_q,m$n=kp,d$n=zd,_$n=WR,h$n=AO,x$n=[0,[11,Up,[2,0,[12,95,[2,0,0]]]],IU],y$n=[0,0,0],w$n=[0,Bg,0],g$n=vx,q$n=[0,0,0],I$n=[0,[0,Sx,0],[0,i,0]],D$n=ot,E$n=[0,0,[0,0,0]],N$n=[0,vx,0],T$n=qf,F$n=cm,M$n=[0,0,0],P$n=[0,Xv,0],U$n=KD,G$n=[0,dl,4244,11],$$n=[0,[11,Cp,[4,0,0,0,[12,62,0]]],PI],K$n=[0,0,0],O$n=[0,[0,vx,0],[0,Fl,0]],R$n=Nr,Q$n=[18,[0,0]],C$n=[0,[11,P,[4,0,0,0,[12,62,0]]],et],H$n=[0,0,0],V$n=[0,[0,vx,0],[0,Fl,0]],L$n=[18,[0,7]],z$n=dG,S$n=[18,[0,7]],Z$n=Oa,W$n=pP,X$n=gP,J$n=Pr,Y$n=BM,rKn=ge,eKn=mT,nKn=Fq,tKn=pu,aKn=TU,uKn=ht,fKn=Ai,iKn=tB,vKn=Ai,cKn=ht,AKn=tB,oKn=vD,sKn=$$,bKn=nR,lKn=Xx,BKn=QU,jKn=ge,kKn=[0,0,0],pKn=[0,$t,0],mKn=qi,dKn=[0,0],_Kn=fI,hKn=Nf,xKn=cl,yKn=gs,wKn=$t,gKn=DR,qKn=Cb,IKn=zs,DKn=gs,EKn=$t,NKn=aA,TKn=Mg,FKn=DR,MKn=aA,PKn=tQ,UKn=ST,GKn=r_,$Kn=gi,KKn=ST,OKn=ke,RKn=z$,QKn=iK,CKn=vl,HKn=jQ,VKn=By,LKn=[0,0,0],zKn=jQ,SKn=[0,0,0],ZKn=jQ,WKn=[0,0,0],XKn=jQ,JKn=[0,1,0],YKn=jQ,rOn=[0,0,0],eOn=jQ,nOn=[21,[1,1]],tOn=[0,0,0],aOn=jQ,uOn=[0,0,0],fOn=jQ,iOn=[0,0,0],vOn=vx,cOn=vx,AOn=DN,oOn=vx,sOn=XK,bOn=DN,lOn=vx,BOn=XK,jOn=vx,kOn=gs,pOn=vx,mOn=gs,dOn=jQ,_On=[19,[1,1]],hOn=[17,[1,0]],xOn=NC(XM,32896,0),yOn=NC(zK,zK,Fn),wOn=vG,gOn=lB,qOn=jQ,IOn=[20,[0,1]],DOn=[18,[0,2]],EOn=[0,dl,3690,15],NOn=[17,[0,0]],TOn=[20,[0,9]],FOn=jQ,MOn=[0,dl,3649,15],POn=[17,[0,0]],UOn=[0,0,0],GOn=[0,0,0],$On=[0,0,0],KOn=[18,[0,0]],OOn=[0,0,0],ROn=[0,[0,jQ,0],[0,Sv,0]],QOn=_g,COn=[0,0,0],HOn=[0,0,0],VOn=[0,0,0],LOn=[0,0,0],zOn=[0,[0,jQ,0],[0,Sv,0]],SOn=[20,[0,1]],ZOn=[0,0,0],WOn=[0,0,0],XOn=[0,$t,0],JOn=Sq,YOn=$t,rRn=[18,[0,2]],eRn=[0,0,0],nRn=fl,tRn=[20,[0,2]],aRn=[20,[0,12]],uRn=[0,0,0],fRn=[0,0,0],iRn=[0,[0,$t,0],[0,Na,0]],vRn=nP,cRn=fl,ARn=[20,[0,7]],oRn=[18,[1,0]],sRn=[21,[1,0]],bRn=[21,[0,2]],lRn=[20,[1,10]],BRn=[21,[1,1]],jRn=[21,[1,0]],kRn=[0,0,0],pRn=[0,0,0],mRn=[0,[0,$t,0],[0,Na,0]],dRn=yw,_Rn=fl,hRn=tx,xRn=[0,0,0],yRn=[0,0,0],wRn=[0,0,0],gRn=[18,[1,7]],qRn=NC(64,0,0),IRn=[20,[1,2]],DRn=[20,[1,1]],ERn=[19,[1,0]],NRn=NC(64,0,0),TRn=[0,0,0],FRn=[0,0,0],MRn=[0,[0,jQ,0],[0,Sv,0]],PRn=dB,URn=fl,GRn=tx,$Rn=[0,0,0],KRn=[0,0,0],ORn=[0,0,0],RRn=[0,0,0],QRn=[0,0,0],CRn=[0,[0,jQ,0],[0,Sv,0]],HRn=NC(32,0,0),VRn=[21,[0,2]],LRn=NC(32,0,0),zRn=[21,[1,0]],SRn=Mr,ZRn=sc,WRn=pw,XRn=MP,JRn=bG,YRn=dN,rQn=[20,[0,1]],eQn=[19,[0,0]],nQn=[20,[0,9]],tQn=[19,[0,0]],aQn=$f,uQn=lR,fQn=K_,iQn=D$,vQn=[13,[0,2,0,NC(0,0,0),0]],cQn=[13,[0,3,0,NC(0,0,0),0]],AQn=[13,[0,1,0,NC(0,0,0),0]],oQn=[13,[0,1,0,NC(0,0,0),0]],sQn=NC(zK,zK,Fn),bQn=[13,[0,0,0,NC(0,0,0),0]],lQn=[13,[0,0,0,NC(0,0,0),[0,[0,1,1]]]],BQn=[13,[0,0,0,NC(0,0,0),[0,[0,0,1]]]],jQn=[18,[0,0]],kQn=TB,pQn=[18,[0,7]],mQn=[20,[0,1]],dQn=ku,_Qn=KT,hQn=[20,[0,0]],xQn=gs,yQn=[20,[0,0]],wQn=[14,[0,0,2,NC(0,0,0),0]],gQn=[13,[0,0,2,NC(0,0,0),0]],qQn=[3,2],IQn=[0,0,0],DQn=[0,OI,2],EQn=[3,2],NQn=_j,TQn=[1,2],FQn=[0,0,0],MQn=[0,OI,3],PQn=B,UQn=[1,2],GQn=[0,dl,2977,11],$Qn=[0,dl,2968,11],KQn=[20,[0,14]],OQn=[20,[0,8]],RQn=[0,0,0],QQn=[0,[0,$t,0],[0,jM,0]],CQn=YF,HQn=[20,[0,13]],VQn=[20,[0,8]],LQn=[0,0,0],zQn=[0,[0,$t,0],[0,jM,0]],SQn=ek,ZQn=oO,WQn=[18,[0,8]],XQn=fg,JQn=[0,0,0],YQn=[0,[0,$t,0],[0,UA,0]],rCn=CE,eCn=[20,[0,2]],nCn=[20,[0,2]],tCn=[20,[0,2]],aCn=[17,[0,0]],uCn=[18,[0,7]],fCn=[17,[0,0]],iCn=aa,vCn=[0,0,0],cCn=[0,[0,$t,0],[0,UA,0]],ACn=[20,[0,2]],oCn=wb,sCn=[20,[0,8]],bCn=[18,[0,5]],lCn=[20,[0,7]],BCn=[18,[0,3]],jCn=[18,[0,9]],kCn=[0,0,0],pCn=[0,$t,0],mCn=xg,dCn=Sv,_Cn=[20,[0,7]],hCn=[20,[0,10]],xCn=[19,[0,1]],yCn=[19,[0,0]],wCn=[0,dl,2818,11],gCn=uQ,qCn=[0,dl,2790,11],ICn=[0,dl,2781,12],DCn=[0,dl,2773,11],ECn=[0,0,0],NCn=[0,0,0],TCn=[0,$t,0],FCn=[0,0,0],MCn=[0,0,0],PCn=[0,$t,0],UCn=[0,dl,2715,11],GCn=[3,1],$Cn=[3,0],KCn=Sv,OCn=[20,[1,7]],RCn=[20,[1,10]],QCn=NC(1,0,0),CCn=oO,HCn=[18,[1,8]],VCn=NC(0,0,0),LCn=[0,1,0],zCn=[0,[0,$t,1],[0,UA,1]],SCn=Sd,ZCn=CE,WCn=[20,[1,2]],XCn=NC(1,0,0),JCn=[20,[1,2]],YCn=[20,[1,2]],rHn=[17,[1,0]],eHn=NC(63,0,0),nHn=[18,[1,7]],tHn=NC(1,0,0),aHn=[17,[1,0]],uHn=NC(1,0,0),fHn=aa,iHn=[0,1,0],vHn=[0,[0,$t,1],[0,UA,1]],cHn=[20,[1,1]],AHn=QU,oHn=[18,[1,3]],sHn=[0,1,0],bHn=[0,[0,"n1",1],[0,"n2",1]],lHn=zy,BHn=[20,[1,6]],jHn=[20,[1,4]],kHn=[20,[1,5]],pHn=[20,[1,3]],mHn=[20,[1,2]],dHn=[20,[1,1]],_Hn=[20,[1,0]],hHn=[0,1,0],xHn=[0,1,0],yHn=[0,$t,0],wHn=Zm,gHn=[0,0,0],qHn=[0,0,0],IHn=[0,$t,1],DHn=_T,EHn=YP,NHn=[0,dl,2578,11],THn=[1,1],FHn=[1,0],MHn=[0,[0,0],0],PHn=GG,UHn=[0,0,0],GHn=[0,0,0],$Hn=[0,0,0],KHn=[0,0,0],OHn=[0,vx,0],RHn=HN,QHn=[0,0,0],CHn=[0,0,0],HHn=[0,0,0],VHn=[0,0,0],LHn=[0,vx,0],zHn=An,SHn=[18,[0,1]],ZHn=z,WHn=[0,[0,0],0],XHn=sT,JHn=MM,YHn=tu,rVn=SD,eVn=mk,nVn=ZK,tVn=$D,aVn=sT,uVn=[0,dl,2075,6],fVn=[0,dl,2069,4],iVn=[0,[11,db,[4,0,0,0,[11,Hb,[4,0,0,0,[12,62,0]]]]],Mj],vVn=[0,0,0],cVn=[0,dl,2064,4],AVn=[0,dl,1935,11],oVn=[17,[0,0]],sVn=[17,[0,0]],bVn=[20,[0,9]],lVn=[0,dl,1904,11],BVn=[0,0,0],jVn=[0,vx,0],kVn=lt,pVn=[0,0,0],mVn=[0,vx,0],dVn=lt,_Vn=[0,dl,1846,11],hVn=[21,[1,0]],xVn=[21,[1,1]],yVn=[21,[0,2]],wVn=[17,[1,0]],gVn=[17,[1,0]],qVn=[17,[1,0]],IVn=[20,[1,9]],DVn=[0,dl,1798,12],EVn=[0,0,0],NVn=[0,vx,1],TVn=br,FVn=[0,0,0],MVn=[0,vx,1],PVn=br,UVn=[0,dl,1742,11],GVn=[0,dl,1733,11],$Vn=NC(1,0,0),KVn=NC(1,0,0),OVn=NC(1,0,0),RVn=NC(0,0,0),QVn=[20,[0,8]],CVn=_n,HVn=Nw,VVn=VT,LVn=wc,zVn=Ht,SVn=[0,wa,0],ZVn=[13,[0,0,2,NC(0,0,0),0]],WVn=[13,[0,0,2,NC(0,0,0),0]],XVn=s,JVn=[18,[0,0]],YVn=[14,[0,0,2,NC(0,0,0),0]],rLn=Ry,eLn=Ry,nLn=$t,tLn=[20,[0,0]],aLn=[20,[0,1]],uLn=[18,[0,3]],fLn=[20,[0,0]],iLn=[0,dl,1470,4],vLn=[19,[0,0]],cLn=[20,[0,1]],ALn=[13,[0,0,2,NC(0,0,0),0]],oLn=fh,sLn=nQ,bLn=nQ,lLn=nQ,BLn=Ry,jLn=nQ,kLn=[0,dl,1414,12],pLn=XI,mLn=[0,0,0],dLn=Un,_Ln=Un,hLn=cR,xLn=Hn,yLn=fd,wLn=Am,gLn=Bv,qLn=Vi,ILn=[20,[1,0]],DLn=[20,[1,0]],ELn=[20,[1,1]],NLn=Ld,TLn=[0,dl,1257,6],FLn=Ld,MLn=[0,dl,J_,6],PLn=Vu,ULn=Vu,GLn=UM,$Ln=UM,KLn=I_,OLn=I_,RLn=NC(0,0,0),QLn=I_,CLn=NC(0,0,0),HLn=UM,VLn=NC(0,0,0),LLn=Vu,zLn=Ld,SLn=Ef,ZLn=h_,WLn=Ov,XLn=[0,0,0],JLn=[0,0,[0,0,[0,0,0]]],YLn=cR,rzn=[0,0,0],ezn=pk,nzn=[0,0,[0,0,[0,0,[0,0,[0,0,[0,0,0]]]]]],tzn=Ow,azn=[0,0,0],uzn=[0,0,[0,0,0]],fzn=j,izn=[0,0,[0,0,[0,0,0]]],vzn=Rc,czn=[0,0,0],Azn=[0,0,[0,0,[0,0,[0,0,[0,0,[0,0,[0,0,[0,0,[0,0,0]]]]]]]]],ozn=UB,szn=[0,0,0],bzn=[0,0,0],lzn=KT,Bzn=[0,0,0],jzn=[0,0,0],kzn=ku,pzn=[0,0,0],mzn=[0,0,0],dzn=gi,_zn=[0,0,0],hzn=[0,0,0],xzn=ST,yzn=[0,0,0],wzn=[0,0,0],gzn=z$,qzn=[0,0,0],Izn=[0,0,0],Dzn=vl,Ezn=[0,0,0],Nzn=[0,0,[0,0,0]],Tzn=iK,Fzn=[0,0,0],Mzn=[0,1,0],Pzn=r_,Uzn=[0,0,0],Gzn=[0,1,0],$zn=tQ,Kzn=[0,0,0],Ozn=[0,3,0],Rzn=x$,Qzn=[0,3,0],Czn=[0,0,0],Hzn=Uc,Vzn=[0,1,0],Lzn=[0,0,0],zzn=ke,Szn=[0,1,0],Zzn=[0,0,0],Wzn=As,Xzn=[0,0,0],Jzn=[0,0,[0,0,0]],Yzn=mT,rSn=[0,0,0],eSn=[0,0,0],nSn=ge,tSn=[0,0,0],aSn=[0,0,0],uSn=dG,fSn=[0,0,0],iSn=[0,0,0],vSn=Oa,cSn=[0,0,0],ASn=[0,0,[0,0,0]],oSn=pP,sSn=[0,0,0],bSn=[0,0,[0,0,0]],lSn=BM,BSn=[0,0,0],jSn=[0,0,[0,0,0]],kSn=gP,pSn=[0,0,0],mSn=[0,0,[0,0,0]],dSn=Pr,_Sn=[0,0,0],hSn=[0,0,[0,0,0]],xSn=$$,ySn=[0,0,0],wSn=[0,0,[0,0,0]],gSn=tB,qSn=[0,0,0],ISn=[0,0,[0,0,0]],DSn=vD,ESn=[0,0,0],NSn=[0,0,[0,0,0]],TSn=Ai,FSn=[0,0,0],MSn=[0,0,[0,0,0]],PSn=ht,USn=[0,0,0],GSn=[0,0,[0,0,0]],$Sn=TU,KSn=[0,0,0],OSn=[0,0,0],RSn=nR,QSn=[0,0,0],CSn=[0,0,[0,0,0]],HSn=pu,VSn=[0,0,0],LSn=[0,0,[0,0,0]],zSn=Fq,SSn=[0,0,0],ZSn=[0,0,0],WSn=Xx,XSn=[0,0,0],JSn=[0,0,0],YSn=aA,rZn=[0,0,[0,0,0]],eZn=Mg,nZn=[0,0,[0,0,0]],tZn=zs,aZn=[0,0,0],uZn=[0,0,0],fZn=Nf,iZn=[0,0,0],vZn=[0,1,[0,1,[0,0,0]]],cZn=lB,AZn=[0,0,0],oZn=[0,0,0],sZn=DR,bZn=[0,0,[0,0,0]],lZn=Cb,BZn=[0,0,[0,0,0]],jZn=cl,kZn=[0,0,0],pZn=[0,0,0],mZn=fI,dZn=[0,0,0],_Zn=[0,1,[0,1,[0,0,0]]],hZn=vG,xZn=[0,0,[0,0,0]],yZn=dN,wZn=[0,0,[0,0,0]],gZn=bG,qZn=[0,0,0],IZn=[0,0,[0,0,0]],DZn=Mi,EZn=[0,0,[0,0,0]],NZn=aR,TZn=[0,0,0],FZn=yx,MZn=[0,0,[0,0,[0,0,[0,0,0]]]],PZn=ze,UZn=[0,0,0],GZn=[0,0,[0,0,[0,0,[0,0,[0,0,0]]]]],$Zn=qn,KZn=[0,0,[0,0,[0,0,[0,0,0]]]],OZn=cv,RZn=[0,0,0],QZn=[0,0,0],CZn=Ht,HZn=[0,0,0],VZn=[0,0,0],LZn=wc,zZn=[0,0,0],SZn=[0,0,0],ZZn=VT,WZn=[0,0,0],XZn=Nw,JZn=[0,0,0],YZn=_n,rWn=[0,0,0],eWn=[0,0,0],nWn=yc,tWn=[0,0,0],aWn=[0,0,[0,0,0]],uWn=op,fWn=[0,0,0],iWn=[0,0,[0,0,0]],vWn=N,cWn=[0,0,0],AWn=[0,0,0],oWn=Gb,sWn=[0,0,0],bWn=[0,0,0],lWn=vb,BWn=[0,0,0],jWn=[0,0,0],kWn=PT,pWn=[0,0,0],mWn=[0,0,0],dWn=Dx,_Wn=[0,0,0],hWn=[0,0,[0,0,0]],xWn=uc,yWn=[0,0,0],wWn=[0,0,0],gWn=Ix,qWn=[0,0,0],IWn=[0,0,0],DWn=Ne,EWn=[0,0,[0,0,0]],NWn=fQ,TWn=[0,0,0],FWn=[0,0,0],MWn=tm,PWn=[0,0,0],UWn=[0,0,0],GWn=cb,$Wn=[0,0,0],KWn=$E,OWn=[0,0,0],RWn=[0,1,[0,0,[0,0,0]]],QWn=JG,CWn=[0,0,[0,1,[0,0,[0,0,0]]]],HWn=ja,VWn=[0,0,0],LWn=Fm,zWn=[0,1,0],SWn=[0,0,0],ZWn=u_,WWn=[0,0,0],XWn=[0,0,0],JWn=te,YWn=[0,0,0],rXn=[0,0,0],eXn=Wo,nXn=[0,1,0],tXn=[0,0,0],aXn=BE,uXn=[0,1,0],fXn=[0,0,[0,1,0]],iXn=Iw,vXn=[0,0,0],cXn=[0,0,[0,1,[0,0,0]]],AXn=Zq,oXn=[0,0,[0,1,[0,0,0]]],sXn=Px,bXn=[0,0,0],lXn=[0,0,[0,1,0]],BXn=k_,jXn=[0,0,[0,1,[0,0,0]]],kXn=LR,pXn=[0,0,0],mXn=[0,0,[0,1,0]],dXn=MO,_Xn=[0,0,[0,1,[0,0,0]]],hXn=wo,xXn=[0,0,0],yXn=[0,0,[0,1,0]],wXn=hA,gXn=[0,0,[0,1,[0,0,0]]],qXn=mj,IXn=[0,1,0],DXn=[0,0,[0,1,0]],EXn=Zt,NXn=[0,0,[0,1,[0,1,0]]],TXn=am,FXn=[0,3,0],MXn=[0,0,[0,1,0]],PXn=PO,UXn=[0,0,[0,1,[0,3,0]]],GXn=Qh,$Xn=[0,0,0],KXn=F,OXn=[0,0,0],RXn=[0,0,0],QXn=JK,CXn=[0,0,0],HXn=[0,0,0],VXn=Ca,LXn=[0,0,0],zXn=[0,0,0],SXn=Uo,ZXn=[0,0,0],WXn=[0,0,0],XXn=_q,JXn=[0,0,0],YXn=[0,0,0],rJn=kp,eJn=[0,0,0],nJn=[0,0,0],tJn=EE,aJn=[0,3,0],uJn=[0,3,[0,3,0]],fJn=by,iJn=[0,2,0],vJn=[0,2,[0,2,0]],cJn=JF,AJn=[0,3,0],oJn=[0,3,0],sJn=is,bJn=[0,3,0],lJn=[0,3,0],BJn=Ei,jJn=[0,3,0],kJn=[0,3,0],pJn=gu,mJn=[0,3,0],dJn=[0,3,0],_Jn=sr,hJn=[0,3,0],xJn=[0,3,0],yJn=Yx,wJn=[0,3,0],gJn=[0,3,0],qJn=VD,IJn=[0,3,0],DJn=[0,3,[0,3,0]],EJn=Dw,NJn=[0,3,0],TJn=[0,3,0],FJn=UA,MJn=[0,3,0],PJn=[0,3,0],UJn=Ge,GJn=[0,3,0],$Jn=[0,3,[0,3,0]],KJn=In,OJn=[0,2,0],RJn=[0,2,[0,2,0]],QJn=Er,CJn=[0,0,0],HJn=[0,3,[0,0,[0,0,0]]],VJn=CM,LJn=[0,0,0],zJn=[0,0,0],SJn=sx,ZJn=[0,0,0],WJn=[0,0,0],XJn=Pg,JJn=[0,0,0],YJn=[0,0,0],rYn=nw,eYn=[0,0,0],nYn=[0,0,0],tYn=n_,aYn=[0,0,0],uYn=[0,0,0],fYn=XG,iYn=[0,0,0],vYn=[0,0,0],cYn=L_,AYn=[0,0,0],oYn=fd,sYn=[0,1,0],bYn=Am,lYn=[0,0,0],BYn=[0,0,0],jYn=Hn,kYn=[0,1,0],pYn=Bv,mYn=[0,0,0],dYn=XI,_Yn=[0,0,0],hYn=[0,0,[0,0,0]],xYn=cm,yYn=[0,0,0],wYn=[0,0,[0,0,0]],gYn=Hu,qYn=[0,0,0],IYn=[0,0,0],DYn=kd,EYn=[0,0,[0,0,[0,0,0]]],NYn=Gd,TYn=[0,0,[0,0,0]],FYn=ow,MYn=[0,0,[0,0,0]],PYn=Oy,UYn=[0,0,0],GYn=[0,0,0],$Yn=[0,0,0],KYn=uy,OYn=[0,0,0],RYn=[0,0,[0,0,0]],QYn=DN,CYn=[0,0,[0,1,[0,1,0]]],HYn=$P,VYn=[0,0,0],LYn=Kp,zYn=Ov,SYn=[0,0,0],ZYn=Eq,WYn=Ov,XYn=XE,JYn=ur,YYn=Lo,r0n=[0,0,[0,0,0]],e0n=SD,n0n=[0,0,0],t0n=[0,0,0],a0n=ZK,u0n=g$,f0n=[0,0,0],i0n=mk,v0n=[0,dl,1009,72],c0n=[0,dl,996,60],A0n=[0,dl,991,56],o0n=[0,dl,987,52],s0n=[0,dl,985,50],b0n=[0,dl,970,6],l0n=[0,dl,909,6],B0n=[0,dl,901,6],j0n=[0,[11,Ue,[4,0,0,0,0]],cu],k0n=$t,p0n=eo,m0n=[18,[0,3]],d0n=[18,[1,0]],_0n=NC(0,0,0),h0n=NC(0,0,0),x0n=NC(1,0,0),y0n=NC(0,0,0),w0n=NC(0,0,0),g0n=NC(0,0,0),q0n=[17,[0,0]],I0n=VR,D0n=QM,E0n=Ov,N0n=[0,dl,702,23],T0n=xG,F0n=mb,M0n=Nt,P0n=jf,U0n=[1,0],G0n=Ov,$0n=[0,[11,_i,[2,0,[11,Qt,0]]],yM],K0n=[0,dl,517,4],O0n=[0,[11,IT,0],IT],R0n=[0,[11,Pd,0],Pd],Q0n=[0,[11,JU,0],JU],C0n=[0,dl,Et,13],H0n=[0,dl,Ws,13],V0n=[0,dl,Zc,14],L0n=[0,dl,xs,14],z0n=Ef,S0n=lm,Z0n=Gp,W0n=[0,[11,'invalid UTF-8 in environment variable name for actor alias "',[2,0,[12,34,0]]],'invalid UTF-8 in environment variable name for actor alias "%s"'],X0n=ZG,J0n=mA,Y0n=om,r1n=mR,e1n=[0,[11,"enhanced migration path '",[2,0,[11,"' is not a directory",0]]],"enhanced migration path '%s' is not a directory"],n1n=cp,t1n=om,a1n=Da,u1n=Bc,f1n=iP,i1n=[0,[11,$j,[2,0,[11,'" (for package `',[2,0,[11,"`) does not exist",0]]]]],'file "%s" (for package `%s`) does not exist'],v1n=iP,c1n=[0,[11,'canister alias "',[2,0,[11,NP,0]]],'canister alias "%s" not defined'],A1n=cp,o1n=[0,[11,'package "',[2,0,[11,NP,0]]],'package "%s" not defined'],s1n=cp,b1n=[0,[11,$j,[2,0,[11,'" does not exist',0]]],'file "%s" does not exist'],l1n=cp,B1n=[0,[11,gO,0],gO],j1n=cp,k1n=[0,[11,'cannot parse principal "',[2,0,[11,'" for actor alias "',[2,0,[11,'": ',[2,0,0]]]]]],'cannot parse principal "%s" for actor alias "%s": %s'],p1n=ZG,m1n=mA,d1n=[0,[11,'cannot parse import URL "',[2,0,[11,'": ',[2,0,0]]]],'cannot parse import URL "%s": %s'],_1n=cp,h1n=YO,x1n=[0,[11,"code requires Wasm features ",[2,0,[11," to execute",0]]],"code requires Wasm features %s to execute"],y1n=kk,w1n=vm,g1n=[0,1],q1n=[0,[11,"Invalid compiler flag combination: ",[2,0,0]],"Invalid compiler flag combination: %s"],I1n=kk,D1n=[0,Es,816,11],E1n=gm,N1n=kk,T1n=[0,1],F1n=[0,""],M1n=[0,[11,sF,[2,0,[11," does not define a service",0]]],"file %s does not define a service"],P1n=cp,U1n=[0,[11,sF,[2,0,[11," uses Candid types without corresponding Motoko type",0]]],"file %s uses Candid types without corresponding Motoko type"],G1n=cp,$1n=[0,Es,pI,27],K1n=HU,O1n=[0,[11,sF,[2,0,[11,jA,0]]],dw],R1n=cp,Q1n=HU,C1n=HU,H1n=Gk,V1n=L,L1n=[0,[2,0,[11," prim failed\n",0]],"%s prim failed\n"],z1n=[0,Es,zq,14],S1n=[0,0,0],Z1n=[0,0,0],W1n=Gk,X1n=L,J1n=[0,[2,0,[12,32,[2,0,[11," failed\n",0]]]],"%s %s failed\n"],Y1n=[0,Es,ER,17],r2n=[0,[2,0,[12,32,[2,0,[12,10,0]]]],"%s %s\n"],e2n=[0,[2,0,[12,10,0]],gT],n2n=cp,t2n=Gs,a2n=PM,u2n=[0,[18,[1,[0,[11,TG,0],TG]],[15,[11,tI,[17,[0,tb,1,0],[15,[17,0,[17,4,0]]]]]]],"@[%a :@ %a@]@."],f2n=[0,1],i2n=[0,1],v2n=zR,c2n=lP,A2n=Zr,o2n=yr,s2n=a$,b2n=Oc,l2n=Qf,B2n=rn,j2n=hp,k2n=m_,p2n=jR,m2n=Wh,d2n=GT,_2n=cK,h2n=cK,x2n=Vv,y2n=Zv,w2n=ZU,g2n=re,q2n=O_,I2n=BK,D2n=nB,E2n=EB,N2n=gR,T2n=eD,F2n=Uw,M2n=o$,P2n=Ti,U2n=Ps,G2n=mI,$2n=Ni,K2n=yv,O2n=yv,R2n=Bt,Q2n=pT,C2n=dO,H2n=Qq,V2n=uo,L2n=rI,z2n=iy,S2n=zi,Z2n=qG,W2n=Pc,X2n=ob,J2n=Ls,Y2n=Rb,r3n=jd,e3n=CT,n3n=CT,t3n=j_,a3n=Dd,u3n=TI,f3n=TI,i3n=Ua,v3n=wK,c3n=[0,"js/astjs.ml",kg,42],A3n=ct,o3n=wP,s3n=Ip,b3n=KU,l3n=DP,B3n=Aq,j3n=v$,k3n=nT,p3n=zu,m3n=pG,d3n=Gt,_3n=Gt,h3n=Nj,x3n=bT,y3n=Ce,w3n=mm,g3n=kT,q3n=gw,I3n=HF,D3n=o_,E3n=RD,N3n=_w,T3n=Pe,F3n=fa,M3n=oE,P3n=$G,U3n=Lt,G3n=eT,$3n=ky,K3n=Tu,O3n=Ab,R3n=nU,Q3n=nU,C3n=cT,H3n=FD,V3n=qE,L3n=Ia,z3n=WK,S3n=DO,Z3n=su,W3n=iQ,X3n=H$,J3n=fr,Y3n=aP,r6n=qA,e6n=Fd,n6n=Fy,t6n=Dg,a6n=Iu,u6n=$w,f6n=hv,i6n=TT,v6n=oN,c6n=JE,A6n=C,o6n=Ig,s6n=RK,b6n=yi,l6n=KG,B6n=_O,j6n=Rd,k6n=zn,p6n=ds,m6n=YN,d6n=dU,_6n=za,h6n=Th,x6n=aE,y6n=eq,w6n=sb,g6n=rl,q6n=oD,I6n=LT,D6n=cD,E6n=Uj,N6n=le,T6n=W$,F6n=zN,M6n=Kv,P6n=hM,U6n=Gn,G6n=$U,$6n=Ar,K6n=hx,O6n=un,R6n=un,Q6n=Mt,C6n=Ug,H6n=Y$,V6n=qe,L6n=Sl,z6n=_K,S6n=K,Z6n=kN,W6n=Jy,X6n=Dr,J6n=wD,Y6n=Om,r4n=bE,e4n=ah,n4n=gp,t4n=Nl,a4n=Xd,u4n=a$,f4n=nM,i4n=R_,v4n=td,c4n=Gx,A4n=fi,o4n=mE,s4n=TT,b4n=ye,l4n=QB,B4n=DT,j4n=Od,k4n=qg,p4n=ma,m4n=X$,d4n=YE,_4n=oG,h4n=rc,x4n=QF,y4n=vo,w4n=dM,g4n=Su,q4n=No,I4n=Eb,D4n=vF,E4n=Vq,N4n=NT,T4n=_P,F4n=Hv,M4n=l$,P4n=ZP,U4n=ii,G4n=dv,$4n=pg,K4n=uh,O4n=BI,R4n=BI,Q4n=[0,1],C4n=tP;var H4n=function(r){return function(r){return r<0&&(r=Math.ceil(r)),new HQ(r&y_,Math.floor(r*RQ)&y_,Math.floor(r*RQ*RQ)&ai)}(RV(r).file.length())};var V4n=tP;var L4n=v3([0,function(r){return L4(PV(r),PV(r),PV(r),PV(r))}],function(r){return L4(Q4,R4,O4,K4)});try{var z4n=yL(Iq)}catch(NC){var S4n=NL(NC);if(S4n!==dz)throw gQ(S4n,0);try{z4n=yL("CAMLRUNPARAM")}catch(NC){var Z4n=NL(NC);if(Z4n!==dz)throw gQ(Z4n,0);z4n=""}}var W4n=[0,Q1(z4n,82)],X4n=v3(0,z4);function J4n(r,e){for(var n=r?r[1]:PQ(W4n),t=16;;){if(!(e>t&&f0>=(2*t|0))){var a=n?S4(o3(X4n)):0;return[0,0,NQ(t,0),a,t]}t=2*t|0}}function Y4n(r,e){var n=e[2],t=2*(n.length-1)|0,a=t=0){var o=0;r:for(;;)for(var s=gC(n,o)[o+1];;){if(!s){var b=o+1|0;if(c===o)break r;o=b;break}var l=s[1],B=s[2],j=s[3],k=f?s:[0,l,B,0],p=uz(A,l),m=gC(v,p)[p+1];m?m[3]=k:gC(u,p)[p+1]=k,gC(v,p)[p+1]=k,s=j}}if(f){var d=i-1|0;if(d>=0)for(var _=0;;){var h=gC(v,_)[_+1];h&&(h[3]=0);var x=_+1|0;if(d===_)break;_=x}var y=0}else y=f;return y}function r5n(r){var e=r[2];function n(r,t,a){for(var u=r,f=t;!f;){if(u===e.length-1)return 0;var i=gC(e,u)[u+1];u=u+1|0,f=i}var v=f[3];return[0,[0,f[1],f[2]],function(r){return n(u,v,r)}]}return function(r){return n(0,0)}}function e5n(r){var e=r[1];function n(e,n){var t=e[2].length-2|0;return uz(r[2],n)&t}function t(r,t,a){for(var u=n(r,t),f=gC(r[2],u)[u+1],i=f;;){if(i){var v=i[3];if(!fz(e,i[1],t)){i=v;continue}i[1]=t,i[2]=a;var c=0}else c=1;if(c){gC(r[2],u)[u+1]=[0,t,a,f],r[1]=r[1]+1|0;var A=r[2].length-1<<1=C-1>>>0&&j5n(r,Kz,Q)}else b5n(r)}var H=r[9]-K|0;return K2([0,1===$?1:r[9]=r[14])return r[13]=o5n,m5n(r),e&&b5n(r),N5n(r);g5n(r)}}function F5n(r,e,n){var t=r[14]=n)return iz(r[17],W5n,0,n);iz(r[17],W5n,0,80),n=n-80|0}}function J5n(r){return r[1]===c5n?Bm+r[2]+b_:""}function Y5n(r){return r[1]===c5n?"a)return S2(n);var u=a-2|0;return 0<=u&&(n[2]-u|0)>=1?g1(n[1][1],1,u):MY("Buffer.sub")}function _7n(r,e){if("number"==typeof e)switch(e){case 0:return g5n(r);case 1:return I5n(r);case 2:return R5n(r);case 3:return Q5n(r);case 4:return T5n(r,1),uz(r[18],0);case 5:return U5n(r,64);default:return U5n(r,37)}switch(e[0]){case 0:return C5n(r,e[2],e[3]);case 1:return 0;default:var n=e[1];return U5n(r,64),U5n(r,n)}}function h7n(r,e){if("number"==typeof e)return 0;r:{e:{n:{switch(e[0]){case 0:var n=e[2];return h7n(r,e[1]),_7n(r,n);case 1:var t=e[2],a=e[1];if(0===t[0]){var u=t[1];return h7n(r,a),q5n(r,[0,c5n,d7n(h7n,u)])}var f=t[1];h7n(r,a);var i=O6(d7n(h7n,f));return w5n(r,i[1],i[2]);case 2:var v=e[1];if("number"!=typeof v&&0===v[0]){var c=v[2];if("number"!=typeof c&&1===c[0]){var A=e[2],o=c[2],s=v[1];break r}}var b=e[2],l=v;break e;case 3:var B=e[1];if("number"!=typeof B&&0===B[0]){var j=B[2];if("number"!=typeof j&&1===j[0]){var k=e[2],p=j[2],m=B[1];break n}}var d=e[2],_=B;break;case 4:var h=e[1];if("number"!=typeof h&&0===h[0]){var x=h[2];if("number"!=typeof x&&1===x[0]){A=e[2],o=x[2],s=h[1];break r}}b=e[2],l=h;break e;case 5:var y=e[1];if("number"!=typeof y&&0===y[0]){var w=y[2];if("number"!=typeof w&&1===w[0]){k=e[2],p=w[2],m=y[1];break n}}d=e[2],_=y;break;case 6:var g=e[2];return h7n(r,e[1]),uz(g,r);case 7:return h7n(r,e[1]),R5n(r);default:var q=e[2];return h7n(r,e[1]),MY(q)}return h7n(r,_),U5n(r,d)}return h7n(r,m),F5n(r,p,N1(1,k))}return h7n(r,l),M5n(r,b)}return h7n(r,s),F5n(r,o,A)}function x7n(r,e){if("number"==typeof e)return 0;r:{e:{n:{switch(e[0]){case 0:var n=e[2];return x7n(r,e[1]),_7n(r,n);case 1:var t=e[2],a=e[1];if(0===t[0]){var u=t[1];return x7n(r,a),q5n(r,[0,c5n,d7n(x7n,u)])}var f=t[1];x7n(r,a);var i=O6(d7n(x7n,f));return w5n(r,i[1],i[2]);case 2:var v=e[1];if("number"!=typeof v&&0===v[0]){var c=v[2];if("number"!=typeof c&&1===c[0]){var A=e[2],o=c[2],s=v[1];break r}}var b=e[2],l=v;break e;case 3:var B=e[1];if("number"!=typeof B&&0===B[0]){var j=B[2];if("number"!=typeof j&&1===j[0]){var k=e[2],p=j[2],m=B[1];break n}}var d=e[2],_=B;break;case 4:var h=e[1];if("number"!=typeof h&&0===h[0]){var x=h[2];if("number"!=typeof x&&1===x[0]){A=e[2],o=x[2],s=h[1];break r}}b=e[2],l=h;break e;case 5:var y=e[1];if("number"!=typeof y&&0===y[0]){var w=y[2];if("number"!=typeof w&&1===w[0]){k=e[2],p=w[2],m=y[1];break n}}d=e[2],_=y;break;case 6:var g=e[1];if("number"!=typeof g&&0===g[0]){var q=g[2];if("number"!=typeof q&&1===q[0]){var I=e[2],D=q[2];return x7n(r,g[1]),F5n(r,D,uz(I,0))}}var E=e[2];return x7n(r,g),M5n(r,uz(E,0));case 7:return x7n(r,e[1]),R5n(r);default:var N=e[2];return x7n(r,e[1]),MY(N)}return x7n(r,_),U5n(r,d)}return x7n(r,m),F5n(r,p,N1(1,k))}return x7n(r,l),M5n(r,b)}return x7n(r,s),F5n(r,o,A)}function y7n(r,e,n){return E6(function(n){return h7n(e,n),uz(r,e)},0,n[1])}function w7n(r){function e(r){return 0}return function(n){return y7n(e,r,n)}}function g7n(r,e){return E6(function(e){return uz(r,function(r){return h7n(r,e)})},0,e[1])}function q7n(r){return g7n(function(r){return r},r)}function I7n(r){var e=r[1],n=z2(f7n),t=u7n(n);return E6(function(r){return x7n(t,r),p7n(n,t)},0,e)}function D7n(r,e){var n=e[1],t=z2(f7n),a=u7n(t);return E6(function(e){return h7n(a,e),uz(r,p7n(t,a))},0,n)}function E7n(r){return D7n(v5n,r)}if(A3(k7n,c7n),function(r){for(;;){var e=PQ(e0);let t=[0,1],a=e;var n=1-FQ(e0,e,function(e){return FQ(t,1,0)&&uz(r,0),uz(a,0)});if(!n)return n}}(function(r){return R5n(o3(j7n)),R5n(o3(k7n))}),PQ([0,0]))throw gQ([0,kz,"first domain already spawned"],1);var N7n=[Gl,"Stdlib.Scanf.Scan_failure",zH()];function T7n(r,e){bL(r,oL(e)===Gl?e:e[1])}function F7n(r,e){var n=e.length-1,t=function(r,e){var n=new Array(e+1);n[0]=r;for(var t=1;t<=e;t++)n[t]=0;return n}(0,n),a=n-1|0;if(a>=0)for(var u=0;;){var f=gC(e,u)[u+1];if("number"==typeof f)switch(f){case 0:let e=u;var i=function(a){var u=t[e+1];if(n===u)throw gQ([0,yz,r],1);return uz(u,a)};let n=i;var v=i;break;case 1:var c=[];let a=c,f=u;EL(c,[W,function(e){var n=t[f+1];if(a===n)throw gQ([0,yz,r],1);var u=oL(n);return ae===u?n[1]:W!==u&&D!==u?n:k0(n)}]);v=c;break;default:var A=function(e){throw gQ([0,yz,r],1)};v=[0,A,A,0]}else v=0===f[0]?F7n(r,f[1]):f[1];t[u+1]=v;var o=u+1|0;if(a===u)break;u=o}return t}function M7n(r,e){return"number"!=typeof e&&0===e[0]?F7n(r,e[1]):FY("CamlinternalMod.init_mod: not a module")}function P7n(r,e,n){if(!(0===oL(n)&&r.length-1<=n.length-1))throw gQ([0,xz,F5],1);var t=r.length-2|0;if(t>=0)for(var a=0;;){var u=n[a+1],f=gC(r,a)[a+1];r:if("number"==typeof f){if(2===f){if(0===oL(u)&&3==u.length-1)for(var i=0,v=e[a+1];;){v[i+1]=u[i+1];var c=i+1|0;if(2===i)break r;i=c}throw gQ([0,xz,T5],1)}e[a+1]=u}else 0===f[0]&&P7n(f[1],e[a+1],u);var A=a+1|0;if(t===a)break;a=A}}function U7n(r,e,n){return"number"!=typeof r&&0===r[0]?P7n(r[1],e,n):FY("CamlinternalMod.update_mod: not a module")}function G7n(r,e,n){if(n===kQ)return e;for(var t=AV(n)-1|0;;){if(0>t)return T1(n,0,1);if(!fz(r,n,t))break;t=t-1|0}for(var a=t+1|0,u=t;;){if(0>u)return T1(n,0,a);if(fz(r,n,u))return T1(n,u+1|0,(a-u|0)-1|0);u=u-1|0}}function $7n(r,e,n){if(n===kQ)return e;for(var t=AV(n)-1|0;;){if(0>t)return T1(n,0,1);if(!fz(r,n,t)){var a=t;break}t=t-1|0}for(;;){if(0>a)return e;if(fz(r,n,a)){var u=a;break}a=a-1|0}for(;;){if(0>u)return T1(n,0,1);if(!fz(r,n,u))return T1(n,0,u+1|0);u=u-1|0}}function K7n(r,e){return 47===BL(r,e)?1:0}try{var O7n=yL("TMPDIR")}catch(NC){var R7n=NL(NC);if(R7n!==dz)throw gQ(R7n,0);O7n="/tmp"}function Q7n(r,e){var n=BL(r,e),t=47===n?1:0;if(t)var a=t;else a=(92===n?1:0)||(58===n?1:0);return a}function C7n(r){var e=(AV(r)<1?1:0)||(47!==BL(r,0)?1:0);if(e){var n=(AV(r)<1?1:0)||(92!==BL(r,0)?1:0);if(n)var t=(AV(r)<2?1:0)||(58!==BL(r,1)?1:0);else t=n}else t=e;return t}function H7n(r,e){var n=AV(e)<=AV(r)?1:0;if(n)var t=T1(r,AV(r)-AV(e)|0,AV(e)),a=H1(e),u=H1(t)===a?1:0;else u=n;return u}var V7n=[0,,,,P5,K7n,function(r){return(AV(r)<1?1:0)||(47!==BL(r,0)?1:0)},,function(r,e){var n=AV(e),t=AV(r)-n|0,a=0<=t?1:0;if(!a)return a;for(var u=0;;){if(u===n)return 1;if(oV(r,t+u|0)!==oV(e,u))return 0;u=u+1|0}},,O7n,,,function(r){return G7n(K7n,Oz,r)},function(r){return $7n(K7n,Oz,r)}];try{var L7n=yL("TEMP")}catch(NC){var z7n=NL(NC);if(z7n!==dz)throw gQ(z7n,0);L7n=U5}function S7n(r){var e=2<=AV(r)?1:0;if(e){var n=BL(r,0);r:{e:{if(91<=n){if(25>>0)break e}else if(65>n)break e;var t=1;break r}t=0}var a=t?58===BL(r,1)?1:0:t}else a=e;if(!a)return[0,"",r];var u=T1(r,2,AV(r)-2|0);return[0,T1(r,0,2),u]}var Z7n=[0,,,,"\\",Q7n,C7n,,H7n,,L7n,,,function(r){return G7n(Q7n,Rz,S7n(r)[2])},function(r){var e=S7n(r);return e[1]+$7n(Q7n,Rz,e[2])}],W7n=[0,,,,G5,Q7n,C7n,,H7n,,O7n,,,function(r){return G7n(Q7n,Qz,r)},function(r){return $7n(Q7n,Qz,r)}],X7n="Cygwin"!==u0?u0!==Tw?V7n:Z7n:W7n,J7n=X7n[5],Y7n=X7n[6],r8n=X7n[13],e8n=X7n[14],n8n=X7n[4];function t8n(r,e){var n=AV(r);return 0===n||J7n(r,n-1|0)?r+e:r+n8n+e}function a8n(r){for(var e=AV(r)-1|0;;){if(!(0<=e)||J7n(r,e))return 0;if(46===BL(r,e))break;e=e-1|0}for(var n=e-1|0;;){if(!(0<=n)||J7n(r,n))return 0;if(46!==BL(r,n))return AV(r)-e|0;n=n-1|0}}function u8n(r){var e=a8n(r);return 0===e?MY("Filename.chop_extension"):T1(r,0,AV(r)-e|0)}var f8n=X7n[8],i8n=X7n[10];function v8n(r){return 0<=r?r:-1073741825&r}function c8n(r){return 0<=r?r:xi|v8n(r)}v3(0,z4),v3([0,function(r){return r}],function(r){return i8n});var A8n=NC(0,0,49152),o8n=NC(zK,zK,16383);function s8n(r){var e=VC(A8n,r)<=0?1:0;if(!(e?VC(r,o8n)<=0?1:0:e))return uz(C6(FY,O5),r)}s8n(R5),s8n(Q5),s8n(C5);var b8n=[0,0,,,,,,,,,,,,,,function(r,e){return r&e},,function(r,e){return r^e},,,,function(r,e){return r>>>e|0},,,,function(r){return r},,,,,,,,,,,,,,,function(r){return r},function(r){return 0>=JC(0,r)&&0>=JC(r,PF)?function(r){return 0>=JC(0,r)&&0>=JC(r,PF)?r:0=e)for(var f=e;;){var i=BL(r,f),v=a[1],c=(_8n(B8n(v,x8n))^i)&LK,A=d8n(v,8);a[1]=B8n(j8n(gC(y8n,c)[c+1],A),h8n);var o=f+1|0;if(u===f)break;f=o}return j8n(a[1],h8n)}m8n(16777216),m8n(zK),m8n(25578747),m8n(11994318),p8n(65521);var g8n=U2([0,z1]),q8n=[0,0],I8n=[0,0],D8n=[0,0],E8n=[0,1],N8n=[0,0],T8n=[0,0],F8n=[0,0],M8n=[0,1],P8n=[0,g8n[1]],U8n=[0,0],G8n=[0,g8n[1]],$8n=[0,0],K8n=[0,1],O8n=[0,0],R8n=[0,0],Q8n=[0,2],C8n=[0,0],H8n=[0,0],V8n=[0,0],L8n=[0,0],z8n=[0,0],S8n=[0,0],Z8n=[0,0],W8n=[0,1],X8n=[0,0],J8n=NC(0,64,0),Y8n=NC(0,iR,0),r9n=[0,Y8n,J8n],e9n=[0,0],n9n=[0,0],t9n=g8n[2],a9n=uz(function(r){return t9n(H5,0,r)},g8n[1]),u9n=g8n[2],f9n=uz(function(r){return u9n(V5,0,r)},a9n),i9n=g8n[2],v9n=uz(function(r){return i9n(L5,0,r)},f9n),c9n=g8n[2],A9n=[0,uz(function(r){return c9n(z5,0,r)},v9n)];function o9n(r){var e=g8n[18].call(null,r,A9n[1]);return e?e[1]:1}function s9n(r){return 0===o9n(r)?1:0}var b9n=[Gl,"Mo_config__Exit.Exit",zH()];function l9n(r){if(L8n[1])throw gQ([0,b9n,uz(H6(Z5),r)],1);return a0(r)}function B9n(r,e,n){for(var t=n;;){if(t===AV(e))return 0;if(uz(r,BL(e,t)))return[0,t];t=t+1|0}}function j9n(r,e){return r?r[1]:e}function k9n(r){if(52>>0?-1===y?0:3:2<=y?2:1;x=uz(H6(v7),kV(h,w))}}else x=fz(H6(a7),AV(A),o);var g=C1(A),q=C1(x),I=k(q,0),D=k(g,0),E=I;r:for(;;){var N=j(g,D),T=j(q,E),F=B(d,g,N),M=B(d,q,T);if(F)var P=M||B(d,q,k(q,T))?0:-1;else if(M)P=B(d,g,k(g,N))?0:1;else{var U=BL(q,T),G=JC(BL(g,N),U);if(0===G){D=N+1|0,E=T+1|0;continue}P=G}var $=P+1|0;if(2>=$>>>0)switch($){case 0:s=o-m;break r;case 2:s=o+m;break r;default:s=o;break r}s=o;break}}}var K=uz(u,s);return i(K)?FY(r7):K}function m(r){var e=48<=r?1:0;return e?r<=57?1:0:e}function d(r){var e=m(r);if(e)var n=e;else{var t=97<=r?1:0;n=t?r<=Ul?1:0:t}return n}function _(r,e,n,t,a,u){for(var f=n,i=a;;){var v=fi){var v=(10+i|0)-97|0;break r}}else if(71>i){v=(10+i|0)-65|0;break r}}else if(9>=i+dc>>>0){v=i-48|0;break r}v=FY(j7)}var c=uz(r[20],v),A=uz(r[20],4);I(x(f,d(r[3],A)));var o=fz(r[17],f,4);u=u+1|0,f=fz(r[15],o,c)}}for(var s=t,b=r[1];;){if(s===n)return b;if(95===BL(e,s))s=s+1|0;else{var l=BL(e,s),B=9>>0?FY(k7):l-48|0,j=uz(r[20],B),k=h(b,T);if(k)var p=k;else{var m=OH(b,T);p=m?x(j,F):m}I(p);var _=fz(r[10],b,a);s=s+1|0,b=fz(r[8],_,j)}}}I(0=u>>>0)switch(u){case 0:var f=t(1);break r;case 2:var i=t(1),A=r[3];I(SH(fz(r[9],i,r[2]),A));f=uz(r[7],i);break r}f=t(0)}if(p){var o=uz(r[20],1<=n)return S2(a);0===f&&J2(a,95),J2(a,BL(e,u)),u=u+1|0,f=vL((f+r|0)-1|0,r)}}return[0,function(r){return r},function(r){return r},n,f,i,,function(e,n){return u(fz(r[8],e,n))},function(e,n){return u(fz(r[9],e,n))},function(e,n){return u(fz(r[10],e,n))},function(e,n){if(OH(n,r[1]))throw gQ(q9n,1);if(OH(e,v)&&OH(n,r[3]))throw gQ(I9n,1);return fz(r[11],e,n)},A,function(e,n){if(OH(n,r[1]))throw gQ(q9n,1);return fz(r[12],e,n)},o,function(e,n){var t=mV(Nz,64-r[26]|0),a=nV(rV(rV(eV(t,uz(r[23],e)),eV(t,uz(r[23],n))),Ez),NC(2,0,0));return uz(r[22],a)},s,b,j,B,function(e,n){return l(r[18],e,n)},d,function(e,n){var t=_(n),a=d(e,uz(r[20],r[26]-t|0));return fz(b,B(e,uz(r[20],t)),a)},function(e,n){var t=_(n),a=B(e,uz(r[20],r[26]-t|0));return fz(b,d(e,uz(r[20],t)),a)},function(e){for(var t=0,a=e;;){if(OH(a,r[1]))var u=r[26];else{if(OH(fz(s,a,fz(r[17],r[2],r[26]-1|0)),n)){t=1+t|0,a=fz(r[17],a,1);continue}u=t}return uz(r[20],u)}},function(e){for(var n=0,t=e;;){if(OH(t,r[1]))var a=r[26];else{var u=r[2];if(!OH(fz(s,t,r[2]),u)){n=1+n|0,t=fz(r[19],t,1);continue}a=n}return uz(r[20],a)}},function(e){for(var n=0,t=r[26],a=e;;){if(0===t)return uz(r[20],n);var u=r[2];n=OH(fz(s,a,r[2]),u)?n+1|0:n,t=t-1|0,a=fz(r[19],a,1)}},function(e,n){var t=r[26]-e|0,a=fz(r[17],n,t);return fz(r[18],a,t)},function(e){return OH(e,r[1])},OH,cL,EV,h,DV,x,ZH,function(e,n){var t=fz(r[8],n,r[5]);return ZH(fz(r[8],e,r[5]),t)},SH,function(e,n){var t=fz(r[8],n,r[5]);return SH(fz(r[8],e,r[5]),t)},m,y,w,function(r,e){return y(g(r,e))},function(r,e){var n=m(e);return w(g(m(r),n))},function(r,e){return y(q(r,e))},function(r,e){var n=m(e);return w(q(m(r),n))},function(e,n){if(32<=r[26])throw gQ([0,xz,m7],1);var t=pV(rV(cV(uz(r[23],e),uz(r[23],n)),d7),15);return y(uz(r[22],t))},E,function(e){var n=fz(b,B(uz(r[20],KY),t),t);return fz(s,uz(r[20],e),n)},function(e){var n=M(e);return I((45===BL(e,0)?1:0)||SH(n,r[1])),n},function(r){var e=M(r),n=43!==BL(r,0)?1:0;return I(n?45!==BL(r,0)?1:0:n),e},M,D,function(e){var n=uz(r[21],r[4])<<1|1;return uz(r[21],e)&n},function(e){return P(3,uz(r[24],e))},function(e){if(SH(e,r[1]))return P(3,uz(r[24],e));var n=o(e,a),t=uz(r[24],n),u=A(e,a);return P(3,uz(r[24],u)+t)},function(e){return FM+P(4,uz(r[25],e))}]}D9n([0,0,1,-1,v2,i2,f2,function(r){return 0|-r},function(r,e){return r+e|0},function(r,e){return r-e|0},KC,IH,vL,function(r,e){return r&e},c2,function(r,e){return r|e},function(r,e){return r^e},function(r,e){return r<>e},function(r,e){return r>>>e|0},function(r){return r},function(r){return r},uV,aV,A2,function(r){return uz(H6(x7),r&Fn)},16]);var E9n=D9n([0,0,1,-1,v2,i2,f2,function(r){return 0|-r},function(r,e){return r+e|0},function(r,e){return r-e|0},KC,IH,vL,function(r,e){return r&e},c2,function(r,e){return r|e},function(r,e){return r^e},function(r,e){return r<>e},function(r,e){return r>>>e|0},function(r){return r},function(r){return r},uV,aV,A2,H6(y7),32]),N9n=E9n[7],T9n=E9n[33],F9n=E9n[47],M9n=D9n([0,Dz,Ez,Nz,Fz,Tz,b2,fV,rV,dV,cV,nV,vV,eV,l2,jV,hV,kV,pV,mV,aV,uV,function(r){return r},function(r){return r},B2,H6(w7),64]),P9n=M9n[47],U9n=M9n[7],G9n=M9n[31];function $9n(r){return eV(aV(r),q7)}function K9n(r,e){uz(r[5],NaN)}D9n([0,0,1,-1,v2,i2,f2,function(r){return 0|-r},function(r,e){return r+e|0},function(r,e){return r-e|0},KC,IH,vL,function(r,e){return r&e},c2,function(r,e){return r|e},function(r,e){return r^e},function(r,e){return r<>e},function(r,e){return r>>>e|0},function(r){return r},function(r){return r},uV,aV,A2,function(r){return uz(H6(g7),r&LK)},8]),N1(16,0),K9n(_9n),K9n(g9n);var O9n=[0,Vz,Vz];function R9n(r){if(-1!==r[2])return kQ+r[2]+Ku+kQ+(r[3]+1|0);var e=r[3];return uz(H6(I7),e)}function Q9n(r){var e=OH(r[2],r[1])?"":iF+R9n(r[2]),n=cK+R9n(r[1])+e;return r[1][1]+n}var C9n=[Gl,"Wasm.Utf8.Utf8",zH()];function H9n(r){var e=[Gl,D7,zH()];return[0,e,,function(r,n){throw gQ([0,e,r,n],1)}]}function V9n(r,e){return[1,[0,[0,r],[0,e,0]]]}function L9n(r,e){return[1,[0,r,[0,[0,e],0]]]}function z9n(r,e){if(0===e[0])return uz(r,e[1]);for(var n=e[1];;){if(!n)return;var t=n[2];z9n(r,n[1]),n=t}}function S9n(r){return 0===r[0]?r[1]:F1("",H0(S9n,r[1]))}function Z9n(r,e,n){if(0===n[0]){var t=n[1];return[0,AV(t),[0,t]]}for(var a=n[1],u=r+2|0,f=A1(H0(function(r){return Z9n(u,e,r)},n[2])),i=f[2],v=f[1],c=2;v;){var A=c+v[1]|0;v=v[2],c=A}var o=(AV(a)+G0(i)|0)+c|0;if((r+o|0)<=e)var s="",b=E7;else{var l=N1(r,32);s=bu+l,b=aU+l}return[0,o,V9n(T7,V9n(a,L9n(L9n([1,H0(function(r){return V9n(b,r)},i)],s),N7)))]}function W9n(r,e){return S9n(Z9n(0,r,e)[2])+bu}P2([0,o2])[3].call(null,0);var X9n=[Gl,"Sexplib0__Sexp.Not_found_s",zH()],J9n=[Gl,"Sexplib0__Sexp.Of_sexp_error",zH()];function Y9n(r){var e=AV(r),n=0===e?1:0;if(n)return n;for(var t=e-1|0;;){var a=BL(r,t);r:{e:{if(92<=a){var u=a-93|0;if(33>>0){if(0<=u)break e;break r}if(31===u){var f=0a)break e;switch(a+-33|0){case 2:var A=0=0)for(var t=0;;){var a=oV(r,t);r:{e:{n:{if(32<=a){var u=a+-34|0;if(58>>0){if(93<=u)break n}else if(56>>0)break e;var f=1;break r}if(11<=a){if(13===a)break e}else if(8<=a)break e}f=4;break r}f=2}e[1]=e[1]+f|0;var i=t+1|0;if(n===t)break;t=i}if(e[1]===AV(r))return r;var v=tH(e[1]);e[1]=0;var c=AV(r)-1|0;if(c>=0)for(var A=0;;){var o=oV(r,A);r:{e:{n:{if(35<=o){if(92!==o){if(lj<=o)break e;break n}}else{if(32>o){if(14<=o)break e;switch(o){case 8:mC(v,e[1],92),e[1]++,mC(v,e[1],98);break r;case 9:mC(v,e[1],92),e[1]++,mC(v,e[1],fM);break r;case 10:mC(v,e[1],92),e[1]++,mC(v,e[1],Wr);break r;case 13:mC(v,e[1],92),e[1]++,mC(v,e[1],Zc);break r;default:break e}}if(34>o)break n}mC(v,e[1],92),e[1]++,mC(v,e[1],o);break r}mC(v,e[1],o);break r}mC(v,e[1],92),e[1]++;var s=T0(48+(o/T$|0)|0);mC(v,e[1],s),e[1]++;var b=T0(48+((o/10|0)%10|0)|0);mC(v,e[1],b),e[1]++;var l=T0(48+(o%10|0)|0);mC(v,e[1],l)}e[1]++;var B=A+1|0;if(c===A)break;A=B}return _L(v)}function ert(r){var e=rrt(r),n=AV(e),t=tH(n+2|0);return I1(e,0,t,1,n),mC(t,0,34),mC(t,n+1|0,34),_L(t)}function nrt(r,e){var n=AV(r);return 0<=e&&n>=e?K1(r,n,e,10):MY("String.index_from_opt / Bytes.index_from_opt")}function trt(r,e,n){if(0===n[0]){var t=n[1];if(!Y9n(t))return M5n(e,t);var a=nrt(t,0);if(a?(a[1]+1|0)===AV(t)?1:0:1)return M5n(e,ert(t));O5n(e,0),M5n(e,' "');for(var u=0;;){var f=nrt(t,u);if(M5n(e,rrt(T1(t,u,(f?f[1]:AV(t))-u|0))),!f)return M5n(e,$7),g5n(e);var i=f[1];M5n(e,"\\"),Q5n(e),M5n(e,G7),u=i+1|0}}else{var v=n[1];if(!v)return M5n(e,"()");var c=v[2],A=v[1];O5n(e,r),M5n(e,M7),trt(r,e,A);for(var o=c;;){if(!o)return M5n(e,P7),g5n(e);var s=o[2],b=o[1];H5n(e),trt(r,e,b),o=s}}}function art(r){return[0,kQ+r]}function urt(r,e){return e[2]}var frt=[W,function(r){return z4()}];function irt(r,e){return e&(r[2].length-2|0)}var vrt=function(){for(var r=M5[1],e=16;!(17<=e)&&!(f0<(2*e|0));)e=2*e|0;if(r){var n=oL(frt);r:if(ae===n)var t=frt[1];else{if(W!==n&&D!==n){t=frt;break r}t=k0(frt)}var a=S4(t)}else a=0;return[0,0,NQ(e,0),a,e]}();function crt(r,e){if(0===e[0]){var n=e[1];if(nrt(n,0)?0:1)return Y9n(n)?ert(n):n}var t=z2(Jo),a=r?r[1]:1;return fz(w7n(u7n(t))(U7),function(r,e){return trt(a,r,e)},e),S2(t)}function Art(r,e,n,t){var a=r?r[1]:1,u=urt(vrt[3],n),f=irt(vrt,u),i=[0,t,a];var v=function(r){return MH(r)}(1);GH(v,i),o0(v,0,"Obj.Ephemeron.set_key"),KH(v,0,n);var c=[0,u,v,gC(vrt[2],f)[f+1]];gC(vrt[2],f)[f+1]=c,vrt[1]=vrt[1]+1|0;var A=vrt[2].length-1<<1=0)for(var k=0;;){B[k+1]=l(gC(B,k)[k+1]);var p=k+1|0;if(j===k)break;k=p}var m=b>>1|0)<=vrt[1]?1:0:m){var d=NQ(b,0);vrt[2]=d;var _=function(r){if(r){var e=r[1],n=r[2];_(r[3]);var t=irt(vrt,e);d[t+1]=[0,e,n,gC(d,t)[t+1]]}},h=s-1|0;if(h>=0)for(var x=0;;){_(gC(o,x)[x+1]);var y=x+1|0;if(h===x)break;x=y}}}function ort(r,e){var n=A0(e)&&oL(e)!==Gl&&1<=e.length-1?e[1]:e;if(A0(n)&&oL(n)===Gl)var t=n[1];else t=MY(J4);for(var a=oL(t)===cc?n:MY(Y4),u=urt(vrt[3],a),f=irt(vrt,u),i=gC(vrt[2],f)[f+1];;){if(i){var v=i[3],c=i[2];if(u!==i[1]){i=i[3];continue}o0(c,0,"Obj.Ephemeron.get_key");var A=UH(c,0);if(0!==(A?a===A[1]?0:1:2)){i=v;continue}var o=PH(c);if(!o){i=v;continue}var s=o}else s=0;if(!s)return 0;var b=s[1],l=b[2],B=b[1];return r&&!l?0:[0,uz(B,e)]}}function srt(r){var e=ort(0,r);return e?e[1]:[1,[0,[0,p4(r)],0]]}function brt(r,e){var n=e[3],t=e[2],a=e[1];return[0,vz(H6(x8),r,a,t,n)]}h4(function(r){var e=ort(1,r);return e?[0,crt(y8,e[1])]:0});for(var lrt=[0,[0,xz,function(r){if(r[1]===xz)return brt(C7,r[2]);throw gQ([0,xz,H7],1)}],[0,[0,PY,function(r){if(r===PY)return V7;throw gQ([0,xz,L7],1)}],[0,[0,pz,function(r){if(r===pz)return z7;throw gQ([0,xz,S7],1)}],[0,[0,jz,function(r){if(r[1]===jz)return[1,[0,Z7,[0,[0,r[2]],0]]];throw gQ([0,xz,W7],1)}],[0,[0,dz,function(r){if(r===dz)return X7;throw gQ([0,xz,J7],1)}],[0,[0,kz,function(r){if(r[1]===kz)return[1,[0,Y7,[0,[0,r[2]],0]]];throw gQ([0,xz,r8],1)}],[0,[0,_z,function(r){if(r[1]===_z)return brt(e8,r[2]);throw gQ([0,xz,n8],1)}],[0,[0,X9n,function(r){if(r[1]===X9n)return[1,[0,t8,[0,r[2],0]]];throw gQ([0,xz,a8],1)}],[0,[0,Bz,function(r){if(r[1]===Bz)return[1,[0,u8,[0,[0,r[2]],0]]];throw gQ([0,xz,f8],1)}],[0,[0,L6,function(r){if(r[1]===L6)return[1,[0,i8,[0,[0,r[2]],0]]];throw gQ([0,xz,v8],1)}],[0,[0,V6,function(r){if(r[1]===V6)return[1,[0,c8,[0,[0,r[2]],0]]];throw gQ([0,xz,A8],1)}],[0,[0,s0,function(r){if(r===s0)return o8;throw gQ([0,xz,s8],1)}],[0,[0,_2,function(r){if(r===_2)return b8;throw gQ([0,xz,l8],1)}],[0,[0,Q2,function(r){if(r===Q2)return B8;throw gQ([0,xz,j8],1)}],[0,[0,N7n,function(r){if(r[1]===N7n)return[1,[0,k8,[0,[0,r[2]],0]]];throw gQ([0,xz,p8],1)}],[0,[0,G2,function(r){if(r===G2)return m8;throw gQ([0,xz,d8],1)}],[0,[0,c0,function(r){if(r===c0)return _8;throw gQ([0,xz,h8],1)}],0]]]]]]]]]]]]]]]]],Brt=[0,[0,"--error-detail",[7,Q8n]," set error message detail for syntax errors, n in [0..3] (default 2)"],[0,[0,"--error-recovery",[2,C8n]," report multiple syntax errors"],[0,[0,"--error-format",[11,W5,function(r){var e=r!==Lu?r!==Ur?0:2:1;return q8n[1]=e,0}]," set error output format"],0]]],jrt=[0,[0,"--args",[14,function(r){return r4(1,10,r)}]," read additional newline separated command line arguments \n from "],[0,[0,"--args0",[14,function(r){return r4(0,0,r)}]," read additional NUL separated command line arguments from \n "],0]],krt=[0,[0,"--ai-errors",[2,I8n]," emit AI tailored errors"],[0,[0,"--all-libs",[2,D8n]," load all library files from all packages, enabling better diagnostics, e.g. hinting at non-imported items (increases compilation time)"],[0,[0,"--implicit-package",[4,function(r){return U8n[1]=[0,r],0}],""],0]]],prt=[0,[0,"--enhanced-migration",[4,function(r){return X8n[1]=[0,r],0}]," enable enhanced migration system: requires initializers for all stable variables, disallows side-effects in actor bodies; only available with enhanced orthogonal persistence."],0],mrt=[0,[0,"--default-persistent-actors",[0,function(r){return K8n[1]=2,0}],""],[0,[0,"--require-persistent-actors",[0,function(r){return K8n[1]=1,0}],""],[0,[0,"--legacy-actors",[0,function(r){return K8n[1]=0,0}],""],0]]];lrt;){var drt=lrt[1],_rt=lrt[2];Art(Q7,0,drt[1],drt[2]),lrt=_rt}for(var hrt=[0,[0,J9n,function(r){if(r[1]!==J9n)throw gQ([0,xz,R7],1);var e=[0,r[3],0];return[1,[0,O7,[0,srt(r[2]),e]]]}],0];hrt;){var xrt=hrt[1],yrt=hrt[2];Art(K7,0,xrt[1],xrt[2]),hrt=yrt}function wrt(r,e){var n=z2(16),t=u7n(n);return S5n(t,2,$_),fz(w7n(t)(X8),r,e),R5n(t),S2(n)}function grt(r,e,n){return fz(w7n(e)(W8),r,n)}function qrt(r){return xV("0u"+r)}function Irt(r){return uz(H6(S8),r)}function Drt(r,e){return EV(r,0)&&SH(e,0)?1:SH(r,0)&&EV(e,0)?-1:JC(r,e)}function Ert(r){if(0<=r&&9>=r)return T0(48+r|0);if(10<=r&&15>=r)return T0(65+(r+Ec|0)|0);throw gQ([0,xz,z8],1)}function Nrt(r){var e=[0,0],n=AV(r)-1|0;if(n>=0)for(var t=n;;){var a=e[1];e[1]=[0,BL(r,t),a];var u=t-1|0;if(0===t)break;t=u}return e[1]}function Trt(r,e){var n=[0,0],t=AV(e)-1|0;if(t>=0)for(var a=t;;){var u=n[1];n[1]=[0,uz(r,BL(e,a)),u];var f=a-1|0;if(0===a)break;a=f}return n[1]}function Frt(r,e){var n=AV(r);return function t(a){if(nt)return 0;if(n){var a=n[2],u=n[1];if(Bs>t){var f=Ih===(u&nF)?1:0;if(!f)return f;e=a;continue}if(a){var i=a[2],v=a[1];if(Jj>t){var c=Ih===(u&nF)?1:0;if(c){var A=Ih===(v&nF)?1:0;if(A){e=i;continue}var o=A}else o=c;return o}if(i){var s=i[2],b=i[1];if(Gl>t){var l=Ih===(u&nF)?1:0;if(l){var B=Ih===(v&nF)?1:0;if(B){var j=Ih===(b&nF)?1:0;if(j){e=s;continue}var k=j}else k=B}else k=l;return k}}}}return 0}e=n}}function $rt(r){if(Ih===(r&nF))return 63&r;throw gQ(C9n,1)}function Krt(r,e){r:if(e>=r){if(We<=e&&Ct>e)break r;if(Ms>e)return e}throw gQ(C9n,1)}function Ort(r){for(var e=0,n=Trt(function(r){return r},r);;){if(!n)return Q0(e);var t=n[2],a=n[1];if(Ih<=a){if(nF>a)throw gQ(C9n,1);if(t){var u=t[2],f=t[1];if(Bs>a){e=[0,Krt(Ih,((31&a)<<6)+$rt(f)|0),e],n=u;continue}if(u){var i=u[2],v=u[1];if(Jj>a){var c=$rt(v);e=[0,Krt(2048,(((15&a)<<12)+($rt(f)<<6)|0)+c|0),e],n=i;continue}if(i){var A=i[2],o=i[1];if(Gl>a){var s=$rt(o),b=$rt(v)<<6;e=[0,Krt(Xf,((((7&a)<<18)+($rt(f)<<12)|0)+b|0)+s|0),e],n=A;continue}}}}throw gQ(C9n,1)}e=[0,Krt(0,a),e],n=t}}function Rrt(r){return Ih|63&r}function Qrt(r){for(var e=0,n=r;n;){var t=n[1],a=n[2];if(0>t)throw gQ(C9n,1);if(Ih<=t)if(2048<=t)if(Xf<=t){var u=n[2];if(Ms<=t)throw gQ(C9n,1);var f=[0,Rrt(t>>>12|0),[0,Jj|t>>>18,e]],i=[0,Rrt(t>>>6|0),f];e=[0,Rrt(t),i],n=u}else{var v=[0,Rrt(t>>>6|0),[0,Bs|t>>>12,e]];e=[0,Rrt(t),v],n=a}else e=[0,Rrt(t),[0,nF|t>>>6,e]],n=a;else e=[0,t,e],n=a}for(var c=Q0(e),A=z2(80),o=c;;){if(!o)return S2(A);var s=o[2];J2(A,T0(o[1])),o=s}}function Crt(r,e,n){var t=z2(mc);J2(t,r);for(var a=e;;){if(!a)return J2(t,n),S2(t);var u=a[2],f=a[1];if(35<=f){if(39===f){r3(t,"\\'"),a=u;continue}if(92===f){r3(t,K8),a=u;continue}}else{var i=f-9|0;if(1>=i>>>0){if(i){r3(t,G8),a=u;continue}r3(t,$8),a=u;continue}if(25<=i){r3(t,'\\"'),a=u;continue}}32<=f&&lj>f?(J2(t,T0(f)),a=u):(uz(Q6(t,O8),f),a=u)}}function Hrt(r,e){for(var n=r,t=0;;){if(0===n)return t;n=n-1|0,t=[0,e,t]}}function Vrt(r){return r?[0,r[1]]:0}function Lrt(r){for(var e=r;;){if(!e)return FY(P8);var n=e[1];if(!e[2])return n;e=e[2]}}function zrt(r){if(!r)return FY("split_last");var e=r[1];if(!r[2])return[0,0,e];var n=zrt(r[2]);return[0,[0,e,n[1]],n[2]]}function Srt(r){return function(e){for(var n=e,t=0;;){if(!n)return 0;if(OH(r,n[1]))return[0,t];n=n[2],t=t+1|0}}}function Zrt(r,e){for(var n=e;;){if(n){var t=n[2];if(t){var a=t[1],u=t[2];if(-1!==fz(r,n[1],a))return 0;n=[0,a,u];continue}}return 1}}function Wrt(r,e,n){function t(e){var n=e[2],t=e[1];if(!t)return n?[0,[0,[1,n[1]],[0,0,n[2]]]]:0;var a=t[2],u=t[1];if(!n)return[0,[0,[0,u],[0,a,0]]];var f=n[2],i=n[1],v=fz(r,u,i)+1|0;if(2>=v>>>0)switch(v){case 0:return[0,[0,[0,u],[0,a,n]]];case 2:return[0,[0,[1,i],[0,t,f]]]}return[0,[0,[2,u,i],[0,a,f]]]}var a=[0,e,n];return function(r){return y0(t,a)}}function Xrt(r){for(var e=r,n=0;;){if(!e)return n;var t=e[2];if(!EV(n,PF))return FY(M8);e=t,n=n+1|0}}function Jrt(r,e){for(var n=r,t=e;;){if(cL(t,0)){if(n){var a=n[2];if(ZH(t,0)){n=a,t=t-1|0;continue}}}else if(n)return n[1];return FY("nth")}}var Yrt=[Gl,"Lib.Promise.Promise",zH()];function ret(r){return[0,[0,r]]}function eet(r,e){if(0!==r[1])throw gQ(Yrt,1);return r[1]=[0,e],0}function net(r){return 0!==r[1]?1:0}function tet(r){var e=r[1];if(e)return e[1];throw gQ(Yrt,1)}function aet(r){return[0,[0,r]]}function uet(r,e){var n=r[1];switch(n[0]){case 0:return r[1]=[2,n[1],e],0;case 1:var t=n[2];r[1]=[3,n[1]];var a=oL(e);r:if(ae===a)var u=e[1];else{if(W!==a&&D!==a){u=e;break r}u=k0(e)}return uz(t,u);default:return 0}}function fet(r){var e=r[1];switch(e[0]){case 0:var n=uz(e[1],0),t=n[1];return r[1]=[1,t,n[2]],t;case 2:var a=e[2],u=uz(e[1],0),f=u[1],i=u[2];r[1]=[3,f];var v=oL(a);r:if(ae===v)var c=a[1];else{if(W!==v&&D!==v){c=a;break r}c=k0(a)}return uz(i,c),f;default:return e[1]}}function iet(r){if(r===kQ)return"";for(var e=E0(Urt(D8,r)),n=1-Y7n(r),t=[0,0,0],a=Frt(r,47);a;){var u=a[2],f=a[1];if(f!==kQ&&f!==Ku)if(f!==Sf)K2(f,t),a=u;else{if(0!==t[1]){var i=t[1];if(!i)throw gQ(G2,1);if(i[1]!==Sf){var v=t[1];if(!v)throw gQ(G2,1);t[1]=v[2],t[2]=t[2]-1|0,a=u;continue}}K2(I8,t),a=u}else a=u}for(var c=t[1],A="";;){if(!c){if(A===kQ)return n?E8:e?"./":N8;var o=e?A:g0(Urt(T8,A));return(n?F8:"")+o}var s=c[1]+Bc+A;c=c[2],A=s}}function vet(r,e){var n=iet(e);return Prt(iet(r+Bc),n)}var cet=[Gl,"Yojson__Common.Json_error",zH()];function Aet(r){throw gQ([0,cet,r],1)}function oet(r){return T0(10<=r?r+87|0:r+48|0)}function set(r,e,n,t,a){Y2(t,r,e[1],n-e[1]|0),r3(t,a),e[1]=n+1|0}function bet(r,e){J2(r,34);var n=[0,0],t=AV(e)-1|0;if(t>=0)for(var a=0;;){var u=BL(e,a);r:if(92===u)set(e,n,a,r,i9);else{if(35<=u){if(lj!==u)break r}else if(8<=u)switch(u-8|0){case 0:set(e,n,a,r,"\\b");break r;case 1:set(e,n,a,r,a9);break r;case 2:set(e,n,a,r,u9);break r;case 4:set(e,n,a,r,"\\f");break r;case 5:set(e,n,a,r,f9);break r;case 26:set(e,n,a,r,'\\"');break r;case 24:case 25:break r}Y2(r,e,n[1],a-n[1]|0),r3(r,"\\u00"),J2(r,oet(u>>>4|0)),J2(r,oet(15&u)),n[1]=a+1|0}var f=a+1|0;if(t===a)break;a=f}try{Y2(r,e,n[1],AV(e)-n[1]|0)}catch(t){var i=NL(t),v=AV(e)-n[1]|0,c=n[1];throw iz(R6(HY,v9),e,c,v),gQ(i,0)}return J2(r,34)}function Bet(r,e){return r3(r,e?n9:t9)}function jet(r,e){return 0===e?0:(jet(r,e/10|0),J2(r,T0($Y(e%10|0)+48|0)))}function ket(r,e){return 0=0)for(var t=0;;){var a=BL(r,t);r:{if(48<=a){if(58<=a)break r}else if(45!==a)break r;var u=t+1|0;if(e===t)break;t=u;continue}throw gQ(PY,1)}return 1}catch(n){var f=NL(n);if(f===PY)return 0;throw gQ(f,0)}}function met(r,e,n,t){if(t){var a=t[2];fz(r,n,t[1]);for(var u=a;;){if(!u)return;var f=u[2],i=u[1];uz(e,n),fz(r,n,i),u=f}}}function det(r){return J2(r,44)}function _et(r,e){if("number"==typeof e)return r3(r,Lz);var n=e[1];if(pF>n)return $N<=n?ket(r,e[2]):bet(r,e[2]);if(ij<=n){if(cO<=n){var t=e[2];return J2(r,CU),met(function(r,e){var n=e[2];return bet(r,e[1]),J2(r,58),_et(r,n)},det,r,t),J2(r,xI)}var a=e[2];return J2(r,91),met(_et,det,r,a),J2(r,93)}if(vy<=n)return Bet(r,e[2]);var u=e[2],f=qC(u);if(3===f)return r3(r,0n)return $N<=n?ket(r,e[2]):bet(r,e[2]);if(ij<=n){if(cO<=n){var t=e[2];return J2(r,CU),met(function(r,e){var n=e[2];return bet(r,e[1]),J2(r,58),het(r,n)},det,r,t),J2(r,xI)}var a=e[2];return J2(r,91),met(het,det,r,a),J2(r,93)}if(vy<=n)return Bet(r,e[2]);var u=e[2],f=qC(u);if(3===f)return Aet(0=e)for(var u=e;;){J2(t,Rnt(r,u));var f=u+1|0;if(a===u)break;u=f}return S2(t)}function Cnt(r,e){return uz(r[1],e)}function Hnt(r,e){for(var n=0,t=r[2];;){if(t<=n){var a=n-1|0;return Yet(0,0<=a?[0,a]:0)}var u=n+((t-n|0)/2|0)|0;fz(Bnt,Cnt(r,u),e)<=0?n=u+1|0:t=u}}T7n(ker,[0,$nt,0,"",""]),h4(function(r){if(r[1]!==$nt)return 0;var e=r[2],n=r[4],t=r[3];if("number"==typeof e){var a=e;if(34<=a)switch(a){case 34:var u=Mrr;break;case 35:u=Prr;break;case 36:u=Urr;break;case 37:u=Grr;break;case 38:u=$rr;break;case 39:u=Krr;break;case 40:u=Orr;break;case 41:u=Rrr;break;case 42:u=Qrr;break;case 43:u=Crr;break;case 44:u=Hrr;break;case 45:u=Vrr;break;case 46:u=Lrr;break;case 47:u=zrr;break;case 48:u=Srr;break;case 49:u=Zrr;break;case 50:u=Wrr;break;case 51:u=Xrr;break;case 52:u=Jrr;break;case 53:u=Yrr;break;case 54:u=rer;break;case 55:u=eer;break;case 56:u=ner;break;case 57:u=ter;break;case 58:u=aer;break;case 59:u=uer;break;case 60:u=fer;break;case 61:u=ier;break;case 62:u=ver;break;case 63:u=cer;break;case 64:u=Aer;break;case 65:u=oer;break;case 66:u=ser;break;default:u=ber}else switch(a){case 0:u=err;break;case 1:u=nrr;break;case 2:u=trr;break;case 3:u=arr;break;case 4:u=urr;break;case 5:u=frr;break;case 6:u=irr;break;case 7:u=vrr;break;case 8:u=crr;break;case 9:u=Arr;break;case 10:u=orr;break;case 11:u=srr;break;case 12:u=brr;break;case 13:u="EIO";break;case 14:u=lrr;break;case 15:u=Brr;break;case 16:u=jrr;break;case 17:u=krr;break;case 18:u=prr;break;case 19:u=mrr;break;case 20:u=drr;break;case 21:u=_rr;break;case 22:u=hrr;break;case 23:u=xrr;break;case 24:u=yrr;break;case 25:u=wrr;break;case 26:u=grr;break;case 27:u=qrr;break;case 28:u=Irr;break;case 29:u=Drr;break;case 30:u=Err;break;case 31:u=Nrr;break;case 32:u=Trr;break;default:u=Frr}}else{var f=e[1];u=uz(H6(ler),f)}return[0,iz(H6(Ber),u,t,n)]}),J4n(0,7),new WV;var Vnt=[Gl,"Grace_source_reader.Error",zH()],Lnt=[0,0];function znt(r){var e=Lnt[1];if(e)return e[1];throw gQ([0,Vnt,103044232],1)}function Snt(r){var e=znt(),n=e[1];try{var t;return a5n(n,r)}catch(t){var a=NL(t);if(a!==dz)throw gQ(a,0);var u=uz(e[3],r);return t5n(n,r,u),u}}function Znt(r){return r[2][1]}function Wnt(r){return r[2][2]}function Xnt(r,e){var n=Snt(r),t=xnt(n[2]);return Pnt(hnt,e)&&wnt(e,t)?Cnt(n,e):Fnt(e,t)?knt(Ont(r)):vz(D7n(MY,mer),ynt,e,ynt,t)}function Jnt(r,e){var n=Xnt(r,e),t=Xnt(r,_nt(e,1));return[0,e,gnt(r[2],n,t)]}function Ynt(r,e){var n=r[2];1-int(e[2],n[3])&&D7n(MY,der);var t=qnt(n),a=t[2],u=t[1],f=z2(pnt(a,u)),i=a-1|0;if(i>=u)for(var v=u;;){J2(f,Rnt(e,v));var c=v+1|0;if(i===v)break;v=c}return S2(f)}function rtt(r,e,n){mC(r,e,n)}function ett(r,e,n){return[0,F_,g1(r,e,n)]}function ntt(r,e,n,t,a){var u=w1(n,t,a),f=tH(2);if(r)var i=1,v=0;else i=0,v=1;rtt(f,v,e>>>8|0),rtt(f,i,e&LK);var c=mH(f),A=mH(u),o=tH(c+A|0);return tC(f,0,o,0,c),tC(u,0,o,c,A),[0,F_,_L(o)]}var ttt=AL([0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0]);function att(r,e,n){function t(r){return[0,Lr,r]}var a=n-1|0;if(3>>0)throw gQ([0,xz,wer],1);switch(a){case 0:return t(BC(r,e));case 1:var u=BC(r,e+1|0),f=BC(r,e);return 2==(u>>>6|0)?t((31&f)<<6|63&u):ett(r,e,n);case 2:var i=BC(r,e),v=BC(r,e+1|0),c=BC(r,e+2|0),A=(15&i)<<12|(63&v)<<6|63&c;return 2!=(c>>>6|0)?ett(r,e,n):Bs===i?X<=v&&oj>=v?t(A):ett(r,e,n):237!==i?2==(v>>>6|0)?t(A):ett(r,e,n):Ih<=v&&Sg>=v?t(A):ett(r,e,n);default:var o=BC(r,e),s=BC(r,e+1|0),b=BC(r,e+2|0),l=BC(r,e+3|0),B=(7&o)<<18|(63&s)<<12|(63&b)<<6|63&l;return 2==(l>>>6|0)&&2==(b>>>6|0)?Jj===o?Po<=s&&oj>=s?t(B):ett(r,e,n):D!==o?2==(s>>>6|0)?t(B):ett(r,e,n):Ih<=s&&ta>=s?t(B):ett(r,e,n):ett(r,e,n)}}function utt(r,e,n){var t=BC(r,e)<<8|BC(r,n);return We<=t&&57343>=t?56319=a?[0,Lr,((r&Td)<<10|a&Td)+Xf|0]:ntt(nn[1])return vtt(e),uz(r,e);var t=JY(n[2],e[5],0,mH(e[5])),a=e[5];r:if(0<=t&&mH(a)>=(0|t)){if(0===t){vtt(e);break r}e[5]=a,e[6]=0,e[7]=(0|t)-1|0}else MY(fz(H6(ger),0,t));return uz(r,e)}function Att(r,e){r[9]=0,r[10]=e}function ott(r,e){function n(r,e){tC(r[5],r[6],r[8],r[9],e),r[6]=r[6]+e|0,r[9]=r[9]+e|0}var t=itt(e);if(0>t)return uz(r,e);var a=e[10]-e[9]|0;return t=e)return 0<=e?ctt(btt,r):_F;var n=r[6];r[6]=r[6]+1|0;var t=r[5],a=BC(t,n);return stt(btt,lj=e)return 0<=e?ctt(ltt,r):_F;var n=r[6];return r[6]=r[6]+1|0,stt(ltt,[0,Lr,BC(r[5],n)],1,r)}function Btt(r){if(r[9]=e)return 0<=e?ctt(jtt,r):_F;var n=ttt[BC(r[5],r[6])+1];if(e=r[10])return ptt(utt(r[8],0,1),r);var e=r[9];return stt(mtt,ett(r[8],0,r[9]),e,r)}function ptt(r,e){if(F_<=r[1])return stt(mtt,r,2,e);var n=r[2];if(2<=itt(e)){var t=e[6];return e[6]=e[6]+2|0,stt(mtt,ftt(n,e[5],t,t+1|0),4,e)}return Att(e,2),ott(function(r){var e=r[9]+2|0;return r[9]=e)return 0<=e?ctt(mtt,r):_F;if(2<=e){var n=r[6];return r[6]=r[6]+2|0,ptt(utt(r[5],n,n+1|0),r)}return Att(r,2),ott(ktt,r)}function dtt(r){if(r[9]>=r[10])return _tt(utt(r[8],1,0),r);var e=r[9];return stt(htt,ett(r[8],0,r[9]),e,r)}function _tt(r,e){if(F_<=r[1])return stt(htt,r,2,e);var n=r[2];if(2<=itt(e)){var t=e[6];return e[6]=e[6]+2|0,stt(htt,ftt(n,e[5],t+1|0,t),4,e)}return Att(e,2),ott(function(r){var e=r[9]+2|0;return r[9]=e)return 0<=e?ctt(htt,r):_F;if(2<=e){var n=r[6];return r[6]=r[6]+2|0,_tt(utt(r[5],n+1|0,n),r)}return Att(r,2),ott(dtt,r)}function xtt(r){r[14]=0,r[13]=r[13]+1|0}function ytt(r){r[14]=r[14]+1|0}function wtt(r){r[16]=r[16]+1|0}function gtt(r,e){r[12]=e}function qtt(r,e){if(Lr>e[1])return gtt(r,0),wtt(r),ytt(r),e;var n=e[2]-133|0;r:{if(8100>>0){var t=n+CU|0;if(3>>0)break r;switch(t){case 0:var a=r[12];return gtt(r,0),wtt(r),a||xtt(r),e;case 3:return gtt(r,1),wtt(r),xtt(r),e;case 1:break r}}else if(8097>=n-1>>>0)break r;return gtt(r,0),wtt(r),xtt(r),e}return gtt(r,0),wtt(r),ytt(r),e}function Itt(r,e){return w7n(r)(Ier)}function Dtt(r,e,n){return fz(S0(Oet,r,n),e,0)}function Ett(r,e){return w7n(r)(qer)}function Ntt(r){r:if("number"==typeof r){if(698610925<=r){if(Nu!==r&&lN!==r&&SB!==r)break r}else if(yd!==r&&Vb!==r&&Qd>r)break r;return 1}return 0}function Ttt(r){return[0,Nu,[0,[0,sf,[0,16161,r]],0]]}function Ftt(r){return[0,[0,sf,r],0]}var Mtt=Ftt(jG),Ptt=Ftt(yf),Utt=Ftt(kU),Gtt=Ftt(nu),$tt=Ftt(nu),Ktt=Ttt(jG),Ott=Ttt(yf),Rtt=Ttt(kU),Qtt=Ttt(nu),Ctt=[0,Ttt(nu),Qtt,Rtt,Ott,Ktt,Fer,$tt,Gtt,Utt,Ptt,Mtt,Ter,Ner,Eer,Der];function Htt(r,e){switch(e){case 0:return r[5];case 1:return r[4];case 2:return r[3];case 3:return r[2];default:return r[1]}}function Vtt(r,e,n){if(e)switch(n){case 0:return r[11];case 1:return r[10];case 2:return r[9];case 3:return r[8];default:return r[7]}return r[12]}r:{var Ltt=function(r){return M1(function(r){return 32<=r?r:32},r)},ztt=function(r,e){var n=AV(r),t=AV(e);if(t=1)for(var c=1;;){var A=NQ(u+1|0,0);gC(A,0)[1]=c;if(u>=1)for(var o=1;;){var s=BL(f,c-1|0),b=BL(i,o-1|0)===s?0:1,l=o-1|0,B=o-1|0,j=gC(v,l)[l+1]+b|0,k=gC(A,B)[B+1]+1|0,p=UY(UY(gC(v,o)[o+1]+1|0,k),j);gC(A,o)[o+1]=p;var m=o+1|0;if(u===o)break;o=m}Y1(A,0,v,0,u+1|0);var d=c+1|0;if(a===c)break;c=d}return gC(v,u)[u+1]},Stt=function(r,e){for(var n=r,t=0;;){if(0===n)return t;var a=[0,uz(e,n-1|0),t];n=n-1|0,t=a}},Ztt=function(r){e:{if(14<=r){if(32!==r)break e}else if(12>r)switch(r){case 1:case 9:case 10:break;default:break e}return 1}return 0},Wtt=function(r,e,n){return g7n(function(n){return[0,r,e,n]},n)},Xtt=function(r){var e=[0,[0,Nnt,0]],n=Ont(r)-1|0;if(n>=0)for(var t=0;;){if(10===Rnt(r,t)){var a=e[1];e[1]=[0,knt(t+1|0),a]}var u=t+1|0;if(n===t)break;t=u}var f=t2(Q0(e[1]));return[0,function(r){return f[r+1]},f.length-1]},Jtt=function(r){var e=Lnt[1];if(!e)return 0;var n=e[1][2];return function(r,e){var n=Z4(e);1-n&&W4(e);try{var t=e[2],a=t.length-2|0;if(a>=0){var u=0;e:for(;;)for(var f=gC(t,u)[u+1];;){if(!f){var i=u+1|0;if(a===u)break e;u=i;break}var v=f[3];fz(r,f[1],f[2]),f=v}}return void(1-n&&W4(e))}catch(t){var c=NL(t);if(n)throw gQ(c,0);throw W4(e),gQ(c,0)}}(function(r,e){return DL(e[1])},n),function(r){var e=0=0))return MY("Array.fill");!function(r,e,n,t){for(var a=0;ae[1])return r[11]=0,r[17]=qtt,fz(r[17],r,e);var n=e[2];return 65279===n?(v&&(r[2]=-211558048,r[18]=mtt),r[11]=1,r[17]=qtt,uz(r[18],r)):65534===n&&v?(r[2]=i_,r[18]=htt,r[11]=1,r[17]=qtt,uz(r[18],r)):(r[11]=0,r[17]=qtt,fz(r[17],r,e))},t],A=0;;){var o=uz(c[18],c);if("number"==typeof o){if(iD<=o)throw gQ([0,xz,Ver],1);return A}if(Lr>o[1])throw gQ([0,kz,"invalid UTF-8"],1);A=A+1|0}}var _at=Wet([0,tnt]),hat=_at[2],xat=_at[1];function yat(r,e){var n=r+e|0;if(xat(n,1))return n;throw gQ([0,xz,Her],1)}function wat(r,e,n){return dat(Qnt(e,Znt(n),r))+1|0}function gat(r,e){var n=H0(function(r){return[0,r[2],r[1][1]]},e);if(n)for(var t=n[2],a=n[1];;){if(!t){var u=[0,a];break}var f=t[2],i=t[1],v=i[2],c=a[2],A=fz(Unt,a[1],i[1]);0<=(0===A?fz(Bnt,c,v):A)?t=f:(t=f,a=i)}else u=0;var o=Yet(Cer,u)[2],s=Jnt(r,xnt(Hnt(Snt(r),o))),b=wat(o,r,s);return[0,s[1]+1|0,b]}function qat(r,e){var n=Jnt(r,e),t=Ynt(n,r),a=mat(t),u=[0,[0,[0,t,dat(t),0],0],0,a];return[0,n[1],u]}function Iat(r,e){return e?[0,r[1]+1|0,r[2]]:[0,r[1],r[2]+1|0]}function Dat(r,e){if(e){if(0=A)for(var s=A;;){var b=Jnt(r,xnt(s)),l=f[1],B=l[2],j=l[1],k=qnt(b[2]),p=k[2],m=k[1],d=[0,0,0];let e=d,n=p,t=m,a=b;var _=a1(function(u){var f=u[2],i=u[1],v=qnt(f[1]),c=v[2],A=v[1];if(snt(t,A)&&snt(c,n))return e[1]=[0,f,e[1]],0;if(snt(t,A)&&lnt(A,n)){var o=f[2];return Mat(e,[0,i,wat(A,r,a),o]),1}if(lnt(A,t)&&lnt(n,c))return 1;if(lnt(A,t)&&snt(c,n)){var s=f[3],b=f[2];return Mat(e,[1,i,wat(c,r,a),b,s]),0}return 1},j);if(b1(d[1])&&b1(d[2]))var h=B;else h=[0,Eat(r,b,d[1],d[2]),B];f[1]=[0,_,h];var x=s+1|0;if(o===s)break;s=x}return Q0(f[1][2])}function Uat(r){var e=r[5],n=r[4],t=r[3],a=r[2],u=r[1],f=Xet(cnt,function(r){return r[1][3]});function i(r,e){return 0!==f(r,e)?1:0}var v=[0,s1(f,n)];function c(r){var e=v[1];if(e){var n=e[2];if(n){var t=e[1],a=n[1];if(v[1]=n,i(t,a))return[0,t,0];for(var u=[0,t,BN],f=u,c=1;;){var A=v[1];r:{if(A){var o=A[2];if(o){var s=A[1],b=o[1];if(v[1]=o,i(s,b)){f[c+1]=[0,s,0];break r}var l=[0,s,BN];f[c+1]=l,f=l,c=1;continue}}v[1]=0,f[c+1]=A}return u}}}return v[1]=0,e}if(b1(v[1]))var A=0;else for(var o=[0,c(),BN],s=o,b=1;;){if(b1(v[1])){s[b+1]=0;A=o;break}var l=[0,c(),BN];s[b+1]=l,s=l,b=1}return[0,u,a,t,[0,H0(function(r){var e=r[2],n=r[1],t=n[1];if(WB===t){var a=n[2],u=znt()[2];try{var f=a5n(u,a)}catch(p){var i=NL(p);if(i!==dz)throw gQ(i,0);try{var v=function(r,e,n){for(var t={};e;){switch(e[1]){case 0:t.rdonly=1;break;case 1:t.wronly=1;break;case 2:t.rdwr=1;break;case 3:t.nonblock=1;break;case 4:t.append=1;break;case 5:t.create=1;break;case 6:t.truncate=1;break;case 7:t.excl=1;break;case 8:t.noctty=1;break;case 9:t.dsync=1;break;case 10:t.sync=1}e=e[2]}var a=qH(r),u=a.device.open(a.rest,t,n,!0),f=CV.length,i=new KV(f);return CV[f]={file:u,chanid:i},0|f}(a,her,xa),c=v}catch(p){var A=NL(p);if(A[1]!==$nt)throw gQ(A,0);c=uz(Knt(xer),a)}try{var o=az(c,12,0,0,[0,-1],_er[1]),s=1===function(r){return r.dims.length}(o)?o:MY("Bigarray.array1_of_genarray"),b=s}catch(p){DL(c);b=uz(Knt(yer),a)}var l=[0,c,b];t5n(u,a,l);f=l}var B=[0,f]}else B=ya<=t?[2,n[2]]:[1,n[2][2]];var j=[0,B,n],k=Nat(j,Pat(j,e));if(k)var p=Fat(k),m=p[3],d=[0,Tat(p[1],p[2]),m];else d=0;return[0,n,gat(j,e),d]},H0(function(r){return[0,$0(r)[1][3],r]},A))],e]}function Gat(r,e,n){return S0(Oet,Vtt(r[2],n,e),M5n)}function $at(r,e,n){var t=r[1][2];return fz(S0(Oet,r[2][14],M5n),e,t)}function Kat(r,e,n,t,a){return fz(S0(Oet,Vtt(r[2],n,e),Gnt),t,a)}function Oat(r,e,n,t,a){var u=r[2],f=n5n(u,e);r:{for(var i=gC(u[2],f)[f+1];i;){var v=0===nH(i[1],e)?1:0,c=i[3];if(v){var A=v;break r}i=c}A=0}if(A)throw gQ([0,xz,qnr],1);for(var o=r[1],s=0,b=o.length-1;;){if(s===b)var l=0;else{if(!D0(o[s+1])){s=s+1|0;continue}l=[0,s]}var B=Yet(Inr,l);return t5n(r[2],e,B),gC(r[1],B)[B+1]=[0,[0,t,[0,uB,n]]],uz(a,0),gC(r[1],B)[B+1]=[0,[0,t,-1010337642]],0}}function Rat(r,e,n,t,a){if("number"==typeof a){if(yk>a)return Itt(t);var u=r[1][14];return fz(Gat(r,e,n),t,u)}if(Mn<=a[2])return Itt(t);var f=r[1][12];return fz(Gat(r,e,n),t,f)}function Qat(r,e,n,t){var a=[0,Itt];function u(r){return fz(a[1],n,0)}var f=t[1].length-2|0;if(f>=0)for(var i=0;;){var v=gC(t[1],i)[i+1];if(v){var c=v[1],A=c[2],o=c[1];let t=A,f=o;a[1]=function(n,a){return Rat(r,e,f,n,t)};var s="number"==typeof A?yk<=A?r[1][13]:r[1][15]:r[1][11];fz(Gat(r,e,o),n,s),u()}else u(),u();var b=i+1|0;if(f===i)break;i=b}return u()}function Cat(r,e,n,t,a,u){var f=u[1],i=qet([0,yet],function(n,t){var a=t[1];r:{e:{for(var u=AV(a)-1|0,f=function(r){return 10!==r&&13!==r?0:1};;){if(0>u)break e;if(1-f(oV(a,u)))break;u=u-1|0}var i=[0,u];break r}i=0}if(i){var v=i[1];if(v===(AV(a)-1|0))var c=a;else{var A=v+1|0;c=AV(a)n[1]){var u=a[1];return[0,T1(r,0,t[1]),u]}if(10===oV(r,n[1])){var f=n[1]+1|0,i=a[1];a[1]=[0,T1(r,f,t[1]-f|0),i],Jet(r,n,t)}else n[1]--}}function Lat(r,e,n,t){for(var a=Vat(fz(Get(n,_nr),e,t)),u=a,f=0,i=G0(a);;){if(!u)return 0;var v=u[2],c=u[1];fz(w7n(n)(dnr),r,c),f!==(i-1|0)&&Ett(n),u=v,f=f+1|0}}function zat(r,e,n,t){for(var a=Vat(fz(Get(n,mnr),e,t)),u=a,f=0,i=G0(a),v=AV(r);;){if(!u)return 0;var c=u[1],A=u[2];0===f?fz(w7n(n)(knr),r,c):iz(w7n(n)(pnr),v,"",c),f!==(i-1|0)&&Ett(n),u=A,f=f+1|0}}function Sat(r,e,n,t){return function(a,u){if(t>=1)for(var f=1;;){Rat(r,e,n,a,u);var i=f+1|0;if(t===f)break;f=i}return 0}}function Zat(r,e,n,t,a){if(0===a[0]){var u=a[3],f=a[2];return Oat(n[2],a[1],Vj,u,function(a){Qat(r,e,t,n[2]),Sat(r,e,u,f-1|0)(t,Bnr);var i=u?r[1][7]:r[1][9];return fz(Gat(r,e,u),t,i)})}var i=a[1],v=n[2],c=a[4],A=a[3],o=a[2],s=a5n(v[2],i),b=[0,[0,Yet(gnr,gC(v[1],s)[s+1])[1],yk]];gC(v[1],s)[s+1]=b,Qat(r,e,t,n[2]),function(r,e,n,t){var a=t[2],u=t[3],f=Sat(r,e,a,t[1]);zat(vz(Get(n,lnr),f,yk,function(n,t){var u=a?r[1][8]:r[1][10];return fz(Gat(r,e,a),n,u)},0),function(n,t){return Kat(r,e,a,n,t)},n,u)}(r,e,t,[0,o-2|0,A,c]),gC(v[1],s)[s+1]=0;for(var l=v[2],B=n5n(l,i),j=0,k=gC(l[2],B)[B+1];;){if(!k)return 0;var p=k[3];if(0===nH(k[1],i))return l[1]=l[1]-1|0,j?(j[3]=p,0):(gC(l[2],B)[B+1]=p,0);j=k,k=p}}function Wat(r,e,n,t){function a(t){return fz(Get(n,Anr),function(n,a){var u=r[1][16];return fz(Gat(r,e,t),n,u)},0)}return function t(u,f,i){for(var v=u,c=f,A=i;;){if(!A)return uz(w7n(n)(cnr),c);var o=A[1],s=o[4],b=o[3],l=o[2],B=o[1];if(s)break;var j=A[2];if(!hat(v,B))throw gQ([0,xz,vnr],1);var k=c+N1(yat(B,l)-v|0,32);v=yat(B,l),c=k,A=j}var p=A[2];if(!hat(v,B))throw gQ([0,xz,inr],1);var m=c+N1(B-v|0,32),d=m+a(b);t(yat(B,1),d,p),Ett(n);var _=qet([0,Ett],function(n,t){return G5n(n),Kat(r,e,b,n,t),g5n(n)});return Lat(m,function(r,e){return $5n(r,0),_(r,e),g5n(r)},n,s)}(1,"",t)}function Xat(r,e,n,t,a,u){for(var f=u[1],i=[0,0,1,0];;){var v=i[3],c=i[2],A=i[1];if(!f)break;var o=f[1],s=o[3],b=o[2];if(s){var l=s[1],B=f[2],j=l[2],k=[0,[0,c,b,l[1],H0(function(r){return r[2]},s1(Xet(function(r,e){return fz(Unt,e,r)},function(r){return r[1]}),j))]],p=yat(c,b);f=B,i=[0,QY(N0(v),A),p,k]}else{f=f[2],i=[0,A,yat(c,b),v]}}r:if(v){var m=v[1],d=m[4],_=m[3],h=m[2],x=m[1];if(d&&!d[2]){var y=[0,[0,x,h,_,d[1]]];break r}y=0}else y=0;if(y)var w=[0,[0,y[1]],Q0(A)];else w=[0,0,Q0(QY(N0(v),A))];var g=S0(function(r,e){var n=e[2],t=e[1];return 0===r[0]&&(r[2]-1|0)<=u[3]?n?[0,[0,r,[0,n[1],t]],0]:[0,t,[0,r]]:[0,[0,r,t],n]},u[2],anr),q=g[2],I=g[1];if(q){var D=q[1];if(0!==D[0])throw gQ([0,xz,bnr],1);Oat(n[2],D[1],Mn,D[3],function(f){return Cat(r,e,n,t,a,u)})}else Cat(r,e,n,t,a,u);var E=w[1],N=b1(w[2]);if(1-(N?D0(E):N)){Ett(a);var T=n[2],F=n[1];Lat(Az(Get(a,jnr),F,"",function(e,n){return $at(r,e)},0,function(n,t){return Qat(r,e,n,t)},T),function(n,t){return function(r,e,n,t){var a=t[1],u=[0,1];function f(t){var a=t[3],f=t[2],i=t[1];if(!hat(u[1],i))throw gQ([0,xz,onr],1);var v=i-u[1]|0;if(v>=1)for(var c=1;;){Itt(n);var A=c+1|0;if(v===c)break;c=A}var o=GY(1,f);if(o>=1)for(var s=1;;){var b=a?r[1][5]:r[1][6];fz(Gat(r,e,a),n,b);var l=s+1|0;if(o===s)break;s=l}u[1]=yat(i,f)}for(var i=t[2];i;){var v=i[1],c=i[2];f([0,v[1],v[2],v[3]]),i=c}if(a){var A=a[1];f([0,A[1],A[2],A[3]])}var o=t[1];if(o){var s=o[1],b=s[3],l=s[4];fz(w7n(n)(snr),function(n,t){return Kat(r,e,b,n,t)},l)}var B=1-b1(t[2]);if(!B)return B;var j=t[2];return fz(w7n(n)(fnr),function(n,t){return Wat(r,e,n,t)},j)}(r,e,n,t)},a,w);var M=I}else M=I;for(;;){if(!M)return;var P=M[2],U=M[1];Ett(a);var G=n[1];Az(w7n(a)(unr),G,"",function(e,n){return $at(r,e)},0,function(t,a){return Zat(r,e,n,t,a)},U),M=P}}function Jat(r,e,n){var t=r[1],a=n[2],u=n[1];if(WB===t)var f=[0,r[2]];else if(ya<=t){var i=r[2];f=[0,w0(i[2],kQ+i[1])]}else f=r[2][1];var v=w0(f,"unknown");return cz(w7n(e)(tnr),v,P5n,u,P5n,a)}function Yat(r,e,n,t,a,u){var f=u[3],i=u[2],v=u[1],c=[0,n,[0,NQ(t,0),J4n(0,8)]],A=c[1];Az(w7n(a)(nnr),A,"",function(e,n){var t=r[1][1];return fz(S0(Oet,r[2][14],M5n),e,t)},0,function(r,e){return Jat(v,r,e)},i),1-b1(f)&&w7n(a)(enr);for(var o=f,s=0;;){if(!o)return 0;var b=o[1],l=o[2];0!==s&&(Ett(a),Hat(r,e,c,a));for(var B=b[2],j=0,k=b[1];;){if(!B){o=l,s=s+1|0;break}var p=B[2],m=B[1];0!==j&&Ett(a),Xat(r,e,c,_nt(k,j)+1|0,a,m),B=p,j=j+1|0}}}function rut(r,e,n,t,a,u){var f=S0(Oet,r[2][6],Gnt);return Az(w7n(a)(Jer),function(e,n){return function(r,e,n){return Dtt(Htt(r[2],n),e,function(r,e){switch(n){case 0:var t="help";break;case 1:t="note";break;case 2:t=Y9;break;case 3:t=rrr;break;default:t="bug"}return M5n(r,t)})}(r,e,n)},n,function(t,a){return function(r,e,n,t,a){return Dtt(Htt(r[2],n),t,function(r,n){if(!a)return 0;var t=a[1];return wet(rnr,r),M5n(r,uz(e,t)),wet(Yer,r)})}(r,e,n,t,a)},t,f,u)}function eut(r,e,n,t){return zat(vz(Get(n,Xer),e,"",function(e,n){var t=r[1][4];return fz(S0(Oet,r[2][15],M5n),e,t)},0),Gnt,n,t)}function nut(r){return"E????"}function tut(r,e){var n=YC(r[1],e[1]);if(0!==n)return n;var t=JC(r[2],e[2]);return 0===t?JC(r[3],e[3]):t}var aut=[0,function(r,e){var n=tut(r[1],e[1]);return 0===n?tut(r[2],e[2]):n}],uut=P2(aut),fut=U2(aut);function iut(r,e){return[0,e,r,0]}var vut=[0,Sz,Sz];function cut(r){var e=r[1]===kQ?1:0;if(e)var n=0===r[2]?1:0,t=n?0===r[3]?1:0:n;else t=e;return t}function Aut(r,e){return[0,r[1],e[2]]}function out(r){if(-1!==r[2])return kQ+r[2]+Ku+kQ+(r[3]+1|0);var e=r[3];return uz(H6(Enr),e)}function sut(r){if(r[1][1]===kQ)return"(unknown location)";var e=OH(r[2],r[1])?"":iF+out(r[2]),n=cK+out(r[1])+e;return r[1][1]+n}function but(r,e,n){var t=w0(e,0);return T1(r,t,w0(n,AV(r))-t|0)}var lut=[Gl,"Source.ParseError",zH()],But=e5n([0,OH,function(r){return(20|r[2])&r[1]}]),jut=But[1].call(null,0);function kut(r,e){return But[7].call(null,r,[0,e[1][2],e[1][3]])}function put(r){var e=u1(function(r){if(0!==r[0])return 0;var e=Prt("/// @deprecated",r[1]);if(!e)return 0;var n=e[1];return n!==kQ?Prt(Pnr,n):Mnr},r[1]);return 0===e?0:[0,F1(Unr,e)]}function mut(r){return u1(function(r){if(0!==r[0])return 0;var e=r[1],n=Prt("///",e);if(!n){var t=Prt("/**",e),a=q0(U1,t?Urt("*/",t[1]):0);return a?[0,[1,a[1]]]:0}var u=n[1];if(u===kQ)return Tnr;var f=Prt(Fnr,u);return f?[0,[0,f[1]]]:0},r[1])}function dut(r){var e=U2(r),n=e[1],t=e[2],a=e[5],u=e[8],f=e[10],i=e[18],v=e[4],c=e[6],A=e[7],o=e[9],s=e[17],b=e[23],l=e[24],B=e[25],j=e[26],k=e[27],p=e[28],m=e[31],d=e[32],_=e[33],h=e[34],x=e[35],y=e[39],w=P2(r),g=w[2],q=w[24],I=w[31],D=[Gl,"Dom.Make(X).Clash",zH()];function E(r,e){if(I(r,e))throw gQ([0,D,r],1);return g(r,e)}var N=[0,w[1],g,w[3],,w[5],w[6],w[7],w[8],w[9],w[10],,,,,,,,,,,,,w[23],q,,w[26],,,,w[30],I,,,,,,,w[38],,,,,,,E,function(r,e){return q(function(r,e){return E(r,e)},e,r)}],T=[Gl,"Env.Make(X).Clash",zH()];function F(r,e){return u(function(r,e,n){throw gQ([0,T,r],1)},r,e)}return[0,n,t,,v,a,c,A,u,o,f,,,,,,,s,i,,,,,b,l,B,j,k,p,,,m,d,_,h,x,,,,y,,,,,N,T,function(r){for(var e=f(r),n=N[1];;){if(!e)return n;var t=e[2],a=N[2].call(null,e[1][1],n);e=t,n=a}},function(r,e){return N[24].call(null,function(r,n){var a=i(r,e);return a?t(r,a[1],n):n},r,n)},function(r){return H0(function(r){return r[1]},f(r))},function(r){for(var e=r,a=n;;){if(!e)return a;var u=e[1];e=e[2],a=t(u[1],u[2],a)}},,function(r,e){return u(function(r,e,n){return[0,n]},r,e)},function(r,e,n){return F(n,a(r,e))},F,function(r){return z0(F,n,r)}]}var _ut=dut([0,z1]),hut=P2([0,z1]),xut=_ut[1];function yut(r){return _ut[24].call(null,function(r,e,n){return hut[9].call(null,e)+n|0},r,0)}function wut(r,e,n){return[0,hut[5].call(null,e,n)]}var gut=_ut[8];function qut(r,e){return gut(wut,r,e)}function Iut(r,e){return hut[24].call(null,function(e){var n=uz(r,e),t=hut[5];return function(r){return t(n,r)}},e,hut[1])}function Dut(r,e){for(var n=hut[24].call(null,function(r,e){var n=hut[3].call(null,r);return _ut[2].call(null,r,n,e)},r,xut);;){var t=function(r){var n=_ut[18].call(null,r,e);return n?n[1]:hut[1]};let r=t;var a=fz(qut,n,_ut[25].call(null,function(e){return Iut(r,e)},n)),u=yut(a);if(yut(n)===u)return n;n=a}}function Eut(r,e){for(var n=L1(44,e);;){if(!n)return 0;var t=n[2],a=n[1],u=a!==kQ?1:0;if(u)for(var f=$nr;;){if(!f){var i=0;break}var v=f[1][1]===a?1:0,c=f[2];if(v){i=v;break}f=c}else i=u;i?(A9n[1]=g8n[2].call(null,a,r,A9n[1]),n=t):(uz(C6(function(r){if(L8n[1])throw gQ([0,b9n,r],1);return uz(R6(HY,S5),r),a0(1)},Knr),a),n=t)}}function Nut(r,e){var n=r[1];if("number"!=typeof n){var t=n[1];return r[1]=[0,[W,function(r){var n=oL(e);r:if(ae!==n){if(W!==n&&D!==n)break r;k0(e)}var a=oL(t);return ae===a?t[1]:W!==a&&D!==a?t:k0(t)}]],0}if(!n)return 0;var a=oL(e);return ae===a?e[1]:W!==a&&D!==a?e:k0(e)}var Tut=[0,0],Fut=[0,1];function Mut(r,e){return Nut(r,[W,function(r){var n=e[1];if("number"==typeof n){if(n)return 0;throw gQ([0,kz,"Lbool.set_false() on surely true variable"],1)}var t=n[1];e[1]=1;var a=oL(t);return ae===a?t[1]:W!==a&&D!==a?t:k0(t)}])}function Put(r){if(0===r)return Tut;for(var e=[0,[0,0]],n=r;;){if(!n)return e;var t=n[2];Mut(n[1],e),n=t}}var Uut=U2([0,k1]),Gut=P2([0,k1]);function $ut(r,e,n,t){var a=r?r[1]:pat,u=e?e[1]:nut,f=q4(Jtt,function(r){if(E0(Lnt[1]))throw gQ([0,Vnt,87013005],1);var e=J4n(0,4);return Lnt[1]=[0,[0,J4n(0,Bo),e,Xtt]],Uat(t)});Pet(Uet,w0(nat(a),lN),n);var i=f[5],v=f[4],c=f[3],A=f[2],o=f[1];Pet(Uet,w0(nat(a),Gv),n),S5n(n,2,$_);var s=0===v[0]?ant(w0(ent(H0(function(r){var e=rnt(r[3]);if(!e)return 0;var n=e[1],t=n[1];return AV(kQ+(_nt(t,G0(n[2]))+1|0))},v[1]),tnt),0),3):0;function b(r){if(!r)return 0;for(var e=r[1],n=b(r[2]),t=e[2],a=0;;){if(!t)return a+n|0;var u=t[2];(0===t[1][0]?1:0)?(t=u,a=a+1|0):t=u}}var l=0===v[0]?w0(ent(H0(function(r){return function r(e){if(!e)return 0;var n=e[1][2],t=r(e[2]);return b(n)+t|0}(r[3])},v[1]),tnt),0):0;if(w7n(n)(Ser),0===v[0]){var B=v[1];rut(a,u,o,c,n,A),1-b1(B)&&Ett(n),qet([0,Ett],function(r,e){return Yat(a,o,s,l,r,e)})(n,B)}else{var j=v[1];j?qet([0,Ett],function(r,e){var n=e[1],t=e[2];return vz(w7n(r)(Wer),function(r,e){return Jat(n,r,e)},t,function(r,e){return rut(a,u,o,c,r,e)},A)})(n,j):rut(a,u,o,c,n,A)}return 1-b1(i)&&Ett(n),qet([0,Ett],function(r,e){return eut(a,s,r,e)})(n,i),w7n(n)(Zer)}function Kut(r){var e=[0,r];return function(r){var n=e[1];return e[1]=e[1]+1|0,n}}function Out(r,e){var n=Uut[39].call(null,e);function t(e){var n=e[2],t=n[1],a=e[1],u=[0,t,H0(r,n[2])];return[0,uz(r,a),u]}return Uut[43].call(null,function(r){return d0(t,n)})}function Rut(r,e,n,t,a,u,f){return[0,0,e,r,n,f,t?t[1]:0,a?a[1]:0,u?u[1]:0]}function Qut(r,e,n,t,a,u,f){return[0,1,e,r,n,f,t?t[1]:0,a?a[1]:0,u?u[1]:0]}function Cut(r){return[0,[0,r,0]]}function Hut(r,e,n,t){return[0,[0,0,[0,Rut(r,e,n,0,0,0,t),0]]]}function Vut(r,e,n,t){return[1,[0,Qut(r,e,n,0,0,0,t),0]]}function Lut(r,e){if(0!==r[0])return[1,r[1]];var n=r[1],t=n[2],a=uz(e,n[1]);if(0!==a[0])return[1,QY(t,a[1])];var u=a[1];return[0,[0,u[1],QY(t,u[2])]]}function zut(r,e){if(!e)return Cut(0);var n=e[2];return Lut(uz(r,e[1]),function(e){var t=zut(r,n);if(0!==t[0])return[1,t[1]];var a=t[1];return[0,[0,[0,e,a[1]],a[2]]]})}function Sut(r,e){if(!e)return Cut(0);var n=e[2];return Lut(uz(r,e[1]),function(e){return Sut(r,n)})}function Zut(r,e,n){if(!n)return Cut(e);var t=n[2];return Lut(fz(r,e,n[1]),function(e){return Zut(r,e,t)})}function Wut(r,e){return 0===e[1]&&s9n(e[2])||(r[1]=[0,e,r[1]]),0}function Xut(r){return Q0(r[1])}function Jut(r){for(var e=r;;){if(!e)return 0;var n=1===e[1][1]?1:0,t=e[2];if(n)return n;e=t}}function Yut(r){var e=r[2],n=2<=r[1]?"":e!==kQ?uz(H6(Atr),e):"";switch(r[1]){case 1:var t=r[4],a=uz(H6(str),t);break;case 0:a=otr;break;default:a=btr}var u=a1(function(r){return 0===r[1]?1:0},r[6]),f=0===u?"":bu+F1(ltr,H0(function(r){return r[3]},u)),i=0===r[7]?"":bu+F1(Btr,H0(function(r){return IM+r},r[7])),v=r[5],c=sut(r[3]);return Az(H6(jtr),c,a,n,v,f,i)}function rft(r,e){var n=[0,-1],t=e[2]-1|0;if(t>=1)for(var a=1;;){n[1]=R1(r,n[1]+1|0,10);var u=a+1|0;if(t===a)break;a=u}return 1+(n[1]+e[3]|0)|0}function eft(r){for(var e=r[6];;){if(e){var n=0===e[1][1]?1:0,t=e[2];if(!n){e=t;continue}var a=n}else a=0;return a?r[6]:[0,[0,0,r[3],""],r[6]]}}function nft(r,e,n,t){var a=t[1],u=t[2],f=a[3],i=a[2],v=a[1],c=u[3],A=u[2],o=[0,[0,"suggestion_applicability",n?Wnr:Q],0],s=[0,[0,"suggested_replacement",n?[0,DF,n[1]]:Q],o],b=e?[0,DF,e[1]]:Q;return[0,cO,[0,[0,Ynr,[0,DF,v]],[0,[0,"line_start",[0,$N,i]],[0,[0,"column_start",[0,$N,f+1|0]],[0,[0,"line_end",[0,$N,A]],[0,[0,"column_end",[0,$N,c+1|0]],[0,[0,"is_primary",[0,vy,OH(r,Jnr)]],[0,[0,Xnr,b],s]]]]]]]]}function tft(r){var e=0===r[1]?1:0;return e?2===o9n(r[2])?1:0:e}function aft(r){for(var e=r;;){if(!e)return;var n=e[2],t=e[1],a=tft(t)?[0,1,t[2],t[3],t[4],t[5],t[6],t[7],t[8]]:t;if(1===a[1]||E8n[1])switch(q8n[1]){case 0:var u=Yut(a);uz(R6(HY,Vnr),u),e=n;break;case 1:var f=a[3],i=cut(f[1]);if(i?cut(f[2]):i)var v=Yut(a);else{var c=a[3][1][1],A=I4(c,N4);let r=A,e=[0,DF,[0,[0,c],A]];var o=H0(function(n){var t=n[1]?0:1,a=n[2],u=n[3],f=knt(rft(r,a[2]));return uz(Wtt(gnt(e,knt(rft(r,a[1])),f),t,ftr),u)},eft(a)),s=function(e){var n=e[1],t=rft(r,n[1]),a=U1(Ltt(T1(r,t,rft(r,n[2])-t|0)));if(e[2]===kQ)return uz(q7n(ttr),a);if(a===kQ){var u=e[2];return uz(q7n(atr),u)}var f=e[2];return fz(q7n(utr),a,f)};switch(a[1]){case 0:var b=2;break;case 1:b=3;break;default:b=0}var l=H0(s,a[8]),B=a[7],j=QY(H0(q7n(itr),B),l),k=a[2]===kQ?0:[0,a[2]];let n=o,t=b,u=j,f=k;var p=a[5];let i=[0,function(r){return r}],d=[0,pat];var m=uz(g7n(function(r){return[0,t,r,f,n,u]},vtr),p);v=fz(D7n(v5n,ctr),function(r,e){return $ut(d,i,r,e)},m)}uz(R6(HY,Lnr),v),e=n;break;default:var d=H0(function(r){return nft([0,r[1]],[0,r[3]],0,r[2])},eft(a)),_=H0(function(r){return nft(0,0,[0,r[2]],r[1])},a[8]),h=[0,[0,"notes",[0,ij,H0(function(r){return[0,DF,r]},a[7])]],0],x=[0,[0,"spans",[0,ij,QY(d,_)]],h];switch(a[1]){case 0:var y=rtr;break;case 1:y=etr;break;default:y=ntr}var w=xet(0,0,0,0,[0,cO,[0,[0,Znr,[0,DF,a[5]]],[0,[0,Snr,[0,DF,a[2]]],[0,[0,"level",[0,DF,y]],x]]]]);uz(R6(CY,znr),w),e=n}else e=n}}function uft(r){return 1-Jut(Xut(r))}function fft(r,e){var n=r?r[1]:0,t=[0,0],a=uz(e,t),u=Xut(t);r:if(a){var f=a[1];if(!n&&Jut(u))break r;return[0,[0,f,u]]}return[1,u]}function ift(r){if(0!==r[0])return aft(r[1]),0;var e=r[1],n=e[2],t=e[1];return aft(n),N8n[1]&&0!==n||J0(tft,n)?0:[0,t]}function vft(r){var e=ift(r);return e?e[1]:l9n(1)}var cft=[Gl,"Idllib.Exception.UnsupportedCandidFeature",zH()];function Aft(r){for(var e=Nrt(r),n=0;;){if(!e)return n;var t=KC(n,Ma)+e[1]|0;e=e[2],n=t}}function oft(r){var e=97<=r?1:0,n=e?r<=Ux?1:0:e;if(n)var t=n;else{var a=65<=r?1:0;t=a?r<=90?1:0:a}return t}function sft(r){var e=48<=r?1:0;return e?r<=57?1:0:e}function bft(r){var e=Nrt(r);if(!e)return 0;var n=e[1],t=95===n?1:0,a=e[2],u=t||oft(n);if(!u)return u;for(var f=a;;){if(!f)return 1;var i=f[1],v=95===i?1:0,c=f[2];if(v)var A=v;else A=oft(i)||sft(i);if(!A)return A;f=c}}function lft(r){return 0!==Urt(ytr,r)?1:0}function Bft(r){var e=YC(r,QE);r:{if(0<=e){if(0=0)for(var a=0;;){var u=BL(e,a);r:{e:{if(35<=u){if(39!==u&&92!==u)break e}else{if(14>u){if(9<=u)switch(u-9|0){case 0:r3(n,R8);break r;case 1:r3(n,Q8);break r;case 4:r3(n,C8);break r;default:break e}break e}if(34>u)break e}J2(n,92),J2(n,u);break r}J2(n,u)}var f=a+1|0;if(t===a)break;a=f}return M5n(r,S2(n)),M5n(r,dar),g5n(r)}(r,e):M5n(r,e)}function t(r,n){K5n(r,1);var u=n[2];if("number"==typeof u)switch(u){case 0:M5n(r,Utr);break;case 1:M5n(r,Gtr);break;default:throw gQ([0,xz,$tr],1)}else switch(u[0]){case 0:M5n(r,dft(u[1]));break;case 1:M5n(r,u[1][2]);break;case 2:var i=u[3],c=u[2],A=u[1];e(r,Ktr),f(r,[0,A,c,i]);break;case 3:var o=u[1];e(r,"opt"),t(r,o);break;case 4:var s=u[1];e(r,"vec"),t(r,s);break;case 5:a(r,Otr,u[1]);break;case 6:a(r,Rtr,u[1]);break;case 7:var b=u[1];$5n(r,2),M5n(r,"service {");for(var l=b;;){if(!l){C5n(r,0,-2),M5n(r,Qtr),g5n(r);break}var B=l[2],j=l[1];V5n(r),v(r,j),M5n(r,Ptr),l=B}break;default:throw gQ([0,xz,Ctr],1)}return g5n(r)}function a(r,e,n){var t=e===Fj?1:0;1"),i(r,t);for(var u=a;;){if(!u)return;var f=u[2];M5n(r,_ft(u[1])),u=f}}function i(r,a){var u=G0(a);M5n(r,Xtr);for(var f=a,i=0;;){if(!f)return M5n(r,Jtr);var v=f[1],c=v[2][1],A=f[2];c&&(n(r,c[1][2]),e(r,Ztr)),t(r,v[2][2]),i<(u-1|0)&&e(r,Wtr),f=A,i=i+1|0}}function v(r,a){c(r,a[1]),K5n(r,1),n(r,a[2][1][2]),e(r,Ytr);var u=a[2][2][2];return"number"==typeof u||2!==u[0]?t(r,a[2][2]):f(r,[0,u[1],u[2],u[3]]),g5n(r)}function c(e,n){var t=r[1];if(t){var a=But[8].call(null,t[1],[0,n[1][2],n[1][3]]);if(a)for(var u=mut(a[1]);;){if(!u)return;var f=u[2],i=u[1];if(0===i[0]){var v=i[1];M5n(e,ear),M5n(e,v),Q5n(e),u=f}else for(var c=L1(10,i[1]);;){if(!c){u=f;break}var A=c[2],o=c[1];0 {"),$5n(r,2);for(var j=B;;){if(!j){C5n(r,0,-2),M5n(r,oar),g5n(r),g5n(r);break r}var k=j[2],p=j[1];V5n(r),v(r,p),M5n(r,tar),j=k}}var m=a[2];G5n(r),e(r,sar),e(r,bar),i(r,b),M5n(r,lar),t(r,m),g5n(r);break r}throw gQ([0,xz,Bar],1)}return V5n(r)}return[0,,,,,,,,,,,,,,,,,function(r){var e=z2(T$),n=u7n(e);return t(n,r),R5n(n),S2(e)},function(r){var e=z2(T$),n=u7n(e);return function(r,e){$5n(r,0);for(var n=e[2][1];;){if(!n)return c(r,e[1]),o(r,e[2][2]),g5n(r);var t=n[2];A(r,n[1]),M5n(r,nar),V5n(r),n=t}}(n,r),R5n(n),S2(e)},function(r){var e=z2(T$),n=u7n(e);return i(n,r),R5n(n),S2(e)}]}var Dft=Ift([0,0]),Eft=Dft[17],Nft=Dft[18],Tft=dut([0,Drt]),Fft=dut([0,z1]),Mft=P2([0,z1]),Pft=[Gl,"Idllib.Typing.Recover",zH()],Uft=Fft[1];function Gft(r,e){return[0,e,r,0]}function $ft(r,e,n){return C6(function(n){var t=function(r){return function(e){return Qut(r,"",Yar,Jar,Xar,War,e)}}(e)(n);throw Wut(r[2],t),gQ(Pft,1)},n)}function Kft(r,e){var n=r[3],t=r[2];return[0,Fft[51].call(null,r[1],e),t,n]}function Oft(r){var e=r[2][1][2];return 1===e[0]?Aft(e[1]):e[1]}function Rft(r,e){var n=Oft(e);return Drt(Oft(r),n)}function Qft(r,e){return nH(r[2][1],e[2][1])}function Cft(r,e){var n=Fft[18].call(null,e[2],r[1]);if(n)return n[1];var t=e[2];return uz($ft(r,e[1],Zar),t)}function Hft(r,e){var n=e[2];if("number"==typeof n)switch(n){case 0:return iut(0,e[1]);case 1:return e;default:throw gQ([0,xz,$ar],1)}switch(n[0]){case 0:return e;case 1:return Cft(r,n[1]),e;case 2:var t=n[3],a=n[1],u=H0(function(e){return Vft(r,e)},n[2]),f=H0(function(e){return Vft(r,e)},t);if(1=f>>>0)switch(f){case 0:return oit(r,e,a,u);case 2:return Ait(r,e,a,u);case 3:return cit(r,e,a,u)}return ait()}function bit(r,e,n,t,a,u,f){var i=[0,r,u,a];if("number"==typeof f){if(4===f)return sit(i,e,n,43);if(22===f)return cit(i,e,t,f)}return rit()}function lit(r,e,n,t,a){var u=[0,e,a,n[11]],f=uz(t,n);if("number"!=typeof f&&2===f[0]){var i=[0,u,f[1],n[11],n[12]],v=uz(t,n);if("number"==typeof v&&21===v){var c=16,A=uz(t,n);if("number"==typeof A)switch(A){case 0:return r<50?Bit(r+1|0,i,n,t,c):IL(Bit,[0,i,n,t,c]);case 1:return r<50?jit(r+1|0,i,n,t,c):IL(jit,[0,i,n,t,c]);case 3:return r<50?mit(r+1|0,i,n,t,c):IL(mit,[0,i,n,t,c]);case 6:return r<50?yit(r+1|0,i,n,t,c):IL(yit,[0,i,n,t,c]);case 9:return r<50?git(r+1|0,i,n,t,c):IL(git,[0,i,n,t,c]);case 11:return r<50?Dit(r+1|0,i,n,t,c):IL(Dit,[0,i,n,t,c]);case 19:return r<50?Tit(r+1|0,i,n,t,c):IL(Tit,[0,i,n,t,c]);case 26:return r<50?Fit(r+1|0,i,n,t,c):IL(Fit,[0,i,n,t,c])}else if(2===A[0]){var o=A[1];return r<50?Eit(r+1|0,i,n,t,o,c):IL(Eit,[0,i,n,t,o,c])}return rit()}return rit()}return rit()}function Bit(r,e,n,t,a){for(var u=e,f=a;;){var i=[0,u,f,n[11]],v=17,c=uz(t,n);if("number"==typeof c)switch(c){case 1:return r<50?jit(r+1|0,i,n,t,v):IL(jit,[0,i,n,t,v]);case 3:return r<50?mit(r+1|0,i,n,t,v):IL(mit,[0,i,n,t,v]);case 6:return r<50?yit(r+1|0,i,n,t,v):IL(yit,[0,i,n,t,v]);case 9:return r<50?git(r+1|0,i,n,t,v):IL(git,[0,i,n,t,v]);case 11:return r<50?Dit(r+1|0,i,n,t,v):IL(Dit,[0,i,n,t,v]);case 19:return r<50?Tit(r+1|0,i,n,t,v):IL(Tit,[0,i,n,t,v]);case 26:return r<50?Fit(r+1|0,i,n,t,v):IL(Fit,[0,i,n,t,v]);case 0:u=i,f=v;continue}else if(2===c[0]){var A=c[1];return r<50?Eit(r+1|0,i,n,t,A,v):IL(Eit,[0,i,n,t,A,v])}return rit()}}function jit(r,e,n,t,a){var u=[0,e,a,n[11]],f=uz(t,n);if("number"==typeof f&&17===f){var i=[0,u,n[11]],v=uz(t,n);if("number"!=typeof v)switch(v[0]){case 0:var c=v[1];return r<50?kit(r+1|0,i,n,t,c,18):IL(kit,[0,i,n,t,c,18]);case 1:var A=v[1];return r<50?evt(r+1|0,i,n,t,A,18):IL(evt,[0,i,n,t,A,18]);default:var o=v[1];return r<50?tvt(r+1|0,i,n,t,o,18):IL(tvt,[0,i,n,t,o,18])}if(7!==v)return rit();return r<50?ivt(r+1|0,i,n,t,0):IL(ivt,[0,i,n,t,0])}return rit()}function kit(r,e,n,t,a,u){var f=n[11],i=n[12],v=uz(t,n);if("number"==typeof v){var c=v-4|0;if(3>>0){if(21===c){var A=[0,e,u,a,f,i];return r<50?pit(r+1|0,A,n,t):IL(pit,[0,A,n,t])}}else if(1>>0){var o=[0,f,i];try{Ort(a)}catch(u){var s=NL(u);if(s===C9n)throw gQ([0,lut,nit(o),tur],1);throw gQ(s,0)}var b=iut(a,nit([0,f,i])),l=nit([0,f,i]),B=iut(aur,vut),j=nit([0,f,i]),k=iut([0,iut([1,b[2]],j),B],l);return r<50?rvt(r+1|0,e,n,t,k,u,v):IL(rvt,[0,e,n,t,k,u,v])}}return rit()}function pit(r,e,n,t){var a=19,u=uz(t,n);if("number"==typeof u)switch(u){case 0:return r<50?Bit(r+1|0,e,n,t,a):IL(Bit,[0,e,n,t,a]);case 1:return r<50?jit(r+1|0,e,n,t,a):IL(jit,[0,e,n,t,a]);case 3:return r<50?mit(r+1|0,e,n,t,a):IL(mit,[0,e,n,t,a]);case 6:return r<50?yit(r+1|0,e,n,t,a):IL(yit,[0,e,n,t,a]);case 9:return r<50?git(r+1|0,e,n,t,a):IL(git,[0,e,n,t,a]);case 11:return r<50?Dit(r+1|0,e,n,t,a):IL(Dit,[0,e,n,t,a]);case 19:return r<50?Tit(r+1|0,e,n,t,a):IL(Tit,[0,e,n,t,a]);case 26:return r<50?Fit(r+1|0,e,n,t,a):IL(Fit,[0,e,n,t,a])}else if(2===u[0]){var f=u[1];return r<50?Eit(r+1|0,e,n,t,f,a):IL(Eit,[0,e,n,t,f,a])}return rit()}function mit(r,e,n,t,a){var u=[0,e,a,n[11]],f=uz(t,n);return"number"==typeof f&&17===f?r<50?dit(r+1|0,u,n,t,20):IL(dit,[0,u,n,t,20]):rit()}function dit(r,e,n,t,a){var u=[0,e,a,n[11]],f=uz(t,n);if("number"==typeof f){if(7===f){return r<50?Dvt(r+1|0,u,n,t,0):IL(Dvt,[0,u,n,t,0])}}else switch(f[0]){case 0:var i=f[1];return r<50?_it(r+1|0,u,n,t,i,21):IL(_it,[0,u,n,t,i,21]);case 2:var v=f[1];return r<50?gvt(r+1|0,u,n,t,v,21):IL(gvt,[0,u,n,t,v,21])}return rit()}function _it(r,e,n,t,a,u){var f=n[11],i=n[12],v=uz(t,n);if("number"==typeof v&&25===v){var c=uz(t,n);if("number"==typeof c){if(16===c){var A=[0,e,u,a,f,i];return r<50?hit(r+1|0,A,n,t,22):IL(hit,[0,A,n,t,22])}}else if(2===c[0]){var o=n[12],s=c[1],b=n[11],l=uz(t,n),B=iut(s,nit([0,b,o])),j=[0,f,i];try{Ort(a)}catch(u){var k=NL(u);if(k===C9n)throw gQ([0,lut,nit(j),vur],1);throw gQ(k,0)}var p=[0,f,o],m=iut(a,nit([0,f,i])),d=nit(p),_=iut([0,m,iut([1,B],nit(p))],d);return r<50?wvt(r+1|0,e,n,t,_,u,l):IL(wvt,[0,e,n,t,_,u,l])}return rit()}return rit()}function hit(r,e,n,t,a){var u=[0,e,a,n[11]],f=uz(t,n);if("number"==typeof f)switch(f){case 0:return r<50?Bit(r+1|0,u,n,t,23):IL(Bit,[0,u,n,t,23]);case 1:return r<50?jit(r+1|0,u,n,t,23):IL(jit,[0,u,n,t,23]);case 3:return r<50?mit(r+1|0,u,n,t,23):IL(mit,[0,u,n,t,23]);case 5:return r<50?mvt(r+1|0,u,n,t,0):IL(mvt,[0,u,n,t,0]);case 6:return r<50?yit(r+1|0,u,n,t,23):IL(yit,[0,u,n,t,23]);case 9:return r<50?git(r+1|0,u,n,t,23):IL(git,[0,u,n,t,23]);case 11:return r<50?Dit(r+1|0,u,n,t,23):IL(Dit,[0,u,n,t,23]);case 19:return r<50?Tit(r+1|0,u,n,t,23):IL(Tit,[0,u,n,t,23]);case 26:return r<50?Fit(r+1|0,u,n,t,23):IL(Fit,[0,u,n,t,23])}else switch(f[0]){case 0:var i=f[1];return r<50?xit(r+1|0,u,n,t,i,23):IL(xit,[0,u,n,t,i,23]);case 2:var v=f[1];return r<50?jvt(r+1|0,u,n,t,v,23):IL(jvt,[0,u,n,t,v,23])}return rit()}function xit(r,e,n,t,a,u){var f=[0,e,u,a,n[11],n[12]],i=uz(t,n);if("number"==typeof i&&25===i){var v=24,c=uz(t,n);if("number"==typeof c)switch(c){case 0:return r<50?Bit(r+1|0,f,n,t,v):IL(Bit,[0,f,n,t,v]);case 1:return r<50?jit(r+1|0,f,n,t,v):IL(jit,[0,f,n,t,v]);case 3:return r<50?mit(r+1|0,f,n,t,v):IL(mit,[0,f,n,t,v]);case 6:return r<50?yit(r+1|0,f,n,t,v):IL(yit,[0,f,n,t,v]);case 9:return r<50?git(r+1|0,f,n,t,v):IL(git,[0,f,n,t,v]);case 11:return r<50?Dit(r+1|0,f,n,t,v):IL(Dit,[0,f,n,t,v]);case 19:return r<50?Tit(r+1|0,f,n,t,v):IL(Tit,[0,f,n,t,v]);case 26:return r<50?Fit(r+1|0,f,n,t,v):IL(Fit,[0,f,n,t,v])}else if(2===c[0]){var A=c[1];return r<50?Eit(r+1|0,f,n,t,A,v):IL(Eit,[0,f,n,t,A,v])}return rit()}return rit()}function yit(r,e,n,t,a){for(var u=e,f=a;;){var i=[0,u,f,n[11]],v=uz(t,n);if("number"==typeof v&&17===v){var c=[0,i,n[11]],A=uz(t,n);if("number"==typeof A)switch(A){case 0:return r<50?Bit(r+1|0,c,n,t,25):IL(Bit,[0,c,n,t,25]);case 1:return r<50?jit(r+1|0,c,n,t,25):IL(jit,[0,c,n,t,25]);case 3:return r<50?mit(r+1|0,c,n,t,25):IL(mit,[0,c,n,t,25]);case 6:u=c,f=25;continue;case 7:return r<50?lvt(r+1|0,c,n,t,0):IL(lvt,[0,c,n,t,0]);case 9:return r<50?git(r+1|0,c,n,t,25):IL(git,[0,c,n,t,25]);case 11:return r<50?Dit(r+1|0,c,n,t,25):IL(Dit,[0,c,n,t,25]);case 19:return r<50?Tit(r+1|0,c,n,t,25):IL(Tit,[0,c,n,t,25]);case 26:return r<50?Fit(r+1|0,c,n,t,25):IL(Fit,[0,c,n,t,25]);default:return rit()}break}return rit()}switch(A[0]){case 0:var o=A[1];return r<50?wit(r+1|0,c,n,t,o,25):IL(wit,[0,c,n,t,o,25]);case 1:var s=A[1];return r<50?Avt(r+1|0,c,n,t,s,25):IL(Avt,[0,c,n,t,s,25]);default:var b=A[1];return r<50?ovt(r+1|0,c,n,t,b,25):IL(ovt,[0,c,n,t,b,25])}}function wit(r,e,n,t,a,u){var f=[0,e,u,a,n[11],n[12]],i=uz(t,n);return"number"==typeof i&&25===i?r<50?pit(r+1|0,f,n,t):IL(pit,[0,f,n,t]):rit()}function git(r,e,n,t,a){var u=n[11],f=n[12],i=uz(t,n),v=iut(1,nit([0,u,f]));return r<50?qit(r+1|0,e,n,t,f,u,v,a,i):IL(qit,[0,e,n,t,f,u,v,a,i])}function qit(r,e,n,t,a,u,f,i,v){return r<50?Iit(r+1|0,e,n,t,a,u,f,i,v):IL(Iit,[0,e,n,t,a,u,f,i,v])}function Iit(r,e,n,t,a,u,f,i,v){switch(i){case 16:var c=e[1],A=c[3],o=c[2],s=c[1],b=iut(e[2],nit([0,e[3],e[4]])),l=iut([0,b,f],nit([0,A,a]));return r<50?Hit(r+1|0,s,n,t,a,A,l,o,v):IL(Hit,[0,s,n,t,a,A,l,o,v]);case 17:var B=e[3],j=e[2],k=e[1],p=iut([4,f],nit([0,B,a]));return r<50?Mit(r+1|0,k,n,t,a,B,p,j,v):IL(Mit,[0,k,n,t,a,B,p,j,v]);case 19:var m=e[5],d=e[4],_=e[3],h=e[2],x=e[1],y=[0,d,m];try{Ort(_)}catch(u){var w=NL(u);if(w===C9n)throw gQ([0,lut,nit(y),our],1);throw gQ(w,0)}var g=iut(_,nit([0,d,m])),q=nit([0,d,a]),I=nit([0,d,m]),D=iut([0,iut([1,g[2]],I),f],q);return r<50?Jit(r+1|0,x,n,t,D,h,v):IL(Jit,[0,x,n,t,D,h,v]);case 24:var E=e[5],N=e[4],T=e[3],F=e[2],M=e[1],P=[0,N,E];try{Ort(T)}catch(u){var U=NL(u);if(U===C9n)throw gQ([0,lut,nit(P),fur],1);throw gQ(U,0)}var G=iut(T,nit([0,N,E])),$=iut([0,[0,G],f],nit([0,N,a]));return r<50?Bvt(r+1|0,M,n,t,$,F,v):IL(Bvt,[0,M,n,t,$,F,v]);case 26:var K=e[3],O=e[2],R=e[1],Q=iut([3,f],nit([0,K,a]));return r<50?Mit(r+1|0,R,n,t,a,K,Q,O,v):IL(Mit,[0,R,n,t,a,K,Q,O,v]);case 31:var C=e[4],H=e[2],V=e[1],L=e[3],z=[0,C,e[5]],S=nit([0,C,a]),Z=nit(z),W=iut([0,iut([0,qrt(L)],Z),f],S);return r<50?Jit(r+1|0,V,n,t,W,H,v):IL(Jit,[0,V,n,t,W,H,v]);case 32:var X=e[5],J=e[4],Y=e[2],rr=e[1],er=iut(e[3],nit([0,J,X])),nr=nit([0,J,a]),tr=nit([0,J,X]),ar=iut([0,iut([1,er[2]],tr),f],nr);return r<50?Jit(r+1|0,rr,n,t,ar,Y,v):IL(Jit,[0,rr,n,t,ar,Y,v]);case 34:var ur=e[4],fr=e[2],ir=e[1],vr=iut(e[3],nit([0,ur,e[5]])),cr=iut([0,[0,vr],f],nit([0,ur,a]));return r<50?Bvt(r+1|0,ir,n,t,cr,fr,v):IL(Bvt,[0,ir,n,t,cr,fr,v]);case 23:case 35:var Ar=iut([0,0,f],nit([0,u,a]));return r<50?Bvt(r+1|0,e,n,t,Ar,i,v):IL(Bvt,[0,e,n,t,Ar,i,v]);case 25:case 33:var or=[0,u,a],sr=function(r){var e=nit(or);return iut([0,iut([2,r],vut),f],e)};return r<50?cvt(r+1|0,e,n,t,sr,i,v):IL(cvt,[0,e,n,t,sr,i,v]);case 50:case 51:if("number"==typeof v){if(5===v){var br=[0,f,0];return r<50?Uit(r+1|0,e,n,t,br,i):IL(Uit,[0,e,n,t,br,i])}if(24===v){var lr=[0,e,i,f,u,a],Br=uz(t,n);if("number"==typeof Br)switch(Br){case 0:return r<50?Bit(r+1|0,lr,n,t,51):IL(Bit,[0,lr,n,t,51]);case 1:return r<50?jit(r+1|0,lr,n,t,51):IL(jit,[0,lr,n,t,51]);case 3:return r<50?mit(r+1|0,lr,n,t,51):IL(mit,[0,lr,n,t,51]);case 5:return r<50?Pit(r+1|0,lr,n,t,0):IL(Pit,[0,lr,n,t,0]);case 6:return r<50?yit(r+1|0,lr,n,t,51):IL(yit,[0,lr,n,t,51]);case 9:return r<50?git(r+1|0,lr,n,t,51):IL(git,[0,lr,n,t,51]);case 11:return r<50?Dit(r+1|0,lr,n,t,51):IL(Dit,[0,lr,n,t,51]);case 19:return r<50?Tit(r+1|0,lr,n,t,51):IL(Tit,[0,lr,n,t,51]);case 26:return r<50?Fit(r+1|0,lr,n,t,51):IL(Fit,[0,lr,n,t,51])}else if(2===Br[0]){var jr=Br[1];return r<50?Eit(r+1|0,lr,n,t,jr,51):IL(Eit,[0,lr,n,t,jr,51])}return rit()}}return rit();default:return ait()}}function Dit(r,e,n,t,a){for(var u=e,f=a;;){var i=[0,u,f,n[11]],v=26,c=uz(t,n);if("number"==typeof c)switch(c){case 0:return r<50?Bit(r+1|0,i,n,t,v):IL(Bit,[0,i,n,t,v]);case 1:return r<50?jit(r+1|0,i,n,t,v):IL(jit,[0,i,n,t,v]);case 3:return r<50?mit(r+1|0,i,n,t,v):IL(mit,[0,i,n,t,v]);case 6:return r<50?yit(r+1|0,i,n,t,v):IL(yit,[0,i,n,t,v]);case 9:return r<50?git(r+1|0,i,n,t,v):IL(git,[0,i,n,t,v]);case 19:return r<50?Tit(r+1|0,i,n,t,v):IL(Tit,[0,i,n,t,v]);case 26:return r<50?Fit(r+1|0,i,n,t,v):IL(Fit,[0,i,n,t,v]);case 11:u=i,f=v;continue}else if(2===c[0]){var A=c[1];return r<50?Eit(r+1|0,i,n,t,A,v):IL(Eit,[0,i,n,t,A,v])}return rit()}}function Eit(r,e,n,t,a,u){var f=n[11],i=n[12],v=uz(t,n),c=tit(i,f,a);return r<50?Nit(r+1|0,e,n,t,i,f,c,u,v):IL(Nit,[0,e,n,t,i,f,c,u,v])}function Nit(r,e,n,t,a,u,f,i,v){return r<50?Iit(r+1|0,e,n,t,a,u,f,i,v):IL(Iit,[0,e,n,t,a,u,f,i,v])}function Tit(r,e,n,t,a){var u=[0,e,a,n[11]],f=uz(t,n);return"number"==typeof f&&16===f?r<50?hit(r+1|0,u,n,t,27):IL(hit,[0,u,n,t,27]):rit()}function Fit(r,e,n,t,a){var u=n[11],f=n[12],i=uz(t,n),v=iut(0,nit([0,u,f]));return r<50?Mit(r+1|0,e,n,t,f,u,v,a,i):IL(Mit,[0,e,n,t,f,u,v,a,i])}function Mit(r,e,n,t,a,u,f,i,v){return r<50?Iit(r+1|0,e,n,t,a,u,f,i,v):IL(Iit,[0,e,n,t,a,u,f,i,v])}function Pit(r,e,n,t,a){var u=e[2],f=e[1],i=[0,e[3],a];return r<50?Uit(r+1|0,f,n,t,i,u):IL(Uit,[0,f,n,t,i,u])}function Uit(r,e,n,t,a,u){return 50===u?r<50?Git(r+1|0,e,n,t,a):IL(Git,[0,e,n,t,a]):51===u?r<50?Pit(r+1|0,e,n,t,a):IL(Pit,[0,e,n,t,a]):ait()}function Git(r,e,n,t,a){var u=n[12],f=uz(t,n),i=[0,e[1],a];if("number"==typeof f)switch(f){case 4:case 22:return r<50?$it(r+1|0,i,n,t,u,0,f):IL($it,[0,i,n,t,u,0,f])}else if(0===f[0]){var v=f[1],c=n[12],A=n[11],o=uz(t,n),s=[0,A,c];try{Ort(v)}catch(f){var b=NL(f);if(b===C9n)throw gQ([0,lut,nit(s),iur],1);throw gQ(b,0)}var l=[0,v];return r<50?$it(r+1|0,i,n,t,c,l,o):IL($it,[0,i,n,t,c,l,o])}return rit()}function $it(r,e,n,t,a,u,f){var i=e[1],v=i[1],c=v[5],A=v[4],o=v[2],s=v[1],b=e[2],l=i[3],B=iut(v[3],nit([0,A,c])),j=[0,A,c],k=[0,A,a];if(B[2]!==BB){var p=B[2];throw gQ([0,lut,nit(j),p],1)}var m=iut([0,l,b,u],nit(k));if("number"==typeof f){if(4===f){var d=n[12],_=[0,[0,s,o,m,A,a],d],h=uz(t,n);if("number"==typeof h){if(22===h)return function(r,e,n,t){return qL(fit(0,r,e,n,t))}(_,n,d,0)}else if(2===h[0]){var x=h[1];return r<50?Kit(r+1|0,_,n,t,x,52):IL(Kit,[0,_,n,t,x,52])}return rit()}if(22===f)return function(r,e,n,t,a,u){return qL(iit(0,r,e,n,t,a,u))}(s,n,a,A,[0,m,0],o)}return rit()}function Kit(r,e,n,t,a,u){var f=[0,e,u,a,n[11],n[12]],i=uz(t,n);if("number"==typeof i){if(26===i)return r<50?Cit(r+1|0,f,n,t,47):IL(Cit,[0,f,n,t,47])}else if(0===i[0]){var v=i[1];return r<50?Oit(r+1|0,f,n,t,v,47):IL(Oit,[0,f,n,t,v,47])}return rit()}function Oit(r,e,n,t,a,u){var f=n[11],i=n[12],v=uz(t,n),c=[0,f,i];try{Ort(a)}catch(u){var A=NL(u);if(A===C9n)throw gQ([0,lut,nit(c),Aur],1);throw gQ(A,0)}var o=[1,a];return r<50?Rit(r+1|0,e,n,t,o,u,v):IL(Rit,[0,e,n,t,o,u,v])}function Rit(r,e,n,t,a,u,f){if(47<=u)switch(u-47|0){case 0:if("number"==typeof f&&13<=f)switch(f-13|0){case 0:var i=[0,e,u,a],v=uz(t,n);if("number"==typeof v){if(26===v)return r<50?Cit(r+1|0,i,n,t,48):IL(Cit,[0,i,n,t,48])}else if(0===v[0]){var c=v[1];return r<50?Oit(r+1|0,i,n,t,c,48):IL(Oit,[0,i,n,t,c,48])}return rit();case 1:var A=uz(t,n),o=[0,[0,0,a]];return r<50?Qit(r+1|0,e,n,t,o,u,A):IL(Qit,[0,e,n,t,o,u,A]);case 7:var s=[0,e,u,a],b=uz(t,n);if("number"==typeof b){if(26===b)return r<50?Cit(r+1|0,s,n,t,49):IL(Cit,[0,s,n,t,49])}else if(0===b[0]){var l=b[1];return r<50?Oit(r+1|0,s,n,t,l,49):IL(Oit,[0,s,n,t,l,49])}return rit();case 12:var B=uz(t,n),j=[0,[0,1,a]];return r<50?Qit(r+1|0,e,n,t,j,u,B):IL(Qit,[0,e,n,t,j,u,B])}return rit();case 1:if("number"==typeof f&&25===f){var k=uz(t,n),p=e[2],m=e[1],d=[1,[0,0,e[3],a]];return r<50?Qit(r+1|0,m,n,t,d,p,k):IL(Qit,[0,m,n,t,d,p,k])}return rit();case 2:if("number"==typeof f&&25===f){var _=uz(t,n),h=e[2],x=e[1],y=[1,[0,1,e[3],a]];return r<50?Qit(r+1|0,x,n,t,y,h,_):IL(Qit,[0,x,n,t,y,h,_])}return rit()}return ait()}function Qit(r,e,n,t,a,u,f){if("number"==typeof f&&16===f){var i=[0,[0,e,u,a],n[11]],v=uz(t,n);if("number"==typeof v)switch(v){case 0:return r<50?Bit(r+1|0,i,n,t,50):IL(Bit,[0,i,n,t,50]);case 1:return r<50?jit(r+1|0,i,n,t,50):IL(jit,[0,i,n,t,50]);case 3:return r<50?mit(r+1|0,i,n,t,50):IL(mit,[0,i,n,t,50]);case 5:return r<50?Git(r+1|0,i,n,t,0):IL(Git,[0,i,n,t,0]);case 6:return r<50?yit(r+1|0,i,n,t,50):IL(yit,[0,i,n,t,50]);case 9:return r<50?git(r+1|0,i,n,t,50):IL(git,[0,i,n,t,50]);case 11:return r<50?Dit(r+1|0,i,n,t,50):IL(Dit,[0,i,n,t,50]);case 19:return r<50?Tit(r+1|0,i,n,t,50):IL(Tit,[0,i,n,t,50]);case 26:return r<50?Fit(r+1|0,i,n,t,50):IL(Fit,[0,i,n,t,50])}else if(2===v[0]){var c=v[1];return r<50?Eit(r+1|0,i,n,t,c,50):IL(Eit,[0,i,n,t,c,50])}return rit()}return rit()}function Cit(r,e,n,t,a){var u=uz(t,n);if("number"!=typeof u&&0===u[0]){var f=u[1],i=uz(t,n),v=[0,f];return r<50?Rit(r+1|0,e,n,t,v,a,i):IL(Rit,[0,e,n,t,v,a,i])}return rit()}function Hit(r,e,n,t,a,u,f,i,v){if(15===i)return r<50?zit(r+1|0,e,n,t,a,u,f,i,v):IL(zit,[0,e,n,t,a,u,f,i,v]);if(44<=i)switch(i-44|0){case 1:var c=[0,e,i,f,u,a];if("number"==typeof v&&4===v){var A=n[12],o=[0,c,A],s=uz(t,n);r:{if("number"==typeof s)switch(s){case 2:return r<50?lit(r+1|0,o,n,t,53):IL(lit,[0,o,n,t,53]);case 18:return r<50?Vit(r+1|0,o,n,t,53):IL(Vit,[0,o,n,t,53]);case 22:break;default:break r}else if(2!==s[0])break r;return r<50?Lit(r+1|0,o,n,t,A,0,s):IL(Lit,[0,o,n,t,A,0,s])}return rit()}return rit();case 0:case 9:return r<50?zit(r+1|0,e,n,t,a,u,f,i,v):IL(zit,[0,e,n,t,a,u,f,i,v])}return ait()}function Vit(r,e,n,t,a){var u=n[11],f=uz(t,n);if("number"!=typeof f&&0===f[0]){var i=f[1],v=n[12],c=n[11],A=uz(t,n),o=[0,c,v];try{Ort(i)}catch(v){var s=NL(v);if(s===C9n)throw gQ([0,lut,nit(o),sur],1);throw gQ(s,0)}var b=iut([1,i,[0,""]],nit([0,u,v]));return r<50?Hit(r+1|0,e,n,t,v,u,b,a,A):IL(Hit,[0,e,n,t,v,u,b,a,A])}return rit()}function Lit(r,e,n,t,a,u,f){var i=e[1],v=[0,i[1],i[2],[0,i[3],u],i[4],a];if("number"==typeof f){if(22===f)return uit(v,n,a,a,0)}else if(2===f[0]){var c=f[1];return r<50?Kit(r+1|0,v,n,t,c,46):IL(Kit,[0,v,n,t,c,46])}return rit()}function zit(r,e,n,t,a,u,f,i,v){r:{if("number"==typeof v)switch(v){case 4:var c=n[12],A=[0,[0,e,i,f,u,a],c],o=uz(t,n);e:{if("number"==typeof o)switch(o){case 2:return r<50?lit(r+1|0,A,n,t,44):IL(lit,[0,A,n,t,44]);case 18:return r<50?Vit(r+1|0,A,n,t,44):IL(Vit,[0,A,n,t,44]);case 3:case 22:break;default:break e}else if(2!==o[0])break e;return r<50?Sit(r+1|0,A,n,t,c,0,o):IL(Sit,[0,A,n,t,c,0,o])}return rit();case 3:case 22:break;default:break r}else if(2!==v[0])break r;var s=[0,f,0];return r<50?Zit(r+1|0,e,n,t,a,u,s,i,v):IL(Zit,[0,e,n,t,a,u,s,i,v])}return rit()}function Sit(r,e,n,t,a,u,f){var i=e[1],v=i[4],c=i[2],A=i[1],o=[0,i[3],u];return r<50?Zit(r+1|0,A,n,t,a,v,o,c,f):IL(Zit,[0,A,n,t,a,v,o,c,f])}function Zit(r,e,n,t,a,u,f,i,v){return 15===i?r<50?Wit(r+1|0,e,n,t,a,u,f,i,v):IL(Wit,[0,e,n,t,a,u,f,i,v]):44===i?r<50?Sit(r+1|0,e,n,t,a,f,v):IL(Sit,[0,e,n,t,a,f,v]):53<=i?r<50?Lit(r+1|0,e,n,t,a,f,v):IL(Lit,[0,e,n,t,a,f,v]):ait()}function Wit(r,e,n,t,a,u,f,i,v){var c=[0,e,i,f,u,a];if("number"==typeof v){if(3===v){var A=[0,c,n[11]],o=uz(t,n);if("number"==typeof o){if(25===o){return r<50?Xit(r+1|0,A,n,t,0,o):IL(Xit,[0,A,n,t,0,o])}}else if(2===o[0]){var s=n[11],b=n[12],l=uz(t,n);nit([0,s,b]);return r<50?Xit(r+1|0,A,n,t,0,l):IL(Xit,[0,A,n,t,0,l])}return rit()}if(22===v)return vit(c,n,a,a,0,v)}return rit()}function Xit(r,e,n,t,a,u){var f=[0,e,a];if("number"==typeof u&&25===u){var i=uz(t,n);if("number"==typeof i)switch(i){case 16:return r<50?hit(r+1|0,f,n,t,39):IL(hit,[0,f,n,t,39]);case 17:return r<50?dit(r+1|0,f,n,t,39):IL(dit,[0,f,n,t,39])}else if(2===i[0]){var v=n[12],c=[0,f,39,i[1],n[11],v],A=uz(t,n);if("number"==typeof A){if(4===A)return sit(c,n,t,40);if(22===A)return oit(c,n,v,A)}return rit()}return rit()}return rit()}function Jit(r,e,n,t,a,u,f){if(26<=u){if(33===u)return r<50?vvt(r+1|0,e,n,t,a,u,f):IL(vvt,[0,e,n,t,a,u,f]);if(38===u)return r<50?Yit(r+1|0,e,n,t,a,u,f):IL(Yit,[0,e,n,t,a,u,f])}else{if(18===u)return r<50?Yit(r+1|0,e,n,t,a,u,f):IL(Yit,[0,e,n,t,a,u,f]);if(25<=u)return r<50?vvt(r+1|0,e,n,t,a,u,f):IL(vvt,[0,e,n,t,a,u,f])}return ait()}function Yit(r,e,n,t,a,u,f){return r<50?rvt(r+1|0,e,n,t,a,u,f):IL(rvt,[0,e,n,t,a,u,f])}function rvt(r,e,n,t,a,u,f){if("number"==typeof f){if(4===f){var i=[0,[0,e,u,a],n[12]],v=uz(t,n);if("number"!=typeof v)switch(v[0]){case 0:var c=v[1];return r<50?kit(r+1|0,i,n,t,c,38):IL(kit,[0,i,n,t,c,38]);case 1:var A=v[1];return r<50?evt(r+1|0,i,n,t,A,38):IL(evt,[0,i,n,t,A,38]);default:var o=v[1];return r<50?tvt(r+1|0,i,n,t,o,38):IL(tvt,[0,i,n,t,o,38])}if(7!==v)return rit();return r<50?uvt(r+1|0,i,n,t,0):IL(uvt,[0,i,n,t,0])}if(7===f){var s=[0,a,0];return r<50?fvt(r+1|0,e,n,t,s,u):IL(fvt,[0,e,n,t,s,u])}}return rit()}function evt(r,e,n,t,a,u){var f=n[11],i=n[12],v=uz(t,n);if("number"==typeof v){var c=v-4|0;if(3>>0){if(21===c){var A=[0,e,u,a,f,i];return r<50?nvt(r+1|0,A,n,t):IL(nvt,[0,A,n,t])}}else if(1>>0){var o=nit([0,f,i]),s=iut(nur,vut),b=nit([0,f,i]),l=iut([0,iut([0,qrt(a)],b),s],o);return r<50?rvt(r+1|0,e,n,t,l,u,v):IL(rvt,[0,e,n,t,l,u,v])}}return rit()}function nvt(r,e,n,t){var a=31,u=uz(t,n);if("number"==typeof u)switch(u){case 0:return r<50?Bit(r+1|0,e,n,t,a):IL(Bit,[0,e,n,t,a]);case 1:return r<50?jit(r+1|0,e,n,t,a):IL(jit,[0,e,n,t,a]);case 3:return r<50?mit(r+1|0,e,n,t,a):IL(mit,[0,e,n,t,a]);case 6:return r<50?yit(r+1|0,e,n,t,a):IL(yit,[0,e,n,t,a]);case 9:return r<50?git(r+1|0,e,n,t,a):IL(git,[0,e,n,t,a]);case 11:return r<50?Dit(r+1|0,e,n,t,a):IL(Dit,[0,e,n,t,a]);case 19:return r<50?Tit(r+1|0,e,n,t,a):IL(Tit,[0,e,n,t,a]);case 26:return r<50?Fit(r+1|0,e,n,t,a):IL(Fit,[0,e,n,t,a])}else if(2===u[0]){var f=u[1];return r<50?Eit(r+1|0,e,n,t,f,a):IL(Eit,[0,e,n,t,f,a])}return rit()}function tvt(r,e,n,t,a,u){var f=n[11],i=n[12],v=uz(t,n);if("number"==typeof v){var c=v-4|0;if(3>>0){if(21===c){var A=[0,e,u,a,f,i];return r<50?avt(r+1|0,A,n,t):IL(avt,[0,A,n,t])}}else if(1>>0){var o=iut(a,nit([0,f,i])),s=nit([0,f,i]),b=iut(uur,vut),l=nit([0,f,i]),B=iut([0,iut([1,o[2]],l),b],s);return r<50?rvt(r+1|0,e,n,t,B,u,v):IL(rvt,[0,e,n,t,B,u,v])}}return rit()}function avt(r,e,n,t){var a=32,u=uz(t,n);if("number"==typeof u)switch(u){case 0:return r<50?Bit(r+1|0,e,n,t,a):IL(Bit,[0,e,n,t,a]);case 1:return r<50?jit(r+1|0,e,n,t,a):IL(jit,[0,e,n,t,a]);case 3:return r<50?mit(r+1|0,e,n,t,a):IL(mit,[0,e,n,t,a]);case 6:return r<50?yit(r+1|0,e,n,t,a):IL(yit,[0,e,n,t,a]);case 9:return r<50?git(r+1|0,e,n,t,a):IL(git,[0,e,n,t,a]);case 11:return r<50?Dit(r+1|0,e,n,t,a):IL(Dit,[0,e,n,t,a]);case 19:return r<50?Tit(r+1|0,e,n,t,a):IL(Tit,[0,e,n,t,a]);case 26:return r<50?Fit(r+1|0,e,n,t,a):IL(Fit,[0,e,n,t,a])}else if(2===u[0]){var f=u[1];return r<50?Eit(r+1|0,e,n,t,f,a):IL(Eit,[0,e,n,t,f,a])}return rit()}function uvt(r,e,n,t,a){var u=e[1],f=u[2],i=u[1],v=[0,u[3],a];return r<50?fvt(r+1|0,i,n,t,v,f):IL(fvt,[0,i,n,t,v,f])}function fvt(r,e,n,t,a,u){return 18===u?r<50?ivt(r+1|0,e,n,t,a):IL(ivt,[0,e,n,t,a]):38===u?r<50?uvt(r+1|0,e,n,t,a):IL(uvt,[0,e,n,t,a]):ait()}function ivt(r,e,n,t,a){var u=n[12],f=uz(t,n),i=e[1],v=i[3],c=i[2],A=i[1],o=iut([6,a],nit([0,v,u]));return r<50?Mit(r+1|0,A,n,t,u,v,o,c,f):IL(Mit,[0,A,n,t,u,v,o,c,f])}function vvt(r,e,n,t,a,u,f){function i(r){return a}return r<50?cvt(r+1|0,e,n,t,i,u,f):IL(cvt,[0,e,n,t,i,u,f])}function cvt(r,e,n,t,a,u,f){if("number"==typeof f){if(4===f){var i=[0,[0,e,u,a],n[12]],v=uz(t,n);if("number"==typeof v)switch(v){case 0:return r<50?Bit(r+1|0,i,n,t,33):IL(Bit,[0,i,n,t,33]);case 1:return r<50?jit(r+1|0,i,n,t,33):IL(jit,[0,i,n,t,33]);case 3:return r<50?mit(r+1|0,i,n,t,33):IL(mit,[0,i,n,t,33]);case 6:return r<50?yit(r+1|0,i,n,t,33):IL(yit,[0,i,n,t,33]);case 7:return r<50?svt(r+1|0,i,n,t,0):IL(svt,[0,i,n,t,0]);case 9:return r<50?git(r+1|0,i,n,t,33):IL(git,[0,i,n,t,33]);case 11:return r<50?Dit(r+1|0,i,n,t,33):IL(Dit,[0,i,n,t,33]);case 19:return r<50?Tit(r+1|0,i,n,t,33):IL(Tit,[0,i,n,t,33]);case 26:return r<50?Fit(r+1|0,i,n,t,33):IL(Fit,[0,i,n,t,33]);default:return rit()}switch(v[0]){case 0:var c=v[1];return r<50?wit(r+1|0,i,n,t,c,33):IL(wit,[0,i,n,t,c,33]);case 1:var A=v[1];return r<50?Avt(r+1|0,i,n,t,A,33):IL(Avt,[0,i,n,t,A,33]);default:var o=v[1];return r<50?ovt(r+1|0,i,n,t,o,33):IL(ovt,[0,i,n,t,o,33])}}if(7===f){var s=[0,a,0];return r<50?bvt(r+1|0,e,n,t,s,u):IL(bvt,[0,e,n,t,s,u])}}return rit()}function Avt(r,e,n,t,a,u){var f=[0,e,u,a,n[11],n[12]],i=uz(t,n);return"number"==typeof i&&25===i?r<50?nvt(r+1|0,f,n,t):IL(nvt,[0,f,n,t]):rit()}function ovt(r,e,n,t,a,u){var f=n[11],i=n[12],v=uz(t,n);if("number"==typeof v){var c=v-4|0;if(3>>0){if(21===c){var A=[0,e,u,a,f,i];return r<50?avt(r+1|0,A,n,t):IL(avt,[0,A,n,t])}}else if(1>>0){var o=tit(i,f,a);return r<50?Nit(r+1|0,e,n,t,i,f,o,u,v):IL(Nit,[0,e,n,t,i,f,o,u,v])}}return rit()}function svt(r,e,n,t,a){var u=e[1],f=u[2],i=u[1],v=[0,u[3],a];return r<50?bvt(r+1|0,i,n,t,v,f):IL(bvt,[0,i,n,t,v,f])}function bvt(r,e,n,t,a,u){return 25===u?r<50?lvt(r+1|0,e,n,t,a):IL(lvt,[0,e,n,t,a]):33===u?r<50?svt(r+1|0,e,n,t,a):IL(svt,[0,e,n,t,a]):ait()}function lvt(r,e,n,t,a){var u=n[12],f=uz(t,n),i=e[1];var v=function r(e,n){if(!n)return 0;var t=n[2],a=uz(n[1],e),u=a[2][1][2];return[0,a,r(1===u[0]?Aft(u[1])+1|0:u[1]+1|0,t)]}(0,a),c=i[3],A=i[2],o=i[1],s=iut([5,v],nit([0,c,u]));return r<50?Mit(r+1|0,o,n,t,u,c,s,A,f):IL(Mit,[0,o,n,t,u,c,s,A,f])}function Bvt(r,e,n,t,a,u,f){if("number"==typeof f){if(5===f){var i=[0,a,0];return r<50?pvt(r+1|0,e,n,t,i,u):IL(pvt,[0,e,n,t,i,u])}if(24===f){var v=[0,e,u,a],c=uz(t,n);if("number"==typeof c)switch(c){case 0:return r<50?Bit(r+1|0,v,n,t,35):IL(Bit,[0,v,n,t,35]);case 1:return r<50?jit(r+1|0,v,n,t,35):IL(jit,[0,v,n,t,35]);case 3:return r<50?mit(r+1|0,v,n,t,35):IL(mit,[0,v,n,t,35]);case 5:return r<50?kvt(r+1|0,v,n,t,0):IL(kvt,[0,v,n,t,0]);case 6:return r<50?yit(r+1|0,v,n,t,35):IL(yit,[0,v,n,t,35]);case 9:return r<50?git(r+1|0,v,n,t,35):IL(git,[0,v,n,t,35]);case 11:return r<50?Dit(r+1|0,v,n,t,35):IL(Dit,[0,v,n,t,35]);case 19:return r<50?Tit(r+1|0,v,n,t,35):IL(Tit,[0,v,n,t,35]);case 26:return r<50?Fit(r+1|0,v,n,t,35):IL(Fit,[0,v,n,t,35])}else switch(c[0]){case 0:var A=c[1];return r<50?xit(r+1|0,v,n,t,A,35):IL(xit,[0,v,n,t,A,35]);case 2:var o=c[1];return r<50?jvt(r+1|0,v,n,t,o,35):IL(jvt,[0,v,n,t,o,35])}return rit()}}return rit()}function jvt(r,e,n,t,a,u){var f=n[11],i=n[12],v=uz(t,n);r:if("number"==typeof v){var c=v+-24|0;if(1>>0){if(-19!==c)break r}else if(c){var A=[0,e,u,a,f,i],o=34,s=uz(t,n);if("number"==typeof s)switch(s){case 0:return r<50?Bit(r+1|0,A,n,t,o):IL(Bit,[0,A,n,t,o]);case 1:return r<50?jit(r+1|0,A,n,t,o):IL(jit,[0,A,n,t,o]);case 3:return r<50?mit(r+1|0,A,n,t,o):IL(mit,[0,A,n,t,o]);case 6:return r<50?yit(r+1|0,A,n,t,o):IL(yit,[0,A,n,t,o]);case 9:return r<50?git(r+1|0,A,n,t,o):IL(git,[0,A,n,t,o]);case 11:return r<50?Dit(r+1|0,A,n,t,o):IL(Dit,[0,A,n,t,o]);case 19:return r<50?Tit(r+1|0,A,n,t,o):IL(Tit,[0,A,n,t,o]);case 26:return r<50?Fit(r+1|0,A,n,t,o):IL(Fit,[0,A,n,t,o])}else if(2===s[0]){var b=s[1];return r<50?Eit(r+1|0,A,n,t,b,o):IL(Eit,[0,A,n,t,b,o])}return rit()}var l=tit(i,f,a);return r<50?Nit(r+1|0,e,n,t,i,f,l,u,v):IL(Nit,[0,e,n,t,i,f,l,u,v])}return rit()}function kvt(r,e,n,t,a){var u=e[2],f=e[1],i=[0,e[3],a];return r<50?pvt(r+1|0,f,n,t,i,u):IL(pvt,[0,f,n,t,i,u])}function pvt(r,e,n,t,a,u){return 23===u?r<50?mvt(r+1|0,e,n,t,a):IL(mvt,[0,e,n,t,a]):35===u?r<50?kvt(r+1|0,e,n,t,a):IL(kvt,[0,e,n,t,a]):ait()}function mvt(r,e,n,t,a){var u=n[12],f=uz(t,n),i=e[3],v=e[2],c=e[1],A=v+-22|0;if(17>=A>>>0)switch(A){case 6:var o=[0,c,v,a,i];r:{if("number"==typeof f)switch(f){case 8:return r<50?dvt(r+1|0,o,n,t,29):IL(dvt,[0,o,n,t,29]);case 12:return r<50?hvt(r+1|0,o,n,t,29):IL(hvt,[0,o,n,t,29]);case 23:return r<50?xvt(r+1|0,o,n,t,29):IL(xvt,[0,o,n,t,29]);case 3:case 4:case 5:case 7:case 22:case 24:break;default:break r}else if(2!==f[0])break r;return r<50?yvt(r+1|0,o,n,t,u,0,f):IL(yvt,[0,o,n,t,u,0,f])}return rit();case 17:if("number"==typeof f&&27<=f){var s=uz(t,n);if("number"==typeof s){if(17===s){var b=[0,c,v,a,i];return r<50?dit(r+1|0,b,n,t,41):IL(dit,[0,b,n,t,41])}}else if(2===s[0]){var l=n[12],B=s[1],j=n[11],k=uz(t,n),p=iut(B,nit([0,j,l])),m=nit([0,i,l]);return bit(c,n,t,l,iut([8,a,iut([1,p],p[1])],m),v,k)}return rit()}return rit();case 0:case 5:case 14:var d=[0,c,v,a,i];if("number"==typeof f&&27<=f){var _=uz(t,n);return"number"==typeof _&&16===_?r<50?hit(r+1|0,d,n,t,28):IL(hit,[0,d,n,t,28]):rit()}return rit()}return ait()}function dvt(r,e,n,t,a){var u=n[12],f=n[11],i=uz(t,n),v=iut(1,nit([0,f,u]));return r<50?_vt(r+1|0,e,n,t,u,v,a,i):IL(_vt,[0,e,n,t,u,v,a,i])}function _vt(r,e,n,t,a,u,f,i){var v=[0,e,f,u];r:{if("number"==typeof i)switch(i){case 8:return r<50?dvt(r+1|0,v,n,t,30):IL(dvt,[0,v,n,t,30]);case 12:return r<50?hvt(r+1|0,v,n,t,30):IL(hvt,[0,v,n,t,30]);case 23:return r<50?xvt(r+1|0,v,n,t,30):IL(xvt,[0,v,n,t,30]);case 3:case 4:case 5:case 7:case 22:case 24:break;default:break r}else if(2!==i[0])break r;for(var c=v,A=0;;){var o=c[2],s=c[1],b=[0,c[3],A];if(29===o)return r<50?yvt(r+1|0,s,n,t,a,b,i):IL(yvt,[0,s,n,t,a,b,i]);if(30!==o)return ait();c=s,A=b}}return rit()}function hvt(r,e,n,t,a){var u=n[12],f=n[11],i=uz(t,n),v=iut(0,nit([0,f,u]));return r<50?_vt(r+1|0,e,n,t,u,v,a,i):IL(_vt,[0,e,n,t,u,v,a,i])}function xvt(r,e,n,t,a){var u=n[12],f=n[11],i=uz(t,n),v=iut(2,nit([0,f,u]));return r<50?_vt(r+1|0,e,n,t,u,v,a,i):IL(_vt,[0,e,n,t,u,v,a,i])}function yvt(r,e,n,t,a,u,f){var i=e[1],v=i[2],c=i[1],A=e[3],o=iut([2,u,i[3],A],nit([0,i[4],a]));if(22===v){var s=c[5],b=c[4],l=c[3],B=c[2],j=c[1],k=[0,b,s];try{Ort(l)}catch(u){var p=NL(u);if(p===C9n)throw gQ([0,lut,nit(k),cur],1);throw gQ(p,0)}var m=iut(l,nit([0,b,s])),d=iut([0,m,o],nit([0,b,a]));return r<50?wvt(r+1|0,j,n,t,d,B,f):IL(wvt,[0,j,n,t,d,B,f])}if(27===v){var _=c[3],h=c[2],x=c[1];return r<50?qit(r+1|0,x,n,t,a,_,o,h,f):IL(qit,[0,x,n,t,a,_,o,h,f])}if(36!==v)return ait();var y=c[4],w=c[2],g=c[1],q=iut(c[3],nit([0,y,c[5]])),I=iut([0,q,o],nit([0,y,a]));return r<50?wvt(r+1|0,g,n,t,I,w,f):IL(wvt,[0,g,n,t,I,w,f])}function wvt(r,e,n,t,a,u,f){if("number"==typeof f){if(4===f){var i=[0,[0,e,u,a],n[12]],v=uz(t,n);if("number"==typeof v){if(7===v){return r<50?qvt(r+1|0,i,n,t,0):IL(qvt,[0,i,n,t,0])}}else switch(v[0]){case 0:var c=v[1];return r<50?_it(r+1|0,i,n,t,c,37):IL(_it,[0,i,n,t,c,37]);case 2:var A=v[1];return r<50?gvt(r+1|0,i,n,t,A,37):IL(gvt,[0,i,n,t,A,37])}return rit()}if(7===f){var o=[0,a,0];return r<50?Ivt(r+1|0,e,n,t,o,u):IL(Ivt,[0,e,n,t,o,u])}}return rit()}function gvt(r,e,n,t,a,u){var f=n[11],i=n[12],v=uz(t,n);if("number"==typeof v&&25===v){var c=uz(t,n);if("number"==typeof c){if(16===c){var A=[0,e,u,a,f,i];return r<50?hit(r+1|0,A,n,t,36):IL(hit,[0,A,n,t,36])}}else if(2===c[0]){var o=n[12],s=c[1],b=n[11],l=uz(t,n),B=iut(s,nit([0,b,o])),j=[0,f,o],k=iut(a,nit([0,f,i])),p=nit(j),m=iut([0,k,iut([1,B],nit(j))],p);return r<50?wvt(r+1|0,e,n,t,m,u,l):IL(wvt,[0,e,n,t,m,u,l])}return rit()}return rit()}function qvt(r,e,n,t,a){var u=e[1],f=u[2],i=u[1],v=[0,u[3],a];return r<50?Ivt(r+1|0,i,n,t,v,f):IL(Ivt,[0,i,n,t,v,f])}function Ivt(r,e,n,t,a,u){return 21===u?r<50?Dvt(r+1|0,e,n,t,a):IL(Dvt,[0,e,n,t,a]):37===u?r<50?qvt(r+1|0,e,n,t,a):IL(qvt,[0,e,n,t,a]):ait()}function Dvt(r,e,n,t,a){var u=n[12],f=uz(t,n),i=e[3],v=e[2],c=e[1];if(39<=v){if(42>v)switch(v-39|0){case 0:var A=[0,c,v,a,i,u];if("number"==typeof f){if(4===f)return sit(A,n,t,42);if(22===f)return Ait(A,n,u,f)}return rit();case 2:var o=c[3],s=c[2],b=c[1],l=nit([0,c[4],u]);return bit(b,n,t,u,iut([8,o,iut([7,a],nit([0,i,u]))],l),s,f)}}else if(20===v){var B=c[3],j=c[2],k=c[1],p=iut([7,a],nit([0,B,u]));return r<50?qit(r+1|0,k,n,t,u,B,p,j,f):IL(qit,[0,k,n,t,u,B,p,j,f])}return ait()}function Evt(r,e){var n=e[12],t=uz(r,e);r:if("number"==typeof t){if(18<=t){if(22!==t){if(19<=t)break r;return function(r,e,n,t){return qL(Vit(0,r,e,n,t))}(0,e,r,15)}}else{if(2===t)return function(r,e,n,t){return qL(lit(0,r,e,n,t))}(0,e,r,15);if(3!==t)break r}return function(r,e,n,t,a,u,f,i){return qL(Wit(0,r,e,n,t,a,u,f,i))}(0,e,r,n,n,0,15,t)}return rit()}function Nvt(r){return[0,r[1],r[2],r[4]-r[3]|0]}function Tvt(r){return[0,Nvt(r[11]),Nvt(r[12])]}function Fvt(r,e){throw gQ([0,lut,Tvt(r),e],1)}function Mvt(r,e,n){return e[11]=r,Fvt(e,n)}function Pvt(r,e){return r<50?Gvt(r+1|0,e,0):IL(Gvt,[0,e,0])}function Uvt(r){return qL(Pvt(0,r))}function Gvt(r,e,n){for(var t=n;;){var a=j2(Zz,t,e);if(41>=a>>>0)break;uz(e[1],e),t=a}switch(a){case 0:return 16;case 1:return 5;case 2:return 17;case 3:return 7;case 4:return 4;case 5:return 24;case 6:return 10;case 7:return 25;case 8:return 21;case 9:return 20;case 10:return 14;case 11:return 13;case 12:return 27;case 13:return 15;case 14:return[1,m2(e,e[5],e[6])];case 15:for(var u=m2(e,e[5],e[6]),f=z2(AV(u)),i=[0,1];;){if(i[1]>=(AV(u)-1|0))return[0,S2(f)];r:if(Ih<=BL(u,i[1])){var v=Bs<=BL(u,i[1])?Jj<=BL(u,i[1])?3:2:1;i[1]=i[1]+v|0;var c=Qrt([0,$0(Ort(T1(u,i[1]-v|0,1+v|0))),0])}else if(92===BL(u,i[1])){i[1]++;var A=BL(u,i[1]);if(40<=A){if(Wr<=A){if(LP>A)switch(A+-110|0){case 0:c=Qrt(hur);break r;case 4:c=Qrt(xur);break r;case 6:c=Qrt(yur);break r;case 7:var o=i[1]+2|0;i[1]=R1(u,o,xI);try{var s=xV(FM+T1(u,o,i[1]-o|0));if(!(0<=s&&We>s||Ct<=s&&Ms>s))throw gQ([0,jz,""],1);var b=s}catch(c){var l=NL(c);if(l[1]!==jz)throw gQ(l,0);b=Fvt(e,wur)}c=Qrt([0,b,0]);break r}}else if(92===A){c=Qrt(gur);break r}}else{if(34===A){c=Qrt(Iur);break r}if(39<=A){c=Qrt(qur);break r}}i[1]++;var B=N1(1,BL(u,i[1]));let r=T0(xV(FM+N1(1,A)+B));c=W1(function(e){return[0,r,p0]})}else c=Qrt([0,BL(u,i[1]),0]);i[1]++,Y2(f,c,0,AV(c))}break;case 16:return Fvt(e,Bur);case 17:return Fvt(e,jur);case 18:return Mvt(e[12],e,kur);case 19:return 18;case 20:return 3;case 21:return 19;case 22:return 2;case 23:return 11;case 24:return 0;case 25:return 6;case 26:return 1;case 27:return 26;case 28:return 9;case 29:return 12;case 30:return 8;case 31:return 23;case 32:return[2,m2(e,e[5],e[6])];case 36:return $vt(e[11],e),r<50?Pvt(r+1|0,e):IL(Pvt,[0,e]);case 40:return Fvt(e,pur);case 41:return Fvt(e,mur);case 33:case 39:return 22;case 34:case 38:return d2(e),r<50?Pvt(r+1|0,e):IL(Pvt,[0,e]);default:return r<50?Pvt(r+1|0,e):IL(Pvt,[0,e])}}function $vt(r,e){for(;;){var n=ig;r:for(;;){var t=j2(Zz,n,e);if(5>=t>>>0)switch(t){case 4:break r;case 0:return;case 1:$vt(e[11],e);break r;case 2:d2(e);break r;case 3:return Mvt(r,e,dur);default:return Fvt(e,_ur)}uz(e[1],e),n=t}}}function Kvt(r,e,n){return[1,[0,Qut(r,"",e,0,0,0,n),0]]}function Ovt(r,e,n){try{var t,a=r[12];return r[12]=[0,n,a[2],a[3],a[4]],[0,iz(e,Uvt,r,n)]}catch(t){var u=NL(t);if(u[1]===lut)return Kvt(u[2],Pur,u[3]);if(u===Jft)return Kvt(Tvt(r),Uur,"unexpected token");throw gQ(u,0)}}function Rvt(r){try{var e,n=WY(r),t=Ovt(k2(0,n),Evt,r8n(r));return VV(n),0===t[0]?Cut([0,t[1],r]):[1,t[1]]}catch(e){var a=NL(e);if(a[1]===Bz)return Kvt(vut,Mur,uz(H6(Fur),r));throw gQ(a,0)}}function Qvt(r,e){return fft(0,function(n){try{var t,a=function(r,e){for(var n=e,t=r[1];n;){var a=n[2],u=n[1][2];if(0===u[0]){var f=u[1],i=iut(2,f[1]),v=Fft[5].call(null,f[2],i),c=f[1];try{var A=Fft[53].call(null,t,v);n=a,t=A}catch(f){var o=NL(f);if(o[1]!==Fft[45])throw gQ(o,0);var s=o[2];n=a,t=uz($ft(r,c,Var),s)}}else n=a}var b=Kft(r,t),l=Sft([0,b[1],b[2],1],e),B=Gft(r[2],l);return Fft[23].call(null,function(r,e){for(var n=Mft[1],t=e;;){var a=t[2];r:{if("number"!=typeof a&&1===a[0]){var u=a[1],f=Mft[31].call(null,u[2],n);if(f){var i=f;break r}n=Mft[2].call(null,u[2],n),t=Cft(B,u);continue}i=0}return i?uz($ft(B,e[1],Sar),r):i}},B[1]),Sft([0,B[1],B[2],0],e)}(Gft(n,r),e[2][1]),u=e[2][2];return[0,[0,a,Yft(Gft(n,a),u)]]}catch(t){var f=NL(t);if(f===Pft)return 0;throw gQ(f,0)}})}var Cvt=dut([0,z1]);function Hvt(r,e,n){return Zut(function(r,e){try{var n=Cut(Fft[8].call(null,function(r,e,n){if(OH(e,n))return[0,e];throw gQ([0,Fft[45],r],1)},r,e));return n}catch(r){var t=NL(r);if(t[1]!==Fft[45])throw gQ(t,0);var a=t[2];return Kvt(vut,Tur,uz(H6(Nur),a))}},e,H0(function(r){return Cvt[17].call(null,r,n)},r))}var Vvt=dut([0,nH]),Lvt=[0,[0,Vvt[1],0]];function zvt(r,e){var n=Lvt[1];return Lvt[1]=[0,Lvt[1][1],r],q4(function(r){return Lvt[1]=n,0},e)}function Svt(r){var e=Lvt[1][2],n=w0(Vvt[18].call(null,[0,r,e],Lvt[1][1]),0),t=Lvt[1][2];return Lvt[1]=[0,Vvt[2].call(null,[0,r,e],n+1|0,Lvt[1][1]),t],[0,n,e]}function Zvt(r,e){return YH(10,T$,0,[0,r,e])}function Wvt(r,e){var n=Svt(r);return[0,r,n,Zvt(r,n),[0,e]]}function Xvt(r,e){var n=r[1],t=Svt(r[1]);return[0,n,t,Zvt(n,t),[0,e]]}function Jvt(r){return r[4][1]}function Yvt(r){return r[1]}function rct(r,e){var n=JC(r[3],e[3]);if(0!==n)return n;var t=JC(r[2][1],e[2][1]);if(0!==t)return t;var a=e[2][2],u=r[2][2];if(u)var f=u[1],i=a?YC(f,a[1]):1;else i=a?-1:0;return 0===i?YC(r[1],e[1]):i}function ect(r,e){return 0===rct(r,e)?1:0}function nct(r){var e=[0,0],n=AV(r)-1|0;if(n>=0)for(var t=0;;){var a=BL(r,t);e[1]=KC(e[1],Ma)+a|0;var u=t+1|0;if(n===t)break;t=u}return PF&e[1]}var tct=e5n([0,OH,function(r){function e(r,e){return(65521*r|0)^e}function n(r){var n=r[3];return e(r[2],e(n,nct(r[1])))}var t=n(r[2]);return e(n(r[1]),t)}]),act=fut[8];function uct(r,e,n){return[0,uut[5].call(null,e,n)]}function fct(r){var e=e9n[1]?Td:0;return tct[1].call(null,e)}function ict(r,e){if(!e9n[1])return uut[1];var n=uut[3].call(null,e);return w0(tct[8].call(null,r,e),n)}function vct(r,e){var n=e9n[1];if(!n)return n;var t=tct[8].call(null,r,e),a=t?uut[2].call(null,e,t[1]):uut[3].call(null,e);return tct[10].call(null,r,e,a)}function cct(r){var e=tct[17].call(null,r);return fut[43].call(null,e)}var Act=[0,0,vut,vut];function oct(r){switch(r){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;case 4:return 4;case 5:return 5;case 6:return 6;case 7:return 7;case 8:return 8;case 9:return 9;case 10:return 10;case 11:return 11;case 12:return 12;case 13:return 19;case 14:return 13;case 15:return 14;case 16:return 15;case 17:return 16;case 18:return 17;default:return 18}}function sct(r){if(r)switch(r[1]){case 0:return 2;case 1:return 1;default:return 3}return 0}function bct(r){switch(r){case 0:return 0;case 1:return 2;case 2:return 4;case 3:return 1;default:return 3}}function lct(r){switch(r){case 0:return 0;case 1:return 1;default:return 2}}function Bct(r){if("number"==typeof r)switch(r){case 0:return 11;case 1:return 12;default:return 13}switch(r[0]){case 0:return 1;case 1:return 2;case 2:return 0;case 3:return 8;case 4:return 9;case 5:return 3;case 6:return 6;case 7:return 4;case 8:return 5;case 9:return 7;case 10:return 10;case 11:return 14;default:return 15}}function jct(r,e){var n=r[1],t=e[1];return n?t?YC(n[1],t[1]):1:t?-1:0}function kct(r,e){r:{e:{n:{var n=r,t=e;t:for(;;){if(n===t)return 0;if("number"==typeof n)break e;switch(n[0]){case 0:if("number"==typeof t)break r;if(0!==t[0])break r;var a=JC(n[2],t[2]),u=t[1],f=n[1];return 0===a?YC(f,u):a;case 1:if("number"==typeof t)break r;if(1!==t[0])break r;var i=t[2],v=n[2],c=rct(n[1],t[1]);return 0===c?dct(v,i):c;case 2:if("number"==typeof t)break r;if(2!==t[0])break r;var A=n[1],o=oct(t[1]),s=oct(A)-o|0;return 0t)break r}return 0}var ur=Bct(t);return JC(Bct(n),ur)}function pct(r,e){var n=YC(r[1],e[1]);if(0!==n)return n;var t=rct(r[2],e[2]);return 0===t?jct(r[3],e[3]):t}function mct(r,e){for(var n=r,t=e;;){if(!n)return t?-1:0;var a=n[1],u=n[2];if(!t)return 1;var f=t[1],i=YC(a[1],f[1]),v=t[2];if(0===i)var c=kct(a[2],f[2]),A=0===c?jct(a[3],f[3]):c;else A=i;if(0!==A)return A;n=u,t=v}}function dct(r,e){for(var n=r,t=e;;){if(!n)return t?-1:0;if(!t)return 1;var a=t[2],u=n[2],f=kct(n[1],t[1]);if(0!==f)return f;n=u,t=a}}var _ct=[0,kct],hct=[0,function(r,e){var n=e[2],t=r[2],a=kct(r[1],e[1]);return 0===a?kct(t,n):a}];function xct(r,e){var n=Jvt(r);if(0!==n[0]){var t=n[2];if("number"==typeof t&&2<=t)return void(r[4][1]=e)}throw gQ([0,kz,"set_kind"],1)}var yct=fut[1],wct=fut[18],gct=dut([0,rct]);function qct(r,e){return YC(r[1],e[1])}var Ict=Wvt("TextList",[1,0,2]);xct(Ict,[0,0,[6,[7,[0,fS,[0,[1,Ict,0],0]]]]]);var Dct=[1,Ict,0];function Ect(r){return s1(qct,H0(function(r){return[0,r[1],r[2],Act]},r))}function Nct(r,e){return[3,r,Ect(e),0]}function Tct(r,e,n){var t=Ect(n);return[3,r,Ect(e),t]}function Fct(r){return[4,Ect(r)]}var Mct=s1(qct,[0,[0,Lvr,rS,Act],0]),Pct=s1(qct,QY(Mct,[0,[0,Jvr,rS,Act],[0,[0,Xvr,rS,Act],[0,[0,Wvr,rS,Act],[0,[0,Zvr,rS,Act],[0,[0,Svr,rS,Act],[0,[0,zvr,[2,5],Act],[0,[0,"call_error",Nct(0,[0,[0,"err_code",[2,5]],0]),Act],0]]]]]]])),Uct=Nct(0,[0,[0,Yvr,cS],0]);function Gct(r){var e=YC(r,Eb);if(0<=e){if(0>=e)return 8;if(r===rc)return 2;if(r===vo)return 4;if(r===dM)return 5;if(r===Su)return 6;if(r===QF)return 3;if(r===YE)return 0;if(r===pg)return 18;if(r===uh)return 19;if(r===ZP)return 15}else{var n=YC(r,Hv);if(0<=n){if(0>=n)return 13;if(r===No)return 7;if(r===vF)return 9;if(r===Vq)return 10;if(r===NT)return 11}else{if(r===ii)return 16;if(r===oG)return 1;if(r===l$)return 14;if(r===dv)return 17;if(r===_P)return 12}}throw gQ([0,kz,"Type.prim: "+r],1)}function $ct(r){return r&&!r[2]?r[1]:[7,r]}function Kct(r){return Nct(0,[0,[0,Hvr,[8,0,0,0,0,[0,[6,r],0]]],0])}function Oct(r,e,n){if("number"==typeof n)switch(n){case 0:return 0;case 1:return 1;default:return 2}switch(n[0]){case 0:var t=n[2];return[0,n[1],t>>0&&!a[3])for(var u=a[2];;){if(!u)return 1;var f=u[2],i=Rot(e,u[1]);if(!i)return i;u=f}return 0;case 4:var v=a[1];if(v&&!v[2]){var c=v[1];return r<50?Oot(r+1|0,e,c):IL(Oot,[0,e,c])}return 0;case 7:for(var A=a[1];;){if(!A)return 1;var o=A[2],s=Kot(e,A[1]);if(!s)return s;A=o}break;case 11:throw gQ([0,xz,rfr],1);case 0:case 1:return 0;case 10:case 12:var b=0;break r}return 0}switch(a){case 1:return 0;case 2:throw gQ([0,xz,Yur],1)}}return 1}b=t}return b}function Kot(r,e){return qL($ot(0,r,e))}function Oot(r,e,n){var t=n[2];return r<50?$ot(r+1|0,e,t):IL($ot,[0,e,t])}function Rot(r,e){return qL(Oot(0,r,e))}function Qot(r){return Kot([0,LAt[1]],r)}function Cot(r,e,n){r:{var t=n;e:for(;;){if("number"!=typeof t)switch(t[0]){case 1:var a=t[2],u=Jvt(t[1]);if(0!==u[0]){var f=0===r?1:0,i=u[2];return f||(0===i?1:0)}var v=e[1],c=u[2],A=u[1],o=LAt[31].call(null,t,v[1]);if(o)return o;v[1]=LAt[2].call(null,t,v[1]),t=Wct(A,c,a);continue;case 2:var s=t[1];if(8>s)switch(s){case 7:return 1===r?1:0;case 0:case 2:return 0===r?1:0}return 1;case 6:var b=1===r?1:0,l=t[1];if(!b)return b;t=l;continue;case 7:break r;case 8:break e;case 9:t=t[3];continue;case 10:return 1;case 11:t=t[2];continue;case 5:case 12:t=t[1];continue}return 0}var B=t[5],j=t[4],k=[0,e[2],e[1]],p=r?0:1;e:{for(var m=j;m;){var d=m[2],_=Cot(p,k,m[1]);if(!_){var h=_;break e}m=d}h=1}if(!h)return h;for(var x=B;;){if(!x)return 1;var y=x[2],w=Cot(r,e,x[1]);if(!w)return w;x=y}}for(var g=t[1];;){if(!g)return 1;var q=g[2],I=Cot(r,e,g[1]);if(!I)return I;g=q}}var Hot=U2(hct),Vot=[Gl,"Mo_types.Type.Mismatch",zH()];function Lot(r,e,n,t,a){r:{e:{n:{t:{a:{u:{var u=t,f=a;f:for(;;){if(r!==e&&r!==n)throw gQ([0,xz,efr],1);if(u===f)return u;var i=Hot[18].call(null,[0,u,f],r[1]);if(i)return i[1];if(Dot(0,u,f))break r;i:{v:{c:{A:{o:{s:{b:{l:{if("number"!=typeof u){B:switch(u[0]){case 2:var v=u[1];if(8<=v)break l;switch(v){case 0:if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break A}switch(f[0]){case 10:break l;case 1:break A;case 11:break i;case 6:var c=u,A=f;break B;default:break e}case 2:if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break A}switch(f[0]){case 2:if(7!==f[1])break e;break;case 10:break l;case 1:break A;case 11:break i;default:break e}break;case 7:if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break A}switch(f[0]){case 2:if(2!==f[1])break e;break;case 10:break l;case 1:break A;case 11:break i;default:break e}break;default:break l}return[2,r===e?7:2];case 3:var o=u[1],s=u[3],b=u[2];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break A}switch(f[0]){case 3:break t;case 10:break l;case 1:break A;case 11:break i;default:break e}case 4:var l=u[1];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break A}switch(f[0]){case 4:break a;case 10:break l;case 1:break A;case 11:break i;default:break e}case 5:var B=u[1];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break A}switch(f[0]){case 5:var j=f[1];try{return[5,Lot(r,e,n,B,j)]}catch(cr){var k=NL(cr);if(k===Vot)return r===e?0:1;throw gQ(k,0)}case 10:break l;case 1:break A;case 11:break i;default:break e}case 6:var p=u[1];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break A}switch(f[0]){case 2:if(f[1])break e;c=f,A=u;break;case 6:return[6,Lot(r,e,n,p,f[1])];case 10:break l;case 1:break A;case 11:break i;default:break e}break;case 7:var m=u[1];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break A}switch(f[0]){case 7:break u;case 10:break l;case 1:break A;case 11:break i;default:break e}case 8:var d=u[5],_=u[4],h=u[3],x=u[2],y=u[1];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break A}switch(f[0]){case 8:break f;case 10:break l;case 1:break A;case 11:break i;default:break e}case 9:var w=u[2],g=u[1],q=u[3];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break A}switch(f[0]){case 9:var I=f[3],D=f[2];if(g!==f[1])break e;if(Dot(0,w,D))return[9,g,w,Lot(r,e,n,q,I)];break e;case 10:break l;case 1:break A;case 11:break i;default:break e}case 11:var E=u[2],N=u[1];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break A}switch(f[0]){case 11:var T=f[2];if(N===f[1])return[11,N,Lot(r,e,n,E,T)];u=E,f=T;continue;case 10:break l;case 1:break A;default:break v}case 12:var F=u[1];if("number"==typeof f)switch(f){case 2:break l;case 0:break s;default:break A}switch(f[0]){case 12:return[12,Lot(r,e,n,F,f[1])];case 10:break l;case 1:break A;case 11:break i;default:break e}default:break l}return r===e?A:c}if(2===u)break b}l:{if("number"==typeof f){if(2===f)break b}else if(10===f[0])break l;if("number"==typeof u){if(0!==u)break s;var M=f;break o}if(10!==u[0])break s}throw gQ(Vot,1)}throw gQ(vot,1)}if("number"!=typeof f||f){if("number"!=typeof u)break A;var P=f;break c}M=u}return r===e?0:M}if("number"!=typeof f){if(1===f[0])break n;break v}if(1!==f)break v;P=u}return r===e?P:1}if("number"!=typeof u)switch(u[0]){case 11:u=u[2];continue;case 1:break n}}if("number"==typeof f)break e;if(11!==f[0])break e;f=f[2]}var U=f[5],G=f[4],$=f[3],K=f[2];if(!OH(y,f[1]))break e;if(x!==K)break e;if(!uot(fct(),function(r){var e=[0,Aot[1]];return 0!==yot(oot(0),e,e,h,$)?1:0}))break e;var O=G0(G);if(G0(_)!==O)break e;var R=G0(U);if(G0(d)!==R)break e;var Q=Zct(h),C=H0(function(r){return dAt(r)[1]},Q),H=function(r){return Sct(Q,r)},V=function(r){return Hct(C,r)},L=r===e?n:e,z=H0(H,U),S=H0(V,Z0(function(t,a){return Lot(r,e,n,t,a)},H0(H,d),z)),Z=H0(H,G);return[8,y,x,h,H0(V,Z0(function(r,t){return Lot(L,e,n,r,t)},H0(H,_),Z)),S]}var W=f[1],X=G0(W);if(G0(m)===X)return[7,Z0(function(t,a){return Lot(r,e,n,t,a)},m,W)];break e}for(var J=Wrt(qct,l,f[1]),Y=0;;){var rr=J(0);if(!rr)return[4,Q0(Y)];var er=rr[2],nr=rr[1];if(2===nr[0]){var tr=nr[2],ar=nr[1],ur=Lot(r,e,n,ar[2],tr[2]);fot(r,e,0,ar,tr),J=er,Y=[0,[0,ar[1],ur,[0,Act[1],ar[3][2],Act[3]]],Y]}else J=er,Y=zot(r===e?1:0,nr[1],Y)}}var fr=f[3],ir=f[2];if(o!==f[1])break e;try{for(var vr=Wrt(qct,s,fr),cr=0;;){var Ar=vr(0);if(!Ar)break;var or=Ar[2],sr=Ar[1];if(2===sr[0]){var br=sr[1];if(Eot(0,br[2],sr[2][2]))vr=or,cr=[0,br,cr];else{if(r===n)throw gQ(Vot,1);vr=or}}else{var lr=sr[1];r===n?(vr=or,cr=[0,lr,cr]):vr=or}}for(var Br=Q0(cr),jr=Wrt(qct,b,ir),kr=0;;){var pr=jr(0);if(!pr)return[3,o,Q0(kr),Br];var mr=pr[2],dr=pr[1];if(2===dr[0]){var _r=dr[2],hr=dr[1];try{var xr=Lot(r,e,n,hr[2],_r[2])}catch(cr){var yr=NL(cr);if(yr===Vot&&r===e){jr=mr;continue}throw gQ(yr,0)}fot(r,e,0,hr,_r),jr=mr,kr=[0,[0,hr[1],xr,[0,Act[1],hr[3][2],Act[3]]],kr]}else jr=mr,kr=zot(r===n?1:0,dr[1],kr)}}catch(cr){var wr=NL(cr);if(wr!==Vot)throw gQ(wr,0);if(r===n)return 1;throw gQ([0,xz,nfr],1)}}if(Tot(0,u,f)){var gr=r===n?u:f,qr=Hot[2].call(null,[0,u,f],gr,r[1]);return r[1]=Hot[2].call(null,[0,f,u],gr,qr),gr}if(Tot(0,f,u)){var Ir=r===e?u:f,Dr=Hot[2].call(null,[0,u,f],Ir,r[1]);return r[1]=Hot[2].call(null,[0,f,u],Ir,Dr),Ir}if(r===e)var Er=Jct,Nr="lub";else Er=Xct,Nr="glb";var Tr=rm+uz(rot[1],f)+b_,Fr=Wvt(Nr+Bm+uz(rot[1],u)+Tr,tfr),Mr=[1,Fr,0],Pr=Hot[2].call(null,[0,u,f],Mr,r[1]);r[1]=Hot[2].call(null,[0,f,u],Mr,Pr);var Ur=Er(f),Gr=Lot(r,e,n,Er(u),Ur);if(Gr===Mr){if(r!==n)throw gQ([0,xz,afr],1);var $r=1}else $r=Gr;return xct(Fr,[0,0,$r]),$r}return r===e?0:1}if("number"==typeof f||1!==f[0])Kr=0;else var Kr=1;var Or=Kr?f:u,Rr=Hot[2].call(null,[0,u,f],Or,r[1]);return r[1]=Hot[2].call(null,[0,f,u],Or,Rr),Or}function zot(r,e,n){return r?[0,e,n]:n}function Sot(r,e,n){return tot(r?r[1]:fct(),function(r){var t=[0,Hot[1]];return Lot(t,t,[0,Hot[1]],e,n)})}function Zot(r,e,n){return tot(r?r[1]:fct(),function(r){var t=[0,Hot[1]];return Lot(t,[0,Hot[1]],t,e,n)})}var Wot=dut([0,z1]),Xot="$",Jot=[0,Xot,0,0],Yot=[8,0,0,[0,Jot,0],0,[0,[9,0,[0,Xot,0],rS],0]],rst=[8,[0,0],1,[0,Jot,0],0,[0,Nct(0,[0,[0,rcr,aS],0]),0]],est=Nct(0,[0,[0,Bcr,nS],[0,[0,lcr,nS],[0,[0,bcr,fS],[0,[0,scr,fS],[0,[0,ocr,nS],[0,[0,Acr,nS],[0,[0,ccr,nS],[0,[0,vcr,nS],[0,[0,icr,nS],[0,[0,fcr,nS],[0,[0,ucr,fS],[0,[0,acr,eS],[0,[0,tcr,nS],[0,[0,ncr,nS],[0,[0,ecr,Dct],0]]]]]]]]]]]]]]]),nst=[8,[0,0],1,[0,Jot,0],0,[0,est,0]];function tst(r){return[4,s1(qct,u1(function(r){var e=Xct(r[2]);if("number"!=typeof e&&8===e[0]){var n=e[1];if(n&&2>n[1]){var t=e[4],a=H0(function(r){return 1},e[3]),u=[8,0,0,0,0,H0(function(r){return Sct(a,r)},t)];return[0,[0,r[1],u,Act]]}}return 0},r))]}var ast=Nct(0,[0,[0,kcr,[6,Nct(0,[0,[0,"controllers",[6,[5,cS]]],[0,[0,"compute_allocation",[6,nS]],[0,[0,"memory_allocation",[6,nS]],[0,[0,"freezing_threshold",[6,nS]],0]]]])]],0]),ust=[0,[0,"upgrade_with_persistence",Nct(0,[0,[0,"wasm_memory_persistence",Fct([0,[0,"keep",rS],[0,[0,"replace",rS],0]])],[0,[0,"canister",Nct(1,0)],0]])],0],fst=[0,[0,"upgrade",Nct(1,0)],ust],ist=Fct([0,[0,pcr,ast],[0,[0,"install",cS],[0,[0,"reinstall",Nct(1,0)],fst]]]),vst=[0,jS,nS,Act],cst=[0,pS,tS,Act];function Ast(r){return r?"*":""}function ost(r){switch(r){case 0:return fvr;case 1:return ivr;case 2:return vvr;case 3:return cvr;case 4:return Avr;case 5:return ovr;case 6:return svr;case 7:return bvr;case 8:return lvr;case 9:return Bvr;case 10:return jvr;case 11:return kvr;case 12:return pvr;case 13:return mvr;case 14:return dvr;case 15:return _vr;case 16:return hvr;case 17:return xvr;case 18:return yvr;default:return wvr}}function sst(r){switch(r){case 0:return"";case 1:return"actor ";case 2:return"mixin ";case 3:return"module ";default:return"memory "}}function bst(r){if(r)switch(r[1]){case 0:return"shared query ";case 1:return"shared ";default:return"shared composite query "}return""}var lst=[0,0,1,1,mcr,dcr,0];function Bst(r){var e=[0,gct[1]];function n(e,n,t,a){var u=e?e[1]:V5n,f=r[6];if(!f)return m7n([0,u],n,t,a);var i=f[1],v=G0(a);if(v=BL(r,n)){n=n-1|0;continue}var t=n}else t=n;else t=-1;return 0<=t&&t<(e-1|0)&&1<=t&&95===BL(r,t)&&95===BL(r,t-1|0)?T1(r,0,t-1|0):r}}(i)}function A(r,e){return function e(n,t){r:{e:{n:{t:{a:{var a=t;u:for(;;){if("number"==typeof a){if(2===a)throw gQ([0,xz,vfr],1)}else switch(a[0]){case 0:return n!==a[2]?1:0;case 1:break r;case 3:break n;case 4:break t;case 7:break a;case 8:break u;case 9:var u=a[2];if("number"!=typeof u&&0===u[0]){var f=a[3];if(u[2]===n&&n<=r){a=f;continue}}var i=a[3],v=e(n,a[2]);if(!v)return v;a=i;continue;case 11:a=a[2];continue;case 2:break;default:a=a[1];continue}return 1}var c=a[3],A=a[5],o=a[4],s=n+G0(c)|0;u:{for(var b=c;b;){var l=b[2],B=e(s,b[1][3]);if(!B){var j=B;break u}b=l}j=1}u:{f:{if(!j){var k=j;break u}for(var p=o;p;){var m=p[2],d=e(s,p[1]);if(!d){var _=d;break f}p=m}_=1}if(_)for(var h=A;;){if(!h)return 1;var x=h[2],y=e(s,h[1]);if(!y)return y;h=x}else k=_}return k}for(var w=a[1];;){if(!w)return 1;var g=w[2],q=e(n,w[1]);if(!q)return q;w=g}}var I=a[1];break e}I=a[2]}for(;;){if(!I)return 1;var D=I[2],E=e(n,I[1][2]);if(!E)return E;I=D}}for(var N=a[2];;){if(!N)return 1;var T=N[2],F=e(n,N[1]);if(!F)return F;N=T}}(r,e)}function o(r,e,t){var u=t[1];if(u){var f=t[3],i=H0(function(r){return[0,r]},t[2]),v=function(e,n){return 0===n[0]?d(r,e,n[1]):_(r,e,n[1])},c=[0,a],A=QY(H0(function(r){return[1,r]},f),i),o=sst(u);return iz(w7n(e)(cfr),o,function(r,e){return n(c,v,r,e)},A)}var s=t[3],b=H0(function(r){return[0,r]},t[2]);function l(e,n){return 0===n[0]?d(r,e,n[1]):_(r,e,n[1])}var B=[0,a],j=QY(H0(function(r){return[1,r]},s),b);return fz(w7n(e)(Afr),function(r,e){return n(B,l,r,e)},j)}function s(r,e,t){if(!t)return M5n(e,"{#}");function u(e,n){return y(r,e,n)}var f=[0,a];return fz(w7n(e)(ofr),function(r,e){return n(f,u,r,e)},t)}function b(r,e,a){if("number"==typeof a)switch(a){case 0:return M5n(e,bfr);case 1:return M5n(e,lfr);default:return M5n(e,"???")}switch(a[0]){case 0:var u=a[2],f=a[1];try{var v=i(O0(r,u))}catch(r){v=fz(H6(Bfr),f,u)}return M5n(e,v);case 1:var A=a[1];if(!a[2])return M5n(e,c(A));var b=function(e,n){return m(r,e,n)},l=[0,t],B=a[2],j=c(A);return iz(w7n(e)(jfr),j,function(r,e){return n(l,b,r,e)},B);case 2:return M5n(e,ost(a[1]));case 3:if(!a[1])return o(r,e,[0,0,a[2],a[3]]);break;case 4:return s(r,e,a[1]);case 5:var k=a[1];if("number"!=typeof k&&10===k[0]){var p=k[1];return fz(w7n(e)(kfr),function(e,n){return m(r,e,n)},p)}return fz(w7n(e)(pfr),function(e,n){return m(r,e,n)},k);case 7:var d=a[1],_=1===G0(d)?mfr:"",h=function(e,n){return function(r,e,n){if("number"!=typeof n&&11===n[0]){var t=n[2],a=n[1];return iz(w7n(e)(sfr),a,function(e,n){return m(r,e,n)},t)}return m(r,e,n)}(r,e,n)},x=[0,t];return iz(w7n(e)(dfr),function(r,e){return n(x,h,r,e)},d,_);case 11:var y=a[2],w=a[1];return iz(w7n(e)(_fr),w,function(e,n){return m(r,e,n)},y)}return fz(w7n(e)(hfr),function(e,n){return m(r,e,n)},a)}function l(r,e,n){if("number"!=typeof n)switch(n[0]){case 6:var t=n[1];return fz(w7n(e)(xfr),function(e,n){return l(r,e,n)},t);case 12:var a=n[1];return fz(w7n(e)(yfr),function(e,n){return l(r,e,n)},a)}return b(r,e,n)}function B(e,n,t){if("number"!=typeof t)switch(t[0]){case 3:var a=t[1];if(a)return o(e,n,[0,a,t[2],t[3]]);break;case 9:var u=t[3],f=t[2],i=t[1];if(!r[2]){var v=Ast(i);return iz(w7n(n)(qfr),v,function(r,n){return B(e,r,n)},u)}if("number"!=typeof f&&0===f[0]&&O0(e,f[2])[1]===kQ){var c=Ast(i);return iz(w7n(n)(wfr),c,function(r,n){return B(e,r,n)},u)}var A=Ast(i);return cz(w7n(n)(gfr),A,function(r,n){return m(e,r,n)},f,function(r,n){return B(e,r,n)},u)}return l(e,n,t)}function j(r,e,n){if(n){var t=n[1];if("number"!=typeof t&&7===t[0]&&!n[2]){var a=$ct(n);return fz(w7n(e)(Ifr),r,a)}}return fz(r,e,$ct(n))}function k(r,e,n){if("number"!=typeof n&&8===n[0]){var t=n[3],a=n[5],u=n[4],f=n[2],i=n[1],v=function(r){r:if("number"!=typeof r&&8===r[0]){var e=r[1];switch(r[2]){case 0:var n=r[3];if(n){var t=r[5];if(t){var a=t[1];if("number"==typeof a)break r;if(9!==a[0])break r;var u=a[2];if("number"==typeof u)break r;if(0!==u[0])break r;if(0!==u[2])break r;if(t[2])break r;var f=t,i=r[4],v=n;break}}if(!e)break r;var c=r[5];if(c)break r;f=c,i=r[4],v=r[3];break;case 1:f=r[5],i=r[4],v=r[3];break;default:break r}e:{for(var o=v;o;){var s=o[2],b=A(0,o[1][3]);if(!b){var l=b;break e}o=s}l=1}if(l){e:{for(var B=i;B;){var j=B[2],k=A(0,B[1]);if(!k){var p=k;break e}B=j}p=1}if(p)for(var m=f;;){if(!m)return 1;var d=m[2],_=A(0,m[1]);if(!_)return _;m=d}else var h=p}else h=l;return h}return 0}(n),c=w(r,t);if(v)var o=K0(t),s=K0(c);else if(t&&!t[1][2]){var b=K0(c);o=t,s=[0,[0,Dfr,$0(c)[2]],b]}else o=t,s=c;var k=QY(c,r),m=function(r,e){return l(k,r,e)},d=bst(i);return oz(w7n(e)(Efr),d,function(r,e){return q(k,s,r,e)},o,function(r,e){return j(m,r,e)},u,function(r,e){return p(v,f,k,r,e)},a)}return B(r,e,n)}function p(r,e,n,t,a){switch(e){case 0:if(a){var u=a[1];if("number"!=typeof u&&9===u[0]&&!a[2]){var f=u[3],i=u[1];if(r){var v=Ast(i);return iz(w7n(t)(Nfr),v,function(r,e){return B(n,r,e)},f)}}}return j(function(r,e){return k(n,r,e)},t,a);case 1:var c=function(r,e){return B(n,r,e)};return fz(w7n(t)(Tfr),function(r,e){return j(c,r,e)},a);default:var A=function(r,e){return k(n,r,e)};return fz(w7n(t)(Ffr),function(r,e){return j(A,r,e)},a)}}function m(r,e,n){if("number"!=typeof n&&10===n[0]){var t=n[1];return fz(w7n(e)(Mfr),function(e,n){return l(r,e,n)},t)}return k(r,e,n)}function d(r,e,n){var t=n[2],a=n[1];if("number"!=typeof t&&10===t[0]){var u=t[1];return iz(w7n(e)(Ufr),a,function(e,n){return m(r,e,n)},u)}return iz(w7n(e)(Gfr),a,function(e,n){return m(r,e,n)},t)}function _(r,e,n){var t=n[1],a=I(r,Jvt(n[2])),u=a[3],f=a[2],i=a[1];return Az(w7n(e)($fr),t,f,0,i,u,0)}function h(r,e,n){var t=n[2],a=n[1];if("number"!=typeof t&&10===t[0]){var u=t[1];return iz(w7n(e)(Kfr),a,function(e,n){return m(r,e,n)},u)}return iz(w7n(e)(Ofr),a,function(e,n){return m(r,e,n)},t)}function x(r,e,n){var t=n[2],a=t[2],u=t[1],f=n[1]?Rfr:Qfr;if("number"!=typeof a&&10===a[0]){var i=a[1];return vz(w7n(e)(Cfr),f,u,function(e,n){return m(r,e,n)},i)}return vz(w7n(e)(Hfr),f,u,function(e,n){return m(r,e,n)},a)}function y(r,e,n){var t=n[2],a=n[1];return"number"==typeof t||7!==t[0]||t[1]?iz(w7n(e)(Lfr),a,function(e,n){return m(r,e,n)},t):uz(w7n(e)(Vfr),a)}function w(r,e){return H0(function(e){return function(r,e){for(var n=r,t=e;;){if(!n)return t;var a=n[2];t[1]===n[1][1]?(n=a,t=[0,t[1],t[2]+1|0]):n=a}}(r,[0,e[1],0])},e)}function g(r,e,n){var t=n[2][3],a=n[1];if(0===t)return M5n(e,i(a));var u=i(a);return iz(w7n(e)(zfr),u,function(e,n){return m(r,e,n)},t)}function q(r,e,a,u){if(!u)return 0;function f(e,n){return g(r,e,n)}var i=[0,t],v=o1(e,u);return fz(w7n(a)(Sfr),function(r,e){return n(i,f,r,e)},v)}function I(r,e){if(0===e[0])var n=e[2],t=e[1],a=Zfr;else n=e[2],t=e[1],a=Wfr;var u=w(r,t),f=QY(u,r);return[0,a,function(r,e){return q(f,u,r,t)},function(r,e){return m(f,r,n)}]}function D(r){return I(f(HAt(r)),r)}function E(r,e,n){var t=n[2],a=Crt(34,Ort(n[1]),34);return iz(w7n(e)(Xfr),a,function(e,n){return m(r,e,n)},t)}function N(r,e,n){if("number"!=typeof n&&1===n[0]){if(0!==Jvt(n[1])[0])return m(r,e,n);var t=Xct(n);r:{if("number"==typeof t){if(2===t)break r}else if(2!==t[0])break r;return m(r,e,n)}return vz(w7n(e)(nir),function(e,n){return m(r,e,n)},n,function(e,n){return N(r,e,n)},t)}return m(r,e,n)}function T(r,e){return m(f(CAt(e)),r,e)}function F(r,e){return function(r,e,n){var t=I(r,Jvt(n)),a=t[3],u=t[2],f=t[1],i=n[1];return Az(w7n(e)(Pfr),i,u,0,f,a,0)}(f(KAt(1,e,gct[44][1])),r,e)}function M(r,e){return N(f(CAt(e)),r,e)}function P(r,e){var n=a1(function(r){if("number"!=typeof r&&0===r[0]){var e=r[1],n=Jvt(e);if(0===n[0]&&!n[1]){var t=n[2];if("number"==typeof t)switch(t){case 0:if(c(e)===Ea)return 0;break;case 1:if(c(e)===Gc)return 0}else if(2===t[0]){var a=ost(t[1]);if(c(e)===a)return 0}}return 1}return 1},e);if(0===n)return"";function t(r,e){if("number"==typeof r)switch(r){case 0:return Hir;case 1:return Vir;default:return Lir}switch(r[0]){case 0:var n=c(r[1]);return[0,uz(H6(Sir),n),zir];case 1:var t=r[1];return[0,uz(H6(Wir),t),Zir];case 2:var a=r[1];return[0,uz(H6(Jir),a),Xir];default:var u=r[1];return[0,uz(H6(rvr),u),Yir]}}return"\n "+r+Wy+function r(e,n){if(!n)return Cir;var a=n[1],u=n[2];if(!u)return t(a)[1];if(e){var f=n[2],i=t(a),v=i[2],c=i[1],A=r(1,f);return iz(H6(Qir),c,v,A)}var o=t(a)[1],s=r(1,u);return fz(H6(Rir),o,s)}(0,n)}function U(r){return r?0:1}function G(r){return r?"expected ":""}return[0,,function(r){e[1]=r},function(r){e[1]=gct[1]},,,,,,,,,,c,,,,,,,,,,,,,,,,,,,,,,,,D,,,,function(r,e){switch(e[0]){case 0:var t=e[1];break;case 1:var u=e[2];t=QY(H0(function(r){return r[2]},e[1]),u);break;default:t=QY(e[1],e[2])}var i=S0(function(r,e){return RAt(0,r,e)},t,gct[44][1]),v=f(i),A=gct[44][26].call(null,function(r){var e=Jvt(r);if(0!==e[0])return 0;if(!e[1]){var n=e[2];if("number"==typeof n)switch(n){case 0:if(c(r)===Ea)return 0;break;case 1:if(c(r)===Gc)return 0}else if(2===n[0]){var t=ost(n[1]);if(c(r)===t)return 0}}return 1},i),o=s1(qct,H0(function(r){return[0,c(r),r,Act]},gct[44][10].call(null,A)));var s=0===o?function(r,e){return 0}:a;function b(r,e){return _(v,r,e)}var l=[0,a];return Az(w7n(r)(eir),function(r,e){return n(l,b,r,e)},o,s,0,function(r,e){switch(e[0]){case 0:var t=function(r,e){return h(v,r,e)},u=[0,a],f=e[1],i=sst(1);return iz(w7n(r)(Jfr),i,function(r,e){return n(u,t,r,e)},f);case 1:var c=function(r,e){return h(v,r,e)},A=[0,a],o=function(r,e){return x(v,r,e)},s=[0,a],b=e[2],l=e[1],B=sst(1);return cz(w7n(r)(Yfr),B,function(r,e){return n(s,o,r,e)},l,function(r,e){return n(A,c,r,e)},b);default:var j=function(r,e){return h(v,r,e)},k=[0,a],p=e[2],m=e[1],d=function(r,e){return E(v,r,e)},_=[0,a],y=sst(1);return cz(w7n(r)(rir),function(r,e){return n(_,d,r,e)},m,y,function(r,e){return n(k,j,r,e)},p)}},e)},,M5n,T,,M,function(r){return wrt(function(r){return function(e){return T(r,e)}},r)},,function(r){var e=D(r),n=e[2],t=e[1],a=wrt(e[3],0);return[0,t,wrt(n,0),a]},function(r){return wrt(function(r){return function(e){return M(r,e)}},r)},,,,function r(e){function n(r,e){return grt(T,r,e)}function t(r,e){return grt(F,r,e)}switch(e[0]){case 0:var a=e[3],u=e[2],f=P(Air,e[1]);return cz(D7n(v5n,oir),n,u,n,a,f);case 1:var i=e[3],v=e[2],c=P(sir,e[1]);return cz(D7n(v5n,bir),t,v,t,i,c);case 2:var A=e[2],o=e[1],s=r(e[3]);return cz(D7n(v5n,lir),n,o,n,A,s);case 3:var b=e[2],l=e[4],B=e[3],j=P(Bir,e[1]),k=G(U(b)),p=G(b);return Az(D7n(v5n,jir),p,B,k,n,l,j);case 4:var m=e[2],d=e[4],_=e[3],h=e[1],x=e[5]?kir:pir,y=P(mir,h),w=G(U(m)),g=G(m);return oz(D7n(v5n,dir),g,x,_,w,n,d,y);case 5:var q=e[2],I=P(_ir,e[1]);return fz(D7n(v5n,hir),q,I);case 6:var D=e[2],E=P(xir,e[1]);return fz(D7n(v5n,yir),D,E);case 7:var N=e[2],M=P(wir,e[1]);return iz(D7n(v5n,gir),n,N,M);case 8:var $=e[1],K=e[3],O=e[2],R=$?$[2]:$,Q=P(qir,R);return cz(D7n(v5n,Iir),n,O,n,K,Q);case 9:var C=function(r){switch(r){case 0:return uir;case 1:return fir;case 2:return iir;case 3:return vir;default:return cir}},H=e[3],V=e[2],L=P(Dir,e[1]),z=C(H),S=C(V);return iz(D7n(v5n,Eir),S,z,L);case 10:var Z=e[3],W=e[2],X=P(Nir,e[1]),J=bst(Z),Y=bst(W);return iz(D7n(v5n,Tir),Y,J,X);case 11:var rr=function(r){switch(r){case 0:return"regular function or one-shot shared function";case 1:return"shared function that returns a future";default:return"compiler-internal reply function"}},er=e[3],nr=e[2],tr=P(Fir,e[1]),ar=rr(er),ur=rr(nr);return iz(D7n(v5n,Mir),ur,ar,tr);case 12:var fr=e[3],ir=e[2],vr=P(Pir,e[1]);return cz(D7n(v5n,Uir),n,ir,n,fr,vr);case 13:var cr=function(r){return r?tir:air},Ar=e[3],or=e[2],sr=P(Gir,e[1]),br=cr(Ar),lr=cr(or);return iz(D7n(v5n,$ir),lr,br,sr);default:var Br=e[3],jr=e[2],kr=P(Kir,e[1]);return cz(D7n(v5n,Oir),n,jr,n,Br,kr)}},function(r,e,n){switch(n[0]){case 0:case 8:case 12:var t=n[3],a=Dot(0,r,n[2]);return a?Dot(0,e,t):a;default:return 0}}]}var jst=lst[1],kst=lst[2],pst=lst[4],mst=lst[5],dst=Bst(lst),_st=dst[13],hst=dst[44],xst=dst[46],yst=dst[47],wst=dst[50],gst=dst[2],qst=dst[3],Ist=dst[43],Dst=dst[49],Est=dst[54],Nst=dst[55];function Tst(r,e,n,t){return aot(r?r[1]:fct(),function(r){var a=sot(e);if(xot(a,[0,Aot[1]],[0,Aot[1]],n,t))return 0;var u=Bot(a);return u?[0,u[1]]:[0,[0,e,n,t]]},function(r){return 0===r?1:0})}function Fst(r){var e=EAt(r),n=e[2];return[0,oAt(Xct(e[1]))[2],oAt(Jct(n))[2]]}function Mst(r){return u8n(r8n(r))}function Pst(r,e,n){var t=e?e[1]:1,a=Fst(r),u=a[1],f=a[2],i=u1(function(r){var e=MAt(r[1],u),n=MAt(r[1],f);return e||n?0:[0,[0,1-t,r]]},n);return s1(function(r,e){return qct(r[2],e[2])},QY(H0(function(r){return[0,1,r]},u),i))}function Ust(r,e,n){for(var t=Q0(e),a=H0(function(r){return[0,0,r]},n),u=[0,a,0],f=t,i=a;;){if(!f)return[0,i,u];var v=f[1],c=f[2];if(OH([0,v[1]],r))return[0,i,u];var A=H0(function(r){return r[2]},i),o=Pst(v[2],ifr,A);u=[0,o,u],f=c,i=o}}function Gst(r,e){switch(e[0]){case 0:return H0(function(r){return[0,0,r]},e[1]);case 1:return e[1];default:return Ust(r,e[1],e[2])[1]}}function $st(r){switch(r[0]){case 0:return[0,r[1],0];case 1:return[0,r[2],0];default:var e=r[1],n=r[2];if(0===e)throw gQ([0,xz,ffr],1);return[0,n,[0,Lrt(e)[1]]]}}function Kst(r){return[3,4,H0(function(r){var e=r[2],n=e[3],t=[6,mAt(e[2])];return[0,e[1],t,n]},r),0]}function Ost(r,e){if(2===r[0]&&2!==e[0])return 0;var n=$st(r);return Rst(n[1],Gst(n[2],e))}function Rst(r,e){for(var n=Wrt(function(r,e){return qct(r,e[2])},r,e);;){var t=n(0);if(!t)return 1;var a=t[1],u=t[2];switch(a[0]){case 0:var f=0;break;case 1:f=1-a[1][1];break;default:var i=a[1],v=mAt(a[2][2][2]),c=mAt(i[2]),A=fct();let r=v,e=c;f=uot(A,function(n){var t=[0,Aot[1]],a=[0,Aot[1]];return xot(sot(0),a,t,e,r)})}if(!f)return f;n=u}}function Qst(r){var e=Bst(r);return[0,,,,,e[46],,,e[47],,e[49],,e[54]]}function Cst(r){r:{e:{var e=r;n:for(;;){if("number"==typeof e)switch(e){case 0:return wcr;case 1:return gcr;default:throw gQ([0,xz,qcr],1)}switch(e[0]){case 0:throw gQ([0,xz,Icr],1);case 2:switch(e[1]){case 0:var n="z";break;case 1:n=Ccr;break;case 2:n=Hcr;break;case 3:n="n8";break;case 4:n="n16";break;case 5:n="n32";break;case 6:n="n64";break;case 7:n="I";break;case 8:n="i8";break;case 9:n="i16";break;case 10:n="i32";break;case 11:n="i64";break;case 12:n=Vcr;break;case 13:n="h";break;case 14:n=Lcr;break;case 15:n="t";break;case 16:n="B";break;case 17:n="E";break;case 18:n="P";break;default:n="R"}return[0,[0,0,n],0];case 3:break r;case 4:break e;case 5:var t=e[1];return"number"!=typeof t&&10===t[0]?[0,Ncr,[0,t[1],0]]:[0,Tcr,[0,t,0]];case 6:return[0,Fcr,[0,e[1],0]];case 7:var a=e[1];return a?[0,Mcr,a]:Pcr;case 8:break n;case 9:throw gQ([0,kz,"typ_hash: Only supports serializable data"],1);case 10:return[0,$cr,[0,e[1],0]];case 12:return[0,Kcr,[0,e[1],0]];default:e=Xct(e)}}for(var u=e[4],f=e[1],i=e[3],v=e[5],c=e[2];;){if(!i){var A=QY(u,v);switch(c){case 0:var o="";break;case 1:o="p";break;default:o=Ucr}if(f)switch(f[1]){case 0:var s="q";break;case 1:s=Gcr;break;default:s="C"}else s="";return[0,[0,[1,G0(u)],"F"+s+o],A]}var b=i[2];if(0!==i[1][2])throw gQ([0,xz,xcr],1);i=b}}var l=e[1],B=H0(function(r){return r[2]},l);return[0,[0,[0,H0(function(r){return r[1]},l)],Ecr],B]}var j=e[2],k=e[3],p=e[1],m=H0(function(r){return mAt(r[2])},j);switch(p){case 0:var d=Dcr;break;case 1:d="ra";break;case 2:d="rx";break;case 3:d="rm";break;default:d="rs"}var _=H0(function(r){var e=cAt(r[2])?ycr:"";return r[1]+e},j);return[0,[0,[0,QY(H0(function(r){return r[1]},k),_)],d],m]}function Hst(r){return nh+F1("",r)+aI}function Vst(r,e){var n=r[2],t=r[1];if("number"==typeof t)switch(t){case 0:if(0===e)return n;throw gQ([0,xz,Ocr],1);case 1:if(e&&!e[2])return n+e[1];throw gQ([0,xz,Rcr],1);default:return n+Hst(e)}if(0===t[0])return n+nh+F1(Qcr,Z0(function(r,e){return r+cK+e},t[1],e))+aI;var a=t[1];if(a<=G0(e))var u=v1(a,e),f=[0,i1(a,e),u];else f=[0,e,0];var i=f[1],v=Hst(f[2]);return n+Hst(i)+v}function Lst(r,e){return kQ+r+rI+e}function zst(r){return"!"+r}function Sst(r){var e=U2([0,nH]),n=[0,e[1]],t=Kut(0),a=[0,Uut[1]];if(0!==function r(u){var f=e[18].call(null,u,n[1]);if(f)return f[1];var i=t(0);n[1]=e[2].call(null,u,i,n[1]);var v=Cst(u),c=v[1],A=H0(r,v[2]);return a[1]=Uut[2].call(null,i,[0,c,A],a[1]),i}(r))throw gQ([0,xz,Hnr],1);var u=a[1],f=[0,Uut[1]];function i(r){return Uut[17].call(null,r,f[1])}Uut[23].call(null,function(r,e){return f[1]=Uut[2].call(null,r,0,f[1]),0},u);for(var v=[0,1],c=[0,0];!c[1];){let r=Uut[39].call(null,u);var A=function(r){var e=r[2],n=r[1],t=e[1],a=H0(i,e[2]);return[0,n,[0,i(n),t,a]]};let e=A;var o=U2([0,nH]),s=[0,o[1]],b=Kut(0);let n=o,t=s,a=b,k=function(n){return d0(e,r)};var l=function(r){var e=r[2],u=r[1],f=n[18].call(null,e,t[1]);if(f)return[0,u,f[1]];var i=a(0);return t[1]=n[2].call(null,e,i,t[1]),[0,u,i]};let p=l;var B=Uut[43].call(null,function(r){return d0(p,k)}),j=b(0);if(v[1]>j)throw gQ([0,xz,Qnr],1);c[1]=j===v[1]?1:0,v[1]=j,f[1]=B}if(0!==i(0))throw gQ([0,xz,Cnr],1);var k=Out(i,u),p=[0,Uut[1]];function m(r){return Uut[17].call(null,r,p[1])}var d=Kut(0);if(function r(e){if(Uut[18].call(null,e,p[1]))return 0;var n=p[1],t=d(0);return p[1]=Uut[2].call(null,e,t,n),L0(r,Uut[17].call(null,e,k)[2])}(0),0!==m(0))throw gQ([0,xz,Rnr],1);var _=Out(m,k),h=[0,Uut[1]];function x(r){return r?[0,r[1]+1|0]:Onr}function y(r){return h[1]=Uut[4].call(null,r,x,h[1]),0}y(0),Uut[23].call(null,function(r,e){return L0(y,e[2])},_);var w=h[1],g=Uut[39].call(null,_);function q(r){var e=r[1];return 0!==r[2][2]&&1>>1|0)+1|0}function mbt(r){return pbt($Y(r))}function dbt(r){return 0===r?0:0r)return MY("make_nat");var e=PL(r);return QL(e,0,r),e}function xbt(r,e,n){var t=PL(n);return dQ(t,0,r,e,n),t}function ybt(r,e,n){var t=TL(r,e,n);return 0===FL(hbt(1),0,1,r,e,t)?1:0}function wbt(r){if(0>r)return MY("nat_of_int");var e=hbt(1);return 0===r||rz(e,0,r),e}LC._nat={deserialize:zL,serialize:LL,hash:SL};var gbt=hbt(2);function qbt(r,e){var n=YL(r,e);return uz(H6(WAr),n)}function Ibt(r,e){var n=[0,0],t=[0,0];for(rz(e,0,r);n[1]++,WL(e,n[1]);)HL(e,n[1],2,e,n[1]-1|0,1,e,0);for(;;){if(!(t[1]<(n[1]-1|0)&&ZL(e,t[1])))return[0,n[1]-2|0,t[1]];t[1]++}}function Dbt(r){var e=TL(r,0,XL(r));if(1===e)var n=qbt(r,0);else{var t=[0,e+1|0],a=PL(t[1]),u=hbt(t[1]),f=hbt(2);if(214748364=0)for(var b=0;;){if(48!==BL(n,b))throw o[1]=b,gQ(PY,1);var l=b+1|0;if(s===b)break;b=l}}catch(b){var B=NL(b);if(B!==PY)throw gQ(B,0)}return T1(n,o[1],AV(n)-o[1]|0)}rz(gbt,0,1e9);var Ebt=[0,0,hbt(1)],Nbt=[0,1,wbt(1)];function Tbt(r){var e=XL(r[2]);return TL(r[2],0,e)}function Fbt(r){var e=XL(r[2]),n=TL(r[2],0,e);return(32*n|0)-KL(r[2],n-1|0)|0}function Mbt(r){var e=Tbt(r),n=xbt(r[2],0,e);return[0,0|-r[1],n]}function Pbt(r){var e=Tbt(r),n=xbt(r[2],0,e);return[0,0===r[1]?0:1,n]}function Ubt(r,e){if(0===r[1]&&0===e[1])return 0;if(r[1]>>0)+1,v=PL(u+1),c=n-1;c>=u;c--){var A=i===nf?r.data[e+c]>>>0:GL(r.data[e+c]>>>0,r.data[e+c-1]>>>0,i)[0];for(QL(v,0,u+1),HL(v,0,u+1,t,a,u,CL([A]),0),VL(r,e+c-u,u+1,v,0,u+1,1);0!==r.data[e+c]||FL(r,e+c-u,u,t,a,u)>=0;)A+=1,VL(r,e+c-u,u+1,t,a,u,1);r.data[e+c]=A}RL(r,e,u,CL([0]),0,f),RL(t,a,u,CL([0]),0,f)}(o,0,c,e[2],0,t),dQ(A,0,o,t,c-t|0);var s=1-ybt(o,0,t);if(i&&s){var b=xbt(e[2],0,t);return VL(b,0,t,o,0,t,1),rz(A,v-1|0,0),pQ(A,0,v,1),[0,[0,0|-e[1],A],[0,1,b]]}i&&rz(A,v-1|0,0);var l=[0,s?1:0,xbt(o,0,t)];return[0,[0,ybt(A,0,v)?0:KC(r[1],e[1]),A],l]}var Lbt=Cbt(_bt),zbt=Lbt[2];function Sbt(r){var e=1===Tbt(r)?1:0;if(e){var n=FL(r[2],0,1,zbt,0,1);if(-1!==n)return 0===n&&-1===r[1]?1:0;var t=1}else t=e;return t}function Zbt(r){try{var e,n=r[2],t=1===TL(n,0,XL(n))?1:0,a=(t?ZL(n,0):t)?function(r,e){return r.data[e]}(n,0):FY("int_of_nat");return-1===r[1]?0|-a:a}catch(e){var u=NL(e);if(u[1]===jz)return Gbt(r,Lbt)?_bt:FY("int_of_big_int");throw gQ(u,0)}}function Wbt(r){var e=r;if(OH(e,0))return Ebt;if(ZH(e,0)){var n=PL(1);return ez(n,0,e),[0,1,n]}var t=PL(1);return ez(t,0,0|-e),[0,-1,t]}function Xbt(r){1=e)for(var j=e;;){var k=BL(r,j);r:{if(32<=k){if(93<=k){if(95===k&&e>>0)break r}else if(11<=k){if(13===k)break r}else if(9<=k)break r;if(48<=k&&k<=(47+UY(a,10)|0))var p=k+dc|0;else if(65<=k&&k<=((65+a|0)-11|0))p=k+-55|0;else if(97<=k&&k<=((97+a|0)-11|0))p=k-87|0;else p=FY("invalid digit");B[1]=KC(B[1],a)+p|0,b[1]++}var m=(b[1]===i?1:0)||(j===l?1:0);if(m?1-(0===b[1]?1:0):m){rz(o,0,B[1]);var d=v===c[1]?c[1]-1|0:c[1];if(d>=1)for(var _=1;;){rz(o,_,0);var h=_+1|0;if(d===_)break;_=h}HL(o,0,A[1],s,0,c[1],u,b[1]-1|0),dQ(s,0,o,0,A[1]),c[1]=TL(o,0,A[1]),A[1]=UY(v,c[1]+1|0),B[1]=0,b[1]=0}var x=j+1|0;if(l===j)break;j=x}var y=PL(c[1]);return dQ(y,0,o,0,c[1]),ybt(y,0,XL(y))?Ebt:[0,t,y]}function elt(r,e,n,t){if(n<1&&FY(ror),2>n)return rlt(r,e,n,t,10);var a=BL(r,e),u=BL(r,e+1|0);r:if(48===a){e:{n:{if(89<=u){if(98!==u){if(rh===u)break n;if(WP===u)break e;break r}}else if(66!==u){if(79===u)break n;if(88<=u)break e;break r}return rlt(r,e+2|0,n-2|0,t,2)}return rlt(r,e+2|0,n-2|0,t,8)}return rlt(r,e+2|0,n-2|0,t,16)}return rlt(r,e,n,t,10)}function nlt(r,e){var n=dbt(e);if(-1===n)return MY("power_int_positive_int");if(0===n)return Nbt;var t=$Y(r);r:if(0===e||1===t)a=wbt(1);else{if(0===t){var a=wbt(0);break r}if(0>e){var a=MY("power_base_int");break r}var u=hbt(33),f=Ibt(t,u)[1],i=IH(e,f+1|0),v=vL(e,f+1|0);if(0>=i){a=xbt(u,v-1|0,1);break r}var c=e===PF?i:i+1|0,A=hbt(c),o=hbt(c),s=mbt(i)-2|0;if(dQ(A,0,u,f,1),s>=0)for(var b=s;;){var l=TL(A,0,c),B=UY(i,2*l|0);nz(o,0,B,A,0,l);var j=B+1|0;0<(i&1<e)return MY("shift_left_big_int");if(0===e)return r;if(0===r[1])return r;var n=Tbt(r),t=PL(n+(((e+32|0)-1|0)/32|0)|0),a=e/32|0;QL(t,0,a),dQ(t,a,r[2],0,n);var u=e%32|0;return 0e)return MY("shift_right_towards_zero_big_int");if(0===e)return r;if(0===r[1])return r;var n=Tbt(r),t=e/32|0,a=e%32|0;if(n<=t)return Ebt;var u=n-t|0,f=PL(u);return dQ(f,0,r[2],t,u),0e)return MY("shift_right_big_int");if(0<=r[1])return alt(r,e);if(0<=e)if(0===e)var n=Ebt;else{var t=e/32|0,a=t+1|0,u=hbt(a);ez(u,t,1<=AV(r))return r;var e=iF+flt(T1(r,5,AV(r)-5|0));return T1(r,0,5)+e}function ilt(r){var e=z2(4);n3(e,function(r){return(255&r)<<24|(65280&r)<<8|(16711680&r)>>>8|(4278190080&r)>>>24}(k8n(w8n(r,0,AV(r),l8n))));var n=S2(e)+r,t=z2(2*AV(n)|0);function a(r){for(var e=r;;){var n=e[2],a=e[1];if(5>n)return e;var u=n-5|0,f=a>>>u|0;e3(t,25=A)var l=o<<5|A+-65;else if(50<=A&&55>=A)l=o<<5|A+-24;else{if(61!==A)throw gQ([0,kz,"Char out of base32 alphabet"],1);l=o}for(var B=[0,l,b];;){var j=B[2],k=B[1];if(8>j){f=s,i=B;break}var p=j-8|0;e3(u,k>>>p|0),B=[0,k&((1<AV(d))return xor;var _=T1(d,4,AV(d)-4|0),h=ilt(_);return r!==h?[1,uz(H6(yor),h)]:[0,_]}function clt(r){var e=Prt(jor,r);if(!e){var n=Prt("ic:",r);if(n){var t=vlt(n[1]);return 0===t[0]?[0,[2,t[1]]]:[1,t[1]]}var a=Prt("canister:",r);if(a)return[0,[3,a[1]]];var u=Prt("blob:file:",r);return u?[0,[4,u[1]]]:O1(r,58)?_or:[0,[1,iet(r)]]}var f=e[1],i=O1(f,47);if(!i)return f!==Zr&&"⛔"!==f?[0,[0,[0,f,""]]]:dor;var v=i[1];if(f!==Zr&&"⛔"!==f){var c=T1(f,0,v),A=T1(f,v+1|0,AV(f)-(v+1|0)|0);return E0(Prt(por,iet(A)))?[1,uz(H6(mor),A)]:[0,[0,[0,c,A]]]}return kor}Cbt(PF),Cbt(-2147483647);var Alt=[0];function olt(r,e){var n=r[2][1+(e>>>12|0)];if(n===Alt)return r[1];var t=n[1+(e>>>8&15)];if(t===kQ)return r[1];var a=e&LK;return 0<(oV(t,a>>>3|0)&1<<(7&a))?1:0}var slt=[0];function blt(r,e){var n=r[2][1+(e>>>12|0)];if(n===slt)var t=r[1];else{var a=n[1+((e>>>4|0)&LK)];t=a===slt?r[1]:a[1+(15&e)]}return t?[0,,t]:925480876}function llt(r){var e=Jct(r);if("number"==typeof e){if(1===e)return Tor}else if(8===e[0]){var n=e[4],t=e[2],a=e[1],u=G0(e[5]);return[0,a,t,G0(n),u]}throw gQ([0,kz,"call_conv_of_typ "+yst(r)],1)}function Blt(r){var e=r[4],n=r[3],t=r[1];switch(r[2]){case 0:var a="->";break;case 1:a="@>";break;default:a="#>"}var u=bst(t);return vz(H6(Nor),u,n,a,e)}function jlt(r,e,n,t,a){for(var u=n,f=a;;){var i=u=r[26])throw gQ([0,xz,For],1);var n=r[26]-e[1]|0;function t(e){return fz(r[17],e,n)}function a(e){return fz(r[19],e,n)}var u=e[1];return[0,t(r[1]),t(r[2]),t(r[3]),t(fz(r[19],r[4],n)),t(fz(r[19],r[5],n)),function(e){var n=a(e);return t(uz(r[6],n))},function(e){var n=a(e);return t(uz(r[7],n))},function(e,n){var u=a(n),f=a(e);return t(fz(r[8],f,u))},function(e,n){var u=a(n),f=a(e);return t(fz(r[9],f,u))},function(e,n){var u=a(n),f=a(e);return t(fz(r[10],f,u))},function(e,n){var u=a(n),f=a(e);return t(fz(r[11],f,u))},function(e,n){var u=a(n),f=a(e);return t(fz(r[12],f,u))},r[13],function(e){var n=a(e);return t(uz(r[14],n))},r[15],function(e,n){var u=a(n),f=a(e);return t(fz(r[16],f,u))},function(e,n){return fz(r[17],e,n)},function(e,n){return t(a(fz(r[18],e,n)))},function(e,n){return t(a(fz(r[19],e,n)))},function(e){return t(uz(r[20],e))},function(e){var n=a(e);return uz(r[21],n)},function(e){return t(uz(r[22],e))},function(e){var n=a(e);return uz(r[23],n)},function(e){var n=a(e);return mlt(uz(r[24],n))},function(e){var n=a(e);return mlt(uz(r[25],n))},u,function(e){return t(uz(r[27],e))},function(e){var n=a(e);return uz(r[28],n)}]}var xlt=hlt(_lt,[0,8]),ylt=hlt(_lt,[0,16]);function wlt(r){var e=D9n([0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26]]),n=e[3],t=e[8],a=e[9],u=e[15],f=e[17],i=e[20],v=e[46],c=e[47],A=e[1],o=e[2],s=e[4],b=e[5],l=e[7],B=e[10],j=e[11],k=e[12],p=e[13],m=e[14],d=e[16],_=e[18],h=e[19],x=e[21],y=e[22],w=e[23],g=e[24],q=e[25],I=e[26],D=e[27],E=e[28],N=e[29],T=e[30],F=e[31],M=e[32],P=e[33],U=e[34],G=e[35],$=e[36],K=e[37],O=e[38],R=e[39],Q=e[40],C=e[41],H=e[42],V=e[43],L=e[44],z=e[45],S=e[48],Z=e[49],W=e[50],X=e[51],J=e[52],Y=e[53],rr=e[54],er=e[55],nr=c(1);return[0,A,o,n,s,b,l,t,a,B,j,k,p,m,u,d,f,_,h,i,x,y,w,g,q,I,D,E,N,T,F,M,P,U,G,$,K,O,R,Q,C,H,V,L,z,v,c,S,Z,W,X,J,Y,rr,er,function(r){return t(n,r)},function(r){return fz(f,r,uz(v,-1))},function r(e,f){for(var v=e,c=f;;){if(OH(c,n))return nr;if(!OH(fz(u,c,nr),n))return a(v,r(v,t(c,nr)));var A=i(c,nr);v=a(v,v),c=A}},r[26],r[27],r[28]]}var glt=hlt(_lt,[0,32]),qlt=wlt(xlt),Ilt=wlt(ylt),Dlt=wlt(glt),Elt=wlt(_lt);function Nlt(r){var e=r[5],n=r[6];function t(e){return mlt(uz(r[8],e))}return[0,,,,,e,n,r[7],,,,r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31],,function(r,t){var a=uz(n,t);return uz(e,uz(n,r)%a)},function(r,t){var a=uz(n,t);return uz(e,Math.pow(uz(n,r),a))},t,t]}var Tlt=Nlt(g9n),Flt=Nlt(_9n);function Mlt(r){return mlt(-1===r[1]?iF+Dbt(r[2]):Dbt(r[2]))}var Plt=Cbt(KY),Ult=[0,1,Ebt,Nbt,Pbt,Mbt,Qbt,Hbt,function(r,e){var n=Tbt(r),t=Tbt(e),a=n+t|0,u=hbt(a);return n=0)for(var c=v;;){var A=TL(f,0,u),o=UY(u,2*A|0);if(QL(i,0,o),nz(i,0,o,f,0,A),0<(n&1<=t>>>0)switch(t){case 0:return elt(e,1,n-1|0,1);case 2:return elt(e,1,n-1|0,-1)}return elt(e,0,n,1)},Mlt,Mlt],Glt=Ult[2],$lt=Ult[17],Klt=[0,0,Glt,Ult[3],Ult[4],Ult[5],Ult[6],function(r,e){var n=fz(Ult[7],r,e);if(fz($lt,n,Glt))return n;throw gQ([0,kz,"Nat.sub"],1)},Ult[8],Ult[9],Ult[10],Ult[11],Ult[12],Ult[13],Ult[14],Ult[15],Ult[16],$lt,Ult[18],Ult[19],Ult[20],Ult[21],Ult[22],Ult[23],Ult[24],Ult[25],function(r){if(fz($lt,r,Glt))return r;throw gQ([0,kz,"Nat.of_big_int"],1)},Ult[27],Ult[28],Ult[29]];function Olt(r,e){function n(n){var t=uz(r[25],n);return uz(e[59],t)}function t(n){var t=uz(e[60],n),a=r[1]&&$bt(nlt(2,e[58]-1|0),t)?Hbt(t,nlt(2,e[58])):t;return uz(r[26],a)}function a(e){var a=t(n(e));if(fz(r[12],a,e))return e;throw gQ([0,kz,"value out of bounds"],1)}function u(r,e){return t(uz(r,n(e)))}function f(r,e,a){var u=n(a);return t(fz(r,n(e),u))}var i=e[56],v=e[24],c=e[22],A=e[23],o=e[14],s=e[15],b=e[16],l=e[17],B=r[1],j=r[2],k=r[3],p=r[10],m=r[12],d=r[13],_=r[14],h=r[15],x=r[16],y=r[17],w=r[18],g=r[19],q=r[21],I=r[23],D=r[25],E=r[28],N=r[29];var T=r[1]?e[18]:e[19],F=e[20],M=e[21],P=e[6],U=e[7],G=e[8];return[0,B,j,k,function(e){return a(uz(r[4],e))},function(e){return a(uz(r[5],e))},function(e,n){return a(fz(r[6],e,n))},function(e,n){return a(fz(r[7],e,n))},function(e,n){return a(fz(r[8],e,n))},function(e,n){return a(fz(r[9],e,n))},p,function(e,n){return a(fz(r[11],e,n))},m,d,_,h,x,y,w,g,function(e){return a(uz(r[20],e))},q,function(e){return a(uz(r[22],e))},I,function(e){return a(uz(r[24],e))},D,function(e){return a(uz(r[26],e))},function(e){return a(uz(r[27],e))},E,N,function(r){return u(i,r)},function(r){return u(v,r)},function(r){return u(c,r)},function(r){return u(A,r)},function(r,e){return f(o,r,e)},function(r,e){return f(s,r,e)},function(r,e){return f(b,r,e)},function(r,e){return f(l,r,e)},function(r,e){return f(T,r,e)},function(r,e){return f(F,r,e)},function(r,e){return f(M,r,e)},function(r){return t(uz(e[59],r))},function(r,e){return f(P,r,e)},function(r,e){return f(U,r,e)},function(r,e){return f(G,r,e)},function(n,t){if(fz(r[17],t,r[2]))return f(e[57],n,t);throw gQ([0,kz,"negative exponent"],1)}]}var Rlt=Olt(Klt,qlt),Qlt=Olt(Klt,Ilt),Clt=Olt(Klt,Dlt),Hlt=Olt(Klt,Elt),Vlt=Olt(Ult,qlt),Llt=Olt(Ult,Ilt),zlt=Olt(Ult,Dlt),Slt=Olt(Ult,Elt),Zlt=Flt[34],Wlt=Flt[35],Xlt=Flt[6],Jlt=Tlt[34],Ylt=Tlt[25],rBt=Tlt[35],eBt=Tlt[6],nBt=Tlt[5],tBt=Flt[33],aBt=Flt[32],uBt=Flt[23],fBt=Flt[14],iBt=Flt[13],vBt=Flt[12],cBt=Flt[11],ABt=Flt[7],oBt=Flt[5],sBt=Tlt[33],bBt=Tlt[32],lBt=Tlt[30],BBt=Tlt[29],jBt=Tlt[28],kBt=Tlt[27],pBt=Tlt[26],mBt=Tlt[24],dBt=Tlt[23],_Bt=Tlt[22],hBt=Tlt[21],xBt=Tlt[20],yBt=Tlt[19],wBt=Tlt[18],gBt=Tlt[17],qBt=Tlt[16],IBt=Tlt[15],DBt=Tlt[14],EBt=Tlt[13],NBt=Tlt[12],TBt=Tlt[11],FBt=Tlt[7],MBt=dut([0,z1]);function PBt(r){var e=Z1(r);function n(r){for(var e=tH(2),n=0;;){if(0===n)var t=Ert(r/16|0);else{if(1!==n)throw gQ([0,xz,L8],1);t=Ert(r%16|0)}mC(e,n,t);var a=n+1|0;if(1===n)return"\\"+_L(e);n=a}}return F1("",j1(function(r){return d0(n,e)}))}function UBt(r,e,n){return[20,[0,0,0,r,e],n]}function GBt(r,e,n,t){return[20,[0,[0,r],1,e,n],t]}function $Bt(r){throw gQ([0,kz,"Value."+r],1)}function KBt(r){return"number"==typeof r?0:$Bt("as_null")}function OBt(r){return"number"!=typeof r&&0===r[0]?r[1]:$Bt("as_bool")}function RBt(r){return"number"!=typeof r&&1===r[0]?r[1]:$Bt("as_int")}function QBt(r){return"number"!=typeof r&&2===r[0]?r[1]:$Bt("as_int8")}function CBt(r){return"number"!=typeof r&&3===r[0]?r[1]:$Bt("as_int16")}function HBt(r){return"number"!=typeof r&&4===r[0]?r[1]:$Bt("as_int32")}function VBt(r){return"number"!=typeof r&&5===r[0]?r[1]:$Bt("as_int64")}function LBt(r){return"number"!=typeof r&&6===r[0]?r[1]:$Bt("as_nat8")}function zBt(r){return"number"!=typeof r&&7===r[0]?r[1]:$Bt("as_nat16")}function SBt(r){return"number"!=typeof r&&8===r[0]?r[1]:$Bt("as_nat32")}function ZBt(r){return"number"!=typeof r&&9===r[0]?r[1]:$Bt("as_nat64")}function WBt(r){return"number"!=typeof r&&10===r[0]?r[1]:$Bt("as_float")}function XBt(r){return"number"!=typeof r&&11===r[0]?r[1]:$Bt("as_float32")}function JBt(r){return"number"!=typeof r&&12===r[0]?r[1]:$Bt("as_char")}function YBt(r){return"number"!=typeof r&&13===r[0]?r[1]:$Bt("as_text")}function rjt(r){return"number"!=typeof r&&14===r[0]?r[1]:$Bt("as_blob")}function ejt(r){return"number"!=typeof r&&24===r[0]?r[1]:$Bt("as_iter")}function njt(r){return"number"!=typeof r&&18===r[0]?r[1]:$Bt(ksr)}function tjt(r){return"number"!=typeof r&&17===r[0]?[0,r[1],r[2]]:$Bt(jsr)}function ajt(r){return"number"!=typeof r&&15===r[0]?r[1]:$Bt(Bsr)}function ujt(r){if("number"==typeof r||15!==r[0]||r[1])return $Bt("as_unit")}function fjt(r){if("number"!=typeof r&&15===r[0]){var e=r[1];if(e){var n=e[2];if(n&&!n[2])return[0,e[1],n[1]]}}return $Bt("as_pair")}function ijt(r){return"number"!=typeof r&&19===r[0]?r[1]:$Bt(lsr)}function vjt(r){return"number"!=typeof r&&20===r[0]?[0,r[1],r[2]]:$Bt(bsr)}function cjt(r){return"number"!=typeof r&&23===r[0]?r[1]:$Bt(osr)}function Ajt(r){return"number"!=typeof r&&25===r[0]?r[1]:$Bt("as_weak")}function ojt(r,e){r:{var n=r,t=e;e:for(;;){if(n===t)return 0;if("number"==typeof n)break r;switch(n[0]){case 1:if("number"==typeof t)break r;if(1===t[0])return fz(Ult[18],n[1],t[1]);break r;case 2:if("number"==typeof t)break r;if(2===t[0])return fz(Vlt[18],n[1],t[1]);break r;case 3:if("number"==typeof t)break r;if(3===t[0])return fz(Llt[18],n[1],t[1]);break r;case 4:if("number"==typeof t)break r;if(4===t[0])return fz(zlt[18],n[1],t[1]);break r;case 5:if("number"==typeof t)break r;if(5===t[0])return fz(Slt[18],n[1],t[1]);break r;case 6:if("number"==typeof t)break r;if(6===t[0])return fz(Rlt[18],n[1],t[1]);break r;case 7:if("number"==typeof t)break r;if(7===t[0])return fz(Qlt[18],n[1],t[1]);break r;case 8:if("number"==typeof t)break r;if(8===t[0])return fz(Clt[18],n[1],t[1]);break r;case 9:if("number"==typeof t)break r;if(9===t[0])return fz(Hlt[18],n[1],t[1]);break r;case 15:if("number"==typeof t)break r;if(15===t[0])return l1(ojt,n[1],t[1]);break r;case 16:if("number"==typeof t)break r;if(16!==t[0])break r;n=n[1],t=t[1];break;case 17:if("number"==typeof t)break r;if(17!==t[0])break r;var a=YC(n[1],t[1]),u=t[2],f=n[2];if(0!==a)return a;n=f,t=u;break;case 18:break e;case 19:if("number"==typeof t)break r;if(19===t[0])return MBt[34].call(null,ojt,n[1],t[1]);break r;case 21:if("number"==typeof t)break r;if(21===t[0])throw gQ([0,kz,Uor],1);break r;case 22:if("number"==typeof t)break r;if(22===t[0])throw gQ([0,kz,Gor],1);break r;case 23:if("number"==typeof t)break r;if(23!==t[0])break r;n=n[1][1],t=t[1][1];break;default:break r}}if("number"!=typeof t&&18===t[0])for(var i=t[1],v=n[1],c=0;;){var A=c===i.length-1?1:0;if(c===v.length-1)return A?0:-1;if(A)return 1;var o=gC(i,c)[c+1],s=ojt(gC(v,c)[c+1],o);if(0!==s)return s;c=c+1|0}}return nH(n,t)}var sjt=[0,0];function bjt(r){var e=sjt[1],n=uz(H6(Asr),e);return sjt[1]=sjt[1]+1|0,n}function ljt(r){return r?csr:""}function Bjt(r,e){return w7n(r)(vsr)}function jjt(r,e){return w7n(r)(isr)}function kjt(r,e,n){var t=n[2],a=Xct(n[1]);if("number"==typeof a&&!a)return M5n(e,Kor);if("number"==typeof t)return M5n(e,Oor);switch(t[0]){case 0:return M5n(e,t[1]?Ror:Qor);case 1:var u=t[1];if(fz(Ult[17],u,Ult[2]))return M5n(e,uz(Ult[29],u));break;case 2:var f=t[1];if(OH(f,Vlt[2]))return M5n(e,uz(Vlt[29],f));break;case 3:var i=t[1];if(OH(i,Llt[2]))return M5n(e,uz(Llt[29],i));break;case 4:var v=t[1];if(OH(v,zlt[2]))return M5n(e,uz(zlt[29],v));break;case 5:var c=t[1];if(OH(c,Slt[2]))return M5n(e,uz(Slt[29],c));break;case 6:return M5n(e,uz(Rlt[29],t[1]));case 7:return M5n(e,uz(Qlt[29],t[1]));case 8:return M5n(e,uz(Clt[29],t[1]));case 9:return M5n(e,uz(Hlt[29],t[1]));case 10:return M5n(e,Jlt(t[1]));case 11:return M5n(e,Zlt(t[1]));case 12:return M5n(e,Crt(39,[0,t[1],0],39));case 13:return M5n(e,Crt(34,Ort(t[1]),34));case 14:var A=t[1];return"number"!=typeof a&&3===a[0]&&1===a[1]?M5n(e,Crt(96,Ort(ilt(A)),96)):M5n(e,cs+PBt(A)+cs);case 15:var o=t[1];if("number"==typeof a||7!==a[0])s=H0(function(r){return[0,1,r]},o);else var s=o1(a[1],o);var b=1===G0(o)?Cor:"",l=function(e,n){return pjt(r,e,n)},B=[0,Bjt];return iz(w7n(e)(Hor),function(r,e){return m7n(B,l,r,e)},s,b);case 18:var j=t[1];if("number"==typeof a||5!==a[0])k=1;else var k=a[1];var p=function(e,n){return pjt(r,e,n)},m=[0,Bjt],d=H0(function(r){return[0,k,r]},e2(j)),_="number"==typeof k?"":10===k[0]?Vor:"";return vz(w7n(e)(Lor),M5n,_,function(r,e){return m7n(m,p,r,e)},d);case 19:var h=t[1];if(0===r)return M5n(e,"{...}");if("number"==typeof a||3!==a[0])y=function(r){return $or},w="";else var x=a[2],y=function(r){return MAt(r,x)},w=sst(a[1]);var g=function(e,n){return function(r,e,n){var t=n[1],a=[0,n[2],n[3]];return iz(w7n(e)(Zor),t,function(e,n){return pjt(r,e,n)},a)}(r,e,n)},q=[0,jjt],I=u1(function(r){var e=r[1],n=r[2],t=y(e);return t?[0,[0,e,t[1],n]]:0},MBt[10].call(null,h));return vz(w7n(e)(zor),M5n,w,function(r,e){return m7n(q,g,r,e)},I);case 20:return M5n(e,"");case 22:return M5n(e,"")}return fz(w7n(e)(Sor),function(e,n){return pjt(r,e,n)},[0,a,t])}function pjt(r,e,n){r:{e:{n:{var t=n;t:for(;;){var a=t[2],u=Xct(t[1]);if("number"==typeof u&&!u)return M5n(e,Wor);if("number"!=typeof a)switch(a[0]){case 1:return M5n(e,uz(Ult[29],a[1]));case 2:var f=a[1],i=uz(Vlt[29],f);return M5n(e,ljt(fz(Vlt[15],f,Vlt[2]))+i);case 3:var v=a[1],c=uz(Llt[29],v);return M5n(e,ljt(fz(Llt[15],v,Llt[2]))+c);case 4:var A=a[1],o=uz(zlt[29],A);return M5n(e,ljt(fz(zlt[15],A,zlt[2]))+o);case 5:var s=a[1],b=uz(Slt[29],s);return M5n(e,ljt(fz(Slt[15],s,Slt[2]))+b);case 16:break r;case 17:break e;case 21:break n;case 23:var l=a[1];if("number"==typeof u||10!==u[0])B=1;else var B=u[1];t=[0,B,l[1]];continue;case 25:break t}return kjt(r,e,[0,u,a])}var j=a[1];if("number"==typeof u||12!==u[0])k=1;else var k=u[1];var p=i5n(j,0),m=p?[16,p[1]]:0;return fz(w7n(e)(tsr),function(e,n){return kjt(r,e,n)},[0,[6,k],m])}var d=a[1],_=d[1];if(d[2]){var h=d[2];if("number"==typeof u||9!==u[0])x=1;else var x=u[3];var y=G0(h);return iz(w7n(e)(esr),y,function(e,n){return mjt(r,e,n)},[0,x,_])}if("number"==typeof u||9!==u[0])w=1;else var w=u[3];return fz(w7n(e)(nsr),function(e,n){return mjt(r,e,n)},[0,w,_])}var g=a[1],q=a[2];if("number"!=typeof q&&15===q[0]&&!q[1])return uz(w7n(e)(Jor),g);var I=a[2];if("number"==typeof u||4!==u[0])D=1;else var D=UAt(g,u[1]);if("number"!=typeof I&&15===I[0]){var E=[0,D,[15,I[1]]];return iz(w7n(e)(Yor),g,function(e,n){return pjt(r,e,n)},E)}return iz(w7n(e)(rsr),g,function(e,n){return pjt(r,e,n)},[0,D,I])}var N=a[1];if("number"==typeof u||6!==u[0])T=1;else var T=u[1];return fz(w7n(e)(Xor),function(e,n){return kjt(r,e,n)},[0,T,N])}function mjt(r,e,n){var t=n[1],a=n[2][1];if(!a)return M5n(e,usr);var u=a[1];if(0===u[0])return kjt(r,e,[0,t,u[1]]);var f=[0,t,u[1]];return fz(w7n(e)(asr),function(e,n){return kjt(r,e,n)},f)}function djt(r,e,n){return wrt(function(e){return function(n){return pjt(r,e,n)}},[0,e,n])}function _jt(r){var e=[0,LAt[1]];return function r(n){r:{e:{var t=n;n:for(;;){var a=LAt[31].call(null,t,e[1]);if(a)var u=a;else{e[1]=LAt[2].call(null,t,e[1]);var f=Xct(t);if("number"==typeof f){if(1===f)return 1;break r}switch(f[0]){case 2:switch(f[1]){case 12:case 13:case 0:case 1:case 2:case 7:case 14:case 15:case 16:case 18:return 1;case 17:case 19:break r;default:u=1}break;case 3:break e;case 4:break n;case 5:t=mAt(f[1]);continue;case 7:return X0(r,f[1]);case 6:case 12:t=f[1];continue;default:break r}}return u}for(var i=f[1];;){if(!i)return 1;var v=i[2],c=r(i[1][2]);if(!c)return c;i=v}}if(!f[1])for(var A=f[2];;){if(!A)return 1;var o=A[2],s=r(mAt(A[1][2]));if(!s)return s;A=o}}return 0}(r)}function hjt(r){var e=43===BL(r,0)?1:0;if(e)var n=e;else{var t=45===BL(r,0)?1:0;if(t)n=t;else n=(63===BL(r,0)?1:0)||(35===BL(r,0)?1:0)}return n?nh+r+aI:r}function xjt(r,e){return(r?Ksr:"")+e}function yjt(r,e){var n=Xct(r);if("number"!=typeof n)switch(n[0]){case 2:switch(n[1]){case 0:if("number"==typeof e)return psr;break;case 1:if("number"!=typeof e&&0===e[0])return e[1]?msr:dsr;break;case 2:if("number"!=typeof e&&1===e[0])return uz(Ult[28],e[1]);break;case 3:if("number"!=typeof e&&6===e[0])return uz(Rlt[28],e[1]);break;case 4:if("number"!=typeof e&&7===e[0])return uz(Qlt[28],e[1]);break;case 5:if("number"!=typeof e&&8===e[0])return uz(Clt[28],e[1]);break;case 6:if("number"!=typeof e&&9===e[0])return uz(Hlt[28],e[1]);break;case 7:if("number"!=typeof e&&1===e[0]){var t=e[1],a=uz(Ult[28],t);return xjt(fz(Ult[15],t,Ult[2]),a)}break;case 8:if("number"!=typeof e&&2===e[0]){var u=e[1],f=uz(Vlt[28],u);return xjt(fz(Vlt[15],u,Vlt[2]),f)}break;case 9:if("number"!=typeof e&&3===e[0]){var i=e[1],v=uz(Llt[28],i);return xjt(fz(Llt[15],i,Llt[2]),v)}break;case 10:if("number"!=typeof e&&4===e[0]){var c=e[1],A=uz(zlt[28],c);return xjt(fz(zlt[15],c,zlt[2]),A)}break;case 11:if("number"!=typeof e&&5===e[0]){var o=e[1],s=uz(Slt[28],o);return xjt(fz(Slt[15],o,Slt[2]),s)}break;case 12:if("number"!=typeof e&&10===e[0])return rBt(e[1]);break;case 13:if("number"!=typeof e&&11===e[0])return Wlt(e[1]);break;case 14:if("number"!=typeof e&&12===e[0])return hb+Qrt([0,e[1],0])+hb;break;case 15:if("number"!=typeof e&&13===e[0])return cs+e[1]+cs;break;case 16:if("number"!=typeof e&&14===e[0])return cs+PBt(e[1])+cs;break;case 18:if("number"!=typeof e&&14===e[0])return ilt(e[1])}break;case 3:if("number"!=typeof e&&19===e[0]){var b=e[1],l=F1(_sr,H0(function(r){var e=MBt[17].call(null,r[1],b),n=r[2];if("number"==typeof n||10!==n[0])var t=e,a=n;else{var u=n[1];t=cjt(e)[1],a=u}var f=yjt(a,t),i=r[1];return fz(H6($sr),i,f)},n[2]));return uz(H6(hsr),l)}break;case 4:if("number"!=typeof e&&17===e[0]){var B=e[2],j=e[1];r:{e:{for(var k=n[1];;){if(!k)break e;var p=k[1],m=k[2];if(j===p[1])break;k=m}var d=[0,p];break r}d=0}if(!d)throw gQ([0,xz,gsr],1);var _=d[1],h=_[2];if("number"!=typeof h&&7===h[0]){if(!h[1])return uz(H6(ysr),j);var x=yjt(h,B);return fz(H6(xsr),j,x)}var y=yjt(_[2],B);return fz(H6(wsr),j,y)}break;case 5:var w=n[1];if("number"!=typeof w&&10===w[0]){if("number"==typeof e)break;if(18!==e[0])break;var g=e[1],q=w[1];if(OH(g,[0]))return"[var]";var I=F1(qsr,H0(function(r){return yjt(q,cjt(r)[1])},e2(g)));return uz(H6(Isr),I)}if("number"!=typeof e&&18===e[0]){var D=F1(Dsr,H0(function(r){return yjt(w,r)},e2(e[1])));return uz(H6(Esr),D)}break;case 6:var E=n[1];if("number"==typeof e)return Nsr;if(16===e[0])return rr+hjt(yjt(E,e[1]));break;case 7:if("number"!=typeof e&&15===e[0]){var N=e[1],T=n[1],F=1===G0(N)?Tsr:"",M=F1(Fsr,Z0(yjt,T,N));return fz(H6(Msr),M,F)}break;case 12:if("number"!=typeof e&&25===e[0]){var P=n[1],U=i5n(e[1],0);if(!U)return"(weak _)";var G=hjt(yjt(P,U[1]));return uz(H6(Psr),G)}}throw vz(E6(function(r){return h7n(o3(k7n),r)},0,Usr[1]),function(r,e){return pjt(2,r,e)},[0,n,e],hst,n),gQ([0,xz,Gsr],1)}function wjt(r){switch(r){case 2:return function(r){var e=RBt(r);return uz(Klt[25],e)};case 3:return function(r){var e=LBt(r);return uz(Rlt[25],e)};case 4:return function(r){var e=zBt(r);return uz(Qlt[25],e)};case 5:return function(r){var e=SBt(r);return uz(Clt[25],e)};case 6:return function(r){var e=ZBt(r);return uz(Hlt[25],e)};case 7:return function(r){var e=RBt(r);return uz(Ult[25],e)};case 8:return function(r){var e=QBt(r);return uz(Vlt[25],e)};case 9:return function(r){var e=CBt(r);return uz(Llt[25],e)};case 10:return function(r){var e=HBt(r);return uz(zlt[25],e)};case 11:return function(r){var e=VBt(r);return uz(Slt[25],e)};case 14:return function(r){return Cbt(JBt(r))};default:throw gQ([0,kz,"Value.as_big_int: "+yst([2,r])],1)}}function gjt(r){throw gQ([0,kz,"operator called for None"],1)}function qjt(r,e,n,t,a){var u=e[4],f=e[3],i=e[2],v=e[1];switch(a){case 7:return function(e){return[1,uz(r,RBt(e))]};case 8:return function(r){return[2,uz(v,QBt(r))]};case 9:return function(r){return[3,uz(i,CBt(r))]};case 10:return function(r){return[4,uz(f,HBt(r))]};case 11:return function(r){return[5,uz(u,VBt(r))]};case 12:return function(r){return[10,uz(n,WBt(r))]};case 13:return function(r){return[11,uz(t,XBt(r))]};default:throw gQ([0,kz,Kbr],1)}}function Ijt(r,e){if("number"==typeof e){if(1===e)return gjt}else if(2===e[0]){var n=e[1];switch(r){case 0:return qjt(function(r){return r},[0,function(r){return r},function(r){return r},function(r){return r},function(r){return r}],function(r){return r},function(r){return r},n);case 1:return qjt(Ult[5],[0,Vlt[5],Llt[5],zlt[5],Slt[5]],dBt,uBt,n);default:var t=Slt[30],a=zlt[30],u=Llt[30],f=Vlt[30],i=Hlt[30],v=Clt[30],c=Qlt[30],A=Rlt[30];switch(n){case 3:return function(r){return[6,A(LBt(r))]};case 4:return function(r){return[7,c(zBt(r))]};case 5:return function(r){return[8,v(SBt(r))]};case 6:return function(r){return[9,i(ZBt(r))]};case 8:return function(r){return[2,f(QBt(r))]};case 9:return function(r){return[3,u(CBt(r))]};case 10:return function(r){return[4,a(HBt(r))]};case 11:return function(r){return[5,t(VBt(r))]};default:throw gQ([0,kz,Obr],1)}}}throw gQ([0,kz,$br],1)}function Djt(r,e){var n=r[8],t=r[7],a=r[6],u=r[5],f=r[4],i=r[3],v=r[2],c=r[1];switch(e){case 3:return function(r,e){var n=LBt(e);return[6,fz(c,LBt(r),n)]};case 4:return function(r,e){var n=zBt(e);return[7,fz(v,zBt(r),n)]};case 5:return function(r,e){var n=SBt(e);return[8,fz(i,SBt(r),n)]};case 6:return function(r,e){var n=ZBt(e);return[9,fz(f,ZBt(r),n)]};case 8:return function(r,e){var n=QBt(e);return[2,fz(u,QBt(r),n)]};case 9:return function(r,e){var n=CBt(e);return[3,fz(a,CBt(r),n)]};case 10:return function(r,e){var n=HBt(e);return[4,fz(t,HBt(r),n)]};case 11:return function(r,e){var t=VBt(e);return[5,fz(n,VBt(r),t)]};default:throw gQ([0,kz,Ubr],1)}}function Ejt(r,e,n,t,a,u){switch(u){case 2:return function(e,n){var t=RBt(n);return[1,fz(r,RBt(e),t)]};case 7:return function(r,n){var t=RBt(n);return[1,fz(e,RBt(r),t)]};case 12:return function(r,e){var n=WBt(e);return[10,fz(t,WBt(r),n)]};case 13:return function(r,e){var n=XBt(e);return[11,fz(a,XBt(r),n)]};default:return Djt(n,u)}}function Njt(r,e){if("number"==typeof e){if(1===e)return gjt}else if(2===e[0]){var n=e[1];switch(r){case 0:return Ejt(Klt[6],Ult[6],[0,Rlt[6],Qlt[6],Clt[6],Hlt[6],Vlt[6],Llt[6],zlt[6],Slt[6]],TBt,cBt,n);case 1:return Ejt(Klt[7],Ult[7],[0,Rlt[7],Qlt[7],Clt[7],Hlt[7],Vlt[7],Llt[7],zlt[7],Slt[7]],NBt,vBt,n);case 2:return Ejt(Klt[8],Ult[8],[0,Rlt[8],Qlt[8],Clt[8],Hlt[8],Vlt[8],Llt[8],zlt[8],Slt[8]],EBt,iBt,n);case 3:return Ejt(Klt[9],Ult[9],[0,Rlt[9],Qlt[9],Clt[9],Hlt[9],Vlt[9],Llt[9],zlt[9],Slt[9]],DBt,fBt,n);case 4:return Ejt(Klt[10],Ult[10],[0,Rlt[10],Qlt[10],Clt[10],Hlt[10],Vlt[10],Llt[10],zlt[10],Slt[10]],bBt,aBt,n);case 5:return Ejt(Klt[11],Ult[11],[0,Rlt[11],Qlt[11],Clt[11],Hlt[11],Vlt[11],Llt[11],zlt[11],Slt[11]],sBt,tBt,n);case 6:return Djt([0,Rlt[34],Qlt[34],Clt[34],Hlt[34],Vlt[34],Llt[34],zlt[34],Slt[34]],n);case 7:return Djt([0,Rlt[35],Qlt[35],Clt[35],Hlt[35],Vlt[35],Llt[35],zlt[35],Slt[35]],n);case 8:return Djt([0,Rlt[36],Qlt[36],Clt[36],Hlt[36],Vlt[36],Llt[36],zlt[36],Slt[36]],n);case 9:return Djt([0,Rlt[37],Qlt[37],Clt[37],Hlt[37],Vlt[37],Llt[37],zlt[37],Slt[37]],n);case 10:return Djt([0,Rlt[38],Qlt[38],Clt[38],Hlt[38],Vlt[38],Llt[38],zlt[38],Slt[38]],n);case 11:return Djt([0,Rlt[39],Qlt[39],Clt[39],Hlt[39],Vlt[39],Llt[39],zlt[39],Slt[39]],n);case 12:return Djt([0,Rlt[40],Qlt[40],Clt[40],Hlt[40],Vlt[40],Llt[40],zlt[40],Slt[40]],n);case 13:return Djt([0,Rlt[42],Qlt[42],Clt[42],Hlt[42],Vlt[42],Llt[42],zlt[42],Slt[42]],n);case 14:return Djt([0,Rlt[43],Qlt[43],Clt[43],Hlt[43],Vlt[43],Llt[43],zlt[43],Slt[43]],n);case 15:return Djt([0,Rlt[44],Qlt[44],Clt[44],Hlt[44],Vlt[44],Llt[44],zlt[44],Slt[44]],n);case 16:return Djt([0,Rlt[45],Qlt[45],Clt[45],Hlt[45],Vlt[45],Llt[45],zlt[45],Slt[45]],n);default:if(15===n)return function(r,e){var n=YBt(e);return[13,YBt(r)+n]};throw gQ([0,kz,Gbr],1)}}throw gQ([0,kz,Pbr],1)}function Tjt(r,e,n,t,a,u,f,i){if(14<=i)switch(i-14|0){case 0:return function(r,e){var n=JBt(e);return[0,fz(a,JBt(r),n)]};case 1:return function(r,e){var n=YBt(e);return[0,fz(u,YBt(r),n)]};case 3:case 5:break;default:return function(r,e){var n=rjt(e);return[0,fz(u,rjt(r),n)]}}var v=n[8],c=n[7],A=n[6],o=n[5],s=n[4],b=n[3],l=n[2],B=n[1];switch(i){case 2:return function(e,n){var t=RBt(n);return[0,fz(r,RBt(e),t)]};case 3:return function(r,e){var n=LBt(e);return[0,fz(B,LBt(r),n)]};case 4:return function(r,e){var n=zBt(e);return[0,fz(l,zBt(r),n)]};case 5:return function(r,e){var n=SBt(e);return[0,fz(b,SBt(r),n)]};case 6:return function(r,e){var n=ZBt(e);return[0,fz(s,ZBt(r),n)]};case 7:return function(r,n){var t=RBt(n);return[0,fz(e,RBt(r),t)]};case 8:return function(r,e){var n=QBt(e);return[0,fz(o,QBt(r),n)]};case 9:return function(r,e){var n=CBt(e);return[0,fz(A,CBt(r),n)]};case 10:return function(r,e){var n=HBt(e);return[0,fz(c,HBt(r),n)]};case 11:return function(r,e){var n=VBt(e);return[0,fz(v,VBt(r),n)]};case 12:return function(r,e){var n=WBt(e);return[0,fz(t,WBt(r),n)]};case 13:return function(r,e){var n=uz(nBt,uz(Xlt,XBt(e)));return[0,fz(t,uz(nBt,uz(Xlt,XBt(r))),n)]};default:throw gQ([0,kz,Mbr],1)}}function Fjt(r,e,n,t,a,u,f,i,v,c){return 1===c?function(r,e){var n=OBt(e);return[0,fz(v,OBt(r),n)]}:c?Tjt(r,e,n,t,a,u,0,c):function(r,e){var n=KBt(e);return[0,fz(i,KBt(r),n)]}}function Mjt(r,e){return r===e?1:0}function Pjt(r,e){return r===e?1:0}var Ujt=lL;function Gjt(r,e){return r===e?1:0}var $jt=bjt(),Kjt=[0,Rlt[12],Qlt[12],Clt[12],Hlt[12],Vlt[12],Llt[12],zlt[12],Slt[12]],Ojt=Ult[12],Rjt=Klt[12];function Qjt(r){return function r(e){r:{e:{n:{t:{a:{u:{f:{var n=e;i:for(;;){if("number"==typeof n)break e;switch(n[0]){case 1:var t=n[2],a=Jvt(n[1]);if(0!==a[0])throw gQ([0,xz,Dbr],1);n=Sct(t,a[2]);break;case 2:var u=n[1];if(17!==u&&19>u)return Fjt(Rjt,Ojt,Kjt,Ylt,Gjt,Ujt,0,Pjt,Mjt,u);throw gQ([0,xz,Fbr],1);case 3:break n;case 4:break t;case 5:break a;case 6:break u;case 7:break f;case 8:break i;case 11:n=n[2];break;default:break r}}if(0!==n[1])return function(r,e){i:if("number"!=typeof r){switch(r[0]){case 15:var n=r[1];if(!n)break i;var t=n[1];if("number"==typeof t)break i;if(14!==t[0])break i;var a=n[2];if(!a)break i;var u=a[1];if("number"==typeof u)break i;if(13!==u[0])break i;if(a[2])break i;if("number"==typeof e)break i;switch(e[0]){case 15:var f=e[1];if(!f)break i;var i=f[1];if("number"==typeof i)break i;if(14!==i[0])break i;var v=f[2];if(!v)break i;var c=v[1];if("number"==typeof c)break i;if(13!==c[0])break i;if(v[2])break i;return[0,OH(r,e)];case 20:break;default:break i}break;case 20:if("number"==typeof e)break i;switch(e[0]){case 15:var A=e[1];if(!A)break i;var o=A[1];if("number"==typeof o)break i;if(14!==o[0])break i;var s=A[2];if(!s)break i;var b=s[1];if("number"==typeof b||13!==b[0]||s[2])break i;break;case 20:return[0,r===e?1:0];default:break i}break;default:break i}throw gQ([0,xz,hbr],1)}return FY("illegal shared function")};throw gQ([0,xz,Nbr],1)}var f=n[1];return function(e,n){for(var t=ajt(e),a=f,u=t,i=ajt(n);;){f:{if(a){if(u&&i){var v=i[2],c=i[1],A=u[2],o=u[1],s=a[2],b=OBt(r(a[1])(o,c));if(b){a=s,u=A,i=v;continue}var l=b;break f}}else if(!u&&!i){l=1;break f}throw gQ([0,xz,xbr],1)}return[0,l]}}}var i=n[1];return function(e,n){u:{if("number"==typeof e){if("number"==typeof n)return ybr;if(16!==n[0])break u}else{if(16!==e[0])break u;var t=e[1];if("number"!=typeof n){if(16!==n[0])break u;var a=n[1];return r(i)(t,a)}}return gbr}throw gQ([0,xz,wbr],1)}}var v=n[1];return function(e,n){var t=r(v),a=njt(e),u=njt(n),f=a.length-1==u.length-1?1:0;if(f)if(a.length-1!=u.length-1)var i=FY("for_all2");else for(var c=0;;){var A=c===a.length-1?1:0;if(A){i=A;break}var o=gC(u,c)[c+1],s=OBt(t(gC(a,c)[c+1],o));if(!s){i=s;break}c=c+1|0}else i=f;return[0,i]}}var c=n[1];return function(e,n){var t=tjt(e),a=t[1],u=t[2],f=tjt(n),i=f[2];if(a!==f[1])return qbr;for(var v=c;;){if(!v)throw gQ(dz,1);var A=v[1],o=v[2];if(A[1]===a)return r(A[2])(u,i);v=o}}}var A=n[1],o=n[2];if(1===A)return function(r,e){return"number"!=typeof r&&14===r[0]&&"number"!=typeof e&&14===e[0]?[0,r[1]===e[1]?1:0]:[0,r===e?1:0]};if(A)throw gQ([0,xz,Ebr],1);return function(e,n){for(var t=ijt(e),a=o,u=ijt(n);;){if(a){var f=a[1],i=a[2],v=MBt[17].call(null,f[1],u),c=MBt[17].call(null,f[1],t),A=OBt(r(f[2])(c,v));if(A){a=i;continue}var s=A}else s=1;return[0,s]}}}if(0===n)return function(r,e){return Ibr}}throw gQ([0,xz,Tbr],1)}(r)}function Cjt(r,e){if("number"==typeof e){if(1===e)return gjt}else if(2===e[0]){var n=e[1];switch(r){case 0:return Fjt(Rjt,Ojt,Kjt,Ylt,Gjt,Ujt,0,Pjt,Mjt,n);case 1:return Fjt(Klt[13],Ult[13],[0,Rlt[13],Qlt[13],Clt[13],Hlt[13],Vlt[13],Llt[13],zlt[13],Slt[13]],pBt,function(r,e){return r!==e?1:0},dL,0,function(r,e){return r!==e?1:0},function(r,e){return r!==e?1:0},n);case 2:return Tjt(Klt[14],Ult[14],[0,Rlt[14],Qlt[14],Clt[14],Hlt[14],Vlt[14],Llt[14],zlt[14],Slt[14]],kBt,function(r,e){return r>>3|0)>>>(7&~e)&1}function Ukt(r,e){var n=r[2],t=r[1],a=t-1|0;if(15>=a>>>0)switch(a){case 0:return Pkt(n,e);case 1:return oV(n,e>>>2|0)>>>(2*(3&~e)|0)&3;case 3:return oV(n,e>>>1|0)>>>(4*(1&~e)|0)&15;case 7:return oV(n,e);case 15:var u=2*e|0;return(oV(n,u)<<8)+oV(n,u+1|0)|0}if(32!==t)throw gQ([0,xz,lkr],1);var f=4*e|0;return(((oV(n,f)<<8)+oV(n,f+1|0)<<8)+oV(n,f+2|0)<<8)+oV(n,f+3|0)|0}function Gkt(r,e,n){return Pkt(r[2],KC(r[1],e)+n|0)}function $kt(r,e,n){if(e===n)return 0;var t=$kt(r,e+1|0,n);return[0,uz(r,e),t]}function Kkt(r,e){var n=e[3];var t=n?n[1]:function(n){var t=[0,uz(r[29],n[1])];return uz(e[2],t)};function a(n){var u=uz(r[13],n),f=uz(r[21],n);if(u&&f){var i=u[1];return a(f[1]),uz(e[1],qS),uz(t,i)}}function u(r){return a(r),uz(e[1],IS)}function f(n){var t=n[1],a=n[2],u=uz(r[31],t);return uz(e[2],u),uz(e[1],Bkr),function(r,n){for(var t=r,a=n;;)if(0===t)uz(e[1],jkr),uz(e[1],qS),t=-1;else{if(!a)return;var u=a[2];uz(e[2],a[1]),uz(e[1],qS),t=t-1|0,a=u}}(a,uz(r[32],t)),uz(e[1],IS)}function i(n){uz(e[1],"Current LR(1) state: ");var t=uz(r[13],n);if(t){var a=t[1][1],u=kQ+uz(r[9],a);return uz(e[1],u),uz(e[1],IS),L0(f,uz(r[30],a))}return uz(e[1],""),uz(e[1],IS)}return[0,,,,f,,i,function(r){return u(r),i(r),uz(e[1],IS)}]}function Okt(r){return r?_y+"// Timer-related\n\nlet setTimer = @setTimer;\nlet cancelTimer = @cancelTimer;\n":hkr}function Rkt(r){switch(r){case 0:return"i32";case 1:return"i64";case 2:return"f32";default:return"f64"}}function Qkt(r){var e=r[1];return r[2]?"(mut "+Rkt(e)+aI:Rkt(e)}function Ckt(r){return"["+F1(xkr,H0(Rkt,r))+"]"}function Hkt(r){var e=r[1],n=GP+Ckt(r[2]);return Ckt(e)+n}var Vkt=73,Lkt=pb,zkt=11,Skt=14,Zkt=21,Wkt=25,Xkt=[0,0,[0,1,1,0],0,1,0,1];function Jkt(r,e){if(e[1]a){var u=T0(a);((34===u?1:0)||(92===u?1:0))&&J2(e,92),J2(e,u),n=t}else r3(e,uz(H6(wkr),a)),n=t}}function rpt(r){if("number"!=typeof r)switch(r[0]){case 5:return J0(rpt,r[1]);case 0:case 6:return 0}return 1}function ept(r){return"number"!=typeof r&&22===r[0]?rpt(r[1]):0}function npt(r,e){var n=uz(r,e[2]);return[0,e[1],n]}function tpt(r){return function(e){function n(e){var n=e[2];if("number"==typeof n)var a=n;else switch(n[0]){case 0:a=[0,n[1],t(n[2])];break;case 1:a=[1,n[1],t(n[2])];break;case 2:var u=n[2],f=n[1],i=t(n[3]);a=[2,f,t(u),i];break;case 6:a=[6,npt(r,n[1])];break;default:a=n}return[0,e[1],a]}function t(r){return H0(n,r)}var a=H0(function(e){var n=e[2],t=n[2],a=t[2],u=0===a[0]?[0,npt(r,a[1])]:a;return[0,e[1],[0,n[1],[0,t[1],u]]]},e[10]);function u(e){return npt(r,e)}var f=e[9],i=e[8],v=H0(function(r){var e=r[2],n=H0(u,e[3]);return[0,r[1],[0,e[1],e[2],n]]},e[7]),c=e[6];var A=c?[0,npt(r,c[1])]:0,o=H0(function(r){var e=r[2],n=t(e[3]);return[0,r[1],[0,e[1],e[2],n]]},e[5]);return[0,e[1],e[2],e[3],e[4],o,A,v,i,f,a]}}function apt(r,e){if(0>>5|0;if(0===a)return J2(r,BL(AB,t));J2(r,BL(AB,32|t)),n=a}}function jpt(r){return r[1][2]}function kpt(r,e){return r3(r[1],e)}function ppt(r,e,n){return r[2][1]=[0,[0,e,n],r[2][1]],0}var mpt=H9n(),dpt=U2([0,nH]),_pt=dpt[1];function hpt(r,e,n,t){return function(a){for(var u=a;;){if(!u)return 0;var f=u[1],i=u[2];if(1===f)uz(r,f),u=i;else{if(i){var v=i[1],c=i[2];if(2===f){uz(r,f),uz(e,v),u=c;continue}if(3===f){uz(r,f),uz(n,v),u=c;continue}if(4===f){uz(r,f),uz(e,v),u=c;continue}var A=i[2];if(5===f){uz(r,f),uz(e,v),u=A;continue}}if(6===f||10===f||11===f)uz(r,f),u=i;else{if(-1!==f){if(i){var o=i[2],s=i[1];if(-2===f){uz(r,0),uz(r,5),uz(r,0|-f),uz(t,s),u=o;continue}}return FY(uz(H6(ykr),f))}uz(r,0),uz(r,1),uz(r,0|-f),u=i}}}}}function xpt(r){var e=[0,z2(8192),[0,0]],n=z2(0),a=[0,0],u=[0,0],f=[0,0],i=[0,0],v=[0,0],c=[0,0],A=[0,0];function o(r,e){return r[1]=uz(e,r[1]),0}function s(r,e){if(e){var n=e[2];return r===e[1]?0:1+s(r,n)|0}a[1]=QY(a[1],[0,r,0]);try{if(r===zR)var t=DS;else if(r===Zr)t=Okt(1);else{var f=WY(r),i=QV(f),v=tH(i);!function(r,e,n,t){if(0<=n&&0<=t&&(mH(e)-t|0)>=n)for(var a=n,u=t;;){if(0>=u)return;var f=zV(r,e,a,u);if(0===f)throw gQ(pz,1);a=a+f|0,u=u-f|0}MY("really_input")}(f,v,0,i),VV(f);t=x1(v)}var c=t}catch(v){c=""}return u[1]=QY(u[1],[0,c,0]),0}var b=[0,0],l=P2([0,nH]),B=[0,l[1]],j=P2([0,nH]),k=[0,j[1]],p=[0,b_r];function m(r){for(var e=lpt;;){if(!e)throw gQ(dz,1);var n=e[1],t=e[2];if(r===n[1])return 1-(0!==n[2]?1:0);e=t}}var d=[0,0];function _(r){var e=p[1];if(e){var n=e[1];if("number"!=typeof n&&1===n[0])return void(p[1]=[0,[1,n[1],n[2],[0,r,n[3]]],e[2]])}throw gQ([0,xz,s_r],1)}var h=[0,0],x=[0,0],y=[0,0],w=[0,0];function g(r,n){if(11===n)var t=d[1],a=[0,[3,17,jpt(e)-t|0],0];else a=0;var u=p[1];r:{if(u){var f=u[1];if("number"!=typeof f&&1===f[0]){var i=u[2],v=f[2],c=f[3],A=f[1];if(i){var o=i[1];if("number"!=typeof o&&1===o[0]){var s=i[2],b=o[3],l=o[2],B=o[1];if(m(v)){var j=[0,[1,r,n,a],[0,[1,B,l,[0,f,b]],s]];break r}}}else if(17===n&&0===v){j=[0,[1,A,n,c],0];break r}}}j=[0,[1,r,n,a],u]}return p[1]=j,function(r){for(var e=r;;){if(!e)return;var t=e[2],a=e[1];if("number"!=typeof a)switch(a[0]){case 2:var u=a[1];if(17===u&&17===n){_([3,u,0]),e=t;continue}if(17===u&&46===(n&LK)){_([3,u,h[1]]),e=t;continue}if(18===u&&46===(n&LK)){var f=h[1];let r=u,n=f;_([6,function(e){return[3,r,gC(tet(x),n)[n+1]]}]),e=t;continue}if(85===u){let r=u;_([6,function(e){return[3,r,tet(y)]}]),e=t;continue}break;case 3:case 4:_(a),e=t;continue}throw gQ([0,xz,o_r],1)}}}function q(r){var n=T0(r&LK);return J2(e[1],n)}function I(r){return q(r&LK),q(r>>>8|0)}function D(r){return I(r&Fn),I(r>>16)}function E(r){for(var e=r;;){var n=uV(eV(e,jdr));if(DV(kdr,e)&&EV(e,pdr))return q(n);q(n|Ih),e=mV(e,7)}}function N(r){for(var e=r;;){var n=uV(eV(e,mdr));if(DV(ddr,e)&&EV(e,_dr))return q(n);q(n|Ih),e=pV(e,7)}}function T(r){return E(eV(aV(r),c_r))}function F(r){return N(aV(r))}function M(r,e){return r?1<>>7|0|Ih)),ppt(e,r+2|0,t(n>>>14|0|Ih)),ppt(e,r+3|0,t(n>>>21|0|Ih)),ppt(e,r+4|0,t(n>>>28|0))}function R(r){switch(r){case 0:return F(-1);case 1:return F(-2);case 2:return F(-3);default:return F(-4)}}function C(r){return F(-16)}function H(r,e,n){var t=e[2],a=e[1],u=M(1===n?1:0,2);return q(M(0!==t?1:0,0)+u|0),uz(r,a),I0(r,t)}function V(r){if(0===r[0]){var e=r[1];return C(r[2]),H(T,e,0)}var n=r[1];return C(r[2]),H(E,n,1)}function L(r){return H(E,r[1],r[2])}function z(r){var e=r[2];return R(r[1]),q(e?1:0)}function S(r){return q(11)}function Z(r){var e=r[3];return T(r[2]),E(e)}function W(r){return T(r[2])}function J(r){if(0===r[0])return N(aV(r[1][2]));var e=r[1];return e?R(e[1]):F(-64)}function Y(r,u){if(cL(u[1],O9n)){var b=jpt(e),j=u[1][1][3],k=u[1][1][2]-1|0,_=s(u[1][1][1],a[1]);0!==i[1]&&J2(n,59),Bpt(n,b-v[1]|0),Bpt(n,_-f[1]|0),Bpt(n,k-c[1]|0),Bpt(n,j-A[1]|0),J2(n,44),f[1]=_,i[1]=0,v[1]=b,c[1]=k,A[1]=j,w[1]++}function h(e){return Y(r,e)}uz(r,u);var x=u[2];if("number"==typeof x)switch(x){case 0:return q(0);case 1:return q(1);case 2:return q(26);case 3:return q(27);case 4:return q(15);case 5:return q(63),q(0);case 6:return q(64),q(0);case 7:return q(cc),T(11),q(0);case 8:return q(cc),T(10),q(0),q(0);case 9:return q(63),q(1);case 10:return q(64),q(1);case 11:return q(cc),T(10),q(0),q(1);default:return q(cc),T(10),q(1),q(0)}switch(x[0]){case 0:var y=x[2],I=x[1];return q(2),J(I),L0(h,y),S();case 1:var E=x[2],F=x[1];return q(3),J(F),L0(h,E),S();case 2:var M=x[3],U=x[2],G=x[1];return q(4),J(G),L0(h,U),0!==M&&q(5),L0(h,M),S();case 3:var K=x[1];return q(12),W(K);case 4:var O=x[1];return q(13),W(O);case 5:var R=x[2],Q=x[1];return q(14),$(P,W,Q),W(R);case 6:var C=x[1];return q(16),W(C);case 7:var H=x[2],V=x[1];return q(17),W(H),W(V);case 8:var L=x[1];return q(32),W(L);case 9:var z=x[1];return q(33),W(z);case 10:var rr=x[1];return q(34),W(rr);case 11:var er=x[1];return q(35),W(er);case 12:var nr=x[1];return q(36),W(nr);case 13:var tr=x[1];switch(tr[1]){case 0:var ar=tr[4];if(ar){var ur=ar[1];switch(ur[1]){case 0:return ur[2]?(q(45),Z(tr)):(q(44),Z(tr));case 1:return ur[2]?(q(47),Z(tr)):(q(46),Z(tr));default:throw gQ([0,xz,hdr],1)}}return q(40),Z(tr);case 1:var fr=tr[4];if(fr){var ir=fr[1];switch(ir[1]){case 0:return ir[2]?(q(49),Z(tr)):(q(48),Z(tr));case 1:return ir[2]?(q(51),Z(tr)):(q(50),Z(tr));default:return ir[2]?(q(53),Z(tr)):(q(52),Z(tr))}}return q(41),Z(tr);case 2:if(!tr[4])return q(42),Z(tr);break;default:if(!tr[4])return q(43),Z(tr)}throw gQ([0,xz,xdr],1);case 14:var vr=x[1];switch(vr[1]){case 0:var cr=vr[4];if(cr)switch(cr[1]){case 0:return q(58),Z(vr);case 1:return q(59),Z(vr);default:throw gQ([0,xz,ydr],1)}return q(54),Z(vr);case 1:var Ar=vr[4];if(Ar)switch(Ar[1]){case 0:return q(60),Z(vr);case 1:return q(61),Z(vr);default:return q(62),Z(vr)}return q(55),Z(vr);case 2:if(!vr[4])return q(56),Z(vr);break;default:if(!vr[4])return q(57),Z(vr)}throw gQ([0,xz,wdr],1);case 15:var or=x[1];return q(cc),T(8),W(or),q(0);case 16:var sr=x[1][2];switch(sr[0]){case 0:var br=sr[1];return q(65),N(aV(br));case 1:var lr=sr[1];return q(66),N(lr);case 2:var Br=sr[1];return q(67),D(d9n(Br));default:var jr=sr[1];q(68);var kr=w9n(jr);return D(uV(eV(kr,A_r))),D(uV(pV(kr,32)))}case 17:switch(x[1][0]){case 0:return q(69);case 1:return q(80);case 2:throw gQ([0,xz,gdr],1);default:throw gQ([0,xz,qdr],1)}case 18:var pr=x[1];switch(pr[0]){case 0:switch(pr[1]){case 0:return q(70);case 1:return q(71);case 2:return q(72);case 3:return q(73);case 4:return q(74);case 5:return q(75);case 6:return q(76);case 7:return q(77);case 8:return q(78);default:return q(79)}case 1:switch(pr[1]){case 0:return q(81);case 1:return q(82);case 2:return q(83);case 3:return q(84);case 4:return q(85);case 5:return q(86);case 6:return q(87);case 7:return q(88);case 8:return q(89);default:return q(90)}case 2:switch(pr[1]){case 0:return q(91);case 1:return q(92);case 2:return q(93);case 3:return q(94);case 4:return q(95);default:return q(96)}default:switch(pr[1]){case 0:return q(97);case 1:return q(98);case 2:return q(99);case 3:return q(T$);case 4:return q(gq);default:return q(Ul)}}case 19:var mr=x[1];switch(mr[0]){case 0:var dr=mr[1];if("number"==typeof dr)switch(dr){case 0:return q(E$);case 1:return q(ZA);default:return q(os)}switch(dr[1]){case 0:return q(nF);case 1:return q(WD);default:throw gQ([0,xz,Idr],1)}case 1:var _r=mr[1];if("number"==typeof _r)switch(_r){case 0:return q(VP);case 1:return q(Ux);default:return q(CU)}switch(_r[1]){case 0:return q(V_);case 1:return q(IR);default:return q(ER)}case 2:switch(mr[1]){case 0:return q(xe);case 1:return q(WE);case 2:return q(xm);case 3:return q(142);case 4:return q(ta);case 5:return q(Po);default:return q(lU)}default:switch(mr[1]){case 0:return q(PA);case 1:return q(153);case 2:return q(Cu);case 3:return q(156);case 4:return q(Qw);case 5:return q(Ws);default:return q(Sg)}}case 20:var hr=x[1];switch(hr[0]){case 0:switch(hr[1]){case 0:return q(bk);case 1:return q(pb);case 2:return q(ZN);case 3:return q(FT);case 4:return q(Wr);case 5:return q(rh);case 6:return q(Jn);case 7:return q(aK);case 8:return q(Zc);case 9:return q(xp);case 10:return q(fM);case 11:return q(A$);case 12:return q(LP);case 13:return q(uw);default:return q(WP)}case 1:switch(hr[1]){case 0:return q(Iy);case 1:return q(xI);case 2:return q(Je);case 3:return q(lj);case 4:return q(Ih);case 5:return q(xs);case 6:return q(Ae);case 7:return q(aD);case 8:return q(132);case 9:return q(133);case 10:return q(FO);case 11:return q(Ak);case 12:return q(136);case 13:return q(EM);default:return q(ns)}case 2:switch(hr[1]){case 0:return q(To);case 1:return q(147);case 2:return q(FA);case 3:return q(Et);case 4:return q(GI);case 5:return q(xo);default:return q(152)}default:switch(hr[1]){case 0:return q(X);case 1:return q(161);case 2:return q(SG);case 3:return q(163);case 4:return q(164);case 5:return q(FN);default:return q(166)}}case 21:var xr=x[1];switch(xr[0]){case 0:switch(xr[1]){case 0:throw gQ([0,xz,Ddr],1);case 1:throw gQ([0,xz,Edr],1);case 2:return q(167);case 3:return q(168);case 4:return q(169);case 5:return q(170);case 6:return q(ig);case 7:return q(cc),q(0);case 8:return q(cc),q(1);case 9:return q(cc),q(2);case 10:return q(cc),q(3);default:return q(Ek)}case 1:switch(xr[1]){case 0:return q(172);case 1:return q(uF);case 2:throw gQ([0,xz,Ndr],1);case 3:return q(174);case 4:return q(175);case 5:return q(Ze);case 6:return q(177);case 7:return q(cc),q(4);case 8:return q(cc),q(5);case 9:return q(cc),q(6);case 10:return q(cc),q(7);default:return q(189)}case 2:switch(xr[1]){case 0:return q(lc);case 1:return q(gI);case 2:return q(Sb);case 3:return q(181);case 4:throw gQ([0,xz,Tdr],1);case 5:return q(dy);default:return q(190)}default:switch(xr[1]){case 0:return q(t);case 1:return q(_D);case 2:return q(qo);case 3:return q($q);case 4:return q(187);case 5:throw gQ([0,xz,Fdr],1);default:return q(oj)}}default:var yr=x[1];if("number"==typeof yr)for(var wr=1;;){var gr=p[1];r:if(gr){var qr=gr[1];if("number"!=typeof qr&&1===qr[0]){var Ir=gr[2];if(Ir){var Dr=Ir[1];if("number"!=typeof Dr&&1===Dr[0]){var Er=qr[2],Nr=Ir[2],Tr=Dr[3],Fr=Dr[2],Mr=Dr[1],Pr=qr[3],Ur=qr[1];if(wr){if(46!==(Er&LK)&&11!==(Er&LK))break r;for(var Gr=Pr,$r=0,Kr=0;;){if(!Gr){var Or=Q0($r);p[1]=[0,[1,Ur,Er,Or],[0,[1,Mr,Fr,QY(Q0(Kr),Tr)],Nr]];break}var Rr=Gr[2],Qr=Gr[1];if("number"!=typeof Qr&&1===Qr[0]&&Qr[1])var Cr=1;else Cr=0;Cr?(Gr=Rr,Kr=[0,Qr,Kr]):(Gr=Rr,$r=[0,Qr,$r])}}}}}}var Hr=p[1];if(!Hr)return FY("no open DW_TAG");var Vr=Hr[1];if("number"!=typeof Vr&&1===Vr[0]){var Lr=Vr[1],zr=Hr[2],Sr=Vr[3],Zr=Vr[2];if(11===Zr)for(var Xr=Sr;;){if(Xr){var Jr=Xr[1],Yr=Xr[2];if("number"==typeof Jr||1!==Jr[0])re=1;else var re=0;if(re){Xr=Yr;continue}var ee=re}else ee=1;if(!ee)break;return p[1]=zr,0}if(wr&&11===Zr){var ne=d[1];p[1]=[0,[1,Lr,Zr,[0,[3,18,jpt(e)-ne|0],Sr]],zr],wr=0;continue}if(!zr){if(!Lr){var te=Vr[2],ae=Vr[3];if(17===te)return p[1]=[0,[1,0,te,ae],0],0}return FY("TOPLEVEL: NOT NESTING")}var ue=zr[1];if("number"!=typeof ue&&1===ue[0]){var fe=ue[1],ie=zr[2],ve=ue[3],ce=ue[2];if(m(Zr)){p[1]=[0,[1,fe,ce,[0,Vr,ve]],ie];continue}return p[1]=[0,[1,fe,ue[2],[0,Vr,ue[3]]],zr[2]],0}}return FY("cannot close DW_AT")}switch(yr[0]){case 0:var oe=yr[1],se=[0,jpt(e),oe],be=l[2];return o(B,function(r){return be(se,r)});case 1:for(var le=yr[3],Be=0,je=0,ke=yr[2],pe=yr[1];le;){var me=le[2],de=le[1];r:{if("number"!=typeof de)switch(de[0]){case 1:case 5:var _e=1;break r}_e=0}_e?(le=me,je=[0,de,je]):(le=me,Be=[0,de,Be])}var he=Q0(Be),ye=Q0(je);g(pe,ke)(he);for(var we=ye;;){if(!we)return 0;var ge=we[2];h([0,u[1],[22,we[1]]]),we=ge}break;case 5:var qe=yr[1];if(!qe)return 0;var Ie=qe[1];return h([0,u[1],[22,[5,qe[2]]]]),h([0,u[1],[22,Ie]]);default:throw gQ([0,xz,Mdr],1)}}}function rr(r){var e=r[2];function n(r){return 0}for(;;){if(!e)return S();var t=e[2];Y(n,e[1]),e=t}}function er(r,n,t,a){if(!a)return a;q(0);var u=K(),f=jpt(e);return U(r),uz(n,t),O(u,jpt(e)-f|0)}var nr=[0,H0(function(r){var e=r[2];return[0,[0,r[1],e[2]],e]},[0,[0,k_r,[0,[0,0],1]],[0,[0,j_r,[0,[0,0],1]],[0,[0,B_r,[0,[0,0],1]],[0,[0,"timers-api",[0,[0,0],1]],[0,[0,l_r,[0,[0,0],1]],0]]]]])],tr=[0,[0,0],0],ar=[0,[0,[0,"",[0,[0,0],1]],[0,[0,e8n(""),tr],0]]],ur=G0(nr[1]),fr=[0,V0(function(r,e){return[0,e[1][1],(ur-1|0)-r|0]},nr[1])];function ir(r){var e=r[1];return P(r[2]),R(e)}function vr(r,e){return[0,[0,0],r]}function cr(r,e){if(e===kQ)throw gQ([0,xz,i_r],1);var n=fr[1];if(!e1(e,n)){if(!n)throw gQ([0,xz,f_r],1);fr[1]=[0,[0,e,n[1][2]+1|0],n]}}function Ar(r){if(r!==kQ){if(r!==zR&&r!==Zr&&r!==gm){var e=r8n(r),n=e8n(r),t=ar[1],a=e1(n,t);if(a)var u=a[1];else{if(!t)throw gQ([0,xz,u_r],1);var f=[0,[0,0],t[1][2][2]+1|0];ar[1]=[0,[0,n,f],t];u=f}var i=u[2],v=[0,e,i],c=nr[1],A=e1(v,c);if(A)A[1];else{var o=vr(i);nr[1]=[0,[0,v,o],c]}return cr(0,r)}var s=[0,r,1],b=nr[1],l=e1(s,b);if(l)l[1];else{var B=vr(1);nr[1]=[0,[0,s,B],b]}return cr(0,r)}}function or(r,e){return $(P,function(e){var n=e[2];return T(e[1]),uz(r,n)},s1(function(r,e){return JC(r[1],e[1])},e))}function sr(r,n,t){if(t){var a=t[1],u=a[2],f=a[1];q(0);var i=K(),v=jpt(e);return U("icp:"+(f?t_r:"private ")+r),uz(n,u),O(i,jpt(e)-v|0)}}function br(r){return Ort(r),kpt(e,r)}function lr(r){return E(aV(r))}function Br(r){return q(0)}var jr=e[1];function kr(r){var e=jr[2],n=jr[1],t=e+2|0,a=n[1];n[2]>>8|0)),ppt(e,r+2|0,t(n>>>16|0)),ppt(e,r+3|0,t(n>>>24|0))}var xr=[0,function(r){}];function yr(r){return 14===r?function(r){if("number"!=typeof r&&4===r[0]){var e=r[2],n=b[1],t=e1(e,n);if(t)var a=t[1];else{if(n)var u=n[1],f=(AV(u[1])+1|0)+u[2]|0;else f=0;b[1]=[0,[0,e,f],n];a=f}return pr(a)}return FY("dw_FORM_strp")}:11===r?function(r){return"number"!=typeof r&&3===r[0]?q(r[2]):FY("dw_FORM_data1")}:5===r?function(r){return"number"!=typeof r&&3===r[0]?kr(r[2]):FY("dw_FORM_data2")}:6===r?function(r){return"number"!=typeof r&&3===r[0]?pr(r[2]):FY("dw_FORM_data4")}:1===r?function(r){return"number"!=typeof r&&3===r[0]?pr(r[2]):FY("dw_FORM_addr")}:27===r?function(r){return"number"!=typeof r&&3===r[0]?lr(r[2]):FY("dw_FORM_addrx")}:19===r?function(r){if("number"==typeof r||3!==r[0])return FY("dw_FORM_ref_ref4");var e=dpt[17].call(null,r[2],_pt);if(!net(e))throw gQ([0,xz,Ldr],1);var n=tet(e),t=dpt[17].call(null,n,_pt);if(net(t))return pr(tet(t));var a=xr[1],u=_r();xr[1]=function(r){return uz(a,0),hr(u,tet(t))}}:21===r?function(r){return"number"!=typeof r&&3===r[0]?lr(tet(dpt[17].call(null,r[2],_pt))):FY("dw_FORM_ref_udata")}:23===r?function(r){return"number"!=typeof r&&3===r[0]?pr(r[2]):FY("dw_FORM_sec_offset")}:10===r?function(r){if("number"!=typeof r&&4===r[0]){var n=r[2],t=AV(n);if(mc<=t)throw gQ([0,xz,Sdr],1);return q(t),kpt(e,n)}return FY("dw_FORM_block1")}:24===r?function(r){if("number"!=typeof r&&4===r[0]){var n=r[2];return lr(AV(n)),kpt(e,n)}return FY("dw_FORM_exprloc")}:12===r?function(r){return"number"!=typeof r&&3===r[0]?q(r[2]):FY("dw_FORM_flag")}:25===r?function(r){return"number"!=typeof r&&3===r[0]?0===r[2]?FY("dw_FORM_flag_present with false"):void 0:FY("dw_FORM_flag_present")}:FY("cannot write form")}var wr=[0,0];function gr(r){var e=r[2],n=e[2],t=e[1];return F(-32),$(P,R,t),$(P,R,n)}function qr(r){var e=r[2],n=e[3],t=e[2];G(e[1]),G(t);var a=n[2];switch(a[0]){case 0:var u=a[1];return q(0),W(u);case 1:var f=a[1];return q(1),V(f);case 2:var i=a[1];return q(2),L(i);default:var v=a[1];return q(3),z(v)}}function Ir(r){return W(r[2][1])}function Dr(r){return V(r[2][1])}function Er(r){return L(r[2][1])}function Nr(r){var e=r[2],n=e[2];return z(e[1]),rr(n)}function Tr(r){var e=r[2],n=e[2];G(e[1]);var t=n[2];switch(t[0]){case 0:var a=t[1];return q(0),W(a);case 1:var u=t[1];return q(1),W(u);case 2:var f=t[1];return q(2),W(f);default:var i=t[1];return q(3),W(i)}}function Fr(r){var n=r[2],t=n[3],a=n[2],u=K(),f=jpt(e);$(P,ir,function(r){return S0(function(r,e){if(e){var n=e[1],t=e[2],a=n[2];if(OH(r,n[1]))return[0,[0,r,a+1|0],t]}return[0,[0,r,1],e]},r,0)}(a));var i=[0,l[1]],v=t;function c(r){var n=1-ept(r[2]);if(n){var t=r[1][1],a=[0,jpt(e),t],u=l[2];o(i,function(r){return u(a,r)}),Ar(r[1][1][1]);var f=0}else f=n;return f}for(;v;){var A=v[2];Y(c,v[1]),v=A}var s=r[1][2],b=[0,jpt(e),s],B=l[2];o(i,function(r){return B(b,r)}),Ar(r[1][2][1]),S(),h[1]++;var p=jpt(e);O(u,p-f|0);var m=[0,f,i[1],p],d=j[2];return o(k,function(r){return d(m,r)})}function Mr(r){var e=r[2],n=e[3],t=e[2];return W(e[1]),rr(t),$(P,W,n)}function Pr(r){var e=r[2],n=e[1],t=e[2][2];if("number"==typeof t)return t?FY("illegal declarative data segment"):(T(1),U(n));var a=t[1],u=t[2];if(OH(a[2],0))return T(0),rr(u),U(n);var f=t[2];return T(2),W(a),rr(f),U(n)}function Ur(r){var n=0!==r[1]?1:0;if(n)var t=n;else t=(0!==r[2]?1:0)||(0!==r[3]?1:0);if(!t)return t;q(0);var a=K(),u=jpt(e);U(a_r);var f=r[1];if(0!==r[1]){q(0);var i=K(),v=jpt(e);I0(U,f),O(i,jpt(e)-v|0)}var c=r[2];if(0!==r[2]){q(1);var A=K(),o=jpt(e);or(U,c),O(A,jpt(e)-o|0)}var s=r[3];if(0!==r[3]){q(2);var b=K(),l=jpt(e);or(function(r){return or(U,r)},s),O(b,jpt(e)-l|0)}return O(a,jpt(e)-u|0)}function Gr(r){return N(aV(r))}function $r(r,n){if("number"!=typeof n&&1===n[0]){var t=n[3],a=n[2],u=n[1];if(u){var f=u[1],i=wr[1],v=jpt(e)-i|0;eet(dpt[17].call(null,f,_pt),v)}else if(36===a)throw gQ([0,xz,Rdr],1);for(var c=r?s1(function(r,e){r:{if("number"!=typeof r&&1===r[0]){var n=r[1];if(n){if("number"==typeof e)break r;if(1!==e[0])break r;var t=e[1];if(t)return JC(t[1],n[1]);break r}}if("number"!=typeof e&&1===e[0]&&e[1])return-1}return"number"!=typeof r&&1===r[0]&&r[1]?1:0},t):t,A=function(r){return a===r[1]?1:0},o=lpt,s=Q0(c);;){if(!o)throw gQ(dz,1);var b=o[1],l=o[2];if(A(b))break;o=l}r:{for(var B=1,j=lpt,k=b[3],p=b[2];j;){if(A(j[1])){var m=B;break r}B=B+1|0,j=j[2]}m=FY("not encountered")}lr(m);for(var d=0,_=0,h=s;h;){var x=h[2],y=h[1];if("number"==typeof y||1!==y[0])w=0;else var w=1;w?(d=[0,y,d],h=x):(_=[0,y,_],h=x)}r:{e:{var g=Q0(_),q=k,I=Q0(d);n:for(;q;){if(!g)break e;var D=g[2],E=q[2],N=q[1],T=g[1];t:for(;;){var F=N[2],M=N[1];if("number"!=typeof T)switch(T[0]){case 2:FY("too late to resolve OffsetAttribute"),g=D,q=E;continue n;case 3:var P=T[1];if(M!==P&&iz(R6(CY,Pdr),M,P,a),M!==P)throw gQ([0,xz,Udr],1);yr(F)(T),g=D,q=E;continue n;case 4:break t;case 6:N=[0,M,F],T=uz(T[1],0);continue}FY("Attribute expected"),g=D,q=E;continue n}var U=T[1],G=T[2];if(58===U){var $=G===kQ?Gdr:G;if(M!==U){var K=$0(fr[1])[2],O=$0(fr[1])[1];Az(R6(CY,$dr),M,U,a,$,O,K)}if(M!==U)throw gQ([0,xz,Kdr],1);var R=r1($,fr[1]),Q=[3,U,$0(fr[1])[2]-R|0];yr(F)(Q),g=D,q=E}else{if(M!==U)throw gQ([0,xz,Odr],1);yr(F)(T),g=D,q=E}}if(!g)break r}MY(wz)}for(var C=I;;){if(!C){var H=0!==p?1:0;return H?Br():H}var V=C[2];$r(0,C[1]),C=V}}return FY("Tag expected")}function Kr(r){var n=1-j[30].call(null,r);if(!n)return n;q(0);var t=K(),a=jpt(e);U(".debug_addr");var u=_r(),f=jpt(e);return kr(5),q(4),q(0),j[23].call(null,function(r){return pr(r[1]-d[1]|0)},r),hr(u,jpt(e)-f|0),O(t,jpt(e)-a|0)}function Or(r){var n=[0,0];q(0);var t=K(),a=jpt(e);U(".debug_rnglists");var u=_r(),f=jpt(e);kr(5),q(4),q(0),pr(0),eet(y,jpt(e)-u|0),j[23].call(null,function(r){var e=r[3],t=r[1];return q(3),lr(n[1]),n[1]++,lr(e-t|0)},r),q(0);var i=j[40].call(null,r);function v(r){return r[3]-r[1]|0}return eet(x,u2(function(r){return d0(v,i)})),hr(u,jpt(e)-f|0),O(t,jpt(e)-a|0)}function Rr(r){var n=H0(function(r){return[0,r[1][1],r[2]]},nr[1]),t=ar[1];q(0);var a=K(),u=jpt(e);U(".debug_line_str");var f=jpt(e);function i(r){for(var n=r;;){if(!n)return;var t=n[1],a=n[2],u=t[2][1],i=t[1];eet(u,jpt(e)-f|0),mr(i),n=a}}return i(t),i(n),O(a,jpt(e)-u|0)}function Qr(r){var n=0!==r?1:0;if(!n)return n;q(0);var t=K(),a=jpt(e);U(".debug_line");var u=_r(),f=jpt(e);kr(5),q(4),q(0);var i=_r(),v=jpt(e);function c(r){var e=r[2];return lr(r[1]),lr(e)}q(1),q(1),q(1),q(0),q(12),q(13),L0(q,Hdr),$(q,c,[0,[0,1,31],0]);for(var A=0,o=ar[1];o;){var s=o[2];A=[0,tet(o[1][2][1]),A],o=s}dr(pr)(A),$(q,c,[0,[0,1,31],[0,[0,2,15],0]]);var b=H0(function(r){var e=r[2],n=e[2];return[0,tet(e[1]),n]},nr[1]);dr(function(r){var e=r[2];return pr(r[1]),lr(e)})(b),hr(i,jpt(e)-v|0);var p=B[1],m=U2([0,nH]),_=l[40].call(null,p);function h(r){return[0,r[2],r[1]]}var x=m[43].call(null,function(r){return d0(h,_)}),y=d[1],w=fr[1];return j[23].call(null,function(r){var e=r[1]-y|0,n=r[3]-y|0,t=l[40].call(null,r[2]),a=Xkt[6],u=Xkt[5],f=Xkt[3];function i(r){var i=n-1|0,v=d0(function(r){var e=r[2],n=e[1],t=e[3],a=e[2],u=r[1],f=r1(n===kQ?Cdr:n,w),v=$0(w)[2]-f|0,c=l[31].call(null,r,p);r:if(c)var A=c;else{var o=r[1],s=m[18].call(null,r[2],x);if(s&&o===s[1]){A=1;break r}A=0}var b=u-y|0;return[0,b,[0,v,a,t+1|0],0,A,0,b===i?2:0]},t);if(!v)return FY("there should be an 'end' instruction!");var c=v[1];return c[1]===e?FY("at start already an instruction?"):[0,[0,e,c[2],f,0,u,a],function(r){return v}]}for(var v=[0,0,Xkt];;){var c=uz(i,0);if(!c)break;var A=c[1],o=c[2],s=v[1];i=o,v=[0,[0,Jkt(v[2],A),s],A]}for(var b=v[1],B=[0,2,[0,1,[0,-1,0]]];;){if(!b)return hpt(q,lr,Gr,pr)(B);var j=b[2],k=QY(b[1],B);b=j,B=k}},k[1]),hr(u,jpt(e)-f|0),O(t,jpt(e)-a|0)}!function(r){var n=r[1];if(D(Mm),D(1),0!==r[3])throw gQ([0,xz,Qdr],1);var t=n[1];if(0!==t){q(1);var a=K(),u=jpt(e);$(P,gr,t),O(a,jpt(e)-u|0)}var f=n[9];if(0!==f){q(2);var i=K(),v=jpt(e);$(P,qr,f),O(i,jpt(e)-v|0)}var c=n[5];if(0!==c){q(3);var A=K(),o=jpt(e);$(P,Ir,c),O(A,jpt(e)-o|0)}var s=n[3];if(0!==s){q(4);var l=K(),B=jpt(e);$(P,Dr,s),O(l,jpt(e)-B|0)}var j=n[4];if(0!==j){q(5);var m=K(),_=jpt(e);$(P,Er,j),O(m,jpt(e)-_|0)}var h=n[2];if(0!==h){q(6);var x=K(),y=jpt(e);$(P,Nr,h),O(x,jpt(e)-y|0)}var w=n[10];if(0!==w){q(7);var g=K(),I=jpt(e);$(P,Tr,w),O(g,jpt(e)-I|0)}var E=n[6];if(0!==E){q(8);var N=K(),T=jpt(e);I0(W,E),O(N,jpt(e)-T|0)}var F=n[7];if(0!==F){q(9);var M=K(),G=jpt(e);$(P,Mr,F),O(M,jpt(e)-G|0)}var R=n[8],Q=G0(R);if(0!==R){q(12);var C=K(),H=jpt(e);P(Q),O(C,jpt(e)-H|0)}var V=n[5];if(0!==V){q(10);var L=K(),z=jpt(e);d[1]=jpt(e),$(P,Fr,V),O(L,jpt(e)-z|0)}var S=n[8];if(0!==S){q(11);var Z=K(),X=jpt(e);$(P,Pr,S),O(Z,jpt(e)-X|0)}Ur(r[2]);var J=r[4];sr(Xdr,br,J[2]),sr(Jdr,br,J[1]);var Y=r[5];sr(r_r,br,Y[2]),sr(e_r,br,Y[3]);var rr=Y[1];if(0!==Y[1]){q(0);var nr=K(),tr=jpt(e);U(n_r);if(0!==rr){q(0);var ar=K(),ur=jpt(e);$(P,U,rr),O(ar,jpt(e)-ur|0)}O(nr,jpt(e)-tr|0)}sr(Ydr,br,r[6]);var fr=F1(Zdr,r[8]);er(Wdr,br,fr,fr!==kQ?1:0);var ir=r[7];ir&&er("sourceMappingURL",U,ir[1],1);var vr=T8n[1];if(!vr)return vr;q(0);var cr=K(),Ar=jpt(e);U(".debug_abbrev");for(var or=lpt,jr=0;or;){var dr=or[1],yr=or[2];lr(jr+1|0);var Gr=dr[3],Cr=dr[2];if(lr(dr[1]&Fn),q(Cr),0===Gr)throw gQ([0,xz,zdr],1);for(var Hr=Gr;;){if(!Hr){Br(),Br(),or=yr,jr=jr+1|0;break}var Vr=Hr[1],Lr=Hr[2],zr=Vr[2];lr(Vr[1]),lr(zr),Hr=Lr}}Br(),O(cr,jpt(e)-Ar|0),Kr(k[1]),Or(k[1]),Rr(),Qr(n[5]);if(cL(p[1],Vdr)){q(0);var Sr=K(),Zr=jpt(e);U(".debug_info");var Wr=_r(),Xr=jpt(e);kr(5),q(1),q(4),pr(0),wr[1]=Wr;var Jr=p[1];!Jr||Jr[2]?FY("expected one toplevel tag"):$r(1,Jr[1]),hr(Wr,jpt(e)-Xr|0),uz(xr[1],0),O(Sr,jpt(e)-Zr|0)}var Yr=b[1];er(".debug_str",function r(e){if(!e)return 0;var n=e[1][1];return r(e[2]),mr(n)},Yr,0!==Yr?1:0)}(r);for(var Cr=S2(n),Hr=[0,[0,"mappings",[0,DF,T1(Cr,0,GY(0,AV(Cr)-1|0))]],0],Vr=[0,[0,"sourcesContent",[0,ij,H0(function(r){return r===kQ?Q:[0,DF,r]},u[1])]],Hr],Lr=[0,cO,[0,p_r,[0,[0,"sources",[0,ij,H0(function(r){return[0,DF,r]},a[1])]],Vr]]],zr=e[1],Sr=w1(zr[1][1],0,zr[2]),Xr=e[2][1];;){if(!Xr){var Jr=x1(Sr);return xet(0,0,0,0,Lr),[0,,Jr]}var Yr=Xr[1],re=Xr[2];dC(Sr,Yr[1],Yr[2]),Xr=re}}var ypt=[Gl,"Wasm_exts.CustomModuleDecode.EOS",zH()];function wpt(r){return AV(r[2])}function gpt(r){return r[3][1]}function qpt(r,e){var n=wpt(e)<(gpt(e)+r|0)?1:0;if(n)throw gQ(ypt,1);return n}function Ipt(r,e){if(0>r)throw gQ(ypt,1);qpt(r,e),e[3][1]=e[3][1]+r|0}function Dpt(r){return BL(r[2],r[3][1])}function Ept(r){var e=wpt(r);return gpt(r)===e?0:[0,Dpt(r)]}function Npt(r){var e=r[3][1];return function(n){r[3][1]=e}}var Tpt=H9n()[1];function Fpt(r,e){return[0,r[1],-1,e]}function Mpt(r,e,n){var t=Fpt(r,n);return[0,Fpt(r,e),t]}function Ppt(r,e,n){throw gQ([0,Tpt,Mpt(r,e,e),n],1)}function Upt(r,e,n,t){var a=1-r;return a?Ppt(e,n,t):a}function Gpt(r){try{qpt(1,r);var e=Dpt(r);return Ipt(1,r),e}catch(e){var n=NL(e);if(n===ypt)return Ppt(r,wpt(r),MS);throw gQ(n,0)}}function $pt(r){return function(e){try{var n=gpt(e);return Ipt(r,e),T1(e[2],n,r)}catch(r){var t=NL(r);if(t===ypt)return Ppt(e,wpt(e),MS);throw gQ(t,0)}}}function Kpt(r){return function(e){try{return void Ipt(r,e)}catch(r){var n=NL(r);if(n===ypt)return Ppt(e,wpt(e),MS);throw gQ(n,0)}}}function Opt(r,e,n){var t=gpt(e)-1|0;try{var a,u=Gpt(e)}catch(a){var f=NL(a);if(f!==ypt)throw gQ(f,0);u=Ppt(e,wpt(e),MS)}return Upt(u===r?1:0,e,t,n)}function Rpt(r,e,n){return Ppt(r,e,"illegal opcode "+uz(H6(S_r),n))}function Qpt(r,e){var n=gpt(e),t=uz(r,e);return[0,Mpt(e,n,gpt(e)),t]}function Cpt(r){var e=Gpt(r);return(Gpt(r)<<8)+e|0}function Hpt(r){return Cpt(r)+(Cpt(r)<<16)|0}function Vpt(r,e){Upt(0>>0)return Ppt(r,gpt(r)-1|0,"malformed value type");switch(e){case 0:return 3;case 1:return 2;case 2:return 1;default:return 0}}function tmt(r,e){var n=Gpt(e);Upt(0===(n&ae)?1:0,e,gpt(e)-1|0,"malformed limits flags");var t=4&~n?0:1;return[0,[0,uz(r,e),1&~n?0:[0,uz(r,e)]],t]}function amt(r){var e=-16===Zpt(r)?0:Ppt(r,gpt(r)-1|0,"malformed element type");return[0,tmt(zpt,r)[1],e]}function umt(r){var e=tmt(Spt,r);return[0,e[1],e[2]?1:0]}function fmt(r){var e=nmt(r),n=Gpt(r);return[0,e,0===n?0:1===n?1:Ppt(r,gpt(r)-1|0,"malformed mutability")]}function imt(r){return Opt(11,r,"END opcode expected")}function vmt(r){return Opt(0,r,"zero byte expected")}function cmt(r){var e=zpt(r),n=gpt(r)-1|0;return Upt(T9n(e,32),r,n,"malformed memop flags"),[0,e,Spt(r)]}function Amt(r){var e=Ept(r);if(e){var n=e[1];if(64===n)return Kpt(1)(r),L_r;if(64===(n&nF))return[1,[0,nmt(r)]]}var t=gpt(r),a=uV(Lpt(33,r));return[0,[0,Mpt(r,t,gpt(r)),a]]}function omt(r){var e=gpt(r),n=Gpt(r);if(cc>=n>>>0){var t=n;if(ZN>t){if(62<=t)switch(t){case 62:var a=cmt(r);return[14,[0,1,a[1],a[2],gkr]];case 63:return Opt(0,r,y_r),5;case 64:return Opt(0,r,w_r),6;case 65:var u=gpt(r),f=uV(Lpt(32,r));return[16,[0,Mpt(r,u,gpt(r)),[0,f]]];case 66:var i=gpt(r),v=Lpt(64,r);return[16,[0,Mpt(r,i,gpt(r)),[1,v]]];case 67:var c=gpt(r),A=m9n(Hpt(r));return[16,[0,Mpt(r,c,gpt(r)),[2,A]]];case 68:var o=gpt(r),s=$9n(Hpt(r)),b=y9n(rV(s,kV($9n(Hpt(r)),32)));return[16,[0,Mpt(r,o,gpt(r)),[3,b]]];case 69:return Xpr;case 70:return Ypr;case 71:return rmr;case 72:return emr;case 73:return nmr;case 74:return umr;case 75:return fmr;case 76:return tmr;case 77:return amr;case 78:return imr;case 79:return vmr;case 80:return Jpr;case 81:return cmr;case 82:return Amr;case 83:return omr;case 84:return smr;case 85:return Bmr;case 86:return jmr;case 87:return bmr;case 88:return lmr;case 89:return kmr;case 90:return pmr;case 91:return mmr;case 92:return dmr;case 93:return _mr;case 94:return xmr;case 95:return hmr;case 96:return ymr;case 97:return wmr;case 98:return gmr;case 99:return qmr;case 100:return Dmr;case 101:return Imr;case 102:return Emr;case 103:return Rkr;case 104:return Qkr;case 105:return Ckr;case 106:return ipr;default:return vpr}switch(t){case 0:return 0;case 1:return 1;case 2:var l=Amt(r),B=smt(r);return imt(r),[0,l,B];case 3:var j=Amt(r),k=smt(r);return imt(r),[1,j,k];case 4:var p=Amt(r),m=smt(r);if(OH(Ept(r),x_r)){Opt(5,r,"ELSE or END opcode expected");var d=smt(r);return imt(r),[2,p,m,d]}return imt(r),[2,p,m,0];case 5:return Ppt(r,e,"misplaced ELSE opcode");case 11:return Ppt(r,e,"misplaced END opcode");case 12:var _=gpt(r),h=zpt(r);return[3,[0,Mpt(r,_,gpt(r)),h]];case 13:var x=gpt(r),y=zpt(r);return[4,[0,Mpt(r,x,gpt(r)),y]];case 14:var w=Ypt(function(r){var e=gpt(r),n=zpt(r);return[0,Mpt(r,e,gpt(r)),n]},r),g=gpt(r),q=zpt(r);return[5,w,[0,Mpt(r,g,gpt(r)),q]];case 15:return 4;case 16:var I=gpt(r),D=zpt(r);return[6,[0,Mpt(r,I,gpt(r)),D]];case 17:var E=gpt(r),N=zpt(r),T=[0,Mpt(r,E,gpt(r)),N],F=gpt(r),M=zpt(r);return[7,[0,Mpt(r,F,gpt(r)),M],T];case 26:return 2;case 27:return 3;case 32:var P=gpt(r),U=zpt(r);return[8,[0,Mpt(r,P,gpt(r)),U]];case 33:var G=gpt(r),$=zpt(r);return[9,[0,Mpt(r,G,gpt(r)),$]];case 34:var K=gpt(r),O=zpt(r);return[10,[0,Mpt(r,K,gpt(r)),O]];case 35:var R=gpt(r),Q=zpt(r);return[11,[0,Mpt(r,R,gpt(r)),Q]];case 36:var C=gpt(r),H=zpt(r);return[12,[0,Mpt(r,C,gpt(r)),H]];case 40:var V=cmt(r);return[13,[0,0,V[1],V[2],0]];case 41:var L=cmt(r);return[13,[0,1,L[1],L[2],0]];case 42:var z=cmt(r);return[13,[0,2,z[1],z[2],0]];case 43:var S=cmt(r);return[13,[0,3,S[1],S[2],0]];case 44:var Z=cmt(r);return[13,[0,0,Z[1],Z[2],Okr]];case 45:var W=cmt(r);return[13,[0,0,W[1],W[2],Kkr]];case 46:var X=cmt(r);return[13,[0,0,X[1],X[2],$kr]];case 47:var J=cmt(r);return[13,[0,0,J[1],J[2],Gkr]];case 48:var Y=cmt(r);return[13,[0,1,Y[1],Y[2],Ukr]];case 49:var rr=cmt(r);return[13,[0,1,rr[1],rr[2],Pkr]];case 50:var er=cmt(r);return[13,[0,1,er[1],er[2],Mkr]];case 51:var nr=cmt(r);return[13,[0,1,nr[1],nr[2],Fkr]];case 52:var tr=cmt(r);return[13,[0,1,tr[1],tr[2],Tkr]];case 53:var ar=cmt(r);return[13,[0,1,ar[1],ar[2],Nkr]];case 54:var ur=cmt(r);return[14,[0,0,ur[1],ur[2],0]];case 55:var fr=cmt(r);return[14,[0,1,fr[1],fr[2],0]];case 56:var ir=cmt(r);return[14,[0,2,ir[1],ir[2],0]];case 57:var vr=cmt(r);return[14,[0,3,vr[1],vr[2],0]];case 58:var cr=cmt(r);return[14,[0,0,cr[1],cr[2],Ekr]];case 59:var Ar=cmt(r);return[14,[0,0,Ar[1],Ar[2],Dkr]];case 60:var or=cmt(r);return[14,[0,1,or[1],or[2],Ikr]];case 61:var sr=cmt(r);return[14,[0,1,sr[1],sr[2],qkr]];default:return Rpt(r,e,n)}}if(PA>t)switch(t){case 108:return cpr;case 109:return Apr;case 110:return opr;case 111:return spr;case 112:return bpr;case 113:return lpr;case 114:return Bpr;case 115:return jpr;case 116:return kpr;case 117:return ppr;case 118:return mpr;case 119:return dpr;case 120:return _pr;case 121:return Hkr;case 122:return Vkr;case 123:return Lkr;case 124:return hpr;case 125:return xpr;case 126:return ypr;case 127:return wpr;case 128:return gpr;case 129:return qpr;case 130:return Ipr;case 131:return Dpr;case 132:return Epr;case 133:return Npr;case 134:return Tpr;case 135:return Fpr;case 136:return Mpr;case 137:return Ppr;case 138:return Upr;case 139:return Skr;case 140:return zkr;case 141:return Wkr;case 142:return Xkr;case 143:return Jkr;case 144:return Ykr;case 145:return Zkr;case 146:return Gpr;case 147:return $pr;case 148:return Kpr;case 149:return Opr;case 150:return Rpr;case 151:return Qpr;case 152:return Cpr;default:return epr}switch(t){case 154:return rpr;case 155:return tpr;case 156:return apr;case 157:return upr;case 158:return fpr;case 159:return npr;case 160:return Hpr;case 161:return Vpr;case 162:return Lpr;case 163:return zpr;case 164:return Spr;case 165:return Zpr;case 166:return Wpr;case 167:return Umr;case 168:return Gmr;case 169:return $mr;case 170:return Kmr;case 171:return Omr;case 172:return Vmr;case 173:return Lmr;case 174:return zmr;case 175:return Smr;case 176:return Zmr;case 177:return Wmr;case 178:return Xmr;case 179:return Jmr;case 180:return Ymr;case 181:return rdr;case 182:return udr;case 183:return fdr;case 184:return idr;case 185:return vdr;case 186:return cdr;case 187:return Adr;case 188:return odr;case 189:return sdr;case 190:return bdr;case 191:return ldr;case 192:return Nmr;case 193:return Tmr;case 194:return Fmr;case 195:return Mmr;case 196:return Pmr;case 252:var br=gpt(r),lr=Gpt(r);if(11>=lr>>>0)switch(lr){case 0:return Rmr;case 1:return Qmr;case 2:return Cmr;case 3:return Hmr;case 4:return edr;case 5:return ndr;case 6:return tdr;case 7:return adr;case 8:var Br=gpt(r),jr=zpt(r),kr=[0,Mpt(r,Br,gpt(r)),jr];return vmt(r),[15,kr];case 10:return vmt(r),vmt(r),8;case 11:return vmt(r),7}return Rpt(r,br,lr)}}return Rpt(r,e,n)}function smt(r){for(var e=0;;){var n=Ept(r);if(n){var t=n[1];if(5!==t&&11!==t){var a=gpt(r),u=omt(r);e=[0,[0,Mpt(r,a,a),u],e];continue}}return Q0(e)}}function bmt(r){var e=Qpt(smt,r);return imt(r),e}function lmt(r){var e=Ept(r);if(!e)return 0;var n=e[1];if(12>>0)var t=Ppt(r,gpt(r),"malformed section id");else switch(n){case 0:t=wN;break;case 1:t=HK;break;case 2:t=Hy;break;case 3:t=HO;break;case 4:t=Fs;break;case 5:t=_d;break;case 6:t=wr;break;case 7:t=Q$;break;case 8:t=o;break;case 9:t=cN;break;case 10:t=II;break;case 11:t=Ng;break;default:t=If}return[0,t]}function Bmt(r,e,n,t){var a=lmt(t);return a&&OH(a[1],r)?(Gpt(t),emt(function(r){return e},t)):n}function jmt(r){return[0,zpt(r),nmt(r)]}function kmt(r,e,n,t){var a=Npt(t),u=lmt(t);if(!u)return n;var f=u[1];if("number"==typeof f&&wN===f){Gpt(t);var i=Wpt(t),v=gpt(t),c=v+i|0;if(uz(r,rmt(t))){var A=fz(e,c,t);return Upt(gpt(t)===c?1:0,t,v,C_r),A}return a(0),n}return n}function pmt(r){var e=Ort("icp:public "+r),n=Ort("icp:private "+r);return function(r){return OH(e,r)?R_r:OH(n,r)?Q_r:0}}function mmt(r,e,n,t){var a=Npt(t),u=lmt(t);if(!u)return n;var f=u[1];if("number"==typeof f&&wN===f){Gpt(t);var i=Wpt(t),v=gpt(t),c=v+i|0,A=rmt(t),o=pmt(r)(A);if(o){var s=o[1],b=fz(e,c,t);return Upt(gpt(t)===c?1:0,t,v,O_r),[0,[0,s,b]]}return a(0),n}return n}function dmt(r,e){if(gpt(e)>r)throw gQ([0,xz,I_r],1);if(gpt(e)===r)return 0;var n=uV(Vpt(8,e)),t=zpt(e),a=gpt(e)+t|0;if(cL(n,1))if(cL(n,2))var u=Ppt(e,gpt(e)-1|0,"unsupported dylink.0 subsection");else{var f=Ypt(Xpt,e);if(gpt(e)!==a)throw gQ([0,xz,g_r],1);u=[1,f]}else{var i=zpt(e),v=zpt(e),c=zpt(e),A=zpt(e);if(gpt(e)!==a)throw gQ([0,xz,q_r],1);u=[0,[0,i,v,c,A]]}return[0,u,dmt(r,e)]}function _mt(r){return OH(r,Ort("dylink.0"))}function hmt(r){function e(e){return[0,zpt(e),uz(r,e)]}return function(r){return Ypt(e,r)}}var xmt=hmt(Xpt),ymt=hmt(xmt);function wmt(r,e){var n=Gpt(e);if(9>=n>>>0)switch(n){case 0:return[0,[0,emt(function(r){return Xpt},e)],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10]];case 1:var t=emt(function(r){return xmt},e),a=r[10],u=r[9],f=r[8],i=r[7],v=r[6],c=r[5],A=r[4],o=r[3],s=QY(r[2],t);return[0,r[1],s,o,A,c,v,i,f,u,a];case 2:var b=emt(function(r){return ymt},e),l=r[10],B=r[9],j=r[8],k=r[7],p=r[6],m=r[5],d=r[4],_=QY(r[3],b);return[0,r[1],r[2],_,d,m,p,k,j,B,l];case 3:var h=emt(function(r){return ymt},e),x=r[10],y=r[9],w=r[8],g=r[7],q=r[6],I=r[5],D=QY(r[4],h);return[0,r[1],r[2],r[3],D,I,q,g,w,y,x];case 4:var E=emt(function(r){return xmt},e),N=r[10],T=r[9],F=r[8],M=r[7],P=r[6],U=QY(r[5],E);return[0,r[1],r[2],r[3],r[4],U,P,M,F,T,N];case 5:var G=emt(function(r){return xmt},e),$=r[10],K=r[9],O=r[8],R=r[7],Q=QY(r[6],G);return[0,r[1],r[2],r[3],r[4],r[5],Q,R,O,K,$];case 6:var C=emt(function(r){return xmt},e),H=r[10],V=r[9],L=r[8],z=QY(r[7],C);return[0,r[1],r[2],r[3],r[4],r[5],r[6],z,L,V,H];case 7:var S=emt(function(r){return xmt},e),Z=r[10],W=r[9],X=QY(r[8],S);return[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],X,W,Z];case 8:var J=emt(function(r){return xmt},e),Y=r[10],rr=QY(r[9],J);return[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],rr,Y];default:var er=emt(function(r){return xmt},e),nr=QY(r[10],er);return[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],nr]}var tr=uz(H6(K_r),n);return Ppt(e,gpt(e),tr)}function gmt(r){return OH(r,Ort($_r))}function qmt(r){return OH(r,Ort(U_r))}function Imt(r,e){var n=gpt(e),t=$pt(r-n|0)(e);try{return Ort(Xpt(e)),t}catch(r){var a=NL(r);if(a===C9n)return Ppt(e,n,P_r);throw gQ(a,0)}}var Dmt=pmt(Z_r),Emt=pmt(W_r),Nmt=pmt(X_r);function Tmt(r,e){return 0!==uz(r,e)?1:0}function Fmt(r){return OH(r,Ort(D_r))}function Mmt(r){var e=_mt(r);if(e)var n=e;else{var t=gmt(r);if(t)n=t;else{var a=qmt(r);if(a)n=a;else{var u=Tmt(Dmt,r);if(u)n=u;else{var f=Tmt(Emt,r);if(f)n=f;else n=Tmt(Nmt,r)||Fmt(r)}}}}return 1-n}function Pmt(r,e){return Kpt(r-gpt(e)|0)(e),1}function Umt(r){return kmt(Mmt,Pmt,0,r)}function Gmt(r,e){for(;;){var n=uz(r,e);if(!n)return n}}function $mt(r){return[0,r[2],r[4]-r[3]|0]}var Kmt=P2([0,function(r,e){var n=nH(r[1],e[1]),t=e[2],a=r[2];return 0===n?fz(_ct[1],a,t):n}]);function Omt(r,e){var n=e[3],t=e[2],a=e[1];return cz(w7n(r)(Khr),hst,a,t,hst,n)}function Rmt(r,e){var n=e[3],t=e[1],a=e[2][1];return cz(w7n(r)($hr),hst,t,a,hst,n)}function Qmt(r,e){return grt(Omt,r,e)}var Cmt=[Gl,"Mo_frontend.Bi_match.Bimatch",zH()];function Hmt(r,e,n){var t=r?r[1]:0,a=e?e[1]:0;return[0,Cmt,n,t,a]}function Vmt(r,e,n){throw gQ(Hmt([0,r?r[1]:0],[0,e?e[1]:0],n),1)}function Lmt(r){return gct[44][30].call(null,r[1])}var zmt=P2(hct);function Smt(r,e){return grt(Rmt,r,e)}function Zmt(r){return 1-cAt(Xct(r))}function Wmt(r){var e=dAt(r);if(e[2])throw gQ([0,xz,Mhr],1);return e[1]}function Xmt(r,e){var n=CAt(r);return 1-gct[44][7].call(null,n,e)}function Jmt(r,e){var n=e[2],t=e[1];return Tot(0,gct[17].call(null,r,t),gct[17].call(null,r,n))?[0,[0,t,n]]:0}function Ymt(r,e,n,t){var a=iz(r,0,n,gct[17].call(null,e,t));return gct[2].call(null,e,a,t)}function rdt(r,e){if(Lmt(r))return 1;var n=VAt([0,e,0]);return gct[44][7].call(null,r[1],n)}function edt(r,e,n,t,a){var u=[0,gct[44][1]],f=[0,0];function i(r,t){var i=gct[17].call(null,r,a);if(Dot(0,t,i))return[0,i];if(!Tot(0,t,i)){var v=r[1];return Vmt(0,0,cz(D7n(v5n,Dhr),v,Smt,[0,t,r,i],Qmt,[0,t,"f){N=E;break r}}N=3}a[1]=gct[2].call(null,v,N,D)}(t,n),a[1]}(0,gct[44][24].call(null,function(r,e){return gct[2].call(null,r,0,e)},u,gct[1]),w),q=[0,u,j,[0,h,_],g,y,a,gct[1],ihr];return function(r,e){var n=H0(function(r){return Sct(t,r)},e),a=H0(function(r){return Sct(t,r[1])},r),u=H0(function(r){return Sct(t,r[2])},r),f=ndt(q,[0,a,u,H0(function(r){return r[3]},r)],n),i=f[1],v=f[2];return[0,H0(function(r){return Qct(i,r)},t),v]}}function adt(r,e,n){if(Lmt(e)){if(0===n)return[0,r];throw gQ([0,xz,uhr],1)}for(var t=U8,a=n;;){var u=t[3],f=t[2],i=t[1];if(!a)break;var v=a[1];t=[0,[0,v[1],i],[0,v[2],f],[0,v[3],u]],a=a[2]}var c=Q0(u),A=Q0(f),o=ndt(e,[0,Q0(i),A,c],0),s=o[1];if(Lmt(o[2]))return[0,H0(function(r){return gct[17].call(null,r,s)},e[6])];throw gQ([0,xz,fhr],1)}var udt=P2([0,ojt]),fdt=P2([0,z1]),idt=U2([0,z1]),vdt=P2([0,nH]);function cdt(r,e,n){for(var t=[0,r[2]];;){var a=uz(e,t[1]);if(!udt[31].call(null,a,n))return[0,uz(e,t[1])];t[1]=fz(r[6],r[3],t[1])}}function Adt(r,e,n){for(var t=[0,r[2]];;){var a=uz(e,t[1]);if(!udt[31].call(null,a,n))return[0,uz(e,t[1])];t[1]=uz(r[5],t[1]),fz(r[17],t[1],r[2])&&(t[1]=fz(r[6],r[3],t[1]))}}function odt(r,e,n){var t=udt[9].call(null,n),a=w0(GAt(r),KY)-t|0;if(0===a)return 0;if(2===e&&1>>1|0;var i=H0(function(r){return r[2]},s1(nH,u1(function(r){var n=ztt(e,r);return!V1(e,r)&&n>u?0:[0,[0,n,r]]},t)));if(0===i)return 0;var v=Jdt(Txr,Nxr,i);return[0,fz(H6(Fxr),r,v)]}function r_t(r,e,n,t){var a=Jct(n),u=Jct(t);if("number"!=typeof a&&2===a[0]&&"number"!=typeof u&&2===u[0]){var f=[0,0];if(Wot[23].call(null,function(r,a){if(V1(gxr,r))return 0;var u=Wot[24].call(null,function(r,e,n){return a===e[1]?[0,r]:n},e,0),i=u?[0,[0,u[1],""]]:g8n[24].call(null,function(e,n,t){var a=vet(iet(n),r);if(!a)return t;var u=u8n(a[1]),f=r8n(u);return[0,[0,f,iz(H6(wxr),f,e,u)]]},P8n[1],0);if(!i)return 0;var v=i[1],c=f[1];return f[1]=QY(function(r,e,n,t,a){var u=[0,0],f=[0,LAt[1]];return function e(n,i){if(!LAt[31].call(null,i,f[1])){f[1]=LAt[2].call(null,i,f[1]);var v=Jct(i);if("number"!=typeof v&&3===v[0])for(var c=v[2];;){if(!c)return;var A=c[2],o=c[1],s=o[2],b=o[1],l=Xct(s);if("number"==typeof l)c=A;else switch(l[0]){case 3:e(n+Ku+b,l),c=A;break;case 8:if(!V1("to",b)&&!V1("from",b)){c=A;break}if(Tot(0,s,[8,0,0,0,[0,t,0],[0,a,0]])){var B=u[1];u[1]=[0,iz(H6(Dxr),n,b,r),B],c=A}else c=A;break;default:c=A}}}}(e,n),u[1]}(v[2],v[1],a,n,t),c),0},r),0===f[1])return"";var i=Jdt(",\n ",qxr,f[1]);return uz(H6(Ixr),i)}return""}function e_t(r){for(var e=g8n[39].call(null,P8n[1]),n=0;;){var t=uz(e,0);if(!t)return n?n[1]:r;var a=t[2],u=t[1],f=u[1],i=u[2];if(n)e=a;else{var v=vet(iet(i),iet(r));if(v){var c=v[1];if(r8n(c)===Da)e=a,n=[0,uz(H6(xxr),f)];else{var A=u8n(c);e=a,n=[0,fz(H6(yxr),f,A)]}}else e=a,n=0}}}var n_t=P2([0,z1]);function t_t(r){return Wot[25].call(null,function(r){return[0,r[1],r[2],r[3],0]},r)}var a_t=Pdt[7],u_t=Pdt[6],f_t=Pdt[5],i_t=gct[44][3].call(null,ubt),v_t=Wot[5].call(null,Xot,ubt),c_t=[0,Pdt[1],Pdt[2],v_t,i_t,f_t,u_t,a_t],A_t=P2([0,function(r,e){return fz(aut[1],r[2],e[2])}]);function o_t(r,e){var n=fut[39].call(null,e[7]),t=tct[22].call(null,n),a=[0,A_t[1]],u=[0,Wot[1]],f=gct[1],i=Wot[1],v=e[6],c=Wot[1],A=e[4],o=e[3],s=e[2];return[0,t_t(e[1]),s,o,A,c,v,i,0,1,0,1,0,0,0,r,f,1,u,a,[0,0],[0,0],0,0,t,0,0,0]}function s_t(r,e){var n=Wot[4].call(null,e,function(r){return r?[0,r[1]]:jPr},r[18][1]);r[18][1]=n}function b_t(r){return Wot[24].call(null,function(r,e,n){return n_t[2].call(null,r,n)},r,n_t[1])}function l_t(r,e){var n=A_t[2].call(null,e,r[19][1]);return r[19][1]=n,0}function B_t(r){var e=r[2];if(0===e[0]){var n=e[2][2];if("number"!=typeof n&&0===n[0]&&OH(e[1],n[1]))return 1}return 0}var j_t=[Gl,"Mo_frontend.Typing.Recover",zH()];var k_t=[8,0,0,[0,Jot,0],[0,sS,0],[0,[9,0,[0,Xot,0],rS],0]],p_t=[8,0,0,[0,Jot,0],0,[0,[9,1,[0,Xot,0],rS],0]];function m_t(r,e){try{return[0,uz(r,e)]}catch(r){var n=NL(r);if(n===j_t)return 0;throw gQ(n,0)}}function d_t(r,e){try{return uz(r,e)}catch(r){var n=NL(r);if(n===j_t)return 0;throw gQ(n,0)}}function __t(r,e,n){var t=m_t(r,e),a=m_t(r,n);if(t&&a)return[0,t[1],a[1]];throw gQ(j_t,1)}function h_t(r,e){var n=[0,0],t=u1(function(e){try{return[0,uz(r,e)]}catch(r){var t=NL(r);if(t!==j_t)throw gQ(t,0);return n[1]=1,0}},e);if(n[1])throw gQ(j_t,1);return t}function x_t(r){return"`"+r+"`"}function y_t(r,e){return grt(Ist,r,e)}function w_t(r,e){return grt(hst,r,e)}function g_t(r,e){return grt(xst,r,e)}function q_t(r,e){return fz(w7n(r)(Z8),xst,e)}function I_t(r,e,n,t){if(Nst(r,e,t))return 0;var a=Est(t);return uz(w7n(n)(lPr),a)}function D_t(r,e,n){return L0(uz(r,e),n)}function E_t(r){return 1===G0(r)?"":bPr}function N_t(r,e){if(0===e)return w7n(r)(oPr);var n=E_t(e),t=G0(e);return vz(w7n(r)(sPr),t,n,function(r,e){return D_t(g_t,r,e)},e)}function T_t(r,e){if(0===e)return w7n(r)(cPr);var n=E_t(e),t=G0(e);return vz(w7n(r)(APr),t,n,function(r,e){return D_t(g_t,r,e)},e)}function F_t(r,e){var n=Xct(e);if("number"!=typeof n&&3===n[0]){var t=n[3],a=n[2],u=n[1];if(!I8n[1]){var f=G0(t);if(16<=(G0(a)+f|0)){switch(u){case 0:var i=nPr;break;case 1:i=tPr;break;case 2:i=aPr;break;case 3:i=uPr;break;default:i=fPr}return uz(w7n(r)(iPr),i)}}return fz(w7n(r)(ePr),g_t,e)}return fz(w7n(r)(vPr),w_t,e)}function M_t(r,e){var n=I8n[1];if(!n)return n;var t=Nct(0,Wot[24].call(null,function(r,e,n){var t=e[1];return r===Oc||rkt(r)?n:[0,[0,r,t],n]},e,0));return fz(w7n(r)(rPr),w_t,t)}function P_t(r,e){var n=I8n[1];if(!n)return n;var t=Nct(0,j1(Wot[39].call(null,e)));return fz(w7n(r)(YMr),w_t,t)}function U_t(r,e){var n=I8n[1];if(!n)return n;var t=Tct(0,0,Wot[24].call(null,function(r,e,n){if(!rkt(r)){var t=0t&&!a)return;return O_t(0,0,0,r,e,"M0035",SFr)}}}function wht(r,e){var n=Xct(e);return"number"!=typeof n&&1===n[0]?gct[18].call(null,n[1],r[16]):0}function ght(r){var e=r[2],n=r[1],t=n[1]===kQ?"":r8n(n[1]);return sut([0,[0,t,n[2],n[3]],[0,t,e[2],e[3]]])}function qht(r,e,n,t){var a=wht(r,t);if(!a)return Aht(r,e,t,[1,ubt,0])?iz($_t(r,w7n)(n),LFr,hst,t):0;var u=ght(a[1]);return vz($_t(r,w7n)(n),VFr,hst,t,u)}function Iht(r,e,n){var t=wht(r,e);if(t){var a=t[1],u=a[2],f=[0,u[1],u[2],a[2][3]-1|0],i=[0,a[1],a[1]],v=ght(n),c=wst(e);fz(C_t(r,i,CFr),c,v);var A=ght(n),o=wst(e);return fz(C_t(r,[0,f,f],HFr),o,A)}}function Dht(r,e,n,t,a,u){if(e){switch(e[1]){case 0:if(n&&t&&!t[1][2]){var f=n[1],i=r[27],v=r[26],c=r[25],A=r[24],o=r[23],s=r[22],b=r[21],l=r[20],B=r[19],j=r[18],k=r[17],p=gct[2].call(null,f,u,r[16]),m=r[15],d=r[14],_=r[13],h=r[12],x=r[11],y=r[10],w=r[8],g=r[7],q=r[6],I=r[5],D=r[4],E=Wot[2].call(null,Xot,f,r[3]);return[0,r[1],r[2],E,D,I,q,g,w,[0,f],y,x,h,_,d,m,p,k,j,B,l,b,s,o,A,c,v,i]}break;case 1:if(n&&t&&!t[1][2]){var N=n[1],T=r[27],F=r[26],M=r[25],P=r[24],U=r[23],G=r[22],$=r[21],K=r[20],O=r[19],R=r[18],Q=r[17],C=gct[2].call(null,N,u,r[16]),H=r[15],V=r[14],L=r[13],z=r[12],S=r[11],Z=r[10],W=r[8],X=r[7],J=r[6],Y=r[5],rr=r[4],er=Wot[2].call(null,Xot,N,r[3]);return[0,r[1],r[2],er,rr,Y,J,X,W,[1,N],Z,S,z,L,V,H,C,Q,R,O,K,$,G,U,P,M,F,T]}break;default:if(n&&t&&!t[1][2]){var nr=n[1],tr=r[27],ar=r[26],ur=r[25],fr=r[24],ir=r[23],vr=r[22],cr=r[21],Ar=r[20],or=r[19],sr=r[18],br=r[17],lr=gct[2].call(null,nr,u,r[16]),Br=r[15],jr=r[14],kr=r[13],pr=r[12],mr=r[11],dr=r[10],_r=r[8],hr=r[7],xr=r[6],yr=r[5],wr=r[4],gr=Wot[2].call(null,Xot,nr,r[3]);return[0,r[1],r[2],gr,wr,yr,xr,hr,_r,[4,nr],dr,mr,pr,kr,jr,Br,lr,br,sr,or,Ar,cr,vr,ir,fr,ur,ar,tr]}}throw gQ([0,xz,QFr],1)}if(n&&t&&!t[1][2]){var qr=n[1];if(!a||tkt(a[1]))Ir=[1,qr];else var Ir=[3,qr];var Dr=r[27],Er=r[26],Nr=r[25],Tr=r[24],Fr=r[23],Mr=r[22],Pr=r[21],Ur=r[20],Gr=r[19],$r=r[18],Kr=r[17],Or=gct[2].call(null,qr,u,r[16]),Rr=r[15],Qr=r[14],Cr=r[13],Hr=r[12],Vr=r[11],Lr=r[10],zr=r[8],Sr=r[7],Zr=r[6],Wr=r[5],Xr=r[4],Jr=Wot[2].call(null,Xot,qr,r[3]);return[0,r[1],r[2],Jr,Xr,Wr,Zr,Sr,zr,Ir,Lr,Vr,Hr,Cr,Qr,Rr,Or,Kr,$r,Gr,Ur,Pr,Mr,Fr,Tr,Nr,Er,Dr]}return[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],1,r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27]]}function Eht(r,e,n){var t=r[9];if("number"==typeof t){if(0===t)return fz(R_t(0,0,0,r,n,GFr,UFr),e,e),[0,[1,fbt,0],function(r){return 1}]}else switch(t[0]){case 0:return[0,[1,t[1],0],function(r){return 0}];case 4:return[0,[1,t[1],0],function(r){return[5,r]}];case 5:return fz(R_t(0,0,0,r,n,KFr,$Fr),e,e),[0,[1,fbt,0],function(r){return 1}];case 3:break;default:return[0,[1,t[1],0],function(r){return[2,r]}]}return uz(R_t(0,0,0,r,n,RFr,OFr),e),[0,[1,fbt,0],function(r){return 1}]}function Nht(r,e,n){var t=r[9];if("number"==typeof t){if(0===t)return}else switch(t[0]){case 3:break;case 2:case 5:return;default:return uz(R_t(0,0,0,r,n,DFr,IFr),e)}return uz(R_t(0,0,0,r,n,NFr,EFr),e)}function Tht(r,e,n,t){if(n&&!n[1][2]&&t){var a=t[2],u=t[1],f=n[2];return[0,[3,1===e?ubt:u],f,a]}return[0,1,n,t]}function Fht(r,e){var n=function(r,e){var n=e[2];switch(n[0]){case 0:var t=n[2],a=n[1],u=a[2];r:if(0===u[0]){var f=u[1];s_t(r,f[2]);var i=Wot[18].call(null,f[2],r[3]);if(i)var v=i[1];else{var c=r[3],A=f[2],o=f[1],s=Wot[48].call(null,r[3]),b=Ydt(Hxr,f[2],s);v=iz(O_t(0,[0,L_t(r,f[1],b)],0,r,o,Cxr,Qxr),A,U_t,c)}}else{var l=u[2],B=mht(r,u[1]),j=B[3],k=B[2],p=B[1];try{var m=PAt(l[2],j),d=m?m[1]:AAt(Nvr)}catch(f){var _=NL(f);if(_[1]!==kz)throw gQ(_,0);var h=l[2],x=l[1],y=H0(function(r){return r[1]},k),w=Ydt(zxr,l[2],y);v=iz(O_t(0,[0,L_t(r,l[1],w)],0,r,x,Lxr,Vxr),h,F_t,[3,p,k,j]);break r}for(var g=j,q=l[2];;){if(g){var I=g[1],D=g[2];if(I[1]!==q){g=D;continue}var E=[0,I]}else E=0;var N=E?E[1][3][1]:AAt(Evr);z_t(r,a[1],Sxr,l[2],N);v=d;break}}a[3]=[0,v];var T=H0(function(e){return Fht(r,e)},t),F=H0(function(r){var e=Sct(T,r[3]);return[0,r[1],r[2],e]},Jvt(v)[1]),M=e[1];return Oht(r,F,T,H0(function(r){return r[1]},t),M),[1,v,T];case 1:var P=n[1];if(P===Ea)return 0;if(P===Gc)return 1;try{return[2,Gct(P)]}catch(f){var U=NL(f);if(U[1]===kz)return O_t(0,0,0,r,e[1],Jxr,Xxr);throw gQ(U,0)}case 2:var G=n[2],$=n[1];lht(r,ryr,Yxr,u1(function(r){var e=r[2];return 0===e[0]?[0,e[1]]:0},G)),lht(r,nyr,eyr,u1(function(r){var e=r[2];return 0===e[0]?0:[0,e[1]]},G));var K=$[2],O=c1(function(r){return r},h_t(function(e){return Uht(r,K,e)},G)),R=O[1],Q=s1(qct,O[2]),C=s1(qct,R);return[3,$[2],C,Q];case 3:var H=n[1],V=Fht(r,n[2]);return[5,Bht(H)(V)];case 4:return[6,Fht(r,n[1])];case 5:var L=n[1];return lht(r,ayr,tyr,H0(function(r){return r[2][1]},L)),[4,s1(qct,H0(function(e){return Ght(r,e)},L))];case 6:return[7,h_t(function(e){return Mht(r,e)},n[1])];case 7:var z=n[4],S=n[3],Z=n[1],W=$ht(r,n[2]),X=W[2],J=W[1],Y=e[1],rr=Z[2],er=Dht(fht(r,W[3],W[4]),rr,J,X,0,Y),nr=_ht(S),tr=hht(Z[2],z),ar=tr[1],ur=function(r){return Mht(er,r)},fr=__t(function(r){return h_t(ur,r)},nr,tr[2]),ir=fr[2],vr=fr[1];yht(r,z[1],Z[2],ar,ir);var cr=1-r[13];r:if(cr?0!==Z[2]?1:0:cr){xht(r,e[1],X);for(var Ar=$ct(vr),or=1-JAt(Ar)?(fz(dht(r,Ar,S[1],fyr,uyr),g_t,Ar),ir):ir;or;){var sr=or[2],br=or[1];1-JAt(br)?(fz(dht(r,br,e[1],Wxr,Zxr),g_t,br),or=sr):or=sr}switch(ar){case 0:if(!ir&&OH(Z[2],iyr))break r;break;case 2:break;default:break r}var lr=$ct(ir);fz(O_t(0,0,0,r,z[1],cyr,vyr),g_t,lr)}var Br=H0(function(r){return Hct(J,r)},ir),jr=H0(function(r){return Hct(J,r)},vr),kr=Vct(J,X);return[8,Z[2],ar,kr,jr,Br];case 8:var pr=n[3],mr=n[1],dr=Fht(r,n[2]),_r=Fht(r,pr),hr=1-r[13];return(hr?1-JAt(_r):hr)&&fz(dht(r,_r,pr[1],oyr,Ayr),g_t,_r),[9,mr,dr,_r];case 9:var xr=n[2],yr=n[1],wr=__t(function(e){return Fht(r,e)},yr,xr),gr=wr[2],qr=wr[1];try{var Ir=Zot([0,r[24]],qr,gr)}catch(f){var Dr=NL(f);if(Dr!==vot)throw gQ(Dr,0);Ir=O_t(0,0,0,r,xr[1],byr,syr)}var Er=1-r[13];if(Er){var Nr=vht(r,e[1],Ir,1);if(Nr)var Tr=1-(vht(r,yr[1],qr,1)||vht(r,xr[1],gr,1));else Tr=Nr}else Tr=Er;return Tr&&Az(Q_t(0,0,0,r,e[1],Byr,lyr),w_t,Ir,g_t,qr,g_t,gr),Ir;case 10:var Fr=n[2],Mr=n[1],Pr=__t(function(e){return Fht(r,e)},Mr,Fr),Ur=Pr[2],Gr=Pr[1];try{var $r=Sot([0,r[24]],Gr,Ur)}catch(f){var Kr=NL(f);if(Kr!==vot)throw gQ(Kr,0);$r=O_t(0,0,0,r,Fr[1],kyr,jyr)}var Or=1-r[13];if(Or){var Rr=vht(r,e[1],0,$r);if(Rr)var Qr=1-(vht(r,Mr[1],0,Gr)||vht(r,Fr[1],0,Ur));else Qr=Rr}else Qr=Or;return Qr&&Az(Q_t(0,0,0,r,e[1],myr,pyr),w_t,$r,g_t,Gr,g_t,Ur),$r;case 11:return Fht(r,n[1]);case 12:var Cr=n[1],Hr=Fht(r,n[2]);return[11,Cr[2],Hr];default:return[12,Fht(r,n[1])]}}(r,e);return e[3]=n,n}function Mht(r,e){var n=e[1];if(!n)return Fht(r,e[2]);var t=n[1],a=Fht(r,e[2]);return[11,t[2],a]}function Pht(r,e,n){var t=n[3],a=n[1],u=$ht([0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],1,r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27]],n[2]),f=u[1],i=u[2],v=Hct(f,Fht(fht(r,u[3],u[4]),t)),c=[0,Vct(f,i),v];return kht(r,a,c,e),c}function Uht(r,e,n){var t=n[2];if(0!==t[0]){var a=t[1],u=Pht(r,n[1],[0,a,t[2],t[3]]),f=Wvt(a[2],u);return vct(r[24],a[1]),[1,[0,a[2],f,[0,Act[1],a[1],Act[3]]]]}var i=t[2],v=t[1],c=t[3],A=Fht(r,i),o=Bht(c)(A),s=1-r[13];if((s?1===e?1:0:s)&&1-WAt(o)){var b=wst(o),l=v[2];fz(O_t(0,0,0,r,i[1],"M0042",dyr),l,b)}return vct(r[24],v[1]),[0,[0,v[2],o,[0,Act[1],v[1],Act[3]]]]}function Ght(r,e){var n=e[2],t=n[1],a=Fht(r,n[2]);return vct(r[24],t[1]),[0,t[2],a,[0,Act[1],t[1],Act[3]]]}function $ht(r,e){var n=H0(function(r){return r[2][1][2]},e),t=Z0(function(r,e){var n=e[3];return n?n[1]:Wvt(r,gyr)},n,e);r:{e:{for(var a=Wot[1],u=e,f=t;u;){if(!f)break e;var i=u[1][2][1],v=f[2],c=f[1],A=u[2];if(Wot[32].call(null,i[2],a)){var o=i[2];uz(O_t(0,0,0,r,i[1],"M0044",wyr),o)}a=Wot[2].call(null,i[2],c,a),u=A,f=v}if(!f){var s=a;break r}}s=MY(gz)}for(var b=tht([0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],1,r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27]],n,t),l=H0(function(r){var e=Fht(b,r[2][3]);return[0,r[2][1][2],r[2][2][2],e]},e),B=0,j=l;j;){var k=j[2],p=j[1];if(0!==B&&1!==p[2])throw gQ([0,xz,xyr],1);B=B+1|0,j=k}var m=H0(function(r){return r[3]},l),d=G0(t);r:{e:{for(var _=t,h=e,x=W0(gct[2],t,m,gct[1]);h;){if(!_)break e;for(var y=_[2],w=_[1],g=h[2],q=0,I=0,D=w,E=h[1];;){if(d>>0){if(10!==k)break}else if(3>=k-1>>>0)break;return void(n[1]=[11,Sht(r)(t,p)])}break;case 13:if("number"!=typeof u&&16===u[0]){var m=u[2]-2|0,d=u[1];if(5>>0){if(10!==m)break}else if(3>=m-1>>>0)break;return void(n[1]=[12,Vht(r,13,ABt,t,d)])}break;case 16:if("number"!=typeof u&&16===u[0]&&15===u[2])return void(n[1]=[15,u[1]])}var _=[2,Zht(r,n,t)],h=1-vht(r,t,_,e);if(!h)return h;var x=a?r_t(r[2],r[1],_,e):"";return cz(O_t(0,0,0,r,t,"M0050",yFr),w_t,_,g_t,e,x)}function Xht(r,e,n){var t=n[2];return fz(O_t(0,0,0,r,n[1],"M0051",YTr),e,t)}function Jht(r,e,n,t){return vz(O_t(0,0,0,r,e,"M0060",JTr),g_t,n,g_t,t)}function Yht(r,e){var n=r[2],t=e[2];if(0===n[0]){var a=n[1];return 0===t[0]?YC(a[2],t[1][2]):1}var u=n[1];return 0===t[0]?-1:YC(u[2],t[1][2])}function rxt(r,e,n){var t=Wot[18].call(null,n[2],r[1]);if(t){var a=t[1][1];try{return void Tot([0,r[24]],e,a)}catch(a){var u=NL(a);if(u!==cot&&u!==vot)throw gQ(u,0);return}}}function ext(r,e,n){r:{var t=e,a=n;e:for(;;){var u=a[2];if("number"==typeof u)return;switch(u[0]){case 0:return rxt(r,t,u[1]);case 3:break r;case 4:break e;case 5:var f=u[1];t=qAt(t),a=f;break;case 6:var i=u[2],v=u[1],c=wAt(v[2],t),A=MAt(v[2],c);A?(t=A[1],a=i):(t=1,a=i);break;case 7:var o=u[2];ext(r,t,u[1]),a=o;break;case 1:case 2:return;default:a=u[1]}}for(var s=s1(function(r,e){return YC(r[1],e[1])},u1(function(r){var e=r[2];return 0===e[0]?[0,[0,e[1][2],e[2]]]:0},u[1])),b=Wrt(function(r,e){return YC(r[1],e[1])},yAt(H0(function(r){return r[1]},s),t)[2],s);;){var l=b(0);if(!l)return;var B=l[2],j=l[1];2===j[0]?(ext(r,j[1][2],j[2][2]),b=B):b=B}}for(var k=u[1],p=k,m=IAt(G0(k),t);;){if(m){if(p){var d=p[2],_=m[2];ext(r,m[1],p[1]),p=d,m=_;continue}}else if(!p)return;return MY(wz)}}function nxt(r){var e=r[3];return x_t(e?e[1]+Ku+r[4]:r[4])}function txt(r){var e=r[3];return e?[0,e_t(e[1])]:0}function axt(r,e){for(var n=e,t=0;;){if(!n)return t&&!t[2]?[0,t[1]]:0;let e=n[1];var a=function(n){for(var t=n;;){if(!t)return[0,e,0];var a=t[2],f=t[1];if(fz(r,e,f))return fz(r,f,e)?[0,f,u(a)]:t;if(!fz(r,f,e))return[0,f,u(a)];t=a}};let u=a;n=n[2],t=a(t)}}function uxt(r){var e=r[1],n=Xct(r[2]);return"number"!=typeof n&&3===n[0]&&3===n[1]?[0,[0,e,n[2]]]:0}function fxt(r){return uxt([0,r[1],r[2][1]])}function ixt(r,e){return r?[43,e]:[2,[0,vut,e,XTr]]}function vxt(r,e){return[0,e[1],[19,[0,e[1],r,xS],e,[0,0]],xS]}function cxt(r,e,n,t){function a(r){return Tot(0,r,t)}function u(r,e,t){var u=Wot[39].call(null,e);function f(r){return _0(t,u)}function i(e){var t=e[1],u=FAt(n,e[2]);if(!u)return 0;var f=u[1],i=f[2],v=f[1];if("number"==typeof i||10!==i[0]){var c=f[2],A=f[3];o=a(c)?[0,[0,v,c,A[3]]]:0}else var o=0;if(!o)return 0;var s=o[1],b=s[1],l=s[2],B=iut(b,vut);return[0,[0,vxt(ixt(r,t),B),l,[0,t],b]]}return j1(function(r){return _0(i,f)})}var f=Wot[18].call(null,n,r[1]);r:{if(f){var i=f[1][1];if(a(i)){var v=[0,[0,[0,vut,[2,[0,vut,n,hS]],xS],i,0,n],0];break r}}v=u(0,r[1],fxt)}function c(r,e){return Tot(0,r[2],e[2])}if(!v){var A=u(1,r[2],uxt),o=E0(U8n[1])?axt(c,A):0;return o?[0,o[1]]:[1,[0,A]]}if(!v[2])return[0,v[1]];var s=axt(c,v);return s?[0,s[1]]:[1,[1,function(r){var a=F1(STr,H0(nxt,v)),u=[0,uz(H6(ZTr),a),0],f="named "+x_t(n);return iz(O_t([0,u],0,0,r,e,"M0231",WTr),f,w_t,t)}]]}function Axt(r,e){var n=Xct(r);if("number"!=typeof n&&8===n[0]){var t=n[4];if(t){var a=t[1];if("number"!=typeof a&&11===a[0]){var u=n[3];if("self"===a[1]){var f=a[2];try{var i=tdt(0,u,0)([0,[0,e,f,vut],0],[0,f,0]),v=i[1];adt(v,i[2],0);var c=[0,v]}catch(i){c=0}if(!c)return 0;var A=c[1];return[0,[0,Sct(A,f),n,A]]}}}}return 0}function oxt(r,e,n){var t=Wot[18].call(null,e[2],r[1]);if(t){var a=Axt(t[1][1],n);if(a)var u=a[1],f=[0,[0,0,[0,e[1],[2,[0,e[1],e[2],hS]],xS],u[1],u[2],u[3]]];else f=0}else f=0;function i(r,t,a){var u=Wot[39].call(null,t);function f(r){return _0(a,u)}function i(t){var a=t[1],u=FAt(e[2],t[2]);if(!u)return 0;var f=Axt(u[1][2],n);if(!f)return 0;var i=f[1],v=i[3],c=i[2],A=i[1];return[0,[0,[0,a],vxt(ixt(r,a),e),A,c,v]]}return j1(function(r){return _0(i,f)})}function v(r,e){return Tot(0,e[3],r[3])}if(f)return[0,f[1]];var c=i(0,r[1],fxt);if(c){if(!c[2])return[0,c[1]];var A=axt(v,c);return A?[0,A[1]]:[1,[1,function(r){var n=F1(LTr,u1(function(r){return r[1]},c)),t=e[2];return fz(O_t(0,0,0,r,e[1],"M0224",zTr),t,n)}]]}var o=i(1,r[2],uxt);if(o&&!o[2]){var s=o[1];if(E0(U8n[1]))return[0,s]}var b=E0(U8n[1])?axt(v,o):0;return b?[0,b[1]]:[1,[0,function(r){return u1(function(r){return q0(e_t,r[1])},o)}]]}function sxt(r,e,n,t,a,u){if(1-r[13]&&0!==o9n(QTr)){if(e)return;var f=n[2];if(19===f[0]&&t&&a){var i=a[2],v=a[1],c=f[2],A=t[2],o=t[1];if(("equal"===c[2]||0!==Prt("compare",c[2]))&&1===G0(A))return;var s=oxt(r,c,o);if(0!==s[0])return;var b=s[1][2][2],l=n[2];if(19===b[0]){var B=b[1][2];if(2===B[0]){var j=B[1][2],k=b[2][2];if(19===l[0]){var p=l[1],m=p[2];if(2===m[0]){var d=m[1],_=d[2];if(!d[3][1]){var h=l[2][2];if(j===_&&k===h){if(v[1][1][2]!==v[1][2][2])var x=0;else{var y=v[1];try{for(var w=WY(y[1][1]),g=y[1][2]-1|0;!(0>=g);)YY(w),g=g-1|0;for(var q=y[1][2],I=0,D=y[2][2];;){if(D>>0<3){var Tr=[0,[0,[1,Nr[1],0],wr],[0,a,gr]];break e}1-r[13]&&R_t(0,0,0,r,a,"M0197",Pyr);Tr=[0,[0,[1,fbt,0],wr],[0,a,gr]];break e}n:{if("number"==typeof Nr){if(0===Nr)break n}else switch(Nr[0]){case 0:break n;case 3:break;case 1:case 2:var Fr=Nr[1];if(!OH(C,Uyr)&&!OH(C,Gyr)&&0!==C){if(!OH(C,$yr))break;Tr=O_t(0,0,0,r,a,"M0186",Kyr);break e}Tr=[0,[0,[1,Fr,0],wr],[0,a,gr]];break e;default:var Mr=Nr[1];if(C&&1!==C[1]){Tr=[0,[0,[1,Mr,0],wr],[0,a,gr]];break e}Tr=O_t(0,0,0,r,a,"M0187",Oyr);break e}Tr=O_t(0,0,0,r,a,"M0047",Qyr);break e}Tr=O_t(0,0,0,r,a,"M0188",Ryr);break e}var Pr=Q}else Pr=Q;for(;;){if(Pr){var Ur=1===Pr[1][2]?1:0,Gr=Pr[2];if(Ur){Pr=Gr;continue}var $r=Ur}else $r=1;if(!$r)throw gQ([0,xz,Cyr],1);Tr=[0,wr,gr];break}}var Kr=Tr[1];Oht(r,Q,Kr,Tr[2],a);var Or=Sct(Kr,kr),Rr=Sct(Kr,O);if(r[13]){var Qr=0!==yr?1:0;if(Qr){var Cr=1-s9n(DIr);if(Cr){if(!r[13])throw gQ([0,xz,VIr],1);var Hr=fft(0,function(e){try{var n=Txt([0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],e,r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27]],G,U,Q,kr,O,or,a,u,W)[1],t=G0(n),f=G0(Kr)===t?1:0;if(f)for(var i=n,v=Kr;;){if(v){if(i){var c=i[2],A=v[2],o=Dot(0,v[1],i[1]);if(o){i=c,v=A;continue}var s=o;break}}else if(!i){s=1;break}s=MY(qz);break}else s=f;return[0,s]}catch(r){var b=NL(r);if(b===j_t)return 0;throw gQ(b,0)}}),Vr=0===Hr[0]?Hr[1][1]:0}else Vr=Cr}else Vr=Qr;if(Vr){Q_t(0,0,[0,[0,[0,n[1],""],0]],r,n[1],NIr,EIr);dr=Rr,_r=Or,hr=Kr}else dr=Rr,_r=Or,hr=Kr}else{hxt(r,Or,or);dr=Rr,_r=Or,hr=Kr}}if(n[3]=hr,1-r[13]){0!==C&&(1-zAt(_r)&&fz(O_t(0,0,0,r,e[1],"M0099",TIr),g_t,_r),1-zAt(dr)&&fz(O_t(0,0,0,r,or[1],"M0100",FIr),g_t,dr));var Lr=(0!==C?1:0)||fAt(dr),zr=n[2];r:if(!Lr){if(zr&&zr[1][1]){if(Q&&!Q[1][2])break r;R_t(0,0,0,r,n[1],"M0196",MIr);break r}if(Q&&!Q[1][2]){var Sr=1===G0(Q)?"":", ...";uz(Q_t(0,0,0,r,a,UIr,PIr),Sr)}}sxt(r,U,e,H0(function(r){return Sct(hr,r)},X),L,a);var Zr=H0(function(r){return Sct(hr,r)},X);if(0!==o9n(wIr)){var Wr=G0(L)===J?1:0;if(Wr?er>>0<2)return 0;if(OH(a[1],vut))var k="implicit ",p=r[2][1][1];else k="",p=a[1];return uz(R_t(0,0,0,i,p,"M0133",yNr),k),0}}return 0},t));lht(i,"actor type",INr,z),function(r,e,n){if(1!==e[2])return;if(E0(r[27]))for(var t=n;t;){var a=t[2],u=t[1],f=u[2][3],i=u[2][1][2];if(f&&f[1][2]&&i[0]-1>>>0<2){var v=i[2],c=v[2];switch(c[0]){case 1:if(c[1]===pi){t=a;continue}break;case 41:var A=c[1][2];if(1===A[0]&&A[1]===pi){t=a;continue}}R_t(0,0,0,r,v[1],pNr,kNr),t=a}else t=a}if(!e[3][2]){if(1===K8n[1])for(var o=n,s=0;;){if(!o){if(1-s)return R_t(0,0,0,r,e[1],hNr,_Nr);break}var b=o[2],l=o[1],B=l[2][3],j=l[2][1][2];if(B){var k=B[1];if(k[2])o=b;else{var p=k[1];j[0]-1>>>0<2&&OH(p,vut)?(R_t(0,0,0,r,l[2][1][1],lNr,bNr),o=b,s=1):o=b}}else o=b}return}for(var m=2===K8n[1]?1:0,d=(m?cL(e[3][1],vut):m)?(Q_t(0,0,0,r,e[3][1],dNr,mNr),n):n;;){if(!d)return;var _=d[2],h=d[1],x=h[2][3],y=h[2][1][2];if(x){var w=x[1];if(w[2]){var g=w[1];y[0]-1>>>0<2&&cL(g,vut)?(Q_t(0,0,0,r,g,jNr,BNr),d=_):d=_}else d=_}else d=_}}(i,e,t);var S=s1(qct,H0(function(r){var e=Wot[17].call(null,r[2],A[1])[1];return vct(i[24],r[1]),[0,r[2],e,[0,0,r[1],r[1]]]},z));1===u&&ayt(i,e,S,n,a)}return J_t(i,Wot[27].call(null,function(r,e){return n_t[31].call(null,r,f)},A[1]),c),o}function eyt(r,e,n){if(n){var t=n[1],a=[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],1,r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27]];r:if(e){var u=e[1];if(uAt(u)){var f=jAt(u),i=f[5];if(0===f[1]){if(i&&!i[2]){var v=i[1];if(iAt(v))break r;if(vAt(v)){Q_t(0,0,0,a,t[1],wEr,yEr);break r}}Q_t(0,0,0,a,t[1],qEr,gEr)}}}var c=[0,vst,[0,cst,0]],A=oAt(jxt(function(r,e){var n=e[2];if(17===n[0])return _xt(r,c,t[1],n[1],n[2]);throw gQ([0,_z,xEr],1)},mAt,a,t));if(A[1])throw gQ([0,_z,IEr],1);for(var o=A[2],s=0===o?(Q_t(0,0,0,a,t[1],EEr,DEr),o):o;s;)for(var b=s[2],l=s[1],B=l[2],j=l[1],k=c;;){if(k){var p=k[1],m=k[2];if(p[1]!==j){k=m;continue}var d=[0,p]}else d=0;if(!d){s=b;break}var _=d[1][2];if(1-vht(a,t[1],B,_)){cz(R_t(0,0,0,a,t[1],"M0214",hEr),j,w_t,B,w_t,_),s=b;break}s=b;break}var h=H0(function(r){return r[1]},a1(function(r){var e=r[1],n=e!==ia?1:0;return n?e!==Ij?1:0:n},o)),x=0!==h?1:0;if(!x)return x;var y=$0(h);return uz(Q_t(0,0,0,a,t[1],TEr,NEr),y)}}function nyt(r,e,n){if(n){var t=n[1];1!==e[2]&&R_t(0,0,0,r,t[1],"M0209",SEr),lxt([0,r[1],r[2],r[3],r[4],r[5],r[6],Wot[1],0,1,r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27]],t)}}function tyt(r,e,n){function t(e,t){if("number"!=typeof t&&3===t[0]&&!t[1]){var a=t[2];return 1-YAt(t)&&iz(R_t(0,0,0,r,n,"M0201",ZEr),e,g_t,t),a}return iz(O_t(0,0,0,r,n,"M0202",WEr),e,g_t,t)}try{var a=DAt(0,0,e),u=a[4],f=a[2],i=0!==a[1]?1:0,v=$ct(a[3]);if(i||(0!==f?1:0))throw gQ([0,kz,""],1);var c=t("produces",Jct(u));return[0,t("consumes",Xct(v)),c]}catch(u){var A=NL(u);if(A[1]===kz)return fz(O_t(0,0,0,r,n,"M0203",XEr),g_t,e);throw gQ(A,0)}}function ayt(r,e,n,t,a){var u=r[27];if(u)var f=function(r){return[0,[0,r,1,0],[0,r,1,0]]},i=iet(u[1]),v=Q0(Wot[24].call(null,function(e,n,t){if(e8n(e)!==i)return t;var a=Xct(n);if("number"!=typeof a&&3===a[0]&&3===a[1]){var u=MAt(REr,a[2]);return u?[0,[0,e,a,u[1]],t]:(Q_t(0,0,0,r,f(e),CEr,QEr),t)}return Q_t(0,0,0,r,f(e),VEr,HEr),t},r[2],0)),c=0===v?(R_t(0,0,0,r,a,zEr,LEr),v):v;else c=0;if(e[3][3]=c,t){var A=t[1],o=A[2];if(17===o[0])for(var s=o[2];;){if(s){var b=s[1],l=s[2];if(b[2][2][2]!==Cn){s=l;continue}var B=[0,b]}else B=0;if(B){var j=B[1][1];break}j=A[1];break}else j=A[1];Sdt([0,r[15],0,0,0],A);try{var k=yAt([0,kS,0],A[3][1]),p=k[2];if(1===k[1])throw gQ([0,kz,""],1);var m=UAt(kS,p)}catch(K){var d=NL(K);if(d[1]!==kz)throw gQ(d,0);var _=A[3][1];m=fz(O_t(0,0,0,r,j,"M0208",iNr),g_t,_)}0!==c&&O_t(0,0,0,r,a,"M0252",vNr);for(var h=tyt(r,m,j),x=h[2],y=n,w=h[1];y;){var g=y[2],q=y[1],I=MAt(q[1],x);if(I){var D=I[1],E=[0,[2,q[1]],0],N=mAt(D),T=mAt(q[2]),F=Tst([0,r[24]],E,N,T);if(F){let e=N,n=T;var M=F[1],P=q[2],U=q[1];oz(R_t(0,0,0,r,j,"M0204",fNr),U,g_t,D,g_t,P,function(r,t){return I_t(e,n,r,t)},M),y=g}else y=g}else y=g}lht(r,"pre actor type",cNr,H0(function(r){return[0,r[3][3],r[1],0]},H0(function(r){return r[2]},Pst(m,0,n))));for(var G=H0(function(r){return r[1]},n),$=x;;){if(!$){var K=w;break}var O=$[2],R=$[1],Q=R[1],C=R[2];MAt(Q,n)||vz(R_t(0,[0,L_t(r,j,Ydt(uNr,Q,G))],0,r,j,"M0205",aNr),Q,g_t,C,"The actor should declare a corresponding `stable` field."),$=O}for(;K;){var H=K[2],V=K[1],L=V[2],z=V[1];MAt(z,x)?K=H:Y0(z,G)?(cz(Q_t(0,0,0,r,j,eNr,rNr),z,g_t,L,"The declaration in the actor will be reinitialized, discarding its consumed value.","If reinitialization is unintended, and you want to preserve the consumed value, either remove this field from the parameter of the migration function or add it to the result of the migration function."),K=H):(cz(Q_t(0,0,0,r,j,tNr,nNr),z,g_t,L,"This field will be removed from the actor, discarding its consumed value.","If this removal is unintended, declare the field in the actor and either remove the field from the parameter of the migration function or add it to the result of the migration function."),K=H)}var S=oAt(A[3][1]);if(S[1])throw gQ([0,_z,ANr],1);var Z=H0(function(r){return r[1]},a1(function(r){return r[1]!==Cn?1:0},S[2])),W=0!==Z?1:0;if(!W)return W;var X=$0(Z);return uz(Q_t(0,0,0,r,A[1],sNr,oNr),X)}if(0!==c){for(var J=a,Y=n,rr=Q0(c);;){if(!rr){var er=Y;break}var nr=rr[1],tr=nr[3],ar=nr[1],ur=[0,ar,Sz[2],Sz[3]],fr=[0,ur,ur],ir=rr[2],vr=Mst(ar),cr=tyt(r,tr,fr),Ar=cr[2];let e=Ar,n=cr[1];var or=s1(qct,QY(Ar,a1(function(r){var t=0===MAt(r[1],n)?1:0;return t?0===MAt(r[1],e)?1:0:t},Y))),sr=H0(function(r){return[0,0===MAt(r[1],e)?1:0,r]},Y);Vdt(r[15],J,[0,vr],or,sr),J=fr,Y=H0(function(r){return r[2]},Pst(tr,0,Y)),rr=ir}for(;;){if(!er)return;var br=er[1],lr=er[2],Br=br[2],jr=br[1];iz(Q_t(0,0,0,r,J,YEr,JEr),jr,w_t,Br),er=lr}}}function uyt(r,e,n,t){for(var a=X_t(r),u=fyt(r,e,n),f=aht(r,u),i=e,v=f[1];i;){var c=i[2],A=i[1][2];if(4===A[0]&&1===A[3][2]){let r=A[4];i=c,v=Wot[26].call(null,function(e,n){var t=n[4],a=n[3],u=n[2];return[0,n[1],u,a,e===r[2]?1:t]},v)}else i=c}for(var o=[0,v,f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9],f[10],f[11],f[12],f[13],f[14],f[15],f[16],f[17],f[18],f[19],f[20],f[21],f[22],f[23],f[24],f[25],f[26],f[27]],s=e;;){if(s){var b=s[1];if(s[2]){var l=s[2];if(1-o[13]){d_t(function(r){return oyt(o,rS,r)},b),s=l;continue}s=l;continue}var B=cyt(o,b)}else B=rS;return t&&J_t(r,u[1],a),[0,B,u]}}function fyt(r,e,n){var t=byt(r,e),a=aht([0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],1,r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27]],t),u=dyt(a,e),f=u[4],i=[0,gct[1]];function v(r,e){if(gct[18].call(null,e,i[1]))return 0;if(gct[44][31].call(null,e,r))var n=0;else{var t=Jvt(e);if(0!==t[0])throw gQ([0,xz,Zcr],1);var a=t[2],u=gct[44][2].call(null,e,r);r:for(;;){e:{if("number"==typeof a){if(2!==a)break e}else switch(a[0]){case 0:n=[0,a[2]];break r;case 1:var f=a[1],c=a[2];v(u,f);var A=gct[17].call(null,f,i[1]);if("number"==typeof A){n=A;break r}var o=A[1],s=Jvt(f);if(0!==s[0]){n=1;break r}if(o>=G0(s[1]))throw gQ([0,xz,zcr],1);a=O0(c,o);continue;case 11:a=a[2];continue;case 10:break;default:break e}throw gQ([0,xz,Scr],1)}n=1;break}}return i[1]=gct[2].call(null,e,n,i[1]),0}var c=gct[44][1];gct[44][23].call(null,function(r){return v(c,r)},f);var A=gct[44][26].call(null,function(r){return 0===gct[17].call(null,r,i[1])?1:0},f);if(1-gct[44][30].call(null,A)){var o=F1(Nyr,s1(YC,H0(Yvt,gct[44][10].call(null,A)))),s=Z_t(A);fz(O_t(0,0,0,a,n,"M0157",Tyr),s,o)}var b=gct[44][24].call(null,function(r,e){var n=Jvt(r);if(0!==n[0])throw gQ([0,xz,eAr],1);for(var t=V0(function(e,n){return[0,r,e]},n[1]),a=e;;){if(!t)return a;var u=t[2],f=Xst[2].call(null,t[1],a);t=u,a=f}},f,Xst[1]),l=gct[44][24].call(null,function(r,e){var n=Jvt(r);if(0!==n[0])throw gQ([0,xz,nAr],1);for(var t=n[1],a=e,u=n[2];;){if(!t)return Yst(f,r,a,u);var i=t[2],v=Yst(f,r,a,t[1][3]);t=i,a=v}},f,Jst[1]),B=[0,0],j=[0,0],k=Jst[24].call(null,function(r){var e=[0,r[1],r[3]],n=nbt[2];return function(r){return n(e,r)}},l,nbt[1]),p=ebt[24].call(null,function(r,e){return tbt[2].call(null,r,[0,-1,0,0],e)},b,tbt[1]),m=[0,0],d=ebt[24].call(null,function(r,e){return tbt[2].call(null,r,ebt[1],e)},b,tbt[1]),_=nbt[24].call(null,function(r,e){var n=r[1],t=r[2],a=tbt[17].call(null,n,e),u=ebt[2].call(null,t,a);return tbt[2].call(null,n,u,e)},k,d);function h(r){var e=tbt[17].call(null,r,p);e[1]=j[1],e[2]=j[1],j[1]=j[1]+1|0,m[1]=[0,r,m[1]],e[3]=1;var n=tbt[17].call(null,r,_);function t(r){var n=tbt[17].call(null,r,p);if(-1===n[1])return h(r),e[2]=UY(e[2],n[2]),0;var t=n[3];return t?(e[2]=UY(e[2],n[1]),0):t}var a=ebt[23];uz(function(r){return a(t,r)},n);var u=e[2]===e[1]?1:0;if(!u)return u;for(var f=ebt[1];;){var i=$0(m[1]);m[1]=K0(m[1]),tbt[17].call(null,i,p)[3]=0;var v=ebt[2].call(null,i,f);if(0===fz(Wst[1],i,r))return B[1]=[0,v,B[1]],0;f=v}}function x(r){var e=-1===tbt[17].call(null,r,p)[1]?1:0;return e?h(r):e}var y=ebt[23];uz(function(r){return y(x,r)},b);for(var w=V0(function(r,e){return[0,e,r]},Q0(B[1])),g=w,q=rbt[1];g;){var I=g[1];let r=I[2];g=g[2],q=Xst[24].call(null,function(e,n){return rbt[2].call(null,e,r,n)},I[1],q)}r:{e:{for(var D=Jst[10].call(null,l);;){if(!D)break e;var E=D[1],N=0>>0<2?[0,iut(0,e[2][1][1])]:0),O=e[2][1],R=O[2],Q=G[2];if(1===R[0]){var C=R[2],H=C[2];r:{var V=R[3],L=R[1],z=O[1];if(23===H[0]){var S=H[2];if(S[2])var Z=C;else{var W=H[1],X=H[5];e:{var J=H[4],Y=H[3];if(X){var rr=X[1][2];if(6!==rr[0]||rr[1])break e}if(H[6]){var er=H[7],nr=er[1],tr=nkt(Ryt(W,er[1]),er),ar=S[3],ur=[0,[0,1,Wjt(0,S[1])]];Z=[0,nr,Jyt(W,[0,S[1],ur,ar],Y,J,X,1,tr),xS];break r}}var fr=H[7],ir=H[6],vr=H[5],cr=H[4],Ar=H[3],or=fr[1],sr=S[3],br=[0,[0,1,Wjt(0,S[1])]];Z=[0,or,Jyt(W,[0,S[1],br,sr],Ar,cr,vr,ir,fr),xS]}}else Z=C}var lr=[0,z,[1,L,Z,V],xS]}else lr=O;return[0,e[1],[0,lr,Q,K],U]}function nwt(r,e,n,t,a){for(var u=a;;){if(!u)return[16,r,e,[0,n,t],a];var f=u[2],i=u[1],v=i[2][1][2];if("number"!=typeof i[2][2][2]&&4===v[0]&&Yjt(v[4])){var c=Qut(i[2][1][1],"M0158",NRr,0,0,0,"a public class cannot be anonymous, please provide a name");Wut(g0(Uyt[1]),c),u=f}else u=f}}var twt=[Gl,"Mo_frontend.Parser_lib.Imports",zH()],awt=[0,function(r){var e=r[3],n=e[5];return[0,n[1],[0,e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5];return[0,e[1],[0,Kyt([0,t,n]),UKr,xS],t,n,a]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2];return[0,i,[0,Kyt([0,a,u]),[25,v],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5];return[0,t[1],iut([0,n[2],e[2]],Kyt([0,a,u])),a,u,f]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5];return[0,t[1],iut([0,n[2],e[2]],Kyt([0,a,u])),a,u,f]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=t[3],f=t[1],i=n[2],v=e[4],c=e[2];return[0,f,[0,iut(i,Kyt([0,n[3],n[4]])),c],u,v,a]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[1],v=e[2],c=Kyt(u);return[0,i,[0,iut(Jjt(GKr,Kyt(u)),c),v],t,a,f]},function(r){var e=r[3],n=e[4],t=e[3],a=[0,t,n],u=e[5],f=e[2],i=e[1],v=Kyt(a);return[0,i,[0,iut(Jjt($Kr,Kyt(a)),v),f],t,n,u]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2];return[0,e[1],[0,Kyt([0,t,n]),[0,u],xS],t,n,a]},function(r){var e=r[3],n=e[5][5],t=n[5][5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=e[2],A=Wyt(t[2],n[2]),o=A[2],s=A[1];return[0,v,[0,Kyt([0,u,f]),[1,s,o,[0,c]],xS],u,f,i]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=n[3],f=e[4],i=t[5],v=t[2],c=t[1],A=n[4],o=n[2],s=e[3];return[0,c,iut([0,e[2],v,o],Kyt([0,a!==t[4]?a:u!==A?u:s,f])),a,f,i]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=Wyt(n[2],e[2]),c=v[2],A=v[1];return[0,i,[0,Kyt([0,a,u]),[1,A,c,0],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[1],v=Wyt(e[2],[0,Kyt(u),KKr,xS]),c=v[2],A=v[1];return[0,i,[0,Kyt(u),[1,A,c,0],xS],t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2],A=Xjt(v,Kyt([0,n[3],n[4]]));return[0,i,[0,Kyt([0,a,u]),[3,A,0,c],xS],a,u,f]},function(r){var e=r[3],n=e[5][5][5],t=n[5][5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[2],A=n[2],o=e[2],s=Xjt(c,Kyt([0,t[3],t[4]]));return[0,v,[0,Kyt([0,u,f]),[3,s,A,o],xS],u,f,i]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=a[3],i=t[2],v=n[2],c=e[4],A=u[4],o=a[1],s=e[2],b=iut(0,vut),l=[0,A!=A?A:f,c],B=i[3],j=i[2],k=fz(i[1],OKr,l),p=k[2],m=k[1],d=Yyt(b,p,v,s),_=d[2],h=d[1],x=Kyt(l);return[0,o,Xyt(m,p,Jyt(p[2],b,j,B,v,h,_),x),f,c,u]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5],v=i[3],c=u[4],A=t[2],o=n[2],s=e[4],b=[0,v,c],l=i[5],B=i[1],j=f[2],k=u[2],p=a[3],m=e[2],d=Kyt(b),_=uz(k,Kyt(b)),h=iut([0,[0,w0(j,1),_]],d),x=[0,v!==c?v:p,s],y=A[3],w=A[2],g=fz(A[1],RKr,x),q=g[2],I=g[1],D=Yyt(h,q,o,m),E=D[2],N=D[1],T=Kyt(x);return[0,B,Xyt(I,q,Jyt(q[2],h,w,y,o,N,E),T),v,s,l]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[3],v=u[4],c=t[2],A=n[2],o=e[4],s=[0,i,v],b=f[5],l=f[1],B=u[2],j=a[3],k=e[2],p=Kyt(s),m=iut([0,[0,0,uz(B,Kyt(s))]],p),d=[0,i!==v?i:j,o],_=c[3],h=c[2],x=fz(c[1],QKr,d),y=x[2],w=x[1],g=Yyt(m,y,A,k),q=g[2],I=g[1],D=Kyt(d);return[0,l,Xyt(w,y,Jyt(y[2],m,h,_,A,I,q),D),i,o,b]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5][5],i=f[3],v=u[4],c=t[2],A=n[2],o=e[4],s=[0,i,v],b=f[5],l=f[1],B=u[2],j=a[3],k=e[2],p=Kyt(s),m=iut([0,[0,2,uz(B,Kyt(s))]],p),d=[0,i!==v?i:j,o],_=c[3],h=c[2],x=fz(c[1],CKr,d),y=x[2],w=x[1],g=Yyt(m,y,A,k),q=g[2],I=g[1],D=Kyt(d);return[0,l,Xyt(w,y,Jyt(y[2],m,h,_,A,I,q),D),i,o,b]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5][5],u=a[5],f=u[3],i=u[5],v=u[1],c=a[2],A=t[2],o=e[4];return[0,v,uz(e[2],[0,[0,Kyt([0,f,n[4]]),[17,N0(c),A],xS]]),f,o,i]},function(r){var e=r[3],n=e[5],t=e[4],a=e[3];return[0,e[1],uz(e[2],0),a,t,n]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4];function f(r){return iut([0,[0,0]],vut)}var i=t[5],v=t[1],c=n[2],A=H0(function(r){return ewt(f,r)},e[2]);return[0,v,[0,Kyt([0,a,u]),[5,c,A],xS],a,u,i]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2],A=iut(v,Kyt([0,n[3],n[4]]));return[0,i,[0,Kyt([0,a,u]),[6,A,c,[0,0]],xS],a,u,f]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[2],A=n[2],o=e[2],s=iut(c,Kyt([0,t[3],t[4]]));return[0,v,[0,Kyt([0,u,f]),[2,s,Syt(o,A)],xS],u,f,i]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2],A=[0,a,u],o=iut(v,Kyt([0,n[3],n[4]])),s=[0,Kyt(A),HKr,xS];return[0,i,[0,Kyt(A),[2,o,Syt(s,[0,c])],xS],a,u,f]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2];return[0,e[1],[0,Kyt([0,t,n]),[25,[0,u,0]],xS],t,n,a]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2];return[0,e[1],[0,Kyt([0,t,n]),[25,[0,u,0]],xS],t,n,a]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2];return[0,e[1],[0,[0,Kyt([0,t,n]),[3,[0,u]],xS],0],t,n,a]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=n[2],f=e[4],i=t[5],v=t[1],c=[0,a,f];if(!u||u[2])A=[0,[0,Kyt(c),[11,u],xS],0];else var A=[0,u[1],1];return[0,v,A,a,f,i]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2],f=e[1],i=iut(u,Kyt([0,t,n]));return[0,f,[0,[0,Kyt([0,t,n]),[2,[0,i[1],i[2],hS]],xS],0],t,n,a]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,[0,Kyt([0,t,a]),[1,i],xS],0],t,a,u]},function(r){var e=r[3],n=e[4],t=e[3],a=[0,t,n],u=e[5];return[0,e[1],[0,[0,Kyt(a),[2,[0,Kyt(a),VKr,hS]],xS],0],t,n,u]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,0,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,1,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,2,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,3,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,4,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,5,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,13,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,14,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,15,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,16,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,6,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,7,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,8,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,9,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,10,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,11,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,12,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,17,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[7,[0,2],f,0,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[7,[0,2],f,1,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[7,[0,2],f,2,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[7,[0,2],f,4,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[7,[0,2],f,3,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[7,[0,2],f,5,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[27,f,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[28,f,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[41,f,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=n[2],u=e[4],f=e[2],i=n[5],v=n[1],c=iut(LKr,a[1]),A=Kyt([0,t,u]),o=[0,[0,f[1],[0,f],xS],0];return[0,v,[0,A,[25,[0,[0,a[1],[1,Wjt([0,c],c[1]),a,0],xS],o]],xS],t,u,i]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,0,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,1,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,2,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,3,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,4,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,5,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,13,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,14,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,15,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,16,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,6,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,7,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,8,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,9,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,10,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,11,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,12,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[6,[0,2],f,17,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[7,[0,2],f,0,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[7,[0,2],f,1,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[7,[0,2],f,2,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[7,[0,2],f,4,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[7,[0,2],f,3,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[7,[0,2],f,5,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[27,f,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[28,f,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[41,f,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=n[2],u=e[4],f=e[2],i=n[5],v=n[1],c=iut(zKr,a[1]),A=Kyt([0,t,u]),o=[0,[0,f[1],[0,f],xS],0];return[0,v,[0,A,[25,[0,[0,a[1],[1,Wjt([0,c],c[1]),a,0],xS],o]],xS],t,u,i]},function(r){var e=r[3],n=e[5],t=n[5],a=n[3],u=e[4],f=t[4],i=n[2],v=n[1],c=e[2],A=iut(i,Kyt([0,a,n[4]])),o=iut(0,vut),s=f!=f?f:a,b=[0,A[1],[2,[0,A[1],A[2],hS]],xS],l=Kyt([0,s,u]);return[0,v,iut([0,o,A,Syt(b,c)],l),a,u,t]},function(r){var e=r[3],n=e[5],t=n[5],a=t[4],u=t[3],f=n[3],i=e[4],v=t[5],c=t[1],A=n[2],o=e[2],s=iut(A,Kyt([0,f,n[4]])),b=iut(1,Kyt([0,u,a])),l=u!==a?u:f,B=[0,s[1],[2,[0,s[1],s[2],hS]],xS],j=Kyt([0,l,i]);return[0,c,iut([0,b,s,Syt(B,o)],j),u,i,v]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=t[3],f=e[4],i=a[4],v=t[2],c=t[1],A=n[2],o=e[2],s=iut(v,Kyt([0,u,t[4]])),b=iut(0,vut),l=Kyt([0,i!=i?i:u,f]);return[0,c,iut([0,b,s,Syt(o,A)],l),u,f,a]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[4],f=a[3],i=t[3],v=e[4],c=a[5],A=a[1],o=t[2],s=n[2],b=e[2],l=iut(o,Kyt([0,i,t[4]])),B=iut(1,Kyt([0,f,u])),j=Kyt([0,f!==u?f:i,v]);return[0,A,iut([0,B,l,Syt(b,s)],j),f,v,c]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[20,f,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,0,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,1,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,2,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,3,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,4,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,5,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,13,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,14,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,15,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,16,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,6,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,7,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,8,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,9,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,10,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,11,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,12,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,17,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[4],t=e[3],a=[0,t,n],u=e[5];return[0,e[1],[0,Kyt(a),[36,[0,Kyt(a),SKr,xS]],xS],t,n,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[36,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5][5],f=u[5],i=f[3],v=t[4],c=e[4],A=f[5],o=f[1],s=u[2],b=a[2],l=n[3],B=e[2],j=[0,[0,Kyt([0,i,v]),[17,N0(s),b],xS]],k=[0,i!==v?i:l,c],p=Kyt(k),m=Kyt(k);return[0,o,[0,p,[38,j,0,Ryt(Jjt(ZKr,Kyt(k)),m),B],xS],i,c,A]},function(r){var e=r[3],n=e[5],t=n[5],a=n[3],u=e[4],f=t[4],i=n[1],v=e[2],c=[0,f!=f?f:a,u],A=Kyt(c),o=Kyt(c);return[0,i,[0,A,[38,0,0,Ryt(Jjt(WKr,Kyt(c)),o),v],xS],a,u,t]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[1],v=e[2],c=Kyt(u),A=Kyt(u);return[0,i,[0,c,[38,0,1,Ryt(Jjt(XKr,Kyt(u)),A),v],xS],t,a,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[39,JKr,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[39,YKr,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[39,0,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[40,0,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[3],f=e[4],i=e[2],v=a[5],c=a[1],A=t[2],o=n[2],s=iut(A,Kyt([0,t[3],t[4]])),b=[0,u,f],l=iut(Eg+s[2],s[1]);function B(r){return Wjt(rOr,Kyt(b))}var j=i[2];switch(j[0]){case 31:var k=j[2],p=j[3],m=j[1],d=[0,i[1],[31,m,[0,k[1],[34,l,B(),k],xS],p],xS];break;case 32:var _=j[1],h=j[3],x=j[2];d=[0,i[1],[32,[0,_[1],[34,l,B(),_],xS],x,h],xS];break;case 33:var y=j[3],w=j[4],g=j[2],q=j[1];d=[0,i[1],[33,q,g,[0,y[1],[34,l,B(),y],xS],w],xS];break;default:d=i}return[0,c,[0,Kyt(b),[34,s,w0(o,B()),d],xS],u,f,v]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2],A=[0,a,u],o=iut(v,Kyt([0,n[3],n[4]])),s=w0(c,[0,Kyt(A),eOr,xS]);return[0,i,[0,Kyt(A),[35,0,[0,o],s],xS],a,u,f]},function(r){var e=r[3],n=e[4],t=e[3],a=[0,t,n],u=e[5],f=e[1],i=[0,Kyt(a),nOr,xS];return[0,f,[0,Kyt(a),[35,0,0,i],xS],t,n,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=e[2],f=[0,t,a],i=n[5],v=n[1],c=[0,Kyt(f),tOr,xS];if(u)var A=u[1],o=[0,iut(Eg+A[2],A[1])];else o=0;return[0,v,[0,Kyt(f),[35,1,o,c],xS],t,a,i]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[37,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=[0,a,u],i=t[5],v=t[1],c=n[2],A=e[2];return[0,v,[0,Kyt(f),[29,c,A,[0,Kyt(f),aOr,xS]],xS],a,u,i]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[2],A=n[2],o=e[2];return[0,v,[0,Kyt([0,u,f]),[29,c,A,o],xS],u,f,i]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2];return[0,i,[0,Kyt([0,a,u]),[45,v,[0,c,0],0],xS],a,u,f]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[2],A=n[2],o=e[2];return[0,v,[0,Kyt([0,u,f]),[45,c,[0,A,0],[0,o]],xS],u,f,i]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2];return[0,i,[0,Kyt([0,a,u]),[45,v,0,[0,c]],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[44,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[5][5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[2],A=n[2];return[0,v,[0,Kyt([0,u,f]),[30,c,A],xS],u,f,i]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2];return[0,i,[0,Kyt([0,a,u]),[31,v,c,[0,0,0]],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[32,i,0,[0,0,0]],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2];return[0,i,[0,Kyt([0,a,u]),[32,v,[0,c],[0,0,0]],xS],a,u,f]},function(r){var e=r[3],n=e[5][5],t=n[5][5],a=t[5][5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[2],A=n[2],o=e[2];return[0,v,[0,Kyt([0,u,f]),[33,c,A,o,[0,0,0]],xS],u,f,i]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[46,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),i[2],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[14,i],xS],t,a,u]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[20,f,v],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,0,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,1,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,2,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,3,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,4,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,5,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,13,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,14,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,15,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,16,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,6,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,7,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,8,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,9,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,10,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,11,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,12,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[2],v=n[1],c=e[2];return[0,v,zyt(i,function(r){return[0,Kyt(u),[6,[0,2],r,17,c],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[4],t=e[3],a=[0,t,n],u=e[5];return[0,e[1],[0,Kyt(a),[36,[0,Kyt(a),uOr,xS]],xS],t,n,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[36,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5][5],f=u[5],i=f[3],v=t[4],c=e[4],A=f[5],o=f[1],s=u[2],b=a[2],l=n[3],B=e[2],j=[0,[0,Kyt([0,i,v]),[17,N0(s),b],xS]],k=[0,i!==v?i:l,c],p=Kyt(k),m=Kyt(k);return[0,o,[0,p,[38,j,0,Ryt(Jjt(fOr,Kyt(k)),m),B],xS],i,c,A]},function(r){var e=r[3],n=e[5],t=n[5],a=n[3],u=e[4],f=t[4],i=n[1],v=e[2],c=[0,f!=f?f:a,u],A=Kyt(c),o=Kyt(c);return[0,i,[0,A,[38,0,0,Ryt(Jjt(iOr,Kyt(c)),o),v],xS],a,u,t]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[1],v=e[2],c=Kyt(u),A=Kyt(u);return[0,i,[0,c,[38,0,1,Ryt(Jjt(vOr,Kyt(u)),A),v],xS],t,a,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[39,cOr,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[39,AOr,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[39,0,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[40,0,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[3],f=e[4],i=e[2],v=a[5],c=a[1],A=t[2],o=n[2],s=iut(A,Kyt([0,t[3],t[4]])),b=[0,u,f],l=iut(Eg+s[2],s[1]);function B(r){return Wjt(oOr,Kyt(b))}var j=i[2];switch(j[0]){case 31:var k=j[2],p=j[3],m=j[1],d=[0,i[1],[31,m,[0,k[1],[34,l,B(),k],xS],p],xS];break;case 32:var _=j[1],h=j[3],x=j[2];d=[0,i[1],[32,[0,_[1],[34,l,B(),_],xS],x,h],xS];break;case 33:var y=j[3],w=j[4],g=j[2],q=j[1];d=[0,i[1],[33,q,g,[0,y[1],[34,l,B(),y],xS],w],xS];break;default:d=i}return[0,c,[0,Kyt(b),[34,s,w0(o,B()),d],xS],u,f,v]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2],A=[0,a,u],o=iut(v,Kyt([0,n[3],n[4]])),s=w0(c,[0,Kyt(A),sOr,xS]);return[0,i,[0,Kyt(A),[35,0,[0,o],s],xS],a,u,f]},function(r){var e=r[3],n=e[4],t=e[3],a=[0,t,n],u=e[5],f=e[1],i=[0,Kyt(a),bOr,xS];return[0,f,[0,Kyt(a),[35,0,0,i],xS],t,n,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=e[2],f=[0,t,a],i=n[5],v=n[1],c=[0,Kyt(f),lOr,xS];if(u)var A=u[1],o=[0,iut(Eg+A[2],A[1])];else o=0;return[0,v,[0,Kyt(f),[35,1,o,c],xS],t,a,i]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[37,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=[0,a,u],i=t[5],v=t[1],c=n[2],A=e[2];return[0,v,[0,Kyt(f),[29,c,A,[0,Kyt(f),BOr,xS]],xS],a,u,i]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[2],A=n[2],o=e[2];return[0,v,[0,Kyt([0,u,f]),[29,c,A,o],xS],u,f,i]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2];return[0,i,[0,Kyt([0,a,u]),[45,v,[0,c,0],0],xS],a,u,f]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[2],A=n[2],o=e[2];return[0,v,[0,Kyt([0,u,f]),[45,c,[0,A,0],[0,o]],xS],u,f,i]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2];return[0,i,[0,Kyt([0,a,u]),[45,v,0,[0,c]],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[44,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[5][5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[2],A=n[2];return[0,v,[0,Kyt([0,u,f]),[30,c,A],xS],u,f,i]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2];return[0,i,[0,Kyt([0,a,u]),[31,v,c,[0,0,0]],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[32,i,0,[0,0,0]],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2];return[0,i,[0,Kyt([0,a,u]),[32,v,[0,c],[0,0,0]],xS],a,u,f]},function(r){var e=r[3],n=e[5][5],t=n[5][5],a=t[5][5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[2],A=n[2],o=e[2];return[0,v,[0,Kyt([0,u,f]),[33,c,A,o,[0,0,0]],xS],u,f,i]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[46,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),i[2],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[14,i],xS],t,a,u]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[4],t=e[3],a=e[2],u=a[2],f=e[5],i=[0,t,n];return[0,e[1],0===u[0]?u[1]:[0,Kyt(i),[25,[0,a,0]],xS],t,n,f]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[4],t=e[3],a=e[2],u=a[2],f=e[5],i=[0,t,n];return[0,e[1],0===u[0]?u[1]:[0,Kyt(i),[25,[0,a,0]],xS],t,n,f]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2],f=e[1],i=iut(u,Kyt([0,t,n]));return[0,f,[0,Kyt([0,t,n]),[2,[0,i[1],i[2],hS]],xS],t,n,a]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[1,i],xS],t,a,u]},function(r){var e=r[3],n=e[4],t=e[3],a=[0,t,n],u=e[5];return[0,e[1],[0,Kyt(a),[2,[0,Kyt(a),jOr,hS]],xS],t,n,u]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2],f=e[1],i=iut(u,Kyt([0,t,n]));return[0,f,[0,Kyt([0,t,n]),[2,[0,i[1],i[2],hS]],xS],t,n,a]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[1,i],xS],t,a,u]},function(r){var e=r[3],n=e[4],t=e[3],a=[0,t,n],u=e[5];return[0,e[1],[0,Kyt(a),[2,[0,Kyt(a),kOr,hS]],xS],t,n,u]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2];return[0,i,[0,Kyt([0,a,u]),[17,0,v],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[5][5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[2],A=n[2];return[0,v,[0,Kyt([0,u,f]),[17,[0,c,A],0],xS],u,f,i]},function(r){var e=r[3],n=e[5],t=n[5][5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[2],A=n[2];return[0,v,[0,Kyt([0,u,f]),[17,c,A],xS],u,f,i]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2];return[0,e[1],[0,Kyt([0,t,n]),[3,[0,u]],xS],t,n,a]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=n[2],f=e[4],i=t[5],v=t[1],c=[0,a,f];if(!u||u[2])A=[0,Kyt(c),[11,u],xS];else var A=u[1];return[0,v,A,a,f,i]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=iut(0,vut);return[0,i,[0,Kyt([0,a,u]),[21,c,v],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=n[2],A=iut(1,Kyt([0,t[3],t[4]]));return[0,v,[0,Kyt([0,u,f]),[21,A,c],xS],u,f,i]},function(r){var e=r[3],n=e[5],t=n[5][5],a=t[3],u=e[4],f=t[5],i=t[2],v=t[1],c=n[2];return[0,v,[0,Kyt([0,a,u]),[22,i,c],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[12,f,xV(v)],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=iut(e[2],Kyt([0,e[3],a]));return[0,i,[0,Kyt([0,t,a]),[19,f,v,[0,0]],xS],t,a,u]},function(r){var e=r[3],n=e[4],t=e[3],a=e[2],u=[0,t,n],f=a[2],i=a[1],v=e[5],c=e[1],A=Kyt(u),o=A[2],s=A[1],b=[0,[0,s,[0,o[1],o[2],s[3]+AV(i)|0]],[3,[0,[16,i,2]]],xS],l=iut(f,[0,[0,s[1],s[2],o[3]-AV(f)|0],o]);return[0,c,[0,Kyt(u),[19,b,l,[0,0]],xS],t,n,v]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=e[2],i=t[5],v=t[2],c=t[1],A=n[2],o=f[2],s=f[1];return[0,c,[0,Kyt([0,a,u]),[24,0,v,A,[0,o,[0,s]]],xS],a,u,i]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[2];return[0,n[1],[0,Kyt([0,t,a]),[15,f],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[5][5],a=t[5][5],u=a[3],f=e[4],i=a[5],v=a[4],c=a[1],A=t[2],o=[0,u,f],s=iut(n[2],Kyt([0,n[3],n[4]]));return[0,c,[0,Kyt(o),[19,[0,Kyt(o),[19,A,iut(pOr,Kyt([0,u,v])),[0,0]],xS],s,[0,0]],xS],u,f,i]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=iut(0,vut);return[0,i,[0,Kyt([0,a,u]),[21,c,v],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=n[2],A=iut(1,Kyt([0,t[3],t[4]]));return[0,v,[0,Kyt([0,u,f]),[21,A,c],xS],u,f,i]},function(r){var e=r[3],n=e[5],t=n[5][5],a=t[3],u=e[4],f=t[5],i=t[2],v=t[1],c=n[2];return[0,v,[0,Kyt([0,a,u]),[22,i,c],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2];return[0,i,[0,Kyt([0,t,a]),[12,f,xV(v)],xS],t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=iut(e[2],Kyt([0,e[3],a]));return[0,i,[0,Kyt([0,t,a]),[19,f,v,[0,0]],xS],t,a,u]},function(r){var e=r[3],n=e[4],t=e[3],a=e[2],u=[0,t,n],f=a[2],i=a[1],v=e[5],c=e[1],A=Kyt(u),o=A[2],s=A[1],b=[0,[0,s,[0,o[1],o[2],s[3]+AV(i)|0]],[3,[0,[16,i,2]]],xS],l=iut(f,[0,[0,s[1],s[2],o[3]-AV(f)|0],o]);return[0,c,[0,Kyt(u),[19,b,l,[0,0]],xS],t,n,v]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=e[2],i=t[5],v=t[2],c=t[1],A=n[2],o=f[2],s=f[1];return[0,c,[0,Kyt([0,a,u]),[24,0,v,A,[0,o,[0,s]]],xS],a,u,i]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[2];return[0,n[1],[0,Kyt([0,t,a]),[15,f],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[5][5],a=t[5][5],u=a[3],f=e[4],i=a[5],v=a[4],c=a[1],A=t[2],o=[0,u,f],s=iut(n[2],Kyt([0,n[3],n[4]]));return[0,c,[0,Kyt(o),[19,[0,Kyt(o),[19,A,iut(mOr,Kyt([0,u,v])),[0,0]],xS],s,[0,0]],xS],u,f,i]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5][5],i=f[5],v=i[3],c=e[4],A=e[2],o=i[5],s=i[1],b=f[2],l=u[2],B=t[2],j=n[2],k=[0,[0,Kyt([0,v,a[4]]),[17,N0(b),l],xS]],p=A[2],m=A[1];return[0,s,[0,Kyt([0,v,c]),[24,k,B,j,[0,p,[0,m]]],xS],v,c,o]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=[0,t,a],v=iut(e[2],Kyt([0,e[3],a]));return[0,f,[0,Kyt(i),[18,v,[0,Kyt(i),dOr,xS]],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2],A=iut(v,Kyt([0,n[3],n[4]]));return[0,i,[0,Kyt([0,a,u]),[18,A,c],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[13,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=e[2],f=[0,t,a],i=u[2];r:{e:{var v=n[5],c=n[1],A=0;if(3===i[0]){var o=i[1][1];if("number"!=typeof o&&16===o[0]){var s=o[2],b=o[1];if(2!==s&&12!==s)break e;var l=og+b,B=[0,Kyt(f),[3,[0,[16,l,2===s?7:s]]],xS];break r}}}B=[0,Kyt(f),[5,[0,2],A,u],xS]}return[0,c,B,t,a,v]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=e[2],f=[0,t,a],i=u[2];r:{e:{var v=n[5],c=n[1],A=1;if(3===i[0]){var o=i[1][1];if("number"!=typeof o&&16===o[0]){var s=o[2],b=o[1];if(2!==s&&12!==s)break e;var l=iF+b,B=[0,Kyt(f),[3,[0,[16,l,2===s?7:s]]],xS];break r}}}B=[0,Kyt(f),[5,[0,2],A,u],xS]}return[0,c,B,t,a,v]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[5,[0,2],2,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[1],v=e[2];return[0,i,zyt(v,function(r){return[0,Kyt(u),[5,[0,2],0,r],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[1],v=e[2];return[0,i,zyt(v,function(r){return[0,Kyt(u),[5,[0,2],1,r],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[1],v=e[2];return[0,i,zyt(v,function(r){return[0,Kyt(u),[5,[0,2],2,r],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[4,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[26,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[8,[0,[0,2],i]],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[5][5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2];return[0,i,[0,Kyt([0,a,u]),[9,v],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[10,i],xS],t,a,u]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5][5],i=f[5],v=i[3],c=e[4],A=e[2],o=i[5],s=i[1],b=f[2],l=u[2],B=t[2],j=n[2],k=[0,[0,Kyt([0,v,a[4]]),[17,N0(b),l],xS]],p=A[2],m=A[1];return[0,s,[0,Kyt([0,v,c]),[24,k,B,j,[0,p,[0,m]]],xS],v,c,o]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=[0,t,a],v=iut(e[2],Kyt([0,e[3],a]));return[0,f,[0,Kyt(i),[18,v,[0,Kyt(i),_Or,xS]],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2],A=iut(v,Kyt([0,n[3],n[4]]));return[0,i,[0,Kyt([0,a,u]),[18,A,c],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[13,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=e[2],f=[0,t,a],i=u[2];r:{e:{var v=n[5],c=n[1],A=0;if(3===i[0]){var o=i[1][1];if("number"!=typeof o&&16===o[0]){var s=o[2],b=o[1];if(2!==s&&12!==s)break e;var l=og+b,B=[0,Kyt(f),[3,[0,[16,l,2===s?7:s]]],xS];break r}}}B=[0,Kyt(f),[5,[0,2],A,u],xS]}return[0,c,B,t,a,v]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=e[2],f=[0,t,a],i=u[2];r:{e:{var v=n[5],c=n[1],A=1;if(3===i[0]){var o=i[1][1];if("number"!=typeof o&&16===o[0]){var s=o[2],b=o[1];if(2!==s&&12!==s)break e;var l=iF+b,B=[0,Kyt(f),[3,[0,[16,l,2===s?7:s]]],xS];break r}}}B=[0,Kyt(f),[5,[0,2],A,u],xS]}return[0,c,B,t,a,v]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[5,[0,2],2,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[1],v=e[2];return[0,i,zyt(v,function(r){return[0,Kyt(u),[5,[0,2],0,r],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[1],v=e[2];return[0,i,zyt(v,function(r){return[0,Kyt(u),[5,[0,2],1,r],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[1],v=e[2];return[0,i,zyt(v,function(r){return[0,Kyt(u),[5,[0,2],2,r],xS]},Kyt(u)),t,a,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[4,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[26,i],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[8,[0,[0,2],i]],xS],t,a,u]},function(r){var e=r[3],n=e[5],t=n[5][5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2];return[0,i,[0,Kyt([0,a,u]),[9,v],xS],a,u,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=e[2];return[0,f,[0,Kyt([0,t,a]),[10,i],xS],t,a,u]},function(r){var e=r[3],n=e[5];return[0,n[1],[0,0,e[2]],n[3],e[4],n[5]]},function(r){var e=r[3];return[0,e[1],[0,1,e[2]],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5],t=n[3],a=n[5],u=n[2],f=n[1],i=e[4],v=e[2],c=iut(u,Kyt([0,t,n[4]]));return[0,f,[0,function(r,e){return[0,1,c]},0,v],t,i,a]},function(r){var e=r[3],n=e[5][5],t=n[5][5],a=t[3],u=t[5],f=t[2],i=t[1],v=n[2],c=e[4],A=e[2],o=iut(f,Kyt([0,a,t[4]]));return[0,i,[0,function(r,e){return[0,1,o]},v,A],a,c,u]},function(r){var e=r[3],n=e[5][5],t=n[5][5][5],a=t[3],u=t[5],f=t[4],i=t[2],v=t[1],c=e[4],A=e[2],o=Qyt("",n[2]),s=iut(i,Kyt([0,a,f]));return[0,v,[0,function(r,e){return[0,1,s]},o,A],a,c,u]},function(r){var e=r[3];return[0,e[1],[0,function(r,e){var n=Kyt(e);return[0,0,iut(Jjt(r,Kyt(e)),n)]},0,e[2]],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5],t=n[5];return[0,t[1],[0,function(r,e){var n=Kyt(e);return[0,0,iut(Jjt(r,Kyt(e)),n)]},n[2],e[2]],t[3],e[4],t[5]]},function(r){var e=r[3],n=e[5][5],t=n[5][5],a=t[5],u=t[3],f=t[1],i=e[4],v=e[2];return[0,f,[0,function(r,e){var n=Kyt(e);return[0,0,iut(Jjt(r,Kyt(e)),n)]},Qyt("",n[2]),v],u,i,a]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=[0,a,u],i=t[5],v=t[1],c=n[2],A=e[2];return[0,v,[0,Kyt(f),[1,c,[0,Kyt(f),[42,[0,A,[0,0]]],xS],0],xS],a,u,i]},function(r){throw gQ([0,twt,r[3][2]],1)},function(r){var e=r[3],n=e[4];return[0,r[4],[0,vut,0,0],n,n,e]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=[0,[0,0,n[2]]];return[0,i,[0,Kyt([0,a,u]),v,0],a,u,f]},function(r){var e=r[3],n=e[5],t=n[5][5],a=t[3],u=e[4],f=t[5],i=t[1],v=[0,[0,1,n[2]]];return[0,i,[0,Kyt([0,a,u]),v,0],a,u,f]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3],n=e[5],t=n[5];return[0,t[1],[0,n[2],e[2]],t[3],e[4],t[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3],n=e[5],t=n[5];return[0,t[1],[0,n[2],e[2]],t[3],e[4],t[5]]},function(r){var e=r[3];return[0,e[1],0,e[3],e[4],e[5]]},function(r){var e=r[3];return[0,e[1],[0,e[2]],e[3],e[4],e[5]]},function(r){var e=r[3];return[0,e[1],[16,e[2],2],e[3],e[4],e[5]]},function(r){var e=r[3];return[0,e[1],[16,e[2],12],e[3],e[4],e[5]]},function(r){var e=r[3];return[0,e[1],[13,e[2]],e[3],e[4],e[5]]},function(r){var e=r[3];return[0,e[1],[16,e[2],15],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2];return[0,n[1],iut([0,f,e[2]],Kyt([0,t,a])),t,a,u]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2];return[0,e[1],iut(u,Kyt([0,t,n])),t,n,a]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5],t=n[5];return[0,t[1],n[2],t[3],e[4],t[5]]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[3],f=n[2],i=e[4],v=e[2],c=a[5],A=a[4],o=a[1],s=iut(t[2],Kyt([0,t[3],t[4]])),b=iut(0,Kyt([0,u,A])),l=Oyt(0,vut),B=[0,u,i];return[0,o,function(r){switch(b[2]){case 2:case 4:throw gQ([0,xz,hOr],1);default:if(1===b[2])var e=Kyt(B),n=Kyt(B),t=function(r){return iut(l[2]?[0,[0,0]]:0,vut)},a=Kyt(B),u=H0(function(r){return ewt(t,r)},v),i=[0,a,nwt(r,[0,b[1],b[2],l],[0,s],f,u),xS],c=Kyt(B),A=[0,e,[39,yOr,[0,n,[38,0,0,Ryt(Jjt(xOr,Kyt(B)),c),i],xS]]];else A=[0,Kyt(B),nwt(r,[0,b[1],b[2],l],0,f,v)];return Xyt(1,s,A[2],A[1])}},u,i,c]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=n[2],f=e[4],i=e[2],v=t[5],c=t[1],A=iut(0,Kyt([0,a,t[4]])),o=Oyt(0,vut),s=[0,a,f];return[0,c,function(r){switch(A[2]){case 0:var e=wOr;break;case 1:e=gOr;break;case 3:e=qOr;break;default:throw gQ([0,xz,IOr],1)}var n=Kyt(s),t=iut(Jjt(e,Kyt(s)),n);if(1===A[2])var a=Kyt(s),f=Kyt(s),v=function(r){return iut(o[2]?[0,[0,0]]:0,vut)},c=Kyt(s),b=H0(function(r){return ewt(v,r)},i),l=[0,c,nwt(r,[0,A[1],A[2],o],0,u,b),xS],B=Kyt(s),j=[0,a,[39,EOr,[0,f,[38,0,0,Ryt(Jjt(DOr,Kyt(s)),B),l],xS]]];else j=[0,Kyt(s),nwt(r,[0,A[1],A[2],o],0,u,i)];return Xyt(0,t,j[2],j[1])},a,f,v]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[5],f=a[3],i=n[2],v=e[4],c=e[2],A=u[4],o=a[4],s=a[1],b=iut(t[2],Kyt([0,t[3],t[4]])),l=Oyt(2===K8n[1]?1:0,vut),B=iut(1,Kyt([0,A!=A?A:f,o])),j=[0,f,v];return[0,s,function(r){switch(B[2]){case 2:case 4:throw gQ([0,xz,NOr],1);default:if(1===B[2])var e=Kyt(j),n=Kyt(j),t=function(r){return iut(l[2]?[0,[0,0]]:0,vut)},a=Kyt(j),u=H0(function(r){return ewt(t,r)},c),f=[0,a,nwt(r,[0,B[1],B[2],l],[0,b],i,u),xS],v=Kyt(j),A=[0,e,[39,FOr,[0,n,[38,0,0,Ryt(Jjt(TOr,Kyt(j)),v),f],xS]]];else A=[0,Kyt(j),nwt(r,[0,B[1],B[2],l],0,i,c)];return Xyt(1,b,A[2],A[1])}},f,v,u]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=t[3],f=n[2],i=e[4],v=e[2],c=a[4],A=t[4],o=t[1],s=Oyt(2===K8n[1]?1:0,vut),b=iut(1,Kyt([0,c!=c?c:u,A])),l=[0,u,i];return[0,o,function(r){switch(b[2]){case 0:var e=MOr;break;case 1:e=POr;break;case 3:e=UOr;break;default:throw gQ([0,xz,GOr],1)}var n=Kyt(l),t=iut(Jjt(e,Kyt(l)),n);if(1===b[2])var a=Kyt(l),u=Kyt(l),i=function(r){return iut(s[2]?[0,[0,0]]:0,vut)},c=Kyt(l),A=H0(function(r){return ewt(i,r)},v),o=[0,c,nwt(r,[0,b[1],b[2],s],0,f,A),xS],B=Kyt(l),j=[0,a,[39,KOr,[0,u,[38,0,0,Ryt(Jjt($Or,Kyt(l)),B),o],xS]]];else j=[0,Kyt(l),nwt(r,[0,b[1],b[2],s],0,f,v)];return Xyt(0,t,j[2],j[1])},u,i,a]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[5],f=u[4],i=u[3],v=n[2],c=e[4],A=e[2],o=u[5],s=u[1],b=a[4],l=a[3],B=iut(t[2],Kyt([0,t[3],t[4]])),j=Oyt(1,Kyt([0,i,f])),k=iut(1,Kyt([0,i!==f?i:l,b])),p=[0,i,c];return[0,s,function(r){switch(k[2]){case 2:case 4:throw gQ([0,xz,OOr],1);default:if(1===k[2])var e=Kyt(p),n=Kyt(p),t=function(r){return iut(j[2]?[0,[0,0]]:0,vut)},a=Kyt(p),u=H0(function(r){return ewt(t,r)},A),f=[0,a,nwt(r,[0,k[1],k[2],j],[0,B],v,u),xS],i=Kyt(p),c=[0,e,[39,QOr,[0,n,[38,0,0,Ryt(Jjt(ROr,Kyt(p)),i),f],xS]]];else c=[0,Kyt(p),nwt(r,[0,k[1],k[2],j],0,v,A)];return Xyt(1,B,c[2],c[1])}},i,c,o]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[4],f=a[3],i=n[2],v=e[4],c=e[2],A=a[5],o=a[1],s=t[4],b=t[3],l=Oyt(1,Kyt([0,f,u])),B=iut(1,Kyt([0,f!==u?f:b,s])),j=[0,f,v];return[0,o,function(r){switch(B[2]){case 0:var e=COr;break;case 1:e=HOr;break;case 3:e=VOr;break;default:throw gQ([0,xz,LOr],1)}var n=Kyt(j),t=iut(Jjt(e,Kyt(j)),n);if(1===B[2])var a=Kyt(j),u=Kyt(j),f=function(r){return iut(l[2]?[0,[0,0]]:0,vut)},v=Kyt(j),A=H0(function(r){return ewt(f,r)},c),o=[0,v,nwt(r,[0,B[1],B[2],l],0,i,A),xS],s=Kyt(j),b=[0,a,[39,SOr,[0,u,[38,0,0,Ryt(Jjt(zOr,Kyt(j)),s),o],xS]]];else b=[0,Kyt(j),nwt(r,[0,B[1],B[2],l],0,i,c)];return Xyt(0,t,b[2],b[1])},f,v,A]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[3],f=n[2],i=e[4],v=e[2],c=a[5],A=a[4],o=a[1],s=iut(t[2],Kyt([0,t[3],t[4]])),b=iut(3,Kyt([0,u,A])),l=Oyt(0,vut),B=[0,u,i];return[0,o,function(r){switch(b[2]){case 2:case 4:throw gQ([0,xz,ZOr],1);default:if(1===b[2])var e=Kyt(B),n=Kyt(B),t=function(r){return iut(l[2]?[0,[0,0]]:0,vut)},a=Kyt(B),u=H0(function(r){return ewt(t,r)},v),i=[0,a,nwt(r,[0,b[1],b[2],l],[0,s],f,u),xS],c=Kyt(B),A=[0,e,[39,XOr,[0,n,[38,0,0,Ryt(Jjt(WOr,Kyt(B)),c),i],xS]]];else A=[0,Kyt(B),nwt(r,[0,b[1],b[2],l],0,f,v)];return Xyt(1,s,A[2],A[1])}},u,i,c]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=n[2],f=e[4],i=e[2],v=t[5],c=t[1],A=iut(3,Kyt([0,a,t[4]])),o=Oyt(0,vut),s=[0,a,f];return[0,c,function(r){switch(A[2]){case 0:var e=JOr;break;case 1:e=YOr;break;case 3:e=rRr;break;default:throw gQ([0,xz,eRr],1)}var n=Kyt(s),t=iut(Jjt(e,Kyt(s)),n);if(1===A[2])var a=Kyt(s),f=Kyt(s),v=function(r){return iut(o[2]?[0,[0,0]]:0,vut)},c=Kyt(s),b=H0(function(r){return ewt(v,r)},i),l=[0,c,nwt(r,[0,A[1],A[2],o],0,u,b),xS],B=Kyt(s),j=[0,a,[39,tRr,[0,f,[38,0,0,Ryt(Jjt(nRr,Kyt(s)),B),l],xS]]];else j=[0,Kyt(s),nwt(r,[0,A[1],A[2],o],0,u,i)];return Xyt(0,t,j[2],j[1])},a,f,v]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=u[4],v=u[3],c=t[2],A=n[2],o=e[4],s=e[2],b=f[4],l=u[1],B=a[3],j=iut(0,Kyt([0,v,i])),k=Oyt(0,vut),p=iut(0,vut),m=[0,b!=b?b:v!==i?v:B,o];return[0,l,function(r){var e=c[2],n=c[3],t=fz(c[1],aRr,m)[2],a=Xjt(t[2],t[1]),u=s[2],f=s[1];if(1===j[2])var i=Cyt(A),v=function(r){return iut(k[2]?[0,[0,0]]:0,vut)},o=i,b=Qyt("",e),l=H0(function(r){return ewt(v,r)},u);else o=A,b=e,l=u;return[0,Kyt(m),[4,r,p,[0,j[1],j[2],k],a,b,n,o,f,l],xS]},v,o,f]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=u[4],v=u[3],c=t[2],A=n[2],o=e[4],s=e[2],b=f[4],l=u[1],B=a[3],j=Oyt(2===K8n[1]?1:0,vut),k=iut(1,Kyt([0,b!=b?b:v,i])),p=iut(0,vut),m=[0,b!=b?b:v!==i?v:B,o];return[0,l,function(r){var e=c[2],n=c[3],t=fz(c[1],uRr,m)[2],a=Xjt(t[2],t[1]),u=s[2],f=s[1];if(1===k[2])var i=Cyt(A),v=function(r){return iut(j[2]?[0,[0,0]]:0,vut)},o=i,b=Qyt("",e),l=H0(function(r){return ewt(v,r)},u);else o=A,b=e,l=u;return[0,Kyt(m),[4,r,p,[0,k[1],k[2],j],a,b,n,o,f,l],xS]},v,o,f]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5],v=f[4],c=f[3],A=u[4],o=t[2],s=n[2],b=e[4],l=e[2],B=i[4],j=f[1],k=u[3],p=a[3],m=Oyt(1,Kyt([0,c,v])),d=iut(1,Kyt([0,c!==v?c:k,A])),_=iut(0,vut),h=[0,B!=B?B:c!==A?c:p,b];return[0,j,function(r){var e=o[2],n=o[3],t=fz(o[1],fRr,h)[2],a=Xjt(t[2],t[1]),u=l[2],f=l[1];if(1===d[2])var i=Cyt(s),v=function(r){return iut(m[2]?[0,[0,0]]:0,vut)},c=i,A=Qyt("",e),b=H0(function(r){return ewt(v,r)},u);else c=s,A=e,b=u;return[0,Kyt(h),[4,r,_,[0,d[1],d[2],m],a,A,n,c,f,b],xS]},c,b,i]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=u[4],v=u[3],c=t[2],A=n[2],o=e[4],s=e[2],b=f[4],l=u[1],B=a[3],j=iut(3,Kyt([0,v,i])),k=Oyt(0,vut),p=iut(0,vut),m=[0,b!=b?b:v!==i?v:B,o];return[0,l,function(r){var e=c[2],n=c[3],t=fz(c[1],iRr,m)[2],a=Xjt(t[2],t[1]),u=s[2],f=s[1];if(1===j[2])var i=Cyt(A),v=function(r){return iut(k[2]?[0,[0,0]]:0,vut)},o=i,b=Qyt("",e),l=H0(function(r){return ewt(v,r)},u);else o=A,b=e,l=u;return[0,Kyt(m),[4,r,p,[0,j[1],j[2],k],a,b,n,o,f,l],xS]},v,o,f]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=a[3],i=t[2],v=n[2],c=e[4],A=e[2],o=u[4],s=a[1],b=iut(0,vut),l=Oyt(2===K8n[1]?1:0,vut),B=iut(0,vut),j=[0,o!=o||o!=o?o:f,c];return[0,s,function(r){var e=i[2],n=i[3],t=fz(i[1],vRr,j)[2],a=Xjt(t[2],t[1]),u=A[2],f=A[1];if(1===b[2])var c=Cyt(v),o=function(r){return iut(l[2]?[0,[0,0]]:0,vut)},s=c,k=Qyt("",e),p=H0(function(r){return ewt(o,r)},u);else s=v,k=e,p=u;return[0,Kyt(j),[4,r,B,[0,b[1],b[2],l],a,k,n,s,f,p],xS]},f,c,u]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5],v=i[5],c=v[3],A=f[4],o=u[4],s=u[3],b=t[2],l=n[2],B=e[4],j=e[2],k=v[5],p=v[1],m=i[2],d=f[2],_=a[3],h=iut(0,Kyt([0,s,o])),x=Oyt(0,vut),y=[0,c,A],w=Kyt(y),g=uz(d,Kyt(y)),q=iut([0,[0,w0(m,1),g]],w),I=[0,c!==A?c:s!==o?s:_,B];return[0,p,function(r){var e=b[2],n=b[3],t=fz(b[1],cRr,I)[2],a=Xjt(t[2],t[1]),u=j[2],f=j[1];if(1===h[2])var i=Cyt(l),v=function(r){return iut(x[2]?[0,[0,0]]:0,vut)},c=i,A=Qyt("",e),o=H0(function(r){return ewt(v,r)},u);else c=l,A=e,o=u;return[0,Kyt(I),[4,r,q,[0,h[1],h[2],x],a,A,n,c,f,o],xS]},c,B,k]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5],v=i[5],c=v[3],A=f[4],o=u[4],s=u[3],b=t[2],l=n[2],B=e[4],j=e[2],k=v[5],p=v[1],m=i[2],d=f[2],_=a[3],h=Oyt(2===K8n[1]?1:0,vut),x=iut(1,Kyt([0,A!=A?A:s,o])),y=[0,c,A],w=Kyt(y),g=uz(d,Kyt(y)),q=iut([0,[0,w0(m,1),g]],w),I=[0,c!==A?c:s!==o?s:_,B];return[0,p,function(r){var e=b[2],n=b[3],t=fz(b[1],ARr,I)[2],a=Xjt(t[2],t[1]),u=j[2],f=j[1];if(1===x[2])var i=Cyt(l),v=function(r){return iut(h[2]?[0,[0,0]]:0,vut)},c=i,A=Qyt("",e),o=H0(function(r){return ewt(v,r)},u);else c=l,A=e,o=u;return[0,Kyt(I),[4,r,q,[0,x[1],x[2],h],a,A,n,c,f,o],xS]},c,B,k]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5],v=i[5],c=v[5],A=c[3],o=i[4],s=f[4],b=f[3],l=u[4],B=t[2],j=n[2],k=e[4],p=e[2],m=c[5],d=c[1],_=v[2],h=i[2],x=u[3],y=a[3],w=Oyt(1,Kyt([0,b,s])),g=iut(1,Kyt([0,b!==s?b:x,l])),q=[0,A,o],I=Kyt(q),D=uz(h,Kyt(q)),E=iut([0,[0,w0(_,1),D]],I),N=[0,A!==o?A:b!==l?b:y,k];return[0,d,function(r){var e=B[2],n=B[3],t=fz(B[1],oRr,N)[2],a=Xjt(t[2],t[1]),u=p[2],f=p[1];if(1===g[2])var i=Cyt(j),v=function(r){return iut(w[2]?[0,[0,0]]:0,vut)},c=i,A=Qyt("",e),o=H0(function(r){return ewt(v,r)},u);else c=j,A=e,o=u;return[0,Kyt(N),[4,r,E,[0,g[1],g[2],w],a,A,n,c,f,o],xS]},A,k,m]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5],v=i[5],c=v[3],A=f[4],o=u[4],s=u[3],b=t[2],l=n[2],B=e[4],j=e[2],k=v[5],p=v[1],m=i[2],d=f[2],_=a[3],h=iut(3,Kyt([0,s,o])),x=Oyt(0,vut),y=[0,c,A],w=Kyt(y),g=uz(d,Kyt(y)),q=iut([0,[0,w0(m,1),g]],w),I=[0,c!==A?c:s!==o?s:_,B];return[0,p,function(r){var e=b[2],n=b[3],t=fz(b[1],sRr,I)[2],a=Xjt(t[2],t[1]),u=j[2],f=j[1];if(1===h[2])var i=Cyt(l),v=function(r){return iut(x[2]?[0,[0,0]]:0,vut)},c=i,A=Qyt("",e),o=H0(function(r){return ewt(v,r)},u);else c=l,A=e,o=u;return[0,Kyt(I),[4,r,q,[0,h[1],h[2],x],a,A,n,c,f,o],xS]},c,B,k]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5],v=i[3],c=u[4],A=t[2],o=n[2],s=e[4],b=e[2],l=i[5],B=i[1],j=f[2],k=u[2],p=a[3],m=iut(0,vut),d=Oyt(2===K8n[1]?1:0,vut),_=[0,v,c],h=Kyt(_),x=uz(k,Kyt(_)),y=iut([0,[0,w0(j,1),x]],h),w=[0,v!==c?v:c!=c?c:p,s];return[0,B,function(r){var e=A[2],n=A[3],t=fz(A[1],bRr,w)[2],a=Xjt(t[2],t[1]),u=b[2],f=b[1];if(1===m[2])var i=Cyt(o),v=function(r){return iut(d[2]?[0,[0,0]]:0,vut)},c=i,s=Qyt("",e),l=H0(function(r){return ewt(v,r)},u);else c=o,s=e,l=u;return[0,Kyt(w),[4,r,y,[0,m[1],m[2],d],a,s,n,c,f,l],xS]},v,s,l]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5],v=i[3],c=f[4],A=u[4],o=u[3],s=t[2],b=n[2],l=e[4],B=e[2],j=i[5],k=i[1],p=f[2],m=a[3],d=iut(0,Kyt([0,o,A])),_=Oyt(0,vut),h=[0,v,c],x=Kyt(h),y=iut([0,[0,0,uz(p,Kyt(h))]],x),w=[0,v!==c?v:o!==A?o:m,l];return[0,k,function(r){var e=s[2],n=s[3],t=fz(s[1],lRr,w)[2],a=Xjt(t[2],t[1]),u=B[2],f=B[1];if(1===d[2])var i=Cyt(b),v=function(r){return iut(_[2]?[0,[0,0]]:0,vut)},c=i,A=Qyt("",e),o=H0(function(r){return ewt(v,r)},u);else c=b,A=e,o=u;return[0,Kyt(w),[4,r,y,[0,d[1],d[2],_],a,A,n,c,f,o],xS]},v,l,j]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5],v=i[3],c=f[4],A=u[4],o=u[3],s=t[2],b=n[2],l=e[4],B=e[2],j=i[5],k=i[1],p=f[2],m=a[3],d=Oyt(2===K8n[1]?1:0,vut),_=iut(1,Kyt([0,c!=c?c:o,A])),h=[0,v,c],x=Kyt(h),y=iut([0,[0,0,uz(p,Kyt(h))]],x),w=[0,v!==c?v:o!==A?o:m,l];return[0,k,function(r){var e=s[2],n=s[3],t=fz(s[1],BRr,w)[2],a=Xjt(t[2],t[1]),u=B[2],f=B[1];if(1===_[2])var i=Cyt(b),v=function(r){return iut(d[2]?[0,[0,0]]:0,vut)},c=i,A=Qyt("",e),o=H0(function(r){return ewt(v,r)},u);else c=b,A=e,o=u;return[0,Kyt(w),[4,r,y,[0,_[1],_[2],d],a,A,n,c,f,o],xS]},v,l,j]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5],v=i[5],c=v[3],A=i[4],o=f[4],s=f[3],b=u[4],l=t[2],B=n[2],j=e[4],k=e[2],p=v[5],m=v[1],d=i[2],_=u[3],h=a[3],x=Oyt(1,Kyt([0,s,o])),y=iut(1,Kyt([0,s!==o?s:_,b])),w=[0,c,A],g=Kyt(w),q=iut([0,[0,0,uz(d,Kyt(w))]],g),I=[0,c!==A?c:s!==b?s:h,j];return[0,m,function(r){var e=l[2],n=l[3],t=fz(l[1],jRr,I)[2],a=Xjt(t[2],t[1]),u=k[2],f=k[1];if(1===y[2])var i=Cyt(B),v=function(r){return iut(x[2]?[0,[0,0]]:0,vut)},c=i,A=Qyt("",e),o=H0(function(r){return ewt(v,r)},u);else c=B,A=e,o=u;return[0,Kyt(I),[4,r,q,[0,y[1],y[2],x],a,A,n,c,f,o],xS]},c,j,p]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5],v=i[3],c=f[4],A=u[4],o=u[3],s=t[2],b=n[2],l=e[4],B=e[2],j=i[5],k=i[1],p=f[2],m=a[3],d=iut(3,Kyt([0,o,A])),_=Oyt(0,vut),h=[0,v,c],x=Kyt(h),y=iut([0,[0,0,uz(p,Kyt(h))]],x),w=[0,v!==c?v:o!==A?o:m,l];return[0,k,function(r){var e=s[2],n=s[3],t=fz(s[1],kRr,w)[2],a=Xjt(t[2],t[1]),u=B[2],f=B[1];if(1===d[2])var i=Cyt(b),v=function(r){return iut(_[2]?[0,[0,0]]:0,vut)},c=i,A=Qyt("",e),o=H0(function(r){return ewt(v,r)},u);else c=b,A=e,o=u;return[0,Kyt(w),[4,r,y,[0,d[1],d[2],_],a,A,n,c,f,o],xS]},v,l,j]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[3],v=u[4],c=t[2],A=n[2],o=e[4],s=e[2],b=f[5],l=f[1],B=u[2],j=a[3],k=iut(0,vut),p=Oyt(2===K8n[1]?1:0,vut),m=[0,i,v],d=Kyt(m),_=iut([0,[0,0,uz(B,Kyt(m))]],d),h=[0,i!==v?i:v!=v?v:j,o];return[0,l,function(r){var e=c[2],n=c[3],t=fz(c[1],pRr,h)[2],a=Xjt(t[2],t[1]),u=s[2],f=s[1];if(1===k[2])var i=Cyt(A),v=function(r){return iut(p[2]?[0,[0,0]]:0,vut)},o=i,b=Qyt("",e),l=H0(function(r){return ewt(v,r)},u);else o=A,b=e,l=u;return[0,Kyt(h),[4,r,_,[0,k[1],k[2],p],a,b,n,o,f,l],xS]},i,o,b]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5][5],v=i[3],c=f[4],A=u[4],o=u[3],s=t[2],b=n[2],l=e[4],B=e[2],j=i[5],k=i[1],p=f[2],m=a[3],d=iut(0,Kyt([0,o,A])),_=Oyt(0,vut),h=[0,v,c],x=Kyt(h),y=iut([0,[0,2,uz(p,Kyt(h))]],x),w=[0,v!==c?v:o!==A?o:m,l];return[0,k,function(r){var e=s[2],n=s[3],t=fz(s[1],mRr,w)[2],a=Xjt(t[2],t[1]),u=B[2],f=B[1];if(1===d[2])var i=Cyt(b),v=function(r){return iut(_[2]?[0,[0,0]]:0,vut)},c=i,A=Qyt("",e),o=H0(function(r){return ewt(v,r)},u);else c=b,A=e,o=u;return[0,Kyt(w),[4,r,y,[0,d[1],d[2],_],a,A,n,c,f,o],xS]},v,l,j]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5][5],v=i[3],c=f[4],A=u[4],o=u[3],s=t[2],b=n[2],l=e[4],B=e[2],j=i[5],k=i[1],p=f[2],m=a[3],d=Oyt(2===K8n[1]?1:0,vut),_=iut(1,Kyt([0,c!=c?c:o,A])),h=[0,v,c],x=Kyt(h),y=iut([0,[0,2,uz(p,Kyt(h))]],x),w=[0,v!==c?v:o!==A?o:m,l];return[0,k,function(r){var e=s[2],n=s[3],t=fz(s[1],dRr,w)[2],a=Xjt(t[2],t[1]),u=B[2],f=B[1];if(1===_[2])var i=Cyt(b),v=function(r){return iut(d[2]?[0,[0,0]]:0,vut)},c=i,A=Qyt("",e),o=H0(function(r){return ewt(v,r)},u);else c=b,A=e,o=u;return[0,Kyt(w),[4,r,y,[0,_[1],_[2],d],a,A,n,c,f,o],xS]},v,l,j]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5],v=i[5][5],c=v[3],A=i[4],o=f[4],s=f[3],b=u[4],l=t[2],B=n[2],j=e[4],k=e[2],p=v[5],m=v[1],d=i[2],_=u[3],h=a[3],x=Oyt(1,Kyt([0,s,o])),y=iut(1,Kyt([0,s!==o?s:_,b])),w=[0,c,A],g=Kyt(w),q=iut([0,[0,2,uz(d,Kyt(w))]],g),I=[0,c!==A?c:s!==b?s:h,j];return[0,m,function(r){var e=l[2],n=l[3],t=fz(l[1],_Rr,I)[2],a=Xjt(t[2],t[1]),u=k[2],f=k[1];if(1===y[2])var i=Cyt(B),v=function(r){return iut(x[2]?[0,[0,0]]:0,vut)},c=i,A=Qyt("",e),o=H0(function(r){return ewt(v,r)},u);else c=B,A=e,o=u;return[0,Kyt(I),[4,r,q,[0,y[1],y[2],x],a,A,n,c,f,o],xS]},c,j,p]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5][5],v=i[3],c=f[4],A=u[4],o=u[3],s=t[2],b=n[2],l=e[4],B=e[2],j=i[5],k=i[1],p=f[2],m=a[3],d=iut(3,Kyt([0,o,A])),_=Oyt(0,vut),h=[0,v,c],x=Kyt(h),y=iut([0,[0,2,uz(p,Kyt(h))]],x),w=[0,v!==c?v:o!==A?o:m,l];return[0,k,function(r){var e=s[2],n=s[3],t=fz(s[1],hRr,w)[2],a=Xjt(t[2],t[1]),u=B[2],f=B[1];if(1===d[2])var i=Cyt(b),v=function(r){return iut(_[2]?[0,[0,0]]:0,vut)},c=i,A=Qyt("",e),o=H0(function(r){return ewt(v,r)},u);else c=b,A=e,o=u;return[0,Kyt(w),[4,r,y,[0,d[1],d[2],_],a,A,n,c,f,o],xS]},v,l,j]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[5],f=u[5][5],i=f[3],v=u[4],c=t[2],A=n[2],o=e[4],s=e[2],b=f[5],l=f[1],B=u[2],j=a[3],k=iut(0,vut),p=Oyt(2===K8n[1]?1:0,vut),m=[0,i,v],d=Kyt(m),_=iut([0,[0,2,uz(B,Kyt(m))]],d),h=[0,i!==v?i:v!=v?v:j,o];return[0,l,function(r){var e=c[2],n=c[3],t=fz(c[1],xRr,h)[2],a=Xjt(t[2],t[1]),u=s[2],f=s[1];if(1===k[2])var i=Cyt(A),v=function(r){return iut(p[2]?[0,[0,0]]:0,vut)},o=i,b=Qyt("",e),l=H0(function(r){return ewt(v,r)},u);else o=A,b=e,l=u;return[0,Kyt(h),[4,r,_,[0,k[1],k[2],p],a,b,n,o,f,l],xS]},i,o,b]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2]],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2]],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2]],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2];return[0,e[1],[0,iut(u,Kyt([0,t,n]))],t,n,a]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5];return[0,n[1],[0,2],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2]],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],0,n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=t[3],f=n[3],i=e[4],v=a[5],c=a[3],A=a[1],o=t[2],s=n[4],b=n[2],l=e[3],B=[0,u!==t[4]?u:f!==s?f:l,i],j=Gyt[1];return[0,A,function(r){var e=QY(o,b);return[0,Kyt(B),e,[0,r,j]]},c,i,v]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=t[3],f=n[3],i=e[4],v=a[5],c=a[3],A=a[1],o=t[2],s=n[4],b=n[2],l=e[3],B=[0,u!==t[4]?u:f!==s?f:l,i],j=Gyt[1];return[0,A,function(r){var e=QY(o,b);return[0,Kyt(B),e,[0,r,j]]},c,i,v]},function(r){var e=r[3],n=e[5],t=n[5][5],a=t[5],u=a[5],f=a[3],i=e[4],v=u[5],c=u[3],A=u[1],o=a[2],s=t[3],b=n[2],l=[0,f!==a[4]?f:s,i],B=Gyt[1],j=[0,b];return[0,A,function(r){var e=[0,o,[0,Kyt(l),j,0]];return[0,Kyt(l),e,[0,r,B]]},c,i,v]},function(r){var e=r[3],n=e[5][5],t=n[5][5][5][5],a=t[5][5][5],u=a[5],f=u[5],i=u[3],v=e[4],c=f[5],A=f[3],o=f[1],s=u[2],b=a[3],l=t[2],B=n[2],j=[0,i!==u[4]?i:b,v],k=Gyt[1],p=[1,l,B];return[0,o,function(r){var e=[0,s,[0,Kyt(j),p,0]];return[0,Kyt(j),e,[0,r,k]]},A,v,c]},function(r){var e=r[3],n=e[5],t=n[5][5][5][5],a=t[5],u=a[5],f=u[5],i=u[3],v=e[4],c=f[5],A=f[3],o=f[1],s=u[2],b=a[3],l=t[2],B=n[2],j=[0,i!==u[4]?i:b,v],k=Gyt[1],p=[2,l,B];return[0,o,function(r){var e=[0,s,[0,Kyt(j),p,0]];return[0,Kyt(j),e,[0,r,k]]},A,v,c]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2];return[0,n[1],Wjt([7,f,e[2]],Kyt([0,t,a])),t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2];return[0,n[1],Wjt([8,f,e[2]],Kyt([0,t,a])),t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2],c=iut(f,Kyt([0,t,n[4]])),A=Kyt([0,t,a]);return[0,i,iut([0,c,Zyt(Wjt([0,c],c[1]),v)],A),t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[2],v=t[1],c=n[2],A=e[2],o=iut(i,Kyt([0,a,t[4]])),s=Kyt([0,a,u]);return[0,v,iut([0,o,Zyt(A,c)],s),a,u,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5];return[0,n[1],iut([1,Xjt(e[2],Kyt([0,e[3],a]))],Kyt([0,t,a])),t,a,u]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5];return[0,t[1],Wjt([4,n[2]],Kyt([0,a,u])),a,u,f]},function(r){var e=r[3],n=e[2];return[0,e[1],function(r){return n},e[3],e[4],e[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],function(r){return Wjt(0,r)},n,n,e]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5];return[0,e[1],Wjt(0,Kyt([0,t,n])),t,n,a]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2];return[0,e[1],Wjt([0,iut(u,Kyt([0,t,n]))],Kyt([0,t,n])),t,n,a]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2];return[0,e[1],Wjt([1,[0,u]],Kyt([0,t,n])),t,n,a]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=n[2],f=e[4],i=t[5],v=t[1],c=Kyt([0,a,f]);if(!u||u[2])A=[3,u];else var A=[9,u[1]];return[0,v,Wjt(A,c),a,f,i]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[1],i=[0,t,a],v=iut(e[2],Kyt([0,e[3],a])),c=Kyt(i);return[0,f,Wjt([6,v,Wjt(yRr,Kyt(i))],c),t,a,u]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2];return[0,i,Wjt([6,iut(v,Kyt([0,n[3],n[4]])),c],Kyt([0,a,u])),a,u,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5];return[0,n[1],Wjt([5,e[2]],Kyt([0,t,a])),t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=e[2],f=[0,t,a];r:{e:{var i=n[5],v=n[1],c=0;if("number"!=typeof u&&16===u[0]){var A=u[2],o=u[1];if(2!==A&&12!==A)break e;var s=Wjt([1,[0,[16,og+o,2===A?7:A]]],Kyt(f));break r}}s=Wjt([2,c,[0,u]],Kyt(f))}return[0,v,s,t,a,i]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=e[2],f=[0,t,a];r:{e:{var i=n[5],v=n[1],c=1;if("number"!=typeof u&&16===u[0]){var A=u[2],o=u[1];if(2!==A&&12!==A)break e;var s=Wjt([1,[0,[16,iF+o,2===A?7:A]]],Kyt(f));break r}}s=Wjt([2,c,[0,u]],Kyt(f))}return[0,v,s,t,a,i]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5];return[0,n[1],Wjt([2,2,[0,e[2]]],Kyt([0,t,a])),t,a,u]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2];return[0,e[1],Wjt([0,iut(u,Kyt([0,t,n]))],Kyt([0,t,n])),t,n,a]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2];return[0,n[1],Wjt([1,f,iut(e[2],Kyt([0,e[3],a]))],Kyt([0,t,a])),t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[4],v=t[1],c=n[2],A=e[2],o=iut(c,Kyt([0,n[3],n[4]])),s=iut(0,vut);return[0,v,[0,iut(0,Kyt([0,a,i])),iut([0,o,A,s],Kyt([0,a,u]))],a,u,f]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[4],c=a[1],A=t[4],o=t[3],s=n[2],b=e[2],l=iut(s,Kyt([0,n[3],n[4]])),B=iut(1,Kyt([0,o,A]));return[0,c,[0,iut(0,Kyt([0,u,v])),iut([0,l,b,B],Kyt([0,u,f]))],u,f,i]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[4],v=t[1],c=n[2],A=e[2],o=iut(c,Kyt([0,n[3],n[4]])),s=iut(0,vut);return[0,v,[0,iut(1,Kyt([0,a,i])),iut([0,o,A,s],Kyt([0,a,u]))],a,u,f]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[4],c=a[1],A=t[4],o=t[3],s=n[2],b=e[2],l=iut(s,Kyt([0,n[3],n[4]])),B=iut(1,Kyt([0,o,A]));return[0,c,[0,iut(1,Kyt([0,u,v])),iut([0,l,b,B],Kyt([0,u,f]))],u,f,i]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3];return[0,e[1],[0,e[2],0],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5][5];return[0,n[1],[0,n[2],e[2]],n[3],e[4],n[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5];return[0,e[1],[0,iut(0,Kyt([0,t,n]))],t,n,a]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5];return[0,e[1],[0,iut([0,[0,0]],Kyt([0,t,n]))],t,n,a]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5];return[0,e[1],[0,iut(0,Kyt([0,t,n]))],t,n,a]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2],A=iut(v,Kyt([0,n[3],n[4]])),o=iut(0,vut);return[0,i,iut([0,A,c,o],Kyt([0,a,u])),a,u,f]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[4],A=t[3],o=n[2],s=e[2],b=iut(o,Kyt([0,n[3],n[4]])),l=iut(1,Kyt([0,A,c]));return[0,v,iut([0,b,s,l],Kyt([0,u,f])),u,f,i]},function(r){var e=r[3],n=e[4];return[0,r[4],0,n,n,e]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2];return[0,n[1],Wjt([9,f,e[2]],Kyt([0,t,a])),t,a,u]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2];return[0,n[1],Wjt([10,f,e[2]],Kyt([0,t,a])),t,a,u]},function(r){var e=r[3],n=e[5],t=n[5];return[0,t[1],n[2],t[3],e[4],t[5]]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2],c=iut(f,Kyt([0,t,n[4]])),A=Kyt([0,t,a]);return[0,i,Xjt([0,c,iut(1,vut),v],A),t,a,u]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2],f=e[1],i=[0,t,n],v=iut(u,Kyt([0,t,n])),c=Kyt(i),A=Wjt(wRr,Kyt(i));return[0,f,Xjt([0,v,iut(1,vut),A],c),t,n,a]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2],A=Xjt(v,Kyt([0,n[3],n[4]]));return[0,i,[0,Kyt([0,a,u]),[3,A,0,c],xS],a,u,f]},function(r){var e=r[3],n=e[5][5][5],t=n[5][5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[2],A=n[2],o=e[2],s=Xjt(c,Kyt([0,t[3],t[4]]));return[0,v,[0,Kyt([0,u,f]),[3,s,A,o],xS],u,f,i]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2];return[0,i,iut([1,Xjt(v,Kyt([0,n[3],n[4]])),0,c],Kyt([0,a,u])),a,u,f]},function(r){var e=r[3],n=e[5][5][5],t=n[5][5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=t[2],A=n[2],o=e[2];return[0,v,iut([1,Xjt(c,Kyt([0,t[3],t[4]])),A,o],Kyt([0,u,f])),u,f,i]},function(r){var e=r[3],n=e[5][5],t=n[5],a=n[3],u=e[4],f=t[4],i=n[2],v=n[1],c=e[2],A=iut(i,Kyt([0,a,n[4]])),o=iut(0,vut);return[0,v,iut([0,A,c,o],Kyt([0,f!=f?f:a,u])),a,u,t]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[4],u=t[3],f=n[3],i=e[4],v=t[5],c=t[1],A=n[2],o=e[2],s=iut(A,Kyt([0,f,n[4]])),b=iut(1,Kyt([0,u,a]));return[0,c,iut([0,s,o,b],Kyt([0,u!==a?u:f,i])),u,i,v]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[3],u=e[4],f=e[2],i=t[5],v=t[2],c=t[1],A=n[2],o=iut(v,Kyt([0,a,t[4]])),s=Aut(o[1],f[1]),b=Wjt(Hyt([0,iut(0,vut),0,A,f]),s),l=Kyt([0,a,u]);return[0,c,iut([0,o,b,iut(0,vut)],l),a,u,i]},function(r){var e=r[3],n=e[5][5],t=n[5][5],a=t[5][5],u=a[3],f=e[4],i=e[2],v=a[5],c=a[2],A=a[1],o=t[2],s=n[2],b=iut(c,Kyt([0,u,a[4]])),l=Aut(b[1],i[1]),B=Wjt(Hyt([0,iut(0,vut),o,s,i]),l),j=Kyt([0,u,f]);return[0,A,iut([0,b,B,iut(0,vut)],j),u,f,v]},function(r){var e=r[3],n=e[5][5],t=n[5][5],a=t[5][5][5],u=a[3],f=e[4],i=e[2],v=a[5],c=a[4],A=a[2],o=a[1],s=n[2],b=Qyt("",t[2]),l=iut(A,Kyt([0,u,c])),B=Aut(l[1],i[1]),j=Wjt(Hyt([0,iut(0,vut),b,s,i]),B),k=Kyt([0,u,f]);return[0,o,iut([0,l,j,iut(0,vut)],k),u,f,v]},function(r){var e=r[3],n=e[5][5],t=n[3],a=n[5],u=n[1],f=e[4],i=e[2];return[0,u,[0,[0,iut(gRr,Kyt([0,t,n[4]]))],i],t,f,a]},function(r){var e=r[3],n=e[5][5],t=n[3],a=n[5],u=n[2],f=n[1],i=e[4],v=e[2];return[0,f,[0,[0,iut(u,Kyt([0,t,n[4]]))],v],t,i,a]},function(r){var e=r[3];return[0,e[1],[0,0,e[2]],e[3],e[4],e[5]]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5][5],t=n[5],a=n[3],u=e[4],f=t[4],i=n[2],v=n[1],c=e[2],A=iut(0,vut),o=Kyt([0,f!=f||f!=f?f:a,u]);return[0,v,Wjt(Hyt([0,A,0,i,c]),o),a,u,t]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[5],f=u[5],i=u[3],v=e[4],c=f[4],A=u[1],o=a[2],s=t[4],b=n[3],l=n[2],B=e[2],j=iut(0,vut),k=Kyt([0,c!=c?c:i!==s?i:b,v]);return[0,A,Wjt(Hyt([0,j,o,l,B]),k),i,v,f]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[5][5],f=u[5],i=u[3],v=e[4],c=f[4],A=u[1],o=t[4],s=n[3],b=n[2],l=e[2],B=Qyt("",a[2]),j=iut(0,vut),k=Kyt([0,c!=c?c:i!==o?i:s,v]);return[0,A,Wjt(Hyt([0,j,B,b,l]),k),i,v,f]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[3],f=t[4],i=e[4],v=a[5],c=a[1],A=t[2],o=n[3],s=n[2],b=e[2],l=Kyt([0,u,f]),B=iut([0,w0(A,1)],l),j=Kyt([0,u!==f?u:f!=f?f:o,i]);return[0,c,Wjt(Hyt([0,B,0,s,b]),j),u,i,v]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5],v=i[3],c=f[4],A=u[3],o=e[4],s=i[5],b=i[1],l=f[2],B=a[2],j=t[4],k=n[3],p=n[2],m=e[2],d=Kyt([0,v,c]),_=iut([0,w0(l,1)],d),h=Kyt([0,v!==c?v:A!==j?A:k,o]);return[0,b,Wjt(Hyt([0,_,B,p,m]),h),v,o,s]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[5][5],f=u[5],i=f[5],v=i[3],c=f[4],A=u[3],o=e[4],s=i[5],b=i[1],l=f[2],B=t[4],j=n[3],k=n[2],p=e[2],m=Qyt("",a[2]),d=Kyt([0,v,c]),_=iut([0,w0(l,1)],d),h=Kyt([0,v!==c?v:A!==B?A:j,o]);return[0,b,Wjt(Hyt([0,_,m,k,p]),h),v,o,s]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[4],u=t[3],f=e[4],i=t[5],v=t[1],c=n[3],A=n[2],o=e[2],s=iut([0,0],Kyt([0,u,a])),b=Kyt([0,u!==a?u:a!=a?a:c,f]);return[0,v,Wjt(Hyt([0,s,0,A,o]),b),u,f,i]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[4],v=f[3],c=u[3],A=e[4],o=f[5],s=f[1],b=a[2],l=t[4],B=n[3],j=n[2],k=e[2],p=iut([0,0],Kyt([0,v,i])),m=Kyt([0,v!==i?v:c!==l?c:B,A]);return[0,s,Wjt(Hyt([0,p,b,j,k]),m),v,A,o]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[5][5],f=u[5],i=f[4],v=f[3],c=u[3],A=e[4],o=f[5],s=f[1],b=t[4],l=n[3],B=n[2],j=e[2],k=Qyt("",a[2]),p=iut([0,0],Kyt([0,v,i])),m=Kyt([0,v!==i?v:c!==b?c:l,A]);return[0,s,Wjt(Hyt([0,p,k,B,j]),m),v,A,o]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[3],f=t[4],i=e[4],v=a[5],c=a[1],A=n[3],o=n[2],s=e[2],b=iut([0,2],Kyt([0,u,f])),l=Kyt([0,u!==f?u:f!=f?f:A,i]);return[0,c,Wjt(Hyt([0,b,0,o,s]),l),u,i,v]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[5],f=u[5],i=f[5],v=i[3],c=f[4],A=u[3],o=e[4],s=i[5],b=i[1],l=a[2],B=t[4],j=n[3],k=n[2],p=e[2],m=iut([0,2],Kyt([0,v,c])),d=Kyt([0,v!==c?v:A!==B?A:j,o]);return[0,b,Wjt(Hyt([0,m,l,k,p]),d),v,o,s]},function(r){var e=r[3],n=e[5][5],t=n[5],a=t[5],u=a[5][5],f=u[5],i=f[5],v=i[3],c=f[4],A=u[3],o=e[4],s=i[5],b=i[1],l=t[4],B=n[3],j=n[2],k=e[2],p=Qyt("",a[2]),m=iut([0,2],Kyt([0,v,c])),d=Kyt([0,v!==c?v:A!==l?A:B,o]);return[0,b,Wjt(Hyt([0,m,p,j,k]),d),v,o,s]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=n[2],f=e[4],i=t[5],v=t[1];r:{var c=Kyt([0,a,f]);if(u){var A=u[1],o=A[1];if(o){if(!u[2]){var s=[12,o[1],A[2]];break r}}else if(!u[2]){s=[11,A[2]];break r}}s=[6,u]}return[0,v,Wjt(s,c),a,f,i]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5],f=n[2],i=n[1],v=e[2],c=Kyt([0,t,a]);return[0,i,Wjt([0,f,w0(v,0)],c),t,a,u]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2];return[0,i,Wjt([3,iut(0,vut),v],Kyt([0,a,u])),a,u,f]},function(r){var e=r[3],n=e[5],t=n[5],a=t[5],u=a[3],f=e[4],i=a[5],v=a[1],c=n[2];return[0,v,Wjt([3,iut(1,Kyt([0,t[3],t[4]])),c],Kyt([0,u,f])),u,f,i]},function(r){var e=r[3],n=e[4],t=e[3],a=[0,t,n],u=e[5],f=e[2],i=e[1],v=Kyt(a);return[0,i,Wjt([2,iut(0,Kyt(a)),f],v),t,n,u]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2];return[0,e[1],Wjt([5,u],Kyt([0,t,n])),t,n,a]},function(r){var e=r[3],n=e[5],t=n[5];return[0,t[1],n[2],t[3],e[4],t[5]]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[2];return[0,e[1],Xjt([0,iut(u,Kyt([0,t,n]))],Kyt([0,t,n])),t,n,a]},function(r){var e=r[3],n=e[5][5],t=n[3],a=e[4],u=n[5],f=n[2];return[0,n[1],Xjt([1,f,iut(e[2],Kyt([0,e[3],a]))],Kyt([0,t,a])),t,a,u]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5];return[0,n[1],Wjt([1,e[2]],Kyt([0,t,a])),t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[1],v=e[2],c=Kyt(u);return[0,i,Wjt([8,0,ekt(Kyt(u)),v],c),t,a,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=[0,t,a],f=n[5],i=n[1],v=e[2],c=Kyt(u);return[0,i,Wjt([8,1,ekt(Kyt(u)),v],c),t,a,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=e[2],f=n[5],i=n[1],v=iut(0,Kyt([0,t,n[4]])),c=[0,t,a];return[0,i,Wjt([2,v,1===v[2]?H0(rwt,u):u],Kyt(c)),t,a,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=e[2],f=n[5],i=n[1],v=iut(1,Kyt([0,t,n[4]])),c=[0,t,a];return[0,i,Wjt([2,v,1===v[2]?H0(rwt,u):u],Kyt(c)),t,a,f]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=e[2],f=n[5],i=n[1],v=iut(3,Kyt([0,t,n[4]])),c=[0,t,a];return[0,i,Wjt([2,v,1===v[2]?H0(rwt,u):u],Kyt(c)),t,a,f]},function(r){var e=r[3],n=e[5],t=n[5],a=t[3],u=e[4],f=t[5],i=t[1],v=n[2],c=e[2],A=[0,a,u],o=iut(v,Kyt([0,n[3],n[4]])),s=Kyt(A);return[0,i,iut([0,o,w0(c,Wjt(qRr,Kyt(A)))],s),a,u,f]},function(r){var e=r[3];return[0,e[1],e[2],e[3],e[4],e[5]]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5];return[0,n[1],Wjt([4,e[2]],Kyt([0,t,a])),t,a,u]},function(r){var e=r[3],n=e[5],t=n[3],a=e[4],u=n[5];return[0,n[1],Wjt([13,e[2]],Kyt([0,t,a])),t,a,u]},function(r){var e=r[3],n=e[5][5];return[0,n[1],0,n[3],e[4],n[5]]},function(r){var e=r[3],n=e[5],t=n[5];return[0,t[1],n[2],t[3],e[4],t[5]]},function(r){var e=r[3],n=e[4];return[0,r[4],iut(0,vut),n,n,e]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5];return[0,e[1],iut(0,Kyt([0,t,n])),t,n,a]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5],u=e[1],f=Kyt([0,t,n]);return[0,u,iut([0,put(kut(Gyt[1],f))],f),t,n,a]},function(r){var e=r[3],n=e[4],t=e[3],a=e[5];return[0,e[1],iut(1,Kyt([0,t,n])),t,n,a]}],uwt=[Gl,"Mo_frontend.Parser.MenhirBasics.Error",zH()];function fwt(r){if(!(4<=r&&(r-4|0)>>1|0):a>>>1|0)+n|0)}function vwt(r,e,n,t,a,u,f){var i=Gkt(OS,r,e);if(1===i){var v=iwt(TRr,r,e),c=3&v,A=v>>>2|0;return 2<=c?cz(t,f,2===c?1:0,e,n,A):fz(a,f,A)}if(0===i)return uz(u,f);throw gQ([0,xz,vkr],1)}function cwt(r,e){return function(r,e){return iwt(QS,r,e)-1|0}(r,Ukt(RS,e))}function Awt(r){var e=r-4|0;return gC(awt,e)[e+1]}function owt(r,e){return e?[0,r]:swt(r)}function swt(r){var e=Ukt(KS,r[4]);if(0!==e)return lwt(r,e-1|0);if(r[1])return[3,r];var n=r[2][1],t=function(r){return"number"==typeof r?0:r[1]}(n),a=function(r){if("number"!=typeof r)switch(r[0]){case 0:return 21;case 1:return 56;case 2:return 60;case 3:return 83;case 4:return 91;case 5:return 98;case 6:return rh;default:return fM}var e=r;if(61<=e){if(92<=e)switch(e){case 92:return 99;case 93:return T$;case 94:return gq;case 95:return Ul;case 96:return E$;case 97:return ZA;case 98:return os;case 99:return bk;case 100:return pb;case 101:return ZN;case 102:return FT;case 103:return Wr;case 104:return Jn;case 105:return aK;case 106:return Zc;case 107:return xp;case 108:return A$;case 109:return LP;case 110:return uw;case 111:return WP;case 112:return VP;case 113:return Ux;case 114:return CU;case 115:return Iy;case 116:return xI;case 117:return Je;case 118:return lj;case 119:return Ih;case 120:return xs;default:return Ae}switch(e){case 61:return 65;case 62:return 66;case 63:return 67;case 64:return 68;case 65:return 69;case 66:return 70;case 67:return 71;case 68:return 72;case 69:return 73;case 70:return 74;case 71:return 75;case 72:return 76;case 73:return 77;case 74:return 78;case 75:return 79;case 76:return 80;case 77:return 81;case 78:return 82;case 79:return 84;case 80:return 85;case 81:return 86;case 82:return 87;case 83:return 88;case 84:return 89;case 85:return 90;case 86:return 92;case 87:return 93;case 88:return 94;case 89:return 95;case 90:return 96;default:return 97}}if(31<=e)switch(e){case 31:return 33;case 32:return 34;case 33:return 35;case 34:return 36;case 35:return 37;case 36:return 38;case 37:return 39;case 38:return 40;case 39:return 41;case 40:return 42;case 41:return 43;case 42:return 44;case 43:return 45;case 44:return 46;case 45:return 47;case 46:return 48;case 47:return 49;case 48:return 50;case 49:return 51;case 50:return 52;case 51:return 53;case 52:return 54;case 53:return 55;case 54:return 57;case 55:return 58;case 56:return 59;case 57:return 61;case 58:return 62;case 59:return 63;default:return 64}switch(e){case 0:return 1;case 1:return 2;case 2:return 3;case 3:return 4;case 4:return 5;case 5:return 6;case 6:return 7;case 7:return 8;case 8:return 9;case 9:return 10;case 10:return 11;case 11:return 12;case 12:return 13;case 13:return 14;case 14:return 15;case 15:return 16;case 16:return 17;case 17:return 18;case 18:return 19;case 19:return 20;case 20:return 22;case 21:return 23;case 22:return 24;case 23:return 25;case 24:return 26;case 25:return 27;case 26:return 28;case 27:return 29;case 28:return 30;case 29:return 31;default:return 32}}(n);return vwt(r[4],a,t,bwt,lwt,jwt,r)}function bwt(r,e,n,t,a){var u=r[2];return[1,r,[0,r[1],r[2],[0,r[4],t,u[2],u[3],r[3]],a],e]}function lwt(r,e){return e<4?[4,r[3][2]]:[2,r,e]}function Bwt(r,e){var n=uz(Awt(e),r),t=cwt(n[1],e);return owt([0,r[1],r[2],n,t],0)}function jwt(r){return[3,[0,1,r[2],r[3],r[4]]]}function kwt(r,e){var n=[];return EL(n,[0,r,0,e,e,n]),owt([0,0,[0,0,e,e],n,r],1)}function pwt(r){if("number"!=typeof r&&0===r[0]){var e=r[1];return function(r){return swt([0,0,r,e[3],e[4]])}}return MY("offer expects InputNeeded")}function mwt(r,e){var n=r?r[1]:UF;if("number"!=typeof e)switch(e[0]){case 1:return owt(e[2],e[3]);case 2:return Bwt(e[1],e[2]);case 3:var t=e[1];if(t[1])return vwt(t[4],0,0,function(r,e,t,a,u){if(OH(t,0)&&OH(a,0))return bwt(r,ee<=n?0:e,0,a,u);throw gQ([0,xz,pkr],1)},function(r,e){return ee<=n?lwt(r,e):Bwt(r,e)},function(r){if(ee<=n)return 0;var e=r[3],t=e[5];return t===e?0:[3,[0,r[1],r[2],t,e[1]]]},t);throw gQ([0,xz,kkr],1)}return MY("resume expects HandlingError | Shifting | AboutToReduce")}function dwt(r){for(var e=r;;){if("number"!=typeof e)switch(e[0]){case 1:return[0,e[1]];case 2:e=mwt(0,e);continue;case 3:return 0}throw gQ([0,xz,mkr],1)}}function _wt(r,e){return[W,function(n){var t=r[5];return t===r?0:[0,[0,e,r[2],r[3],r[4]],_wt(t,r[1])]}]}function hwt(r){var e=r[3];return e[5]===e?0:[0,[0,r[4],e[2],e[3],e[4]]]}function xwt(r){return 0===Ukt(KS,r)?0:1}function ywt(r){var e=r[3],n=e[5];return n===e?0:[0,[0,r[1],r[2],n,e[1]]]}function wwt(r,e){for(var n=r,t=e;;){if(0===n)return[0,t];var a=ywt(t);if(!a)return 0;n=n-1|0,t=a[1]}}function gwt(r){if(Ae>>0)throw gQ([0,xz,sGr],1);var e=r;if(66<=e){if(99<=e)switch(e){case 99:return aKr;case 100:return uKr;case 101:return fKr;case 102:return iKr;case 103:return vKr;case 104:return cKr;case 105:return AKr;case 106:return oKr;case 107:return sKr;case 108:return bKr;case 109:return lKr;case 110:return BKr;case 111:return jKr;case 112:return kKr;case 113:return pKr;case 114:return mKr;case 115:return dKr;case 116:return _Kr;case 117:return hKr;case 118:return xKr;case 119:return yKr;case 120:return wKr;case 121:return gKr;case 122:return qKr;case 123:return IKr;case 124:return DKr;case 125:return EKr;case 126:return NKr;case 127:return TKr;case 128:return FKr;case 129:return MKr;default:return PKr}switch(e){case 66:return w$r;case 67:return g$r;case 68:return q$r;case 69:return I$r;case 70:return D$r;case 71:return E$r;case 72:return N$r;case 73:return T$r;case 74:return F$r;case 75:return M$r;case 76:return P$r;case 77:return U$r;case 78:return G$r;case 79:return $$r;case 80:return K$r;case 81:return O$r;case 82:return R$r;case 83:return Q$r;case 84:return C$r;case 85:return H$r;case 86:return V$r;case 87:return L$r;case 88:return z$r;case 89:return S$r;case 90:return Z$r;case 91:return W$r;case 92:return X$r;case 93:return J$r;case 94:return Y$r;case 95:return rKr;case 96:return eKr;case 97:return nKr;default:return tKr}}if(33<=e)switch(e){case 33:return LGr;case 34:return zGr;case 35:return SGr;case 36:return ZGr;case 37:return WGr;case 38:return XGr;case 39:return JGr;case 40:return YGr;case 41:return r$r;case 42:return e$r;case 43:return n$r;case 44:return t$r;case 45:return a$r;case 46:return u$r;case 47:return f$r;case 48:return i$r;case 49:return v$r;case 50:return c$r;case 51:return A$r;case 52:return o$r;case 53:return s$r;case 54:return b$r;case 55:return l$r;case 56:return B$r;case 57:return j$r;case 58:return k$r;case 59:return p$r;case 60:return m$r;case 61:return d$r;case 62:return _$r;case 63:return h$r;case 64:return x$r;default:return y$r}switch(e){case 0:return bGr;case 1:return lGr;case 2:return BGr;case 3:return jGr;case 4:return kGr;case 5:return pGr;case 6:return mGr;case 7:return dGr;case 8:return _Gr;case 9:return hGr;case 10:return xGr;case 11:return yGr;case 12:return wGr;case 13:return gGr;case 14:return qGr;case 15:return IGr;case 16:return DGr;case 17:return EGr;case 18:return NGr;case 19:return TGr;case 20:return FGr;case 21:return MGr;case 22:return PGr;case 23:return UGr;case 24:return GGr;case 25:return $Gr;case 26:return KGr;case 27:return OGr;case 28:return RGr;case 29:return QGr;case 30:return CGr;case 31:return HGr;default:return VGr}}function qwt(r){var e=r-4|0;if(gq>>0)throw gQ([0,xz,kPr],1);var n=e;if(51<=n)switch(n){case 51:return BUr;case 52:return jUr;case 53:return kUr;case 54:return pUr;case 55:return mUr;case 56:return dUr;case 57:return _Ur;case 58:return hUr;case 59:return xUr;case 60:return yUr;case 61:return wUr;case 62:return gUr;case 63:return qUr;case 64:return IUr;case 65:return DUr;case 66:return EUr;case 67:return NUr;case 68:return TUr;case 69:return FUr;case 70:return MUr;case 71:return PUr;case 72:return UUr;case 73:return GUr;case 74:return $Ur;case 75:return KUr;case 76:return OUr;case 77:return RUr;case 78:return QUr;case 79:return CUr;case 80:return HUr;case 81:return VUr;case 82:return LUr;case 83:return zUr;case 84:return SUr;case 85:return ZUr;case 86:return WUr;case 87:return XUr;case 88:return JUr;case 89:return YUr;case 90:return rGr;case 91:return eGr;case 92:return nGr;case 93:return tGr;case 94:return aGr;case 95:return uGr;case 96:return fGr;case 97:return iGr;case 98:return vGr;case 99:return cGr;case 100:return AGr;default:return oGr}switch(n){case 0:return pPr;case 1:return mPr;case 2:return dPr;case 3:return _Pr;case 4:return hPr;case 5:return xPr;case 6:return yPr;case 7:return wPr;case 8:return gPr;case 9:return qPr;case 10:return IPr;case 11:return DPr;case 12:return EPr;case 13:return NPr;case 14:return TPr;case 15:return FPr;case 16:return MPr;case 17:return PPr;case 18:return UPr;case 19:return GPr;case 20:return $Pr;case 21:return KPr;case 22:return OPr;case 23:return RPr;case 24:return QPr;case 25:return CPr;case 26:return HPr;case 27:return VPr;case 28:return LPr;case 29:return zPr;case 30:return SPr;case 31:return ZPr;case 32:return WPr;case 33:return XPr;case 34:return JPr;case 35:return YPr;case 36:return rUr;case 37:return eUr;case 38:return nUr;case 39:return tUr;case 40:return aUr;case 41:return uUr;case 42:return fUr;case 43:return iUr;case 44:return vUr;case 45:return cUr;case 46:return AUr;case 47:return oUr;case 48:return sUr;case 49:return bUr;default:return lUr}}function Iwt(r,e){var n=r[2],t=r[1],a=Ukt(n,e+1|0);return $kt(function(r){return Ukt(t,r)},Ukt(n,e),a)}function Dwt(r){if(0>=r)throw gQ([0,xz,bkr],1);var e=r>>>1|0;return 1&r?qwt(e):gwt(e-1|0)}function Ewt(r){var e=4+r|0;if(OH(qwt(e),[0,[1,r]]))return e;throw gQ([0,xz,skr],1)}function Nwt(r){if(OH(gwt(r),[0,[0,r]]))return r;throw gQ([0,xz,okr],1)}function Twt(r,e){var n=Nwt(e);return Nwt(r)-n|0}function Fwt(r,e){var n=Ewt(e);return Ewt(r)-n|0}function Mwt(r){return[0,r>>>10|0,r%Jo|0]}function Pwt(r){if(0!==r&&1!==r)throw gQ([0,xz,Akr],1);return 1===r?1:0}function Uwt(r,e){var n=Nwt(e);return Pwt(Gkt(URr,Ewt(r),n))}function Gwt(r,e){return MY(gS)}function $wt(r){return MY(gS)}function Kwt(r){return kwt(1078,r)}function Owt(r){return kwt(_N,r)}var Rwt=[0,pwt,mwt,function(r,e){return function(n){return[0,uz(r,e),e[11],e[12]]}},function(r,e,n){for(var t=r,a=n;;){var u=t?t[1]:UF;if("number"==typeof a)throw gQ(uwt,1);switch(a[0]){case 0:var f=uz(e,0);t=[0,u],a=pwt(a)(f);break;case 4:return a[1];default:t=[0,u],a=mwt([0,u],a)}}},function(r,e,n,t){for(var a=t;;){if("number"!=typeof a)switch(a[0]){case 0:var u=uz(n,0);a=pwt(a)(u);continue;case 4:return uz(r,a[1]);case 3:break;default:a=mwt(0,a);continue}return uz(e,a)}},function(r,e,n,t){if("number"==typeof t||0!==t[0])a=0;else var a=1;if(!a)throw gQ([0,xz,_kr],1);for(var u=[0,t,t];;){var f=u[2],i=u[1];if("number"!=typeof f)switch(f[0]){case 0:var v=uz(n,0);u=[0,f,pwt(f)(v)];continue;case 4:return uz(r,f[1]);case 3:break;default:u=[0,i,mwt(0,f)];continue}return fz(e,i,f)}},dwt,function(r,e,n){return dwt(pwt(r)([0,e,n,n]))?1:0},function(r){return r},function(r){return fwt(r),r},function(r){return fwt(r),r},function(r){return _wt(r[3],r[4])},hwt,wwt,function(r,e){var n=wwt(r,e);return n?hwt(n[1]):0},function(r){return r[4]},function(r,e){var n=r[3]===e[3]?1:0;return n?r[4]===e[4]?1:0:n},function(r){var e=r[2];return[0,e[2],e[3]]},function(r){return xwt(r[4])},xwt,ywt,function(r,e){if(!function(r,e){var n=Ukt(KS,r);if(0!==n)return e===(n-1|0)?1:0;for(var t=0,a=0,u=OS[1];;){if(a===u)return t;var f=t||vwt(r,a,0,function(r,e,n,t,a){return 0},function(r,n){return e===n?1:0},function(r){return 0},0);t=f,a=a+1|0}}(e[4],r))return MY("force_reduction: this reduction is not permitted in this state");if(r<4)throw gQ([0,xz,dkr],1);var n=uz(Awt(r),e),t=cwt(n[1],r);return[0,e[1],e[2],n,t]},function(r){return[0,r]},Twt,Fwt,function(r,e){var n=r[1];if(0===n[0]){var t=e[1],a=n[1];return 0===t[0]?Twt(a,t[1]):-1}var u=e[1],f=n[1];return 0===u[0]?1:Fwt(f,u[1])},function(r,e){return r-e|0},function(r,e){var n=r[1]-e[1]|0,t=e[2],a=r[2];return 0===n?a-t|0:n},function(r){return Dwt(Ukt(FRr,Ukt(CS,r)))[1]},function(r){return H0(Mwt,Iwt(PRr,Ukt(CS,r)))},function(r){return qwt(Ukt(RS,r))},function(r){return H0(Dwt,Iwt(MRr,r))},function(r){return Pwt(Pkt("\b\0ÿÿð@?À\0\0\0@",Ewt(r)))},Uwt,function(r,e){var n=r[1];return 0===n[0]?0===Twt(e,n[1])?1:0:Uwt(n[1],e)},function(r,e){for(var n=e,t=0,a=OS[1];;){if(t===a)return n;n=fz(r,gwt(t),n),t=t+1|0}},function(r,e){for(var n=e,t=0,a=OS[1];;){if(t===a)return n;n=0===t?n:fz(r,gwt(t),n),t=t+1|0}},function(r,e,n,t,a){if(0===r[0]){var u=Nwt(r[1]),f=a[4];return vwt(f,u,n,function(r,n,a,u,i){return[0,r[1],r[2],[0,f,u,e,t,r[3]],i]},Gwt,$wt,a)}var i=Ewt(r[1]),v=a[4],c=function(r,e){var n=iwt(QS,r,e);if(0<=n)return 0===n?0:[0,n-1|0];throw gQ([0,xz,ikr],1)}(v,i);return c?[0,a[1],a[2],[0,v,n,e,t,a[3]],c[1]]:MY(gS)}];function Qwt(r){return"number"!=typeof r&&8===r[0]?1:0}function Cwt(r,e){var n=Pyt(r[11]);throw gQ([0,Myt,[0,n,Pyt(r[12])],e],1)}function Hwt(r,e,n){return e[11]=r,Cwt(e,n)}function Vwt(r,e){for(var n=z2(AV(e)),t=[0,1];;){if(t[1]>=(AV(e)-1|0))return S2(n);10===BL(e,t[1])&&d2(r);r:if(Ih<=BL(e,t[1])){var a=Bs<=BL(e,t[1])?Jj<=BL(e,t[1])?3:2:1;t[1]=t[1]+a|0;var u=Qrt([0,$0(Ort(T1(e,t[1]-a|0,1+a|0))),0])}else if(92===BL(e,t[1])){t[1]++;var f=BL(e,t[1]);if(40<=f){if(Wr<=f){if(LP>f)switch(f+-110|0){case 0:u=Qrt(vHr);break r;case 4:u=Qrt(cHr);break r;case 6:u=Qrt(AHr);break r;case 7:var i=t[1]+2|0;t[1]=R1(e,i,xI);try{var v=xV(FM+T1(e,i,t[1]-i|0));if(!(0<=v&&We>v||Ct<=v&&Ms>v))throw gQ([0,jz,""],1);var c=v}catch(v){var A=NL(v);if(A[1]!==jz)throw gQ(A,0);c=Cwt(r,oHr)}u=Qrt([0,c,0]);break r}}else if(92===f){u=Qrt(sHr);break r}}else{if(34===f){u=Qrt(lHr);break r}if(39<=f){u=Qrt(bHr);break r}}t[1]++;var o=N1(1,BL(e,t[1]));let n=T0(xV(FM+N1(1,f)+o));u=W1(function(r){return[0,n,p0]})}else u=Qrt([0,BL(e,t[1]),0]);t[1]++,Y2(n,u,0,AV(u))}}function Lwt(r,e,n){for(;;){for(var t=dx;;){var a=j2(HS,t,n);if(5>=a>>>0)break;uz(n[1],n),t=a}switch(a){case 0:return r3(r,m2(n,n[5],n[5]+2|0));case 1:r3(r,m2(n,n[5],n[5]+2|0)),Lwt(r,n[11],n);break;case 2:var u=jC(n[2],n[5]);d2(n),J2(r,u);break;case 3:return Hwt(e,n,fHr);case 4:r3(r,m2(n,n[5],n[6]));break;default:return Cwt(n,iHr)}}}var zwt=AL([0,0,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,2,1,1,1,1,1,1,1,1,2,2,3,4,1,1,2,1,2,3,4,5,1,1,2,3,1,2,1,1,1,2,3,1,2,3,4,5,6,1,2,1,2,3,4,1,2,1,1,2,3,4,5,6,1,7,8,1,1,1,2,1,2,1,1,1,2,1,1,1,3,1,2,3,1,1,2,3,2,3,2,3,2,3,1,2,2,9,4,5,6,7,8,3,4,5,3,4,2,3,5,6,7,2,3,4,5,6,7,3,4,1,2,3,4,5,6,7,8,3,4,5,6,7,2,3,2,3,4,1,2,3,2,3,2,3,2,4,2,3,2,3,1,2,1,1,2,3,2,3,3,2,3,2,3,6,7,8,3,4,5,6,7,2,3,4,3,2,3,5,6,7,8,9,4,5,6,7,8,3,4,5,1,2,3,1,2,3,1,2,1,3,2,3,2,2,2,2,3,1,1,2,1,3,1,1,2,1,1,1,2,3,2,3,4,2,3,1,2,3,2,3,2,2,3,1,2,3,2,1,3,4,1,2,3,1,2,3,2,3,1,0,1,2,1,1,1,1,2,1,1,2,1,1,2,3,4,3,4,1,2,3,4,5,6,7,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,4,1,1,1,1,1,1,2,3,1,2,1,2,1,1,1,2,1,2,1,3,4,5,6,1,2,3,4,5,2,3,4,1,2,3,4,5,6,3,4,5,2,1,7,8,1,1,1,1,1,1,1,1,2,1,1,2,3,4,5,6,7,1,2,3,2,1,8,3,4,5,6,7,3,4,5,6,7,3,4,5,1,1,2,3,4,5,6,3,4,5,6,3,4,5,1,2,3,4,5,2,3,4,5,2,3,4,1,2,3,4,5,2,3,4,5,2,3,4,1,2,3,1,2,1,1,1,1,2,3,4,5,1,2,3,2,3,1,1,2,1,2,3,1,2,3,1,1,2,1,1,1,2,3,1,1,1,1,2,2,1,1,2,1,2,3,3,4,2,3,2,1,2,1,2,1,2,1,1,1,2,1,2,1,2,1,1,2,3,1,1,2,3,4,1,2,3,2,1,1,1,2,1,1,2,1,2,3,4,5,6,7,8,9,4,5,6,7,8,4,5,6,7,8,4,5,6,7,1,4,5,6,7,4,5,6,7,8,1,2,3,4,1,2,3,1,1,1,2,3,1,1,2,1,1,2,3,1,2,1,2,3,4,1,1,2,3,2,1,1,2,1,1,2,1,2,3,1,1,1,1,1,1,1,2,1,2,3,4,5,2,3,4,5,2,2,3,4,1,1,1,2,1,1,1,1,1,2,1,2,1,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,2,1,1,1,1,1,1,2,1,2,1,1,1,1,2,3,2,3,1,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,3,4,2,2,3,2,2,1,1,2,1,2,3,1,2,3,1,1,1,3,2,2,2,2,2,2,2,2,5,6,7,3,4,5,2,4,2,3,4,1,2,3,2,3,2,3,4,2,5,6,7,2,4,2,3,3,4,5,6,2,3,1,2,3,4,4,5,1,2,3,4,5,6,7,8,4,5,6,7,8,4,5,6,7,4,5,6,7,8,1,2,3,4,5,6,3,4,5,6,7,1,2,3,6,7,1,6,6,7,8,1,2,3,2,3,1,2,2,3,2,2,3,3,4,5,3,4,2,2,2,2,3,2,4,4,3,4,2,3,2,2,2,3,4,3,4,5,6,2,3,4,5,6,7,6,7,8,1,2,3,4,5,6,2,3,1,1,1,1,2,3,2,3,6,2,3,2,3,1,2,3,2,3,9,4,5,6,7,3,4,2,3,4,1,2,3,3,4,5,3,3,4,5,5,1,2,3,2,3,4,5,1,2,3,2,3,2,3,4,5,1,2,3,2,2,2,3,4,5,2,2,2,2,2,2,2,3,4,3,4,5,5,2,3,3,4,2,2,3,4,1,0,1,2,3,4,1,2,3,1,2,3,1,0,1,1,2,3,4,5,6,7,3,4,1,2,3,2,3,2,3,1,4,5,6,7,1,2,3,4,5,2,3,4,1,2,3,2,3,8,9,1,2,3,1,2,3,2,3,3,4,5,1,2,3,4,5,2,3,4,1,2,3,4,5,2,3,4,6,7,8,9,10,11,12,1,2,3,2,3,4,5,6,1]),Swt=[0,p4r,[0,k4r,VS]],Zwt=[0,[2,SS],m4r],Wwt=[0,[2,Zwt],d4r],Xwt=[0,[1,[0,83]],[0,_4r,WS]],Jwt=[0,[2,Xwt],h4r],Ywt=[0,[2,Jwt],x4r],rgt=[0,[2,Ywt],y4r],egt=[0,[2,rgt],w4r],ngt=[0,[2,rgt],g4r],tgt=[0,q4r,ngt],agt=[0,[2,Jwt],tgt],ugt=[0,[2,rgt],I4r],fgt=[0,D4r,ugt],igt=[0,[2,Jwt],fgt],vgt=[0,[1,[0,86]],igt],cgt=[0,[2,rgt],E4r],Agt=[0,N4r,cgt],ogt=[0,[2,Jwt],Agt],sgt=[0,[1,[0,86]],ogt],bgt=[0,[2,rgt],T4r],lgt=[0,F4r,bgt],Bgt=[0,[2,rgt],M4r],jgt=[0,P4r,Bgt],kgt=[0,[2,Jwt],jgt],pgt=[0,[1,[0,86]],kgt],mgt=[0,[2,rgt],U4r],dgt=[0,G4r,mgt],_gt=[0,[2,Jwt],dgt],hgt=[0,[1,[0,86]],_gt],xgt=[0,$4r,YS],ygt=[0,[2,egt],K4r],wgt=[0,O4r,ygt],ggt=[0,[1,[0,74]],xgt],qgt=[0,[2,egt],R4r],Igt=[0,[1,[0,95]],qgt],Dgt=[0,[2,egt],Q4r],Egt=[0,[1,[0,95]],Dgt],Ngt=[0,[1,[0,86]],Egt],Tgt=[0,[2,rgt],C4r],Fgt=[0,H4r,Tgt],Mgt=[0,[2,Jwt],Fgt],Pgt=[0,[1,[0,86]],Mgt],Ugt=[0,[2,rgt],V4r],Ggt=[0,L4r,Ugt],$gt=[0,[2,Jwt],Ggt],Kgt=[0,[1,[0,86]],$gt],Ogt=[0,[2,rgt],z4r],Rgt=[0,S4r,Ogt],Qgt=[0,[2,Jwt],Rgt],Cgt=[0,[2,rgt],Z4r],Hgt=[0,W4r,Cgt],Vgt=[0,[2,Jwt],Hgt],Lgt=[0,[1,[0,86]],Vgt],zgt=[0,[2,rgt],X4r],Sgt=[0,J4r,zgt],Zgt=[0,[2,Jwt],Sgt],Wgt=[0,[1,[0,86]],Zgt],Xgt=[0,[2,egt],Y4r],Jgt=[0,[2,egt],r5r],Ygt=[0,e5r,Jgt],rqt=[0,[2,Xwt],Ygt],eqt=[0,[1,[0,86]],rqt],nqt=[0,[2,egt],n5r],tqt=[0,t5r,nqt],aqt=[0,[2,Xwt],tqt],uqt=[0,[1,[0,86]],aqt],fqt=[0,[2,egt],a5r],iqt=[0,[2,egt],u5r],vqt=[0,[2,Wwt],f5r],cqt=[0,[2,vqt],i5r],Aqt=[0,v5r,bZ],oqt=[0,c5r,Aqt],sqt=[0,[2,lZ],A5r],bqt=[0,o5r,BZ],lqt=[0,[2,jZ],s5r],Bqt=[0,[1,[0,95]],pZ],jqt=[0,[0,5],Bqt],kqt=[0,[2,egt],[0,[0,20],0]],pqt=[0,[1,[0,95]],kqt],mqt=[0,[2,egt],[0,[0,21],0]],dqt=[0,[1,[0,95]],mqt],_qt=[0,[1,[0,86]],dqt],hqt=[0,[2,jZ],l5r],xqt=[0,[1,[0,93]],hqt],yqt=[0,B5r,_Z],wqt=[0,[1,[0,74]],yqt],gqt=[0,[2,jZ],[0,[0,8],0]],qqt=[0,[2,jZ],j5r],Iqt=[0,[2,jZ],k5r],Dqt=[0,[1,[0,93]],Iqt],Eqt=[0,p5r,hZ],Nqt=[0,[2,SS],m5r],Tqt=[0,[1,[0,95]],xZ],Fqt=[0,[2,Tqt],[0,[0,23],0]],Mqt=[0,[0,5],Fqt],Pqt=[0,[2,Nqt],Mqt],Uqt=[0,[1,[0,88]],Pqt],Gqt=[0,d5r,Uqt],$qt=[0,_5r,yZ],Kqt=[0,[1,[0,74]],$qt],Oqt=[0,[2,Kqt],[0,[0,12],0]],Rqt=[0,[2,Oqt],h5r],Qqt=[0,[0,5],Rqt],Cqt=[0,[2,Nqt],Qqt],Hqt=[0,x5r,Cqt],Vqt=[0,[2,SS],y5r],Lqt=[0,[1,[0,86]],Vqt],zqt=[0,[2,SS],w5r],Sqt=[0,[1,[0,86]],zqt],Zqt=[0,[2,SS],g5r],Wqt=[0,[1,[0,86]],Zqt],Xqt=[0,[2,SS],q5r],Jqt=[0,[1,[0,86]],Xqt],Yqt=[0,[2,Tqt],[0,[0,24],0]],rIt=[0,[0,5],Yqt],eIt=[0,[2,Nqt],rIt],nIt=[0,[1,[0,88]],eIt],tIt=[0,[2,Oqt],I5r],aIt=[0,[0,5],tIt],uIt=[0,[2,Nqt],aIt],fIt=[0,D5r,uIt],iIt=[0,[2,Oqt],E5r],vIt=[0,[0,5],iIt],cIt=[0,[2,Nqt],vIt],AIt=[0,[2,Oqt],N5r],oIt=[0,[0,5],AIt],sIt=[0,[2,Nqt],oIt],bIt=[0,T5r,gZ],lIt=[0,[2,Kqt],F5r],BIt=[0,M5r,lIt],jIt=[0,[0,5],BIt],kIt=[0,[2,Kqt],P5r],pIt=[0,U5r,kIt],mIt=[0,[2,Oqt],G5r],dIt=[0,[0,5],mIt],_It=[0,[2,Kqt],$5r],hIt=[0,K5r,_It],xIt=[0,[2,Kqt],O5r],yIt=[0,R5r,xIt],wIt=[0,[2,Oqt],Q5r],gIt=[0,[0,5],wIt],qIt=[0,[2,Kqt],C5r],IIt=[0,H5r,qIt],DIt=[0,[2,Kqt],V5r],EIt=[0,L5r,DIt],NIt=[0,[2,Oqt],z5r],TIt=[0,[0,5],NIt],FIt=[0,[2,Kqt],[0,[0,28],0]],MIt=[0,S5r,qZ],PIt=[0,[1,[0,74]],MIt],UIt=[0,[2,jZ],W5r],GIt=[0,[0,5],UIt],$It=[0,[2,zS],X5r],KIt=[0,[2,jZ],Y5r],OIt=[0,[2,Tqt],[0,[0,22],0]],RIt=[0,[0,5],OIt],QIt=[0,[2,jZ],r7r],CIt=[0,[1,[0,34]],QIt],HIt=[0,[1,[1,90]],CIt],VIt=[0,[1,[0,78]],HIt],LIt=[0,[2,cqt],VIt],zIt=[0,[1,[0,74]],bIt],SIt=[0,[2,Tqt],[0,[0,25],0]],ZIt=[0,[0,5],SIt],WIt=[0,[2,Nqt],ZIt],XIt=[0,[1,[0,88]],WIt],JIt=[0,e7r,XIt],YIt=[0,[2,Oqt],n7r],rDt=[0,[0,5],YIt],eDt=[0,[2,Nqt],rDt],nDt=[0,t7r,eDt],tDt=[0,[2,Oqt],a7r],aDt=[0,[0,5],tDt],uDt=[0,[2,Nqt],aDt],fDt=[0,[2,Oqt],u7r],iDt=[0,[0,5],fDt],vDt=[0,[2,Nqt],iDt],cDt=[0,[2,Oqt],f7r],ADt=[0,[0,5],cDt],oDt=[0,[2,Nqt],ADt],sDt=[0,[2,Oqt],i7r],bDt=[0,[0,5],sDt],lDt=[0,[2,Nqt],bDt],BDt=[0,[2,Oqt],v7r],jDt=[0,[0,5],BDt],kDt=[0,[2,jZ],c7r],pDt=[0,[0,5],kDt],mDt=[0,[2,jZ],A7r],dDt=[0,[2,jZ],o7r],_Dt=[0,[1,[0,34]],dDt],hDt=[0,[1,[1,90]],_Dt],xDt=[0,[1,[0,78]],hDt],yDt=[0,[2,cqt],xDt],wDt=[0,[2,Kqt],s7r],gDt=[0,b7r,wDt],qDt=[0,[2,Oqt],l7r],IDt=[0,[0,5],qDt],DDt=[0,[2,Kqt],B7r],EDt=[0,j7r,DDt],NDt=[0,[2,sqt],[0,[0,71],0]],TDt=[0,[2,jZ],m7r],FDt=[0,d7r,TDt],MDt=[0,[1,[0,34]],FDt],PDt=[0,_7r,MDt],UDt=[0,[2,Oqt],h7r],GDt=[0,[0,5],UDt],$Dt=[0,[2,Nqt],GDt],KDt=[0,x7r,$Dt],ODt=[0,y7r,KDt],RDt=[0,[2,Oqt],w7r],QDt=[0,[0,5],RDt],CDt=[0,[2,Nqt],QDt],HDt=[0,[2,Oqt],g7r],VDt=[0,[0,5],HDt],LDt=[0,[2,Nqt],VDt],zDt=[0,[2,Oqt],q7r],SDt=[0,[0,5],zDt],ZDt=[0,[2,Nqt],SDt],WDt=[0,[2,Oqt],I7r],XDt=[0,[0,5],WDt],JDt=[0,[2,Nqt],XDt],YDt=[0,D7r,JDt],rEt=[0,[2,Oqt],E7r],eEt=[0,[0,5],rEt],nEt=[0,[2,Nqt],eEt],tEt=[0,N7r,oDt],aEt=[0,T7r,tEt],uEt=[0,[2,jZ],P7r],fEt=[0,U7r,uEt],iEt=[0,[1,[0,34]],fEt],vEt=[0,G7r,iEt],cEt=[0,[2,KZ],$7r],AEt=[0,[2,jZ],[0,[0,9],0]],oEt=[0,[1,[0,83]],[0,[2,CZ],[0,K7r,zZ]]],sEt=[0,[2,lZ],[0,R7r,cEt]],bEt=[0,[1,[0,34]],sEt],lEt=[0,Q7r,bEt],BEt=[0,C7r,SZ],jEt=[0,H7r,BEt],kEt=[0,V7r,XZ],pEt=[0,[1,[0,74]],kEt],mEt=[0,L7r,pEt],dEt=[0,z7r,mEt],_Et=[0,[2,egt],S7r],hEt=[0,[1,[0,95]],_Et],xEt=[0,[2,egt],Z7r],yEt=[0,[1,[0,95]],xEt],wEt=[0,[1,[0,86]],yEt],gEt=[0,W7r,YZ],qEt=[0,[1,[0,74]],gEt],IEt=[0,X7r,qEt],DEt=[0,[1,[0,40]],IEt],EEt=[0,[2,egt],J7r],NEt=[0,Y7r,EEt],TEt=[0,[2,egt],r8r],FEt=[0,e8r,TEt],MEt=[0,[2,egt],n8r],PEt=[0,[1,[0,40]],nW],UEt=[0,t8r,PEt],GEt=[0,[1,[0,74]],UEt],$Et=[0,a8r,GEt],KEt=[0,[1,[0,40]],$Et],OEt=[0,u8r,KEt],REt=[0,[2,egt],f8r],QEt=[0,i8r,REt],CEt=[0,[2,egt],v8r],HEt=[0,c8r,CEt],VEt=[0,[2,egt],A8r],LEt=[0,o8r,VEt],zEt=[0,[2,egt],s8r],SEt=[0,b8r,zEt],ZEt=[0,b5r,kZ],WEt=[0,[2,cqt],[0,[0,19],0]],XEt=[0,[2,$It],J5r],JEt=[0,[2,lZ],O7r],YEt=He+No,rNt="let x : Int = 0",eNt=DE+rNt,nNt="case x {}",tNt=vx+Wy+YEt,aNt=F1(m9r,[0,p9r,[0,UX,[0,YEt,k9r]]]),uNt=F1(h9r,[0,_9r,[0,"X",[0,d9r,[0,GX,0]]]]),fNt=F1(y9r,[0,x9r,[0,UX,[0,YEt,0]]]),iNt=F1(g9r,[0,w9r,[0,UX,[0,YEt,0]]]),vNt=hy+P_+No;function cNt(r,e){return[0,"seplist("+r[1]+YO+e[1]+aI,r[2]]}function ANt(r){var e=r[1];if(0!==e[0]){var n=e[1];if(51<=n)switch(n){case 51:return[0,"",yX];case 52:return[0,"",yX];case 53:return[0,"",yX];case 54:return[0,"?",KX];case 55:return S8r;case 56:return Z8r;case 57:return[0,"?",PX];case 58:return[0,"?",PX];case 59:return W8r;case 60:return[0,"","object x = {}"];case 61:return X8r;case 62:return[0,"",aNt];case 63:return J8r;case 64:return[0,Y8r,vNt];case 65:return r9r;case 66:return[0,"(, )*",", X"];case 67:return[0,"(, )*",rm+No];case 68:return[0,"",Bm+No+b_];case 69:return[0,"",$X];case 70:return[0,e9r,$X];case 71:return n9r;case 72:return t9r;case 73:return[0,"",PX];case 74:return[0,"",PX];case 75:return[0,"",PX];case 76:return[0,"",PX];case 77:return a9r;case 78:return[0,"",aNt];case 79:return[0,u9r,PX];case 80:return[0,"",PX];case 81:return[0,f9r,PX];case 82:return[0,"",PX];case 83:return[0,"",PX];case 84:return[0,"",PX];case 85:return[0,"",PX];case 86:return[0,i9r,tNt];case 87:return[0,"",PX];case 88:return[0,"",PX];case 89:return[0,v9r,PX];case 90:return[0,c9r,PX];case 91:return[0,"",PX];case 92:return A9r;case 93:return[0,"",rNt];case 94:return[0,o9r,eNt];case 95:return[0,s9r,rNt];case 96:return b9r;case 97:return[0,"","catch x {}"];case 98:return[0,l9r,nNt];case 99:return B9r;case 100:return j9r;default:return[0,"",YEt]}switch(n){case 0:return p8r;case 1:return[0,"","{ #t }"];case 2:return[0,"",GX];case 3:return[0,m8r,OX];case 4:return[0,"",GX];case 5:return d8r;case 6:return _8r;case 7:return[0,"",GX];case 8:return[0,"",GX];case 9:return[0,h8r,GX];case 10:return[0,"",uNt];case 11:return[0,x8r,uNt];case 12:return[0,y8r,"X"];case 13:return[0,"",KX];case 14:return[0,w8r,GX];case 15:return[0,"",yX];case 16:return[0,"",fNt];case 17:return g8r;case 18:return[0,"seplist1(,)",OX];case 19:return[0,"seplist1(,)",tNt];case 20:return cNt([0,q8r,OX],RX);case 21:return cNt([0,I8r,GX],CX);case 22:return cNt([0,D8r,uNt],RX);case 23:return cNt([0,E8r,uNt],RX);case 24:return cNt([0,N8r,"X"],CX);case 25:return cNt([0,T8r,GX],CX);case 26:return cNt([0,F8r,fNt],RX);case 27:return cNt([0,M8r,iNt],RX);case 28:return cNt([0,",and)",PX];case 41:return[0,"",iNt];case 42:return L8r;case 43:return[0,"",UX];case 44:return[0,"",UX];case 45:return[0,"",UX];case 46:return[0,"",UX];case 47:return[0,"","x x"];case 48:return[0,z8r,UX];case 49:return[0,"",UX];default:return[0,"",yX]}}var t=e[1];if(66<=t){if(99<=t)switch(t){case 99:return[0,tX,tX];case 100:return[0,"do","do"];case 101:case 126:return[0,MX,FX];case 102:case 113:case 127:return[0,EX,DX];case 103:return[0,aX,aX];case 104:return[0,uX,uX];case 105:return[0,fX,fX];case 106:return[0,iX,iX];case 107:return[0,vX,vX];case 108:return[0,cX,cX];case 109:return[0,AX,AX];case 110:return[0,oX,oX];case 111:return k8r;case 112:return[0,sX,sX];case 114:return[0,bX,bX];case 115:return[0,lX,lX];case 116:return[0,BX,BX];case 117:return[0,jX,jX];case 118:return[0,kX,kX];case 119:return[0,pX,pX];case 120:return[0,mX,mX];case 121:return[0,dX,dX];case 122:return[0,_X,_X];case 123:return[0,":=",":="];case 124:return[0,hX,hX];case 125:return[0,"->","->"];case 128:return[0,"and","and"];case 129:return[0,IX,qX];default:return[0,xX,xX]}switch(t){case 66:return[0,PW,PW];case 67:return[0,gX,wX];case 68:case 73:case 85:case 87:case 94:return[0,TX,NX];case 69:return[0,UW,UW];case 70:return[0,GW,GW];case 71:return[0,$W,$W];case 72:return[0,KW,KW];case 74:return[0,OW,OW];case 75:return[0,"[","["];case 76:return[0,RW,RW];case 77:return[0,QW,QW];case 78:return[0,CW,CW];case 79:return[0,HW,HW];case 80:return[0,VW,VW];case 81:return[0,LW,LW];case 82:return[0,"if","if"];case 83:return[0,zW,zW];case 84:return[0,MX,FX];case 86:return[0,SW,SW];case 88:return[0,ZW,ZW];case 89:return[0,WW,WW];case 90:return[0,"for","for"];case 91:return[0,XW,XW];case 92:return[0,JW,JW];case 93:return[0,YW,YW];case 95:return[0,rX,rX];case 96:return[0,eX,eX];case 97:return[0,nX,nX];default:return j8r}}if(33<=t)switch(t){case 33:return[0,_W,_W];case 34:return[0,hW,hW];case 35:case 37:case 47:case 52:case 59:case 61:case 64:return[0,MX,FX];case 36:case 38:case 48:case 53:case 62:default:return[0,EX,DX];case 39:return[0,xW,xW];case 40:return[0,yW,yW];case 41:return[0,"]","]"];case 42:return[0,wW,wW];case 43:return[0,gW,gW];case 44:return[0,qW,qW];case 45:return[0,IW,IW];case 46:return[0,DW,DW];case 49:return[0,gX,wX];case 50:return[0,"|>","|>"];case 51:return[0,EW,EW];case 54:return[0,"or","or"];case 55:return[0,NW,NW];case 56:return[0,TW,TW];case 57:return[0,FW,FW];case 58:return[0,"not","not"];case 60:return B8r;case 63:return[0,MW,MW]}switch(t){case 0:return[0,aW,aW];case 1:case 24:return[0,IX,qX];case 2:return[0,gX,wX];case 3:case 5:case 7:case 9:case 27:case 28:case 29:return[0,MX,FX];case 4:case 6:case 8:case 10:case 30:return[0,EX,DX];case 11:return[0,uW,uW];case 12:return[0,fW,fW];case 13:return[0,iW,iW];case 14:return[0,vW,vW];case 15:return[0,cW,cW];case 16:return[0,AW,AW];case 17:return[0,oW,oW];case 18:return[0,sW,sW];case 19:return[0,bW,bW];case 20:return[0,lW,lW];case 21:return l8r;case 22:return[0,BW,BW];case 23:return[0,jW,jW];case 25:return[0,kW,kW];case 26:return[0,pW,pW];case 31:return[0,mW,mW];default:return[0,dW,dW]}}function oNt(r){return ANt(r)[1]}var sNt=[0,0];function bNt(r){return sNt[1]=[0,r,sNt[1]],0}function lNt(r){return r?0===r[1][0]?0:1:0}function BNt(r){return ANt(r)[2]}function jNt(r){var e=r;if(66<=e){if(99<=e)switch(e){case 99:return 92;case 100:return 93;case 101:return 94;case 102:return 95;case 103:return 96;case 104:return 97;case 105:return 98;case 106:return 99;case 107:return T$;case 108:return gq;case 109:return Ul;case 110:return E$;case 111:return M9r;case 112:return ZA;case 113:return os;case 114:return bk;case 115:return pb;case 116:return P9r;case 117:return ZN;case 118:return FT;case 119:return Wr;case 120:return rh;case 121:return Jn;case 122:return aK;case 123:return Zc;case 124:return xp;case 125:return fM;case 126:return A$;case 127:return LP;case 128:return uw;case 129:return WP;default:return VP}switch(e){case 66:return 62;case 67:return 63;case 68:return 64;case 69:return 65;case 70:return 66;case 71:return 67;case 72:return 68;case 73:return 69;case 74:return 70;case 75:return 71;case 76:return 72;case 77:return 73;case 78:return 74;case 79:return 75;case 80:return 76;case 81:return 77;case 82:return 78;case 83:return N9r;case 84:return 79;case 85:return 80;case 86:return 81;case 87:return 82;case 88:return 83;case 89:return 84;case 90:return 85;case 91:return T9r;case 92:return 86;case 93:return 87;case 94:return 88;case 95:return 89;case 96:return 90;case 97:return 91;default:return F9r}}if(33<=e)switch(e){case 33:return 31;case 34:return 32;case 35:return 33;case 36:return 34;case 37:return 35;case 38:return 36;case 39:return 37;case 40:return 38;case 41:return 39;case 42:return 40;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 44;case 47:return 45;case 48:return 46;case 49:return 47;case 50:return 48;case 51:return 49;case 52:return 50;case 53:return 51;case 54:return 52;case 55:return 53;case 56:return D9r;case 57:return 54;case 58:return 55;case 59:return 56;case 60:return E9r;case 61:return 57;case 62:return 58;case 63:return 59;case 64:return 60;default:return 61}switch(e){case 0:throw gQ([0,xz,q9r],1);case 1:return 0;case 2:return 1;case 3:return 2;case 4:return 3;case 5:return 4;case 6:return 5;case 7:return 6;case 8:return 7;case 9:return 8;case 10:return 9;case 11:return 10;case 12:return 11;case 13:return 12;case 14:return 13;case 15:return 14;case 16:return 15;case 17:return 16;case 18:return 17;case 19:return 18;case 20:return 19;case 21:return I9r;case 22:return 20;case 23:return 21;case 24:return 22;case 25:return 23;case 26:return 24;case 27:return 25;case 28:return 26;case 29:return 27;case 30:return 28;case 31:return 29;default:return 30}}var kNt=Kkt(Rwt,[0,bNt,function(r){return bNt(oNt(r))},0]);function pNt(r){for(var e=r[1],n=e[2],t=uz(Rwt[32],e[1]);;){if(0===n)return t;if(!t)return 0;n=n-1|0,t=t[2]}}function mNt(r,e){var n=fz(Rwt[28],r[1],e[1]);if(0===n)for(var t=e[2],a=r[2];;){r:{if(a){if(t){var u=t[1],f=a[1],i=f[2][4]===u[2][4]?1:0,v=t[2],c=a[2],A=u[3],o=f[3],s=i?o[4]===A[4]?1:0:i;if(s){t=v,a=c;continue}var b=s;break r}}else if(!t){b=1;break r}b=MY(qz)}if(b)break;throw gQ([0,xz,K9r],1)}return n}function dNt(r,e){if(!r)return 0;var n=r[1],t=r[2],a=oL(e);r:if(ae===a)var u=e[1];else{if(W!==a&&D!==a){u=e;break r}u=k0(e)}if(!u)throw gQ([0,xz,G9r],1);var f=u[1],i=u[2],v=f[4],c=f[3],A=[0,uz(Rwt[29],f[1])];if(0===fz(Rwt[26],n,A))return[0,[0,n,c,v],dNt(t,i)];throw gQ([0,xz,U9r],1)}function _Nt(r){return S0(function(r,e){return Y0(r,e)?e:[0,r,e]},r,0)}function hNt(r,e){var n=G0(e),t=JC(G0(r),n);if(0!==t)return t;for(var a=r,u=e;;){if(a){if(u){var f=u[2],i=a[2],v=fz(Rwt[26],a[1],u[1]);if(0!==v)return v;a=i,u=f;continue}}else if(!u)return 0;throw gQ([0,xz,R9r],1)}}var xNt=Kkt(Rwt,[0,function(r){return 0},function(r){return 0},0]),yNt=xNt[6],wNt=xNt[7];function gNt(r){if(1158>>0)throw gQ(dz,1);r:{e:{n:{t:{a:{u:{f:{var e=r;if(580>e){if(lk<=e){if(435<=e){if(CD<=e){if(544<=e)switch(e){case 544:return IWr;case 545:return DWr;case 546:return[0,[0,[2,jZ],EWr]];case 547:return[0,[0,NWr,pDt]];case 548:return[0,pDt];case 549:return[0,kDt];case 550:return[0,[0,[2,jZ],TWr]];case 551:return[0,[0,FWr,mDt]];case 552:return[0,mDt];case 553:return MWr;case 554:return PWr;case 555:return UWr;case 556:return GWr;case 557:return[0,[0,[2,sqt],$Wr]];case 558:return KWr;case 559:return[0,[0,OWr,yDt]];case 560:return[0,yDt];case 561:return[0,xDt];case 562:return[0,hDt];case 563:return[0,[0,[2,jZ],RWr]];case 564:return[0,[0,[2,zIt],QWr]];case 565:return[0,[0,[2,zIt],CWr]];case 566:return HWr;case 567:return VWr;case 568:return LWr;case 569:return[0,[0,[2,sqt],zWr]];case 570:return SWr;case 571:return[0,[0,[2,jZ],ZWr]];case 572:return WWr;case 573:return XWr;case 574:return JWr;case 575:return YWr;case 576:return rXr;case 577:return[0,[0,[2,jZ],eXr]];case 578:return[0,[0,[2,jZ],nXr]];default:return[0,[0,[2,jZ],tXr]]}switch(e){case 508:return[0,[0,lWr,nDt]];case 509:return[0,nDt];case 510:return[0,eDt];case 511:return[0,rDt];case 512:return[0,YIt];case 513:return BWr;case 514:return[0,[0,jWr,uDt]];case 515:return[0,uDt];case 516:return[0,aDt];case 517:return[0,tDt];case 518:return kWr;case 519:return[0,[0,pWr,vDt]];case 520:return[0,vDt];case 521:return[0,iDt];case 522:return[0,fDt];case 523:return mWr;case 524:return[0,WIt];case 525:return[0,ZIt];case 526:return[0,SIt];case 527:return dWr;case 528:return _Wr;case 529:return[0,oDt];case 530:return[0,ADt];case 531:return[0,cDt];case 532:return hWr;case 533:return[0,[0,xWr,lDt]];case 534:return[0,lDt];case 535:return[0,bDt];case 536:return[0,sDt];case 537:return yWr;case 538:return[0,[0,[2,Nqt],jDt]];case 539:return[0,jDt];case 540:return[0,BDt];case 541:return wWr;case 542:return gWr;default:return qWr}}if(xD<=e)switch(e){case 472:return[0,KIt];case 473:return HZr;case 474:return VZr;case 475:return[0,[0,[2,sqt],LZr]];case 476:return zZr;case 477:return SZr;case 478:return ZZr;case 479:return[0,[0,[2,sqt],WZr]];case 480:return XZr;case 481:return[0,[0,[2,sqt],JZr]];case 482:return YZr;case 484:return rWr;case 486:return[0,[0,[2,Nqt],RIt]];case 487:return[0,RIt];case 488:return[0,OIt];case 489:return[0,xZ];case 490:return[0,[0,eWr,LIt]];case 491:return[0,LIt];case 492:return[0,VIt];case 493:return[0,HIt];case 494:return[0,[0,[2,zIt],nWr]];case 495:return[0,[0,[2,zIt],tWr]];case 496:return aWr;case 497:return uWr;case 498:return[0,[0,[2,jZ],fWr]];case 499:return[0,[0,[2,jZ],iWr]];case 500:return[0,[0,vWr,UZ]];case 501:return[0,[0,cWr,GZ]];case 502:return AWr;case 503:return oWr;case 504:return sWr;case 505:return[0,[0,bWr,JIt]];case 506:return[0,JIt];case 507:return[0,XIt];default:break r}switch(e){case 435:return[0,IZ];case 436:return pZr;case 437:return[0,[0,[2,sqt],mZr]];case 438:return[0,[0,dZr,DZ]];case 439:return[0,[0,_Zr,EZ]];case 440:break e;case 441:return hZr;case 442:break n;case 443:return[0,[0,xZr,GIt]];case 444:return[0,GIt];case 445:return[0,UIt];case 446:return yZr;case 447:return[0,[0,wZr,NZ]];case 448:return[0,NZ];case 449:return[0,[0,[2,jZ],gZr]];case 450:return[0,[0,[2,sqt],qZr]];case 451:return IZr;case 452:return DZr;case 453:return EZr;case 454:return[0,[0,[2,sqt],NZr]];case 455:return[0,[0,[2,sqt],TZr]];case 456:return[0,[0,[2,sqt],FZr]];case 457:break t;case 458:return MZr;case 459:return PZr;case 460:return UZr;case 461:return[0,[0,GZr,TZ]];case 462:return[0,[0,$Zr,FZ]];case 463:return[0,[0,[2,egt],MZ]];case 464:return[0,MZ];case 465:return KZr;case 466:return[0,FZ];case 467:return OZr;case 468:return[0,TZ];case 469:return RZr;case 470:return[0,[0,QZr,PZ]];default:return[0,[0,CZr,KIt]]}}if(GE<=e){if(dK<=e)switch(e){case 399:return eZr;case 400:return[0,[0,[2,Nqt],gIt]];case 401:return[0,gIt];case 402:return[0,wIt];case 403:return nZr;case 404:return[0,hIt];case 405:return[0,_It];case 406:return tZr;case 407:return[0,[0,aZr,IIt]];case 408:return[0,[0,uZr,EIt]];case 409:return[0,EIt];case 410:return[0,DIt];case 411:return fZr;case 412:return[0,[0,[2,Nqt],TIt]];case 413:return[0,TIt];case 414:return[0,NIt];case 415:return iZr;case 416:return[0,IIt];case 417:return[0,qIt];case 418:return vZr;case 419:return[0,[0,[2,SS],FIt]];case 420:return[0,FIt];case 421:return cZr;case 423:return[0,[0,[2,lZ],AZr]];case 425:return[0,[0,[2,jZ],oZr]];case 426:return[0,[0,[2,jZ],sZr]];case 427:return[0,[0,bZr,PIt]];case 428:return[0,PIt];case 429:return[0,MIt];case 430:return[0,qZ];case 431:return lZr;case 432:return[0,[0,BZr,IZ]];case 433:return jZr;case 434:return kZr;default:break r}switch(e){case 363:return[0,[0,[2,Kqt],KSr]];case 364:return OSr;case 365:return RSr;case 366:return QSr;case 367:return CSr;case 368:return[0,[0,HSr,cIt]];case 369:return[0,cIt];case 370:return[0,vIt];case 371:return[0,iIt];case 372:return VSr;case 373:return[0,[0,LSr,sIt]];case 374:return[0,sIt];case 375:return[0,oIt];case 376:return[0,AIt];case 377:return zSr;case 378:return[0,eIt];case 379:return[0,rIt];case 380:return[0,Yqt];case 381:return[0,bIt];case 382:return[0,[0,SSr,jIt]];case 383:return[0,jIt];case 384:return[0,[0,ZSr,pIt]];case 385:return[0,pIt];case 386:return[0,kIt];case 387:return WSr;case 388:return[0,[0,[2,Nqt],dIt]];case 389:return[0,dIt];case 390:return[0,mIt];case 391:return XSr;case 392:return[0,BIt];case 393:return[0,lIt];case 394:return JSr;case 395:return[0,[0,YSr,hIt]];case 396:return[0,[0,rZr,yIt]];case 397:return[0,yIt];default:return[0,xIt]}}if(tE<=e)switch(e){case 327:return[0,zqt];case 328:return mSr;case 329:return[0,Lqt];case 330:return[0,Vqt];case 331:return dSr;case 332:return _Sr;case 333:return[0,[0,hSr,Wqt]];case 334:return[0,[0,xSr,Jqt]];case 335:return[0,Jqt];case 336:return[0,Xqt];case 337:return ySr;case 338:return[0,Wqt];case 339:return[0,Zqt];case 340:return wSr;case 341:return gSr;case 342:return qSr;case 343:return[0,Qqt];case 344:return[0,Rqt];case 345:return[0,$qt];case 346:return ISr;case 347:return DSr;case 348:return ESr;case 349:return[0,[0,NSr,wZ]];case 350:return TSr;case 351:return FSr;case 352:return MSr;case 353:return[0,wZ];case 354:return PSr;case 355:return[0,[0,USr,nIt]];case 356:return[0,nIt];case 357:return[0,[0,GSr,fIt]];case 358:return[0,fIt];case 359:return[0,uIt];case 360:return[0,aIt];case 361:return[0,tIt];default:return[0,[0,[2,Kqt],$Sr]]}switch(e){case 293:break r;case 290:return Wzr;case 291:return[0,[0,[2,sqt],Xzr]];case 292:return[0,[0,[2,sqt],Jzr]];case 294:return[0,[0,[2,jZ],Yzr]];case 295:return[0,[0,[2,sqt],rSr]];case 296:return[0,[0,eSr,mZ]];case 297:return[0,[0,nSr,dZ]];case 298:return[0,dZ];case 299:return tSr;case 300:return aSr;case 301:return[0,[0,uSr,wqt]];case 302:return fSr;case 303:return iSr;case 304:return vSr;case 305:return cSr;case 306:return ASr;case 307:return[0,wqt];case 308:return[0,yqt];case 309:return[0,[0,[2,Zwt],gqt]];case 310:return[0,gqt];case 311:return[0,[0,oSr,qqt]];case 312:return[0,qqt];case 313:return sSr;case 314:return[0,[0,[2,jZ],Dqt]];case 315:return[0,[0,bSr,Eqt]];case 316:return[0,Eqt];case 317:return[0,[0,lSr,Gqt]];case 318:return[0,Gqt];case 319:return BSr;case 320:return[0,Uqt];case 321:return[0,[0,jSr,Hqt]];case 322:return[0,Hqt];case 323:return[0,Cqt];case 324:return[0,[0,kSr,Lqt]];case 325:return[0,[0,pSr,Sqt]];default:return[0,Sqt]}}if(lU<=e){if(Nd<=e){if(JB<=e)switch(e){case 254:return qzr;case 255:return[0,sZ];case 256:return Izr;case 257:return Dzr;case 258:return[0,[0,Nzr,[0,[2,oqt],Ezr]]];case 259:return[0,oqt];case 260:return[0,Aqt];case 261:return[0,[0,[2,sqt],Tzr]];case 262:return[0,[0,[2,sqt],Fzr]];case 263:return Mzr;case 264:return[0,[0,Pzr,bqt]];case 265:return[0,bqt];case 266:return[0,[0,Uzr,lqt]];case 267:return Gzr;case 268:return $zr;case 269:break r;case 270:return[0,[0,Kzr,jqt]];case 271:return[0,jqt];case 272:return[0,[0,[2,egt],Ozr]];case 273:return Rzr;case 274:return[0,Bqt];case 275:return[0,pZ];case 276:return[0,[0,Qzr,pqt]];case 277:return[0,pqt];case 278:return[0,[0,Czr,_qt]];case 279:return[0,_qt];case 280:return[0,dqt];case 281:return[0,mqt];case 282:return Hzr;case 283:return[0,kqt];case 284:return Vzr;case 285:return[0,[0,[2,jZ],xqt]];case 286:return[0,[0,[2,sqt],Lzr]];case 287:return[0,[0,[2,sqt],zzr]];case 288:return[0,[0,[2,sqt],Szr]];default:return[0,[0,[2,sqt],Zzr]]}switch(e){case 218:return WLr;case 219:return XLr;case 220:return JLr;case 221:return YLr;case 222:return[0,[0,[2,zS],rzr]];case 223:return ezr;case 224:return nzr;case 225:return tzr;case 226:return azr;case 227:return[0,[0,[2,vqt],uzr]];case 228:return fzr;case 229:return[0,[0,[2,egt],izr]];case 230:return vzr;case 231:return czr;case 232:return[0,ZS];case 233:return Azr;case 234:return[0,[0,ozr,AZ]];case 235:return szr;case 236:return bzr;case 237:return[0,AZ];case 238:return lzr;case 239:return Bzr;case 240:return[0,LS];case 241:return jzr;case 242:return[0,[0,kzr,oZ]];case 243:return[0,oZ];case 244:return pzr;case 245:return mzr;case 246:return dzr;case 247:return _zr;case 248:return hzr;case 249:return xzr;case 250:return[0,VS];case 251:return yzr;case 252:return[0,[0,wzr,sZ]];default:return gzr}}if(dy<=e)switch(e){case 182:return ILr;case 183:return DLr;case 184:return[0,JS];case 185:return ELr;case 186:return[0,sgt];case 187:return[0,ogt];case 188:return[0,Agt];case 189:return[0,cgt];case 190:return NLr;case 191:return[0,vgt];case 192:return[0,igt];case 193:return[0,fgt];case 194:return[0,ugt];case 195:return TLr;case 196:return[0,tgt];case 197:return[0,ngt];case 198:return FLr;case 199:return[0,[0,MLr,iqt]];case 200:return[0,iqt];case 201:return PLr;case 202:return ULr;case 203:return[0,[0,[2,egt],GLr]];case 204:return $Lr;case 205:return[0,[0,KLr,cZ]];case 206:return[0,cZ];case 207:return OLr;case 208:return RLr;case 209:return[0,XS];case 210:return QLr;case 211:return CLr;case 212:return HLr;case 213:return VLr;case 214:return LLr;case 215:return[0,[0,[2,cqt],zLr]];case 216:return SLr;default:return ZLr}switch(e){case 145:return tLr;case 146:return[0,[0,aLr,fZ]];case 147:return uLr;case 148:return fLr;case 149:return[0,fZ];case 150:return iLr;case 151:return[0,YS];case 152:return vLr;case 153:return cLr;case 154:return ALr;case 155:return oLr;case 156:return sLr;case 157:return[0,iZ];case 158:return bLr;case 159:return lLr;case 160:return BLr;case 161:return[0,[0,jLr,iZ]];case 162:return[0,[0,kLr,vZ]];case 163:return pLr;case 164:return mLr;case 165:return[0,vZ];case 166:return dLr;case 167:return _Lr;case 168:return hLr;case 169:return xLr;case 170:return yLr;case 171:return wLr;case 172:return[0,dgt];case 173:return[0,mgt];case 174:return gLr;case 175:return[0,pgt];case 176:return[0,kgt];case 177:return[0,jgt];case 178:return[0,Bgt];case 179:return qLr;case 180:return[0,lgt];default:return[0,bgt]}}if(73<=e){if(FT<=e)switch(e){case 109:return QVr;case 110:return[0,Rgt];case 111:return[0,Ogt];case 112:return CVr;case 113:return[0,nZ];case 114:return HVr;case 115:return[0,eZ];case 116:return VVr;case 117:return[0,Ggt];case 118:return[0,Ugt];case 119:return LVr;case 120:return[0,Pgt];case 121:return[0,Mgt];case 122:return[0,Fgt];case 123:return[0,Tgt];case 124:return zVr;case 125:return SVr;case 126:return[0,qgt];case 127:return ZVr;case 128:return[0,[0,WVr,Xgt]];case 129:return[0,[0,XVr,eqt]];case 130:return[0,[0,JVr,uqt]];case 131:return[0,uqt];case 132:return[0,aqt];case 133:return[0,tqt];case 134:return[0,nqt];case 135:return YVr;case 136:return[0,eqt];case 137:return[0,rqt];case 138:return[0,Ygt];case 139:return[0,Jgt];case 140:return rLr;case 141:return[0,Xgt];case 142:return eLr;case 143:return[0,[0,nLr,fqt]];default:return[0,fqt]}switch(e){case 73:return[0,zgt];case 74:return[0,[0,[2,Ywt],BVr]];case 75:return[0,[0,[2,Ywt],jVr]];case 76:return[0,[0,[2,ggt],kVr]];case 77:return pVr;case 78:return mVr;case 79:return dVr;case 80:return[0,WS];case 81:return[0,[0,_Vr,tZ]];case 82:return hVr;case 83:return[0,[0,[2,rgt],xVr]];case 84:return yVr;case 85:return wVr;case 86:return gVr;case 87:return qVr;case 88:return[0,[0,IVr,aZ]];case 89:return[0,aZ];case 90:return DVr;case 91:return EVr;case 92:return[0,[0,NVr,uZ]];case 93:return[0,[0,[2,egt],TVr]];case 94:return FVr;case 95:return[0,[0,[2,egt],MVr]];case 96:return PVr;case 97:return[0,uZ];case 98:return UVr;case 99:return[0,tZ];case 100:return GVr;case 101:return $Vr;case 102:return KVr;case 103:return OVr;case 104:return RVr;case 105:return[0,Lgt];case 106:return[0,Vgt];case 107:return[0,Hgt];default:return[0,Cgt]}}if(37<=e)switch(e){case 37:return[0,hgt];case 38:return[0,_gt];case 40:return[0,[0,JHr,wgt]];case 41:return[0,wgt];case 42:return[0,ygt];case 43:return YHr;case 44:return rVr;case 45:return[0,[0,[2,ggt],eVr]];case 47:return[0,[0,nVr,Igt]];case 48:return[0,Igt];case 49:return[0,[0,tVr,Ngt]];case 50:return[0,[0,aVr,rZ]];case 51:return[0,rZ];case 52:return uVr;case 53:return[0,Ngt];case 54:return[0,Egt];case 55:return[0,Dgt];case 56:return[0,[0,[2,ggt],fVr]];case 57:return iVr;case 58:return[0,[0,vVr,Pgt]];case 59:return[0,[0,cVr,Kgt]];case 60:return[0,Kgt];case 61:return[0,$gt];case 62:return[0,[0,[2,egt],eZ]];case 63:return[0,[0,[2,egt],nZ]];case 64:return AVr;case 65:return[0,[0,oVr,Qgt]];case 66:return[0,Qgt];case 67:return[0,[0,sVr,Lgt]];case 68:return[0,[0,bVr,Wgt]];case 69:return[0,Wgt];case 70:return[0,Zgt];case 71:return lVr;case 72:return[0,Sgt];default:return[0,xgt]}switch(e){case 0:return[0,[0,kHr,[0,[2,Swt],jHr]]];case 1:return[0,Swt];case 2:return pHr;case 3:return mHr;case 4:return dHr;case 5:return _Hr;case 6:return hHr;case 7:return[0,[0,xHr,LS]];case 8:return[0,[0,[2,zS],yHr]];case 9:return wHr;case 10:return gHr;case 11:return qHr;case 12:return IHr;case 13:return[0,[0,[2,zS],DHr]];case 14:return EHr;case 15:return[0,[0,[2,Wwt],NHr]];case 16:return[0,[0,THr,ZS]];case 17:return FHr;case 18:return MHr;case 19:return PHr;case 20:return[0,[0,[2,egt],UHr]];case 21:return[0,[0,[2,Jwt],GHr]];case 22:return[0,[0,[2,Jwt],$Hr]];case 23:return[0,[0,KHr,XS]];case 24:return[0,[0,OHr,agt]];case 25:return RHr;case 26:return QHr;case 27:return CHr;case 28:return[0,agt];case 29:return[0,[0,HHr,vgt]];case 30:return[0,[0,VHr,sgt]];case 31:return[0,[0,zHr,[0,LHr,JS]]];case 32:return SHr;case 33:return[0,[0,[2,egt],ZHr]];case 34:return[0,[0,[2,Jwt],lgt]];case 35:return[0,[0,WHr,pgt]];default:return[0,[0,XHr,hgt]]}}if(870>e){if(725<=e){if(798<=e){if(XF<=e)switch(e){case 834:return E1r;case 835:return N1r;case 836:return T1r;case 837:return F1r;case 838:return M1r;case 839:return P1r;case 840:return U1r;case 841:return G1r;case 842:return $1r;case 843:return[0,_Dt];case 844:return[0,dDt];case 845:return K1r;case 846:return O1r;case 847:return[0,[0,[2,jZ],R1r]];case 848:return Q1r;case 849:return C1r;case 850:return H1r;case 851:return V1r;case 852:return[0,GZ];case 853:return L1r;case 854:return[0,[0,z1r,QZ]];case 855:return[0,QZ];case 856:return S1r;case 857:return[0,UZ];case 858:return Z1r;case 859:return W1r;case 860:return[0,[0,[2,jZ],X1r]];case 861:return J1r;case 862:return Y1r;case 863:return[0,CIt];case 864:return[0,QIt];case 865:return r2r;case 866:return e2r;case 867:return n2r;case 868:return[0,kZ];default:return t2r}switch(e){case 798:return J0r;case 799:return Y0r;case 800:return r1r;case 801:return[0,[0,[2,rgt],e1r]];case 802:return n1r;case 803:return t1r;case 804:return a1r;case 805:return u1r;case 806:return f1r;case 807:return[0,[0,[2,NDt],i1r]];case 808:return v1r;case 809:return c1r;case 810:return A1r;case 811:return[0,[0,[2,NDt],o1r]];case 812:return s1r;case 813:return[0,[0,[2,NDt],b1r]];case 814:return l1r;case 815:return[0,$Z];case 816:return B1r;case 817:return j1r;case 818:break a;case 819:return k1r;case 820:return p1r;case 821:return[0,[0,[2,KZ],m1r]];case 822:return d1r;case 823:return _1r;case 824:return h1r;case 825:return[0,[0,x1r,OZ]];case 826:return[0,OZ];case 827:return y1r;case 828:return[0,[0,w1r,RZ]];case 829:return[0,RZ];case 830:return g1r;case 831:return q1r;case 832:return I1r;default:return D1r}}if(762<=e)switch(e){case 762:return j0r;case 763:return k0r;case 764:return p0r;case 765:return[0,[0,[2,NDt],m0r]];case 766:return d0r;case 767:return[0,[0,[2,NDt],_0r]];case 768:return h0r;case 769:return x0r;case 770:return y0r;case 771:return[0,[0,[2,NDt],w0r]];case 772:return g0r;case 773:return[0,[0,[2,NDt],q0r]];case 774:return I0r;case 775:return[0,[0,[2,NDt],D0r]];case 776:return E0r;case 777:return N0r;case 778:return T0r;case 779:return[0,[0,[2,NDt],F0r]];case 780:return M0r;case 781:return P0r;case 782:return U0r;case 783:return G0r;case 784:return $0r;case 785:return[0,[0,[2,NDt],K0r]];case 786:return O0r;case 787:return[0,[0,[2,NDt],R0r]];case 788:return Q0r;case 789:return[0,[0,[2,NDt],C0r]];case 790:return H0r;case 791:return[0,[0,[2,NDt],V0r]];case 792:return L0r;case 793:return[0,[0,[2,NDt],z0r]];case 794:return S0r;case 795:return[0,[0,[2,NDt],Z0r]];case 796:return W0r;default:return[0,[0,[2,NDt],X0r]]}switch(e){case 725:return[0,[0,[2,NDt],FYr]];case 726:return MYr;case 727:return PYr;case 728:return UYr;case 729:return[0,[0,[2,NDt],GYr]];case 730:return $Yr;case 731:return KYr;case 732:return OYr;case 733:return[0,[0,[2,NDt],RYr]];case 734:return QYr;case 735:return CYr;case 736:return HYr;case 737:return[0,[0,[2,NDt],VYr]];case 738:return LYr;case 739:return zYr;case 740:return SYr;case 741:return[0,[0,[2,NDt],ZYr]];case 742:return WYr;case 743:return[0,[0,[2,NDt],XYr]];case 744:return JYr;case 745:return YYr;case 746:return r0r;case 747:return[0,[0,[2,NDt],e0r]];case 748:return n0r;case 749:return t0r;case 750:return a0r;case 751:return[0,[0,[2,NDt],u0r]];case 752:return f0r;case 753:return i0r;case 754:return v0r;case 755:return[0,[0,[2,NDt],c0r]];case 756:return A0r;case 757:return o0r;case 758:return s0r;case 759:return[0,[0,[2,NDt],b0r]];case 760:return l0r;default:return B0r}}if(653<=e){if(689<=e)switch(e){case 689:return XJr;case 690:return[0,[0,[2,NDt],JJr]];case 691:return YJr;case 692:return[0,[0,[2,NDt],rYr]];case 693:return eYr;case 694:return[0,[0,[2,NDt],nYr]];case 695:return tYr;case 696:return[0,[0,[2,NDt],aYr]];case 697:return uYr;case 698:return[0,[0,[2,NDt],fYr]];case 699:return iYr;case 700:return[0,[0,[2,NDt],vYr]];case 701:return cYr;case 702:return[0,[0,[2,NDt],AYr]];case 703:return oYr;case 704:return[0,[0,[2,NDt],sYr]];case 705:return bYr;case 706:return lYr;case 707:return BYr;case 708:return jYr;case 709:return kYr;case 710:return pYr;case 711:return mYr;case 712:return dYr;case 713:return _Yr;case 714:return hYr;case 715:return xYr;case 716:return[0,[0,[2,rgt],yYr]];case 717:return wYr;case 718:return gYr;case 719:return qYr;case 720:return IYr;case 721:return DYr;case 722:return EYr;case 723:return NYr;default:return TYr}switch(e){case 653:return BJr;case 654:return[0,[0,[2,NDt],jJr]];case 655:return kJr;case 656:return[0,[0,[2,NDt],pJr]];case 657:return mJr;case 658:return[0,[0,[2,NDt],dJr]];case 659:return _Jr;case 660:return hJr;case 661:return xJr;case 662:return yJr;case 663:return wJr;case 664:return gJr;case 665:return qJr;case 666:return[0,[0,[2,NDt],IJr]];case 667:return DJr;case 668:return EJr;case 669:return NJr;case 670:return[0,[0,[2,NDt],TJr]];case 671:return FJr;case 672:return MJr;case 673:return PJr;case 674:return UJr;case 675:return GJr;case 676:return $Jr;case 677:return KJr;case 678:return OJr;case 679:return RJr;case 680:return QJr;case 681:return CJr;case 682:return HJr;case 683:return VJr;case 684:return[0,[0,[2,NDt],LJr]];case 685:return zJr;case 686:return[0,[0,[2,NDt],SJr]];case 687:return ZJr;default:return[0,[0,[2,NDt],WJr]]}}if(617<=e)switch(e){case 636:break t;case 617:return MXr;case 618:return[0,[0,[2,NDt],PXr]];case 619:return UXr;case 620:return[0,[0,[2,NDt],GXr]];case 621:return $Xr;case 622:return[0,[0,[2,NDt],KXr]];case 623:return OXr;case 624:return RXr;case 625:return[0,[0,[2,jZ],QXr]];case 626:return CXr;case 627:return HXr;case 628:return VXr;case 629:return LXr;case 630:return zXr;case 631:return SXr;case 632:return[0,[0,[2,jZ],ZXr]];case 633:return WXr;case 634:return[0,[0,[2,jZ],XXr]];case 635:return JXr;case 637:return YXr;case 638:return rJr;case 639:return eJr;case 640:return[0,[0,[2,NDt],nJr]];case 641:return tJr;case 642:return aJr;case 643:return uJr;case 644:return fJr;case 645:return iJr;case 646:return[0,[0,[2,NDt],vJr]];case 647:return cJr;case 648:return[0,[0,[2,NDt],AJr]];case 649:return oJr;case 650:return[0,[0,[2,NDt],sJr]];case 651:return bJr;default:return[0,[0,[2,NDt],lJr]]}switch(e){case 580:return[0,[0,[2,jZ],aXr]];case 581:return[0,[0,[2,jZ],uXr]];case 582:return[0,[0,[2,jZ],fXr]];case 583:return[0,[0,[2,sqt],iXr]];case 584:return vXr;case 585:return[0,[0,[2,$It],cXr]];case 586:return[0,[0,AXr,gDt]];case 587:return[0,gDt];case 588:return[0,wDt];case 589:return oXr;case 590:return[0,[0,[2,Nqt],IDt]];case 591:return[0,IDt];case 592:return[0,qDt];case 593:return sXr;case 594:return bXr;case 595:return[0,EDt];case 596:return[0,DDt];case 597:return lXr;case 598:return BXr;case 599:return jXr;case 600:return kXr;case 601:return[0,[0,pXr,$Z]];case 602:return[0,[0,[2,jZ],mXr]];case 603:return dXr;case 604:return _Xr;case 605:return hXr;case 606:return xXr;case 607:return yXr;case 608:return wXr;case 609:return[0,[0,[2,NDt],gXr]];case 610:return qXr;case 611:return IXr;case 612:return[0,[0,[2,NDt],DXr]];case 613:return EXr;case 614:return[0,[0,[2,NDt],NXr]];case 615:return TXr;default:return[0,[0,[2,NDt],FXr]]}}if(1015<=e){if(zM<=e){if(1123<=e)switch(e){case 1123:return Y6r;case 1124:return[0,pEt];case 1125:return[0,[0,r4r,OEt]];case 1126:return[0,OEt];case 1127:return[0,[0,e4r,QEt]];case 1128:return[0,[0,n4r,HEt]];case 1129:return[0,HEt];case 1130:return[0,CEt];case 1131:return t4r;case 1132:return[0,QEt];case 1133:return[0,REt];case 1134:return a4r;case 1135:return[0,[0,u4r,LEt]];case 1136:return[0,[0,f4r,SEt]];case 1137:return[0,SEt];case 1138:return[0,zEt];case 1139:return i4r;case 1140:return[0,LEt];case 1141:return[0,VEt];case 1142:return v4r;case 1143:return[0,KEt];case 1144:return[0,$Et];case 1145:return[0,GEt];case 1146:return[0,UEt];case 1147:return[0,PEt];case 1148:return[0,nW];case 1149:return c4r;case 1150:return[0,[0,A4r,tW]];case 1151:return o4r;case 1152:return s4r;case 1153:return[0,tW];case 1154:return b4r;case 1155:return[0,kEt];case 1156:return[0,XZ];case 1157:return l4r;default:return B4r}switch(e){case 1087:return[0,_Et];case 1088:return T6r;case 1089:return[0,[0,F6r,JZ]];case 1090:return M6r;case 1091:return P6r;case 1092:return[0,JZ];case 1093:return U6r;case 1094:return[0,mEt];case 1095:return[0,[0,G6r,DEt]];case 1096:return $6r;case 1097:return[0,DEt];case 1098:return[0,IEt];case 1099:return[0,qEt];case 1100:return[0,gEt];case 1101:return[0,[0,K6r,NEt]];case 1102:return[0,[0,O6r,FEt]];case 1103:return[0,FEt];case 1104:return[0,TEt];case 1105:return R6r;case 1106:return[0,NEt];case 1107:return[0,EEt];case 1108:return Q6r;case 1109:return[0,[0,C6r,rW]];case 1110:return H6r;case 1111:return V6r;case 1112:return[0,rW];case 1113:return L6r;case 1114:return[0,YZ];case 1115:return z6r;case 1116:return[0,[0,S6r,MEt]];case 1117:return[0,MEt];case 1118:return Z6r;case 1119:return[0,[0,W6r,eW]];case 1120:return X6r;case 1121:return J6r;default:return[0,eW]}}if(wq<=e)switch(e){case 1051:return[0,hqt];case 1052:return v6r;case 1053:return c6r;case 1054:return[0,[0,[2,jZ],A6r]];case 1055:return o6r;case 1056:return s6r;case 1057:return[0,lqt];case 1058:return b6r;case 1059:return[0,BZ];case 1060:return l6r;case 1061:return B6r;case 1062:return j6r;case 1063:return[0,bZ];case 1064:return k6r;case 1065:return p6r;case 1066:return[0,[0,d6r,[0,[2,jEt],m6r]]];case 1067:return[0,jEt];case 1068:return[0,BEt];case 1069:return[0,SZ];case 1070:return _6r;case 1071:return[0,[0,h6r,ZZ]];case 1072:return[0,ZZ];case 1073:return x6r;case 1074:return[0,[0,y6r,WZ]];case 1075:return[0,WZ];case 1076:return w6r;case 1077:return g6r;case 1078:return[0,[0,I6r,[0,[2,dEt],q6r]]];case 1079:return[0,dEt];case 1080:return[0,[0,D6r,hEt]];case 1081:return[0,hEt];case 1082:return[0,[0,E6r,wEt]];case 1083:return[0,wEt];case 1084:return[0,yEt];case 1085:return[0,xEt];default:return N6r}switch(e){case 1019:break f;case 1015:return G3r;case 1016:return[0,_Z];case 1017:return $3r;case 1018:return K3r;case 1020:return[0,mZ];case 1021:return O3r;case 1022:return[0,[0,R3r,oEt]];case 1023:return[0,oEt];case 1024:return[0,zZ];case 1025:return Q3r;case 1026:return C3r;case 1027:return H3r;case 1028:return V3r;case 1029:return L3r;case 1030:return z3r;case 1031:return S3r;case 1033:return Z3r;case 1034:return W3r;case 1035:return X3r;case 1037:return J3r;case 1038:return Y3r;case 1039:return r6r;case 1040:return[0,[0,e6r,lEt]];case 1041:return[0,lEt];case 1042:return[0,bEt];case 1043:return[0,sEt];case 1044:return n6r;case 1045:return t6r;case 1046:return a6r;case 1047:return u6r;case 1048:return f6r;case 1049:return i6r;case 1050:return[0,xqt];default:return[0,JEt]}}if(943<=e){if(979<=e)switch(e){case 979:return s3r;case 980:return b3r;case 981:return l3r;case 982:return B3r;case 983:return[0,[0,j3r,VZ]];case 984:return k3r;case 985:return p3r;case 986:return[0,VZ];case 987:return m3r;case 988:return d3r;case 989:return _3r;case 990:return h3r;case 991:return[0,yZ];case 992:return x3r;case 993:return[0,[0,y3r,LZ]];case 994:return w3r;case 995:return g3r;case 996:return[0,LZ];case 997:return q3r;case 998:return I3r;case 999:return[0,Pqt];case 1e3:return[0,Mqt];case 1001:return[0,Fqt];case 1002:return D3r;case 1003:return[0,hZ];case 1004:return E3r;case 1005:return[0,Dqt];case 1006:return[0,Iqt];case 1007:return N3r;case 1008:return[0,[0,[2,Zwt],AEt]];case 1009:return[0,AEt];case 1010:return T3r;case 1011:return F3r;case 1012:return[0,[0,[2,jZ],M3r]];case 1013:return P3r;default:return U3r}switch(e){case 972:break e;case 974:break n;case 960:break;case 943:return C2r;case 944:return H2r;case 945:return V2r;case 946:return L2r;case 947:return z2r;case 948:return S2r;case 949:return Z2r;case 950:return[0,EZ];case 951:return W2r;case 952:return[0,DZ];case 953:return X2r;case 954:return J2r;case 955:return Y2r;case 956:return r3r;case 957:return[0,[0,[2,jZ],e3r]];case 958:return n3r;case 961:return t3r;case 962:return a3r;case 963:return[0,[0,u3r,vEt]];case 964:return[0,vEt];case 965:return[0,iEt];case 966:return[0,fEt];case 967:return[0,uEt];case 968:return f3r;case 970:return[0,cEt];case 971:return i3r;case 973:return v3r;case 975:return c3r;case 976:return[0,[0,[2,jZ],A3r]];case 977:return o3r;case 978:return[0,gZ];default:return[0,M7r]}}else{if(907>e)switch(e){case 871:break a;case 870:break u;case 872:return a2r;case 873:return u2r;case 874:return[0,[0,f2r,PDt]];case 875:return[0,PDt];case 876:break f;case 877:return i2r;case 878:return v2r;case 879:return c2r;case 880:return[0,MDt];case 881:return[0,FDt];case 882:return[0,[0,A2r,ODt]];case 883:return[0,ODt];case 884:return[0,KDt];case 885:return[0,[0,o2r,CDt]];case 886:return[0,CDt];case 887:return[0,QDt];case 888:return[0,RDt];case 889:return s2r;case 890:return[0,[0,b2r,LDt]];case 891:return[0,LDt];case 892:return[0,VDt];case 893:return[0,HDt];case 894:return l2r;case 895:return[0,$Dt];case 896:return[0,GDt];case 897:return[0,UDt];case 898:return B2r;case 899:return[0,[0,j2r,ZDt]];case 900:return[0,ZDt];case 901:return[0,SDt];case 902:return[0,zDt];case 903:return k2r;case 904:return[0,[0,p2r,YDt]];case 905:return[0,YDt];default:return[0,JDt]}switch(e){case 922:break u;case 907:return[0,XDt];case 908:return[0,WDt];case 909:return m2r;case 910:return[0,[0,d2r,nEt]];case 911:return[0,nEt];case 912:return[0,eEt];case 913:return[0,rEt];case 914:return _2r;case 915:return[0,[0,h2r,aEt]];case 916:return[0,aEt];case 917:return[0,tEt];case 918:return[0,TDt];case 919:return x2r;case 920:return[0,[0,y2r,EDt]];case 921:return w2r;case 923:return[0,[0,[2,KZ],g2r]];case 924:return q2r;case 925:return[0,[0,I2r,HZ]];case 926:return D2r;case 927:return E2r;case 928:return[0,HZ];case 929:return N2r;case 930:return T2r;case 931:return F2r;case 932:break;case 933:return M2r;case 934:return P2r;case 935:return[0,[0,[2,KZ],U2r]];case 936:return G2r;case 937:return $2r;case 938:return[0,[0,[2,jZ],K2r]];case 939:return O2r;case 940:return[0,PZ];case 941:return R2r;default:return Q2r}}return[0,F7r]}return[0,CZ]}return[0,p7r]}return[0,k7r]}return[0,XEt]}return[0,Z5r]}return[0,WEt]}return[0,ZEt]}function qNt(r,e){var n=r;if(66<=n){if(99<=n)switch(n){case 99:return 92;case 100:return 93;case 101:return 94;case 102:return 95;case 103:return 96;case 104:return 97;case 105:return 98;case 106:return 99;case 107:return T$;case 108:return gq;case 109:return Ul;case 110:return E$;case 111:return[6,e];case 112:return ZA;case 113:return os;case 114:return bk;case 115:return pb;case 116:return[7,e];case 117:return ZN;case 118:return FT;case 119:return Wr;case 120:return rh;case 121:return Jn;case 122:return aK;case 123:return Zc;case 124:return xp;case 125:return fM;case 126:return A$;case 127:return LP;case 128:return uw;case 129:return WP;default:return VP}switch(n){case 66:return 62;case 67:return 63;case 68:return 64;case 69:return 65;case 70:return 66;case 71:return 67;case 72:return 68;case 73:return 69;case 74:return 70;case 75:return 71;case 76:return 72;case 77:return 73;case 78:return 74;case 79:return 75;case 80:return 76;case 81:return 77;case 82:return 78;case 83:return[3,e];case 84:return 79;case 85:return 80;case 86:return 81;case 87:return 82;case 88:return 83;case 89:return 84;case 90:return 85;case 91:return[4,e];case 92:return 86;case 93:return 87;case 94:return 88;case 95:return 89;case 96:return 90;case 97:return 91;default:return[5,e]}}if(33<=n)switch(n){case 33:return 31;case 34:return 32;case 35:return 33;case 36:return 34;case 37:return 35;case 38:return 36;case 39:return 37;case 40:return 38;case 41:return 39;case 42:return 40;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 44;case 47:return 45;case 48:return 46;case 49:return 47;case 50:return 48;case 51:return 49;case 52:return 50;case 53:return 51;case 54:return 52;case 55:return 53;case 56:return[1,e];case 57:return 54;case 58:return 55;case 59:return 56;case 60:return[2,e];case 61:return 57;case 62:return 58;case 63:return 59;case 64:return 60;default:return 61}switch(n){case 0:throw gQ([0,xz,BHr],1);case 1:return 0;case 2:return 1;case 3:return 2;case 4:return 3;case 5:return 4;case 6:return 5;case 7:return 6;case 8:return 7;case 9:return 8;case 10:return 9;case 11:return 10;case 12:return 11;case 13:return 12;case 14:return 13;case 15:return 14;case 16:return 15;case 17:return 16;case 18:return 17;case 19:return 18;case 20:return 19;case 21:return[0,e];case 22:return 20;case 23:return 21;case 24:return 22;case 25:return 23;case 26:return 24;case 27:return 25;case 28:return 26;case 29:return 27;case 30:return 28;case 31:return 29;default:return 30}}function INt(r){return r[1]}function DNt(r){return F1(rre,H0(oNt,r))}function ENt(r){var e=F1(J9r,H0(oNt,r)),n=F1(Y9r,H0(BNt,r));return 0===YC(e,n)?e:e+" (e.g. '"+n+"')"}function NNt(r){kNt[4].call(null,r);var e=F1("",Q0(sNt[1]));return sNt[1]=0,e}function TNt(r,e){var n=r[1][1];return function(r,e){if(0===e[0])switch(e[1]){case 83:return"__error_recovery_var__";case 21:case 56:case 60:case 91:case 98:case 111:case 116:throw gQ(dz,1);default:return 0}switch(e[1]){case 79:case 80:case 90:case 91:return[0,r,[32,[0,r,j4r,xS],0,[0,0,0]],xS];default:throw gQ(dz,1)}}([0,[0,n,r[1][2],r[1][3]],[0,n,r[2][2],r[2][3]]],e)}function FNt(r,e,n){for(var t=r,a=fz(Rwt[1],[0,n],e);;){r:if("number"!=typeof a){switch(a[0]){case 0:return[0,-855213085,[0,a,a[1]]];case 2:if(!t)return Rr;break;case 4:return[0,sk,a[1]];case 3:break r}t=1,a=fz(Rwt[2],0,a);continue}return Rr}}function MNt(r){var e=uz(Rwt[13],r);if(e){var n=e[1],t=n[3],a=uz(Rwt[9],n[1]),u=gC(zwt,a)[a+1],f=$mt(t),i=f[2],v=f[1];if(0===u)var c=i,A=i,o=v;else{var s=fz(Rwt[14],u,r);if(s){var b=s[1],l=uz(Rwt[13],b);if(l)var B=$mt(l[1][3])[2],j=uz(Rwt[13],b),k=j?(uz(Rwt[29],j[1][1]),B):B;else k=KY}else k=KY;c=GY(i,k),A=UY(i,k),o=v}}else c=0,A=0,o=1;return[0,o,A,c,r]}function PNt(r,e,n){var t=[0,0];var a=function r(e){for(var a=e;;){if(!a)return Rr;var u=a[2],f=a[1],i=t[1];uz(H6(ehr),i),t[1]=t[1]+1|0,wNt(f[4]);var v=FNt(1,n,f[4]);if("number"!=typeof v)break;a=u}if(sk<=v[1]){var c=v[2],A=r(u);return"number"==typeof A&&Rr===A?[0,sk,c]:A}var o=v[2][1];if("number"!=typeof o&&0===o[0]){yNt(o[1]);for(var s=u,b=0;;){if(!s)return[0,17724,[0,o,f[4]]];var l=s[2],B=s[1];uz(H6(rhr),b),yNt(B[4]),s=l,b=b+1|0}}return FY("Impossible")}(e[3]);if("number"!=typeof a)return sk<=a[1]?[2,a[2]]:[0,a[2][1]];var u=n[1];if("number"!=typeof u||90!==u)f=0;else var f=1;if(!f)return[1,r,e];var i=e[2];return i?[2,i[1]]:[3,r]}var UNt=dut([0,z1]),GNt=P2([0,z1]);function $Nt(r,e){return GNt[24].call(null,function(e,n){return UNt[2].call(null,e,r,n)},e,UNt[1])}var KNt=GNt[1],ONt=GNt[5];function RNt(r,e,n){return[0,e&&n?1:0]}var QNt=UNt[8];function CNt(r,e){return QNt(RNt,r,e)}function HNt(r,e){var n=H0(r,e);return z0(CNt,UNt[1],n)}function VNt(r,e){var n=r[2];return[0,fz(CNt,r[1],e),n]}function LNt(r,e){var n=e[1],t=r[1],a=GNt[5].call(null,r[2],e[2]);return[0,fz(CNt,t,n),a]}function zNt(r,e){var n=H0(r,e);return z0(LNt,[0,UNt[1],GNt[1]],n)}function SNt(r,e){var n=e[2];return fz(CNt,e[1],UNt[27].call(null,function(r,e){return 1-GNt[31].call(null,r,n)},r))}function ZNt(r){return 1}var WNt=UNt[25];function XNt(r){return WNt(ZNt,r)}function JNt(r){function e(e){var n=uz(r,e),t=hut[23];return function(r){return t(n,r)}}var n=_ut[23];return function(r){return n(e,r)}}function YNt(r){return 0}var rTt=UNt[25];function eTt(r){return rTt(YNt,r)}function nTt(r,e){var n=e;r:for(;;){var t=n[2];e:{n:{t:{switch(t[0]){case 0:n=t[2][1];continue;case 2:return UNt[5].call(null,t[1][2],0);case 8:n=t[1][2];continue;case 16:var a=t[1],u=t[3][1],f=t[2],i=ATt(r,vTt(u,f,iTt(r,t[4])));return fz(CNt,a?uz(eTt,nTt(r,a[1])):UNt[1],i);case 17:break r;case 21:var v=t[2];break e;case 23:var c=t[7],A=t[4],o=uTt(r,t[2]),s=aTt(r,A);return uz(XNt,SNt(SNt(nTt(r,c),s),o));case 24:var b=[0,t[2],[0,t[4][2][1],0]];return uz(eTt,tTt(r,QY(N0(t[1]),b)));case 25:return ATt(r,cTt(r,t[1]));case 29:return tTt(r,[0,t[1],[0,t[2],[0,t[3],0]]]);case 30:var l=t[2],B=t[1];break n;case 32:var j=t[2],k=t[1];if(j){var p=j[1],m=k;break t}n=k;continue;case 33:var d=t[3],_=t[2],h=aTt(r,t[1]),x=SNt(nTt(r,d),h);return fz(CNt,nTt(r,_),x);case 35:var y=t[3];break;case 38:var w=t[1];if(w)return tTt(r,[0,w[1],[0,t[4],0]]);n=t[4];continue;case 45:var g=t[3],q=t[2],I=t[1];if(g){var D=g[1],E=fTt(r,q);return fz(CNt,tTt(r,[0,I,[0,D,0]]),E)}l=q,B=I;break n;case 5:case 34:n=t[3];continue;case 6:case 7:p=t[4],m=t[2];break t;case 9:case 11:v=t[1];break e;case 36:case 44:y=t[1];break;case 18:case 39:case 40:n=t[2];continue;case 1:case 3:case 42:case 43:return UNt[1];case 20:case 22:case 27:case 28:case 31:p=t[2],m=t[1];break t;default:n=t[1];continue}return uz(eTt,nTt(r,y))}return tTt(r,[0,m,[0,p,0]])}var N=fTt(r,l);return fz(CNt,nTt(r,B),N)}return tTt(r,v)}var T=t[1],F=HNt(function(e){return nTt(r,e[2][3])},t[2]);return fz(CNt,tTt(r,T),F)}function tTt(r,e){return HNt(function(e){return nTt(r,e)},e)}function aTt(r,e){r:{var n=e;e:for(;;){var t=n[2];if("number"==typeof t)return[0,UNt[1],GNt[1]];switch(t[0]){case 0:var a=GNt[3].call(null,t[1][2]);return[0,UNt[1],a];case 3:break r;case 4:break e;case 5:default:n=t[1];break;case 6:n=t[2];break;case 7:var u=t[1],f=aTt(r,t[2]);return LNt(aTt(r,u),f);case 1:case 2:return[0,UNt[1],GNt[1]]}}return zNt(function(e){var n=e[2];return 0===n[0]?aTt(r,n[2]):[0,UNt[1],GNt[1]]},t[1])}return zNt(function(e){return aTt(r,e)},t[1])}function uTt(r,e){var n=e[2];return n?aTt(r,n[1][2]):[0,UNt[1],GNt[1]]}function fTt(r,e){return HNt(function(e){var n=aTt(r,e[2][1]);return SNt(nTt(r,e[2][2]),n)},e)}function iTt(r,e){return cTt(r,H0(function(r){return r[2][1]},e))}function vTt(r,e,n){if(!r)return n;for(var t=r[1],a=n;;){if(a){var u=a[2],f=GNt[31].call(null,t[2],a[1][2]);if(!f){a=u;continue}var i=f}else i=0;if(i)return n;var v=GNt[1],c=GNt[1],A=GNt[3].call(null,t[2]),o=[0,t[1],A,c,v];return 1===e[2]?[0,o,n]:QY(n,[0,o,0])}}function cTt(r,e){return H0(function(e){var n=e[2];switch(n[0]){case 0:var t=GNt[1],a=[0,nTt(r,n[1]),t];break;case 1:var u=n[3],f=n[2],i=n[1];if(u){var v=nTt(r,u[1]),c=nTt(r,f);a=VNt(VNt(aTt(r,i),c),v)}else{var A=nTt(r,f);a=VNt(aTt(r,i),A)}break;case 2:var o=n[1],s=nTt(r,n[2]),b=GNt[3].call(null,o[2]);a=VNt([0,UNt[1],b],s);break;case 3:a=[0,UNt[1],GNt[1]];break;case 4:var l=n[2],B=n[1],j=n[9],k=n[8],p=n[6],m=n[4],d=n[3],_=uTt(r,l),h=aTt(r,p),x=uz(XNt,SNt(SNt(ATt(r,vTt([0,k],d,iTt(r,j))),h),_));if(B)var y=B[1],w=uTt(r,l),g=uz(XNt,SNt(nTt(r,y),w));else g=UNt[1];var q=GNt[3].call(null,m[2]);a=VNt(VNt([0,UNt[1],q],g),x);break;case 5:var I=n[2],D=GNt[1],E=aTt(r,n[1]);a=[0,SNt(ATt(r,iTt(r,I)),E),D];break;default:var N=GNt[1];a=[0,nTt(r,n[2]),N]}var T=a[1],F=a[2],M=function(r){var e=UNt[27].call(null,function(r,e){return 1===e?1:0},r),n=UNt[48].call(null,e);return GNt[38].call(null,n)}(T),P=function(r){var e=UNt[27].call(null,function(r,e){return 0===e?1:0},r),n=UNt[48].call(null,e);return GNt[38].call(null,n)}(T);return[0,e[1],F,P,M]},e)}function ATt(r,e){for(var n=V0(function(r,e){return $Nt(r,e[2])},e),t=UNt[54].call(null,n),a=z0(qut,xut,H0(function(r){return function(r,e){return hut[24].call(null,function(r,n){return _ut[2].call(null,r,e,n)},r,xut)}(r[2],r[4])},e)),u=e,f=0;u;){var i=u[1],v=u[2];let e=i[1],n=f;var c=Dut(i[3],a);uz(JNt(function(a,u){var f=UNt[18].call(null,u,t);return f?f[1]=r||97<=r&&Ux>=r||65<=r&&90>=r?r:95},r)}(e[1]);if(0!==Jvt(e)[0])throw gQ([0,xz,Qre],1);var t=[0,e,r],a=f[18].call(null,t,i[1]);if(a)var v=a[1],c=v[2],A=v[1];else{var o=gct[18].call(null,e,u[1]);if(o){var s=o[1],b=s[2],l=s[1];u[1]=gct[2].call(null,e,[0,l,b+1|0],u[1]),i[1]=f[2].call(null,t,[0,l,b+1|0],i[1]);c=b+1|0,A=l}else{var B=G0(a1(function(r){return e[1]===r[1]?1:0},gct[48].call(null,u[1])));u[1]=gct[2].call(null,e,[0,B,0],u[1]),i[1]=f[2].call(null,t,[0,B,0],i[1]);c=0,A=B}}if(0<=A&&0<=c)return 0===A?0===c?n:fz(H6(Rre),n,c):0===c?fz(H6(Ore),n,A):iz(H6(Kre),n,A,c);throw gQ([0,xz,$re],1)}function c(r){switch(r){case 0:return _re;case 1:return hre;case 2:return xre;case 3:return yre;case 4:return wre;case 5:return gre;case 6:return qre;case 7:return Ire;case 8:return Dre;case 9:return Ere;case 10:return Nre;case 11:return Tre;case 12:return Fre;case 13:return Mre;case 14:return Pre;case 15:return Ure;case 16:return 0;case 18:return 1;default:throw gQ([0,xz,Gre],1)}}function A(r){r:{if("number"==typeof r)switch(r){case 2:break r;case 0:var u=ure;break;default:u=fre}else e:switch(r[0]){case 0:throw gQ([0,xz,ire],1);case 1:var f=r[2],i=r[1],o=Jvt(i);if(0!==o[0])throw gQ([0,xz,sre],1);var B=Sct(f,o[2]);if("number"==typeof B)switch(B){case 2:break;case 0:u=vre;break e;default:u=cre;break e}else if(2===B[0]){u=c(B[1]);break}var k=v(f,i),p=Wot[18].call(null,k,e[1]);if(p){var m=p[1];if("number"==typeof m){if(2===m){u=[1,iut(k,vut)];break}}else if(1===m[0]){if(!Wft[31].call(null,k,n[1]))throw gQ([0,xz,Are],1);u=m;break}if(Wft[31].call(null,k,n[1]))throw gQ([0,xz,ore],1);u=[1,iut(t[17].call(null,[0,i[1],m],a[1]),vut)]}else{e[1]=Wot[2].call(null,k,2,e[1]);var d=A(Xct(B)),_=[0,i[1],d[2]],h=t[18].call(null,_,a[1]);if(h){var x=[1,iut(h[1],vut)];e[1]=Wot[2].call(null,k,x,e[1]),n[1]=Wft[2].call(null,k,n[1]);u=x}else{e[1]=Wot[2].call(null,k,d[2],e[1]),a[1]=t[2].call(null,_,k,a[1]);u=[1,iut(k,vut)]}}break;case 2:u=c(r[1]);break;case 3:var y=r[1];if(1===y)u=[7,j(r[2])];else{if(y)throw gQ([0,xz,bre],1);u=[5,s(r[2])]}break;case 4:u=[6,s(r[1])];break;case 5:u=[4,A(r[1])];break;case 6:u=[3,A(r[1])];break;case 7:var w=r[1];u=0===w?lre:[5,b(w)];break;case 8:var g=r[1];if(!g)break r;var q=r[2],I=r[5],D=r[4],E=g[1],N=H0(function(r){return 1},r[3]),T=H0(function(r){return Sct(N,r)},I),F=l(H0(function(r){return Sct(N,r)},D));n:{if(!T)switch(q){case 0:u=[2,[0,iut(0,vut),0],F,0];break e;case 1:break;default:break n}if(1===q){var M=l(T);switch(E){case 0:var P=[0,iut(1,vut),0];break;case 1:P=0;break;default:P=[0,iut(2,vut),0]}u=[2,P,F,M];break}}throw gQ([0,xz,Bre],1);case 11:u=A(r[2])[2];break;default:break r}return iut(u,vut)}throw gQ([0,xz,jre],1)}function o(r){var e=r[3][3],n=r[2],t=pft(r[1]);if(0===t[0]){var a=t[1],u=A(n);return iut([0,iut([0,a],vut),u],e)}var f=t[1],i=A(n);return iut([0,iut([1,f],vut),i],e)}function s(r){return H0(o,r)}function b(r){return V0(function(r,e){var n=A(e);return iut([0,iut([2,r],vut),n],vut)},r)}function l(r){return H0(B,r)}function B(r){if("number"!=typeof r&&11===r[0]){var e=r[2],n=pft(r[1]);if(0===n[0])return iut([0,0,A(e)],vut);var t=n[1],a=A(e);return iut([0,[0,iut(t,vut)],a],vut)}return iut([0,0,A(r)],vut)}function j(r){return S0(function(r,e){var n=r[3][3],t=A(r[2]),a=r[1],u=Urt(ktr,a);return[0,iut([0,iut(u?u[1]:a,vut),t],n),e]},r,0)}function k(r,e){for(var n=r,t=e;;){if(!t)return n;var a=t[2],u=t[1],f=u[2][1][2];if(6===f[0]){var i=f[3][1];t=i?QY(i[1][3],a):a}else{var v=u[2][3];if(v){var c=v[1][2];if(c){var A=c[1][1];A?(n=[0,A[1][2],n],t=a):t=a}else t=a}else t=a}}}function p(r,e){if(0===e)return r;var n=Xct(r);if("number"!=typeof n&&3===n[0]){var t=n[3];return[3,n[1],s1(qct,QY(n[2],e)),t]}throw gQ([0,xz,dre],1)}return[0,,,,,,,,,,,A,,,,,B,,,function(r){return gct[44][23].call(null,function(r){var e=function(r){var e=Jvt(r);if(0===e[0]&&!e[1]){var n=e[2];if("number"!=typeof n&&3===n[0]&&1===n[1])return 1}return 0}(r);return e?(A([1,r,0]),0):e},r[4])},function(r){return Wot[24].call(null,function(r,e,t){if(Wft[31].call(null,r,n[1]))return t;var a=iut(e,vut);return[0,iut([0,iut(r,vut),a],vut),t]},e[1],0)},,,function(r){var e=vkt(0,r)[2][2],n=e[2];switch(n[0]){case 1:var t=k(0,n[4]);return[0,A(p(e[3][1],t))];case 3:var a=n[9],u=Xct(e[3][1]);if("number"!=typeof u&&8===u[0]&&!u[1]&&!u[2]){var f=u[3];if(f&&!f[2]){var i=u[5];if(i&&!i[2]){var v=i[1],c=H0(B,H0(function(r){return Sct(kre,r)},u[4]));return[0,iut([8,c,A(p(kAt(Xct(Sct(pre,v)))[3],k(0,a)))],e[1])]}}}throw gQ([0,xz,mre],1);default:return 0}}]}function sTt(r){var e=r[2],n=Akt(r[1]),t=n[3][2],a=oTt(),u=a[20],f=a[19],i=a[23].call(null,n);0===i&&f(e);var v=[0,u(0),i];return[0,n[1],v,[0,"",t]]}function bTt(r){var e=r[2];return 1===e[0]?kft(e[1]):jft(e[1])}function lTt(r,e,n){var t=n[2];if("number"==typeof t)switch(t){case 0:return Cre;case 1:return Hre;default:throw gQ([0,xz,Vre],1)}switch(t[0]){case 0:switch(t[1]){case 0:return uee;case 1:return fee;case 2:return iee;case 3:return vee;case 4:return cee;case 5:return Aee;case 6:return oee;case 7:return see;case 8:return bee;case 9:return lee;case 10:return Bee;case 11:return jee;case 12:return kee;case 13:return pee;case 14:return mee;case 15:return 0;default:return 1}case 1:var a=t[1][2],u=Wot[18].call(null,a,e[1]);if(u)return u[1];var f=Wvt(a,Lre),i=[1,f,0];return e[1]=Wot[2].call(null,a,i,e[1]),xct(f,[0,0,lTt(r,e,Fft[17].call(null,a,r))]),i;case 2:var v=t[1];r:{var c=t[3],A=t[2];if(v){switch(v[1][2]){case 0:if(!v[2]){var o=ree;break r}break;case 1:if(!v[2]){o=eee;break r}break;default:if(!v[2]){o=nee;break r}}throw gQ([0,xz,aee],1)}o=tee}var s=o[2],b=o[1],l=BTt(r,e,c);return[8,[0,b],s,[0,Jot,0],BTt(r,e,A),l];case 3:return[6,lTt(r,e,t[1])];case 4:return[5,lTt(r,e,t[1])];case 5:var B=t[1],j=1P½ÿóàC\0\0ÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Àÿÿÿÿÿÿ\0\0",mS,mS,mS,mS,mS,mS,mS,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿx\f\0","ÿÿÿÿ¿ ÿÿÿÿÿÿÿ€\0\0ÿÿ\0ÿÿÿÿ","\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS],[0,"à\0\0\0þ>þÿÿÿÿÿÿÿÿÿàþÿÿÿÿÿÿÿÿÿÿ÷","àÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿÿ\0\0\0\0\0\0ÿÿ",mS,mS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,gor,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0ÿÿÿÿÿ?",dS,"ÿÿÿ\0\f\0\0ÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0","\0\0€ÿüÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿÿÿÿÿÿÿ\0\0þÿ","¿ÿÿÿÿ\0\0\0ÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿ/\0\0\0\0\0üè","\0üÿÿÿÿÿÿÿ\0ÿÿÿÿÿÿÿÿÿ÷ÿ\0€\0\0ÿÿ\0|","ÿÿÿÿÿÿ\0ÿ?\0\0ÿÿüÿÿÿÿÿÿÿ\0\x008ÿÿ<\0","~~~\0ÿÿÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0",dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿÿøÿÿÿÿÿ",mS,mS,mS,mS,mS,mS,mS,mS],Alt,[0,mS,mS,mS,mS,mS,mS,mS,mS,mS,dS,"ÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0","\0øàÿý_Ûÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0øÿÿÿÿÿ",dS,"ÿÿÿÿÿÿÿ?\0\0ÿÿÿÿÿÿÿÿüÿÿÿÿÿÿ\0\0\0\0\0ÿ","\0\0\0\0\0\0\0\0\0\0\0\0\0\0ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","\0\0\0\0þÿÿþÿÿÀÿÿÿÿÿÿÿÿÿÿüüü\0\0\0\0"],[0,"ÿïÿÿÿÿ·ÿ?ÿ?\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","\0\0\0\0\0\0\0\0ÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿ\0\0\0\0\0","ÿÿÿÿ\0àÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿ>\0\0\0\0\0","ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?\0\0ÿÿÿÿÿÿÿÿ","ÿÿÿÿÿ\0ÿÿÿÿÿÿ\0ÿ÷ÿ÷·ÿûÿûÿÿÿÿÿÿ\0",dS,"ÿÿÿÿÿÿ\0ÿÿ?\0ÿ\0\0\0¿ÿÿÿÿÿý\0\0\0\0\0\0\0\0","?ýÿÿÿÿ¿‘ÿÿ?\0ÿÿ\0ÿÿÿ\0\0\0\0\0\0\0\0ÿÿ7\0","ÿÿ?\0ÿÿÿÿÿÿ\0\0\0\0ÿÿÿÿÿÿÿÀ\0\0\0\0\0\0\0\0","oðïþÿÿ?\0\0\0\0\0ÿÿÿÿÿÿ\0\0\0\0ÿþÿÿ\0\0\0","ÿÿÿÿÿÿ?\0ÿÿ?\0ÿÿ\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0","ÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0ÿÿÿÿÿÿ\0ÿÿÿÿÿÿ\0","ÿÿÿÿÿ\0\0\0\0üÿÿ?‚ÿÿ?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿ\0ü\0\0\0\0\0\0","ÿÿÿ€\0ÿÿ?\0\0\0\0\0ÿÿ\0\0\0\0\0ÿÿ\0\0\0ÿÿ\0"],[0,"ÿÿÿÿÿÿÿÿ?\0\0\0\0\0>\0ÿÿÿÿÿÿÿ\0ÿÿÿ\0\0","ÿÿÿÿÿÿ\0ð\0ÿÿÿÿG\0ÿÿÿÿÿÿÿÿÀ\0\0\0\0\0","ÿÿûÿÿÿŸÀ\0\0\0\0\0\0\0½ÿ¿ÿÿÿÿÿÿÿÿ\0\0","ïŸùÿÿýí㟁à\0\0\0ÿKÿÿÿÿ¿ÿ¥7\n\0\0\0\0\0","ÿÿÿÿÿÿÿÿ»\0€\0\0\0ÿÿÿÿÿÿÿÿ³\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿ?\0\0\0?\0\0\0\0","ÿÿÿÿÿÿÿ\0\0\0\0\0\0\0ÿÿÿÿÿÿ?\0\0\0\0\0\0\0\0","ÿÿÿçÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","ÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0\0\0€","òoÿÿÿ¿™\0\0\0\0\0\0\0\0\0\0\0ÿüÿÿÿÿÿü\0\0\0","ÿÿÿÿÿÿç\0\0ÿÿÿÿÿÿÿÿÿ \0\0ÿÿÿÿÿÿÿÿÿ","\0\0\0\0\0\0\0\0\0\0\0\0ÿ\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0","ÿýÿÿÿÿ\0\0\0\0\0üÿÿÿüÿÿþ\0\0\0\0\0\0\0\0\0","ûÿÿÿÿ´Ë\0\0\0¿ýÿÿÿ{\0\0ÿÿÿÿÿ\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿ\0","ÿÿýÿÿÿÿÇ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"],[0,dS,dS,dS,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0","ÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","ÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS,mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿ\0"],[0,dS,dS,dS,dS,"ÿÿÿÿÿÿ\0\0~\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",dS,dS,"ÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS,mS,mS],Alt,[0,mS,"ÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,dS,dS,"ÿÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿÿÿÿÿÿÿ\0\0ÿÿÿ?\0\0","ÿÿÿÿÿÿ\0\0\0\0\0øÿÿàÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,"\0\0\0\0\0\0\0\0ÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿ\0\0\0\0ÿÿÿùÿÿ\0\0\0\0\0","ÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿ€ÿÿ\0\0\0\0\0\0\0\0\v\0\0"],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?\0\0\0\0€","ÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0",mS,mS],Alt,[0,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ïo"],[0,dS,"ÿÿÿÿ\0\0\0\0'\0ð\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",mS,mS,mS,mS,mS,mS,mS,mS,mS,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿC\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS],Alt,[0,mS,mS,mS,mS,"ÿÿÿÿÿÿÿÿÿÿßÿÿÿÿÿÿÿÿßdÞÿëïÿÿÿÿÿÿÿ","¿çßßÿÿÿ{_üýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ","ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿýÿÿ÷ÿÿÿ÷","ÿÿßÿÿÿßÿÿÿÿÿÿÿÿýÿÿÿýÿÿ÷\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS,"ÿÿÿà\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"],[0,"ÿÿùÛÿÿÿÿÿÿÿ?\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0","ÿÿÿÿÿ€?\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿ?\0\0ÿÿÿÿÿ\0\0",mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿ\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿ?\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿ?À","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0oÿ","ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0","ÿÿÿÿÿÿÿÿ\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,"ïÿÿÿ–þ÷\n„ê–ª–÷÷^ÿûÿîûÿ\0\0\0\0\0\0\0\0",mS],[0,mS,qor,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0",dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,"ÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿ",dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0ÿÿ",dS,dS,"ÿÿÿÿÿÿÿÿÿÿÿ?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS],[0,mS,mS,mS,mS,mS,mS,mS,mS,dS,dS,"ÿÿÿ?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ",dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS,dS],[0,dS,dS,dS,dS,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS],Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt]],RTt=[0,0,[0,[0,slt,slt,slt,slt,slt,slt,[0,0,[0,65,0],[0,66,0],[0,67,0],[0,68,0],[0,69,0],[0,70,0],[0,71,0],[0,72,0],[0,73,0],[0,74,0],[0,75,0],[0,76,0],[0,77,0],[0,78,0],[0,79,0]],[0,[0,80,0],[0,81,0],[0,82,0],[0,83,0],[0,84,0],[0,85,0],[0,86,0],[0,87,0],[0,88,0],[0,89,0],[0,90,0],0,0,0,0,0],slt,slt,slt,[0,0,0,0,0,0,[0,924,0],0,0,0,0,0,0,0,0,0,0],slt,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,83,[0,83,0]]],[0,[0,nF,0],[0,WD,0],[0,V_,0],[0,IR,0],[0,ER,0],[0,_b,0],[0,Tq,0],[0,199,0],[0,TE,0],[0,dA,0],[0,202,0],[0,203,0],[0,204,0],[0,205,0],[0,dD,0],[0,207,0]],[0,[0,208,0],[0,aO,0],[0,210,0],[0,211,0],[0,212,0],[0,213,0],[0,214,0],0,[0,gn,0],[0,217,0],[0,Nd,0],[0,219,0],[0,JR,0],[0,RP,0],[0,$x,0],[0,eP,0]],[0,0,[0,mc,0],0,[0,_N,0],0,[0,260,0],0,[0,262,0],0,[0,264,0],0,[0,dj,0],0,[0,jh,0],0,[0,270,0]],[0,0,[0,272,0],0,[0,274,0],0,[0,276,0],0,[0,278,0],0,[0,280,0],0,[0,282,0],0,[0,__,0],0,[0,oP,0]],[0,0,[0,xn,0],0,[0,lk,0],0,[0,292,0],0,[0,ud,0],0,[0,sN,0],0,[0,298,0],0,[0,Bo,0],0,[0,302,0]],[0,0,[0,73,0],0,[0,$R,0],0,[0,$A,0],0,[0,310,0],0,0,[0,313,0],0,[0,315,0],0,[0,317,0],0],[0,[0,319,0],0,[0,321,0],0,[0,323,0],0,[0,325,0],0,[0,tE,0],[0,700,[0,78,0]],0,[0,hh,0],0,[0,332,0],0,[0,Wu,0]],[0,0,[0,qa,0],0,[0,Aw,0],0,[0,340,0],0,[0,Xn,0],0,[0,344,0],0,[0,_E,0],0,[0,348,0],0,[0,Yc,0]],[0,0,[0,352,0],0,[0,nv,0],0,[0,356,0],0,[0,358,0],0,[0,360,0],0,[0,SK,0],0,[0,364,0],0,[0,fs,0]],[0,0,[0,Tm,0],0,[0,370,0],0,[0,372,0],0,[0,gf,0],0,0,[0,BR,0],0,[0,379,0],0,[0,381,0],[0,83,0]],[0,[0,579,0],0,0,[0,sp,0],0,[0,sR,0],0,0,[0,GR,0],0,0,0,[0,g_,0],0,0,0],[0,0,0,[0,bD,0],0,0,[0,rM,0],0,0,0,[0,uO,0],[0,573,0],[0,42972,0],0,0,[0,544,0],0],[0,0,[0,Ou,0],0,[0,418,0],0,[0,Xr,0],0,0,[0,423,0],0,0,0,0,[0,kl,0],0,0],[0,[0,pr,0],0,0,0,[0,435,0],0,[0,oi,0],0,0,[0,440,0],0,0,0,[0,444,0],0,[0,503,0]],[0,0,0,0,0,0,[0,452,0],[0,452,0],0,[0,455,0],[0,455,0],0,[0,458,0],[0,458,0],0,[0,tk,0],0],[0,[0,Lx,0],0,[0,465,0],0,[0,467,0],0,[0,469,0],0,[0,yh,0],0,[0,473,0],0,[0,475,0],[0,398,0],0,[0,Qb,0]],[0,0,[0,480,0],0,[0,xb,0],0,[0,484,0],0,[0,OG,0],0,[0,488,0],0,[0,490,0],0,[0,ac,0],0,[0,494,0]],[0,[0,74,[0,780,0]],0,[0,497,0],[0,497,0],0,[0,Pl,0],0,0,0,[0,ws,0],0,[0,506,0],0,[0,CD,0],0,[0,510,0]],[0,0,[0,mB,0],0,[0,514,0],0,[0,516,0],0,[0,518,0],0,[0,520,0],0,[0,522,0],0,[0,524,0],0,[0,526,0]],[0,0,[0,528,0],0,[0,530,0],0,[0,532,0],0,[0,534,0],0,[0,536,0],0,[0,538,0],0,[0,540,0],0,[0,542,0]],[0,0,0,0,[0,546,0],0,[0,548,0],0,[0,550,0],0,[0,552,0],0,[0,554,0],0,[0,556,0],0,[0,558,0]],[0,0,[0,560,0],0,[0,562,0],0,0,0,0,0,0,0,0,[0,571,0],0,0,[0,11390,0]],[0,[0,11391,0],0,[0,577,0],0,0,0,0,[0,582,0],0,[0,584,0],0,[0,586,0],0,[0,588,0],0,[0,590,0]],[0,[0,11375,0],[0,11373,0],[0,11376,0],[0,385,0],[0,LD,0],0,[0,393,0],[0,rd,0],0,[0,dK,0],0,[0,400,0],[0,42923,0],0,0,0],[0,[0,403,0],[0,42924,0],0,[0,404,0],[0,42955,0],[0,42893,0],[0,42922,0],0,[0,407,0],[0,406,0],[0,42926,0],[0,11362,0],[0,42925,0],0,0,[0,kg,0]],[0,0,[0,11374,0],[0,at,0],0,0,[0,415,0],0,0,0,0,0,0,0,[0,11364,0],0,0],[0,[0,tc,0],0,[0,42949,0],[0,425,0],0,0,0,[0,42929,0],[0,430,0],[0,580,0],[0,hd,0],[0,Pv,0],[0,581,0],0,0,0],[0,0,0,[0,439,0],0,0,0,0,0,0,0,0,0,0,[0,42930,0],[0,42928,0],0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,0,0,0,0,0,[0,Ks,0],0,0,0,0,0,0,0,0,0,0],slt,slt,[0,0,[0,880,0],0,[0,882,0],0,0,0,[0,886,0],0,0,0,[0,1021,0],[0,bA,0],[0,Td,0],0,0],slt,[0,[0,Ks,[0,Vh,[0,yj,0]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,[0,902,0],[0,904,0],[0,905,0],[0,906,0]],[0,[0,qm,[0,Vh,[0,yj,0]]],[0,iw,0],[0,914,0],[0,915,0],[0,916,0],[0,917,0],[0,918,0],[0,nE,0],[0,920,0],[0,Ks,0],[0,922,0],[0,923,0],[0,924,0],[0,925,0],[0,926,0],[0,927,0]],[0,[0,928,0],[0,929,0],[0,931,0],[0,931,0],[0,932,0],[0,qm,0],[0,934,0],[0,935,0],[0,936,0],[0,Nc,0],[0,938,0],[0,939,0],[0,908,0],[0,910,0],[0,911,0],0],[0,[0,914,0],[0,920,0],0,0,0,[0,934,0],[0,928,0],[0,975,0],0,[0,984,0],0,[0,986,0],0,[0,988,0],0,[0,990,0]],[0,0,[0,992,0],0,[0,994,0],0,[0,996,0],0,[0,998,0],0,[0,$s,0],0,[0,1002,0],0,[0,1004,0],0,[0,1006,0]],[0,[0,922,0],[0,929,0],[0,1017,0],[0,895,0],0,[0,917,0],0,0,[0,1015,0],0,0,[0,1018,0],0,0,0,0],slt,slt,slt,[0,[0,1040,0],[0,1041,0],[0,1042,0],[0,1043,0],[0,1044,0],[0,1045,0],[0,1046,0],[0,1047,0],[0,1048,0],[0,1049,0],[0,1050,0],[0,wq,0],[0,1052,0],[0,1053,0],[0,1054,0],[0,1055,0]],[0,[0,1056,0],[0,1057,0],[0,_x,0],[0,1059,0],[0,1060,0],[0,1061,0],[0,1062,0],[0,1063,0],[0,1064,0],[0,1065,0],[0,1066,0],[0,1067,0],[0,1068,0],[0,1069,0],[0,1070,0],[0,1071,0]],[0,[0,Jo,0],[0,1025,0],[0,1026,0],[0,1027,0],[0,1028,0],[0,1029,0],[0,1030,0],[0,1031,0],[0,1032,0],[0,1033,0],[0,1034,0],[0,1035,0],[0,1036,0],[0,1037,0],[0,1038,0],[0,1039,0]],[0,0,[0,1120,0],0,[0,1122,0],0,[0,1124,0],0,[0,1126,0],0,[0,1128,0],0,[0,1130,0],0,[0,Sn,0],0,[0,1134,0]],[0,0,[0,1136,0],0,[0,1138,0],0,[0,1140,0],0,[0,1142,0],0,[0,1144,0],0,[0,1146,0],0,[0,1148,0],0,[0,1150,0]],[0,0,[0,1152,0],0,0,0,0,0,0,0,0,0,[0,1162,0],0,[0,1164,0],0,[0,1166,0]],[0,0,[0,1168,0],0,[0,1170,0],0,[0,1172,0],0,[0,1174,0],0,[0,1176,0],0,[0,1178,0],0,[0,1180,0],0,[0,1182,0]],[0,0,[0,1184,0],0,[0,1186,0],0,[0,1188,0],0,[0,1190,0],0,[0,1192,0],0,[0,1194,0],0,[0,1196,0],0,[0,1198,0]],[0,0,[0,1200,0],0,[0,1202,0],0,[0,1204,0],0,[0,1206,0],0,[0,1208,0],0,[0,1210,0],0,[0,1212,0],0,[0,1214,0]],[0,0,0,[0,1217,0],0,[0,1219,0],0,[0,1221,0],0,[0,1223,0],0,[0,1225,0],0,[0,1227,0],0,[0,1229,0],[0,1216,0]],[0,0,[0,1232,0],0,[0,1234,0],0,[0,1236,0],0,[0,1238,0],0,[0,1240,0],0,[0,1242,0],0,[0,1244,0],0,[0,1246,0]],[0,0,[0,1248,0],0,[0,1250,0],0,[0,J_,0],0,[0,1254,0],0,[0,1256,0],0,[0,1258,0],0,[0,1260,0],0,[0,1262,0]],[0,0,[0,1264,0],0,[0,1266,0],0,[0,1268,0],0,[0,1270,0],0,[0,1272,0],0,[0,1274,0],0,[0,1276,0],0,[0,1278,0]],[0,0,[0,1280,0],0,[0,1282,0],0,[0,1284,0],0,[0,1286,0],0,[0,1288,0],0,[0,1290,0],0,[0,1292,0],0,[0,1294,0]],[0,0,[0,1296,0],0,[0,1298,0],0,[0,1300,0],0,[0,1302,0],0,[0,1304,0],0,[0,1306,0],0,[0,1308,0],0,[0,1310,0]],[0,0,[0,1312,0],0,[0,1314,0],0,[0,1316,0],0,[0,1318,0],0,[0,1320,0],0,[0,1322,0],0,[0,1324,0],0,[0,1326,0]],slt,slt,slt,[0,0,[0,1329,0],[0,1330,0],[0,1331,0],[0,1332,0],[0,Qx,0],[0,1334,0],[0,1335,0],[0,1336,0],[0,1337,0],[0,1338,0],[0,1339,0],[0,1340,0],[0,1341,0],[0,1342,0],[0,1343,0]],[0,[0,1344,0],[0,1345,0],[0,1346,0],[0,1347,0],[0,mn,0],[0,1349,0],[0,Za,0],[0,1351,0],[0,1352,0],[0,1353,0],[0,1354,0],[0,1355,0],[0,1356,0],[0,1357,0],[0,1358,0],[0,1359,0]],[0,[0,1360,0],[0,1361,0],[0,1362,0],[0,1363,0],[0,1364,0],[0,1365,0],[0,1366,0],[0,Qx,[0,1362,0]],0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,7312,0],[0,7313,0],[0,7314,0],[0,7315,0],[0,7316,0],[0,7317,0],[0,7318,0],[0,7319,0],[0,7320,0],[0,7321,0],[0,7322,0],[0,7323,0],[0,7324,0],[0,7325,0],[0,7326,0],[0,7327,0]],[0,[0,7328,0],[0,7329,0],[0,7330,0],[0,7331,0],[0,7332,0],[0,7333,0],[0,7334,0],[0,7335,0],[0,7336,0],[0,7337,0],[0,7338,0],[0,7339,0],[0,7340,0],[0,7341,0],[0,7342,0],[0,7343,0]],[0,[0,7344,0],[0,7345,0],[0,7346,0],[0,7347,0],[0,7348,0],[0,7349,0],[0,7350,0],[0,7351,0],[0,7352,0],[0,7353,0],[0,7354,0],0,0,[0,7357,0],[0,7358,0],[0,7359,0]],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,0,0,0,0,0,0,0,0,[0,5104,0],[0,5105,0],[0,5106,0],[0,5107,0],[0,5108,0],[0,5109,0],0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,1042,0],[0,1044,0],[0,1054,0],[0,1057,0],[0,_x,0],[0,_x,0],[0,1066,0],[0,1122,0],[0,42570,0],0,[0,7305,0],0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,0,0,0,0,0,0,0,0,0,[0,42877,0],0,0,0,[0,11363,0],0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,42950,0],0],slt,slt,slt,slt,slt,slt,slt,[0,0,[0,7680,0],0,[0,7682,0],0,[0,7684,0],0,[0,7686,0],0,[0,7688,0],0,[0,7690,0],0,[0,7692,0],0,[0,7694,0]],[0,0,[0,7696,0],0,[0,7698,0],0,[0,7700,0],0,[0,7702,0],0,[0,7704,0],0,[0,7706,0],0,[0,7708,0],0,[0,7710,0]],[0,0,[0,7712,0],0,[0,7714,0],0,[0,7716,0],0,[0,7718,0],0,[0,7720,0],0,[0,7722,0],0,[0,7724,0],0,[0,7726,0]],[0,0,[0,7728,0],0,[0,7730,0],0,[0,7732,0],0,[0,7734,0],0,[0,7736,0],0,[0,7738,0],0,[0,7740,0],0,[0,7742,0]],[0,0,[0,7744,0],0,[0,7746,0],0,[0,7748,0],0,[0,7750,0],0,[0,7752,0],0,[0,7754,0],0,[0,7756,0],0,[0,7758,0]],[0,0,[0,7760,0],0,[0,7762,0],0,[0,7764,0],0,[0,7766,0],0,[0,7768,0],0,[0,7770,0],0,[0,7772,0],0,[0,7774,0]],[0,0,[0,7776,0],0,[0,7778,0],0,[0,7780,0],0,[0,7782,0],0,[0,7784,0],0,[0,7786,0],0,[0,7788,0],0,[0,7790,0]],[0,0,[0,7792,0],0,[0,7794,0],0,[0,7796,0],0,[0,7798,0],0,[0,7800,0],0,[0,7802,0],0,[0,7804,0],0,[0,7806,0]],[0,0,[0,7808,0],0,[0,7810,0],0,[0,7812,0],0,[0,7814,0],0,[0,7816,0],0,[0,7818,0],0,[0,7820,0],0,[0,7822,0]],[0,0,[0,7824,0],0,[0,7826,0],0,[0,7828,0],[0,72,[0,817,0]],[0,84,[0,Vh,0]],[0,87,[0,778,0]],[0,89,[0,778,0]],[0,65,[0,702,0]],[0,7776,0],0,0,0,0],[0,0,[0,7840,0],0,[0,7842,0],0,[0,7844,0],0,[0,7846,0],0,[0,7848,0],0,[0,7850,0],0,[0,7852,0],0,[0,7854,0]],[0,0,[0,7856,0],0,[0,7858,0],0,[0,7860,0],0,[0,7862,0],0,[0,7864,0],0,[0,7866,0],0,[0,7868,0],0,[0,7870,0]],[0,0,[0,7872,0],0,[0,7874,0],0,[0,7876,0],0,[0,7878,0],0,[0,7880,0],0,[0,7882,0],0,[0,7884,0],0,[0,7886,0]],[0,0,[0,7888,0],0,[0,7890,0],0,[0,7892,0],0,[0,7894,0],0,[0,7896,0],0,[0,7898,0],0,[0,7900,0],0,[0,7902,0]],[0,0,[0,7904,0],0,[0,7906,0],0,[0,7908,0],0,[0,7910,0],0,[0,7912,0],0,[0,7914,0],0,[0,7916,0],0,[0,7918,0]],[0,0,[0,7920,0],0,[0,7922,0],0,[0,7924,0],0,[0,7926,0],0,[0,7928,0],0,[0,7930,0],0,[0,7932,0],0,[0,7934,0]],[0,[0,GA,0],[0,rq,0],[0,dg,0],[0,qr,0],[0,rj,0],[0,YB,0],[0,lg,0],[0,yK,0],0,0,0,0,0,0,0,0],[0,[0,7960,0],[0,7961,0],[0,7962,0],[0,7963,0],[0,7964,0],[0,7965,0],0,0,0,0,0,0,0,0,0,0],[0,[0,xv,0],[0,Bf,0],[0,Bx,0],[0,BO,0],[0,p_,0],[0,vU,0],[0,wk,0],[0,Vd,0],0,0,0,0,0,0,0,0],[0,[0,7992,0],[0,7993,0],[0,7994,0],[0,7995,0],[0,7996,0],[0,7997,0],[0,7998,0],[0,7999,0],0,0,0,0,0,0,0,0],[0,[0,8008,0],[0,8009,0],[0,8010,0],[0,8011,0],[0,8012,0],[0,8013,0],0,0,0,0,0,0,0,0,0,0],[0,[0,qm,[0,YG,0]],[0,8025,0],[0,qm,[0,YG,[0,768,0]]],[0,8027,0],[0,qm,[0,YG,[0,yj,0]]],[0,8029,0],[0,qm,[0,YG,[0,XF,0]]],[0,8031,0],0,0,0,0,0,0,0,0],[0,[0,OR,0],[0,Hr,0],[0,nD,0],[0,vR,0],[0,Lf,0],[0,Kf,0],[0,Jd,0],[0,Cs,0],0,0,0,0,0,0,0,0],[0,[0,8122,0],[0,8123,0],[0,8136,0],[0,8137,0],[0,8138,0],[0,8139,0],[0,8154,0],[0,8155,0],[0,8184,0],[0,8185,0],[0,8170,0],[0,8171,0],[0,8186,0],[0,8187,0],0,0],[0,[0,GA,[0,Ks,0]],[0,rq,[0,Ks,0]],[0,dg,[0,Ks,0]],[0,qr,[0,Ks,0]],[0,rj,[0,Ks,0]],[0,YB,[0,Ks,0]],[0,lg,[0,Ks,0]],[0,yK,[0,Ks,0]],[0,GA,[0,Ks,0]],[0,rq,[0,Ks,0]],[0,dg,[0,Ks,0]],[0,qr,[0,Ks,0]],[0,rj,[0,Ks,0]],[0,YB,[0,Ks,0]],[0,lg,[0,Ks,0]],[0,yK,[0,Ks,0]]],[0,[0,xv,[0,Ks,0]],[0,Bf,[0,Ks,0]],[0,Bx,[0,Ks,0]],[0,BO,[0,Ks,0]],[0,p_,[0,Ks,0]],[0,vU,[0,Ks,0]],[0,wk,[0,Ks,0]],[0,Vd,[0,Ks,0]],[0,xv,[0,Ks,0]],[0,Bf,[0,Ks,0]],[0,Bx,[0,Ks,0]],[0,BO,[0,Ks,0]],[0,p_,[0,Ks,0]],[0,vU,[0,Ks,0]],[0,wk,[0,Ks,0]],[0,Vd,[0,Ks,0]]],[0,[0,OR,[0,Ks,0]],[0,Hr,[0,Ks,0]],[0,nD,[0,Ks,0]],[0,vR,[0,Ks,0]],[0,Lf,[0,Ks,0]],[0,Kf,[0,Ks,0]],[0,Jd,[0,Ks,0]],[0,Cs,[0,Ks,0]],[0,OR,[0,Ks,0]],[0,Hr,[0,Ks,0]],[0,nD,[0,Ks,0]],[0,vR,[0,Ks,0]],[0,Lf,[0,Ks,0]],[0,Kf,[0,Ks,0]],[0,Jd,[0,Ks,0]],[0,Cs,[0,Ks,0]]],[0,[0,8120,0],[0,8121,0],[0,8122,[0,Ks,0]],[0,iw,[0,Ks,0]],[0,902,[0,Ks,0]],0,[0,iw,[0,XF,0]],[0,iw,[0,XF,[0,Ks,0]]],0,0,0,0,[0,iw,[0,Ks,0]],0,[0,Ks,0],0],[0,0,0,[0,8138,[0,Ks,0]],[0,nE,[0,Ks,0]],[0,905,[0,Ks,0]],0,[0,nE,[0,XF,0]],[0,nE,[0,XF,[0,Ks,0]]],0,0,0,0,[0,nE,[0,Ks,0]],0,0,0],[0,[0,8152,0],[0,8153,0],[0,Ks,[0,Vh,[0,768,0]]],[0,Ks,[0,Vh,[0,yj,0]]],0,0,[0,Ks,[0,XF,0]],[0,Ks,[0,Vh,[0,XF,0]]],0,0,0,0,0,0,0,0],[0,[0,8168,0],[0,8169,0],[0,qm,[0,Vh,[0,768,0]]],[0,qm,[0,Vh,[0,yj,0]]],[0,929,[0,YG,0]],[0,8172,0],[0,qm,[0,XF,0]],[0,qm,[0,Vh,[0,XF,0]]],0,0,0,0,0,0,0,0],[0,0,0,[0,8186,[0,Ks,0]],[0,Nc,[0,Ks,0]],[0,911,[0,Ks,0]],0,[0,Nc,[0,XF,0]],[0,Nc,[0,XF,[0,Ks,0]]],0,0,0,0,[0,Nc,[0,Ks,0]],0,0,0]],[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,8498,0],0],slt,slt,[0,[0,8544,0],[0,8545,0],[0,8546,0],[0,8547,0],[0,8548,0],[0,8549,0],[0,8550,0],[0,8551,0],[0,8552,0],[0,8553,0],[0,8554,0],[0,8555,0],[0,8556,0],[0,8557,0],[0,8558,0],[0,8559,0]],[0,0,0,0,0,[0,8579,0],0,0,0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,9398,0],[0,9399,0],[0,9400,0],[0,9401,0],[0,9402,0],[0,9403,0],[0,9404,0],[0,9405,0],[0,9406,0],[0,9407,0],[0,9408,0],[0,9409,0],[0,9410,0],[0,9411,0],[0,9412,0],[0,9413,0]],[0,[0,9414,0],[0,9415,0],[0,9416,0],[0,9417,0],[0,9418,0],[0,9419,0],[0,9420,0],[0,9421,0],[0,9422,0],[0,9423,0],0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,11264,0],[0,11265,0],[0,11266,0],[0,11267,0],[0,11268,0],[0,11269,0],[0,11270,0],[0,11271,0],[0,11272,0],[0,11273,0],[0,11274,0],[0,11275,0],[0,11276,0],[0,11277,0],[0,11278,0],[0,11279,0]],[0,[0,11280,0],[0,11281,0],[0,11282,0],[0,11283,0],[0,11284,0],[0,11285,0],[0,11286,0],[0,11287,0],[0,11288,0],[0,11289,0],[0,11290,0],[0,11291,0],[0,11292,0],[0,11293,0],[0,11294,0],[0,11295,0]],[0,[0,11296,0],[0,11297,0],[0,11298,0],[0,11299,0],[0,11300,0],[0,11301,0],[0,11302,0],[0,11303,0],[0,11304,0],[0,11305,0],[0,11306,0],[0,11307,0],[0,11308,0],[0,11309,0],[0,11310,0],[0,11311,0]],[0,0,[0,11360,0],0,0,0,[0,570,0],[0,574,0],0,[0,11367,0],0,[0,11369,0],0,[0,11371,0],0,0,0],[0,0,0,0,[0,11378,0],0,0,[0,11381,0],0,0,0,0,0,0,0,0,0],[0,0,[0,11392,0],0,[0,11394,0],0,[0,11396,0],0,[0,11398,0],0,[0,11400,0],0,[0,11402,0],0,[0,11404,0],0,[0,11406,0]],[0,0,[0,11408,0],0,[0,11410,0],0,[0,11412,0],0,[0,11414,0],0,[0,11416,0],0,[0,11418,0],0,[0,11420,0],0,[0,11422,0]],[0,0,[0,11424,0],0,[0,11426,0],0,[0,11428,0],0,[0,11430,0],0,[0,11432,0],0,[0,11434,0],0,[0,11436,0],0,[0,11438,0]],[0,0,[0,11440,0],0,[0,11442,0],0,[0,11444,0],0,[0,11446,0],0,[0,11448,0],0,[0,11450,0],0,[0,11452,0],0,[0,11454,0]],[0,0,[0,11456,0],0,[0,11458,0],0,[0,11460,0],0,[0,11462,0],0,[0,11464,0],0,[0,11466,0],0,[0,11468,0],0,[0,11470,0]],[0,0,[0,11472,0],0,[0,11474,0],0,[0,11476,0],0,[0,11478,0],0,[0,11480,0],0,[0,11482,0],0,[0,11484,0],0,[0,11486,0]],[0,0,[0,11488,0],0,[0,11490,0],0,0,0,0,0,0,0,0,[0,11499,0],0,[0,11501,0],0],[0,0,0,0,[0,11506,0],0,0,0,0,0,0,0,0,0,0,0,0],[0,[0,4256,0],[0,4257,0],[0,4258,0],[0,4259,0],[0,4260,0],[0,4261,0],[0,4262,0],[0,4263,0],[0,4264,0],[0,4265,0],[0,4266,0],[0,4267,0],[0,4268,0],[0,4269,0],[0,4270,0],[0,4271,0]],[0,[0,4272,0],[0,4273,0],[0,4274,0],[0,4275,0],[0,4276,0],[0,4277,0],[0,4278,0],[0,4279,0],[0,4280,0],[0,4281,0],[0,4282,0],[0,4283,0],[0,4284,0],[0,4285,0],[0,4286,0],[0,4287,0]],[0,[0,4288,0],[0,4289,0],[0,4290,0],[0,4291,0],[0,4292,0],[0,4293,0],0,[0,4295,0],0,0,0,0,0,[0,4301,0],0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],slt,slt,slt,slt,slt,slt,slt,[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,0,[0,42560,0],0,[0,42562,0],0,[0,42564,0],0,[0,42566,0],0,[0,42568,0],0,[0,42570,0],0,[0,42572,0],0,[0,42574,0]],[0,0,[0,42576,0],0,[0,42578,0],0,[0,42580,0],0,[0,42582,0],0,[0,42584,0],0,[0,42586,0],0,[0,42588,0],0,[0,42590,0]],[0,0,[0,42592,0],0,[0,42594,0],0,[0,42596,0],0,[0,42598,0],0,[0,42600,0],0,[0,42602,0],0,[0,42604,0],0,0],slt,[0,0,[0,42624,0],0,[0,42626,0],0,[0,42628,0],0,[0,42630,0],0,[0,42632,0],0,[0,42634,0],0,[0,42636,0],0,[0,42638,0]],[0,0,[0,42640,0],0,[0,42642,0],0,[0,42644,0],0,[0,42646,0],0,[0,42648,0],0,[0,42650,0],0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,[0,0,0,0,[0,42786,0],0,[0,42788,0],0,[0,42790,0],0,[0,42792,0],0,[0,42794,0],0,[0,42796,0],0,[0,42798,0]],[0,0,0,0,[0,42802,0],0,[0,42804,0],0,[0,42806,0],0,[0,42808,0],0,[0,42810,0],0,[0,42812,0],0,[0,42814,0]],[0,0,[0,42816,0],0,[0,42818,0],0,[0,42820,0],0,[0,42822,0],0,[0,42824,0],0,[0,42826,0],0,[0,42828,0],0,[0,42830,0]],[0,0,[0,42832,0],0,[0,42834,0],0,[0,42836,0],0,[0,42838,0],0,[0,42840,0],0,[0,42842,0],0,[0,42844,0],0,[0,42846,0]],[0,0,[0,42848,0],0,[0,42850,0],0,[0,42852,0],0,[0,42854,0],0,[0,42856,0],0,[0,42858,0],0,[0,42860,0],0,[0,42862,0]],[0,0,0,0,0,0,0,0,0,0,0,[0,42873,0],0,[0,42875,0],0,0,[0,42878,0]],[0,0,[0,42880,0],0,[0,42882,0],0,[0,42884,0],0,[0,42886,0],0,0,0,0,[0,42891,0],0,0,0],[0,0,[0,42896,0],0,[0,42898,0],[0,42948,0],0,0,[0,42902,0],0,[0,42904,0],0,[0,42906,0],0,[0,42908,0],0,[0,42910,0]],[0,0,[0,42912,0],0,[0,42914,0],0,[0,42916,0],0,[0,42918,0],0,[0,42920,0],0,0,0,0,0,0],[0,0,0,0,0,0,[0,42932,0],0,[0,42934,0],0,[0,42936,0],0,[0,42938,0],0,[0,42940,0],0,[0,42942,0]],[0,0,[0,42944,0],0,[0,42946,0],0,0,0,0,[0,42951,0],0,[0,42953,0],0,0,[0,42956,0],0,[0,42958,0]],[0,0,[0,42960,0],0,[0,42962,0],0,[0,42964,0],0,[0,42966,0],0,[0,42968,0],0,[0,42970,0],0,0,0,0],slt,[0,0,0,0,0,0,0,[0,42997,0],0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,0,0,0,[0,42931,0],0,0,0,0,0,0,0,0,0,0,0,0],slt,[0,[0,5024,0],[0,5025,0],[0,5026,0],[0,5027,0],[0,5028,0],[0,5029,0],[0,5030,0],[0,5031,0],[0,5032,0],[0,5033,0],[0,5034,0],[0,5035,0],[0,5036,0],[0,5037,0],[0,5038,0],[0,5039,0]],[0,[0,5040,0],[0,5041,0],[0,5042,0],[0,5043,0],[0,5044,0],[0,5045,0],[0,5046,0],[0,5047,0],[0,5048,0],[0,5049,0],[0,5050,0],[0,5051,0],[0,5052,0],[0,5053,0],[0,5054,0],[0,5055,0]],[0,[0,5056,0],[0,5057,0],[0,5058,0],[0,5059,0],[0,5060,0],[0,5061,0],[0,5062,0],[0,5063,0],[0,5064,0],[0,5065,0],[0,5066,0],[0,5067,0],[0,5068,0],[0,5069,0],[0,5070,0],[0,5071,0]],[0,[0,5072,0],[0,5073,0],[0,5074,0],[0,5075,0],[0,5076,0],[0,5077,0],[0,5078,0],[0,5079,0],[0,5080,0],[0,5081,0],[0,5082,0],[0,5083,0],[0,5084,0],[0,5085,0],[0,5086,0],[0,5087,0]],[0,[0,5088,0],[0,5089,0],[0,5090,0],[0,5091,0],[0,5092,0],[0,5093,0],[0,5094,0],[0,5095,0],[0,5096,0],[0,5097,0],[0,5098,0],[0,5099,0],[0,5100,0],[0,5101,0],[0,5102,0],[0,5103,0]],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],slt,slt,slt,slt,[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,70,[0,70,0]],[0,70,[0,73,0]],[0,70,[0,76,0]],[0,70,[0,70,[0,73,0]]],[0,70,[0,70,[0,76,0]]],[0,83,[0,84,0]],[0,83,[0,84,0]],0,0,0,0,0,0,0,0,0],[0,0,0,0,[0,mn,[0,Za,0]],[0,mn,[0,Qx,0]],[0,mn,[0,1339,0]],[0,1358,[0,Za,0]],[0,mn,[0,1341,0]],0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,0,[0,65313,0],[0,65314,0],[0,65315,0],[0,65316,0],[0,65317,0],[0,65318,0],[0,65319,0],[0,65320,0],[0,65321,0],[0,65322,0],[0,65323,0],[0,65324,0],[0,65325,0],[0,65326,0],[0,65327,0]],[0,[0,65328,0],[0,65329,0],[0,65330,0],[0,65331,0],[0,65332,0],[0,65333,0],[0,65334,0],[0,65335,0],[0,65336,0],[0,65337,0],[0,65338,0],0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,0,0,0,0,0,0,0,0,[0,66560,0],[0,66561,0],[0,66562,0],[0,66563,0],[0,66564,0],[0,66565,0],[0,66566,0],[0,66567,0]],[0,[0,66568,0],[0,66569,0],[0,66570,0],[0,66571,0],[0,66572,0],[0,66573,0],[0,66574,0],[0,66575,0],[0,66576,0],[0,66577,0],[0,66578,0],[0,66579,0],[0,66580,0],[0,66581,0],[0,66582,0],[0,66583,0]],[0,[0,66584,0],[0,66585,0],[0,66586,0],[0,66587,0],[0,66588,0],[0,66589,0],[0,66590,0],[0,66591,0],[0,66592,0],[0,66593,0],[0,66594,0],[0,66595,0],[0,66596,0],[0,66597,0],[0,66598,0],[0,66599,0]],slt,slt,slt,slt,slt,slt,slt,slt,[0,0,0,0,0,0,0,0,0,[0,66736,0],[0,66737,0],[0,66738,0],[0,66739,0],[0,66740,0],[0,66741,0],[0,66742,0],[0,66743,0]],[0,[0,66744,0],[0,66745,0],[0,66746,0],[0,66747,0],[0,66748,0],[0,66749,0],[0,66750,0],[0,66751,0],[0,66752,0],[0,66753,0],[0,66754,0],[0,66755,0],[0,66756,0],[0,66757,0],[0,66758,0],[0,66759,0]],[0,[0,66760,0],[0,66761,0],[0,66762,0],[0,66763,0],[0,66764,0],[0,66765,0],[0,66766,0],[0,66767,0],[0,66768,0],[0,66769,0],[0,66770,0],[0,66771,0],0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,0,0,0,0,0,0,0,[0,66928,0],[0,66929,0],[0,66930,0],[0,66931,0],[0,66932,0],[0,66933,0],[0,66934,0],[0,66935,0],[0,66936,0]],[0,[0,66937,0],[0,66938,0],0,[0,66940,0],[0,66941,0],[0,66942,0],[0,66943,0],[0,66944,0],[0,66945,0],[0,66946,0],[0,66947,0],[0,66948,0],[0,66949,0],[0,66950,0],[0,66951,0],[0,66952,0]],[0,[0,66953,0],[0,66954,0],0,[0,66956,0],[0,66957,0],[0,66958,0],[0,66959,0],[0,66960,0],[0,66961,0],[0,66962,0],0,[0,66964,0],[0,66965,0],0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,68736,0],[0,68737,0],[0,68738,0],[0,68739,0],[0,68740,0],[0,68741,0],[0,68742,0],[0,68743,0],[0,68744,0],[0,68745,0],[0,68746,0],[0,68747,0],[0,68748,0],[0,68749,0],[0,68750,0],[0,68751,0]],[0,[0,68752,0],[0,68753,0],[0,68754,0],[0,68755,0],[0,68756,0],[0,68757,0],[0,68758,0],[0,68759,0],[0,68760,0],[0,68761,0],[0,68762,0],[0,68763,0],[0,68764,0],[0,68765,0],[0,68766,0],[0,68767,0]],[0,[0,68768,0],[0,68769,0],[0,68770,0],[0,68771,0],[0,68772,0],[0,68773,0],[0,68774,0],[0,68775,0],[0,68776,0],[0,68777,0],[0,68778,0],[0,68779,0],[0,68780,0],[0,68781,0],[0,68782,0],[0,68783,0]],[0,[0,68784,0],[0,68785,0],[0,68786,0],0,0,0,0,0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,[0,[0,68944,0],[0,68945,0],[0,68946,0],[0,68947,0],[0,68948,0],[0,68949,0],[0,68950,0],[0,68951,0],[0,68952,0],[0,68953,0],[0,68954,0],[0,68955,0],[0,68956,0],[0,68957,0],[0,68958,0],[0,68959,0]],[0,[0,68960,0],[0,68961,0],[0,68962,0],[0,68963,0],[0,68964,0],[0,68965,0],0,0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,71840,0],[0,71841,0],[0,71842,0],[0,71843,0],[0,71844,0],[0,71845,0],[0,71846,0],[0,71847,0],[0,71848,0],[0,71849,0],[0,71850,0],[0,71851,0],[0,71852,0],[0,71853,0],[0,71854,0],[0,71855,0]],[0,[0,71856,0],[0,71857,0],[0,71858,0],[0,71859,0],[0,71860,0],[0,71861,0],[0,71862,0],[0,71863,0],[0,71864,0],[0,71865,0],[0,71866,0],[0,71867,0],[0,71868,0],[0,71869,0],[0,71870,0],[0,71871,0]],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],slt,slt,slt,slt,[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,93760,0],[0,93761,0],[0,93762,0],[0,93763,0],[0,93764,0],[0,93765,0],[0,93766,0],[0,93767,0],[0,93768,0],[0,93769,0],[0,93770,0],[0,93771,0],[0,93772,0],[0,93773,0],[0,93774,0],[0,93775,0]],[0,[0,93776,0],[0,93777,0],[0,93778,0],[0,93779,0],[0,93780,0],[0,93781,0],[0,93782,0],[0,93783,0],[0,93784,0],[0,93785,0],[0,93786,0],[0,93787,0],[0,93788,0],[0,93789,0],[0,93790,0],[0,93791,0]],slt,slt,slt,[0,0,0,0,0,0,0,0,0,0,0,0,[0,93856,0],[0,93857,0],[0,93858,0],[0,93859,0],[0,93860,0]],[0,[0,93861,0],[0,93862,0],[0,93863,0],[0,93864,0],[0,93865,0],[0,93866,0],[0,93867,0],[0,93868,0],[0,93869,0],[0,93870,0],[0,93871,0],[0,93872,0],[0,93873,0],[0,93874,0],[0,93875,0],[0,93876,0]],[0,[0,93877,0],[0,93878,0],[0,93879,0],[0,93880,0],0,0,0,0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],slt,slt,slt,slt,slt,slt,slt,[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,0,0,[0,125184,0],[0,125185,0],[0,125186,0],[0,125187,0],[0,125188,0],[0,125189,0],[0,125190,0],[0,125191,0],[0,125192,0],[0,125193,0],[0,125194,0],[0,125195,0],[0,125196,0],[0,125197,0]],[0,[0,125198,0],[0,125199,0],[0,125200,0],[0,125201,0],[0,125202,0],[0,125203,0],[0,125204,0],[0,125205,0],[0,125206,0],[0,125207,0],[0,125208,0],[0,125209,0],[0,125210,0],[0,125211,0],[0,125212,0],[0,125213,0]],[0,[0,125214,0],[0,125215,0],[0,125216,0],[0,125217,0],0,0,0,0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt]],QTt=[0,0,[0,[0,slt,slt,slt,slt,[0,0,[0,97,0],[0,98,0],[0,99,0],[0,T$,0],[0,gq,0],[0,Ul,0],[0,E$,0],[0,ZA,0],[0,os,0],[0,bk,0],[0,pb,0],[0,ZN,0],[0,FT,0],[0,Wr,0],[0,rh,0]],[0,[0,Jn,0],[0,aK,0],[0,Zc,0],[0,xp,0],[0,fM,0],[0,A$,0],[0,LP,0],[0,uw,0],[0,WP,0],[0,VP,0],[0,Ux,0],0,0,0,0,0],slt,slt,slt,slt,slt,slt,[0,[0,Bs,0],[0,225,0],[0,Ao,0],[0,227,0],[0,Rn,0],[0,IP,0],[0,VO,0],[0,MB,0],[0,232,0],[0,233,0],[0,234,0],[0,235,0],[0,Oi,0],[0,237,0],[0,238,0],[0,nd,0]],[0,[0,Jj,0],[0,Lk,0],[0,242,0],[0,zw,0],[0,D,0],[0,Ok,0],[0,W,0],0,[0,Gl,0],[0,249,0],[0,ae,0],[0,uq,0],[0,cc,0],[0,p$,0],[0,JB,0],0],slt,slt,[0,[0,YT,0],0,[0,259,0],0,[0,FF,0],0,[0,263,0],0,[0,265,0],0,[0,267,0],0,[0,269,0],0,[0,271,0],0],[0,[0,273,0],0,[0,275,0],0,[0,xd,0],0,[0,279,0],0,[0,281,0],0,[0,283,0],0,[0,285,0],0,[0,wf,0],0],[0,[0,zx,0],0,[0,291,0],0,[0,293,0],0,[0,295,0],0,[0,uk,0],0,[0,299,0],0,[0,ag,0],0,[0,303,0],0],[0,[0,os,[0,775,0]],0,[0,UE,0],0,[0,Sp,0],0,[0,311,0],0,0,[0,314,0],0,[0,_m,0],0,[0,318,0],0,[0,320,0]],[0,0,[0,Qr,0],0,[0,bB,0],0,[0,326,0],0,[0,CK,0],0,0,[0,th,0],0,[0,333,0],0,[0,335,0],0],[0,[0,337,0],0,[0,339,0],0,[0,Wj,0],0,[0,zq,0],0,[0,en,0],0,[0,347,0],0,[0,349,0],0,[0,351,0],0],[0,[0,353,0],0,[0,355,0],0,[0,yt,0],0,[0,Ll,0],0,[0,361,0],0,[0,GE,0],0,[0,365,0],0,[0,367,0],0],[0,[0,369,0],0,[0,371,0],0,[0,bR,0],0,[0,gE,0],0,[0,LK,0],[0,378,0],0,[0,to,0],0,[0,us,0],0,0],[0,0,[0,595,0],[0,387,0],0,[0,389,0],0,[0,596,0],[0,eB,0],0,[0,598,0],[0,599,0],[0,396,0],0,0,[0,477,0],[0,601,0]],[0,[0,603,0],[0,kO,0],0,[0,608,0],[0,611,0],0,[0,617,0],[0,616,0],[0,lT,0],0,0,0,[0,623,0],[0,626,0],0,[0,629,0]],[0,[0,417,0],0,[0,419,0],0,[0,421,0],0,[0,640,0],[0,ew,0],0,[0,643,0],0,0,[0,429,0],0,[0,648,0],[0,432,0]],[0,0,[0,650,0],[0,651,0],[0,436,0],0,[0,zA,0],0,[0,658,0],[0,dx,0],0,0,0,[0,TK,0],0,0,0],[0,0,0,0,0,[0,yu,0],[0,yu,0],0,[0,457,0],[0,457,0],0,[0,pI,0],[0,pI,0],0,[0,462,0],0,[0,464,0]],[0,0,[0,fc,0],0,[0,468,0],0,[0,470,0],0,[0,xD,0],0,[0,UK,0],0,[0,476,0],0,0,[0,479,0],0],[0,[0,481,0],0,[0,483,0],0,[0,485,0],0,[0,487,0],0,[0,eN,0],0,[0,491,0],0,[0,493,0],0,[0,495,0],0],[0,0,[0,Ag,0],[0,Ag,0],0,[0,501,0],0,[0,hr,0],[0,447,0],[0,505,0],0,[0,507,0],0,[0,509,0],0,[0,xa,0],0],[0,[0,513,0],0,[0,515,0],0,[0,517,0],0,[0,519,0],0,[0,521,0],0,[0,523,0],0,[0,525,0],0,[0,527,0],0],[0,[0,529,0],0,[0,531,0],0,[0,533,0],0,[0,535,0],0,[0,537,0],0,[0,539,0],0,[0,541,0],0,[0,543,0],0],[0,[0,414,0],0,[0,547,0],0,[0,549,0],0,[0,551,0],0,[0,553,0],0,[0,555,0],0,[0,557,0],0,[0,559,0],0],[0,[0,561,0],0,[0,563,0],0,0,0,0,0,0,0,[0,11365,0],[0,572,0],0,[0,410,0],[0,11366,0],0],[0,0,[0,578,0],0,[0,iR,0],[0,649,0],[0,652,0],[0,583,0],0,[0,585,0],0,[0,587,0],0,[0,589,0],0,[0,591,0],0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,881,0],0,[0,883,0],0,0,0,[0,887,0],0,0,0,0,0,0,0,0,[0,1011,0]],[0,0,0,0,0,0,0,[0,940,0],0,[0,941,0],[0,942,0],[0,943,0],0,[0,972,0],0,[0,973,0],[0,974,0]],[0,0,[0,945,0],[0,946,0],[0,947,0],[0,948,0],[0,949,0],[0,950,0],[0,951,0],[0,952,0],[0,953,0],[0,954,0],[0,955,0],[0,956,0],[0,957,0],[0,958,0],[0,959,0]],[0,[0,960,0],[0,961,0],0,[0,963,0],[0,964,0],[0,965,0],[0,966,0],[0,967,0],[0,968,0],[0,969,0],[0,970,0],[0,971,0],0,0,0,0],slt,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,983,0]],[0,0,0,0,0,0,0,0,0,[0,985,0],0,[0,987,0],0,[0,989,0],0,[0,991,0],0],[0,[0,993,0],0,[0,995,0],0,[0,997,0],0,[0,JP,0],0,[0,1001,0],0,[0,1003,0],0,[0,1005,0],0,[0,1007,0],0],[0,0,0,0,0,[0,952,0],0,0,[0,1016,0],0,[0,1010,0],[0,1019,0],0,0,[0,891,0],[0,892,0],[0,893,0]],[0,[0,1104,0],[0,1105,0],[0,1106,0],[0,1107,0],[0,1108,0],[0,1109,0],[0,1110,0],[0,1111,0],[0,1112,0],[0,1113,0],[0,1114,0],[0,1115,0],[0,1116,0],[0,1117,0],[0,1118,0],[0,1119,0]],[0,[0,1072,0],[0,1073,0],[0,1074,0],[0,1075,0],[0,1076,0],[0,1077,0],[0,1078,0],[0,1079,0],[0,JT,0],[0,1081,0],[0,1082,0],[0,1083,0],[0,1084,0],[0,1085,0],[0,1086,0],[0,zM,0]],[0,[0,1088,0],[0,1089,0],[0,1090,0],[0,1091,0],[0,1092,0],[0,1093,0],[0,1094,0],[0,1095,0],[0,1096,0],[0,1097,0],[0,1098,0],[0,1099,0],[0,1100,0],[0,1101,0],[0,1102,0],[0,1103,0]],slt,slt,slt,[0,[0,1121,0],0,[0,1123,0],0,[0,1125,0],0,[0,1127,0],0,[0,1129,0],0,[0,1131,0],0,[0,1133,0],0,[0,1135,0],0],[0,[0,1137,0],0,[0,1139,0],0,[0,1141,0],0,[0,1143,0],0,[0,1145,0],0,[0,1147,0],0,[0,1149,0],0,[0,1151,0],0],[0,[0,1153,0],0,0,0,0,0,0,0,0,0,[0,1163,0],0,[0,1165,0],0,[0,1167,0],0],[0,[0,1169,0],0,[0,1171,0],0,[0,1173,0],0,[0,1175,0],0,[0,1177,0],0,[0,1179,0],0,[0,1181,0],0,[0,1183,0],0],[0,[0,1185,0],0,[0,1187,0],0,[0,1189,0],0,[0,1191,0],0,[0,1193,0],0,[0,1195,0],0,[0,1197,0],0,[0,1199,0],0],[0,[0,1201,0],0,[0,1203,0],0,[0,1205,0],0,[0,1207,0],0,[0,1209,0],0,[0,1211,0],0,[0,1213,0],0,[0,1215,0],0],[0,[0,1231,0],[0,1218,0],0,[0,1220,0],0,[0,1222,0],0,[0,1224,0],0,[0,1226,0],0,[0,1228,0],0,[0,1230,0],0,0],[0,[0,1233,0],0,[0,1235,0],0,[0,1237,0],0,[0,1239,0],0,[0,1241,0],0,[0,1243,0],0,[0,1245,0],0,[0,1247,0],0],[0,[0,1249,0],0,[0,1251,0],0,[0,1253,0],0,[0,ea,0],0,[0,1257,0],0,[0,1259,0],0,[0,1261,0],0,[0,1263,0],0],[0,[0,1265,0],0,[0,1267,0],0,[0,1269,0],0,[0,1271,0],0,[0,1273,0],0,[0,1275,0],0,[0,1277,0],0,[0,1279,0],0],[0,[0,1281,0],0,[0,1283,0],0,[0,1285,0],0,[0,1287,0],0,[0,1289,0],0,[0,1291,0],0,[0,1293,0],0,[0,1295,0],0],[0,[0,1297,0],0,[0,1299,0],0,[0,1301,0],0,[0,1303,0],0,[0,1305,0],0,[0,1307,0],0,[0,1309,0],0,[0,1311,0],0],[0,[0,1313,0],0,[0,1315,0],0,[0,1317,0],0,[0,1319,0],0,[0,1321,0],0,[0,1323,0],0,[0,1325,0],0,[0,1327,0],0],[0,0,[0,1377,0],[0,1378,0],[0,1379,0],[0,1380,0],[0,1381,0],[0,1382,0],[0,1383,0],[0,1384,0],[0,1385,0],[0,1386,0],[0,1387,0],[0,1388,0],[0,1389,0],[0,1390,0],[0,1391,0]],[0,[0,1392,0],[0,1393,0],[0,1394,0],[0,1395,0],[0,1396,0],[0,1397,0],[0,1398,0],[0,1399,0],[0,1400,0],[0,1401,0],[0,1402,0],[0,1403,0],[0,1404,0],[0,1405,0],[0,1406,0],[0,1407,0]],[0,[0,1408,0],[0,1409,0],[0,1410,0],[0,1411,0],[0,1412,0],[0,1413,0],[0,1414,0],0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,11520,0],[0,11521,0],[0,11522,0],[0,11523,0],[0,11524,0],[0,11525,0],[0,11526,0],[0,11527,0],[0,11528,0],[0,11529,0],[0,11530,0],[0,11531,0],[0,11532,0],[0,11533,0],[0,11534,0],[0,11535,0]],[0,[0,11536,0],[0,11537,0],[0,11538,0],[0,11539,0],[0,11540,0],[0,11541,0],[0,11542,0],[0,11543,0],[0,11544,0],[0,11545,0],[0,11546,0],[0,11547,0],[0,11548,0],[0,11549,0],[0,11550,0],[0,11551,0]],[0,[0,11552,0],[0,11553,0],[0,11554,0],[0,11555,0],[0,11556,0],[0,11557,0],0,[0,11559,0],0,0,0,0,0,[0,11565,0],0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,43888,0],[0,43889,0],[0,43890,0],[0,43891,0],[0,43892,0],[0,43893,0],[0,43894,0],[0,43895,0],[0,43896,0],[0,43897,0],[0,43898,0],[0,43899,0],[0,43900,0],[0,43901,0],[0,43902,0],[0,43903,0]],[0,[0,43904,0],[0,43905,0],[0,43906,0],[0,43907,0],[0,43908,0],[0,43909,0],[0,43910,0],[0,43911,0],[0,43912,0],[0,43913,0],[0,43914,0],[0,43915,0],[0,43916,0],[0,43917,0],[0,43918,0],[0,43919,0]],[0,[0,43920,0],[0,43921,0],[0,43922,0],[0,43923,0],[0,43924,0],[0,43925,0],[0,43926,0],[0,43927,0],[0,43928,0],[0,43929,0],[0,43930,0],[0,43931,0],[0,43932,0],[0,43933,0],[0,43934,0],[0,43935,0]],[0,[0,43936,0],[0,43937,0],[0,43938,0],[0,43939,0],[0,43940,0],[0,43941,0],[0,43942,0],[0,43943,0],[0,43944,0],[0,43945,0],[0,43946,0],[0,43947,0],[0,43948,0],[0,43949,0],[0,43950,0],[0,43951,0]],[0,[0,43952,0],[0,43953,0],[0,43954,0],[0,43955,0],[0,43956,0],[0,43957,0],[0,43958,0],[0,43959,0],[0,43960,0],[0,43961,0],[0,43962,0],[0,43963,0],[0,43964,0],[0,43965,0],[0,43966,0],[0,43967,0]],[0,[0,5112,0],[0,5113,0],[0,5114,0],[0,5115,0],[0,5116,0],[0,5117,0],0,0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,0,0,0,0,0,0,0,0,0,[0,7306,0],0,0,0,0,0,0],[0,[0,4304,0],[0,4305,0],[0,4306,0],[0,4307,0],[0,4308,0],[0,4309,0],[0,4310,0],[0,4311,0],[0,4312,0],[0,4313,0],[0,4314,0],[0,4315,0],[0,4316,0],[0,4317,0],[0,4318,0],[0,4319,0]],[0,[0,4320,0],[0,4321,0],[0,4322,0],[0,4323,0],[0,4324,0],[0,4325,0],[0,4326,0],[0,4327,0],[0,4328,0],[0,4329,0],[0,4330,0],[0,4331,0],[0,4332,0],[0,4333,0],[0,4334,0],[0,4335,0]],[0,[0,4336,0],[0,4337,0],[0,4338,0],[0,4339,0],[0,4340,0],[0,4341,0],[0,4342,0],[0,4343,0],[0,4344,0],[0,4345,0],[0,4346,0],0,0,[0,4349,0],[0,4350,0],[0,4351,0]],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,7681,0],0,[0,7683,0],0,[0,7685,0],0,[0,7687,0],0,[0,7689,0],0,[0,7691,0],0,[0,7693,0],0,[0,7695,0],0],[0,[0,7697,0],0,[0,7699,0],0,[0,7701,0],0,[0,7703,0],0,[0,7705,0],0,[0,7707,0],0,[0,7709,0],0,[0,7711,0],0],[0,[0,7713,0],0,[0,7715,0],0,[0,7717,0],0,[0,7719,0],0,[0,7721,0],0,[0,7723,0],0,[0,7725,0],0,[0,7727,0],0],[0,[0,7729,0],0,[0,7731,0],0,[0,7733,0],0,[0,7735,0],0,[0,7737,0],0,[0,7739,0],0,[0,7741,0],0,[0,7743,0],0],[0,[0,7745,0],0,[0,7747,0],0,[0,7749,0],0,[0,7751,0],0,[0,7753,0],0,[0,7755,0],0,[0,7757,0],0,[0,7759,0],0],[0,[0,7761,0],0,[0,7763,0],0,[0,7765,0],0,[0,7767,0],0,[0,7769,0],0,[0,7771,0],0,[0,7773,0],0,[0,7775,0],0],[0,[0,7777,0],0,[0,7779,0],0,[0,7781,0],0,[0,7783,0],0,[0,7785,0],0,[0,7787,0],0,[0,7789,0],0,[0,7791,0],0],[0,[0,7793,0],0,[0,7795,0],0,[0,7797,0],0,[0,7799,0],0,[0,7801,0],0,[0,7803,0],0,[0,7805,0],0,[0,7807,0],0],[0,[0,7809,0],0,[0,7811,0],0,[0,7813,0],0,[0,7815,0],0,[0,7817,0],0,[0,7819,0],0,[0,7821,0],0,[0,7823,0],0],[0,[0,7825,0],0,[0,7827,0],0,[0,7829,0],0,0,0,0,0,0,0,0,0,[0,Ma,0],0],[0,[0,7841,0],0,[0,7843,0],0,[0,7845,0],0,[0,7847,0],0,[0,7849,0],0,[0,7851,0],0,[0,7853,0],0,[0,7855,0],0],[0,[0,7857,0],0,[0,7859,0],0,[0,7861,0],0,[0,7863,0],0,[0,7865,0],0,[0,7867,0],0,[0,7869,0],0,[0,7871,0],0],[0,[0,7873,0],0,[0,7875,0],0,[0,7877,0],0,[0,7879,0],0,[0,7881,0],0,[0,7883,0],0,[0,7885,0],0,[0,7887,0],0],[0,[0,7889,0],0,[0,7891,0],0,[0,7893,0],0,[0,7895,0],0,[0,7897,0],0,[0,7899,0],0,[0,7901,0],0,[0,7903,0],0],[0,[0,7905,0],0,[0,7907,0],0,[0,7909,0],0,[0,7911,0],0,[0,7913,0],0,[0,7915,0],0,[0,7917,0],0,[0,7919,0],0],[0,[0,7921,0],0,[0,7923,0],0,[0,7925,0],0,[0,7927,0],0,[0,7929,0],0,[0,7931,0],0,[0,7933,0],0,[0,7935,0],0],[0,0,0,0,0,0,0,0,0,[0,7936,0],[0,7937,0],[0,7938,0],[0,7939,0],[0,7940,0],[0,7941,0],[0,7942,0],[0,7943,0]],[0,0,0,0,0,0,0,0,0,[0,7952,0],[0,7953,0],[0,7954,0],[0,7955,0],[0,7956,0],[0,7957,0],0,0],[0,0,0,0,0,0,0,0,0,[0,7968,0],[0,7969,0],[0,7970,0],[0,7971,0],[0,7972,0],[0,7973,0],[0,7974,0],[0,7975,0]],[0,0,0,0,0,0,0,0,0,[0,7984,0],[0,7985,0],[0,7986,0],[0,7987,0],[0,7988,0],[0,7989,0],[0,7990,0],[0,7991,0]],[0,0,0,0,0,0,0,0,0,[0,8e3,0],[0,8001,0],[0,8002,0],[0,8003,0],[0,8004,0],[0,8005,0],0,0],[0,0,0,0,0,0,0,0,0,0,[0,8017,0],0,[0,8019,0],0,[0,8021,0],0,[0,8023,0]],[0,0,0,0,0,0,0,0,0,[0,8032,0],[0,8033,0],[0,8034,0],[0,8035,0],[0,8036,0],[0,8037,0],[0,8038,0],[0,8039,0]],slt,[0,0,0,0,0,0,0,0,0,[0,8064,0],[0,8065,0],[0,8066,0],[0,8067,0],[0,8068,0],[0,8069,0],[0,8070,0],[0,8071,0]],[0,0,0,0,0,0,0,0,0,[0,8080,0],[0,8081,0],[0,8082,0],[0,8083,0],[0,8084,0],[0,8085,0],[0,8086,0],[0,8087,0]],[0,0,0,0,0,0,0,0,0,[0,8096,0],[0,8097,0],[0,8098,0],[0,8099,0],[0,8100,0],[0,8101,0],[0,8102,0],[0,8103,0]],[0,0,0,0,0,0,0,0,0,[0,8112,0],[0,8113,0],[0,8048,0],[0,8049,0],[0,8115,0],0,0,0],[0,0,0,0,0,0,0,0,0,[0,8050,0],[0,8051,0],[0,8052,0],[0,8053,0],[0,8131,0],0,0,0],[0,0,0,0,0,0,0,0,0,[0,8144,0],[0,8145,0],[0,8054,0],[0,8055,0],0,0,0,0],[0,0,0,0,0,0,0,0,0,[0,8160,0],[0,8161,0],[0,8058,0],[0,8059,0],[0,8165,0],0,0,0],[0,0,0,0,0,0,0,0,0,[0,8056,0],[0,8057,0],[0,8060,0],[0,8061,0],[0,8179,0],0,0,0]],[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,0,0,0,0,0,0,[0,969,0],0,0,0,[0,pb,0],[0,IP,0],0,0,0,0],[0,0,0,[0,8526,0],0,0,0,0,0,0,0,0,0,0,0,0,0],slt,slt,[0,[0,8560,0],[0,8561,0],[0,8562,0],[0,8563,0],[0,8564,0],[0,8565,0],[0,8566,0],[0,8567,0],[0,8568,0],[0,8569,0],[0,8570,0],[0,8571,0],[0,8572,0],[0,8573,0],[0,8574,0],[0,8575,0]],slt,[0,0,0,0,[0,8580,0],0,0,0,0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,0,0,0,0,0,0,[0,9424,0],[0,9425,0],[0,9426,0],[0,9427,0],[0,9428,0],[0,9429,0],[0,9430,0],[0,9431,0],[0,9432,0],[0,9433,0]],[0,[0,9434,0],[0,9435,0],[0,9436,0],[0,9437,0],[0,9438,0],[0,9439,0],[0,9440,0],[0,9441,0],[0,9442,0],[0,9443,0],[0,9444,0],[0,9445,0],[0,9446,0],[0,9447,0],[0,9448,0],[0,9449,0]],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,11312,0],[0,11313,0],[0,11314,0],[0,11315,0],[0,11316,0],[0,11317,0],[0,11318,0],[0,11319,0],[0,11320,0],[0,11321,0],[0,11322,0],[0,11323,0],[0,11324,0],[0,11325,0],[0,11326,0],[0,11327,0]],[0,[0,11328,0],[0,11329,0],[0,11330,0],[0,11331,0],[0,11332,0],[0,11333,0],[0,11334,0],[0,11335,0],[0,11336,0],[0,11337,0],[0,11338,0],[0,11339,0],[0,11340,0],[0,11341,0],[0,11342,0],[0,11343,0]],[0,[0,11344,0],[0,11345,0],[0,11346,0],[0,11347,0],[0,11348,0],[0,11349,0],[0,11350,0],[0,11351,0],[0,11352,0],[0,11353,0],[0,11354,0],[0,11355,0],[0,11356,0],[0,11357,0],[0,11358,0],[0,11359,0]],slt,slt,slt,[0,[0,11361,0],0,[0,619,0],[0,7549,0],[0,637,0],0,0,[0,11368,0],0,[0,11370,0],0,[0,11372,0],0,[0,593,0],[0,625,0],[0,592,0]],[0,[0,594,0],0,[0,11379,0],0,0,[0,11382,0],0,0,0,0,0,0,0,0,[0,575,0],[0,576,0]],[0,[0,11393,0],0,[0,11395,0],0,[0,11397,0],0,[0,11399,0],0,[0,11401,0],0,[0,11403,0],0,[0,11405,0],0,[0,11407,0],0],[0,[0,11409,0],0,[0,11411,0],0,[0,11413,0],0,[0,11415,0],0,[0,11417,0],0,[0,11419,0],0,[0,11421,0],0,[0,11423,0],0],[0,[0,11425,0],0,[0,11427,0],0,[0,11429,0],0,[0,11431,0],0,[0,11433,0],0,[0,11435,0],0,[0,11437,0],0,[0,11439,0],0],[0,[0,11441,0],0,[0,11443,0],0,[0,11445,0],0,[0,11447,0],0,[0,11449,0],0,[0,11451,0],0,[0,11453,0],0,[0,11455,0],0],[0,[0,11457,0],0,[0,11459,0],0,[0,11461,0],0,[0,11463,0],0,[0,11465,0],0,[0,11467,0],0,[0,11469,0],0,[0,11471,0],0],[0,[0,11473,0],0,[0,11475,0],0,[0,11477,0],0,[0,11479,0],0,[0,11481,0],0,[0,11483,0],0,[0,11485,0],0,[0,11487,0],0],[0,[0,11489,0],0,[0,11491,0],0,0,0,0,0,0,0,0,[0,11500,0],0,[0,11502,0],0,0],[0,0,0,[0,11507,0],0,0,0,0,0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],slt,slt,slt,slt,slt,slt,slt,[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,42561,0],0,[0,42563,0],0,[0,42565,0],0,[0,42567,0],0,[0,42569,0],0,[0,42571,0],0,[0,42573,0],0,[0,42575,0],0],[0,[0,42577,0],0,[0,42579,0],0,[0,42581,0],0,[0,42583,0],0,[0,42585,0],0,[0,42587,0],0,[0,42589,0],0,[0,42591,0],0],[0,[0,42593,0],0,[0,42595,0],0,[0,42597,0],0,[0,42599,0],0,[0,42601,0],0,[0,42603,0],0,[0,42605,0],0,0,0],slt,[0,[0,42625,0],0,[0,42627,0],0,[0,42629,0],0,[0,42631,0],0,[0,42633,0],0,[0,42635,0],0,[0,42637,0],0,[0,42639,0],0],[0,[0,42641,0],0,[0,42643,0],0,[0,42645,0],0,[0,42647,0],0,[0,42649,0],0,[0,42651,0],0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,[0,0,0,[0,42787,0],0,[0,42789,0],0,[0,42791,0],0,[0,42793,0],0,[0,42795,0],0,[0,42797,0],0,[0,42799,0],0],[0,0,0,[0,42803,0],0,[0,42805,0],0,[0,42807,0],0,[0,42809,0],0,[0,42811,0],0,[0,42813,0],0,[0,42815,0],0],[0,[0,42817,0],0,[0,42819,0],0,[0,42821,0],0,[0,42823,0],0,[0,42825,0],0,[0,42827,0],0,[0,42829,0],0,[0,42831,0],0],[0,[0,42833,0],0,[0,42835,0],0,[0,42837,0],0,[0,42839,0],0,[0,42841,0],0,[0,42843,0],0,[0,42845,0],0,[0,42847,0],0],[0,[0,42849,0],0,[0,42851,0],0,[0,42853,0],0,[0,42855,0],0,[0,42857,0],0,[0,42859,0],0,[0,42861,0],0,[0,42863,0],0],[0,0,0,0,0,0,0,0,0,0,[0,42874,0],0,[0,42876,0],0,[0,7545,0],[0,42879,0],0],[0,[0,42881,0],0,[0,42883,0],0,[0,42885,0],0,[0,42887,0],0,0,0,0,[0,42892,0],0,[0,613,0],0,0],[0,[0,42897,0],0,[0,42899,0],0,0,0,[0,42903,0],0,[0,42905,0],0,[0,42907,0],0,[0,42909,0],0,[0,42911,0],0],[0,[0,42913,0],0,[0,42915,0],0,[0,42917,0],0,[0,42919,0],0,[0,42921,0],0,[0,614,0],[0,604,0],[0,609,0],[0,620,0],[0,618,0],0],[0,[0,670,0],[0,647,0],[0,669,0],[0,43859,0],[0,42933,0],0,[0,42935,0],0,[0,42937,0],0,[0,42939,0],0,[0,42941,0],0,[0,42943,0],0],[0,[0,42945,0],0,[0,42947,0],0,[0,42900,0],[0,642,0],[0,7566,0],[0,42952,0],0,[0,42954,0],0,[0,612,0],[0,42957,0],0,[0,42959,0],0],[0,[0,42961,0],0,[0,42963,0],0,[0,42965,0],0,[0,42967,0],0,[0,42969,0],0,[0,42971,0],0,[0,411,0],0,0,0],slt,[0,0,0,0,0,0,[0,42998,0],0,0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],slt,slt,slt,slt,[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,0,[0,65345,0],[0,65346,0],[0,65347,0],[0,65348,0],[0,65349,0],[0,65350,0],[0,65351,0],[0,65352,0],[0,65353,0],[0,65354,0],[0,65355,0],[0,65356,0],[0,65357,0],[0,65358,0],[0,65359,0]],[0,[0,65360,0],[0,65361,0],[0,65362,0],[0,65363,0],[0,65364,0],[0,65365,0],[0,65366,0],[0,65367,0],[0,65368,0],[0,65369,0],[0,65370,0],0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,66600,0],[0,66601,0],[0,66602,0],[0,66603,0],[0,66604,0],[0,66605,0],[0,66606,0],[0,66607,0],[0,66608,0],[0,66609,0],[0,66610,0],[0,66611,0],[0,66612,0],[0,66613,0],[0,66614,0],[0,66615,0]],[0,[0,66616,0],[0,66617,0],[0,66618,0],[0,66619,0],[0,66620,0],[0,66621,0],[0,66622,0],[0,66623,0],[0,66624,0],[0,66625,0],[0,66626,0],[0,66627,0],[0,66628,0],[0,66629,0],[0,66630,0],[0,66631,0]],[0,[0,66632,0],[0,66633,0],[0,66634,0],[0,66635,0],[0,66636,0],[0,66637,0],[0,66638,0],[0,66639,0],0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,66776,0],[0,66777,0],[0,66778,0],[0,66779,0],[0,66780,0],[0,66781,0],[0,66782,0],[0,66783,0],[0,66784,0],[0,66785,0],[0,66786,0],[0,66787,0],[0,66788,0],[0,66789,0],[0,66790,0],[0,66791,0]],[0,[0,66792,0],[0,66793,0],[0,66794,0],[0,66795,0],[0,66796,0],[0,66797,0],[0,66798,0],[0,66799,0],[0,66800,0],[0,66801,0],[0,66802,0],[0,66803,0],[0,66804,0],[0,66805,0],[0,66806,0],[0,66807,0]],[0,[0,66808,0],[0,66809,0],[0,66810,0],[0,66811,0],0,0,0,0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,66967,0],[0,66968,0],[0,66969,0],[0,66970,0],[0,66971,0],[0,66972,0],[0,66973,0],[0,66974,0],[0,66975,0],[0,66976,0],[0,66977,0],0,[0,66979,0],[0,66980,0],[0,66981,0],[0,66982,0]],[0,[0,66983,0],[0,66984,0],[0,66985,0],[0,66986,0],[0,66987,0],[0,66988,0],[0,66989,0],[0,66990,0],[0,66991,0],[0,66992,0],[0,66993,0],0,[0,66995,0],[0,66996,0],[0,66997,0],[0,66998,0]],[0,[0,66999,0],[0,67e3,0],[0,67001,0],0,[0,67003,0],[0,67004,0],0,0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,68800,0],[0,68801,0],[0,68802,0],[0,68803,0],[0,68804,0],[0,68805,0],[0,68806,0],[0,68807,0],[0,68808,0],[0,68809,0],[0,68810,0],[0,68811,0],[0,68812,0],[0,68813,0],[0,68814,0],[0,68815,0]],[0,[0,68816,0],[0,68817,0],[0,68818,0],[0,68819,0],[0,68820,0],[0,68821,0],[0,68822,0],[0,68823,0],[0,68824,0],[0,68825,0],[0,68826,0],[0,68827,0],[0,68828,0],[0,68829,0],[0,68830,0],[0,68831,0]],[0,[0,68832,0],[0,68833,0],[0,68834,0],[0,68835,0],[0,68836,0],[0,68837,0],[0,68838,0],[0,68839,0],[0,68840,0],[0,68841,0],[0,68842,0],[0,68843,0],[0,68844,0],[0,68845,0],[0,68846,0],[0,68847,0]],[0,[0,68848,0],[0,68849,0],[0,68850,0],0,0,0,0,0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,68976,0],[0,68977,0],[0,68978,0],[0,68979,0],[0,68980,0],[0,68981,0],[0,68982,0],[0,68983,0],[0,68984,0],[0,68985,0],[0,68986,0],[0,68987,0],[0,68988,0],[0,68989,0],[0,68990,0],[0,68991,0]],[0,[0,68992,0],[0,68993,0],[0,68994,0],[0,68995,0],[0,68996,0],[0,68997,0],0,0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,71872,0],[0,71873,0],[0,71874,0],[0,71875,0],[0,71876,0],[0,71877,0],[0,71878,0],[0,71879,0],[0,71880,0],[0,71881,0],[0,71882,0],[0,71883,0],[0,71884,0],[0,71885,0],[0,71886,0],[0,71887,0]],[0,[0,71888,0],[0,71889,0],[0,71890,0],[0,71891,0],[0,71892,0],[0,71893,0],[0,71894,0],[0,71895,0],[0,71896,0],[0,71897,0],[0,71898,0],[0,71899,0],[0,71900,0],[0,71901,0],[0,71902,0],[0,71903,0]],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],slt,slt,slt,slt,[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,93792,0],[0,93793,0],[0,93794,0],[0,93795,0],[0,93796,0],[0,93797,0],[0,93798,0],[0,93799,0],[0,93800,0],[0,93801,0],[0,93802,0],[0,93803,0],[0,93804,0],[0,93805,0],[0,93806,0],[0,93807,0]],[0,[0,93808,0],[0,93809,0],[0,93810,0],[0,93811,0],[0,93812,0],[0,93813,0],[0,93814,0],[0,93815,0],[0,93816,0],[0,93817,0],[0,93818,0],[0,93819,0],[0,93820,0],[0,93821,0],[0,93822,0],[0,93823,0]],slt,slt,slt,slt,[0,[0,93883,0],[0,93884,0],[0,93885,0],[0,93886,0],[0,93887,0],[0,93888,0],[0,93889,0],[0,93890,0],[0,93891,0],[0,93892,0],[0,93893,0],[0,93894,0],[0,93895,0],[0,93896,0],[0,93897,0],[0,93898,0]],[0,[0,93899,0],[0,93900,0],[0,93901,0],[0,93902,0],[0,93903,0],[0,93904,0],[0,93905,0],[0,93906,0],[0,93907,0],0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],slt,slt,slt,slt,slt,slt,slt,[0,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,[0,[0,125218,0],[0,125219,0],[0,125220,0],[0,125221,0],[0,125222,0],[0,125223,0],[0,125224,0],[0,125225,0],[0,125226,0],[0,125227,0],[0,125228,0],[0,125229,0],[0,125230,0],[0,125231,0],[0,125232,0],[0,125233,0]],[0,[0,125234,0],[0,125235,0],[0,125236,0],[0,125237,0],[0,125238,0],[0,125239,0],[0,125240,0],[0,125241,0],[0,125242,0],[0,125243,0],[0,125244,0],[0,125245,0],[0,125246,0],[0,125247,0],[0,125248,0],[0,125249,0]],[0,[0,125250,0],[0,125251,0],0,0,0,0,0,0,0,0,0,0,0,0,0,0],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt],slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt,slt]],CTt=[0,0,[0,[0,"\0\0\0\0\0\0\0\0þÿÿ\0\0\0\0\0\0\0\0\0\0\0\0ÿÿ\0\0\0\0","UUUUUUUªªTUUUUU+ÖÎÛ±ÕÒ®¤ªJUUÒU","UUUUUUlzU\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0E€@×þÿû\0\0\0€UUUæ","ÿÿÿÿÿÿ\0\0\0\0\0\0UUUUTUUUUUU«*UUUUUU","UUUUUUþÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS,mS,mS,mS],[0,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ¿ \0\0\0\0\0\0",mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿ?\0",mS,mS,mS,mS,mS,mS,mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿç\0\0\0\0\0\0\0\0",mS,"UUUUUUUUUUUUUUUUUU@UUUUUUUUUUUU","\0ÿ\0?\0ÿ\0ÿ\0?\0ª\0ÿ\0\0\0\0\0\0\0\0\0\0\0\0\0"],[0,mS,"„8'>P=À \0\0\0ÿÿ\0\0\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Àÿÿÿ\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS,"ÿÿÿÿÿÿ\0\0\0\0\0\0ê%ÀUUUUUUUUUUUU(\0",mS,mS,mS],Alt,Alt,Alt,Alt,Alt,Alt,Alt,[0,mS,mS,mS,mS,mS,mS,"\0\0\0\0\0\0\0\0UUUUU\0\0UUU\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0TUTUUUUUUU\0jU(EUU}_UõZU\0\0 \0",mS,mS,mS,mS,mS,mS,mS,mS],Alt,Alt,Alt,Alt,[0,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,"\0\0\0\0þÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"],[0,mS,mS,mS,mS,"ÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿ÷ÿ÷7\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿ\0\0\0\0\0\0\0\0\0","\0\0\0\0\0\0\0\0\0\0ÿÿ?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS],[0,mS,mS,mS,mS,mS,mS,mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS],Alt,Alt,Alt,Alt,[0,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,"\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0\0ÿÿÿ\0\0\0\0\0\0\0\0",mS],Alt,Alt,Alt,Alt,Alt,Alt,[0,mS,mS,mS,mS,"ÿÿÿ\0\0ðÿÿ?\0\0\0ÿÿÿ\0\0ÐdÞ?\0\0\0ÿÿÿ\0\0","°çß\0\0\0{_ü\0\0ðÿÿ?\0\0\0ÿÿÿ\0\0ðÿÿ?\0\0","\0ÿÿÿ\0\0ðÿÿ?\0\0\0ÿÿÿ\0\0\0ÿÿÿ\0\0\0üÿÿ","\0\0\0ðÿÿ\0\0\0Àÿÿ\0\0\0\0ÿÿÿ\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS,mS],[0,mS,mS,mS,mS,mS,mS,mS,mS,mS,"ÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS],[0,mS,Ior,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS],Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt]],HTt=[0,0,[0,[0,"\0\0\0\0\0\0\0\0\0\0\0\0þÿÿ\0\0\0\0\0 \0\0\0€ÿÿÿ","ªªªªªªªUU«ªªªªªÔ)1$N*-Qæ@RUµªª)ª","ªªªªªªú“…ªÿÿÿÿÿÿÿÿÏÿÿÿÿ\0\0\0\0\0\0","\0\0\0\0\0\0\0\0 \0\0\0\0\0Š<\0\0\0\0ðÿÿÿ㪪ª/","\0\0\0\0\0\0ÿÿÿÿÿÿªªªª¨ªªªªªªTÕªªªªªª","ªªªªªª\0\0\0\0\0\0ÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS,mS,mS,mS],[0,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿ÷",mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?",mS,mS,mS,mS,mS,mS,mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0",Dor,"ªªªªªªªªªªªªªªªªªªê¿ªªªªªªªªªªªª","ÿ\0?\0ÿ\0ÿ\0?\0ÿ\0ÿ\0ÿ?ÿ\0ÿ\0ÿ\0ß@Ü\0Ï\0ÿ\0Ü\0"],[0,Eor,"\0Ä\b\0\0€2ÀC\0\0\0\0ÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿ\0\0",mS,mS,mS,mS,mS,mS,mS,"\0\0\0\0\0\0ÿÿÿÿÿÿbÚ?ªªªªªªªªªªªªP\b\0","ÿÿÿÿ¿ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS],Alt,Alt,Alt,Alt,Alt,Alt,Alt,[0,mS,mS,mS,mS,mS,mS,"\0\0\0\0\0\0\0\0ªªªªª*\0\0ªªª:\0\0\0\0\0\0\0\0\0\0\0\0","\0\0\0\0¨ª«ªªªªªªªÿ•ªPºªª‚ ª\n¥ª\n\0\0^",mS,mS,mS,"\0\0\0\0\0\0ÿÿÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿ\0\0\0\0\0\0\0\0",mS,mS,mS,mS],Alt,Alt,Alt,Alt,[0,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,"\0ø\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,"\0\0\0\0\0\0\0\0þÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"],[0,mS,mS,mS,mS,"\0\0\0\0\0ÿÿÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ","\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€ÿûÿû\0\0\0\0\0\0\0\0",mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¹ÿÿÿÿÿý\0\0\0\0\0\0\0\0",mS,mS,mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿ\0","\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿ?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS],[0,mS,mS,mS,mS,mS,mS,mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0",mS,mS,mS,mS,mS,mS,mS],Alt,Alt,Alt,Alt,[0,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0ÿÿÿÿ\0\0\0\0\0\0\0øÿÿ\0\0\0\0\0",mS],Alt,Alt,Alt,Alt,Alt,Alt,[0,mS,mS,mS,mS,"\0\0\0üÿÿ\0\0Àßÿÿ\0\0\0üÿÿ\0\0Àëïÿ\0\0\0üÿÿ","\0\0Àÿÿÿ\0\0\0üÿÿ\0\0Àÿÿÿ\0\0\0üÿÿ\0\0Àÿÿ","ÿ\0\0\0üÿÿ\0\0Àÿÿÿ\0\0\0üÿÿ?\0\0\0üÿÿ÷\0\0ð","ÿÿß\0\0Àÿÿ?\0\0\0ÿÿÿý\0\0\0üÿÿ÷\v\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS,"ÿûÿà\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"],[0,"\0\0\0\0\0\0ÿÿÿÿÿÿÿ?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS,mS,"\0\0\0\0üÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS],Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt]],VTt=[0,0,[0,[0,"\0>\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS],[0,mS,mS,mS,mS,mS,mS,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS,mS,mS],[0,"ÿ\0\0\0ƒ\0\0\0\0\0€\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS],[0,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS,mS],Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt,Alt]];function LTt(r,e,n){r:{e:{n:{switch(e){case 2:if(3>>0)break r;break e;case 3:if(4===n)break e;break n;case 4:if(3===n)break e;if(5===n)break e;break n;case 5:var t=n-4|0;if(10>>0)break n;switch(t){case 0:case 2:case 10:break e;default:break n}case 6:if(5===n)break e;break n;case 7:if(12<=n){if(13<=n)break r;return function(r){var e=RBt(r),n=uz(Ult[25],e),t=Fbt(n);if(63Td&&(e-=Td,r*=Math.pow(2,Td),e>Td&&(e-=Td,r*=Math.pow(2,Td))),e<-Td&&(e+=Td,r*=Math.pow(2,-Td)),r*Math.pow(2,e)}(_V(f?c:jV(c,JAr)),a)}else A=_V(Ybt(n));return[10,uz(x9n,A)]}}if(8<=n)break e;break r;case 8:if(9===n)break e;break;case 9:if(8===n||10===n)break e;break;case 10:if(9===n||11===n)break e;break;case 11:var a=n+Ec|0;if(2>=a>>>0)switch(a){case 2:return function(r){var e=VBt(r);return[10,uz(x9n,_V(Ybt(uz(Slt[25],e))))]};case 1:break;default:break e}break;case 12:var u=n-7|0;if(6>>0)break r;switch(u){case 0:return function(r){var e=dlt(WBt(r));return[1,uz(Ult[26],e)]};case 4:return function(r){var e=dlt(WBt(r));return[5,Slt[26].call(null,e)]};case 6:return function(r){return[11,uz(oBt,uz(eBt,WBt(r)))]};default:break r}case 13:if(12===n)return function(r){return[10,uz(nBt,uz(Xlt,XBt(r)))]};break r;default:break r}if(7===n)break e;break r}if(2!==n)break r}return function(t){try{var a=wjt(e)(t),u=function(r){switch(r){case 2:return function(r){return[1,uz(Klt[26],r)]};case 3:return function(r){return[6,Rlt[26].call(null,r)]};case 4:return function(r){return[7,Qlt[26].call(null,r)]};case 5:return function(r){return[8,Clt[26].call(null,r)]};case 6:return function(r){return[9,Hlt[26].call(null,r)]};case 7:return function(r){return[1,uz(Ult[26],r)]};case 8:return function(r){return[2,Vlt[26].call(null,r)]};case 9:return function(r){return[3,Llt[26].call(null,r)]};case 10:return function(r){return[4,zlt[26].call(null,r)]};case 11:return function(r){return[5,Slt[26].call(null,r)]};case 14:return function(r){var e=Zbt(r);e:if(We<=e){if(Ct<=e&&Ms>e)break e;throw gQ([0,kz,"character value out of bounds"],1)}return[12,e]};default:throw gQ([0,kz,"Value.of_big_int_trap: "+yst([2,r])],1)}}(n)(a);return u}catch(u){var f=NL(u);if(f[1]===kz)return uz(r[1],f[2]);throw gQ(f,0)}}}var f=yst([2,n]),i="Value.num_conv_trap_prim: "+yst([2,e])+f;return uz(r[1],i)}function zTt(r,e,n){return function(t){try{var a=wjt(e)(t),u=function(r){switch(r){case 3:return function(r){return[6,Rlt[41].call(null,r)]};case 4:return function(r){return[7,Qlt[41].call(null,r)]};case 5:return function(r){return[8,Clt[41].call(null,r)]};case 6:return function(r){return[9,Hlt[41].call(null,r)]};case 8:return function(r){return[2,Vlt[41].call(null,r)]};case 9:return function(r){return[3,Llt[41].call(null,r)]};case 10:return function(r){return[4,zlt[41].call(null,r)]};case 11:return function(r){return[5,Slt[41].call(null,r)]};default:throw gQ([0,kz,"Value.of_big_int_wrap: "+yst([2,r])],1)}}(n)(a);return u}catch(u){var f=NL(u);if(f[1]===kz)return uz(r[1],f[2]);throw gQ(f,0)}}}function STt(r){var e=r[2];return function(r){return function(r,e,n){return wrt(function(e){return function(n){var t=n[2][1],a=n[1];return t?pjt(r,e,[0,a,t[1]]):M5n(e,fsr)}},[0,e,n])}(e,1,r)}}function ZTt(r){return H2(r,UTt)}function WTt(r,e){return H2(function(n){return function(r,e){for(var n=r[2];;){if(!n)return eet(r[1],[0,e]),r[2]=0,0;let a=n[1][1];var t=n[2];H2(function(r){return uz(a,e)},UTt),n=t}}(r,e)},UTt)}function XTt(r,e){if("number"!=typeof e&&15===e[0]){var n=e[1];if(n){var t=n[2];if(t&&!t[2]){var a=t[1];return H2(function(e){return function(r,e){for(var n=r[2];;){if(!n)return eet(r[1],[1,e]),r[2]=0,0;let a=n[1][2];var t=n[2];H2(function(r){return uz(a,e)},UTt),n=t}}(r,[15,[0,[17,Mne,_S],[0,a,0]]])},UTt)}}}throw gQ([0,xz,Pne],1)}function JTt(r,e,n,t){var a=[0,[0,0],0];function u(r){return XTt(a,r)}if(r[1][1]){var f=sut(e);uz(DTt(Fne),f)}return H2(function(t){if(r[1][1]){var f=sut(e);uz(DTt(Tne),f)}return ITt[1]++,fz(n,function(e){if(r[1][1]){var n=ETt(r)(e);uz(DTt(Nne),n)}return ITt[1]--,WTt(a,e)},u)},UTt),uz(t,[21,a])}function YTt(r,e){return UBt(1,1,function(n,t,a){var u=RBt(t),f=uz(Klt[20],r.length-1);if(!fz(Klt[14],u,f))return gTt(e,yne);var i=uz(Klt[19],u);return uz(a,gC(r,i)[i+1])})}function rFt(r,e){return UBt(2,0,function(n,t,a){var u=fjt(t),f=u[2],i=RBt(u[1]),v=uz(Klt[20],r.length-1);if(!fz(Klt[14],i,v))return gTt(e,xne);var c=uz(Klt[19],i);return gC(r,c)[c+1]=f,uz(a,hne)})}function eFt(r,e){return UBt(0,1,function(e,n,t){return ujt(n),uz(t,[1,uz(Klt[20],r.length-1)])})}function nFt(r,e){return UBt(0,1,function(e,n,t){ujt(n);var a=[0,0],u=UBt(0,1,function(e,n,t){if(a[1]===r.length-1)return uz(t,0);var u=[16,[1,uz(Klt[20],a[1])]];return a[1]++,uz(t,u)});return uz(t,[19,MBt[5].call(null,_ne,u)])})}function tFt(r,e){return UBt(0,1,function(e,n,t){ujt(n);var a=[0,0],u=UBt(0,1,function(e,n,t){if(a[1]===r.length-1)return uz(t,0);var u=a[1],f=gC(r,u)[u+1],i="number"==typeof f?f:23===f[0]?f[1][1]:f;return a[1]++,uz(t,[16,i])});return uz(t,[19,MBt[5].call(null,dne,u)])})}function aFt(r,e){return UBt(0,1,function(e,n,t){ujt(n);var a=[0,0],u=UBt(0,1,function(e,n,t){if(a[1]===AV(r))return uz(t,0);var u=BL(r,a[1]),f=[16,[6,Rlt[20].call(null,u)]];return a[1]++,uz(t,f)});return uz(t,[19,MBt[5].call(null,mne,u)])})}function uFt(r,e){return UBt(1,1,function(n,t,a){var u=RBt(t),f=uz(Klt[20],AV(r));if(!fz(Klt[14],u,f))return gTt(e,pne);var i=BL(r,uz(Klt[19],u));return uz(a,[6,Rlt[20].call(null,i)])})}function fFt(r,e){return UBt(0,1,function(e,n,t){return ujt(n),uz(t,[1,uz(Klt[20],AV(r))])})}function iFt(r,e){return UBt(0,1,function(e,n,t){ujt(n);var a=[0,0],u=UBt(0,1,function(e,n,t){if(a[1]===AV(r))return uz(t,0);var u=[16,[1,uz(Klt[20],a[1])]];return a[1]++,uz(t,u)});return uz(t,[19,MBt[5].call(null,kne,u)])})}function vFt(r,e){return UBt(0,1,function(e,n,t){ujt(n);var a=[0,0],u=Ort(r),f=UBt(0,1,function(r,e,n){var t=G0(u);if(a[1]===t)return uz(n,0);var f=[16,[12,O0(u,a[1])]];return a[1]++,uz(n,f)});return uz(t,[19,MBt[5].call(null,jne,f)])})}function cFt(r,e){return UBt(0,1,function(e,n,t){ujt(n);var a=G0(Ort(r));return uz(t,[1,uz(Klt[20],a)])})}function AFt(r,e,n,t){function a(r){return"number"!=typeof r&&23===r[0]?uz(t,r[1][1]):uz(t,r)}if(!L8n[1])return r<50?sFt(r+1|0,e,n,a):IL(sFt,[0,e,n,a]);if(MTt[1]=MTt[1]+1|0,MTt[1]===PTt[1])throw gQ([0,wTt,"interpreter reached step limit"],1);return 0>>0)return function(r){return uz(Tn[1],"float_formatter: unrecognised mode")};switch(e){case 0:return uz(H6(kbr),r);case 1:return uz(H6(pbr),r);case 2:return uz(H6(mbr),r);default:return uz(H6(dbr),r)}}}var Pn=function(r){var e=YC(r,u);r:{e:{n:{t:{if(0>e){var n=YC(r,Yy);if(0>n){var t=YC(r,mr);if(0>t){var a=YC(r,WT);if(0<=a){if(0>=a)break e;if(r===gA)return function(r,e,n){var t=a2(njt(e));function a(r){var e=LBt(cjt(r)[1]);return T0(uz(Rlt[19],e))}return uz(n,[14,W1(function(r){return d0(a,t)})])};if(r===dd)return function(r,e,n){var t=a2(njt(e));function a(r){var e=LBt(r);return T0(uz(Rlt[19],e))}return uz(n,[14,W1(function(r){return d0(a,t)})])};if(r===Au)return function(r,e,n){var t=njt(e).length-1;return uz(n,[1,uz(Ult[20],t)])};if(r===Xc)break e;if(r===CA)return function(r,e,n){var t=Z1(rjt(e));function a(r){return[6,Rlt[20].call(null,r)]}return uz(n,[18,u2(function(r){return d0(a,t)})])};if(r!==AI)break r;return function(r,e,n){var t=Z1(rjt(e));function a(r){return[23,[0,[6,Rlt[20].call(null,r)]]]}return uz(n,[18,u2(function(r){return d0(a,t)})])}}if(r===kD)return function(r,e,n){var t=ajt(e);if(t){var a=t[2];if(a&&!a[2]){var u=a[1],f=RBt(t[1]);return uz(n,[18,J1(uz(Ult[19],f),function(r){return[23,[0,u]]})])}}throw gQ([0,xz,Abr],1)};if(r===Xw)return function(r,e,n){var t=ajt(e);if(t){var a=t[2];if(a&&!a[2]){var u=a[1],f=RBt(t[1]),i=uz(Ult[19],f),v=vjt(u)[2],c=function(e,n,t){return t===i?uz(n,[18,t2(uz(e,0))]):iz(v,r,[1,uz(Ult[20],t)],function(r){return c(function(n){return uz(e,[0,r,n])},n,t+1|0)})};return c(function(r){return r},n,0)}}throw gQ([0,xz,obr],1)};if(r===Ww)return function(r,e,n){var t=ajt(e);if(t){var a=t[2];if(a&&!a[2]){var u=a[1],f=RBt(t[1]),i=uz(Ult[19],f),v=vjt(u)[2],c=function(e,n,t){return t===i?uz(n,[18,t2(uz(e,0))]):iz(v,r,[1,uz(Ult[20],t)],function(r){return c(function(n){return uz(e,[0,[23,[0,r]],n])},n,t+1|0)})};return c(function(r){return r},n,0)}}throw gQ([0,xz,sbr],1)};if(r===tN)return function(r,e,n){return uz(n,[13,rBt(WBt(e))])};if(r===VN)return function(r,e,n){return uz(n,[13,Wlt(XBt(e))])};if(r!==Ex)break r;return function(r,e,n){var t=RBt(e);return uz(n,[1,uz(Klt[4],t)])}}if(0>=t)return function(r,e,n){var t=ajt(e);if(t){var a=t[2];if(a&&!a[2]){var u=t[1],f=rjt(a[1]),i=rjt(u),v=i===f?0:pL(i,f)?-1:1;return uz(n,[2,Vlt[20].call(null,v)])}}throw gQ([0,xz,vbr],1)};var f=YC(r,WM);if(0<=f){if(0=n)return function(r,e,n){return uz(n,[8,Clt[2]])};var i=YC(r,VU);a:{if(0>i){var v=YC(r,dF);if(0<=v){if(0=c)return function(r,e,n){var t=Llt[20].call(null,LK),a=CBt(e);function u(r){var e=Llt[20].call(null,r),n=Llt[38].call(null,a,e),u=Llt[34],f=uz(function(r){return u(t,r)},n),i=uz(Llt[19],f);return[6,Rlt[20].call(null,i)]}var f=[0,u(0),0];return uz(n,[15,[0,u(8),f]])};if(r===FB)return function(r,e,n){var t=zlt[20].call(null,LK),a=HBt(e);return uz(n,[15,H0(function(r){var e=zlt[20].call(null,r),n=zlt[38].call(null,a,e),u=zlt[34],f=uz(function(r){return u(t,r)},n),i=uz(zlt[19],f);return[6,Rlt[20].call(null,i)]},abr)])};if(r===Ly)return function(r,e,n){var t=Slt[20].call(null,LK),a=VBt(e);return uz(n,[15,H0(function(r){var e=Slt[20].call(null,r),n=Slt[38].call(null,a,e),u=Slt[34],f=uz(function(r){return u(t,r)},n),i=uz(Slt[19],f);return[6,Rlt[20].call(null,i)]},ubr)])};if(r===aG)return function(r,e,n){var t=Qlt[20].call(null,LK),a=zBt(e);function u(r){var e=Qlt[20].call(null,r),n=Qlt[38].call(null,a,e),u=Qlt[34],f=uz(function(r){return u(t,r)},n),i=uz(Qlt[19],f);return[6,Rlt[20].call(null,i)]}var f=[0,u(0),0];return uz(n,[15,[0,u(8),f]])};if(r===ed)return function(r,e,n){var t=Clt[20].call(null,LK),a=SBt(e);return uz(n,[15,H0(function(r){var e=Clt[20].call(null,r),n=Clt[38].call(null,a,e),u=Clt[34],f=uz(function(r){return u(t,r)},n),i=uz(Clt[19],f);return[6,Rlt[20].call(null,i)]},fbr)])};if(r===uG)return function(r,e,n){var t=Hlt[20].call(null,LK),a=ZBt(e);return uz(n,[15,H0(function(r){var e=Hlt[20].call(null,r),n=Hlt[38].call(null,a,e),u=Hlt[34],f=uz(function(r){return u(t,r)},n),i=uz(Hlt[19],f);return[6,Rlt[20].call(null,i)]},ibr)])};if(r!==PU)break r;return function(r,e,n){return uz(n,[10,uz(_Bt,WBt(e))])}}if(r!==me&&r!==BP&&r!==hf&&r!==oA&&r!==ss){if(r!==x)break r;return function(r,e,n){return ujt(e),uz(n,[9,Hlt[2]])}}}}return function(r,e,n){a:{if("number"!=typeof e)switch(e[0]){case 2:var t=[2,Vlt[33].call(null,e[1])];break a;case 3:t=[3,Llt[33].call(null,e[1])];break a;case 4:t=[4,zlt[33].call(null,e[1])];break a;case 5:t=[5,Slt[33].call(null,e[1])];break a;case 6:t=[6,Rlt[33].call(null,e[1])];break a;case 7:t=[7,Qlt[33].call(null,e[1])];break a;case 8:t=[8,Clt[33].call(null,e[1])];break a;case 9:t=[9,Hlt[33].call(null,e[1])];break a}t=FY("ctz")}return uz(n,t)}}if(0>=e)return function(r,e,n){return uz(n,[10,uz(nBt,Math.acos(uz(eBt,WBt(e))))])};var A=YC(r,q);if(0<=A){if(0=s)break t;if(r===PT)break n;if(r===Dx)return function(r,e,n){var t=G0(Ort(YBt(e)));return uz(n,[1,uz(Klt[20],t)])};if(r===tm)return function(r,e,n){return uz(n,[13,H1(YBt(e))])};if(r===cb)return function(r,e,n){return uz(n,[13,C1(YBt(e))])};if(r===vh)return function(r,e,n){return ujt(e),uz(n,[9,Hlt[20].call(null,42)])};if(r!==Uh)break r;return function(r,e,n){var t="explicit trap: "+YBt(e);return uz(Tn[1],t)}}if(r!==ao&&r!==rG){if(r===R)return function(r,e,n){return ujt(e),uz(n,zsr)};if(r===RO)return function(r,e,n){return uz(n,_S)};if(r===op)return function(r,e,n){var t=ajt(e);if(t){var a=t[2];if(a&&!a[2]){var u=t[1],f=YBt(a[1]),i=YBt(u),v=i===f?0:pL(i,f)?-1:1;return uz(n,[2,Vlt[20].call(null,v)])}}throw gQ([0,xz,Ssr],1)};if(r!==vb)break r;return function(r,e,n){var t=B1(Ort(YBt(e)));function a(r){return[12,r]}return uz(n,[24,[0,function(r){return d0(a,t)}]])}}}}else{var b=YC(r,HP);if(0<=b){if(0l){var B=YC(r,em);if(0<=B){if(0>=B)return function(r,e,n){return uz(n,[10,uz(nBt,Math.exp(uz(eBt,WBt(e))))])};if(r===Fa)return function(r,e,n){return uz(n,[10,uz(yBt,WBt(e))])};if(r===md)return function(r,e,n){return uz(n,[10,uz(nBt,Math.log(uz(eBt,WBt(e))))])};if(r===gr)return function(r,e,n){var t=ajt(e);if(t){var a=t[2];if(a&&!a[2]){var u=t[1],f=WBt(a[1]);return uz(n,[10,fz(gBt,WBt(u),f)])}}throw gQ([0,xz,Ysr],1)};if(r===lq)return function(r,e,n){var t=ajt(e);if(t){var a=t[2];if(a&&!a[2]){var u=t[1],f=WBt(a[1]);return uz(n,[10,fz(qBt,WBt(u),f)])}}throw gQ([0,xz,rbr],1)};if(r===tt)return function(r,e,n){var t=ajt(e);if(t){var a=t[2];if(a){var u=a[2];if(u&&!u[2]){var f=u[1],i=a[1],v=uz(eBt,WBt(t[1])),c=Fn(f);return uz(n,[13,uz(Mn(Fn(i))(c),v)])}}}throw gQ([0,xz,ebr],1)};if(r!==a_)break r;return function(r,e,n){return uz(n,[10,uz(hBt,WBt(e))])}}if(r===gv)return function(r,e,n){return uz(n,[10,uz(nBt,Math.asin(uz(eBt,WBt(e))))])};if(r===Jt)return function(r,e,n){return uz(n,[10,uz(nBt,Math.atan(uz(eBt,WBt(e))))])};if(r===OB)return function(r,e,n){var t=ajt(e);if(t){var a=t[2];if(a&&!a[2]){var u=t[1],f=uz(eBt,WBt(a[1]));return uz(n,[10,uz(nBt,Math.atan2(uz(eBt,WBt(u)),f))])}}throw gQ([0,xz,nbr],1)};if(r===$I)return function(r,e,n){return uz(n,[10,uz(wBt,WBt(e))])};if(r===LB)return function(r,e,n){var t=ajt(e);if(t){var a=t[2];if(a&&!a[2]){var u=t[1],f=WBt(a[1]);return uz(n,[10,fz(mBt,WBt(u),f)])}}throw gQ([0,xz,tbr],1)};if(r!==wT)break r;return function(r,e,n){return uz(n,[10,uz(nBt,Math.cos(uz(eBt,WBt(e))))])}}if(0>=l)return function(r,e,n){return uz(n,[10,uz(nBt,Math.sin(uz(eBt,WBt(e))))])};var j=YC(r,AM);if(0>j){if(r===jN)return function(r,e,n){return uz(n,[10,uz(IBt,WBt(e))])};if(r===vc)return function(r,e,n){return uz(n,[10,uz(nBt,Math.tan(uz(eBt,WBt(e))))])};if(r===ZI)return function(r,e,n){return uz(n,[10,uz(xBt,WBt(e))])};if(r===Kp)return function(r,e,n){return ujt(e),uz(n,0)};if(r===Z_)return function(r,e,n){var t=Wbt(Aft(YBt(e)));return uz(n,[8,Clt[41].call(null,t)])};if(r!==Id)break r;return function(r,e,n){var t=ajt(e);if(t){var a=t[2];if(a&&!a[2]){var u=t[1],f=SBt(a[1]),i=uz(Clt[25],f),v=uz(Ult[26],i),c=uz(Ult[20],2),A=fz(Ult[11],c,v),o=RBt(u);return uz(n,[1,fz(Ult[8],o,A)])}}return FY(Jsr)}}if(0=k)return function(r,e,n){var t=rjt(e);try{Ort(t)}catch(r){var a=NL(r);if(a===C9n)return uz(n,0);throw gQ(a,0)}return uz(n,[16,[13,t]])};var p=YC(r,kP);if(0<=p){if(0>=p)return function(r,e,n){return uz(n,Rsr)};if(r===jw)return function(r,e,n){return ujt(e),uz(n,Qsr)};if(r===eA)return function(r,e,n){return uz(n,_S)};if(r===I$)return function(r,e,n){return uz(n,_S)};if(r===NO)return function(r,e,n){var t=i5n(Ajt(e),0);return uz(n,t?[16,t[1]]:0)};if(r===Fw)return function(r,e,n){var t=Ajt(e);return f5n(t,0,"Weak.check"),uz(n,[0,FH(t,0)])}}else{if(r===kI)return function(r,e,n){return uz(n,[14,YBt(e)])};if(r===Wi)return function(r,e,n){return uz(n,0)};if(r===yR)return function(r,e,n){return uz(n,[18,t2(0)])};if(r===si)return function(r,e,n){return uz(n,[15,[0,[8,Clt[2]],[0,[8,Clt[2]],[0,[8,Clt[2]],0]]]])};if(r===nc)return function(r,e,n){return uz(n,[15,[0,[8,Clt[2]],[0,[8,Clt[2]],0]]])}}}else{var m=YC(r,L_);if(0<=m){if(0>=m)return function(r,e,n){return uz(n,[0,olt(OTt,U0(JBt(e)))])};if(r===n_)return function(r,e,n){return uz(n,[0,olt(HTt,U0(JBt(e)))])};if(r===XG)return function(r,e,n){return uz(n,[0,olt(CTt,U0(JBt(e)))])};if(r===nw)return function(r,e,n){return uz(n,[0,olt(VTt,U0(JBt(e)))])};if(r===Pg)return function(r,e,n){var t=blt(QTt,U0(JBt(e)));if("number"==typeof t)return uz(n,e);var a=t[2];return a&&!a[2]?uz(n,[12,a[1]]):uz(n,e)};if(r===sx)return function(r,e,n){var t=blt(RTt,U0(JBt(e)));if("number"==typeof t)return uz(n,e);var a=t[2];return a&&!a[2]?uz(n,[12,a[1]]):uz(n,e)}}else{if(r===Qv)return function(r,e,n){var t=MH(1);return f5n(t,0,"Weak.set"),KH(t,0,e),uz(n,[25,t])};if(r===nq)return function(r,e,n){return uz(n,Csr)};if(r===_l)return function(r,e,n){return uz(n,Hsr)};if(r===Wd)return function(r,e,n){return ujt(e),uz(n,Vsr)};if(r===$r)return function(r,e,n){return ujt(e),uz(n,Lsr)};if(r===Gp)return function(r,e,n){return ujt(e),uz(n,[9,Hlt[20].call(null,42)])}}}return uz(Tn[1],"Value.prim: "+r)}var d=L1(95,r);if(d){var _=d[2];if(_){var h=_[2];if(h){var w=h[2];if(w&&!w[2]){var g=w[1],I=Gct(h[1]),D=Gct(g);return function(r,e,n){return uz(n,zTt(Tn,I,D)(e))}}}}}throw gQ([0,xz,jbr],1)}var E=L1(95,r);if(E){var N=E[2];if(N){var T=N[2];if(T){var F=T[2];if(F&&!F[2]){var M=F[1],P=Gct(T[1]),U=Gct(M);return function(r,e,n){return uz(n,uz(LTt(Tn,P,U),e))}}}}}throw gQ([0,xz,lbr],1)}(Nn);return uz(f,[20,llt(a[3][1]),Pn])}function bFt(r,e,n,t){var a=e[1]?MBt[2].call(null,yS,n,r[3]):r[3],u=e[2]?MBt[2].call(null,wS,t,a):a;return[0,r[1],r[2],u,r[4],r[5],r[6],r[7],r[8]]}function lFt(r,e,n,t){if(!n)return uz(t,[19,MBt[1]]);var a=n[1];return r<50?AFt(r+1|0,e,a,t):IL(AFt,[0,e,a,t])}function BFt(r,e,n,t,a){if(!n)return uz(a,Q0(t));var u=n[1],f=n[2];function i(r){return function(r,e,n,t){return qL(BFt(0,r,e,n,t))}(e,f,[0,r,t],a)}return r<50?AFt(r+1|0,e,u,i):IL(AFt,[0,e,u,i])}function jFt(r,e,n,t){if(!e)return uz(t,n);var a=e[1],u=e[2];return oFt(r,a[2][3],function(e){var f=a[2][1][2]?[23,[0,e]]:e;return jFt(r,u,MBt[2].call(null,a[2][2][2],f,n),t)})}function kFt(r){var e=[0,0];return MBt[5].call(null,r[2],e)}function pFt(r){r:{var e=r;e:for(;;){var n=e[2];if("number"!=typeof n)switch(n[0]){case 0:return kFt(n[1]);case 3:break r;case 4:break e;case 6:e=n[2];continue;case 1:case 2:break;default:e=n[1];continue}return MBt[1]}for(var t=n[1],a=MBt[1];;){if(!t)return a;var u=t[2],f=t[1][2],i=0===f[0]?[0,f[2]]:0;if(i){var v=pFt(i[1]);t=u,a=MBt[51].call(null,a,v)}else t=u}}for(var c=n[1],A=MBt[1];;){if(!c)return A;var o=c[2],s=pFt(c[1]);c=o,A=MBt[51].call(null,A,s)}}function mFt(r,e,n){return dFt(r,e[2],n)}function dFt(r,e,n){return eet(qTt(e,r[2]),n)}function _Ft(r,e){var n=r[1];if("number"==typeof n){if("number"==typeof e)return 1}else switch(n[0]){case 0:if("number"!=typeof e&&0===e[0])return n[1]===e[1]?1:0;break;case 1:case 6:if("number"!=typeof e&&1===e[0])return fz(Ult[12],n[1],e[1]);break;case 2:if("number"!=typeof e&&6===e[0])return fz(Rlt[12],n[1],e[1]);break;case 3:if("number"!=typeof e&&7===e[0])return fz(Qlt[12],n[1],e[1]);break;case 4:if("number"!=typeof e&&8===e[0])return fz(Clt[12],n[1],e[1]);break;case 5:if("number"!=typeof e&&9===e[0])return fz(Hlt[12],n[1],e[1]);break;case 7:if("number"!=typeof e&&2===e[0])return fz(Vlt[12],n[1],e[1]);break;case 8:if("number"!=typeof e&&3===e[0])return fz(Llt[12],n[1],e[1]);break;case 9:if("number"!=typeof e&&4===e[0])return fz(zlt[12],n[1],e[1]);break;case 10:if("number"!=typeof e&&5===e[0])return fz(Slt[12],n[1],e[1]);break;case 11:if("number"!=typeof e&&10===e[0])return OH(n[1],e[1]);break;case 12:if("number"!=typeof e&&11===e[0])return OH(n[1],e[1]);break;case 13:if("number"!=typeof e&&12===e[0])return n[1]===e[1]?1:0;break;case 14:if("number"!=typeof e&&13===e[0])return n[1]===e[1]?1:0;break;case 15:if("number"!=typeof e&&14===e[0])return n[1]===e[1]?1:0;break;default:throw gQ([0,xz,Zee],1)}return 0}function hFt(r,e){r:{var n=r,t=e;e:for(;;){var a=n[2];if("number"==typeof a)return[0,MBt[1]];switch(a[0]){case 0:var u=a[1],f=ret(t);return[0,MBt[5].call(null,u[2],f)];case 1:return _Ft(a[1],t)?[0,MBt[1]]:0;case 2:var i=a[2],v=Ijt(a[1],mAt(n[3]))(t);n=[0,,[1,i],n[3]],t=v;break;case 3:break r;case 4:break e;case 5:var c=a[1];if("number"==typeof t)return 0;if(16!==t[0])throw gQ([0,xz,Wee],1);n=c,t=t[1];break;case 6:var A=a[2],o=a[1],s=tjt(t),b=s[2];if(o[2]!==s[1])return 0;n=A,t=b;break;case 7:var l=a[2],B=hFt(a[1],t);if(B)return B;n=l;break;default:n=a[1]}}for(var j=a[1],k=MBt[1],p=ijt(t);;){if(!j)return[0,k];var m=j[1][2];if(0===m[0]){var d=m[2],_=j[2],h=hFt(d,MBt[17].call(null,m[1][2],p));if(!h)return 0;j=_,k=MBt[51].call(null,k,h[1])}else j=j[2]}}for(var x=a[1],y=MBt[1],w=x,g=ajt(t),q=y;;){if(w){if(g){var I=g[2],D=w[2],E=hFt(w[1],g[1]);if(!E)return 0;w=D,g=I,q=MBt[51].call(null,q,E[1]);continue}}else if(!g)return[0,q];throw gQ([0,xz,Xee],1)}}function xFt(r,e,n,t,a,u){if(1!==n){var f=wFt(a,MBt[1],MBt[1]),i=f[1],v=dTt(e,f[2]);return r<50?gFt(r+1|0,v,a,i,u):IL(gFt,[0,v,a,i,u])}var c=bjt(),A=[14,c];if(t)var o=t[1],s=ret(A),b=dTt(e,MBt[5].call(null,o[2],s));else b=e;var l=wFt(a,MBt[1],MBt[1]),B=l[1],j=dTt([0,b[1],b[2],b[3],b[4],b[5],b[6],c,b[8]],l[2]);function k(r){var n=MBt[2].call(null,c,r,e[8][1]);return e[8][1]=n,uz(u,A)}return r<50?gFt(r+1|0,j,a,B,k):IL(gFt,[0,j,a,B,k])}function yFt(r,e,n,t,a){return qL(xFt(0,r,e,n,t,a))}function wFt(r,e,n){for(var t=r,a=e,u=n;;){if(!t)return[0,a,u];var f=t[1][2],i=f[2],v=t[2],c=DFt(f[1]);t=v,a=0===i[2]?a:MBt[51].call(null,a,c),u=MBt[51].call(null,u,c)}}function gFt(r,e,n,t,a){if(!n)return uz(a,[19,MBt[25].call(null,tet,t)]);var u=n[1][2][1],f=n[2];function i(r){return function(r,e,n,t){return qL(gFt(0,r,e,n,t))}(e,f,t,a)}return r<50?EFt(r+1|0,e,u,i):IL(EFt,[0,e,u,i])}function qFt(r,e,n,t,a){for(var u=n,f=MBt[1];;){if(!u){t&&(t[1][1]=f);var i=dTt(e,f);return r<50?NFt(r+1|0,i,n,a):IL(NFt,[0,i,n,a])}var v=u[2],c=DFt(u[1]);u=v,f=MBt[51].call(null,f,c)}}function IFt(r,e,n,t){return qL(qFt(0,r,e,n,t))}function DFt(r){var e=r[2];switch(e[0]){case 1:return pFt(e[1]);case 2:return kFt(e[1]);case 4:var n=e[4];return kFt([0,n[1],n[2],0]);case 6:throw gQ([0,xz,Yee],1);default:return MBt[1]}}function EFt(r,e,n,t){var a=n[2];switch(a[0]){case 0:var u=a[1];return r<50?AFt(r+1|0,e,u,t):IL(AFt,[0,e,u,t]);case 1:var f=a[3],i=a[2],v=a[1],c=function(r){if(function(r,e,n){var t=hFt(e,n);return t?(MBt[23].call(null,function(e,n){return dFt(r,e,tet(n))},t[1]),1):0}(e,v,r))return uz(t,r);if(f)return oFt(e,f[1],function(r){throw gQ([0,xz,rne],1)});var n=ETt(e)(r);return uz(gTt(v[1],ene),n)};return r<50?AFt(r+1|0,e,i,c):IL(AFt,[0,e,i,c]);case 2:var A=a[2],o=a[1],s=function(r){return mFt(e,o,[23,[0,r]]),uz(t,_S)};return r<50?AFt(r+1|0,e,A,s):IL(AFt,[0,e,A,s]);case 4:var b=a[9],l=a[8],B=a[4],j=a[3],k=a[6],p=a[2],m=function(r,e){if(1===j[2])return JTt(r,vut,function(e,n){var t=dTt(r,kFt(l));return yFt([0,t[1],t[2],MBt[1],t[4],[0,e],[0,n],t[7],t[8]],j[2],[0,l],b,e)},e);var n=dTt(r,kFt(l));return yFt(n,j[2],0,b,function(r){return mFt(n,l,r),uz(e,r)})},d=B[2],_=[20,llt(n[3][1]),function(r,n,t){return TFt(e,d,p,k,m,r,n,t)}];return mFt(e,[0,B[1],B[2],0],_),uz(t,_);case 6:return gTt(n[1],nne);default:return uz(t,_S)}}function NFt(r,e,n,t){if(!n)return uz(t,_S);var a=n[1];if(!n[2])return r<50?EFt(r+1|0,e,a,t):IL(EFt,[0,e,a,t]);var u=n[2];function f(r){return function(r,e,n){return qL(NFt(0,r,e,n))}(e,u,t)}return r<50?EFt(r+1|0,e,a,f):IL(EFt,[0,e,a,f])}function TFt(r,e,n,t,a,u,f,i){if(r[1][1]){var v=NTt(r,f);fz(DTt(ane),e,v)}var c=[19,MBt[5].call(null,une,u)],A=n[2];if(A){var o=A[1][2],s=hFt(o,c);if(s)var b=s[1];else{var l=ETt(r)(c);b=uz(gTt(o[1],Jee),l)}}else b=MBt[1];var B=hFt(t,f);if(B){var j=B[1];ITt[1]++;var k=function(e){if(r[1][1]){var n=ETt(r)(e);uz(DTt(tne),n)}return ITt[1]--,uz(i,e)},p=r[8],m=r[7],d=r[6],_=r[4],h=MBt[1],x=MBt[51].call(null,b,j),y=MBt[51].call(null,r[2],x);return fz(a,[0,r[1],y,h,_,[0,k],d,m,p],k)}var w=ETt(r)(f);return uz(gTt(t[1],fne),w)}function FFt(r){return H0(function(r){return r[2][2]},r)}function MFt(r,e){return H0(function(e){var n=e[2],t=n[1],a=e[3],u=[0,t,uz(r,n[2])];return[0,e[1],u,a]},e)}function PFt(r,e){return Z0(function(r,e){return[0,r[1],[0,r[2][1],e],r[3]]},r,e)}function UFt(r,e,n){r:{e:{n:{if("number"==typeof n)switch(n){case 0:case 1:break r;case 7:case 8:break n;case 9:case 10:case 2:case 3:case 12:case 13:case 14:case 15:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:return n;case 4:case 5:case 6:break e}else switch(n[0]){case 0:return[0,H0(r,n[1])];case 1:var t=n[2];return[1,uz(r,n[1]),t];case 2:var a=n[2];return[2,uz(r,n[1]),a];case 3:var u=n[2];return[3,uz(r,n[1]),u];case 8:return[8,n[1],uz(r,n[2])];case 9:return[9,uz(e,n[1])];case 11:return[11,uz(r,n[1])];case 12:return[12,H0(r,n[1])];case 13:return[13,H0(r,n[1])];case 14:return[14,H0(r,n[1])];case 17:var f=n[1],i=uz(r,n[2]);return[17,uz(r,f),i];case 18:return[18,uz(r,n[1])];case 19:return[19,uz(r,n[1])];case 21:return[21,n[1],uz(r,n[2])];case 22:return[22,n[1],uz(r,n[2])];case 23:return[23,H0(r,n[1])];case 24:return[24,uz(r,n[1])];case 25:return[25,uz(r,n[1])];case 26:return[26,uz(r,n[1])];case 27:return[27,uz(r,n[1])];case 10:break e;case 20:break;case 15:case 16:break n;default:break r}return n}return n}return n}return n}var GFt=dut([0,z1]),$Ft=P2([0,z1]);function KFt(r,e,n){var t=e[2]||n[2];return[0,[0,e[1]||n[1],t]]}var OFt=GFt[8];function RFt(r,e){return OFt(KFt,r,e)}function QFt(r,e){var n=H0(r,e);return z0(RFt,GFt[1],n)}function CFt(r,e,n){return[0,e]}var HFt=GFt[8];function VFt(r,e){return HFt(CFt,r,e)}function LFt(r){return[0,GFt[1],r]}function zFt(r,e){var n=r[2];return[0,fz(RFt,r[1],e),n]}function SFt(r,e){for(var n=H0(r,e),t=[0,GFt[1],GFt[1]];;){if(!n)return t;var a=n[1],u=n[2],f=a[1],i=t[1],v=GFt[8].call(null,function(r,e,n){return[0,e]},t[2],a[2]);n=u,t=[0,fz(RFt,i,f),v]}}function ZFt(r,e){return GFt[7].call(null,function(r,e,n){return n?0:e},r,e)}function WFt(r,e){return $Ft[24].call(null,function(e,n){return GFt[2].call(null,e,r,n)},e,GFt[1])}function XFt(r){return GFt[24].call(null,function(r,e,n){return $Ft[2].call(null,r,n)},r,$Ft[1])}function JFt(r,e){return fz(RFt,e[1],ZFt(r,e[2]))}function YFt(r){return Xne}var rMt=GFt[25];function eMt(r){return rMt(YFt,r)}function nMt(r){return XFt(GFt[27].call(null,function(r,e){return e[1]},r))}function tMt(r){return ZFt(r[1],r[2])}function aMt(r){for(var e=r;;){var n=e[2];if("number"!=typeof n)switch(n[0]){case 0:return GFt[5].call(null,n[1],e[3]);case 2:return uMt(n[1]);case 3:return uMt(FFt(n[1]));case 4:e=n[1];continue;case 5:e=n[2];continue;case 6:var t=n[1],a=aMt(n[2]);return fz(VFt,aMt(t),a)}return GFt[1]}}function uMt(r){var e=H0(aMt,r);return z0(VFt,GFt[1],e)}function fMt(r){var e=GFt[5].call(null,r[2],r[3]);return[0,GFt[1],e]}function iMt(r){return GFt[5].call(null,r,Wne)}function vMt(r){return QFt(function(r){var e=[0,cAt(r[3]),1];return GFt[5].call(null,r[2][2],e)},r)}function cMt(r){for(var e=r;;){var n=e[2];switch(n[0]){case 0:return sMt(n[1][2]);case 1:return iMt(n[2]);case 2:return GFt[1];case 3:var t=n[1],a=cMt(n[2]);return fz(RFt,bMt(t),a);case 4:var u=n[1],f=u[1],i=cMt(u[2]);return tMt(zFt(pMt(f),i));case 5:return sMt([0,n[1],[0,n[2],[0,n[3],0]]]);case 6:var v=n[1],c=BMt(n[2]);return fz(RFt,cMt(v),c);case 7:e=n[1];break;case 10:var A=n[1],o=cMt(n[3]);return GFt[6].call(null,A,o);case 11:var s=n[1],b=cMt(n[3]);return fz(RFt,iMt(s),b);case 12:var l=n[7],B=SFt(fMt,n[5]);return uz(eMt,JFt(cMt(l),B));case 13:var j=n[2],k=sMt([0,n[3],[0,n[4],[0,n[5],0]]]);return fz(RFt,uz(eMt,cMt(j)),k);case 14:return AMt(n[1],n[2],n[3]);case 15:return vMt(n[2]);case 16:var p=n[3],m=n[2],d=n[1],_=p?iMt(p[1][1]):GFt[1],h=BMt(m);return fz(RFt,fz(RFt,cMt(d),h),_);default:e=n[3]}}}function AMt(r,e,n){var t=oMt(n),a=vMt(e);return tMt(zFt(zFt(pMt(r),a),t))}function oMt(r){var e=r[7],n=r[6],t=r[5],a=r[4],u=r[3],f=r[2],i=uz(eMt,cMt(r[8])),v=uz(eMt,cMt(e)),c=uz(eMt,cMt(n)),A=uz(eMt,cMt(t)),o=uz(eMt,cMt(a)),s=uz(eMt,cMt(u));return fz(RFt,fz(RFt,fz(RFt,fz(RFt,fz(RFt,fz(RFt,uz(eMt,cMt(f)),s),o),A),c),v),i)}function sMt(r){return QFt(cMt,r)}function bMt(r){var e=r[2];switch(e[0]){case 0:return iMt(e[1]);case 1:return sMt([0,e[1],[0,e[2],0]]);default:return cMt(e[1])}}function lMt(r){var e=LFt(aMt(r[2][1]));return JFt(cMt(r[2][2]),e)}function BMt(r){return QFt(lMt,r)}function jMt(r){var e=r[2];switch(e[0]){case 0:var n=e[1],t=cMt(e[2]);return zFt(LFt(aMt(n)),t);case 1:var a=e[2],u=e[1],f=cMt(e[3]);return zFt(LFt(GFt[5].call(null,u,a)),f);default:var i=e[2],v=e[1],c=bMt(e[3]);return zFt(LFt(GFt[5].call(null,v,i)),c)}}function kMt(r){var e=cMt(r);return H0(function(r){return r[1]},GFt[10].call(null,e))}function pMt(r){return SFt(jMt,r)}function mMt(r,e){return r||e?1:0}function dMt(r,e,n){return z0(mMt,r,H0(e,n))}function _Mt(r,e){return dMt(0,r,e)}function hMt(r){return r[3][1]}function xMt(r){return r[3][2]}function yMt(r,e){if("number"!=typeof r)switch(r[0]){case 0:if(e){var n=e[2];if(n&&!n[2]){var t=e[1],a=WAt(hMt(t));return a||XAt(hMt(t))}}break;case 20:if(r[1]===xh)return 1}return 0}function wMt(r,e){r:{if("number"==typeof r){if(6!==r)break r}else if(10!==r[0])break r;return 1}return yMt(r,e)?1:_Mt(xMt,e)}function gMt(r){if(!r)return 0;var e=r[2];return mMt(xMt(r[1][2][2]),gMt(e))}function qMt(r){var e=r[2];switch(e[0]){case 0:var n=e[2];break;case 1:n=e[3];break;default:var t=e[3][2];if(2===t[0])return xMt(t[1]);throw gQ([0,xz,Jne],1)}return xMt(n)}var IMt=U2([0,z1]),DMt=[0,IMt[1]];function EMt(r,e){var n=w0(IMt[18].call(null,r,DMt[1]),0);return DMt[1]=IMt[2].call(null,r,n+1|0,DMt[1]),fz(H6(wte),r,n)}function NMt(r,e){return EMt(r)}function TMt(r,e){return[0,EMt(r),e]}function FMt(r,e){return V0(function(e,n){return TMt(fz(H6(yte),r,e),n)},e)}function MMt(r,e,n){return iut([0,r,e,n],vut)}function PMt(r){return[0,vut,[0,r[1]],r[2]]}function UMt(r){return[0,vut,[2,r],[7,H0(function(r){return r[3]},r)]]}var GMt=[0,vut,0,0];function $Mt(r){var e=r[2],n=r[1],t=VX[4],a=VX[3],u=VX[2],f=[0,mAt(e),u,a,t],i=cAt(e)?1:0;return[0,vut,[1,i,n],f]}function KMt(r,e){r:{e:{if("number"==typeof r)switch(r){case 26:break;case 13:var n=eS;break e;case 25:n=aS;break e;case 15:n=uS;break e;case 32:n=iS;break e;case 27:n=cS;break e;case 2:case 14:n=mAt(gAt($0(e)[3][1]));break e;case 10:case 30:n=fS;break e;case 12:case 17:case 18:case 21:n=nS;break e;default:break r}else switch(r[0]){case 13:n=$ct(r[1]);break e;case 14:n=[6,$ct(r[1])];break e;case 17:n=r[2];break e;case 20:var t=r[1],a=YC(t,Qj);if(0<=a){if(0>=a){n=nS;break e}var u=YC(t,ao);if(0>u){if(t===ba){n=eS;break e}if(t===xl){n=nS;break e}if(t===du){n=nS;break e}if(t===eb){n=nS;break e}if(t===hP){n=nS;break e}if(t===Mv){n=nS;break e}if(t!==gc)break r;n=nS;break e}if(0>=u){n=nS;break e}if(t===R){n=fS;break e}if(t===RO){n=rS;break e}if(t===Dx){n=nS;break e}if(t===Uh){n=1;break e}if(t!==NO){if(t!==Fw)break r;n=eS;break e}var f=Jct($0(e)[3][1]);n:{if("number"==typeof f){if(1===f){var i=1;break n}}else if(12===f[0]){i=f[1];break n}i=AAt("as_weak_sub")}n=[6,i];break e}var v=YC(t,Wi);if(0<=v){if(0>=v){n=fS;break e}if(t===yR){n=[5,fS];break e}if(t===Kp){n=Dct;break e}if(t===Jg){n=aS;break e}if(t===kP){n=eS;break e}if(t===SI){n=eS;break e}if(t===mP){n=nS;break e}if(t!==ZF)break r;n=nS;break e}if(t===Qv){n=[12,$0(e)[3][1]];break e}if(t===Au){n=nS;break e}if(t===Kx){n=nS;break e}if(t===bO){n=fS;break e}if(t===Yy){n=tS;break e}if(t===nq){n=iS;break e}if(t!==_l)break r;n=iS;break e;case 23:break;case 3:n=eS;break e;case 26:n=aS;break e;case 11:n=fS;break e;case 12:n=iS;break e;case 24:case 27:n=rS;break e;case 2:case 18:case 25:n=r[1];break e;default:break r}n=1}var c=_Mt(xMt,e);return[0,vut,[0,[0,r,e]],[0,n,c,VX[3],VX[4]]]}throw gQ([0,xz,xte],1)}function OMt(r){return[0,vut,[0,[0,[19,r],0]],[0,r,VX[2],VX[3],VX[4]]]}function RMt(r){var e=VX[4],n=VX[3];return[0,vut,[0,[0,5,[0,r,0]]],[0,rS,xMt(r),n,e]]}function QMt(r,e,n,t){var a=VX[4],u=VX[3],f=0===r?1:0;return[0,vut,[9,r,e,n,t],[0,[9,r,t,hMt(n)],f,u,a]]}function CMt(r,e){var n=kAt(Xct(hMt(e)))[3];return[0,vut,[0,[0,[10,r],[0,e,0]]],[0,n,1,VX[3],VX[4]]]}function HMt(r,e,n,t){var a=VX[4],u=VX[3];return[0,vut,[0,[0,[22,r,e],[0,t,0]]],[0,[9,r,e,n],xMt(t),u,a]]}function VMt(r,e,n,t){if("number"!=typeof e&&8===e[0]&&!e[1]&&!e[2]&&!e[3]){var a=e[5],u=VX[4],f=VX[3],i=xMt(t),v=mMt(xMt(n),i);return[0,vut,[0,[0,[21,r,e],[0,n,[0,t,0]]]],[0,$ct(a),v,f,u]]}throw gQ([0,xz,hte],1)}function LMt(r,e){r:{if(r&&!r[2]){if(Tot(0,e[3][1],r[1]))break r;throw gQ([0,xz,dte],1)}if(!Tot(0,[7,r],e[3][1]))throw gQ([0,xz,_te],1)}var n=VX[4],t=VX[3];return[0,vut,[0,[0,[23,r],[0,e,0]]],[0,rS,xMt(e),t,n]]}function zMt(r){var e=VX[4],n=VX[3];return[0,vut,[0,[0,26,[0,r,0]]],[0,rS,xMt(r),n,e]]}function SMt(r,e){var n=Jct(hMt(r));if("number"!=typeof n&&7===n[0]){var t=n[1],a=VX[4],u=VX[3],f=xMt(r);return[0,vut,[0,[0,[4,e],[0,r,0]]],[0,O0(t,e),f,u,a]]}return FY("projE")}function ZMt(r){var e=VX[4],n=VX[3],t=xMt(r);return[0,vut,[0,[0,1,[0,r,0]]],[0,[6,hMt(r)],t,n,e]]}function WMt(r,e){var n=VX[4],t=VX[3],a=xMt(e);return[0,vut,[0,[0,[5,r],[0,e,0]]],[0,[4,[0,[0,r,hMt(e),Act],0]],a,t,n]]}function XMt(r){var e=r[2];switch(e[0]){case 0:var n=e[2];break;case 1:n=e[3];break;default:var t=e[3][2];if(2===t[0])return xMt(t[1]);throw gQ([0,xz,mte],1)}return xMt(n)}function JMt(r){return f1(YMt,r)}function YMt(r){var e=r[2];if(0===e[0]){var n=e[1][2];if("number"==typeof n){var t=e[2][2];if(0===t[0]){var a=t[1],u=a[1];if("number"==typeof u&&!u&&!a[2])return 0}}else if(2===n[0]){var f=n[1],i=e[2][2];if(0===i[0]){var v=i[1],c=v[1];if("number"==typeof c&&!c){var A=v[2],o=G0(A);if(G0(f)===o)return JMt(Z0(function(r,e){return iut([0,r,e],r[1])},f,A))}}}}return[0,r,0]}function rPt(r,e){var n=JMt(r);if(!n)return e;var t=hMt(e),a=dMt(xMt(e),XMt,n);return[0,vut,[4,[0,n,e]],[0,t,a,VX[3],VX[4]]]}function ePt(r){return[0,vut,[2,[14,r]],[0,fS,VX[2],VX[3],VX[4]]]}function nPt(r){return[0,vut,[2,[15,r]],[0,iS,VX[2],VX[3],VX[4]]]}function tPt(r){return[0,vut,[2,[0,r]],[0,eS,VX[2],VX[3],VX[4]]]}function aPt(r){return[0,vut,pte,[0,kte,VX[2],VX[3],VX[4]]]}function uPt(r,e,n,t,a,u,f){var i=H0(function(r){return r[2][1]},t),v=H0(function(r){var e=r[2],n=e[2],t=e[1],a=Hct(i,e[3]);return[0,t[1],n,a]},t),c=H0(function(r){return Hct(i,r[3])},a),A=[8,e,n,v,c,H0(function(r){return Hct(i,r)},u)];return[0,vut,[12,r,e,n,t,a,u,f],[0,A,0,VX[3],VX[4]]]}function fPt(r,e,n){var t=Jct(hMt(r));r:{if("number"==typeof t){if(1===t){var a=1;break r}}else if(8===t[0]){var u=t[2],f=H0(function(r){return Sct(e,r)},t[5]);switch(u){case 2:a=Yz;break r;case 0:a=$ct(f);break r;default:var i=$ct(f);a=[9,0,$0(e),i];break r}}throw gQ([0,kz,"callE expect a function"],1)}var v=[0,e],c=[0,r,[0,n,0]],A=VX[4],o=VX[3];return[0,vut,[0,[0,v,c]],[0,a,wMt(v,c),o,A]]}function iPt(r,e,n){var t=VX[4],a=VX[3],u=xMt(n),f=mMt(xMt(e),u),i=mMt(xMt(r),f),v=hMt(n);return[0,vut,[5,r,e,n],[0,Sot(0,hMt(e),v),i,a,t]]}function vPt(r){return tPt(0)}function cPt(r){return tPt(1)}function APt(r){return KMt([3,eS,0],[0,r,[0,vPt(),0]])}function oPt(r,e){return iPt(r,e,vPt())}function sPt(r,e){return iPt(r,cPt(),e)}function bPt(r){if(!r)return cPt();var e=r[1];return r[2]?oPt(e,bPt(r[2])):e}function lPt(r,e,n){var t=VX[4],a=VX[3];return[0,vut,[0,[0,[6,e],[0,r,0]]],[0,n,xMt(r),a,t]]}function BPt(r,e,n,t,a){var u=VX[4],f=VX[3],i=xMt(t),v=mMt(xMt(e),i),c=[0,a,mMt(xMt(r),v),f,u],A=[0,[0,vut,[0,[0,vut,[4,n],hMt(r)],t],0],0];return[0,vut,[6,r,[0,[0,vut,[0,[0,vut,jte,hMt(r)],e],0],A]],c]}function jPt(r,e,n){var t=VX[4],a=VX[3],u=[0,n,dMt(xMt(r),function(r){return xMt(r[3])},e),a,t];return[0,vut,[6,r,H0(function(e){var n=e[3],t=e[2],a=e[1];return[0,vut,[0,[0,vut,[5,a,t],hMt(r)],n],0]},e)],u]}function kPt(r){var e=_Mt(xMt,r),n=VX[4],t=VX[3];return[0,vut,[0,[0,0,r]],[0,[7,H0(hMt,r)],e,t,n]]}function pPt(r){return kPt(0)}function mPt(r,e){var n=VX[4],t=VX[3];return[0,vut,[0,[0,[9,r],[0,e,0]]],[0,1,xMt(e),t,n]]}function dPt(r){var e=VX[4],n=VX[3];return[0,vut,[0,[0,4,[0,r,0]]],[0,1,xMt(r),n,e]]}function _Pt(r){var e=VX[4],n=VX[3],t=xMt(r),a=[0,mAt(hMt(r)),t,n,e];return[0,r[1],r[2],a]}function hPt(r,e){if(!cAt(r[2]))throw gQ([0,xz,Bte],1);var n=VX[4],t=VX[3],a=[0,rS,xMt(e),t,n];return[0,vut,[3,[0,vut,[0,r[1]],r[2]],e],a]}function xPt(r,e){return hPt([0,r,[10,mAt(hMt(e))]],e)}function yPt(r,e,n){var t=VX[4],a=VX[3];return[0,vut,[8,r,e,n],[0,e,xMt(n),a,t]]}function wPt(r){var e=VX[4],n=VX[3];return[0,vut,[7,r],[0,1,xMt(r),n,e]]}function gPt(r,e,n){return[0,vut,[11,r,e,n],[0,rS,VX[2],VX[3],VX[4]]]}function qPt(r,e,n){return[0,vut,[15,r,e,n],[0,n,VX[2],VX[3],VX[4]]]}function IPt(r,e){return iut([0,r,e],vut)}function DPt(r,e){return IPt(PMt(r),e)}function EPt(r,e){var n=r[2];if(!cAt(n))throw gQ([0,xz,lte],1);var t=mAt(n);return iut([1,r[1],t,e],vut)}function NPt(r){return iut([0,[0,r[1],0,r[3][1]],r],r[1])}function TPt(r,e,n){return rPt([0,DPt(r,e),0],n)}function FPt(r,e){return rPt([0,NPt(r),0],e)}function MPt(r){return OH(hMt(r),rS)?r:FPt(r,pPt())}function PPt(r,e,n){var t=TMt(ste,e[3][1]),a=VX[4],u=VX[3],f=xMt(n),i=mMt(xMt(e),f),v=[0,e[3][1],i,u,a],c=[0,[0,n[1],[0,GMt,n],0],0],A=[0,r,$Mt(t)],o=[0,[0,e[1],A,0],c],s=[6,$Mt(t),o],b=[0,e[1],s,v];return rPt([0,DPt(t,e),0],b)}function UPt(r){return[0,vut,r[1],r[2]]}function GPt(r,e,n,t){if("number"!=typeof e&&8===e[0]){var a=e[4],u=e[5],f=e[2],i=e[1];if(1===G0(a))var v=t,c=[0,UPt(n),0];else{var A=FMt(Ate,a);v=rPt([0,DPt(n,kPt(H0($Mt,A))),0],t),c=H0(UPt,A)}return[0,vut,[12,r,i,f,0,c,u,v],[0,e,VX[2],VX[3],VX[4]]]}throw gQ([0,xz,ote],1)}function $Pt(r,e,n,t){if("number"!=typeof e&&8===e[0]){var a=e[5],u=e[4],f=e[2],i=e[1],v=G0(n);if(G0(u)!==v)throw gQ([0,xz,vte],1);var c=[0,e,VX[2],VX[3],VX[4]];return[0,vut,[12,r,i,f,0,H0(UPt,n),a,t],c]}throw gQ([0,xz,cte],1)}function KPt(r,e,n){return DPt(r,GPt(r[1],r[2],e,n))}function OPt(r,e,n){return DPt(r,$Pt(r[1],r[2],e,n))}function RPt(r,e){var n=_At(e);return[8,0,0,0,_At(r),n]}function QPt(r){return[8,0,0,0,[0,oS,0],_At(r)]}var CPt=RPt(rS,rS);function HPt(r){return r[2]}function VPt(r){return r&&!r[2]?r[1]:kPt(r)}function LPt(r,e){var n=_At(hMt(e));return GPt(fte,[8,0,0,0,_At(r[2]),n],r,e)}function zPt(r,e){var n=_At(hMt(e));return $Pt(ute,[8,0,0,0,H0(HPt,r),n],r,e)}function SPt(r,e){var n=H0(function(r){return r[2][1]},r),t=e[2],a=e[3][1];if(12===t[0]&&!t[4]&&"number"!=typeof a&&8===a[0]&&!a[3]){var u=t[2],f=e[3],i=a[4],v=a[2],c=t[7],A=t[6],o=t[5],s=t[3],b=t[1],l=f[4],B=f[3],j=f[2],k=H0(function(r){return Hct(n,r)},a[5]),p=H0(function(r){return Hct(n,r)},i),m=[0,[8,u,v,H0(function(r){var e=r[2],t=e[2],a=e[1],u=Hct(n,e[3]);return[0,a[1],t,u]},r),p,k],j,B,l];return[0,e[1],[12,b,u,s,r,o,A,c],m]}throw gQ([0,xz,ate],1)}function ZPt(r,e){return fPt(r,0,e)}function WPt(r){return wPt(pPt())}function XPt(r,e,n){for(var t=0,a=0,u=0,f=n;;){if(!f){var i=qPt(r,a,Tct(r,u,e));return rPt(Q0(t),i)}var v=f[1],c=v[2],A=v[1],o=c[2],s=f[2];if(1!==o[0]||o[1]){var b=TMt(A,hMt(c));l=[0,DPt(b,c),t],B=b}else var l=t,B=[0,o[2]];var j=hMt(c);t=l,a=[0,[0,vut,[0,A,B[1]],j],a],u=[0,[0,A,hMt(c)],u],f=s}}function JPt(r){return XPt(0,0,r)}function YPt(r,e,n){for(var t=0,a=0,u=e;;){if(!u){var f=qPt(r,a,[3,r,s1(qct,n),0]);return rPt(Q0(t),f)}var i=u[1],v=i[2],c=i[1],A=u[2],o=MAt(c,n);if(!o)throw gQ([0,xz,Yne],1);var s=o[1];r:if(cAt(s))var b=TMt(c,s),l=[0,EPt(b,v),t],B=b;else{var j=v[2];if(1===j[0]&&!j[1]){l=t,B=[0,j[2]];break r}var k=TMt(c,s);l=[0,DPt(k,v),t],B=k}t=l,a=[0,[0,vut,[0,c,B[1]],s],a],u=A}}function rUt(r,e){var n=pPt(),t=uz(e,fPt($Mt([0,"@call_error",[8,0,0,0,0,[0,vS,0]]]),0,n)),a=pPt();return iPt(fPt($Mt([0,"@call_succeeded",[8,0,0,0,0,[0,eS,0]]]),0,a),r,t)}var eUt=U2([0,function(r,e){if(0===r[0]){var n=r[1];return 0===e[0]?YC(n,e[1]):-1}var t=r[1];return 0===e[0]?1:YC(t,e[1])}]);function nUt(r){return NMt(r)}function tUt(r,e){var n=eUt[18].call(null,[0,e],r);return n?n[1]:e}function aUt(r,e){var n=nUt(e);return[0,n,eUt[2].call(null,[0,e],n,r)]}function uUt(r,e){var n=e[3],t=fUt(r,e[2]);return[0,e[1],t,n]}function fUt(r,e){switch(e[0]){case 0:var n=e[1],t=n[1],a=H0(function(e){return uUt(r,e)},n[2]);return[0,[0,UFt(function(r){return r},function(e){var n=eUt[18].call(null,[1,e],r);return n?n[1]:e},t),a]];case 1:return[1,e[1],tUt(r,e[2])];case 2:return e;case 3:var u=e[1],f=uUt(r,e[2]);return[3,iUt(r,u),f];case 4:var i=e[1],v=i[2],c=BUt(r,i[1]);return[4,[0,c[1],uUt(c[2],v)]];case 5:var A=e[2],o=e[1],s=uUt(r,e[3]),b=uUt(r,A);return[5,uUt(r,o),b,s];case 6:var l=e[1],B=lUt(r,e[2]);return[6,uUt(r,l),B];case 7:return[7,uUt(r,e[1])];case 8:var j=e[1],k=e[3],p=e[2],m=nUt(j);return[8,m,p,uUt(eUt[2].call(null,[1,j],m,r),k)];case 9:var d=e[4],_=e[2];return[9,e[1],_,uUt(r,e[3]),d];case 10:var h=e[3],x=e[2],y=aUt(r,e[1]);return[10,y[1],x,uUt(y[2],h)];case 11:var w=e[2],g=e[1],q=uUt(r,e[3]);return[11,tUt(r,g),w,q];case 12:var I=e[7],D=e[6],E=e[4],N=e[3],T=e[2],F=e[1],M=cUt(r,e[5]);return[12,F,T,N,E,M[1],D,uUt(M[2],I)];case 13:var P=e[4],U=e[3],G=e[2],$=e[1],K=uUt(r,e[5]),O=uUt(r,P),R=uUt(r,U);return[13,$,uUt(r,G),R,O,K];case 14:var Q=e[3],C=e[4],H=Q[9],V=Q[8],L=Q[7],z=Q[6],S=Q[5],Z=Q[4],W=Q[3],X=Q[2],J=Q[1],Y=e[2],rr=BUt(r,e[1]),er=rr[2],nr=rr[1],tr=uUt(er,V),ar=uUt(er,L),ur=uUt(er,z),fr=uUt(er,S),ir=uUt(er,Z),vr=uUt(er,W),cr=[0,J,uUt(er,X),vr,ir,fr,ur,ar,tr,H];return[14,nr,vUt(er,Y),cr,C];case 15:var Ar=e[3];return[15,e[1],vUt(r,e[2]),Ar];default:var or=e[3],sr=e[2],br=e[1];if(or)var lr=or[1],Br=lr[2],jr=[0,[0,tUt(r,lr[1]),Br]];else jr=0;var kr=lUt(r,sr);return[16,uUt(r,br),kr,jr]}}function iUt(r,e){var n=e[2],t=e[3];switch(n[0]){case 0:var a=[0,tUt(r,n[1])];break;case 1:var u=n[1],f=uUt(r,n[2]);a=[1,uUt(r,u),f];break;default:var i=n[2];a=[2,uUt(r,n[1]),i]}return[0,e[1],a,t]}function vUt(r,e){return H0(function(e){var n=e[3],t=e[2],a=tUt(r,e[2][2]);return[0,e[1],[0,t[1],a],n]},e)}function cUt(r,e){if(!e)return[0,0,r];var n=e[1],t=e[2],a=aUt(r,n[2]),u=[0,n[1],a[1],n[3]],f=cUt(a[2],t);return[0,[0,u,f[1]],f[2]]}function AUt(r,e){var n=e[2];if("number"==typeof n)var t=[0,n,r];else switch(n[0]){case 0:var a=aUt(r,n[1]);t=[0,[0,a[1]],a[2]];break;case 1:t=[0,n,r];break;case 2:var u=oUt(r,n[1]);t=[0,[2,u[1]],u[2]];break;case 3:var f=n[1],i=oUt(r,FFt(f)),v=i[2];t=[0,[3,PFt(f,i[1])],v];break;case 4:var c=AUt(r,n[1]);t=[0,[4,c[1]],c[2]];break;case 5:var A=n[1],o=AUt(r,n[2]);t=[0,[5,A,o[1]],o[2]];break;default:var s=n[1],b=n[2],l=aMt(s),B=GFt[48].call(null,l),j=aMt(s);if(0!==l1(z1,B,GFt[48].call(null,j)))throw gQ([0,xz,gte],1);for(var k=r,p=B;;){if(!p){var m=sUt(k,b);t=[0,[6,sUt(k,s),m],k];break}var d=p[2];k=aUt(k,p[1])[2],p=d}}return[0,[0,e[1],t[1],e[3]],t[2]]}function oUt(r,e){if(!e)return[0,0,r];var n=e[2],t=AUt(r,e[1]),a=t[1],u=oUt(t[2],n);return[0,[0,a,u[1]],u[2]]}function sUt(r,e){var n=e[2];if("number"==typeof n)var t=n;else switch(n[0]){case 0:t=[0,tUt(r,n[1])];break;case 2:t=[2,bUt(r,n[1])];break;case 3:var a=n[1];t=[3,PFt(a,bUt(r,FFt(a)))];break;case 4:t=[4,sUt(r,n[1])];break;case 5:t=[5,n[1],sUt(r,n[2])];break;case 6:var u=n[1],f=sUt(r,n[2]);t=[6,sUt(r,u),f];break;default:t=n}return[0,e[1],t,e[3]]}function bUt(r,e){return H0(function(e){return sUt(r,e)},e)}function lUt(r,e){return H0(function(e){var n=e[2],t=e[3],a=n[2],u=AUt(r,n[1]),f=[0,u[1],uUt(u[2],a)];return[0,e[1],f,t]},e)}function BUt(r,e){var n=function r(e,n){if(!n)return[0,0,e];var t=n[2],a=function(r,e){var n=e[2];switch(n[0]){case 0:var t=n[2],a=AUt(r,n[1]),u=a[1],f=[0,function(r){return[0,u,uUt(r,t)]},a[2]];break;case 1:var i=n[3],v=n[2],c=aUt(r,n[1]),A=c[1];f=[0,function(r){return[1,A,v,uUt(r,i)]},c[2]];break;default:var o=n[3],s=n[2],b=aUt(r,n[1]),l=b[1];f=[0,function(r){return[2,l,s,iUt(r,o)]},b[2]]}return[0,[0,e[1],f[1],e[3]],f[2]]}(e,n[1]),u=a[1],f=r(a[2],t);return[0,[0,u,f[1]],f[2]]}(r,e),t=n[2];return[0,H0(function(r){var e=r[3],n=uz(r[2],t);return[0,r[1],n,e]},n[1]),t]}function jUt(r,e){var n=eUt[18].call(null,[0,e],r);return n?n[1]:e}function kUt(r,e){return eUt[6].call(null,[0,e],r)}function pUt(r,e){var n=e[2],t=e[3];switch(n[0]){case 0:var a=n[1],u=[0,[0,a[1],H0(function(e){return pUt(r,e)},a[2])]];break;case 1:u=[1,n[1],jUt(r,n[2])];break;case 3:var f=n[1],i=pUt(r,n[2]);u=[3,mUt(r,f),i];break;case 4:var v=n[1],c=v[2],A=yUt(r,v[1]);u=[4,[0,A[1],pUt(A[2],c)]];break;case 5:var o=n[2],s=n[1],b=pUt(r,n[3]),l=pUt(r,o);u=[5,pUt(r,s),l,b];break;case 6:var B=n[1],j=xUt(r,n[2]);u=[6,pUt(r,B),j];break;case 7:u=[7,pUt(r,n[1])];break;case 8:var k=n[2];u=[8,n[1],k,pUt(r,n[3])];break;case 9:var p=n[4],m=n[2];u=[9,n[1],m,pUt(r,n[3]),p];break;case 10:var d=n[1],_=n[3];u=[10,d,n[2],pUt(kUt(r,d),_)];break;case 11:var h=n[2],x=n[1],y=pUt(r,n[3]);u=[11,jUt(r,x),h,y];break;case 12:for(var w=n[5],g=w,q=r,I=n[7],D=n[6],E=n[4],N=n[3],T=n[2],F=n[1];;){if(!g){u=[12,F,T,N,E,w,D,pUt(q,I)];break}var M=g[2],P=kUt(q,g[1][2]);g=M,q=P}break;case 13:var U=n[4],G=n[3],$=n[2],K=n[1],O=pUt(r,n[5]),R=pUt(r,U),Q=pUt(r,G);u=[13,K,pUt(r,$),Q,R,O];break;case 14:var C=n[3],H=n[4],V=C[9],L=C[8],z=C[7],S=C[6],Z=C[5],W=C[4],X=C[3],J=C[2],Y=C[1],rr=n[2],er=yUt(r,n[1]),nr=er[2],tr=er[1],ar=pUt(nr,L),ur=pUt(nr,z),fr=pUt(nr,S),ir=pUt(nr,Z),vr=pUt(nr,W),cr=pUt(nr,X),Ar=[0,Y,pUt(nr,J),cr,vr,ir,fr,ur,ar,V];u=[14,tr,dUt(nr,rr),Ar,H];break;case 15:var or=n[3];u=[15,n[1],dUt(r,n[2]),or];break;case 16:var sr=n[3],br=n[2],lr=n[1];if(sr)var Br=sr[1],jr=Br[2],kr=[0,[0,jUt(r,Br[1]),jr]];else kr=0;var pr=xUt(r,br);u=[16,pUt(r,lr),pr,kr];break;default:u=n}return[0,e[1],u,t]}function mUt(r,e){var n=e[2],t=e[3];switch(n[0]){case 0:var a=[0,jUt(r,n[1])];break;case 1:var u=n[1],f=pUt(r,n[2]);a=[1,pUt(r,u),f];break;default:var i=n[2];a=[2,pUt(r,n[1]),i]}return[0,e[1],a,t]}function dUt(r,e){return H0(function(e){var n=e[3],t=e[2],a=jUt(r,e[2][2]);return[0,e[1],[0,t[1],a],n]},e)}function _Ut(r,e){for(var n=e;;){var t=n[2];if("number"==typeof t)return r;switch(t[0]){case 0:return kUt(r,t[1]);case 1:return r;case 2:return hUt(r,t[1]);case 3:return hUt(r,FFt(t[1]));case 4:n=t[1];break;case 5:n=t[2];break;default:var a=t[1],u=aMt(a),f=GFt[48].call(null,u),i=aMt(a);if(0===l1(z1,f,GFt[48].call(null,i)))return z0(kUt,r,f);throw gQ([0,xz,qte],1)}}}function hUt(r,e){return z0(_Ut,r,e)}function xUt(r,e){return H0(function(e){var n=e[2],t=n[1],a=e[3],u=n[2],f=[0,t,pUt(_Ut(r,t),u)];return[0,e[1],f,a]},e)}function yUt(r,e){var n=function r(e,n){if(!n)return[0,0,e];var t=n[2],a=function(r,e){var n=e[2];switch(n[0]){case 0:var t=n[1],a=n[2],u=[0,function(r){return[0,t,pUt(r,a)]},_Ut(r,t)];break;case 1:var f=n[1],i=n[3],v=n[2];u=[0,function(r){return[1,f,v,pUt(r,i)]},kUt(r,f)];break;default:var c=n[1],A=n[3],o=n[2];u=[0,function(r){return[2,c,o,mUt(r,A)]},kUt(r,c)]}return[0,[0,e[1],u[1],e[3]],u[2]]}(e,n[1]),u=a[1],f=r(a[2],t);return[0,[0,u,f[1]],f[2]]}(r,e),t=n[2];return[0,H0(function(r){var e=r[3],n=uz(r[2],t);return[0,r[1],n,e]},n[1]),t]}function wUt(r){var e=r;r:for(;;){var n=e[2];if("number"!=typeof n)switch(n[0]){case 2:return X0(wUt,n[1]);case 3:break r;case 6:e=n[1];continue;case 0:break;default:return 0}return 1}for(var t=n[1];;){if(!t)return 1;var a=t[2],u=wUt(t[1][2][2]);if(!u)return u;t=a}}function gUt(r){var e=wUt(r);if(!e)return e;var n=aMt(r);return GFt[31].call(null,n)}function qUt(r){return[0,yst(r)]}function IUt(r){return qUt([2,r])}function DUt(r){var e=r[2];switch(e[0]){case 0:var n=e[1],t=n[1],a=H0(DUt,n[2]);return[1,Ite,QY([0,MUt(t),0],a)];case 1:var u=[0,[0,e[2]],0];return[1,1===e[1]?"VarE!":Dte,u];case 2:return[1,Ete,[0,GUt(e[1]),0]];case 3:var f=e[1],i=[0,DUt(e[2]),0];return[1,Nte,[0,NUt(f),i]];case 4:var v=e[1],c=v[1],A=[0,DUt(v[2]),0];return[1,Tte,QY(H0(OUt,c),A)];case 5:var o=e[2],s=e[1],b=[0,DUt(e[3]),0],l=[0,DUt(o),b];return[1,Fte,[0,DUt(s),l]];case 6:var B=e[1],j=H0(KUt,e[2]);return[1,Mte,QY([0,DUt(B),0],j)];case 7:return[1,Pte,[0,DUt(e[1]),0]];case 8:var k=e[2],p=e[1],m=[0,DUt(e[3]),0];return[1,Ute,[0,[0,p],[0,qUt(k),m]]];case 9:if(e[1]){var d=e[3],_=e[2],h=[0,qUt(e[4]),0],x=[0,DUt(d),h];return[1,Gte,[0,RUt(_),x]]}var y=e[3],w=e[2],g=[0,qUt(e[4]),0],q=[0,DUt(y),g];return[1,$te,[0,RUt(w),q]];case 10:return[1,"DeclareE",[0,[0,e[1]],[0,DUt(e[3]),0]]];case 11:var I=e[2],D=e[1],E=[0,DUt(e[3]),0];return[1,"DefineE",[0,[0,D],[0,PUt(I),E]]];case 12:var N=e[5],T=e[6],F=e[4],M=e[3],P=e[2],U=e[1],G=[0,DUt(e[7]),0],$=[0,qUt($ct(T)),G],K=QY(N?[0,[1,"params",H0(FUt,N)],0]:0,$),O=QY(H0(RUt,F),K),R=[0,[0,ibt(M)],0];return[1,Kte,QY([0,[0,U],[0,[0,cbt(P)],R]],O)];case 13:var Q=e[4],C=e[3],H=e[2],V=e[1],L=[0,DUt(e[5]),0],z=[0,DUt(Q),L],S=[0,DUt(C),z],Z=[0,DUt(H),S];return[1,"SelfCallE",[0,qUt($ct(V)),Z]];case 14:var W=e[3],X=e[2],J=e[1],Y=[0,qUt(e[4]),0],rr=[0,EUt(W),Y],er=QY(TUt(X),rr);return[1,"ActorE",QY(H0(OUt,J),er)];case 15:var nr=e[2],tr=e[1],ar=[0,qUt(e[3]),0],ur=TUt(nr);return[1,Ote,QY([0,vbt(tr),ur],ar)];default:var fr=e[3],ir=e[2],vr=e[1];if(fr){var cr=[0,Rte,[0,[0,fr[1][1]],0]],Ar=QY(H0(KUt,ir),cr);return[1,Qte,QY([0,DUt(vr),0],Ar)]}var or=H0(KUt,ir);return[1,Cte,QY([0,DUt(vr),0],or)]}}function EUt(r){var e=r[9],n=r[8],t=r[7],a=r[6],u=r[5],f=r[4],i=r[3],v=r[2],c=[0,qUt(e[2]),0],A=[0,[1,"StableType",[0,qUt(e[1]),c]],0],o=[0,[1,"StableRecord",[0,DUt(n),0]],A],s=[0,[1,"LowMemory",[0,DUt(t),0]],o],b=[0,[1,"Inspect",[0,DUt(a),0]],s],l=[0,[1,"Timer",[0,DUt(u),0]],b],B=[0,[1,"Heartbeat",[0,DUt(f),0]],l],j=[0,[1,"Post",[0,DUt(i),0]],B];return[1,Vte,[0,[1,Hte,[0,DUt(v),0]],j]]}function NUt(r){var e=r[2];switch(e[0]){case 0:return[1,"VarLE",[0,[0,e[1]],0]];case 1:var n=e[1],t=[0,DUt(e[2]),0];return[1,"IdxLE",[0,DUt(n),t]];default:var a=[0,[0,e[2]],0];return[1,"DotLE",[0,DUt(e[1]),a]]}}function TUt(r){for(var e=r,n=0;;){if(!e)return n;var t=e[1];e=e[2],n=[0,[1,t[2][1],[0,[0,t[2][2]],0]],n]}}function FUt(r){return[0,r[2]]}function MUt(r){if("number"==typeof r)switch(r){case 0:return Lte;case 1:return zte;case 2:return Ste;case 3:return Zte;case 4:return Wte;case 5:return Xte;case 6:return Jte;case 7:return Yte;case 8:return rae;case 9:return eae;case 10:return nae;case 11:return tae;case 12:return aae;case 13:return uae;case 14:return fae;case 15:return iae;case 16:return vae;case 17:return cae;case 18:return Aae;case 19:return oae;case 20:return sae;case 21:return bae;case 22:return lae;case 23:return Bae;case 24:return jae;case 25:return kae;case 26:return pae;case 27:return mae;case 28:return dae;case 29:return _ae;case 30:return hae;case 31:return xae;default:return yae}switch(r[0]){case 0:return[1,"CallPrim",H0(qUt,r[1])];case 1:var e=r[1],n=[0,Ljt(r[2]),0];return[1,"UnPrim",[0,qUt(e),n]];case 2:var t=r[1],a=[0,zjt(r[2]),0];return[1,"BinPrim",[0,qUt(t),a]];case 3:var u=r[1],f=[0,Sjt(r[2]),0];return[1,"RelPrim",[0,qUt(u),f]];case 4:return[1,"ProjPrim",[0,[0,kQ+r[1]],0]];case 5:return[1,wae,[0,[0,r[1]],0]];case 6:return[1,"DotPrim",[0,[0,r[1]],0]];case 7:return[1,"ActorDotPrim",[0,[0,r[1]],0]];case 8:var i=r[1],v=[0,qUt(r[2]),0];return[1,"ArrayPrim",[0,PUt(i),v]];case 9:return[1,"BreakPrim",[0,[0,r[1]],0]];case 10:var c=r[1];return c?c[1]?gae:qae:Iae;case 11:return[1,"ShowPrim",[0,qUt(r[1]),0]];case 12:return[1,"SerializePrim",H0(qUt,r[1])];case 13:return[1,"DeserializePrim",H0(qUt,r[1])];case 14:return[1,"DeserializeOptPrim",H0(qUt,r[1])];case 15:var A=r[1],o=[0,IUt(r[2]),0];return[1,"NumConvTrapPrim",[0,IUt(A),o]];case 16:var s=r[1],b=[0,IUt(r[2]),0];return[1,"NumConvWrapPrim",[0,IUt(s),b]];case 17:var l=r[1],B=[0,qUt(r[2]),0];return[1,"CastPrim",[0,qUt(l),B]];case 18:return[1,"ActorOfIdBlob",[0,qUt(r[1]),0]];case 19:return[1,"SelfRef",[0,qUt(r[1]),0]];case 20:return[0,r[1]];case 21:var j=r[1];return j?j[1]?[1,"CPSAwait?",[0,qUt(r[2]),0]]:[1,"CPSAwait",[0,qUt(r[2]),0]]:[1,"CPSAwait*",[0,qUt(r[2]),0]];case 22:return r[1]?[1,"CPSAsync*",[0,qUt(r[2]),0]]:[1,"CPSAsync",[0,qUt(r[2]),0]];case 23:return[1,"ICReplyPrim",H0(qUt,r[1])];case 24:return[1,"ICStableWrite",[0,qUt(r[1]),0]];case 25:return[1,"ICStableRead",[0,qUt(r[1]),0]];case 26:return[1,"ICStableSize",[0,qUt(r[1]),0]];default:return[1,"ICStableStore",[0,qUt(r[1]),0]]}}function PUt(r){return r?Dae:Eae}function UUt(r){var e=r[2];if("number"==typeof e)return Nae;switch(e[0]){case 0:return[1,Tae,[0,[0,e[1]],0]];case 1:return[1,Fae,[0,GUt(e[1]),0]];case 2:return[1,Mae,H0(UUt,e[1])];case 3:return[1,Pae,H0($Ut,e[1])];case 4:return[1,Uae,[0,UUt(e[1]),0]];case 5:var n=e[1];return[1,Gae,[0,[0,n],[0,UUt(e[2]),0]]];default:var t=e[1],a=[0,UUt(e[2]),0];return[1,$ae,[0,UUt(t),a]]}}function GUt(r){if("number"==typeof r)return Kae;switch(r[0]){case 0:var e=r[1]?Oae:Rae;return[1,Qae,[0,[0,e],0]];case 1:return[1,Cae,[0,[0,uz(Klt[29],r[1])],0]];case 2:return[1,Hae,[0,[0,uz(Rlt[29],r[1])],0]];case 3:return[1,Vae,[0,[0,uz(Qlt[29],r[1])],0]];case 4:return[1,Lae,[0,[0,uz(Clt[29],r[1])],0]];case 5:return[1,zae,[0,[0,uz(Hlt[29],r[1])],0]];case 6:return[1,Sae,[0,[0,uz(Ult[29],r[1])],0]];case 7:return[1,Zae,[0,[0,uz(Vlt[29],r[1])],0]];case 8:return[1,Wae,[0,[0,uz(Llt[29],r[1])],0]];case 9:return[1,Xae,[0,[0,uz(zlt[29],r[1])],0]];case 10:return[1,Jae,[0,[0,uz(Slt[29],r[1])],0]];case 11:return[1,Yae,[0,[0,Jlt(r[1])],0]];case 12:return[1,rue,[0,[0,Zlt(r[1])],0]];case 13:return[1,eue,[0,[0,kQ+r[1]],0]];case 14:return[1,nue,[0,[0,r[1]],0]];default:var n=r[1];return[1,aue,[0,[0,uz(H6(tue),n)],0]]}}function $Ut(r){var e=[0,UUt(r[2][2]),0];return[1,r[2][1],e]}function KUt(r){var e=[0,DUt(r[2][2]),0];return[1,uue,[0,UUt(r[2][1]),e]]}function OUt(r){var e=r[2];switch(e[0]){case 0:var n=e[1],t=[0,DUt(e[2]),0];return[1,fue,[0,UUt(n),t]];case 1:var a=e[2],u=e[1],f=[0,DUt(e[3]),0];return[1,iue,[0,[0,u],[0,qUt(a),f]]];default:var i=e[2],v=e[1],c=[0,NUt(e[3]),0];return[1,"RefD",[0,[0,v],[0,qUt(i),c]]]}}function RUt(r){var e=[0,qUt(r[2][3]),0];return[1,_st(r[2][1]),e]}function QUt(r){var e=r[1];switch(e[0]){case 0:var n=e[1],t=[0,DUt(e[2]),0];return[1,"LibU",QY(H0(OUt,n),t)];case 1:return[1,"ProgU",H0(OUt,e[1])];default:var a=e[1];if(a){var u=e[4],f=e[3],i=e[2],v=a[1],c=[0,qUt(e[5]),0],A=[0,EUt(u),c],o=QY(TUt(f),A),s=QY(H0(OUt,i),o);return[1,vue,QY(H0(FUt,v),s)]}var b=e[4],l=e[3],B=e[2],j=[0,qUt(e[5]),0],k=[0,EUt(b),j],p=QY(TUt(l),k);return[1,cue,QY(H0(OUt,B),p)]}}function CUt(r,e){return 1-r||e}var HUt=[0,Wot[1]],VUt=P2(_ct),LUt=U2(hct),zUt=[0,0];function SUt(r,e,n){if(e===n)return 1;var t=LUt[18].call(null,[0,e,n],r[11][1]);if(t)return t[1];var a=Tot(0,e,n),u=LUt[2].call(null,[0,e,n],a,r[11][1]);return r[11][1]=u,a}function ZUt(r,e,n){if(e===n)return e;var t=LUt[18].call(null,[0,e,n],r[12][1]);if(t)return t[1];var a=Sot(0,e,n),u=LUt[2].call(null,[0,e,n],a,r[12][1]);return r[12][1]=u,a}var WUt=[Gl,"Ir_def.Check_ir.CheckFailed",zH()];function XUt(r,e,n,t){var a=[0,[0,vut,[0,n[1],n[2]],0],0],u=QY(H0(function(e){var n=e[2],t=e[1];return[0,vut,[0,[0,vut,[1,[14,t]],hMt(r)],n],0]},e),a),f=VX[4],i=VX[3];return[0,vut,[6,r,u],[0,t,dMt(xMt(r),function(r){return xMt(r[2][2])},u),i,f]]}function JUt(r){return function(e){return Qut(r,zfe,"IR type",Lfe,Vfe,Hfe,e)}}function YUt(r,e,n){return C6(function(r){throw gQ([0,WUt,Yut(JUt(e)(r))],1)},n)}function rGt(r,e,n,t){var a=1-n;return a?uz(YUt(0,e,Cfe),t):a}function eGt(r,e){var n=r[12],t=r[11],a=r[10],u=r[9],f=r[8],i=r[7],v=r[6],c=r[5],A=r[4],o=Wot[51].call(null,r[3],e[1]);return[0,r[1],r[2],o,A,c,v,i,f,u,a,t,n]}function nGt(r,e){var n=r[12],t=r[11],a=r[10],u=r[9],f=r[8],i=r[7],v=r[6],c=r[5],A=r[4],o=Wot[51].call(null,r[3],e);return[0,r[1],r[2],o,A,c,v,i,f,u,a,t,n]}function tGt(r,e){var n=r[12],t=r[11],a=r[10],u=r[9],f=r[8],i=r[7],v=r[6],c=r[5],A=gct[44][46].call(null,r[4],e);return[0,r[1],r[2],r[3],A,c,v,i,f,u,a,t,n]}function aGt(r,e,n,t){var a=1-SUt(r,n,t);if(!a)return a;var u=wst(t),f=wst(n);return fz(YUt(0,e,Qfe),f,u)}function uGt(r,e,n){var t=1-JAt(n);if(!t)return t;var a=wst(n);return uz(YUt(0,e,Rfe),a)}function fGt(r,e,n){var t=1-zAt(n);if(!t)return t;var a=wst(n);return uz(YUt(0,e,Ofe),a)}function iGt(r){var e=Xct(r);r:{if("number"!=typeof e){switch(e[0]){case 2:var n=e[1];return 17===n?0:n?1:0;case 3:if(1!==e[1])break r;break;case 8:if(!e[1])break r;break;default:break r}return 1}if(1===e)return 1}return 0}function vGt(r,e,n,t){for(var a=t;;){if(!a)return;for(var u=a[2],f=a[1],i=u;;){if(!i){a=u;break}var v=i[2],c=i[1],A=nct(c[1]);if(OH(nct(f[1]),A)){var o=c[1],s=f[1];iz(YUt(0,n,Kfe),s,o,e),i=v}else i=v}}}function cGt(r,e,n){r:{e:{n:{t:{var t=n;a:for(;;){if("number"==typeof t)return 2===t?YUt(0,vut,Aue):void 0;switch(t[0]){case 0:var a=t[2],u=t[1];return fz(YUt(0,vut,oue),u,a);case 1:break r;case 2:return;case 3:break e;case 4:break n;case 5:var f=t[1];return r<50?oGt(r+1|0,e,f):IL(oGt,[0,e,f]);case 7:break t;case 8:break a;case 9:var i=t[3];return AGt(e,t[2]),AGt(e,i),rGt(0,vut,e[1][2],"async in non-async flavor"),uGt(0,vut,Jct(i));case 10:var v=yst(t[1]);return uz(YUt(0,vut,yue),v);case 11:var c=t[2];rGt(0,vut,e[1][1],"named type field in non-typ_field flavor"),t=c;break;default:t=t[1]}}for(var A=t[3],o=t[2],s=t[1],b=t[5],l=t[4],B=lGt(e,A),j=B[1],k=tGt(e,B[2]),p=H0(function(r){return[1,r,0]},j),m=H0(function(r){return Sct(p,r)},l),d=H0(function(r){return Sct(p,r)},b),_=m;;){if(!_){var h=d;break}var x=_[2];AGt(k,_[1]),_=x}for(;h;){var y=h[2];AGt(k,h[1]),h=y}if(0===s){var w=1-(0===o?1:0);if(!w)return w;var g=wst(t);return uz(YUt(0,vut,xue),g)}for(var q=m;q;){var I=q[2];uGt(0,vut,q[1]),q=I}switch(o){case 0:rGt(0,vut,OH(s,kue),"one-shot query function pointless");var D=1-(0===d?1:0);if(!D)return D;var E=wst($ct(d));return uz(YUt(0,vut,pue),E);case 1:if(rGt(0,vut,0!==A?1:0,"promising function has no scope type argument"),rGt(0,vut,k[1][2],"promising function in post-async flavor"),1-(0!==s?1:0)){var N=yst(t);uz(YUt(0,vut,mue),N)}var T=1-X0(JAt,d);if(!T)return T;var F=yst(t);return uz(YUt(0,vut,due),F);default:if(rGt(0,vut,1-k[1][2],"replying function in pre-async flavor"),1-(0!==s?1:0)){var M=yst(t);uz(YUt(0,vut,_ue),M)}var P=1-X0(JAt,d);if(!P)return P;var U=yst(t);return uz(YUt(0,vut,hue),U)}}for(var G=t[1];;){if(!G)return;var $=G[2];AGt(e,G[1]),G=$}}for(var K=t[1],O=K;;){if(!O){vGt(0,Bue,vut,K);var R=1-Zrt(qct,K);if(!R)return R;var Q=yst(t);return uz(YUt(0,vut,jue),Q)}var C=O[2];bGt(e,0,O[1]),O=C}}for(var H=t[2],V=t[3],L=t[1];V;){var z=V[2];rGt(0,vut,e[1][1],"typ field in non-typ_field flavor"),V=z}for(var S=H,Z=[0,L];;){if(!S){vGt(0,bue,vut,H);var W=1-Zrt(qct,H);if(!W)return W;var X=yst(t);return uz(YUt(0,vut,lue),X)}var J=S[2];bGt(e,Z,S[1]),S=J}}for(var Y=t[2],rr=t[1],er=Y;er;){var nr=er[2];AGt(e,er[1]),er=nr}var tr=Jvt(rr);if(0===tr[0]){var ar=tr[1];if(!gct[44][31].call(null,rr,e[8][1])){var ur=gct[44][2].call(null,rr,e[8][1]);e[8][1]=ur;var fr=Jvt(rr),ir=fr[2],vr=fr[1];rGt(0,vut,1-cAt(ir),"type constructor RHS is_mut");var cr=lGt(e,vr),Ar=cr[2],or=H0(function(r){return[1,r,0]},cr[1]);AGt(tGt(e,Ar),Sct(or,ir))}return BGt(e,ar,Y,vut)}var sr=tr[1];if(1-gct[44][31].call(null,rr,e[4])){var br=yst(t);uz(YUt(0,vut,sue),br)}return BGt(e,sr,Y,vut)}function AGt(r,e){return qL(cGt(0,r,e))}function oGt(r,e,n){if("number"!=typeof n&&10===n[0]){var t=n[1];return r<50?cGt(r+1|0,e,t):IL(cGt,[0,e,t])}return r<50?cGt(r+1|0,e,n):IL(cGt,[0,e,n])}function sGt(r,e){return qL(oGt(0,r,e))}function bGt(r,e,n){var t=n[2];r:{if("number"!=typeof t&&10===t[0]){if(!e)break r;var a=t[1];switch(e[1]){case 1:break;case 0:case 4:return AGt(r,a);default:break r}}if(e&&1===e[1]&&!WAt(t)){var u=yst(t),f=n[1];return fz(YUt(0,vut,wue),f,u)}}return AGt(r,t)}function lGt(r,e){for(var n=Zct(e),t=H0(function(r){if("number"!=typeof r&&1===r[0]&&!r[2])return r[1];throw gQ([0,xz,Iue],1)},n),a=r[12],u=r[11],f=r[10],i=r[9],v=r[8],c=r[7],A=r[6],o=r[5],s=S0(function(r){var e=gct[44][45];return function(n){return e(r,n)}},t,r[4]),b=[0,r[1],r[2],r[3],s,o,A,c,v,i,f,u,a],l=H0(function(r){return Sct(n,r[3])},e),B=G0(t),j=t,k=W0(gct[2],t,l,gct[1]);;){if(!j){var p=l;break}for(var m=j[2],d=j[1],_=0,h=0,x=d;;){if(B<_){var y=Q0(h),w=F1(gue,H0(yst,h)),g=_st(d);iz(YUt(0,vut,que),g,w,y),j=m;break}var q=gct[18].call(null,x,k);if(!q){j=m;break}var I=Xct(q[1]);if("number"==typeof I){j=m;break}if(1!==I[0]){j=m;break}if(I[2]){j=m;break}_=_+1|0,h=[0,I,h],x=I[1]}}for(;;){if(!p)return[0,t,gct[44][38].call(null,t)];var D=p[2];AGt(b,p[1]),p=D}}function BGt(r,e,n,t){var a=G0(e),u=G0(n);if(a=Mn){if(OH(t[4][2][1][2],xie))return wie;throw gQ([0,xz,yie],1)}if(En===Yn)return[0,[0,7,[0,UGt(t[4][2][1]),0]]];if(En===g){var Pn=kn[3][1],Un=t[4][2];if("number"!=typeof Pn&&8===Pn[0]&&!Pn[1]&&!Pn[2]&&!Pn[3])return[0,[0,[13,Pn[5]],[0,UGt(Un[1]),0]]];throw gQ([0,xz,hie],1)}if(En===kI)return[0,[0,8,[0,UGt(t[4][2][1]),0]]];if("getCertificate"===En){if(TGt(t[4][2][1]))return _ie;throw gQ([0,xz,die],1)}if(En===Ac){var Gn=kn[3][1],$n=t[4][2];if("number"!=typeof Gn&&8===Gn[0]&&!Gn[1]&&!Gn[2]&&!Gn[3])return[0,[0,[12,Gn[4]],[0,UGt($n[1]),0]]];throw gQ([0,xz,mie],1)}if("setCertifiedData"===En)return[0,[0,23,[0,UGt(t[4][2][1]),0]]];if(En===vh){if(OH(t[4][2][1][2],jie))return pie;throw gQ([0,xz,kie],1)}if("timeoutSet"===En)return[0,[0,22,[0,UGt(t[4][2][1]),0]]]}else{if(En===WI){var Kn=t[4][2][1][2];if(11===Kn[0]&&!Kn[1])return lie;throw gQ([0,xz,Bie],1)}if(En===Fu){var On=kn[3][1],Rn=t[4][2];if("number"!=typeof On&&8===On[0]&&!On[1]&&!On[2]&&!On[3]){var Qn=On[5],Cn=On[4],Hn=[0,UGt(Rn[1]),0],Vn=$ct(Qn);return[0,[0,[17,$ct(Cn),Vn],Hn]]}throw gQ([0,xz,bie],1)}if("cyclesAccept"===En)return[0,[0,17,[0,UGt(t[4][2][1]),0]]];if("cyclesAdd"===En)return[0,[0,16,[0,UGt(t[4][2][1]),0]]];if("cyclesAvailable"===En){if(TGt(t[4][2][1]))return sie;throw gQ([0,xz,oie],1)}if("cyclesBalance"===En){if(TGt(t[4][2][1]))return Aie;throw gQ([0,xz,cie],1)}if("cyclesBurn"===En)return[0,[0,21,[0,UGt(t[4][2][1]),0]]];if("cyclesRefunded"===En){if(TGt(t[4][2][1]))return vie;throw gQ([0,xz,iie],1)}}var Ln=t[4][2],zn=Ln[1][2];return 11===zn[0]?[0,[0,[20,En],PGt(zn[1])]]:[0,[0,[20,En],[0,UGt(Ln[1]),0]]]}var Sn=L1(95,En);if(Sn&&"num"===Sn[1]){var Zn=Sn[2];if(Zn&&"wrap"===Zn[1]){var Wn=Zn[2];if(Wn){var Xn=Wn[2];if(Xn&&!Xn[2]){var Jn=Xn[1];return[0,[0,[16,Gct(Wn[1]),Gct(Jn)],[0,UGt(Fn[1]),0]]]}}}}throw gQ([0,xz,fie],1)}var rt=L1(95,En);if(rt&&"num"===rt[1]){var et=rt[2];if(et&&"conv"===et[1]){var nt=et[2];if(nt){var tt=nt[2];if(tt&&!tt[2]){var at=tt[1];return[0,[0,[15,Gct(nt[1]),Gct(at)],[0,UGt(Tn[1]),0]]]}}}}throw gQ([0,xz,aie],1)}}var ut=t[3],ft=[0,UGt(t[4][2][1]),0],it=[0,UGt(kn),ft];return[0,[0,[0,ut[3]],it]]}var vt=t[2][2],ct=t[7],At=t[4],ot=t[3],st=t[1];if(vt){var bt=vt[1],lt=bt[1];if("number"==typeof bt[2][2])var Bt=0,jt=[0,lt];else Bt=[0,bt[2]],jt=[0,lt]}else Bt=0,jt=0;var kt=t$t(e[1],Bt,0,At),pt=kt[5],mt=kt[4],dt=kt[3],_t=kt[1],ht=H0(WGt,ot),xt=H0(function(r){return[1,r[2][1],0]},ht),yt=H0(function(r){return Sct(xt,r)},pt);return[12,st,jt,mt,ht,_t,yt,dt(UGt(ct))]}var wt=t[1],gt=t[2];if(OH(wt[3][1],iS)){var qt=[0,UGt(gt),0];return[0,[0,3,[0,UGt(wt),qt]]]}var It=[0,UGt(t[2]),0];return[0,[0,2,[0,UGt(wt),It]]]}for(var Dt=t[1],Et=UGt(t[2]);;){var Nt=Dt[2];if(41!==Nt[0])break;Dt=Nt[1]}var Tt=Dt[2],Ft=Dt[3][1];switch(Tt[0]){case 2:var Mt=[0,Tt[1][2]];break;case 19:var Pt=Tt[2][2];Mt=[2,UGt(Tt[1]),Pt];break;case 22:var Ut=Tt[1],Gt=UGt(Tt[2]);Mt=[1,UGt(Ut),Gt];break;default:throw gQ([0,kz,"Unexpected expression as lvalue"],1)}return[3,[0,Dt[1],Mt,Ft],Et]}var $t=t[1],Kt=t[2];if(nAt($t[3][1])){var Ot=UGt($t),Rt=Kt[2],Qt=$t[3][1],Ct=function(r,e,n){return[8,0,0,r,e,n]},Ht=mAt(bAt(Qt)),Vt=function(r,e,n){var t=cAt(bAt(Qt))?[5,[10,zX]]:[5,zX];return fPt($Mt([0,r,Ct([0,Vce,0],[0,t,0],[0,Ct(0,e,n),0])]),[0,Ht,0],Ot)};u:{f:{if(cAt(bAt(Qt))){if(Rt===KA){var Lt=Vt("@mut_array_get",[0,nS,0],[0,zX,0]);break u}if(Rt===c_){Lt=Vt("@mut_array_keys",0,[0,Kct(nS),0]);break u}if(Rt===jP){Lt=Vt("@mut_array_put",[0,nS,[0,zX,0]],0);break u}if(Rt===i){Lt=Vt("@mut_array_size",0,[0,nS,0]);break u}if(Rt!==S$&&Rt!==Xq)break f;Lt=Vt("@mut_array_vals",0,[0,Kct(zX),0]);break u}if(Rt===KA){Lt=Vt("@immut_array_get",[0,nS,0],[0,zX,0]);break u}if(Rt===c_){Lt=Vt("@immut_array_keys",0,[0,Kct(nS),0]);break u}if(Rt===i){Lt=Vt("@immut_array_size",0,[0,nS,0]);break u}if(Rt===S$||Rt===Xq){Lt=Vt("@immut_array_vals",0,[0,Kct(zX),0]);break u}}throw gQ([0,xz,Lce],1)}return Lt[2]}if(!rAt(16,$t[3][1])){if(!rAt(15,$t[3][1])){var zt=t[2];if(1===yAt([0,zt[2],0],$t[3][1])[1]){var St=[0,UGt($t),0];return[0,[0,[7,zt[2]],St]]}var Zt=[0,UGt($t),0];return[0,[0,[6,zt[2]],Zt]]}var Wt=UGt($t),Xt=Kt[2],Jt=function(r,e){return[8,0,0,0,r,e]},Yt=function(r,e,n){return fPt($Mt([0,r,Jt([0,fS,0],[0,Jt(e,n),0])]),0,Wt)};if(Xt!==wp){if(Xt!==i)throw gQ([0,xz,Wce],1);var ra=Yt("@text_size",0,[0,nS,0])}else ra=Yt("@text_chars",0,[0,Kct(Vvr),0]);return ra[2]}var ea=UGt($t),na=Kt[2],ta=function(r,e){return[8,0,0,0,r,e]},aa=function(r,e,n){return fPt($Mt([0,r,ta([0,iS,0],[0,ta(e,n),0])]),0,ea)};if(na!==KA)if(na!==c_)if(na!==i){if(na!==S$&&na!==Xq)throw gQ([0,xz,Sce],1);var ua=aa("@blob_vals",0,[0,Kct(Zce),0])}else ua=aa("@blob_size",0,[0,nS,0]);else ua=aa("@blob_keys",0,[0,Kct(nS),0]);else ua=aa("@blob_get",[0,nS,0],zce);return ua[2]}var fa=t[2],ia=e[1],va=A1(H0(function(r){var e=NGt(r[3])[1],n=UGt(r),t=TMt("base",e);return[0,DPt(t,n),function(r){return E0(MAt(r,oAt(Jct(e))[2]))?[0,t,0]:0}]},t[1])),ca=va[2],Aa=va[1],oa=A1(H0(function(r){var e=yAt(0,ia)[2],n=r[2],t=n[3],a=n[2];if(n[1][2]){var u=MAt(a[2],e),f=u?u[1]:[10,t[3][1]];if(!cAt(f))throw gQ([0,xz,Rce],1);var i=TMt(a[2],f);return[0,[0,EPt(i,UGt(t)),0],[0,vut,[0,a[2],i[1]],f]]}var v=MAt(a[2],e),c=v?v[1]:t[3][1];if(cAt(c))throw gQ([0,xz,Qce],1);var A=UGt(t),o=A[2];if(1!==o[0]||o[1]){var s=TMt(a[2],c);b=[0,DPt(s,A),0],l=s}else var b=0,l=[0,o[2]];return[0,b,[0,vut,[0,a[2],l[1]],c]]},fa)),sa=oa[2],ba=oa[1],la=A1(f1(function(r){var e=r[2],n=r[1];a:{for(var t=fa;t;){var a=t[1][2][2][2]===n?1:0,u=t[2];if(a){var f=a;break a}t=u}f=0}if(f)return 0;var i=TMt(n,e),v=f1(function(r){return uz(r,n)},ca);if(v&&!v[2]){var c=v[1];if(cAt(e)){var A=[0,vut,[2,$Mt(c),n],e],o=i[2];if(!cAt(o))throw gQ([0,xz,bte],1);var s=iut([2,i[1],o,A],vut)}else s=DPt(i,lPt($Mt(c),n,e));return[0,[0,s,[0,vut,[0,n,i[1]],e]],0]}throw gQ([0,_z,Cce],1)},oAt(ia)[2])),Ba=la[1],ja=qPt(0,QY(sa,la[2]),ia);return rPt(QY(Aa,QY(C0(ba),Ba)),ja)[2]}var ka=PGt(t[1]),pa=H0(function(r){return r[3][1]},ka);return KMt([12,pa],[0,VPt(ka),0])[2]}var ma=t[1];if(1===t[3]){var da=t[2],_a=[0,UGt(t[4]),0],ha=[0,UGt(da),_a];return APt(KMt([3,ma[1],0],ha))[2]}var xa=t[3],ya=t[2],wa=[0,UGt(t[4]),0],ga=[0,UGt(ya),wa];return[0,[0,[3,ma[1],xa],ga]]}var qa=t[2],Ia=t[1],Da=t[4];if(KGt([0,t[3]])(qa))return UGt(Da)[2];var Ea=t[4];if(KGt([1,t[3]])(Ea))return UGt(qa)[2];var Na=t[3],Ta=t[2],Fa=[0,UGt(t[4]),0],Ma=[0,UGt(Ta),Fa];return[0,[0,[2,Ia[1],Na],Ma]]}for(var Pa=t[1];;){var Ua=Pa[2];if(41!==Ua[0]){var Ga=UGt(Pa);return[0,[0,[18,e[1]],[0,[0,r,[0,[0,9,[0,Ga,0]]],[0,iS,Ga[3][2],VX[3],VX[4]]],0]]]}Pa=Ua[1]}}function $Gt(r,e){if(!e)return Tie;var n=e[1];if(!r)return[0,[0,NPt(UGt(n)),0],0];if(Tot(0,n[3][1],[3,0,[0,vst,0],0]))var t=0,a=[0,function(r){return NPt(xPt("@cycles",lPt(r,jS,nS)))},0];else t=0,a=0;if(Tot(0,n[3][1],[3,0,[0,cst,0],0]))var u=0,f=[0,function(r){return NPt(xPt(Eie,ZMt(lPt(r,pS,tS))))},0];else u=[0,NPt(hPt([0,Nie,[10,[6,tS]]],aPt())),0],f=0;var i=QY(t,u),v=QY(a,f);if(0===v)return[0,[0,NPt(UGt(n)),0],i];var c=TMt("par",n[3][1]),A=QY(H0(function(r){return uz(r,$Mt(c))},v),i);return[0,[0,DPt(c,UGt(n)),0],A]}function KGt(r){function e(r){r:{if(0===r[0]){var e=r[1];if(7!==e&&e)break r}else{var n=r[1];if(7!==n&&2<=n)break r}return 1}return 0}function n(r){r:{if(0===r[0]){if(2!==r[1])break r}else if(1>>0)break r;return 1}return 0}return function(t){var a=t;r:for(;;){var u=a[2];switch(u[0]){case 3:break r;case 41:a=u[1];break;default:return 0}}var f=u[1][1];if("number"!=typeof f)switch(f[0]){case 2:var i=f[1];if(e(r)&&fz(Rlt[12],i,Rlt[2]))return 1;if(n(r)&&fz(Rlt[12],i,Rlt[3]))return 1;break;case 3:var v=f[1];if(e(r)&&fz(Qlt[12],v,Qlt[2]))return 1;if(n(r)&&fz(Qlt[12],v,Qlt[3]))return 1;break;case 4:var c=f[1];if(e(r)&&fz(Clt[12],c,Clt[2]))return 1;if(n(r)&&fz(Clt[12],c,Clt[3]))return 1;break;case 5:var A=f[1];if(e(r)&&fz(Hlt[12],A,Hlt[2]))return 1;if(n(r)&&fz(Hlt[12],A,Hlt[3]))return 1;break;case 7:var o=f[1];if(e(r)&&fz(Vlt[12],o,Vlt[2]))return 1;if(n(r)&&fz(Vlt[12],o,Vlt[3]))return 1;break;case 8:var s=f[1];if(e(r)&&fz(Llt[12],s,Llt[2]))return 1;if(n(r)&&fz(Llt[12],s,Llt[3]))return 1;break;case 9:var b=f[1];if(e(r)&&fz(zlt[12],b,zlt[2]))return 1;if(n(r)&&fz(zlt[12],b,zlt[3]))return 1;break;case 10:var l=f[1];if(e(r)&&fz(Slt[12],l,Slt[2]))return 1;if(n(r)&&fz(Slt[12],l,Slt[3]))return 1;break;case 1:case 6:var B=f[1];if(e(r)&&fz(Ult[12],B,Ult[2]))return 1;var j=f[1];if(n(r)&&fz(Ult[12],j,Ult[3]))return 1}return 0}}function OGt(r,e,n,t,a,u){switch(e[2]){case 1:return LGt(r,e[3][3],0,n,t,a,u);case 0:case 3:return ZGt(r,e[2],t,a,u);default:throw gQ([0,xz,Uie],1)}}function RGt(r){var e=r[1];return[0,vut,[0,e,e],r[2]]}function QGt(r){if("number"!=typeof r&&3===r[0])return H0(RGt,r[2]);throw gQ([0,xz,Gie],1)}function CGt(r,e,n){var t=OMt(e),a=pMt(n)[2];return GFt[32].call(null,r,a)?n:QY([0,DPt([0,r,e],t),0],n)}function HGt(r,e,n){return t1(function(e){var t=e[2],a=t[1],u=a[2];if(1===u[0]){var f=u[1],i=f[2];if("number"!=typeof i&&0===i[0]){var v=i[1],c=f[3],A=t[2][2],o=a[1];if("number"==typeof A&&A&&v[2]===r){if(r!==Cv)if(r!==ve)if(r!==zl)if(r!==bc){if(r===fp||r===lp)s=[0,0,0];else var s=0;var b=kPt(0),l=fPt($Mt([0,v[2],c]),s,b)}else{var B=pPt(),j=$Mt([0,"@set_global_timer",sS]),k=rPt([0,NPt(fPt($Mt([0,v[2],c]),Kie,j)),0],B);l=[0,o,k[2],k[3]]}else{var p=pPt();l=CMt(0,fPt($Mt([0,v[2],c]),[0,0,0],p))}else{var m=oAt(n)[2],d=TMt(Oie,cS),_=TMt(Rie,iS),h=tst(m),x=TMt(Qie,h),y=Nct(0,[0,[0,Vie,d[2]],[0,[0,Hie,_[2]],[0,[0,Cie,x[2]],0]]]),w=TMt(Lie,y),g=[0,GMt,KMt(zie,[0,ePt("canister_inspect_message implicitly refused message"),0])],q=H0(function(r){var e=r[2];if("number"!=typeof e&&8===e[0]&&!e[1]&&!e[3]&&!e[4]){var n=e[5],t=KMt([13,n],[0,$Mt(_),0]),a=uPt(qB+r[1],0,0,0,0,n,t),u=WMt(r[1],a);return[0,r[1],u]}throw gQ([0,xz,$ie],1)},BAt(h)),I=XUt(KMt(30,0),q,g,h),D=TMt("accept",eS),E=KMt(Sie,[0,ePt("canister_inspect_message explicitly refused message"),0]),N=pPt(),T=iPt($Mt(D),N,E),F=$Mt(w),M=[0,DPt(D,fPt($Mt([0,v[2],c]),0,F)),0],P=qPt(0,[0,[0,vut,[0,Xie,d[1]],d[2]],[0,[0,vut,[0,Wie,_[1]],_[2]],[0,[0,vut,[0,Zie,x[1]],x[2]],0]]],y),U=[0,DPt(x,I),0],G=[0,DPt(_,KMt(32,0)),U];l=rPt([0,DPt(w,rPt([0,DPt(d,KMt(27,0)),G],P)),M],T)}else{var $=pPt(),K=pPt();l=rPt([0,NPt(fPt($Mt([0,v[2],c]),Jie,K)),0],$)}return[0,l]}}}return 0},e)}function VGt(r){var e=r[2][1][2];switch(e[0]){case 3:return 0;case 5:throw gQ([0,xz,uce],1);case 6:var n=e[3],t=[0,iut(0,vut)],a=g0(n[1]),u=a[3],f=H0(function(r){return t},a[1]);return QY([0,t,f],f1(VGt,u));default:return[0,r[2][3],0]}}function LGt(r,e,n,t,a,u,f){var i=QGt(f),v=f1(VGt,u),c=Z0(zGt,v,XGt(H0(function(r){return r[2][1]},u))),A=C0(H0(function(r){return r[1]},c)),o=H0(SGt,v),s=f1(function(r){return r[1]},o),b=f1(function(r){return r[3]},o),l=sAt(f),B=l[3],j=[3,l[1],s1(qct,QY(l[2],0)),B],k=QY(i,b),p=s1(qct,H0(function(r){return[0,r[1],r[2],Act]},A)),m=H0(function(r){var e=r[3],n=[6,mAt(r[2])];return[0,r[1],n,e]},p),d=[3,4,m,0],_=H0(function(r){return r[2]},c),h=TMt(jce,[10,[6,d]]),x=TMt("getState",[8,0,0,0,0,[0,d,0]]),y=H0(function(r){return uz(r,x)},_),w=oTt(),g=w[20],q=w[11],I=H0(w[16],n),D=[0,q(j)],E=[0,vut,[0,g(0),D],[0,"",jut]],N=Ift([0,[0,E[3][2]]]),T=N[18].call(null,E),F=[0,N[19].call(null,I),T];if(0===e)if(t)var M=t[1],P=UAt(kS,yAt([0,kS,0],M[3][1])[2]),U=lPt(M,kS,P),G=Fst(P),$=G[2],K=G[1],O=Pst(P,pce,p),R=Kst(O),Q=TMt(mce,R),C=TMt(dce,[3,0,K,0]),H=TMt(_ce,[3,0,$,0]),V=KMt([25,d],0),L=YPt(4,H0(function(r){var e=r[1],n=r[2],t=MAt(e,$);if(t)var a=mAt(t[1]),u=ZMt(lPt($Mt(H),e,a));else u=MAt(e,K)?aPt():lPt($Mt(Q),e,n);return[0,e,u]},m),m),z=[0,DPt(H,fPt(U,0,$Mt(C))),0],S=[0,DPt(C,YPt(0,H0(function(r){var e=r[2],n=r[1],t=TMt("v_"+n,mAt(e)),a=mAt(e),u=$Mt(t),f=PMt(t),i=yst(e),v=KMt(cce,[0,ePt(fz(H6(vce),n,i)),0]),c=[6,mAt(e)];return[0,n,BPt(lPt($Mt(Q),n,c),v,f,u,a)]},K),K)),z],Z=rPt([0,DPt(Q,KMt([25,R],0)),S],L),W=KMt(xce,[0,ePt(hce),0]),X=iPt(FGt(),W,Z),J=iPt(KMt(yce,0),X,V),Y=[0,R,d],rr=[1,O,p];else{var er=KMt([25,d],0),nr=KMt(gce,[0,ePt(wce),0]);J=iPt(FGt(),nr,er),Y=[0,d,d],rr=[0,p]}else{var tr=H0(function(r){var e=r[3];return[0,Mst(r[1]),e,Act]},e),ar=H0(Kst,Ust(0,tr,p)[2]),ur=G0(e);if(0===ur)throw gQ([0,xz,kce],1);var fr=function(r){if(0===r)return KMt([25,O0(ar,0)],0);var n=O0(ar,r),t=oAt(n)[2],a=O0(ar,r-1|0),u=O0(e,r-1|0),f=u[3],i=u[1],v=u[2],c=Fst(f),A=c[2],o=c[1],s=Mst(i),b=TMt(sce,a),l=TMt(bce,[3,0,o,0]),B=TMt(lce,[3,0,A,0]),j=lPt($Mt([0,nN+i,v]),Bce,f),k=YPt(0,H0(function(r){var e=r[2],n=r[1],t=[6,mAt(e)],a=TMt("v_"+n,mAt(e)),u=mAt(e),f=$Mt(a),v=PMt(a),c=KMt(oce,[0,ePt(fz(H6(Ace),i,n)),0]);return[0,n,BPt(lPt($Mt(b),n,t),c,v,f,u)]},o),o),p=YPt(4,H0(function(r){var e=r[1],n=r[2],t=MAt(e,A);if(t)var a=mAt(t[1]),u=ZMt(lPt($Mt(B),e,a));else u=lPt($Mt(b),e,n);return[0,e,u]},t),t),m=[0,KMt(CAe,0),0],d=[0,NPt(KMt(HAe,[0,ZMt(kPt([0,ePt(s),m])),0])),0],_=[0,DPt(B,fPt(j,0,$Mt(l))),d],h=[0,DPt(l,k),_],x=rPt([0,DPt(b,fr(r-1|0)),h],p),y=KMt([25,n],0),w=TMt("migrations",fS),g=[0,ePt(s),0],q=KMt([3,fS,0],[0,$Mt(w),g]),I=UMt([0,PMt(w),[0,GMt,0]]),D=vPt();return iPt(BPt(KMt(VAe,0),D,I,q,eS),y,x)},ir=TMt("final_state",d),vr=$Mt(ir),cr=[0,NPt(KMt([27,d],0)),0];J=rPt([0,DPt(ir,fr(ur)),cr],vr),Y=[0,O0(ar,0),d],rr=[2,tr,p]}var Ar=[0,NPt(hPt(h,aPt())),0],or=TMt(qce,d),sr=$Mt(or),br=PMt(or),lr=WPt(),Br=[0,OPt(x,0,BPt(_Pt($Mt(h)),lr,br,sr,d)),y],jr=QY([0,EPt(h,ZMt(J)),Br],Ar),kr=a?CGt(a[1][2],j,jr):jr,pr=Bst([0,1,1,1,_cr,hcr,0]),mr=fz(D7n(v5n,ufr),function(r){var e=pr[41];return function(n){return e(r,n)}},rr);switch(rr[0]){case 0:var dr="// Version: 1.0.0\n";break;case 1:dr="// Version: 3.0.0\n";break;default:dr="// Version: 4.0.0\n"}function _r(r){var e=FMt(fce,H0(function(r){return r[2]},m)),n=uz(r,qPt(4,Z0(function(r,e){return[0,vut,[0,r[1],e[1]],r[2]]},m,e),d)),t=VPt(H0(function(r){return ZMt($Mt([0,r[1],r[2]]))},p)),a=H0(PMt,e),f=0;if(!a||a[2])i=UMt(a);else var i=a[1];var v=[0,IPt(i,t),f],c=HGt(ice,u,j);return rPt(QY(c?[0,NPt(c[1]),0]:0,v),n)}var hr=_r(function(r){return r}),xr=qB+Nm,yr=TMt(Yie,aS),wr=Wvt(rve,[1,0,0]),gr=Wvt(nve,eve),qr=MMt(wr,0,0),Ir=MMt(gr,0,0),Dr=Nct(0,[0,[0,tve,aS],0]),Er=TMt(ave,cS),Nr=qPt(0,[0,[0,vut,[0,uve,yr[1]],aS],0],Dr),Tr=[0,DPt(yr,KMt([26,hr[3][1]],[0,hr,0])),0],Fr=KMt(fve,[0,$Mt(Er),0]),Mr=[0,OMt(cS),0],Pr=[0,NPt(RMt(sPt(KMt([3,cS,0],[0,$Mt(Er),Mr]),Fr))),Tr],Ur=qB+he,Gr=[0,DPt([0,xr,rst],uPt(xr,ive,1,[0,qr,0],0,[0,Dr,0],QMt(0,Ir,rPt([0,DPt(Er,KMt(27,0)),Pr],Nr),[1,wr,0]))),0],$r=Wvt(vve,[1,0,0]),Kr=Wvt(Ave,cve),Or=MMt($r,0,0),Rr=MMt(Kr,0,0),Qr=[0,F,dr+mr],Cr=[0,[0,vut,[0,lS,xr],rst],0];switch(H8n[1]){case 0:var Hr="default";break;case 1:Hr=ove;break;case 2:Hr=sve;break;case 3:Hr=bve;break;default:Hr=lve}var Vr=V8n[1]?uz(H6(Bve),Hr):Hr;function Lr(r){return KMt([20,r],0)}var zr=[0,[0,kve,Lr(jve),Dct],0],Sr=[0,[0,mve,Lr(pve),nS],zr],Zr=[0,[0,_ve,Lr(dve),nS],Sr],Wr=[0,[0,xve,Lr(hve),nS],Zr],Xr=[0,[0,wve,Lr(yve),nS],Wr],Jr=[0,[0,qve,Lr(gve),nS],Xr],Yr=[0,[0,Dve,Lr(Ive),nS],Jr],re=[0,[0,Nve,Lr(Eve),nS],Yr],ee=[0,[0,Fve,Lr(Tve),nS],re],ne=[0,[0,Pve,Lr(Mve),nS],ee],te=[0,[0,Gve,Lr(Uve),nS],ne],ae=[0,[0,$ve,tPt(0),eS],te],ue=[0,[0,Ove,Lr(Kve),fS],ae],fe=[0,[0,Rve,ePt(Vr),fS],ue],ie=[0,[0,Qve,ePt(w0(0,Cz)),fS],fe],ve=H0(function(r){return TMt(r[1],r[3])},ie),ce=TMt(Cve,cS),Ae=qPt(0,Z0(function(r,e){return[0,vut,[0,e[1],r[1]],e[3]]},ve,ie),est),oe=Z0(function(r,e){return DPt(r,e[2])},ve,ie),se=KMt(Hve,[0,ePt("Unauthorized call of __motoko_runtime_information"),0]),be=pPt(),le=KMt(Vve,[0,$Mt(ce),0]),Be=[0,OMt(cS),0],je=[0,NPt(iPt(sPt(KMt([3,cS,0],[0,$Mt(ce),Be]),le),be,se)),0],ke=[0,DPt([0,Ur,nst],uPt(Ur,Lve,1,[0,Or,0],0,[0,est,0],QMt(0,Rr,rPt(QY([0,DPt(ce,KMt(27,0)),je],oe),Ae),[1,$r,0]))),0],pe=_r(function(r){return r}),me=HGt(Ice,u,j),de=[0,[0,vut,[0,jcr,Ur],nst],0],_e=me?me[1]:kPt(0),xe=HGt(Dce,u,j),ye=xe?xe[1]:kPt(0),we=HGt(Ece,u,j);if(we)var ge=we[1];else{var qe=pPt(),Ie=pPt();ge=rPt([0,NPt(fPt($Mt([0,"@timer_helper",Yot]),[0,rS,0],Ie)),0],qe)}var De=HGt(Nce,u,j),Ee=De?De[1]:kPt(0),Ne=HGt(Tce,u,j),Te=Ne?Ne[1]:kPt(0),Fe=[0,Qr,KMt([24,d],0),Te,Ee,ge,ye,_e,pe,Y],Me=QY(Cr,QY(de,k));return[14,QY(Gr,QY(ke,QY(kr,s))),Me,Fe,j]}function zGt(r,e){var n=r?r[1][2]:0,t=e[2];if(!n)return[0,0,function(r){return e}];switch(t[0]){case 0:var a=t[1],u=a[2];if("number"!=typeof u&&0===u[0]){var f=u[1],i=a[3],v=t[2];return[0,[0,[0,f,i],0],function(r){var e=TMt(f,i);if(E0(X8n[1]))var n=yst(i),t=KMt(Uce,[0,ePt(fz(H6(Pce),f,n)),0]);else t=v;var u=$Mt(e),c=PMt(e),A=pPt();return IPt(a,BPt(lPt(fPt($Mt(r),0,A),f,[6,i]),t,c,u,i))}]}throw gQ([0,xz,Gce],1);case 1:var c=t[2],A=t[1],o=t[3];return[0,[0,[0,A,[10,c]],0],function(r){var e=TMt(A,c);if(E0(X8n[1]))var n=yst(c),t=KMt(Mce,[0,ePt(fz(H6(Fce),A,n)),0]);else t=o;var a=$Mt(e),u=PMt(e),f=pPt();return EPt([0,A,[10,c]],BPt(lPt(fPt($Mt(r),0,f),A,[6,c]),t,u,a,c))}];default:throw gQ([0,xz,$ce],1)}}function SGt(r){if(!r)return Oce;var e=r[1][2];if(!e)return Kce;var n=e[1][1];if(!n)return ace;var t=n[1],a=t[2],u=t[1],f=Xct(a[2]);r:{if(0===u[0]){if("number"!=typeof f&&8===f[0]){var i=f[1];if(i&&!i[1]){var v=f[3];if(v&&!v[2]){var c=f[5],A=f[4],o=u[1];if(!X0(JAt,c))throw gQ([0,xz,zve],1);var s=function(r){var e=VPt(H0($Mt,r)),n=fPt(UGt(o),0,e),t=$ct(c);return KMt([17,n[3][1],t],[0,n,0])},b=c,l=A;break r}}}}else if("number"!=typeof f&&8===f[0]){var B=f[1];if(B&&!B[1]){var j=f[3];if(j&&!j[2]&&!f[4]){var k=f[5],p=u[1];if(!X0(JAt,k))throw gQ([0,xz,Sve],1);s=function(r){var e=UGt(p),n=$ct(k);return KMt([17,e[3][1],n],[0,e,0])},b=k,l=0;break r}}}throw gQ([0,xz,Zve],1)}var m=FMt(Wve,l),d=H0(UPt,m),_=a[1],h=NMt(qB+_),x=Wvt(Xve,[1,0,0]),y=Wvt(Yve,Jve),w=MMt(x,0,0),g=MMt(y,0,0),q=a[2],I=TMt(rce,cS),D=KMt(ece,[0,$Mt(I),0]),E=[0,OMt(cS),0],N=sPt(KMt([3,cS,0],[0,$Mt(I),E]),D),T=s(m),F=KMt(nce,[0,ePt("Unauthorized caller (caller must be self or a controller)"),0]),M=[0,NPt(iPt(N,pPt(),F)),0];return[0,[0,DPt([0,h,q],uPt(h,tce,1,[0,w,0],d,b,QMt(0,g,rPt([0,DPt(I,KMt(27,0)),M],T),[1,x,0]))),0],[0,[0,_,q,Act],0],[0,[0,vut,[0,_,h],q],0]]}function ZGt(r,e,n,t,a){var u=qPt(e,QGt(a),a),f=rPt(XGt(H0(function(r){return r[2][1]},t)),u);if(!n)return f[2];var i=[0,n[1][2],a];return TPt(i,f,$Mt(i))[2]}function WGt(r){var e=r[3];if(e)return[0,r[1],[0,e[1],r[2][2][2],r[2][3][3]],0];throw gQ([0,xz,Hce],1)}function XGt(r){return f1(JGt,r)}function JGt(r){return H0(function(e){return[0,r[1],e,0]},function(r){var e=r[3],n=r[1],t=r[2];switch(t[0]){case 0:return[0,NPt(UGt(t[1]))[2],0];case 1:var a=t[3],u=t[2],f=t[1],i=r$t(f),v=UGt(u),c=i[2],A=v[2];if("number"!=typeof c&&0===c[0]&&14===A[0]){var o=A[4],s=A[3],b=A[2],l=v[3],B=[14,CGt(c[1],o,A[1]),b,s,o];return[0,[0,i,[0,v[1],B,l]],0]}if(!a)return[0,[0,i,v],0];var j=UGt(a[1]),k=UGt(u);return[0,[0,i,PPt(r$t(f),k,j)],0];case 2:var p=t[2],m=t[1],d=UGt(p);return[0,[1,m[2],p[3][1],d],0];case 4:var _=t[9],h=t[8],x=t[5],y=t[4],w=t[3],g=t[6],q=t[2],I=t[1],D=y[2],E=jAt(e[1])[1],N=q[2],T=N?[0,N[1][2]]:0,F=H0(function(r){var e=r[3];if(e)return[1,e[1],0];throw gQ([0,xz,Jce],1)},x),M=e[1];if("number"!=typeof M&&8===M[0]){var P=M[5];if(P&&!P[2]){var U=P[1],G=G0(M[3]);if(G0(F)!==G)throw gQ([0,xz,Yce],1);var $=Jct(Sct(F,U)),K=t$t(e[1],T,I,g),O=K[3],R=K[2],Q=[0,n,[0,D],M],C=K[4],H=K[1];if(1===w[2])var V=kAt($)[3],L=Wvt(Xot,[1,0,0]),z=$0(F),S=[0,V,VX[2],VX[3],VX[4]],Z=O([0,n,OGt(n,w,R,[0,h],_,Jct(V)),S]),W=QMt(0,MMt(L,0,0),Z,z);else{var X=[0,$,VX[2],VX[3],VX[4]];W=O([0,n,OGt(n,w,R,[0,h],_,$),X])}var J=[0,M,VX[2],VX[3],VX[4]],Y=H0(WGt,x);return[0,[0,Q,[0,n,[12,y[2],E,C,Y,H,[0,$,0],W],J]],0]}}throw gQ([0,xz,rAe],1);case 6:var rr=t[2],er=g0(t[3][1]),nr=er[3],tr=er[2],ar=f1(a$t,er[1]),ur=BUt(eUt[1],ar),fr=ur[2],ir=ur[1],vr=AUt(fr,r$t(tr)),cr=vr[2],Ar=vr[1],or=H0(function(r){return r[2]},yUt(cr,f1(JGt,H0(function(r){return r[2][1]},nr)))[1]),sr=[0,IPt(Ar,UGt(rr))[2],or];return QY(H0(function(r){return r[2]},ir),sr);default:return 0}}(r))}function YGt(r){return H0(function(r){var e=r[2],n=r[3],t=UGt(e[2]),a=[0,r$t(e[1]),t];return[0,r[1],a,n]},r)}function r$t(r){r:{var e=r[2],n=r[3];e:for(;;){if("number"==typeof e){var t=0;break r}switch(e[0]){case 0:t=[0,e[1][2]];break r;case 1:t=[1,e$t(e[1][1])];break r;case 2:break e;case 3:t=[2,H0(r$t,e[1])];break r;case 4:t=[3,u1(n$t,e[1])];break r;case 5:t=[4,r$t(e[1])];break r;case 6:var a=e[1],u=r$t(e[2]);t=[5,a[2],u];break r;case 7:var f=e[1],i=r$t(e[2]);t=[6,r$t(f),i];break r;default:e=e[1][2]}}var v=e[2][1];e:{switch(e[1]){case 1:if("number"!=typeof v)switch(v[0]){case 7:var c=[7,Vlt[7].call(null,Vlt[2],v[1])];break e;case 8:c=[8,Llt[7].call(null,Llt[2],v[1])];break e;case 9:c=[9,zlt[7].call(null,zlt[2],v[1])];break e;case 10:c=[10,Slt[7].call(null,Slt[2],v[1])];break e;case 1:case 6:c=[6,fz(Ult[7],Ult[2],v[1])];break e}break;case 2:break;default:c=v;break e}throw gQ([0,kz,"Invalid signed pattern"],1)}t=[1,e$t(c)]}return[0,r[1],t,n]}function e$t(r){if("number"==typeof r)return 0;switch(r[0]){case 0:return[0,r[1]];case 1:return[1,r[1]];case 2:return[2,r[1]];case 3:return[3,r[1]];case 4:return[4,r[1]];case 5:return[5,r[1]];case 6:return[6,r[1]];case 7:return[7,r[1]];case 8:return[8,r[1]];case 9:return[9,r[1]];case 10:return[10,r[1]];case 11:return[11,r[1]];case 12:return[12,r[1]];case 13:return[13,r[1]];case 14:return[14,r[1]];case 15:return[15,r[1]];default:throw gQ([0,xz,eAe],1)}}function n$t(r){var e=r[2];if(0!==e[0])return 0;var n=e[1],t=r[3],a=r$t(e[2]);return[0,[0,r[1],[0,n[2],a],t]]}function t$t(r,e,n,t){function a(r,e){if(14!==e[2][0])return rPt(r,e);var n=fUt(eUt[1],e[2]);if(14!==n[0])throw gQ([0,xz,vAe],1);var t=n[4],a=n[3],u=n[2],f=e[3],i=[14,QY(r,n[1]),u,a,t];return[0,e[1],i,f]}r:{if("number"==typeof r){if(1===r){var u=0,f=1,i=0,v=0;break r}}else if(8===r[0]){var c=r[5],A=r[2],o=r[1];u=c,f=G0(r[4]),i=A,v=o;break r}throw gQ([0,kz,"to_args "+yst(r)],1)}var s=1===f?[0,t[3],0]:hAt(t[3]);function b(r){for(var e=r;;){var n=e[2];if(!("number"!=typeof n&&n[0]>=8))return e;e=n[1]}}var l=(0!==e?1:0)||(0!==n?1:0);function B(r){var e=b(r)[2];if("number"==typeof e)return[0,UPt(TMt(uAe,r[3])),function(r){return r}];switch(e[0]){case 0:var n=e[1];if(!l)return[0,[0,n[1],n[2],r[3]],function(r){return r}];break;case 8:case 9:throw gQ([0,xz,iAe],1)}var t=TMt(fAe,r[3]);return[0,UPt(t),function(e){var n=$Mt(t);return a([0,IPt(r$t(r),n),0],e)}]}var j=b(t)[2];r:if("number"==typeof j)var k=function(r){return r},p=H0(UPt,FMt("ignored",s));else{if(j[0]>=8)throw gQ([0,xz,cAe],1);e:{if(0===f){if("number"==typeof j)break e;if(3!==j[0])break e;if(!j[1]){k=function(r){return r},p=0;break r}}else if(1===f){var m=B(t);k=m[2],p=[0,m[1],0];break r}if("number"!=typeof j&&3===j[0]){var d=j[1];if(G0(d)!==f)throw gQ([0,xz,AAe],1);var _=S0(function(r,e){var n=e[2],t=e[1],a=B(r),u=a[2];return[0,[0,a[1],t],function(r){return u(uz(n,r))}]},d,[0,0,function(r){return r}]);k=_[2],p=_[1];break r}}var h=FMt(oAe,s);k=function(r){var e=kPt(H0($Mt,h));return a([0,IPt(r$t(t),e),0],r)},p=H0(UPt,h)}function x(r){if(!e)return uz(k,r);var n=e[1],t=TMt(tAe,cS),u=uz(k,r),f=qPt(0,[0,[0,vut,[0,aAe,t[1]],cS],0],Uct),i=[0,IPt(r$t(n),f),0];return a([0,DPt(t,KMt(27,0)),i],u)}if(n)var y=n[1],w=TMt(sAe,y[3][1]),g=function(r){var e=x(r);return a([0,DPt(w,UGt(y)),0],e)},q=[0,$Mt(w)];else g=function(r){return x(r)},q=0;return[0,p,q,function(r){if(0===v)return g(r);var e=r[2];r:{switch(i){case 0:switch(e[0]){case 4:var n=e[1],t=n[1];if(!t)break r;var a=t[1][2];if(0!==a[0])break r;var u=a[1];if("number"!=typeof u[2])break r;var f=a[2],c=f[2];if(9!==c[0])break r;if(c[1])break r;var A=c[4],o=c[3],s=c[2];if(t[2])break r;var b=n[2],l=b[2];if(0!==l[0])break r;var B=l[1],j=B[1];if("number"!=typeof j)break r;if(j)break r;if(B[2])break r;var k=f[3],p=[9,0,s,g(o),A];return rPt([0,IPt(u,[0,f[1],p,k]),0],b);case 14:break;default:break r}break;case 1:switch(e[0]){case 9:var m=e[4],d=e[2],_=e[1],h=r[3],x=[9,_,d,g(e[3]),m];return[0,r[1],x,h];case 14:break;default:break r}}if(14===e[0])return g(r)}throw gQ([0,xz,nAe],1)},i,u]}function a$t(r){var e=r[2],n=r[3],t=e[3],a=e[2],u=e[1];if(2===n)throw gQ([0,xz,bAe],1);if("number"!=typeof n&&3===n[0]&&2===n[1])return 0;var f=t[1];if("number"==typeof f){if(0===f)throw gQ([0,kz,"Unresolved import "+a],1);var i=$Mt([0,nN+HU,n])}else switch(f[0]){case 0:i=$Mt([0,nN+f[1][2],n]);break;case 1:var v=f[1][2];if(0===v[0]){var c=ePt(v[1]);i=KMt([18,n],[0,fPt($Mt([0,"@envvar_principal",lAe]),0,c),0])}else i=KMt([18,n],[0,nPt(v[1]),0]);break;default:var A=f[1];if(n9n[1])throw gQ([0,kz,BAe],1);var o=I4(A,N4);if(!OH(n,jAe))throw gQ([0,xz,kAe],1);i=nPt(o)}return[0,IPt(r$t(u),i),0]}function u$t(r,e,n,t){return XPt(3,[0,[0,r,Wvt(r,[0,0,e])],0],[0,[0,r,n],[0,[0,RAe,XPt(3,0,[0,[0,r,t],0])],0]])}function f$t(r){return XGt(r[2])}function i$t(r,e){switch(e[0]){case 0:var n=e[2];return[0,QY(r,e[1]),n];case 1:return[1,QY(r,e[1])];default:if(!e[1]){var t=e[5],a=e[4],u=e[3];return[2,0,QY(r,e[2]),u,a,t]}var f=eUt[1];switch(e[0]){case 0:var i=e[2],v=BUt(f,e[1]),c=[0,v[1],uUt(v[2],i)];break;case 1:c=[1,BUt(f,e[1])[1]];break;default:var A=e[4],o=e[1],s=e[5],b=A[9],l=A[8],B=A[7],j=A[6],k=A[5],p=A[4],m=A[3],d=A[2],_=A[1],h=e[3],x=e[2];if(o)var y=cUt(f,o[1]),w=y[2],g=[0,y[1]];else w=f,g=0;var q=BUt(w,x),I=q[2],D=q[1],E=uUt(I,l),N=uUt(I,B),T=uUt(I,j),F=uUt(I,k),M=uUt(I,p),P=uUt(I,m),U=[0,_,uUt(I,d),P,M,F,T,N,E,b];c=[2,g,D,vUt(I,h),U,s]}if(2!==c[0])throw gQ([0,xz,TAe],1);var G=c[5],$=c[4],K=c[3];return[2,c[1],QY(r,c[2]),K,$,G]}}function v$t(r){var e=r[2],n=e[2],t=f1(a$t,e[1]),a=n[2];switch(a[0]){case 0:var u=[1,XGt(a[1])];break;case 1:var f=a[4],i=a[3],v=a[1],c=q0(UGt,a[2]),A=LGt(n[1],v[3],0,c,i,f,n[3][1]);if(14!==A[0])throw gQ([0,xz,IAe],1);u=[2,0,A[1],A[2],A[3],A[4]];break;case 2:var o=a[2],s=a[1],b=NGt(n[3]),l=ZGt(n[1],3,s,o,n[3][1]);u=[0,0,[0,n[1],l,b]];break;case 3:var B=n[3][1],j=a[3][2],k=a[9],p=a[8],m=a[6],d=a[2],_=a[1],h=t$t(B,j?[0,j[1][2]]:0,d,m),x=h[3],y=h[2],w=h[1];if("number"!=typeof B&&8===B[0]){var g=B[5];if(g&&!g[2]){var q=B[3],I=g[1],D=B[4];if(1!==G0(q))throw gQ([0,xz,DAe],1);var E=Zct(q),N=Jct(kAt(Xct(Sct(E,I)))[3]),T=H0(function(r){return Sct(E,r)},D),F=LGt(n[1],_[3],T,y,[0,p],k,N),M=x([0,vut,F,[0,N,VX[2],VX[3],VX[4]]])[2];if(14!==M[0])throw gQ([0,xz,EAe],1);u=[2,[0,w],M[1],M[2],M[3],M[4]];break}}throw gQ([0,xz,NAe],1);default:throw gQ([0,kz,"Desugar: Cannot transform mixin compilation unit"],1)}return[0,i$t(t,u),Zne]}function c$t(r,e,n){if(n)return[0,r[1],n];var t=r[2];return t&&e===t[1][1]?[0,r[1],0]:r}function A$t(r,e){var n=e[3],t=s$t(r,e);return[0,e[1],t,n]}function o$t(r,e){var n=e[3],t=s$t([0,0,r[2]],e);return[0,e[1],t,n]}function s$t(r,e){var n=e[2];switch(n[0]){case 0:var t=n[1],a=t[1];if("number"==typeof a){if(4===a){var u=t[2];if(u&&!u[2])return[0,[0,4,[0,A$t([0,1,r[2]],u[1]),0]]]}}else if(0===a[0]){var f=t[2];if(f){var i=f[2];if(i&&!i[2]){var v=i[1],c=f[1],A=a[1],o=c[2];r:if(1===o[0]&&r[1]){var s=r[2];if(s){var b=s[1],l=b[3];e:{n:{var B=b[5],j=b[4],k=b[2];if(o[2]!==b[1])break r;for(var p=A,m=k;m;){if(!p)break n;var d=p[1],_=p[2],h=m[2],x=m[1];if("number"==typeof d||1!==d[0]||d[2])y=0;else var y=ect(x[2][1],d[1]);if(!y){var w=y;break e}p=_,m=h}if(!p){w=1;break e}}w=MY(qz)}if(w){B[1]=1;var g=mPt(j,pPt()),q=o$t(r,v),I=q[2];e:if(!l||l[2]){if(0===I[0]){var D=I[1],E=D[1];if("number"==typeof E&&!E){var N=D[2],T=G0(l);if(G0(N)===T){P=H0(NPt,Z0(hPt,l,N));break e}}}var F=TMt(zAe,hMt(q)),M=V0(function(r,e){return NPt(hPt(e,SMt($Mt(e),r)))},l);P=[0,DPt(F,q),M]}else var P=[0,NPt(hPt(l[1],q)),0];return rPt(P,g)[2]}}}var U=[0,o$t(r,v),0];return[0,[0,[0,A],[0,o$t(r,c),U]]]}}}return[0,[0,a,H0(function(e){return o$t(r,e)},t[2])]];case 3:var G=n[1],$=o$t(r,n[2]);return[3,b$t(r,G),$];case 4:var K=n[1],O=K[2],R=p$t(r,K[1]);return[4,[0,R[2],A$t(R[1],O)]];case 5:var Q=n[2],C=n[1],H=A$t(r,n[3]),V=A$t(r,Q);return[5,o$t(r,C),V,H];case 6:var L=n[1],z=k$t(r,n[2]);return[6,o$t(r,L),z];case 7:return[7,o$t(r,n[1])];case 8:var S=n[1],Z=n[3];return[8,S,n[2],o$t(c$t(r,S,0),Z)];case 9:var W=n[4],X=n[2];return[9,n[1],X,o$t(SAe,n[3]),W];case 10:var J=n[1],Y=n[3];return[10,J,n[2],A$t(c$t(r,J,0),Y)];case 11:var rr=n[2];return[11,n[1],rr,o$t(r,n[3])];case 12:var er=n[5],nr=n[7],tr=n[6],ar=n[4],ur=n[3],fr=n[2];return[12,n[1],fr,ur,ar,er,tr,A$t(l$t(ZAe,er),nr)];case 13:var ir=n[5],vr=n[4],cr=n[3];return[13,n[1],A$t(WAe,n[2]),o$t(r,cr),o$t(r,vr),o$t(r,ir)];case 14:var Ar=n[3],or=n[4],sr=n[2],br=n[1],lr=Ar[9],Br=o$t(r,Ar[8]),jr=Ar[7],kr=Ar[6],pr=Ar[5],mr=Ar[4],dr=o$t(r,Ar[3]),_r=o$t(r,Ar[2]),hr=[0,Ar[1],_r,dr,mr,pr,kr,jr,Br,lr];return[14,p$t(r,br)[2],sr,hr,or];case 15:return[15,n[1],n[2],n[3]];case 16:var xr=n[3],yr=n[1],wr=k$t(r,n[2]);return[16,o$t(r,yr),wr,xr];default:return n}}function b$t(r,e){var n=e[2],t=e[3];switch(n[0]){case 0:var a=[0,n[1]];break;case 1:var u=n[1],f=o$t(r,n[2]);a=[1,o$t(r,u),f];break;default:var i=n[2];a=[2,o$t(r,n[1]),i]}return[0,e[1],a,t]}function l$t(r,e){for(var n=e,t=r;;){if(!n)return t;var a=n[2],u=c$t(t,n[1][2],0);n=a,t=u}}function B$t(r,e){for(var n=e;;){var t=n[2];if("number"!=typeof t)switch(t[0]){case 0:return c$t(r,t[1],0);case 2:return j$t(r,t[1]);case 3:return j$t(r,FFt(t[1]));case 4:case 6:n=t[1];continue;case 5:n=t[2];continue}return r}}function j$t(r,e){for(var n=r,t=e;;){if(!t)return n;var a=t[2];n=B$t(n,t[1]),t=a}}function k$t(r,e){return H0(function(e){var n=e[2],t=n[1],a=e[3],u=n[2],f=[0,t,A$t(B$t(r,t),u)];return[0,e[1],f,a]},e)}function p$t(r,e){var n=function r(e,n){if(!n)return[0,0,e];var t=n[2],a=function(r,e){var n=e[2];switch(n[0]){case 0:var t=n[1],a=t[2];if("number"!=typeof a&&0===a[0]){var u=a[1],f=n[2],i=f[2];if(12===i[0]&&!i[2]){var v=i[6],c=i[5],A=i[4],o=i[3],s=i[1],b=i[7],l=[0,function(r){var e=FMt(XAe,H0(function(r){return[10,r[3]]},c)),n=NMt("tailcall"),a=[0,0],i=A$t(l$t([0,1,[0,[0,u,A,e,n,a]]],c),b),l=H0(function(r){return[1,r[2][1],0]},A);if(!a[1])return[0,t,[0,f[1],[12,s,0,o,A,c,v,i],f[3]]];var B=hMt(f);if("number"!=typeof B&&8===B[0]){var j=FMt("id",H0(function(r){return Sct(l,r)},B[4])),k=dPt(i),p=wPt(yPt(n,rS,rPt(Z0(function(r,e){var n=_Pt($Mt(e));return DPt([0,r[2],r[3]],n)},c,e),k))),m=rPt(Z0(function(r,e){return EPt(r,$Mt(e))},e,j),p),d=f[3],_=[12,s,0,o,A,H0(UPt,j),v,m];return[0,t,[0,f[1],_,d]]}throw gQ([0,xz,JAe],1)},c$t(r,u,0)];break}}var B=n[2];l=[0,function(r){return[0,t,o$t(r,B)]},B$t(r,t)];break;case 1:var j=n[1],k=n[3],p=n[2];l=[0,function(r){return[1,j,p,o$t(r,k)]},c$t(r,j,0)];break;default:var m=n[1],d=n[3],_=n[2];l=[0,function(r){return[2,m,_,b$t(r,d)]},c$t(r,m,0)]}return[0,[0,e[1],l[1],e[3]],l[2]]}(e,n[1]),u=a[1],f=r(a[2],t);return[0,[0,u,f[1]],f[2]]}(r,e),t=n[2];return[0,t,H0(function(r){var e=r[3],n=uz(r[2],[0,0,t[2]]);return[0,r[1],n,e]},n[1])]}var m$t=U2([0,z1]);function d$t(r){return[0,[0,m$t[1]]]}function _$t(r){return[8,0,0,0,[0,r,0],[0,fS,0]]}function h$t(r){var e=_$t(r);return[0,"@show<"+Sst(r)+b_,e]}function x$t(r){return $Mt([0,WX,r])}function y$t(r,e){return KPt(h$t(r),[0,WX,r],e)}function w$t(r,e){return ZPt($Mt(h$t(r)),e)}function g$t(r,e,n){var t=x$t(e);return ZPt($Mt([0,r,[8,0,0,0,[0,e,0],[0,fS,0]]]),t)}function q$t(r,e,n){var t=[8,0,0,yoe,[0,_$t(xoe),hoe],[0,fS,0]],a=kPt([0,e,[0,n,0]]);return fPt($Mt([0,"@text_of_option",t]),[0,r,0],a)}function I$t(r,e,n,t){return QY([0,r,0],function r(t){if(!t)return[0,n,0];var a=t[1];if(!t[2])return[0,a,[0,n,0]];var u=r(t[2]);return QY([0,a,[0,uz(e,0),0]],u)}(t))}function D$t(r,e){return[0,vut,[0,[0,[2,fS,17],[0,r,[0,e,0]]]],[0,fS,VX[2],VX[3],VX[4]]]}function E$t(r){return S0(D$t,r,ePt(""))}function N$t(r){if("number"==typeof r){if(1===r)return[0,y$t(r,WPt()),0]}else switch(r[0]){case 1:return[0,y$t(r,ePt("show_for: cannot handle type parameter "+yst(r))),0];case 2:switch(r[1]){case 0:return[0,y$t(r,ePt(aoe)),0];case 1:return[0,y$t(r,g$t("@text_of_Bool",r,x$t(r))),0];case 2:return[0,y$t(r,g$t("@text_of_Nat",r,x$t(r))),0];case 3:return[0,y$t(r,g$t("@text_of_Nat8",r,x$t(r))),0];case 4:return[0,y$t(r,g$t("@text_of_Nat16",r,x$t(r))),0];case 5:return[0,y$t(r,g$t("@text_of_Nat32",r,x$t(r))),0];case 6:return[0,y$t(r,g$t("@text_of_Nat64",r,x$t(r))),0];case 7:return[0,y$t(r,g$t("@text_of_Int",r,x$t(r))),0];case 8:return[0,y$t(r,g$t("@text_of_Int8",r,x$t(r))),0];case 9:return[0,y$t(r,g$t("@text_of_Int16",r,x$t(r))),0];case 10:return[0,y$t(r,g$t("@text_of_Int32",r,x$t(r))),0];case 11:return[0,y$t(r,g$t("@text_of_Int64",r,x$t(r))),0];case 12:return[0,y$t(r,g$t("@text_of_Float",r,x$t(r))),0];case 13:return[0,y$t(r,g$t("@text_of_Float32",r,x$t(r))),0];case 14:return[0,y$t(r,g$t("@text_of_Char",r,x$t(r))),0];case 15:return[0,y$t(r,g$t("@text_of_Text",r,x$t(r))),0];case 16:return[0,y$t(r,g$t("@text_of_Blob",r,x$t(r))),0];case 18:return[0,y$t(r,KMt(10,[0,KMt([17,cS,iS],[0,x$t(r),0]),0])),0]}break;case 3:if(!r[1]){var e=r[2],n=H0(function(r){return mAt(Xct(r[2]))},e),t=H0(function(e){var n=mAt(Xct(e[2])),t=e[1],a=w$t(n,lPt(x$t(r),t,n));return D$t(ePt(e[1]+KE),a)},e),a=ePt(uoe);return[0,y$t(r,E$t(I$t(ePt(foe),function(r){return ePt(toe)},a,t))),n]}break;case 4:var u=r[1],f=H0(function(r){return Xct(r[2])},u),i=H0(function(r){var e=r[1],n=Xct(r[2]),t=x$t(n),a=$Mt(h$t(n)),u=[8,0,0,_oe,[0,fS,[0,_$t(doe),moe]],[0,fS,0]],f=kPt([0,ePt(e),[0,a,[0,t,0]]]),i=fPt($Mt([0,"@text_of_variant",u]),[0,n,0],f);return[0,e,PMt([0,WX,n]),i]},u);return[0,y$t(r,jPt(x$t(r),i,fS)),f];case 5:var v=Xct(r[1]);if("number"!=typeof v&&10===v[0]){var c=v[1],A=x$t(r),o=$Mt(h$t(c)),s=[8,0,0,Boe,[0,_$t(loe),boe],[0,fS,0]],b=kPt([0,o,[0,A,0]]);return[0,y$t(r,fPt($Mt([0,"@text_of_array_mut",s]),[0,c,0],b)),[0,c,0]]}var l=x$t(r),B=$Mt(h$t(v)),j=[8,0,0,poe,[0,_$t(koe),joe],[0,fS,0]],k=kPt([0,B,[0,l,0]]);return[0,y$t(r,fPt($Mt([0,"@text_of_array",j]),[0,v,0],k)),[0,v,0]];case 6:var p=Xct(r[1]),m=x$t(r);return[0,y$t(r,q$t(p,$Mt(h$t(p)),m)),[0,p,0]];case 7:var d=r[1];if(!d)return[0,y$t(r,ePt("()")),0];var _=H0(Xct,d),h=V0(function(e,n){return w$t(n,SMt(x$t(r),e))},_),x=ePt(ioe);return[0,y$t(r,E$t(I$t(ePt(voe),function(r){return ePt(noe)},x,h))),_];case 8:return[0,y$t(r,ePt(coe)),0];case 12:var y=Xct(r[1]),w=KMt(Aoe,[0,x$t(r),0]),g=q$t(y,$Mt(h$t(y)),w);return[0,y$t(r,D$t(ePt(ooe),g)),[0,y,0]]}throw gQ([0,xz,soe],1)}function T$t(r){var e=[0,m$t[1]];return function r(n){for(var t=n;;){if(!t)return 0;var a=t[1],u=t[2],f=e[1],i=Sst(a);if(!m$t[32].call(null,i,f)){var v=t[2],c=e[1],A=Sst(a);e[1]=m$t[2].call(null,A,0,c);var o=N$t(a);return[0,o[1],r(QY(o[2],v))]}t=u}}(H0(function(r){return r[2]},m$t[10].call(null,r)))}function F$t(r,e){var n=e[3],t=function(r,e){switch(e[0]){case 0:var n=e[1],t=n[1];if("number"!=typeof t&&11===t[0]){var a=n[2];if(a&&!a[2]){var u=a[1],f=Xct(t[1]),i=r[1][1],v=Sst(f),c=m$t[2].call(null,v,f,i);r[1][1]=c;var A=F$t(r,u);return ZPt($Mt(h$t(f)),A)[2]}}return[0,[0,t,H0(function(e){return F$t(r,e)},n[2])]];case 3:var o=e[1],s=F$t(r,e[2]);return[3,M$t(r,o),s];case 4:var b=e[1],l=b[1],B=F$t(r,b[2]);return[4,[0,P$t(r,l),B]];case 5:var j=e[2],k=e[1],p=F$t(r,e[3]),m=F$t(r,j);return[5,F$t(r,k),m,p];case 6:var d=e[1],_=H0(function(e){var n=e[2],t=n[1],a=e[1],u=e[3];return[0,a,[0,t,F$t(r,n[2])],u]},e[2]);return[6,F$t(r,d),_];case 7:return[7,F$t(r,e[1])];case 8:var h=e[2];return[8,e[1],h,F$t(r,e[3])];case 9:var x=e[4],y=e[2];return[9,e[1],y,F$t(r,e[3]),x];case 10:var w=e[2];return[10,e[1],w,F$t(r,e[3])];case 11:var g=e[2];return[11,e[1],g,F$t(r,e[3])];case 12:var q=e[6],I=e[5],D=e[4],E=e[3],N=e[2];return[12,e[1],N,E,D,I,q,F$t(r,e[7])];case 13:var T=e[4],F=e[3],M=e[2],P=e[1],U=F$t(r,e[5]),G=F$t(r,T),$=F$t(r,F);return[13,P,F$t(r,M),$,G,U];case 14:var K=e[3],O=e[4],R=K[9],Q=K[8],C=K[7],H=K[6],V=K[5],L=K[4],z=K[3],S=K[2],Z=K[1],W=e[2],X=e[1],J=d$t(),Y=P$t(J,X),rr=F$t(J,S),er=F$t(J,z),nr=F$t(J,L),tr=F$t(J,V),ar=F$t(J,H),ur=F$t(J,C),fr=F$t(J,Q);return[14,QY(T$t(J[1][1]),Y),W,[0,Z,rr,er,nr,tr,ar,ur,fr,R],O];case 15:return[15,e[1],e[2],e[3]];case 16:var ir=e[3],vr=e[1],cr=H0(function(e){var n=e[2],t=n[1],a=e[1],u=e[3];return[0,a,[0,t,F$t(r,n[2])],u]},e[2]);return[16,F$t(r,vr),cr,ir];default:return e}}(r,e[2]);return[0,e[1],t,n]}function M$t(r,e){var n=e[2],t=e[3];switch(n[0]){case 0:var a=[0,n[1]];break;case 1:var u=n[1],f=F$t(r,n[2]);a=[1,F$t(r,u),f];break;default:var i=n[2];a=[2,F$t(r,n[1]),i]}return[0,e[1],a,t]}function P$t(r,e){return H0(function(e){var n=e[2],t=e[3];switch(n[0]){case 0:var a=[0,n[1],F$t(r,n[2])];break;case 1:var u=n[2];a=[1,n[1],u,F$t(r,n[3])];break;default:var f=n[2];a=[2,n[1],f,M$t(r,n[3])]}return[0,e[1],a,t]},e)}var U$t=dut([0,rct]),G$t=U2([0,z1]);function $$t(r){return[0,[0,G$t[1]]]}function K$t(r){return[8,0,0,0,[0,r,[0,r,0]],[0,eS,0]]}function O$t(r){var e=K$t(r);return[0,"@eq<"+Sst(r)+b_,e]}function R$t(r,e,n){if(Qot(r)){var t=cPt(),a=[0,NPt(MPt(n)),0];return rPt([0,NPt(MPt(e)),a],t)}if(iGt(r))return KMt([3,r,0],[0,e,[0,n,0]]);var u=kPt([0,e,[0,n,0]]);return ZPt($Mt(O$t(r)),u)}function Q$t(r){return $Mt([0,"x1",r])}function C$t(r){return $Mt([0,"x2",r])}function H$t(r,e){return OPt(O$t(r),[0,[0,"x1",r],[0,[0,"x2",r],0]],e)}function V$t(r){if(!Qot(r)&&!iGt(r)){if("number"==typeof r){if(1===r)return[0,H$t(r,WPt()),0]}else switch(r[0]){case 1:throw gQ([0,kz,"eq_for: cannot handle type parameter "+yst(r)],1);case 3:if(1>>0){var e=r[2],n=H0(function(r){return mAt(Xct(r[2]))},e);return[0,H$t(r,bPt(H0(function(e){var n=mAt(Xct(e[2])),t=e[1],a=lPt(C$t(r),t,n),u=e[1];return R$t(n,lPt(Q$t(r),u,n),a)},e))),n]}break;case 4:var t=r[1],a=H0(function(r){return Xct(r[2])},t),u=[0,eS,VX[2],VX[3],VX[4]],f=[0,[0,vut,[0,GMt,vPt()],0],0],i=QY(H0(function(e){var n=Xct(e[2]),t=[0,"y1",n],a=[0,"y2",n],u=$Mt(a),f=R$t(n,$Mt(t),u),i=PMt(a),v=[0,[0,vut,[5,e[1],i],r],0],c=PMt(t);return[0,vut,[0,[0,vut,[2,[0,[0,vut,[5,e[1],c],r],v]],[7,[0,r,[0,r,0]]]],f],0]},t),f),v=[0,C$t(r),0];return[0,H$t(r,[0,vut,[6,kPt([0,Q$t(r),v]),i],u]),a];case 5:var c=Xct(r[1]);if("number"!=typeof c&&10===c[0])throw gQ([0,xz,Eoe],1);var A=C$t(r),o=Q$t(r),s=$Mt(O$t(c)),b=[8,0,0,Foe,[0,K$t(Toe),Noe],[0,eS,0]],l=kPt([0,s,[0,o,[0,A,0]]]);return[0,H$t(r,fPt($Mt([0,"@equal_array",b]),[0,c,0],l)),[0,c,0]];case 6:var B=Xct(r[1]),j=[0,"y1",B],k=[0,"y2",B],p=$Mt(k),m=R$t(B,$Mt(j),p),d=PMt(k),_=vPt(),h=BPt(C$t(r),_,d,m,eS),x=PMt(j),y=vPt(),w=cPt(),g=BPt(C$t(r),w,GMt,y,eS);return[0,H$t(r,BPt(Q$t(r),g,x,h,eS)),[0,B,0]];case 7:var q=H0(Xct,r[1]);return[0,H$t(r,bPt(V0(function(e,n){var t=SMt(C$t(r),e);return R$t(n,SMt(Q$t(r),e),t)},q))),q]}throw gQ([0,kz,"Ir_passes.Eq.eq_on: Unexpected type "+yst(r)],1)}var I=C$t(r);return[0,H$t(r,R$t(r,Q$t(r),I)),0]}function L$t(r){var e=[0,G$t[1]];return function r(n){for(var t=n;;){if(!t)return 0;var a=t[1],u=t[2],f=e[1],i=Sst(a);if(!G$t[32].call(null,i,f)){var v=t[2],c=e[1],A=Sst(a);e[1]=G$t[2].call(null,A,0,c);var o=V$t(a);return[0,o[1],r(QY(o[2],v))]}t=u}}(H0(function(r){return r[2]},G$t[10].call(null,r)))}function z$t(r,e){var n=e[3],t=function(r,e){switch(e[0]){case 0:var n=e[1],t=n[1];if("number"!=typeof t&&3===t[0]&&!t[2]){var a=n[2];if(a){var u=a[2];if(u&&!u[2]){var f=u[1],i=a[1],v=t[1];if(Qot(v)){var c=z$t(r,i),A=z$t(r,f),o=cPt(),s=[0,NPt(MPt(A)),0];return rPt([0,NPt(MPt(c)),s],o)[2]}if(!iGt(v)){var b=Xct(v),l=r[1][1],B=Sst(b),j=G$t[2].call(null,B,b,l);r[1][1]=j;var k=[0,z$t(r,f),0],p=kPt([0,z$t(r,i),k]);return ZPt($Mt(O$t(b)),p)[2]}}}}return[0,[0,t,H0(function(e){return z$t(r,e)},n[2])]];case 3:var m=e[1],d=z$t(r,e[2]);return[3,S$t(r,m),d];case 4:var _=e[1],h=_[1],x=z$t(r,_[2]);return[4,[0,Z$t(r,h),x]];case 5:var y=e[2],w=e[1],g=z$t(r,e[3]),q=z$t(r,y);return[5,z$t(r,w),q,g];case 6:var I=e[1],D=H0(function(e){var n=e[2],t=n[1],a=e[1],u=e[3];return[0,a,[0,t,z$t(r,n[2])],u]},e[2]);return[6,z$t(r,I),D];case 7:return[7,z$t(r,e[1])];case 8:var E=e[2];return[8,e[1],E,z$t(r,e[3])];case 9:var N=e[4],T=e[2];return[9,e[1],T,z$t(r,e[3]),N];case 10:var F=e[2];return[10,e[1],F,z$t(r,e[3])];case 11:var M=e[2];return[11,e[1],M,z$t(r,e[3])];case 12:var P=e[6],U=e[5],G=e[4],$=e[3],K=e[2];return[12,e[1],K,$,G,U,P,z$t(r,e[7])];case 13:var O=e[4],R=e[3],Q=e[2],C=e[1],H=z$t(r,e[5]),V=z$t(r,O),L=z$t(r,R);return[13,C,z$t(r,Q),L,V,H];case 14:var z=e[3],S=e[4],Z=z[9],W=z[8],X=z[7],J=z[6],Y=z[5],rr=z[4],er=z[3],nr=z[2],tr=z[1],ar=e[2],ur=e[1],fr=$$t(),ir=Z$t(fr,ur),vr=z$t(fr,nr),cr=z$t(fr,er),Ar=z$t(fr,rr),or=z$t(fr,Y),sr=z$t(fr,J),br=z$t(fr,X),lr=z$t(fr,W);return[14,QY(L$t(fr[1][1]),ir),ar,[0,tr,vr,cr,Ar,or,sr,br,lr,Z],S];case 15:return[15,e[1],e[2],e[3]];case 16:var Br=e[3],jr=e[1],kr=H0(function(e){var n=e[2],t=n[1],a=e[1],u=e[3];return[0,a,[0,t,z$t(r,n[2])],u]},e[2]);return[16,z$t(r,jr),kr,Br];default:return e}}(r,e[2]);return[0,e[1],t,n]}function S$t(r,e){var n=e[2],t=e[3];switch(n[0]){case 0:var a=[0,n[1]];break;case 1:var u=n[1],f=z$t(r,n[2]);a=[1,z$t(r,u),f];break;default:var i=n[2];a=[2,z$t(r,n[1]),i]}return[0,e[1],a,t]}function Z$t(r,e){return H0(function(e){var n=e[2],t=e[3];switch(n[0]){case 0:var a=[0,n[1],z$t(r,n[2])];break;case 1:var u=n[2];a=[1,n[1],u,z$t(r,n[3])];break;default:var f=n[2];a=[2,n[1],f,S$t(r,n[3])]}return[0,e[1],a,t]},e)}var W$t=dut([0,z1]),X$t=[0,0,Fut];function J$t(r,e,n){for(var t=n,a=e;;){if(!t)return a;var u=t[2],f=W$t[2].call(null,t[1][2],[0,0===r?1:0,X$t[2]],a);t=u,a=f}}function Y$t(r,e){for(var n=e;;){var t=n[2];if("number"!=typeof t)switch(t[0]){case 0:return W$t[2].call(null,t[1],X$t,r);case 2:return z0(Y$t,r,t[1]);case 3:return z0(Y$t,r,FFt(t[1]));case 5:n=t[2];continue;case 1:break;default:n=t[1];continue}return r}}function rKt(r,e){var n=W$t[18].call(null,r,e);if(n)return n[1];throw gQ([0,kz,uz(H6(Poe),r)],1)}function eKt(r,e){var n=r[3][3]!==e?1:0;if(n){var t=r[3];r[3]=[0,t[1],t[2],e,t[4]];var a=0}else a=n;return a}function nKt(r,e,n){var t=n[2];r:{e:{n:{switch(t[0]){case 0:var a=t[1],u=a[1];t:{a:{if("number"==typeof u)switch(u){case 0:var f=a[2];break t;case 1:break;default:break a}else switch(u[0]){case 8:if(u[1])break a;f=a[2];break t;case 4:case 5:case 6:break;default:break a}var i=a[2];if(i&&!i[2]){var v=nKt(r,e,i[1]);break r}}for(var c=a[2];;){if(!c){v=Fut;break r}var A=c[2];tKt(r,e,c[1]),c=A}}v=Put(H0(function(n){return nKt(r,e,n)},f));break r;case 1:v=rKt(t[2],e)[2];break r;case 3:var o=t[2];break e;case 4:var s=t[1],b=s[2],l=uKt(r,e,s[1]);v=Put([0,l[2],[0,nKt(r,l[1],b),0]]);break r;case 5:var B=t[3],j=t[2];tKt(r,e,t[1]),tKt(r,e,j),tKt(r,e,B);v=Fut;break r;case 6:var k=t[2],p=t[1];break n;case 7:var m=t[1];break;case 9:m=t[3];break;case 10:var d=t[3];tKt(r,W$t[2].call(null,t[1],X$t,e),d);v=Fut;break r;case 12:var _=t[7],h=t[2];if(tKt(1,J$t(1,e,t[5]),_),h){v=Fut;break r}if(r){var x=[0,[0,0]],y=cMt(n);GFt[23].call(null,function(r,n){var t=rKt(r,e),a=t[2];return t[1]?0:Mut(a,x)},y);v=x;break r}v=Tut;break r;case 13:var w=t[5],g=t[4],q=t[3];tKt(1,e,t[2]),tKt(r,e,q),tKt(r,e,g),tKt(r,e,w);v=Fut;break r;case 14:var I=t[3],D=I[8],E=I[7],N=I[6],T=I[5],F=I[4],M=I[3],P=I[2],U=uKt(r,e,t[1])[1];tKt(r,U,P),tKt(r,U,M),tKt(r,U,F),tKt(r,U,T),tKt(r,U,N),tKt(r,U,E),tKt(r,U,D);v=Fut;break r;case 15:var G=t[1];if(3!==G&&G){v=Fut;break r}var $=t[2];if(TAt(t[3])){v=Put(H0(function(r){return rKt(r[2][2],e)[2]},$));break r}v=Fut;break r;case 16:var K=t[3],O=t[2],R=t[1];if(!K){k=O,p=R;break n}var Q=K[1],C=Q[2],H=Q[1];tKt(r,e,R);for(var V=O;;){if(!V){tKt(r,e,$Mt([0,H,C]));v=Fut;break r}var L=V[2];aKt(r,e,V[1]),V=L}break;case 2:v=Tut;break r;default:o=t[3];break e}tKt(1,e,m);v=Fut;break r}tKt(r,e,p);for(var z=k;;){if(!z){v=Fut;break r}var S=z[2];aKt(r,e,z[1]),z=S}}tKt(r,e,o);v=Fut}return eKt(n,1),Nut(v,[W,function(r){return eKt(n,0)}]),v}function tKt(r,e,n){nKt(r,e,n)}function aKt(r,e,n){var t=n[2][2];return tKt(r,Y$t(e,n[2][1]),t)}function uKt(r,e,n){for(var t=n,a=W$t[1];t;){var u=t[1],f=function(e){return[0,0===r?1:0,e]},i=u[2],v=t[2],c=0===i[0]?wUt(i[1]):0;let e=f,n=c;var A=jMt(u)[2];t=v,a=W$t[24].call(null,function(r,t,a){if(n){var u=e([0,[0,0]]);return W$t[2].call(null,r,u,a)}var f=e(Fut);return W$t[2].call(null,r,f,a)},A,a)}var o=W$t[51].call(null,e,a);return[0,o,Put(H0(function(e){return function(r,e,n){var t=n[2];switch(t[0]){case 0:var a=t[2];if(wUt(t[1])){var u=jMt(n)[2],f=nKt(r,e,a);return W$t[23].call(null,function(r,n){return Mut(f,W$t[17].call(null,r,e)[2])},u),f}var i=t[2];break;case 1:i=t[3];break;default:return Fut}return tKt(r,e,i),Fut}(r,o,e)},n))]}function fKt(r,e){return TMt(Tse,RPt(r,e))}function iKt(r){return TMt(Nse,QPt(r))}function vKt(r,e){var n=[0,0];return[1,r,function(r){if(n[1])throw gQ([0,xz,Ese],1);return n[1]=1,uz(e,r)}]}function cKt(r,e){if(0===r[0])return uz(e,r[1]);var n=r[1],t=r[2],a=TMt(Dse,n),u=uz(t,a),f=fKt(n,hMt(u)),i=uz(e,f);return rPt([0,KPt(f,a,u),0],i)}function AKt(r,e){if(0===r[0])return ZPt($Mt(r[1]),e);var n=r[2],t=e[2],a=r[1];if(1===t[0]&&!t[1])return uz(n,[0,t[2],hMt(e)]);var u=TMt("u",a);return TPt(u,e,uz(n,u))}var oKt=dut([0,nH]),sKt=dut([0,z1]);function bKt(r,e){var n=e[2];if("number"!=typeof n&&8===n[0]&&!n[1]&&!n[2]&&!n[3]){var t=$ct(n[4]),a=TMt(Ise,t),u=$Mt(a),f=ZPt($Mt(e),u),i=pPt(),v=rPt([0,NPt(ZPt($Mt(r),i)),0],f),c=fKt(t,hMt(v));return[0,c,KPt(c,a,v)]}throw gQ([0,xz,qse],1)}function lKt(r){for(var e=r,n=1;;){if(!e)return n;var t=e[2],a=Sot(0,n,hMt(e[1][2][2]));e=t,n=a}}function BKt(r,e){var n=e[2];if(9!==n[0])throw gQ([0,xz,Uoe],1);var t=n[4],a=n[2],u=n[1],f=uUt(eUt[1],n[3]),i=fKt(hMt(f),rS),v=iKt(rS),c=TMt(XX,CPt),A=oKt[5].call(null,1,[0,v]),o=oKt[2].call(null,0,[0,i],A),s=SPt([0,a,0],zPt([0,i,[0,v,[0,c,0]]],_Kt(oKt[2].call(null,2,[0,c],o),f)([0,i])));return HMt(u,t,hMt(f),s)}function jKt(r,e){if(0!==xMt(e))throw gQ([0,xz,Goe],1);var n=e[3],t=function(r,e){var n=e[2];switch(n[0]){case 0:var t=n[1],a=t[1];if("number"==typeof a){if(4===a){var u=t[2];if(u&&!u[2]){var f=u[1],i=oKt[18].call(null,0,r);if(!i)throw gQ([0,xz,$oe],1);var v=i[1];if(!v)return dPt(jKt(r,f))[2];var c=v[1],A=jKt(r,f);return dPt(ZPt($Mt(c),A))[2]}}}else if(9===a[0]){var o=t[2];if(o&&!o[2]){var s=o[1],b=a[1],l=oKt[18].call(null,[0,b],r);if(!l)throw gQ([0,xz,Koe],1);var B=l[1];if(!B)return mPt(b,jKt(r,s))[2];var j=B[1],k=jKt(r,s);return dPt(ZPt($Mt(j),k))[2]}}var p=t[2];if(yMt(a,p))throw gQ([0,xz,Ooe],1);return[0,[0,a,H0(function(e){return jKt(r,e)},p)]];case 3:var m=n[1],d=jKt(r,n[2]);return[3,kKt(r,m),d];case 4:var _=n[1],h=_[1],x=jKt(r,_[2]);return[4,[0,pKt(r,h),x]];case 5:var y=n[2],w=n[1],g=jKt(r,n[3]),q=jKt(r,y);return[5,jKt(r,w),q,g];case 6:var I=n[1],D=H0(function(e){var n=e[2],t=n[1],a=e[1],u=e[3];return[0,a,[0,t,jKt(r,n[2])],u]},n[2]);return[6,jKt(r,I),D];case 7:return[7,jKt(r,n[1])];case 8:var E=n[1],N=n[3];return[8,E,n[2],jKt(oKt[2].call(null,[0,E],0,r),N)];case 9:if(n[1])return BKt(0,e)[2];throw gQ([0,xz,Roe],1);case 10:var T=n[2];return[10,n[1],T,jKt(r,n[3])];case 11:var F=n[2];return[11,n[1],F,jKt(r,n[3])];case 12:var M=n[1],P=n[2];if(P){var U=n[7],G=U[2],$=n[6],K=n[5],O=n[4],R=n[3];switch(G[0]){case 4:var Q=G[1],C=Q[1];if(C){var H=C[1][2];if(0===H[0]){var V=H[1];if("number"==typeof V[2]){var L=H[2];if(9===L[2][0]&&!C[2]){var z=Q[2],S=z[2];if(0===S[0]){var Z=S[1],W=Z[1];if("number"==typeof W&&!W&&!Z[2])return[12,M,P,R,O,K,$,rPt([0,IPt(V,BKt(0,L)),0],z)]}}}}}break;case 9:return[12,M,P,R,O,K,$,BKt(0,U)]}}else{var X=n[7],J=X[2],Y=n[6],rr=n[5],er=n[4],nr=n[3];switch(J[0]){case 4:var tr=J[1],ar=tr[2];if(9===ar[2][0]){var ur=tr[1],fr=X[3],ir=[4,[0,ur,BKt(0,ar)]];return[12,M,0,nr,er,rr,Y,[0,X[1],ir,fr]]}break;case 9:return[12,M,0,nr,er,rr,Y,BKt(0,X)]}}var vr=n[7],cr=n[6],Ar=n[5],or=n[4],sr=n[3],br=n[2];if(XAt(hMt(e)))throw gQ([0,xz,Qoe],1);if(WAt(hMt(e)))throw gQ([0,xz,Coe],1);return[12,M,br,sr,or,Ar,cr,jKt(oKt[5].call(null,0,0),vr)];case 13:throw gQ([0,xz,Hoe],1);case 14:var lr=n[3],Br=n[4],jr=lr[9],kr=lr[7],pr=lr[6],mr=lr[5],dr=lr[4],_r=lr[3],hr=lr[2],xr=lr[1],yr=n[2],wr=n[1],gr=jKt(oKt[1],lr[8]),qr=FKt(oKt[1],kr),Ir=jKt(oKt[1],pr),Dr=FKt(oKt[1],mr),Er=FKt(oKt[1],dr),Nr=jKt(oKt[1],_r),Tr=[0,xr,jKt(oKt[1],hr),Nr,Er,Dr,Ir,qr,gr,jr];return[14,pKt(r,wr),yr,Tr,Br];case 15:default:return e[2];case 16:throw gQ([0,xz,Voe],1)}}(r,e);return[0,e[1],t,n]}function kKt(r,e){var n=e[2],t=e[3];switch(n[0]){case 0:var a=[0,n[1]];break;case 1:var u=n[1],f=jKt(r,n[2]);a=[1,jKt(r,u),f];break;default:var i=n[2];a=[2,jKt(r,n[1]),i]}return[0,e[1],a,t]}function pKt(r,e){return H0(function(e){var n=e[2],t=e[3];switch(n[0]){case 0:var a=[0,n[1],jKt(r,n[2])];break;case 1:var u=n[2];a=[1,n[1],u,jKt(r,n[3])];break;default:var f=n[2];a=[2,n[1],f,kKt(r,n[3])]}return[0,e[1],a,t]},e)}function mKt(r,e,n,t){if(!xMt(t))throw gQ([0,xz,Loe],1);var a=vKt(hMt(t),function(r){return AKt(e,uz(n,r))});return _Kt(r,t)(a)}function dKt(r,e,n,t){return function t(a,u){for(var f=a,i=u;;){if(!i)return AKt(e,uz(n,Q0(f)));var v=i[1];if(!i[2]&&0===xMt(v))return AKt(e,uz(n,Q0([0,jKt(r,v),f])));var c=i[2],A=xMt(v),o=v[2];if(1!==o[0])break;if(o[1])break;f=[0,v,f],i=c}if(A){var s=vKt(hMt(v),function(r){return t([0,$Mt(r),f],c)});return _Kt(r,v)(s)}var b=TMt(Zoe,hMt(v)),l=t([0,$Mt(b),f],c);return TPt(b,jKt(r,v),l)}(0,t)}function _Kt(r,e){return function(n){return function(r,e,n){function t(r){return[0,e[1],r,e[3]]}var a=e[2];if(0===xMt(e))return AKt(n,jKt(r,e));switch(a[0]){case 0:var u=a[1],f=u[1];if("number"==typeof f)switch(f){case 4:var i=u[2];if(i&&!i[2]){var v=i[1],c=oKt[18].call(null,0,r);if(c){var A=c[1];if(A){var o=[0,A[1]];return _Kt(r,v)(o)}}throw gQ([0,xz,use],1)}break;case 6:var s=u[2];if(s&&!s[2]){var b=s[1],l=oKt[18].call(null,1,r);if(l){var B=l[1];if(B){var j=[0,B[1]];return _Kt(r,b)(j)}}throw gQ([0,xz,fse],1)}}else switch(f[0]){case 9:var k=u[2];if(k&&!k[2]){var p=k[1],m=oKt[18].call(null,[0,f[1]],r);if(m){var d=m[1];if(d){var _=[0,d[1]];return _Kt(r,p)(_)}}throw gQ([0,xz,ise],1)}break;case 10:var h=u[2];if(h&&!h[2]){var x=h[1],y=f[1],w=oKt[18].call(null,1,r),g=oKt[18].call(null,2,r);if(w){var q=w[1];if(q&&g){var I=g[1];if(I){var D=I[1],E=q[1];return cKt(n,function(e){var n=kPt(H0($Mt,[0,e,[0,E,[0,D,0]]]));if(xMt(x)){var t=vKt(hMt(x),function(r){var t=$Mt(r);return VMt(y,e[2],t,n)});return _Kt(r,x)(t)}var a=jKt(r,x);return VMt(y,e[2],a,n)})}}}throw gQ([0,xz,vse],1)}}var N=u[2];if(!yMt(f,N))return dKt(r,n,function(r){return t([0,[0,f,r]])},u[2]);var T=oKt[18].call(null,1,r);if(T){var F=T[1];if(F){var M=F[1];return dKt(r,vKt(hMt(e),function(r){return rUt(AKt(n,$Mt(r)),function(r){return ZPt($Mt(M),r)})}),function(r){return t([0,[0,f,r]])},N)}}throw gQ([0,xz,cse],1);case 3:var P=a[2],U=a[1],G=U[2];switch(G[0]){case 0:return mKt(r,n,function(r){return t([3,U,$Mt(r)])},P);case 1:return dKt(r,n,function(r){if(r){var e=r[2];if(e){var n=e[2];if(n&&!n[2])return t([3,[0,U[1],[1,r[1],e[1]],U[3]],n[1]])}}throw gQ([0,xz,Yoe],1)},[0,G[1],[0,G[2],[0,P,0]]]);default:var $=G[1],K=G[2],O=function(r,e){return t([3,[0,U[1],[2,r,K],U[3]],e])},R=xMt($),Q=xMt(P);if(!R){if(!Q)throw gQ([0,xz,Soe],1);var C=TMt(zoe,hMt($)),H=vKt(hMt(P),function(r){var e=$Mt(r);return AKt(n,O($Mt(C),e))}),V=_Kt(r,P)(H);return TPt(C,jKt(r,$),V)}if(Q){var L=vKt(hMt($),function(e){var t=vKt(hMt(P),function(r){var t=$Mt(r);return AKt(n,O($Mt(e),t))});return _Kt(r,P)(t)});return _Kt(r,$)(L)}var z=vKt(hMt($),function(e){var t=jKt(r,P);return AKt(n,O($Mt(e),t))});return _Kt(r,$)(z)}case 4:var S=a[1];return hKt(r,S[1],S[2],n);case 5:var Z=a[1],W=a[3],X=a[2];return cKt(n,function(e){function n(n){if(xMt(n))return _Kt(r,n)([0,e]);var t=jKt(r,n);return ZPt($Mt(e),t)}var t=n(X),a=n(W);if(!xMt(Z))return iPt(jKt(r,Z),t,a);var u=vKt(hMt(Z),function(r){return iPt($Mt(r),t,a)});return _Kt(r,Z)(u)});case 6:var J=a[1],Y=a[2];return cKt(n,function(n){var t=H0(function(e){var t=e[2],a=t[2],u=t[1],f=e[1],i=e[3];if(xMt(a))var v=_Kt(r,a)([0,n]);else{var c=jKt(r,a);v=ZPt($Mt(n),c)}return[0,f,[0,u,v],i]},Y),a=lKt(t);if(xMt(J)){var u=vKt(hMt(J),function(r){var n=e[3],u=[0,a,n[2],n[3],n[4]],f=[6,$Mt(r),t];return[0,e[1],f,u]});return _Kt(r,J)(u)}var f=e[3],i=[0,a,f[2],f[3],f[4]],v=[6,jKt(r,J),t];return[0,e[1],v,i]});case 7:var rr=a[1];if(!xMt(rr))throw gQ([0,xz,Joe],1);var er=TMt(Woe,RPt(rS,rS)),nr=TMt(Xoe,rS),tr=pPt(),ar=ZPt($Mt(er),tr);return rPt([0,KPt(er,nr,_Kt(r,rr)([0,er])),0],ar);case 8:var ur=a[3],fr=a[1];return cKt(n,function(e){return _Kt(oKt[2].call(null,[0,fr],[0,e],r),ur)([0,e])});case 9:if(a[1])throw gQ([0,xz,Ase],1);var ir=a[3],vr=a[4],cr=a[2],Ar=fKt(hMt(ir),rS),or=iKt(rS),sr=TMt(XX,CPt),br=oKt[5].call(null,1,[0,or]),lr=oKt[2].call(null,0,[0,Ar],br),Br=oKt[2].call(null,2,[0,sr],lr),jr=oKt[18].call(null,1,r);if(jr){var kr=jr[1];if(kr){var pr=kr[1],mr=SPt([0,cr,0],zPt([0,Ar,[0,or,[0,sr,0]]],_Kt(Br,ir)([0,Ar]))),dr=HMt(0,vr,hMt(ir),mr);return AKt(vKt(hMt(dr),function(r){return rUt(AKt(n,$Mt(r)),function(r){return ZPt($Mt(pr),r)})}),dr)}}throw gQ([0,xz,ose],1);case 10:var _r=a[2],hr=a[1];return mKt(r,n,function(r){return t([10,hr,_r,$Mt(r)])},a[3]);case 11:var xr=a[2],yr=a[1];return mKt(r,n,function(r){return t([11,yr,xr,$Mt(r)])},a[3]);case 13:throw gQ([0,xz,sse],1);case 14:throw gQ([0,xz,bse],1);case 15:return e;case 16:var wr=a[3],gr=a[2],qr=a[1],Ir=function(r){if(0===oKt[18].call(null,2,r))throw gQ([0,xz,nse],1);var t=oKt[17].call(null,1,r);if(!t)throw gQ([0,xz,tse],1);var a=t[1];return cKt(n,function(n){function t(n){if(!xMt(qr)){var t=jKt(r,qr);return ZPt($Mt(n),t)}if(0===gr)return _Kt(r,qr)([0,n]);var u=TMt(rse,oS),f=$Mt(u),i=ZPt($Mt(a),f);r:{for(var v=gr,c=[0,vut,[0,PMt(u),i],0];v;){var A=v[2],o=wUt(v[1][2][1]);if(o){var s=o;break r}v=A}s=0}var b=s?0:[0,c,0],l=QY(H0(function(e){var t=e[2],a=t[2],u=t[1],f=e[1],i=e[3];if(xMt(a))var v=_Kt(r,a)([0,n]);else{var c=jKt(r,a);v=ZPt($Mt(n),c)}return[0,f,[0,u,v],i]},gr),b),B=n[2];if("number"!=typeof B&&8===B[0]&&!B[1]&&!B[2]&&!B[3]){var j=iKt($ct(B[5])),k=_Kt(oKt[2].call(null,1,[0,j],r),qr)([0,n]),p=TMt(ese,oS),m=VX[4],d=VX[3],_=[0,lKt(l),1,d,m],h=[6,$Mt(p),l];return rPt([0,KPt(j,p,[0,e[1],h,_]),0],k)}throw gQ([0,xz,ite],1)}if(!wr)return t(n);var u=wr[1],f=bKt([0,u[1],u[2]],n);return rPt([0,f[2],0],t(f[1]))})};if(!wr)return Ir(r);var Dr=wr[1],Er=[0,Dr[1],Dr[2]],Nr=oKt[24].call(null,function(r,e,n){var t=n[2],a=n[1];if(!e)throw gQ([0,xz,gse],1);var u=bKt(Er,e[1]);return[0,[0,u[2],a],oKt[2].call(null,r,[0,u[1]],t)]},r,[0,0,oKt[1]]);return rPt(Nr[1],Ir(Nr[2]));default:throw gQ([0,xz,ase],1)}}(r,e,n)}}function hKt(r,e,n,t){return yKt(e,xKt(r,e,vKt(rS,function(e){return _Kt(r,n)(t)})))}function xKt(r,e,n){if(!e)return AKt(n,pPt());var t=e[1],a=e[2],u=vKt(rS,function(e){return xKt(r,a,n)}),f=t[2];switch(f[0]){case 0:var i=f[2],v=f[1],c=IKt(v),A=c[2],o=c[1],s=function(r){var e=[0,t[1],[0,A,r],t[3]],n=AKt(u,kPt(0));return rPt([0,e,EKt(o,v)],n)};if(!xMt(i))return s(jKt(r,i));var b=vKt(hMt(i),function(r){return s($Mt(r))});return _Kt(r,i)(b);case 1:var l=f[3],B=f[1];if(!xMt(l))return AKt(u,gPt(B,1,jKt(r,l)));var j=vKt(hMt(l),function(r){return AKt(u,gPt(B,1,$Mt(r)))});return _Kt(r,l)(j);default:throw gQ([0,xz,lse],1)}}function yKt(r,e){if(!r)return e;var n=r[1],t=yKt(r[2],e),a=n[2];switch(a[0]){case 0:return function(r,e){return qL(gKt(0,r,e))}(a[1],t);case 1:return wKt(a[1],[10,a[2]],t);default:return wKt(a[1],a[2],t)}}function wKt(r,e,n){return[0,vut,[10,r,e,n],n[3]]}function gKt(r,e,n){for(var t=e;;){var a=t[2];if("number"!=typeof a)switch(a[0]){case 0:return wKt(a[1],t[3],n);case 2:var u=a[1];return r<50?qKt(r+1|0,u,n):IL(qKt,[0,u,n]);case 3:var f=FFt(a[1]);return r<50?qKt(r+1|0,f,n):IL(qKt,[0,f,n]);case 4:case 6:t=a[1];continue;case 5:t=a[2];continue}return n}}function qKt(r,e,n){if(!e)return n;var t=e[1],a=function(r,e){return qL(qKt(0,r,e))}(e[2],n);return r<50?gKt(r+1|0,t,a):IL(gKt,[0,t,a])}function IKt(r){var e=r[2];r:{if("number"!=typeof e)switch(e[0]){case 0:var n=e[1],t=TMt(Bse,r[3]),a=[0,t[1]],u=[0,sKt[5].call(null,n,t),a];break r;case 2:var f=DKt(e[1]);u=[0,f[1],[2,f[2]]];break r;case 3:var i=e[1],v=DKt(FFt(i));u=[0,v[1],[3,PFt(i,v[2])]];break r;case 4:var c=IKt(e[1]);u=[0,c[1],[4,c[2]]];break r;case 5:var A=e[1],o=IKt(e[2]);u=[0,o[1],[5,A,o[2]]];break r;case 6:var s=e[2],b=aMt(e[1]);if(!GFt[31].call(null,b))throw gQ([0,xz,jse],1);var l=aMt(s);if(!GFt[31].call(null,l))throw gQ([0,xz,kse],1);u=[0,sKt[1],r[2]];break r}u=[0,sKt[1],r[2]]}return[0,u[1],[0,r[1],u[2],r[3]]]}function DKt(r){if(!r)return[0,sKt[1],0];var e=r[2],n=IKt(r[1]),t=n[2],a=n[1],u=DKt(e),f=[0,t,u[2]];return[0,sKt[53].call(null,a,u[1]),f]}function EKt(r,e){for(var n=e;;){var t=n[2];if("number"!=typeof t)switch(t[0]){case 0:var a=t[1];return[0,NPt(gPt(a,0,$Mt(sKt[17].call(null,a,r)))),0];case 2:return NKt(r,t[1]);case 3:return NKt(r,FFt(t[1]));case 4:n=t[1];continue;case 5:n=t[2];continue;case 6:var u=t[2],f=aMt(t[1]);if(!GFt[31].call(null,f))throw gQ([0,xz,pse],1);var i=aMt(u);if(GFt[31].call(null,i))return 0;throw gQ([0,xz,mse],1)}return 0}}function NKt(r,e){return f1(function(e){return EKt(r,e)},e)}function TKt(r,e,n){var t=e[2];if(0===t[0]){var a=t[1],u=a[1];if("number"==typeof u&&!u&&!a[2])return e}var f=iKt(rS),i=oKt[2].call(null,1,[0,f],r),v=oKt[2].call(null,2,[0,[0,xse,CPt]],i),c=TMt(yse,oS),A=vKt(rS,function(r){return kPt(0)}),o=_Kt(v,e)(A),s=rPt([0,KPt(f,c,n),0],o);return[0,e[1],s[2],s[3]]}function FKt(r,e){return TKt(r,e,kPt(0))}var MKt=dut([0,rct]);function PKt(r,e,n,t,a){return[0,vut,[13,r,e,n,t,a],[0,rS,VX[2],VX[3],VX[4]]]}var UKt=[7,[0,[4,Pct],[0,fS,0]]];function GKt(r){return SMt(KMt([17,vS,UKt],[0,r,0]),1)}function $Kt(r){return[0,r,0]}function KKt(r,e){return[8,0,0,0,uz(r,e),0]}var OKt=QPt(rS);function RKt(r,e){var n=[0,Fct([0,[0,_be,rS],dbe]),0];return[8,0,0,0,[0,KKt(r,e),[0,OKt,[0,CPt,0]]],n]}var QKt=[0,KKt($Kt,JX),[0,OKt,[0,CPt,0]]];function CKt(r){return _At(r)}var HKt=[8,0,0,hbe,0,[0,RKt($Kt,JX),QKt]];function VKt(r){var e=$ct(r),n=pPt(),t=fPt($Mt([0,"@new_async",HKt]),[0,e,0],n),a=TMt(mbe,hMt(SMt(t,0))),u=TMt("fulfill",hMt(SMt(t,1))),f=TMt("fail",hMt(SMt(t,2))),i=TMt("clean",hMt(SMt(t,3)));function v(r){var e=TMt(lbe,r),n=TMt(Bbe,RPt(r,rS)),t=TMt(jbe,QPt(rS)),u=TMt(kbe,CPt),f=[0,$Mt(u),0],i=[0,$Mt(t),f],v=$Mt(e),c=kPt([0,zPt([0,e,0],ZPt($Mt(n),v)),i]);return zPt([0,n,[0,t,[0,u,0]]],ZPt($Mt(a),c))}r:if(!r||r[2])o=v(e);else{var c=r[1],A=Xct(c);if("number"!=typeof A&&7===A[0]){var o=v(c);break r}var o=$Mt(a)}var s=FMt("rep",r),b=VPt(H0($Mt,s)),l=zPt(s,ZPt($Mt(u),b)),B=TMt("cleanup",i[2]),j=TMt("reject",f[2]),k=TMt("reply",hMt(l)),p=TMt(pbe,hMt(o)),m=[0,$Mt(i),0],d=kPt([0,o,[0,l,[0,$Mt(f),m]]]),_=[0,PMt(i),0],h=[0,PMt(f),_],x=[0,PMt(u),h];return[0,[0,p,k,j,B],rPt([0,IPt(UMt([0,PMt(a),x]),t),0],d)]}function LKt(r,e){var n=r[2];if(1===n[0]&&!n[1])return uz(e,r);var t=TMt(bbe,hMt(r)),a=uz(e,$Mt(t));return[0,DPt(t,r),a]}var zKt=[Gl,"Linking.LinkModule.LinkError",zH()];function SKt(r,e){var n=e[8],t=e[7],a=e[6],u=e[5],f=e[4],i=e[3],v=e[2];return[0,uz(r,e[1]),v,i,f,u,a,t,n]}function ZKt(r){var e=r[4];if(e)return e[1][2][1][2]?1:0;throw gQ([0,zKt,"Expect at least one memory in module"],1)}function WKt(r,e,n){for(var t=0,a=n[9];;){if(!a)throw gQ([0,xz,Ile],1);var u=a[2],f=a[1];if(uz(r,f[2][3][2])){if(OH(t,e))return f;t=t+1|0,a=u}else a=u}}function XKt(r,e,n){for(var t=Ort(e),a=0,u=0,f=n[9];;){if(!f)return Q0(u);var i=f[2],v=f[1];if(uz(r,v[2][3][2]))if(OH(v[2][1],t)){var c=[0,[0,a,v[2][2]],u];a=a+1|0,u=c,f=i}else a=a+1|0,f=i;else f=i}}function JKt(r,e){return function(n){var t=n[10],a=function n(t,a){for(var u=t,f=a;;){if(!f)return 0;var i=f[2],v=f[1];if(!uz(r,v[2][3][2]))return[0,v,n(u,i)];if(!n1(u,e))return[0,v,n(u+1|0,i)];u=u+1|0,f=i}}(0,n[9]);return[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],a,t]}}function YKt(r,e){return Xrt(a1(function(e){return uz(r,e[2][3][2])},e[9]))}function rOt(r,e){return function(n){var t=a1(function(n){var t=0!==uz(r,n[2][2][2])?1:0;if(t)var a=Ort(e),u=OH(n[2][1],a);else u=t;return 1-u},n[10]);return[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],t]}}var eOt=U2([0,nH]),nOt=[Gl,"Linking.LinkModule.TooLargeDataSegments",zH()];function tOt(r,e){for(var n=e[10],t=eOt[1];;){if(!n)return t;var a=n[2],u=n[1],f=uz(r,u[2][2][2]);f?(n=a,t=eOt[2].call(null,u[2][1],f[1][2],t)):n=a}}function aOt(r){return 0===r[0]?1:0}function uOt(r){return 3===r[0]?1:0}function fOt(r){return 1===r[0]?1:0}function iOt(r){return 2===r[0]?1:0}function vOt(r){return 0===r[0]?[0,r[1]]:0}function cOt(r){return 3===r[0]?[0,r[1]]:0}function AOt(r,e){var n=YKt(aOt,e);if(EV(r,n)){var t=WKt(aOt,r,e)[2][3][2];if(0!==t[0])throw gQ([0,xz,qle],1);var a=t[1][2]}else a=Jrt(e[5],r-n|0)[2][1][2];return Jrt(e[1],a)[2]}function oOt(r,e){var n=YKt(uOt,e);if(!EV(r,n))return Jrt(e[2],r-n|0)[2][1];var t=WKt(uOt,r,e)[2][3][2];if(3===t[0])return t[1];throw gQ([0,xz,gle],1)}function sOt(r){return function(e){function n(e){return 1-n1(e[1],r)}var t=e[10],a=e[9],u=e[8],f=e[7],i=e[6],v=e[5],c=e[4],A=a1(n,e[3]),o=a1(n,e[2]);return[0,e[1],o,A,c,v,i,f,u,a,t]}}function bOt(r,e,n){var t=YKt(aOt,n[1])+Xrt(n[1][5])|0,a=n[1][6],u=a?[0,[0,O9n,[6,a[1]]],0]:0,f=[0,O9n,[0,[0,O9n,e],0,QY([0,[0,O9n,[6,[0,O9n,r]]],0],u)]],i=n[2],v=n[8],c=n[7],A=n[6],o=n[5],s=n[4],b=n[3],l=i[10],B=i[9],j=i[8],k=i[7],p=i[6],m=i[5],d=i[4],_=i[3],h=QY(n[2][2],[0,[0,t,"link_start"],0]),x=n[1],y=[0,i[1],h,_,d,m,p,k,j,B,l],w=x[10],g=x[9],q=x[8],I=x[7],D=QY(n[1][5],[0,f,0]);return[0,[0,x[1],x[2],x[3],x[4],D,[0,[0,O9n,t]],I,q,g,w],y,b,s,o,A,c,v]}function lOt(r,e){return C0(H0(function(r){var n=r[1],t=eOt[18].call(null,r[2],e);return t?[0,[0,n,t[1]],0]:0},r))}function BOt(r,e,n,t,a){var u=r-Xrt(t)|0,f=n-Xrt(a)|0;function i(e,n){for(var a=0,u=t;;){if(!u)return EV(n,r)?n-a|0:(n+f|0)-a|0;var i=u[1],c=i[2],A=i[1],o=u[2];if(EV(n,A))return n-a|0;if(OH(n,A))return e<50?v(e+1|0,c):IL(v,[0,c]);a=a+1|0,u=o}}function v(r,t){for(var f=0,v=a;;){if(!v)return EV(t,n)?(t+u|0)-f|0:((t+u|0)+e|0)-f|0;var c=v[1],A=c[2],o=c[1],s=v[2];if(EV(t,o))return(t+u|0)-f|0;if(OH(t,o))return r<50?i(r+1|0,A):IL(i,[0,A]);f=f+1|0,v=s}}return[0,function(r){return qL(i(0,r))},function(r){return qL(v(0,r))}]}function jOt(r){return function(e){function n(e){var n=e[2];if("number"==typeof n)var a=n;else switch(n[0]){case 0:a=[0,n[1],t(n[2])];break;case 1:a=[1,n[1],t(n[2])];break;case 2:var u=n[2],f=n[1],i=t(n[3]);a=[2,f,t(u),i];break;case 11:a=[11,npt(r,n[1])];break;case 12:a=[12,npt(r,n[1])];break;default:a=n}return[0,e[1],a]}function t(r){return H0(n,r)}var a=H0(function(e){var n=e[2],t=n[2],a=t[2],u=3===a[0]?[3,npt(r,a[1])]:a;return[0,e[1],[0,n[1],[0,t[1],u]]]},e[10]),u=e[9],f=H0(function(r){var e=r[2],n=e[2],a=n[2];if("number"==typeof a)var u=a?1:0;else u=[0,a[1],npt(t,a[2])];return[0,r[1],[0,e[1],[0,n[1],u]]]},e[8]),i=H0(function(r){var e=r[2],n=e[3],a=npt(t,e[2]);return[0,r[1],[0,e[1],a,n]]},e[7]),v=e[6],c=H0(function(r){var e=r[2],n=t(e[3]);return[0,r[1],[0,e[1],e[2],n]]},e[5]),A=e[4],o=e[3],s=H0(function(r){var e=r[2],n=npt(t,e[2]);return[0,r[1],[0,e[1],n]]},e[2]);return[0,e[1],s,o,A,c,v,i,f,u,a]}}function kOt(r,e){var n=e[10],t=e[9],a=e[8],u=e[7],f=e[6],i=e[5],v=e[4],c=H0(function(e){var n=e[2];return[0,uz(r,e[1]),n]},e[3]),A=H0(function(e){var n=e[2];return[0,uz(r,e[1]),n]},e[2]);return[0,e[1],A,c,v,i,f,u,a,t,n]}function pOt(r,e){function n(e){return 0===e[0]?[0,npt(r,e[1])]:[1,e[1]]}function t(e){var t=e[2];if("number"==typeof t)var u=t;else switch(t[0]){case 0:var f=t[1],i=a(t[2]);u=[0,n(f),i];break;case 1:var v=t[1],c=a(t[2]);u=[1,n(v),c];break;case 2:var A=t[2],o=t[1],s=a(t[3]),b=a(A);u=[2,n(o),b,s];break;case 7:u=[7,t[1],npt(r,t[2])];break;default:u=t}return[0,e[1],u]}function a(r){return H0(t,r)}var u=e[10],f=H0(function(e){var n=e[2],t=n[3],a=t[2],u=0===a[0]?[0,npt(r,a[1])]:a;return[0,e[1],[0,n[1],n[2],[0,t[1],u]]]},e[9]),i=e[8],v=e[7],c=e[6],A=H0(function(e){var n=e[2],t=a(n[3]),u=n[2],f=[0,npt(r,n[1]),u,t];return[0,e[1],f]},e[5]);return[0,,e[2],e[3],e[4],A,c,v,i,f,u]}function mOt(r,e,n,t,a){for(var u=0,f=a[9];;){if(!f)throw gQ([0,xz,fle],1);var i=f[2],v=f[1];if(3===v[2][3][2][0]){var c=Ort(r);if(OH(v[2][1],c)){var A=Ort(e);if(OH(v[2][2],A))break}u=u+1|0,f=i}else f=i}var o=u,s=t?[1,aV(n)]:[0,n];function b(r){var e=r[2];if("number"==typeof e)var n=e;else switch(e[0]){case 0:n=[0,e[1],l(e[2])];break;case 1:n=[1,e[1],l(e[2])];break;case 2:var t=e[2],a=e[1],u=l(e[3]);n=[2,a,l(t),u];break;case 11:var f=e[1];n=OH(f[2],o)?[16,[0,f[1],s]]:e;break;case 12:if(OH(e[1][2],o))throw gQ([0,xz,dle],1);n=e;break;default:n=e}return[0,r[1],n]}function l(r){return H0(b,r)}var B=a[10],j=a[9],k=H0(function(r){var e=r[2],n=e[2],t=n[2];if("number"==typeof t)var a=t?1:0;else a=[0,t[1],npt(l,t[2])];return[0,r[1],[0,e[1],[0,n[1],a]]]},a[8]),p=H0(function(r){var e=r[2],n=e[3],t=npt(l,e[2]);return[0,r[1],[0,e[1],t,n]]},a[7]),m=a[6],d=H0(function(r){var e=r[2],n=l(e[3]);return[0,r[1],[0,e[1],e[2],n]]},a[5]),_=a[4],h=a[3],x=H0(function(r){var e=r[2],n=npt(l,e[2]);return[0,r[1],[0,e[1],n]]},a[2]),y=[0,a[1],x,h,_,d,m,p,k,j,B],w=JKt(uOt,[0,[0,o,o],0])(y);return jOt(function(r){if(EV(r,o))return r;if(OH(r,o))throw gQ([0,xz,ule],1);return r-1|0})(w)}function dOt(r,e,n,t,a,u){var f=u[1],i=u[2],v=fz(e,f,t),c=fz(e,i,a),A=WKt(r,f,t),o=cL(v,c);if(!o)return o;var s=uz(n,c),b=uz(n,v),l=Ykt(A[2][2]),B=Ykt(A[2][1]);throw gQ([0,zKt,vz(H6(ele),B,l,b,s)],1)}function _Ot(r,e){return((e+((1<>>r|0)<>>0>=2)return 0;n=1}return n},Pt[10]),Ht=[0,[0,Pt[1],Pt[2],Pt[3],Pt[4],Pt[5],Pt[6],Pt[7],Pt[8],Pt[9],Ct],Qt,Rt,Ot,Kt,$t,Gt,Ut];if(F)var Vt=pe[8],Lt=function(r){var e=r[1],n=r[8],t=r[7],a=r[6],u=r[5],f=r[4],i=r[3],v=r[2],c=YKt(aOt,e),A=e[6];if(!A)throw gQ([0,zKt,"The module has no start function to inject"],1);var o=A[1][2]-c|0;if(o<0)throw gQ([0,zKt,"The module start refers to an imported function that cannot be injected"],1);if(o>=G0(e[5]))throw gQ([0,xz,ybe],1);var s=C0(V0(function(r,e){function n(r){return[0,O9n,[16,[0,O9n,[0,r]]]]}var t=e[2][2][2],a=r+Wr|0;if("number"==typeof t)throw gQ([0,zKt,xbe],1);var u=t[2][2],f=[0,n(AV(e[2][1])),[0,[0,O9n,[15,[0,O9n,a]]],0]];return QY(u,[0,n(0),f])},Vt)),b=e[10],l=e[9],B=e[8],j=e[7],k=e[6],p=V0(function(r,e){return r===o?function(r){var e=r[2],n=QY(s,e[3]);return[0,r[1],[0,e[1],e[2],n]]}(e):e},e[5]);return[0,[0,e[1],e[2],e[3],e[4],p,k,j,B,l,b],v,i,f,u,a,t,n]};else Lt=function(r){return r};var zt=Lt(Ht),St=H0(function(r){var e=r[3],n=r[2],t=r[1];if(0===e[0]){var a=[0,[0,hr(e[1][1])]];return[0,Gr(t),n,a]}var u=[1,[0,Gr(e[1][1])]];return[0,Gr(t),n,u]},sr),Zt=T+c[3]|0,Wt=zt[1],Xt=u1(function(r){var e=r[3],n=r[2],t=r[1];return 0===e[0]?[0,[0,t,n,e[1][1]]]:0},St),Jt=H0(function(r){return[0,O9n,r[3]]},Xt),Yt=V0(function(r,e){var n=e[2][1],t=e[1];if(1===n)var a=wOt(rV(aV(Zt),aV(r)));else{if(n)throw gQ([0,zKt,"GOT.func global type is not supported"],1);a=ZKt(Wt)?wOt(aV(Zt+r|0)):xOt(Zt+r|0)}return[0,t,a]},Xt);if(0===Xt)var ra=0;else{var ea=ZKt(Wt)?yOt(aV(Zt)):hOt(Zt);ra=[0,[0,[0,O9n,0],[0,O9n,[0,ea,0]],Jt]]}var na=u1(function(r){var e=r[3],n=r[2],t=r[1];return 0===e[0]?0:[0,[0,t,n,e[1][1]]]},St),ta=function(r){for(var e=na;;){if(!e)return 0;var n=e[1],t=e[2];if(OH(n[1],r))return[0,n];e=t}},aa=function(r){var e=r[2];e:{if("number"!=typeof e)switch(e[0]){case 0:var n=[0,[0,e[1],ua(e[2])],0];break e;case 1:n=[0,[1,e[1],ua(e[2])],0];break e;case 2:var t=e[2],a=e[1],u=ua(e[3]);n=[0,[2,a,ua(t),u],0];break e;case 11:var f=e[1],i=ta(f[2]);if(!i){n=[0,[11,f],0];break e}var v=i[1][3];if(ZKt(Wt)){n=[0,[16,[0,O9n,[1,aV(h)]]],[0,[11,[0,O9n,v]],Rbe]];break e}n=[0,[16,[0,O9n,[0,h]]],[0,[11,[0,O9n,v]],Qbe]];break e;case 12:var c=e[1];if(ta(c[2]))throw gQ([0,xz,Obe],1);n=[0,[12,c],0];break e}n=[0,e,0]}return H0(function(e){return[0,r[1],e]},n)},ua=function(r){return C0(H0(aa,r))},fa=H0(function(r){var e=r[2][1],n=r[1];if(1===e)var t=wOt(Kbe);else{if(e)throw gQ([0,zKt,"GOT.mem global type is not supported"],1);t=xOt(0)}return[0,n,t]},na),ia=Wt[10],va=Wt[8],ca=Wt[6],Aa=H0(function(r){var e=r[2],n=ua(e[3]);return[0,r[1],[0,e[1],e[2],n]]},Wt[5]),oa=Wt[4],sa=Wt[3],ba=Wt[1],la=ra?QY(Wt[7],[0,[0,O9n,ra[1]],0]):Wt[7],Ba=H0(function(r){return[0,O9n,r[2]]},s1(function(r,e){return JC(r[1],e[1])},QY(Yt,fa))),ja=Wt[9],ka=Ort(Xbe),pa=Ort(Jbe),ma=a1(function(r){var e=r[2][1];return 1-(OH(e,ka)||OH(e,pa))},ja);return[0,[0,ba,QY(Ba,Wt[2]),sa,oa,Aa,ca,la,va,ma,ia],zt[2],zt[3],zt[4],zt[5],zt[6],zt[7],zt[8]]}throw gQ([0,zKt,Ale],1)}throw gQ([0,zKt,"Expect one memory in first module"],1)}throw gQ([0,zKt,lle],1)}function IOt(r,e,n){var t=n[1];switch(t[0]){case 0:var a=n[2],u=a[2];if(0===u[0]){var f=n[3];if(0===f[0]){var i=n[4];if(0===i[0]){var v=i[1],c=u[1],A=t[1];if(A===f[1]){return 0<=c&&32>c&&0<=v&&32>v&&32>(c+v|0)?[0,[0,[0,r[1],[16,[0,a[1],[0,c+v|0]]]],[0,[0,e[1],[20,[0,A]]],0]]]:0}}}}break;case 1:var o=n[2],s=o[2];if(1===s[0]){var b=n[3];if(1===b[0]){var l=n[4];if(1===l[0]){var B=l[1],j=s[1],k=t[1];if(k===b[1]){var p=uV(B),m=uV(j);return 0<=m&&64>m&&0<=p&&64>p&&64>(m+p|0)?[0,[0,[0,r[1],[16,[0,o[1],[1,rV(j,B)]]]],[0,[0,e[1],[20,[1,k]]],0]]]:0}}}}}return 0}function DOt(r){return function(r,e){var n=0,t=e;r:for(;;){e:{n:{t:if(n){var a=n[1],u=a[2];if("number"!=typeof u){switch(u[0]){case 8:var f=u[1];if(t){var i=t[1][2];if("number"!=typeof i&&9===i[0]){var v=t[2],c=n[2];if(OH(f,i[1])){n=c,t=v;continue}}}break;case 9:if(!t)break n;var A=t[1],o=A[2];if("number"==typeof o)break t;if(8!==o[0])break t;var s=o[1],b=t[2],l=n[2];if(!OH(u[1],s))break e;n=l,t=[0,[0,A[1],[10,s]],b];continue;case 10:if(!t)break n;var B=t[1][2];if("number"!=typeof B)break t;if(2!==B)break t;n=n[2],t=[0,[0,a[1],[9,u[1]]],t[2]];continue;case 11:if(!t)break n;var j=t[1][2];if("number"==typeof j)break t;if(12!==j[0])break t;var k=t[2],p=n[2];if(!OH(u[1],j[1]))break e;n=p,t=k;continue;case 13:if(!t)break n;var m=t[1][2];if("number"!=typeof m)break t;if(2!==m)break t;n=n[2];continue;case 16:var d=u[1][2];if(0===d[0]){if(!cL(d[1],0)){if(!t)break;var _=t[1],h=_[2];if("number"!=typeof h&&2===h[0]){n=n[2],t=[0,[0,_[1],[0,h[1],h[3]]],t[2]];continue}}if(t){var x=t[1],y=x[2];if("number"!=typeof y&&2===y[0]){n=n[2],t=[0,[0,x[1],[0,y[1],y[2]]],t[2]];continue}}}break;case 20:var w=u[1];switch(w[0]){case 0:var g=w[1];if(7>g)break t;switch(g-7|0){case 0:var q=n[2];if(!q)break t;var I=q[1][2];if("number"==typeof I)break t;if(16!==I[0])break t;var D=I[1][2];if(0!==D[0])break t;if(cL(D[1],1))break t;if(!t)break n;var E=t[1],N=E[2];if("number"==typeof N)break t;if(2!==N[0])break t;n=[0,[0,a[1],Ele],q[2]],t=[0,[0,E[1],[2,N[1],N[3],N[2]]],t[2]];continue;case 3:case 4:case 5:var T=n[2];if(!T)break t;var F=T[1][2];if("number"==typeof F)break t;if(16!==F[0])break t;if(!t)break n;var M=t[1],P=M[2];if("number"==typeof P)break t;if(16!==P[0])break t;var U=t[2];if(!U)break e;var G=U[1],$=G[2];if("number"==typeof $)break n;if(20!==$[0])break n;var K=$[1],O=P[1],R=F[1],Q=U[2],C=T[2];if(!E0(IOt(M,G,[0,w,R,K,O[2]])))break n;n=C,t=QY(g0(IOt(M,G,[0,w,R,K,O[2]])),Q);continue;default:break t}case 1:var H=w[1];if(7>H)break t;switch(H-7|0){case 0:var V=n[2];if(!V)break t;var L=V[1][2];if("number"==typeof L)break t;if(16!==L[0])break t;var z=L[1][2];if(1!==z[0])break t;if(cL(z[1],Nle))break t;if(!t)break n;var S=t[1],Z=S[2];if("number"==typeof Z)break t;if(2!==Z[0])break t;n=[0,[0,a[1],Tle],V[2]],t=[0,[0,S[1],[2,Z[1],Z[3],Z[2]]],t[2]];continue;case 3:case 4:case 5:var W=n[2];if(!W)break t;var X=W[1][2];if("number"==typeof X)break t;if(16!==X[0])break t;if(!t)break n;var J=t[1],Y=J[2];if("number"==typeof Y)break t;if(16!==Y[0])break t;var rr=t[2];if(!rr)break e;var er=rr[1],nr=er[2];if("number"==typeof nr)break n;if(20!==nr[0])break n;var tr=nr[1],ar=Y[1],ur=X[1],fr=rr[2],ir=W[2];if(!E0(IOt(J,er,[0,w,ur,tr,ar[2]])))break n;n=ir,t=QY(g0(IOt(J,er,[0,w,ur,tr,ar[2]])),fr);continue;default:break t}default:break t}case 21:var vr=u[1];switch(vr[0]){case 1:if(2<=vr[1])break t;if(!t)break n;var cr=t[1][2];if("number"==typeof cr)break t;if(21!==cr[0])break t;var Ar=cr[1],or=n[2];switch(Ar[0]){case 0:if(2!==Ar[1])break e;n=or,t=t[2];continue;case 1:break n;default:break e}case 3:if(4!==vr[1])break t;if(!t)break n;var sr=t[1][2];if("number"==typeof sr)break t;if(21!==sr[0])break t;var br=sr[1],lr=n[2];switch(br[0]){case 2:if(5!==br[1])break e;n=lr,t=t[2];continue;case 1:break n;default:break e}default:break t}case 22:var Br=n[2];if(!Br)break t;var jr=Br[1][2],kr=u[1];if("number"==typeof jr)break t;switch(jr[0]){case 9:if(!t)break n;var pr=t[1],mr=pr[2];if("number"==typeof mr)break t;if(8!==mr[0])break t;var dr=mr[1],_r=t[2],hr=Br[2];if(!OH(jr[1],dr))break e;n=hr,t=[0,a,[0,[0,pr[1],[10,dr]],_r]];continue;case 22:var xr=jr[1];a:{u:{var yr=Br[2];if("number"!=typeof xr)switch(xr[0]){case 0:if("number"==typeof kr)break u;switch(kr[0]){case 5:var wr=kr[1];if(wr){var gr=wr[1];if("number"!=typeof gr&&0===gr[0]){var qr=[5,[0,kr,wr[2]]];break a}}break;case 0:qr=kr;break a;default:break u}break;case 5:var Ir=xr[1];if("number"!=typeof kr&&5===kr[0]){qr=[5,QY(kr[1],Ir)];break a}qr=[5,[0,kr,Ir]];break a}if("number"!=typeof kr&&5===kr[0]){qr=[5,QY(kr[1],[0,xr,0])];break a}}qr=[5,[0,kr,[0,xr,0]]]}n=[0,[0,a[1],[22,qr]],yr];continue;case 8:case 16:if(!t)break n;var Dr=t[1][2];if("number"!=typeof Dr)break t;if(2!==Dr)break t;n=Br[2],t=[0,a,t[2]];continue;default:break t}default:break t}if(!t)break n;var Er=t[1][2];if("number"==typeof Er&&2===Er){n=n[2],t=t[2];continue}}}if(t){var Nr=t[1],Tr=Nr[2];if("number"==typeof Tr)switch(Tr){case 0:case 4:break r}else if(3===Tr[0])break}if(n){var Fr=n[1],Mr=Fr[2];if("number"!=typeof Mr)switch(Mr[0]){case 17:switch(Mr[1][0]){case 0:var Pr=n[2];if(Pr){var Ur=Pr[1][2];if("number"!=typeof Ur)switch(Ur[0]){case 16:var Gr=Ur[1][2];if(0===Gr[0]){var $r=Pr[2],Kr=OH(Gr[1],0)?1:0;n=$r,t=[0,[0,Fr[1],[16,[0,Fr[1],[0,Kr]]]],t];continue}break;case 18:var Or=Ur[1];switch(Or[0]){case 0:var Rr=Or[1];if(1===Rr){n=Pr[2],t=[0,[0,Fr[1],Mle],t];continue}if(!Rr){n=Pr[2],t=[0,[0,Fr[1],Fle],t];continue}break;case 1:var Qr=Or[1];if(1===Qr){n=Pr[2],t=[0,[0,Fr[1],Ule],t];continue}if(!Qr){n=Pr[2],t=[0,[0,Fr[1],Ple],t];continue}break;case 2:var Cr=Or[1];if(1===Cr){n=Pr[2],t=[0,[0,Fr[1],$le],t];continue}if(!Cr){n=Pr[2],t=[0,[0,Fr[1],Gle],t];continue}break;default:var Hr=Or[1];if(1===Hr){n=Pr[2],t=[0,[0,Fr[1],Ole],t];continue}if(!Hr){n=Pr[2],t=[0,[0,Fr[1],Kle],t];continue}}}}if(t){var Vr=t[1],Lr=Vr[2];if("number"!=typeof Lr&&2===Lr[0]){n=Pr,t=[0,[0,Vr[1],[2,Lr[1],Lr[3],Lr[2]]],t[2]];continue}}break;case 1:var zr=n[2];if(zr){var Sr=zr[1][2];if("number"!=typeof Sr&&16===Sr[0]){var Zr=Sr[1][2];if(1===Zr[0]){var Wr=zr[2],Xr=OH(Zr[1],Rle)?1:0;n=Wr,t=[0,[0,Fr[1],[16,[0,Fr[1],[0,Xr]]]],t];continue}}}}break;case 18:var Jr=Mr[1];switch(Jr[0]){case 0:if(!Jr[1]){var Yr=n[2];if(Yr){var re=Yr[1][2];if("number"!=typeof re&&16===re[0]){var ee=re[1][2];if(0===ee[0]&&!cL(ee[1],0)){n=Yr[2],t=[0,[0,Fr[1],Qle],t];continue}}}}break;case 1:if(!Jr[1]){var ne=n[2];if(ne){var te=ne[1][2];if("number"!=typeof te&&16===te[0]){var ae=te[1][2];if(1===ae[0]&&!cL(ae[1],Cle)){n=ne[2],t=[0,[0,Fr[1],Hle],t];continue}}}}}}}}if(!t)return Q0(n);var ue=t[1],fe=ue[2],ie=ue[1];if("number"!=typeof fe)switch(fe[0]){case 0:if(fe[2])break e;t=t[2];continue;case 2:if(!fe[2]&&!fe[3]){t=[0,[0,ue[1],2],t[2]];continue}break;case 16:var ve=fe[1][2];switch(ve[0]){case 0:if(cL(ve[1],0))break e;var ce=t[2];if(!ce)break e;var Ae=ce[1][2];if("number"==typeof Ae)break e;if(20!==Ae[0])break e;var oe=Ae[1];if(0!==oe[0])break e;if(2>>0)break e;t=ce[2];continue;case 1:var se=ve[1];if(!cL(se,Vle)){var be=t[2];if(!be)break e;var le=be[1][2];if("number"!=typeof le&&20===le[0]){var Be=le[1];if(1!==Be[0])break e;if(2>>0)break e;t=be[2];continue}}var je=t[2];if(!je)break e;var ke=je[1][2];if("number"==typeof ke)break e;switch(ke[0]){case 16:var pe=ke[1][2];if(1!==pe[0])break e;var me=je[2];if(!me)break e;var de=me[1],_e=de[2];if("number"==typeof _e)break e;if(20!==_e[0])break e;var he=_e[1];if(1!==he[0])break e;var xe=he[1],ye=de[1],we=pe[1];if(7===xe){t=[0,[0,ye,[16,[0,ye,[1,eV(se,we)]]]],me[2]];continue}if(8!==xe)break e;t=[0,[0,ye,[16,[0,ye,[1,jV(se,we)]]]],me[2]];continue;case 21:var ge=ke[1];if(0!==ge[0])break e;if(2!==ge[1])break e;t=[0,[0,ie,[16,[0,ie,[0,uV(se)]]]],je[2]];continue;default:break e}default:break e}case 21:var qe=fe[1];if(1!==qe[0])break e;if(2<=qe[1])break e;var Ie=t[2];if(!Ie)break e;var De=Ie[1],Ee=De[2];if("number"==typeof Ee)break e;if(17!==Ee[0])break e;if(1!==Ee[1][0])break e;t=[0,[0,De[1],Lle],Ie[2]];continue}if(n){var Ne=n[1],Te=Ne[2];if("number"!=typeof Te){switch(Te[0]){case 18:var Fe=Te[1];if(0!==Fe[0])break e;var Me=Fe[1];if(1!==Me){if(Me)break e;var Pe=t[1],Ue=Pe[2];if("number"==typeof Ue)break e;if(2!==Ue[0])break e;if(Ue[2])break e;n=[0,[0,Ne[1],zle],n[2]],t=[0,[0,Pe[1],[2,Ue[1],Ue[3],0]],t[2]];continue}break;case 20:var Ge=Te[1];if(0!==Ge[0])break e;var $e=Ge[1];if(7>$e)break e;switch($e-7|0){case 0:var Ke=n[2];if(!Ke)break e;var Oe=Ke[1][2];if("number"==typeof Oe)break e;if(16!==Oe[0])break e;var Re=Oe[1][2];if(0!==Re[0])break e;if(cL(Re[1],tP))break e;var Qe=t[1],Ce=Qe[2];if("number"==typeof Ce)break e;if(2!==Ce[0])break e;n=Ke[2],t=[0,[0,Ne[1],Sle],[0,[0,Qe[1],[2,Ce[1],Ce[3],Ce[2]]],t[2]]];continue;case 5:var He=n[2];if(!He)break e;var Ve=He[1][2];if("number"==typeof Ve)break e;if(16!==Ve[0])break e;var Le=Ve[1][2];if(0!==Le[0])break e;if(cL(Le[1],31))break e;var ze=t[1],Se=ze[2];if("number"==typeof Se)break e;if(2!==Se[0])break e;n=He[2],t=[0,[0,Ne[1],Zle],[0,[0,ze[1],[2,Se[1],Se[3],Se[2]]],t[2]]];continue;case 2:break;default:break e}break;default:break e}var Ze=t[1],We=Ze[2];if("number"!=typeof We&&2===We[0]&&!We[2]){n=[0,[0,Ne[1],Wle],n[2]],t=[0,[0,Ze[1],[2,We[1],We[3],0]],t[2]];continue}}}}n=[0,t[1],n],t=t[2]}var Xe=a1(function(r){return ept(r[2])},t[2]);return QY(Q0([0,Nr,n]),Xe)}(0,r)}function EOt(r){return DOt(iz(r,0,O9n,0))}function NOt(r,e,n){return DOt(iz(n,r+1|0,e,0))}function TOt(r,e,n){return n}function FOt(r,e){return function(n,t,a){return iz(r,n,t,iz(e,n,t,a))}}function MOt(r){return function(e,n,t){return[0,[0,n,r],t]}}function POt(r,e){return S0(FOt,H0(r,e),TOt)}function UOt(r,e){return S0(FOt,V0(r,e),TOt)}function GOt(r,e){return S0(FOt,Stt(r,e),TOt)}function $Ot(r,e){return function(n,t,a){return iz(e,n,r,a)}}function KOt(r,e,n){return function(t,a,u){var f=NOt(t,a,n);return[0,[0,a,[2,r,NOt(t,a,e),f]],u]}}function OOt(r){var e=[1,[0,r]];return function(r,n){return KOt(e,r,n)}}function ROt(r,e){return function(n,t,a){return[0,[0,t,[0,r,NOt(n,t,e)]],a]}}function QOt(r){return function(e,n,t){return[0,[0,n,[1,Dle,NOt(e,n,r)]],t]}}function COt(r,e){return function(n,t){return eet(r,n),fz(e,n,t)}}function HOt(r){return function(e,n,t){return[0,[0,n,[3,[0,n,e-tet(r)|0]]],t]}}function VOt(r,e,n){return ROt([1,[0,r]],COt(e,n))}function LOt(r){var e=H0(function(r){return r[2]},iz(r,0,O9n,0));if(e){var n=e[1];if("number"!=typeof n)switch(n[0]){case 8:if(!e[2])return MOt([9,n[1]]);break;case 11:if(!e[2])return MOt([12,n[1]])}}return FY("input must be a getter")}function zOt(r){return 0===iz(r,0,O9n,0)?1:0}function SOt(r,e){var n=ost(r);return fz(H6(fBe),e,n)}function ZOt(r){return[0,O9n,r]}function WOt(r,e,n){var t=W9n(80,e);return fz(R6(HY,uBe),r,t),n}var XOt=[Gl,"Codegen.Compile_common.CodegenError",zH()];function JOt(r){return C6(function(r){throw gQ([0,XOt,r],1)},r)}function YOt(r,e){var n=r[1];return[0,n,[0,n+1|0,[0,e,r[2]]]]}function rRt(r){return Q0(r[2])}function eRt(r,e){var n=YOt(r[1],e),t=n[1];return r[1]=n[2],F9n(t)}var nRt=dut([0,z1]);function tRt(r){return[0,[0,eJ],[0,eJ],[0,eJ],[0,nRt[1]]]}function aRt(r,e){var n=r[3],t=[0,0],a=YOt(n[1],t),u=a[2],f=F9n(a[1]);return n[1]=u,[0,f+r[2][1][1]|0,function(r){return eet(t,[0,r[1],e,r[2]])}]}function uRt(r,e,n){var t=n[2],a=n[1],u=aRt(r,e),f=u[1];return uz(u[2],[0,a,t]),f}function fRt(r){return H0(tet,rRt(r[3][1]))}function iRt(r,e){for(var n=0,t=rRt(r[1][1]);;){if(!t){var a=YOt(r[1][1],e),u=a[1];return r[1][1]=a[2],u}if(OH(e,t[1]))return n;n=n+1|0,t=t[2]}}function vRt(r){return rRt(r[1][1])}function cRt(r,e,n,t,a){if(0!==r[3][1][1])throw gQ([0,XOt,"Add all imports before all functions!"],1);var u=[0,O9n,[0,[0,O9n,iRt(r,[0,t,a])]]],f=Ort(n),i=[0,0],v=[0,[0,O9n,[0,Ort(e),f,u]],i],c=e+Ku+n,A=eRt(r[2],v);if(nRt[32].call(null,c,r[4][1]))throw gQ([0,xz,aBe],1);var o=nRt[2].call(null,c,[0,A,i],r[4][1]);return r[4][1]=o,0}function ARt(r,e,n){var t=e+Ku+n,a=nRt[18].call(null,t,r[4][1]);if(!a)throw gQ([0,kz,uz(H6(tBe),t)],1);var u=a[1],f=u[1];return u[2][1]=1,f}function oRt(r,e,n){return MOt([6,[0,O9n,ARt(r,e,n)]])}function sRt(r){for(var e=U2([0,o2]),n=[0,0],t=[0,e[1]],a=0,u=0,f=rRt(r[2][1]);f;){var i=f[2],v=f[1],c=v[1];v[2][1]?(t[1]=e[2].call(null,a,n[1],t[1]),n[1]=n[1]+1|0,a=a+1|0,u=[0,c,u],f=i):(a=a+1|0,f=i)}if(a!==r[2][1][1])throw gQ([0,xz,eBe],1);var A=Q0(u),o=G0(A);if(n[1]!==o)throw gQ([0,xz,nBe],1);var s=n[1],b=r[2][1][1],l=t[1],B=b-s|0;return[0,A,s,function(r){return EV(r,b)?e[17].call(null,r,l):r-B|0}]}function bRt(r){return[0,r[3],r[4],MOt([13,[0,r[1],r[2],Xle,0]]),MOt([14,[0,r[1],r[2],Jle,0]]),MOt([13,[0,r[1],r[2],Yle,0]]),MOt([14,[0,r[1],r[2],rBe,0]])]}var lRt=bRt([0,0,2,-1,1]),BRt=bRt([0,1,3,vBe,iBe]),jRt=NC(Xf,0,0);function kRt(r){if(Z8n[1])switch(r){case 3:return Ktn;case 4:return Otn;case 5:return Rtn;case 6:return Qtn;case 8:return Ctn;case 9:return Htn;case 10:return Vtn;case 11:return Ltn;case 13:return ztn;case 14:return Stn;case 2:case 7:return Wtn;default:throw gQ([0,xz,Ztn],1)}var e=r-2|0;if(12>=e>>>0&&10!==e)return Xtn;throw gQ([0,xz,Jtn],1)}var pRt=[0,[0,"--hide-warnings",[3,E8n]," hide warnings"],[0,[0,"-Werror",[2,N8n]," treat warnings as errors"],[0,[0,"-A",[4,function(r){return Eut(0,r)}]," disable (allow) comma-separated warning codes, e.g. -A M0194,M0217"],[0,[0,"-W",[4,function(r){return Eut(1,r)}]," enable (warn) comma-separated warning codes, e.g. -W M0223"],[0,[0,"-E",[4,function(r){return Eut(2,r)}]," treat as error comma-separated warning codes, e.g. -E M0217"],0]]]]];function mRt(r){var e=r[2];if(0===e[0]){var n=e[1],t=[0,gft(e[2]),0];return[1,Ttr,QY([0,hft(n),0],t)]}var a=e[2],u=e[1];return[1,"ImportD",[0,[0,a[1]===kQ?u:a[1]],0]]}function dRt(r){return Lut(Rvt(r),function(r){var e=r[1],n=Xft(e,r[2]);return Lut(function(r,e){var n=[0,Wft[1]],t=[0,Cvt[1]];function a(e){return Wft[31].call(null,e,n[1])?Kvt(vut,Eur,uz(H6(Dur),e)):Cvt[32].call(null,e,t[1])?Cut(0):(n[1]=Wft[2].call(null,e,n[1]),Lut(Rvt(e),function(a){var f=a[1],i=Xft(f,a[2]);return Lut(u(i),function(a){return Lut(Hvt(i,r,t[1]),function(r){return Lut(Qvt(r,f),function(r){return t[1]=Cvt[2].call(null,e,r[1],t[1]),n[1]=Wft[4].call(null,e,n[1]),Cut(0)})})})}))}function u(r){return Sut(a,r)}var f=u(e);return 0===f[0]?[0,[0,t[1],f[1][2]]]:[1,f[1]]}(Uft,n),function(r){return Lut(Hvt(n,Uft,r),function(r){return Lut(Qvt(r,e),function(r){return Cut([0,e,r[1],r[2]])})})})})}function _Rt(r){var e=gpt(r);if(-32===Zpt(r))var n=[0,Ypt(nmt,r),Ypt(nmt,r)];else n=Ppt(r,gpt(r)-1|0,"malformed function type");return[0,Mpt(r,e,gpt(r)),n]}function hRt(r,e){var n=gpt(e),t=Ypt(jmt,e);Upt(G9n(z0(U9n,V_r,H0(function(r){return $9n(r[1])},t)),H_r),e,n,"too many locals");var a=C0(H0(function(r){for(var e=r[1],n=0,t=r[2];;){if(OH(e,0))return n;e=e-1|0,n=[0,t,n]}},t)),u=smt(e);return imt(e),[0,[0,O9n,-1],a,u]}function xRt(r){var e=gpt(r),n=zpt(r);return[0,[0,Mpt(r,e,gpt(r)),n],bmt(r),Ypt(function(r){var e=gpt(r),n=zpt(r);return[0,Mpt(r,e,gpt(r)),n]},r)]}function yRt(r){return[0,zpt(r)]}function wRt(r,e){for(var n=ES;;){var t=gpt(e);if(Upt(gpt(e)<=r?1:0,e,t,FS),gpt(e)===r)return n;n=wmt(n,e)}}function gRt(r,e){for(var n=NS;;){var t=gpt(e);if(Upt(gpt(e)<=r?1:0,e,t,FS),gpt(e)===r)return n;var a=Gpt(e);if(0===a){var u=emt(function(r){return function(r){return Ypt(Xpt,r)}},e),f=n[3],i=n[2];n=[0,QY(n[1],u),i,f]}else{var v=uz(H6(G_r),a);n=Ppt(e,gpt(e),v)}}}function qRt(r){if("number"!=typeof r)switch(r[0]){case 0:return[0,[5,r[1]]];case 1:return[0,[1,[0,r[1],r[2]]]];case 2:return[0,[2,r[1]]];case 3:return[0,[4,r[1]]];case 4:return[0,[6,r[1]]];case 5:return[0,[7,r[1]]];case 6:return[0,[3,r[1]]];case 7:return[0,[0,r[1]]];case 8:return[1,[3,r[1]]];case 9:return[1,[1,r[1]]];case 10:return[1,[2,r[1]]];default:return[1,[0,r[1]]]}var e=r;if(60<=e)switch(e){case 60:return HQr;case 61:return VQr;case 62:return LQr;case 63:return zQr;case 64:return SQr;case 65:return ZQr;case 66:return WQr;case 67:return XQr;case 68:return JQr;case 69:return YQr;case 70:return rCr;case 71:return eCr;case 72:return nCr;case 73:return tCr;case 74:return aCr;case 75:return uCr;case 76:return fCr;case 77:return iCr;case 78:return vCr;case 79:return cCr;case 80:return ACr;case 81:return oCr;case 82:return sCr;case 83:return bCr;case 84:return lCr;case 85:return BCr;case 86:return jCr;case 87:return kCr;case 88:return pCr;case 89:return mCr;case 90:return dCr;case 91:return _Cr;case 92:return hCr;case 93:return xCr;case 94:return yCr;case 95:return wCr;case 96:return gCr;case 97:return qCr;case 98:return ICr;case 99:return DCr;case 100:return ECr;case 101:return NCr;case 102:return TCr;case 103:return FCr;case 104:return MCr;case 105:return PCr;case 106:return UCr;case 107:return GCr;case 108:return $Cr;case 109:return KCr;case 110:return OCr;case 111:return RCr;case 112:return QCr;case 113:return CCr;case 114:return HCr;case 115:return VCr;case 116:return LCr;case 117:return zCr;default:return SCr}switch(e){case 0:return $Rr;case 1:return KRr;case 2:return ORr;case 3:return RRr;case 4:return QRr;case 5:return CRr;case 6:return HRr;case 7:return VRr;case 8:return LRr;case 9:return zRr;case 10:return SRr;case 11:return ZRr;case 12:return WRr;case 13:return XRr;case 14:return JRr;case 15:return YRr;case 16:return rQr;case 17:return eQr;case 18:return nQr;case 19:return tQr;case 20:return aQr;case 21:return uQr;case 22:return fQr;case 23:return iQr;case 24:return vQr;case 25:return cQr;case 26:return AQr;case 27:return oQr;case 28:return sQr;case 29:return bQr;case 30:return lQr;case 31:return BQr;case 32:return jQr;case 33:return kQr;case 34:return pQr;case 35:return mQr;case 36:return dQr;case 37:return _Qr;case 38:return hQr;case 39:return xQr;case 40:return yQr;case 41:return wQr;case 42:return gQr;case 43:return qQr;case 44:return IQr;case 45:return DQr;case 46:return EQr;case 47:return NQr;case 48:return TQr;case 49:return FQr;case 50:return MQr;case 51:return PQr;case 52:return UQr;case 53:return GQr;case 54:return $Qr;case 55:return KQr;case 56:return OQr;case 57:return RQr;case 58:return QQr;default:return CQr}}function IRt(r,e,n){for(var t=n;;){var a=j2(HS,t,e);if(ns>=a>>>0)break;uz(e[1],e),t=a}var u=a;if(70<=u){if(os<=u)switch(u){case 105:return 2;case 106:return 30;case 107:return 47;case 108:return 49;case 109:return 48;case 110:return 51;case 111:return 33;case 112:return 50;case 113:return 35;case 114:return 29;case 115:return 34;case 116:return 36;case 117:return 37;case 118:return 38;case 119:return 67;case 120:return rHr;case 121:return 43;case 122:return 3;case 123:return fM;case 124:return 31;case 125:return 39;case 126:var f=m2(e,e[5],e[5]+4|0);return r[1]?aK:[6,f];case 127:return[6,m2(e,e[5],e[6])];case 128:var i=m2(e,e[5],e[6]);return r[1]?[6,i]:Cwt(e,"privileged identifier");case 129:return[11,m2(e,e[5],e[6])];case 130:var v=m2(e,e[5],e[5]+2|0),c=z2(T$);return r3(c,v),Lwt(c,e[11],e),[11,S2(c)];case 131:return[10,AV(m2(e,e[5],e[6]))];case 132:var A=AV(m2(e,e[5],e[6]));return 1===A?LP:[9,A];case 133:return d2(e),eHr;case 134:return d2(e),nHr;case 135:return d2(e),tHr;case 136:return 0;case 137:return Cwt(e,aHr);default:return Cwt(e,uHr)}switch(u){case 70:return 13;case 71:return 14;case 72:return 69;case 73:return 10;case 74:return 11;case 75:return 12;case 76:return 15;case 77:return 16;case 78:return 17;case 79:return 46;case 80:return A$;case 81:return 18;case 82:return 20;case 83:return 66;case 84:return 21;case 85:return 28;case 86:return YCr;case 87:return 22;case 88:return 23;case 89:return 32;case 90:return 68;case 91:return 42;case 92:return 24;case 93:return 25;case 94:return 26;case 95:return 27;case 96:return 62;case 97:return 63;case 98:return 64;case 99:return 65;case 100:return 61;case 101:return Jn;case 102:return 44;case 103:return 60;default:return 19}}if(35>u)switch(u){case 0:return 4;case 1:return 5;case 2:return 6;case 3:return 7;case 4:return 8;case 5:return 9;case 6:return 52;case 7:return 53;case 8:return 54;case 9:return 55;case 10:return 56;case 11:return 57;case 12:return 58;case 13:return 95;case 14:return 96;case 15:return 97;case 16:return 70;case 17:return 71;case 18:return 72;case 19:return 73;case 20:return 74;case 21:return 75;case 22:return 84;case 23:return 85;case 24:return Zc;case 25:return 86;case 26:return 87;case 27:return 88;case 28:return 89;case 29:return 76;case 30:return 77;case 31:return 78;case 32:return 79;case 33:return 94;default:return 90}switch(u){case 35:return 91;case 36:return 93;case 37:return 92;case 38:return 41;case 39:return 98;case 40:return 99;case 41:return T$;case 42:return gq;case 43:return Ul;case 44:return E$;case 45:return os;case 46:return bk;case 47:return pb;case 48:return ZN;case 49:return FT;case 50:return Wr;case 51:return rh;case 52:return 80;case 53:return 81;case 54:return 82;case 55:return 83;case 56:return ZA;case 57:return 40;case 58:return xp;case 59:return[0,m2(e,e[5]+1|0,e[6])];case 60:return[2,m2(e,e[5],e[6])];case 61:var o=Frt(m2(e,e[5],e[6]),46);if(o){var s=o[2];if(s&&!s[2])return[1,o[1],s[1]]}throw gQ([0,xz,ZCr],1);case 62:return[3,m2(e,e[5],e[6])];case 63:var b=Vwt(e,m2(e,e[5],e[6]));try{var l=Ort(b),B=l?l[2]?Cwt(e,"overlong character literal"):l[1]:Cwt(e,"empty character literal")}catch(a){var j=NL(a);if(j!==C9n)throw gQ(j,0);B=Cwt(e,"invalid utf8 in character literal")}return[4,B];case 64:return[7,Vwt(e,m2(e,e[5],e[6]))];case 65:return Cwt(e,WCr);case 66:return Cwt(e,XCr);case 67:return Hwt(e[12],e,JCr);case 68:return 45;default:return 59}}function DRt(r,e){var n=s1(mNt,fz(Rwt[37],function(n,t){var a=n[1];if(0!==a[0])throw gQ([0,xz,$9r],1);var u=a[1],f=[0,jNt(u),r,r],i=fz(Rwt[1],e,f),v=uz(Rwt[7],i);if(!v)return t;var c=v[1],A=uz(Rwt[12],c),o=uz(Rwt[12],c),s=oL(o);r:if(ae===s)var b=o[1];else{if(W!==s&&D!==s){b=o;break r}b=k0(o)}if(b)var l=uz(Rwt[30],b[1][1]),B=t;else l=MY("items_current"),B=t;for(;;){if(!l)return B;var j=l[2],k=l[1],p=k[2],m=uz(Rwt[32],k[1]),d=G0(m);if(!(0>>0)var l=uz(H6(C9r),s);else switch(b){case 0:var B=H0(function(r){return $0(pNt(r))},a),j=F1(ere,_Nt(H0(oNt,s1(Rwt[26],B))));l=fz(H6(H9r),s,j);break;case 1:var k=F1(X9r,_Nt(H0(DNt,s1(hNt,H0(pNt,a)))));l=fz(H6(V9r),s,k);break;case 2:var p=H0(INt,a),m=F1(Z9r,_Nt(H0(NNt,s1(Rwt[28],p))));l=fz(H6(L9r),s,m);break;default:var d=F1(W9r,_Nt(H0(ENt,s1(hNt,H0(pNt,a)))));l=fz(H6(z9r),s,d)}return Wut(n,Qut(v,"M0001",S9r,0,0,0,l))}function TRt(r,e){var n=[0,Wot[1]];if(!e)throw gQ([0,xz,Jre],1);var t=e[1],a=t[2];r:{var u=t[1];if("number"!=typeof a){switch(a[0]){case 7:var f=H0(function(e){return kTt(r,n,e)},a[1]);break;case 8:var i=Xct(lTt(r,n,a[2]));if("number"!=typeof i&&3===i[0]&&1===i[1]){var v=i[2];aft([0,Rut(u,"M0185",Wre,0,0,0,"importing Candid service constructor as instantiated service"),0]);f=v;break}throw gQ([0,xz,Xre],1);default:break r}var c=s1(qct,Wot[24].call(null,function(r,e,n){if("number"!=typeof e&&1===e[0])return[0,[0,r,e[1],Act],n];throw gQ([0,xz,Zre],1)},n[1],0));return[3,1,s1(qct,f),c]}}throw gQ([0,xz,Yre],1)}function FRt(r,e,n){var t=hTt(r,pTt,e);ITt[1]=0;var a=[0,0],u=[0,MBt[1]];H2(function(r){var e=function(r,e){var n=e[2][2],t=n[2];switch(t[0]){case 2:return function(r){return r};case 3:var a=t[4];return function(r){var e=UBt(1,1,function(e,t,a){var u=tjt(t),f=u[1],i=ijt(u[2]);return f===OU&&0===MBt[17].call(null,ine,i)?uz(a,r):gTt(n[1],vne)}),t=[0,[0,cne,[19,MBt[5].call(null,a[2],e)]],0];return[19,MBt[49].call(null,[0,[0,a[2],r],t])]};default:throw gQ([0,xz,Ane],1)}}(0,n),f=ckt(n);return IFt(t,QY(f[1],f[2]),[0,u],function(r){return a[1]=[0,e(r)],0})},UTt),GTt();var f=g0(a[1]),i=MBt[2].call(null,n[3][1],f,e[2]);return[0,e[1],i]}function MRt(r,e){var n=r[2][2],t=n[2],a=r[3][1];if(3!==t[0])throw gQ([0,xz,UAe],1);var u=t[4][2],f=jAt(Xct(n[3][1])),i=f[3],v=f[5],c=f[4],A=f[2],o=Zct(i),s=dAt($0(o))[1],b=H0(function(r){return Sct(o,r)},c),l=H0(function(r){return Sct(o,r)},v),B=H0(Xct,l);if(B){var j=B[1];if("number"!=typeof j&&9===j[0]&&!B[2]){var k=j[3];switch(A){case 0:var p=$ct(l);break;case 1:throw gQ([0,xz,PAe],1);default:p=Yz}var m=kAt(Xct(p))[3],d=Zct(i),_=dAt($0(d))[1],h=TMt("wasm_blob",iS),x=TMt($Ae,ist),y=[0,"@install_actor_helper",[8,0,0,[0,Jot,0],[0,ist,[0,eS,[0,iS,[0,iS,0]]]],[0,[9,1,[0,Xot,0],cS],0]]],w=function(r){var e=FMt(FAe,b),n=TMt(MAe,cS),t=$0(o),a=KMt([17,cS,m],[0,$Mt(n),0]),f=[0,KMt([12,b],[0,VPt(H0($Mt,e)),0]),0],i=[0,$Mt(h),f],v=kPt([0,r,[0,tPt(W8n[1]),i]]),c=TPt(n,CMt(0,fPt($Mt(y),d,v)),a),A=QMt(0,MMt(_,0,0),c,t),B=H0(UPt,e);return uPt(u,0,0,[0,MMt(s,0,0),0],B,l,A)},g=LPt(x,w($Mt(x))),q=u$t(u,k,w(WMt(OAe,JPt([0,[0,KAe,aPt()],0]))),g),I=[0,DPt([0,nN+a,q[3][1]],q),0];return[0,DPt(h,nPt(e)),I]}}throw gQ([0,xz,GAe],1)}function PRt(r){var e=r[2][2];if(4===e[2][0])return 0;var n=r[3][1],t=e[3][1];if(2===t)throw gQ([0,xz,_Ae],1);var a=v$t(r)[1];switch(a[0]){case 0:var u=rPt(a[1],a[2]);return[0,DPt([0,nN+n,u[3][1]],u),0];case 1:throw gQ([0,kz,"Desugar: Cannot import program"],1);default:var f=a[1];if(!f)throw gQ([0,kz,"Desugar: Cannot import actor"],1);var i=a[5],v=e[2],c=a[4],A=a[3],o=a[2],s=f[1];if(3!==v[0])throw gQ([0,xz,hAe],1);var b=v[4][2],l=jAt(t)[5],B=Zct([0,Jot,0]),j=dAt($0(B))[1],k=dAt($0(Zct([0,Jot,0])))[1],p=H0(Xct,l);if(p){var m=p[1];if("number"!=typeof m&&9===m[0]&&!p[2]){var d=m[3],_=TMt(yAe,ist),h=$Mt(_),x=$0(B),y=KMt(pAe,[0,ePt("actor class configuration not supported in interpreter"),0]),w=[0,r[1],[14,o,A,c,i],[0,i,VX[2],VX[3],VX[4]]],g=iPt(KMt([3,ist,0],[0,h,[0,WMt(dAe,JPt([0,[0,mAe,aPt()],0])),0]]),w,y),q=QMt(0,MMt(k,0,0),g,x),I=[0,[9,0,$0(B),i],0],D=LPt(_,uPt(b,0,0,[0,MMt(j,0,0),0],s,I,q)),E=TMt(wAe,D[3][1]),N=WMt(qAe,JPt([0,[0,gAe,aPt()],0])),T=u$t(b,d,ZPt($Mt(E),N),$Mt(E)),F=[0,DPt([0,nN+n,T[3][1]],T),0];return[0,DPt(E,D),F]}}throw gQ([0,xz,xAe],1)}}function URt(r){var e=[0,MKt[1]];function n(r){if("number"==typeof r)switch(r){case 0:return 0;case 1:return 1;default:return 2}switch(r[0]){case 1:var e=r[1],a=H0(n,r[2]);return[1,u(e),a];case 3:var f=r[2],c=r[1],A=H0(v,r[3]);return[3,c,H0(i,f),A];case 4:return[4,H0(i,r[1])];case 5:return[5,n(r[1])];case 6:return[6,n(r[1])];case 7:return[7,H0(n,r[1])];case 8:var o=r[2],s=r[5],b=r[4],l=r[3],B=r[1],j=1===o?2:o,k=H0(n,s),p=H0(n,b);return[8,B,j,H0(t,l),p,k];case 9:return r[1]?[8,0,0,0,[0,[8,0,0,0,_At(n(r[3])),0],[0,OKt,[0,CPt,0]]],0]:RKt(CKt,n(r[3]));case 10:return[10,n(r[1])];case 11:throw gQ([0,xz,Fse],1);case 12:return[12,n(r[1])];default:return r}}function t(r){var e=n(r[3]);return[0,r[1],r[2],e]}function a(r){return H0(t,r)}function u(r){var t=Jvt(r);if(0===t[0]&&!t[1]){var u=t[2];if("number"!=typeof u&&2===u[0])return r}var f=MKt[18].call(null,r,e[1]);if(f)return f[1];var i=Xvt(r,Mse);e[1]=MKt[2].call(null,r,i,e[1]);var v=Jvt(r);if(0===v[0])var c=v[1],A=n(v[2]),o=[0,a(c),A];else{var s=v[1],b=n(v[2]);o=[1,a(s),b]}return xct(i,o),i}function f(r){return UFt(n,function(r){return r},r)}function i(r){var e=r[3];return[0,r[1],n(r[2]),e]}function v(r){var e=r[3];return[0,r[1],u(r[2]),e]}function c(r){var e=VX[4],t=VX[3],a=r[3][2],u=[0,n(r[3][1]),a,t,e],f=A(r);return[0,r[1],f,u]}function A(r){var e=r[2];switch(e[0]){case 0:var t=e[1],a=t[1];if("number"!=typeof a)switch(a[0]){case 0:var u=t[2];if(u){var i=u[2];if(i&&!i[2]){var v=u[1],A=a[1],s=i[1],p=hMt(v);if("number"!=typeof p&&8===p[0]&&p[1]&&1===p[2])var m=1;else m=0;if(m){var d=hMt(v);if("number"!=typeof d&&8===d[0]&&d[1]&&1===d[2]){var _=d[4],h=H0(function(r){return n(Sct(A,r))},d[5]),x=H0(function(r){return n(Sct(A,r))},_),y=c(v),w=c(s),g=VKt(h),q=g[1],I=q[4],D=q[3],E=q[2],N=q[1],T=g[2],F=$Mt(N),M=LKt(y,function(r){function e(e){var n=$Mt(I),t=$Mt(D),a=$Mt(E),u=[0,r,[0,VPt(H0($Mt,e)),[0,a,[0,t,[0,n,0]]]]],f=_Mt(xMt,u);return[0,NPt([0,vut,[0,[0,28,u]],[0,rS,f,VX[3],VX[4]]]),0]}if(!x){var n=e(0);return[0,NPt(w),n]}if(x[2]){var t=FMt(obe,x),a=UMt(H0(PMt,t)),u=e(t);return[0,IPt(a,w),u]}var f=TMt(sbe,x[1]),i=PMt(f),v=e([0,f,0]);return[0,IPt(i,w),v]}),P=[0,PMt(I),0],U=[0,PMt(D),P],G=[0,PMt(E),U];return rPt([0,IPt(UMt([0,PMt(N),G]),T),M],F)[2]}throw gQ([0,xz,Kse],1)}}}break;case 20:if(a[1]===xh){var $=t[2];if($){var K=$[2];if(K){var O=K[2];if(O&&!O[2]){var R=O[1],Q=K[1],C=c($[1]),H=c(Q),V=c(R),L=VKt([0,iS,0]),z=L[1],S=z[4],Z=z[3],W=z[2],X=z[1],J=L[2],Y=$Mt(X),rr=LKt(C,function(r){return LKt(H,function(e){return LKt(V,function(n){var t=$Mt(S),a=$Mt(Z),u=[0,r,[0,e,[0,n,[0,$Mt(W),[0,a,[0,t,0]]]]]],f=_Mt(xMt,u);return[0,NPt([0,vut,[0,[0,29,u]],[0,rS,f,VX[3],VX[4]]]),0]})})}),er=[0,PMt(S),0],nr=[0,PMt(Z),er],tr=[0,PMt(W),nr];return rPt([0,IPt(UMt([0,PMt(X),tr]),J),rr],Y)[2]}}}}break;case 21:var ar=a[1];if(ar){var ur=t[2];if(ur){var fr=ur[2];if(fr&&!fr[2]){var ir=a[2],vr=fr[1],cr=ur[1],Ar=ar[1];if("number"!=typeof ir&&8===ir[0]&&!ir[3]&&!ir[5]){var or=function(r){var e=TMt(Use,Pse);if(Ar)var n=pPt(),t=ZPt($Mt(e),n);else{var a=TMt("call",rS),u=rUt($Mt(a),function(e){return ZPt(SMt($Mt(r),1),e)}),f=pPt(),i=zPt(0,ZPt(SMt($Mt(r),2),f)),v=SMt($Mt(r),1),A=$Mt(e);t=TPt(a,PKt(0,LMt(0,pPt()),A,v,i),u)}var o=[0,[0,Gse,PMt(e),t],0],s=[0,[0,$se,GMt,pPt()],o],b=$Mt(r);return jPt(ZPt(c(cr),b),s,rS)},sr=c(vr),br=sr[2];if(1!==br[0]||br[1]){var lr=TMt(Abe,hMt(sr)),Br=or(lr);jr=rPt([0,DPt(lr,sr),0],Br)}else var jr=or([0,br[2],hMt(sr)]);return jr[2]}throw gQ([0,xz,Ose],1)}}}else{var kr=t[2];if(kr){var pr=kr[2];if(pr&&!pr[2]){var mr=a[2],dr=pr[1],_r=kr[1];if("number"!=typeof mr&&8===mr[0]&&!mr[3]&&!mr[5]){var hr=c(dr);return ZPt(c(_r),hr)[2]}throw gQ([0,xz,Rse],1)}}}break;case 22:if(a[1]){var xr=t[2];if(xr&&!xr[2]){var yr=xr[1],wr=a[2],gr=n(wr),qr=hMt(yr);if("number"!=typeof qr&&8===qr[0]){var Ir=qr[3];if(Ir&&!Ir[2]){var Dr=qr[4];if(Dr){var Er=Dr[2];if(Er){var Nr=Er[2];if(Nr&&!Nr[2]){var Tr=Er[1],Fr=Dr[1],Mr=n(Sct([0,wr,0],Nr[1])),Pr=n(Sct([0,wr,0],Tr)),Ur=n(Sct([0,wr,0],Fr)),Gr=TMt(Qse,Mr),$r=TMt(Cse,Pr),Kr=TMt(Hse,Ur),Or=kPt(H0($Mt,[0,Kr,[0,$r,[0,Gr,0]]]));return zPt([0,Kr,[0,$r,[0,Gr,0]]],fPt(c(yr),[0,gr,0],Or))[2]}}}}}throw gQ([0,xz,Vse],1)}}else{var Rr=t[2];if(Rr&&!Rr[2]){var Qr=Rr[1],Cr=a[2],Hr=n(Cr),Vr=hMt(Qr);if("number"!=typeof Vr&&8===Vr[0]){var Lr=Vr[3];if(Lr&&!Lr[2]){var zr=Vr[4];if(zr){var Sr=zr[1];if("number"!=typeof Sr&&8===Sr[0]&&!Sr[3]&&!Sr[5]){var Zr=zr[2];if(Zr){var Wr=Zr[2];if(Wr&&!Wr[2]&&!Vr[5]){var Xr=[0,Cr,0],Jr=H0(n,H0(function(r){return Sct(Xr,r)},Sr[4])),Yr=VKt(Jr),re=Yr[1],ee=re[4],ne=re[3],te=re[2],ae=re[1],ue=Yr[2],fe=$Mt(ae),ie=TMt(Lse,$ct(Jr)),ve=LPt(ie,LMt(Jr,$Mt(ie))),ce=TMt(zse,oS),Ae=kPt([0,ve,[0,LPt(ce,zMt(GKt($Mt(ce)))),[0,$Mt([0,Sse,CPt]),0]]]),oe=fPt(c(Qr),[0,Hr,0],Ae),se=$Mt(ee),be=$Mt(ne),le=[0,NPt(PKt(Jr,oe,$Mt(te),be,se)),0],Be=[0,PMt(ee),0],je=[0,PMt(ne),Be],ke=[0,PMt(te),je];return rPt([0,IPt(UMt([0,PMt(ae),ke]),ue),le],fe)[2]}}}}}}throw gQ([0,xz,Zse],1)}}}var pe=H0(c,t[2]);return[0,[0,f(a),pe]];case 3:var me=e[1],de=c(e[2]);return[3,o(me),de];case 4:var _e=e[1],he=_e[1],xe=c(_e[2]);return[4,[0,b(he),xe]];case 5:var ye=e[2],we=e[1],ge=c(e[3]),qe=c(ye);return[5,c(we),qe,ge];case 6:var Ie=e[1],De=H0(function(r){var e=r[2],n=e[1],t=r[1],a=r[3],u=c(e[2]);return[0,t,[0,j(n),u],a]},e[2]);return[6,c(Ie),De];case 7:return[7,c(e[1])];case 8:var Ee=e[2],Ne=e[1],Te=c(e[3]);return[8,Ne,n(Ee),Te];case 10:var Fe=e[2],Me=e[1],Pe=c(e[3]);return[10,Me,n(Fe),Pe];case 11:var Ue=e[2];return[11,e[1],Ue,c(e[3])];case 12:var Ge=e[7],$e=e[6],Ke=e[5],Oe=e[4],Re=e[3],Qe=e[2],Ce=e[1];if(!Qe){var He=c(Ge),Ve=H0(n,$e),Le=H0(B,Ke);return[12,Ce,Qe,Re,H0(k,Oe),Le,Ve,He]}var ze=Qe[1];switch(Re){case 0:var Se=Ge[2];if(4===Se[0]){var Ze=Se[1],We=Ze[1];if(We){var Xe=We[1][2];if(0===Xe[0]&&"number"==typeof Xe[1][2]){var Je=Xe[2],Ye=Je[2];if(0===Ye[0]){var rn=Ye[1][1];if("number"!=typeof rn&&22===rn[0]&&!We[2]){var en=Ze[2][2];if(0===en[0]){var nn=en[1],tn=nn[1];if("number"==typeof tn&&!tn&&!nn[2]){var an=H0(n,$e),un=H0(B,Ke),fn=H0(k,Oe),vn=Je[2];if(0===vn[0]){var cn=vn[1],An=cn[1];if("number"!=typeof An&&22===An[0]&&!An[1]){var on=cn[2];if(on&&!on[2]){var sn=on[1],bn=n(An[2]),ln=hMt(sn);if("number"!=typeof ln&&8===ln[0]){var Bn=ln[3];if(Bn&&!Bn[2]){var jn=ln[4];if(jn){var kn=jn[1];if("number"!=typeof kn&&8===kn[0]&&!kn[3]&&!kn[5]){var pn=jn[2];if(pn){var mn=pn[2];if(mn&&!mn[2]&&!ln[5]){var dn=kn[4];n(Sct([0,bn,0],kn));var _n=[0,bn,0],hn=TMt(Wse,n($ct(H0(function(r){return Sct(_n,r)},dn)))),xn=LPt(hn,kPt(0)),yn=LPt(TMt(Xse,oS),kPt(0)),wn=kPt([0,xn,[0,yn,[0,$Mt([0,Jse,CPt]),0]]]);return[12,Ce,[0,ze],0,fn,un,an,fPt(c(sn),[0,bn,0],wn)]}}}}}}throw gQ([0,xz,Yse],1)}}}throw gQ([0,xz,rbe],1)}}}}}}}break;case 1:var gn=H0(n,$e),qn=H0(B,Ke),In=H0(k,Oe),Dn=Ge[2];if(0===Dn[0]){var En=Dn[1],Nn=En[1];if("number"!=typeof Nn&&22===Nn[0]&&!Nn[1]){var Tn=En[2];if(Tn&&!Tn[2]){var Fn=Tn[1],Mn=n(Nn[2]),Pn=hMt(Fn);if("number"!=typeof Pn&&8===Pn[0]){var Un=Pn[3];if(Un&&!Un[2]){var Gn=Pn[4];if(Gn){var $n=Gn[1];if("number"!=typeof $n&&8===$n[0]&&!$n[3]&&!$n[5]){var Kn=Gn[2];if(Kn){var On=Kn[2];if(On&&!On[2]&&!Pn[5]){var Rn=$n[4];n(Sct([0,Mn,0],$n));var Qn=[0,Mn,0],Cn=TMt(ebe,n($ct(H0(function(r){return Sct(Qn,r)},Rn)))),Hn=LPt(Cn,LMt(gn,$Mt(Cn))),Vn=TMt(nbe,oS),Ln=kPt([0,Hn,[0,LPt(Vn,zMt(GKt($Mt(Vn)))),[0,$Mt([0,tbe,CPt]),0]]]);return[12,Ce,[0,ze],2,In,qn,gn,fPt(c(Fn),[0,Mn,0],Ln)]}}}}}}throw gQ([0,xz,abe],1)}}}throw gQ([0,xz,ube],1)}throw gQ([0,xz,fbe],1);case 13:throw gQ([0,xz,ibe],1);case 14:var zn=e[3],Sn=zn[9],Zn=zn[8],Wn=zn[7],Xn=zn[6],Jn=zn[5],Yn=zn[4],rt=zn[3],et=zn[2],nt=zn[1],tt=e[2],at=e[1],ut=n(e[4]),ft=n(Sn[2]),it=[0,n(Sn[1]),ft],vt=c(Zn),ct=c(Wn),At=c(Xn),ot=c(Jn),st=c(Yn),bt=c(rt),lt=[0,nt,c(et),bt,st,ot,At,ct,vt,it],Bt=l(tt);return[14,b(at),Bt,lt,ut];case 15:var jt=e[2],kt=e[1],pt=n(e[3]);return[15,kt,l(jt),pt];case 1:case 2:return e;default:throw gQ([0,xz,vbe],1)}}function o(r){var e=n(r[3]),t=r[2];switch(t[0]){case 1:var a=t[1],u=c(t[2]),f=[1,c(a),u];break;case 2:var i=t[2];f=[2,c(t[1]),i];break;default:f=t}return[0,r[1],f,e]}function s(r){var e=r[2],t=r[3];switch(e[0]){case 0:var a=e[1],u=c(e[2]),f=[0,j(a),u];break;case 1:var i=e[2],v=e[1],A=c(e[3]);f=[1,v,n(i),A];break;default:var s=e[2],b=e[1],l=o(e[3]);f=[2,b,n(s),l]}return[0,r[1],f,t]}function b(r){return H0(s,r)}function l(r){return H0(function(r){var e=n(r[3]);return[0,r[1],r[2],e]},r)}function B(r){var e=n(r[3]);return[0,r[1],r[2],e]}function j(r){var e=n(r[3]),t=r[2];if("number"==typeof t)var a=t;else switch(t[0]){case 2:a=[2,H0(j,t[1])];break;case 3:a=[3,MFt(j,t[1])];break;case 4:a=[4,j(t[1])];break;case 5:a=[5,t[1],j(t[2])];break;case 6:var u=t[1],f=j(t[2]);a=[6,j(u),f];break;default:a=t}return[0,r[1],a,e]}function k(r){var e=r[2],t=r[3],a=n(e[3]),f=e[2],i=[0,u(e[1]),f,a];return[0,r[1],i,t]}var p=r[2],m=r[1],d=[0,p[1],0,p[3],p[4],p[5]];switch(m[0]){case 0:throw gQ([0,kz,cbe],1);case 1:var _=[1,b(m[1])];break;default:var h=m[4],x=h[9],y=m[1],w=h[8],g=h[7],q=h[6],I=h[5],D=h[4],E=h[3],N=h[2],T=h[1],F=m[3],M=m[2],P=n(m[5]),U=n(x[2]),G=[0,n(x[1]),U],$=c(w),K=c(g),O=c(q),R=c(I),Q=c(D),C=c(E),H=[0,T,c(N),C,Q,R,O,K,$,G],V=l(F),L=b(M);_=[2,y?[0,H0(B,y[1])]:0,L,V,H,P]}return[0,_,d]}var GRt=Z8n[1]?Ytn:ran;function $Rt(r){return[2,H0(function(r){return[1,r]},r)]}function KRt(r,e){switch(e[0]){case 0:return n3(r,e[1]);case 1:return t3(r,e[1]);case 2:for(var n=e[1];;){if(!n)return;var t=n[2];KRt(r,n[1]),n=t}break;default:return r3(r,e[1])}}function ORt(r){for(var e=z2(32),n=r;;){if(!n)return S2(e);var t=n[2];KRt(e,n[1]),n=t}}function RRt(r){if("number"==typeof r)return 7;switch(r[0]){case 0:return 0;case 1:return 1;case 2:return 4;case 3:return 2;case 4:return 3;case 5:return 8;case 6:return 5;default:return 6}}function QRt(r,e){if("number"==typeof r){if("number"==typeof e)return 0}else switch(r[0]){case 0:if("number"!=typeof e&&0===e[0])return VC(r[1],e[1]);break;case 1:if("number"!=typeof e&&1===e[0])return Ubt(r[1],e[1]);break;case 2:if("number"!=typeof e&&2===e[0])return JC(r[1],e[1]);break;case 3:if("number"!=typeof e&&3===e[0]){var n=e[2],t=r[2],a=fz(_ct[1],[2,r[1]],[2,e[1]]);return 0===a?VC(t,n):a}break;case 4:if("number"!=typeof e&&4===e[0]){var u=r[1],f=TC(uz(eBt,e[1]));return VC(TC(uz(eBt,u)),f)}break;case 5:if("number"!=typeof e&&5===e[0]){var i=r[1],v=EC(uz(Xlt,e[1]));return JC(EC(uz(Xlt,i)),v)}break;case 6:if("number"!=typeof e&&6===e[0])return YC(r[1],e[1]);break;default:if("number"!=typeof e&&7===e[0])return YC(r[1],e[1])}var c=RRt(e);return JC(RRt(r),c)}function CRt(r){if("number"==typeof r)return 3;switch(r[0]){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 4;case 4:return 5;case 5:return 6;case 6:return 7;default:return 8}}function HRt(r,e){for(var n=r,t=e;;){if("number"==typeof n){if("number"==typeof t)return 0}else switch(n[0]){case 0:if("number"!=typeof t&&0===t[0])return JC(n[1],t[1]);break;case 1:if("number"!=typeof t&&1===t[0])return JC(n[1],t[1]);break;case 2:if("number"!=typeof t&&2===t[0])return l1(VRt,n[1],t[1]);break;case 3:if("number"!=typeof t&&3===t[0])return l1(HRt,n[1],t[1]);break;case 4:if("number"!=typeof t&&4===t[0])return l1(HRt,n[1],t[1]);break;case 5:if("number"!=typeof t&&5===t[0]){var a=t[1],u=n[1],f=YC(u[1],a[1]),i=a[2],v=u[2];if(0!==f)return f;n=v,t=i;continue}break;case 6:if("number"!=typeof t&&6===t[0]){n=n[1],t=t[1];continue}break;default:if("number"!=typeof t&&7===t[0])return QRt(n[1],t[1])}var c=CRt(t);return JC(CRt(n),c)}}function VRt(r,e){var n=YC(r[1],e[1]),t=e[2],a=r[2];return 0===n?HRt(a,t):n}function LRt(r,e){return"number"!=typeof r&&2===r[0]&&"number"!=typeof e&&2===e[0]?0===HRt(r[1],e[1])?1:0:OH(r,e)}var zRt=dut([0,z1]),SRt=P2([0,z1]),ZRt=P2([0,z1]),WRt=dut([0,HRt]),XRt=dut([0,o2]);function JRt(r,e){var n=SRt[2].call(null,e,r[19][1]);return r[19][1]=n,$9n(nct(e))}function YRt(r,e){var n=eRt(r[22],e);return N9n(r[20],n)}function rQt(r,e,n){eRt(r[23],[0,e,n])}function eQt(r,e){eRt(r[5],e)}function nQt(r,e,n){var t=[0,0];if(nRt[32].call(null,e,r[9][1]))throw gQ([0,xz,Ttn],1);var a=eRt(r[8],[0,t,e]),u=nRt[2].call(null,e,a,r[9][1]);return r[9][1]=u,function(r){return eet(t,[0,O9n,[0,[0,1,n],[0,O9n,EOt(MOt([16,[0,O9n,[1,r]]]))]]])}}function tQt(r,e,n,t){return nQt(r,e,n)(t)}function aQt(r,e){var n=nRt[18].call(null,e,r[9][1]);if(n)return n[1];throw gQ([0,kz,uz(H6(Ntn),e)],1)}function uQt(r,e){var n=[0,O9n,[3,[0,O9n,aQt(r,e)]]];return eQt(r,[0,O9n,[0,Ort(e),n]])}function fQt(r){var e=r[4];return function(r){return aRt(e,r)}}function iQt(r){var e=r[4];return function(r,n){return uRt(e,r,n)}}function vQt(r,e){return aet(function(n){return fQt(r)(e)})}function cQt(r,e){var n=nRt[18].call(null,e,r[10][1]);if(n)return n[1];var t=vQt(r,e),a=nRt[2].call(null,e,t,r[10][1]);return r[10][1]=a,t}function AQt(r,e){return fet(cQt(r,e))}function oQt(r){var e=r[4];return function(r){return iRt(e,r)}}function sQt(r){var e=r[4];return function(r,n,t,a){return cRt(e,r,n,t,a)}}function bQt(r){var e=r[4];return function(r,n){return oRt(e,r,n)}}function lQt(r){var e=bQt(r);return function(r){return e(Etn,r)}}function BQt(r){var e=r[4];return function(r,n){return ARt(e,r,n)}}function jQt(r,e){return e?e[2]?[0,[0,O9n,oQt(r)([0,0,e])]]:[1,[0,e[1]]]:Dtn}var kQt=MOt([21,[0,2]]);function pQt(r,e){return FOt(kQt,KOt(YX,r,e))}function mQt(r,e,n){return FOt(kQt,OOt(r)(e,n))}function dQt(r,e,n,t){return FOt(kQt,KOt(jQt(r,e),n,t))}function _Qt(r,e,n){return ROt(jQt(r,e),n)}function hQt(r,e){return fz(r[3],r,e)}function xQt(r,e){return pQt(hQt(r,e),TOt)}function yQt(r,e){return pQt(TOt,hQt(r,e))}function wQt(r,e){var n=YOt(r[12][1],e),t=n[1];return r[12][1]=n[2],t}function gQt(r,e){var n=XRt[18].call(null,e,r[6][1]);if(n)return n[1];var t=r[7][1],a=XRt[2].call(null,e,t,r[6][1]);return r[6][1]=a,r[7][1]=r[7][1]+1|0,t}function qQt(r,e,n){var t=ORt(n),a=e;if(a>=r[12][1][1])throw gQ([0,xz,Itn],1);var u=V0(function(r,e){if(r!==a)return e;if(e===kQ)return t;throw gQ([0,xz,qtn],1)},rRt(r[12][1])),f=Q0(u),i=[0,G0(u),f];return r[12][1]=i,aV(AV(t))}function IQt(r,e,n){var t=WRt[18].call(null,e,r[13][1]);if(t)return t[1];var a=uz(n,0);if(0===a[0])return a;var u=WRt[2].call(null,e,a,r[13][1]);return r[13][1]=u,a}function DQt(r,e,n){if(r[14][2][1])throw gQ([0,kz,"Object pool frozen"],1);var t=YOt(r[14][1][1],[0,e,n]),a=t[1];return r[14][1][1]=t[2],aV(a)}function EQt(r,e){var n=e||V8n[1]?HJ:ec+Lo;return bQt(r)(gtn,n)}function NQt(r,e){var n=ZRt[2].call(null,e,r[24][1]);r[24][1]=n}function TQt(r){if(1-r[25][1]&&(r[25][1]=1,1>>0))return NQt(r,ytn),NQt(r,wtn)}function FQt(r){return r[25][1]}function MQt(r){var e=MOt(htn);return FOt(MOt([18,[1,r]]),e)}function PQt(r){var e=MOt(dtn);return FOt(MOt([17,[1,r]]),e)}function UQt(r){var e=MOt(mtn);return FOt(MOt([18,[3,r]]),e)}function GQt(r){var e=MOt(ptn);return FOt(MOt([18,[2,r]]),e)}function $Qt(r){return MOt([16,[0,O9n,[1,r]]])}function KQt(r){return MOt([16,[0,O9n,[0,r]]])}var OQt=$Qt(ean),RQt=$Qt(nan);function QQt(r,e){var n=MOt([20,[1,r]]);return FOt($Qt(e),n)}var CQt=12,HQt=11,VQt=10;function LQt(r){if(!cL(r,ltn))return FOt(MOt(2),OQt);if(!cL(r,Btn))return TOt;if(ZH(r,jtn)){var e=Hlt[24].call(null,r),n=Hlt[31].call(null,e);if(OH(uz(Hlt[23],n),ktn)){var t=Hlt[24].call(null,r),a=Hlt[33].call(null,t);return QQt(VQt,uz(Hlt[23],a))}}return QQt(2,r)}function zQt(r){return cL(r,btn)?QQt(8,r):TOt}function SQt(r){return cL(r,stn)?QQt(9,r):TOt}function ZQt(r,e){var n=MQt(r);return FOt($Qt(e),n)}function WQt(r){return cL(r,otn)?ZQt(0,r):PQt(0)}function XQt(r){var e=MOt([20,[0,0]]);return FOt(KQt(r),e)}function JQt(r,e,n){return WOt(e,n,hQt(r,um+e))}function YQt(r,e,n){var t=YRt(r,e);rQt(r,t,n);var a=MOt([8,[0,O9n,t]]);return[0,MOt([9,[0,O9n,t]]),a,t]}function rCt(r,e){var n=YQt(r,1,e);return[0,n[1],n[2]]}function eCt(r,e){var n=YQt(r,0,e);return[0,n[1],n[2]]}function nCt(r,e,n){return QOt(FOt(e,pQt(FOt(n,MOt([3,[0,O9n,1]])),TOt)))}function tCt(r,e){var n=rCt(r,atn),t=n[2],a=n[1],u=rCt(r,utn),f=u[2],i=u[1],v=FOt(f,FOt(QQt(0,ftn),i)),c=FOt(uz(e,f),v),A=FOt(i,nCt(0,FOt(f,FOt(t,MQt(3))),c));return FOt(a,FOt($Qt(ttn),A))}function aCt(r,e){var n=FOt(e,MOt(etn)),t=FOt(yQt(r,"cannot narrow to 32 bit"),n),a=FOt(MQt(7),t);return FOt(e,FOt($Qt(ntn),a))}function uCt(r){return 1=G0(e))return TOt;var n=G0(e)-1|0;return UOt(function(e,t){if(1===t)return MOt([11,[0,O9n,fCt(r,n-e|0)]]);throw gQ([0,xz,Xnn],1)},e)}function cCt(r,e,n,t){for(var a=G0(n),u=G0(e),f=[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],u,a,[0,eJ],[0,eJ],r[24],r[25],r[26],r[27],r[28],r[29]],i=e,v=0;i;){var c=i[2];rQt(f,v,i[1][1]),i=c,v=v+1|0}var A=uCt(n),o=[0,H0(function(r){return r[2]},e),A],s=iCt(f,n),b=EOt(FOt(uz(t,f),s)),l=rRt(f[23][1]),B=rRt(f[22][1]);return[0,[0,O9n,[0,[0,O9n,oQt(r)(o)],B,b]],l]}function ACt(r,e,n,t,a){return uet(cQt(r,e),[W,function(e){return cCt(r,n,t,a)}])}function oCt(r,e,n,t,a,u){if(0===r){var f=V0(function(r,e){return MOt([8,[0,O9n,r]])},t);ACt(e,n,t,a,function(r){return fz(u,r,f)});var i=vCt(e,a);return FOt(MOt([6,[0,O9n,AQt(e,n)]]),i)}if(1!==r)throw gQ([0,xz,Wnn],1);var v=H0(function(r){return YQt(e,r[2],r[1])},t),c=S0(function(r,e){return FOt(e,r[1])},v,TOt),A=H0(function(r){return r[2]},v),o=vCt(e,a),s=FOt(iCt(e,a),o);return FOt(c,FOt(fz(u,e,A),s))}function sCt(r,e,n,t,a){return oCt(r,e,n,0,t,function(r,e){if(e)throw gQ([0,_z,Znn],1);return uz(a,r)})}function bCt(r,e,n,t,a,u){return oCt(r,e,n,[0,t,0],a,function(r,e){if(e&&!e[2])return fz(u,r,e[1]);throw gQ([0,_z,Snn],1)})}function lCt(r,e,n,t,a,u){return oCt(r,e,n,[0,t[1],[0,t[2],0]],a,function(r,e){if(e){var n=e[2];if(n&&!n[2])return iz(u,r,e[1],n[1])}throw gQ([0,_z,znn],1)})}function BCt(r,e,n,t,a,u){return oCt(r,e,n,[0,t[1],[0,t[2],[0,t[3],0]]],a,function(r,e){if(e){var n=e[2];if(n){var t=n[2];if(t&&!t[2])return vz(u,r,e[1],n[1],t[1])}}throw gQ([0,_z,Lnn],1)})}function jCt(r){var e=bQt(r)(s4e,o4e);return FOt(KQt(0),e)}function kCt(r){return MOt([11,[0,O9n,aQt(r,a4e)]])}function pCt(r){return MOt([11,[0,O9n,aQt(r,n4e)]])}function mCt(r){return MOt([11,[0,O9n,aQt(r,r4e)]])}function dCt(r){if(1>>0)return TOt;var e=MOt([12,[0,O9n,aQt(r,t4e)]]);return FOt(jCt(r),e)}function _Ct(r){if(1>>0)return TOt;var e=MOt([12,[0,O9n,aQt(r,e4e)]]),n=FOt(MOt(J6e),e),t=FOt(kCt(r),n);return FOt(jCt(r),t)}function hCt(r){if(1>>0)var e=TOt;else{var n=MOt([12,[0,O9n,aQt(r,Y6e)]]),t=FOt(MOt(W6e),n),a=FOt(pCt(r),t),u=FOt(MOt(X6e),a),f=FOt(mCt(r),u);e=FOt(kCt(r),f)}var i=FOt(_Ct(r),e),v=FOt(EQt(r,0),i);return FOt(dCt(r),v)}var xCt=LQt(jRt);function yCt(r){return MOt([13,[0,1,3,rV(cV(LJ,r),BRt[2]),0]])}function wCt(r){return MOt([14,[0,1,3,rV(cV(LJ,r),BRt[2]),0]])}function gCt(r){return MOt(8)}function qCt(r,e){var n=uz(lQt(r),$6e);return FOt($Qt(e),n)}function ICt(r){return MOt([11,[0,O9n,aQt(r,M6e)]])}function DCt(r){return MOt([12,[0,O9n,aQt(r,F6e)]])}function ECt(r){return sCt(1,r,T6e,0,function(r){var e=MOt(0),n=FOt(MOt(E6e),e);return FOt($Qt(N6e),n)})}function NCt(r,e){var n=cV(e,LJ);if(uV(n)>=Yd)throw gQ([0,xz,q6e],1);if(SH(n,jRt))var t=pQt(TOt,ECt(r)),a=FOt(MOt(I6e),t),u=FOt(ICt(r),a);else u=TOt;var f=FOt(TOt,FOt(ICt(r),u)),i=FOt(DCt(r),f),v=FOt(MOt(D6e),i),c=FOt($Qt(n),v);return FOt(ICt(r),c)}function TCt(r,e){var n=DCt(r),t=FOt(MOt(g6e),n),a=FOt($Qt(cV(e,LJ)),t);return FOt(ICt(r),a)}function FCt(r,e,n){var t=rCt(r,x6e),a=t[2],u=t[1],f=rCt(r,e),i=f[2],v=f[1],c=DCt(r),A=FOt(MOt(y6e),c),o=FOt(a,FOt(LQt(LJ),A)),s=FOt(ICt(r),o),b=FOt(v,FOt(uz(n,i),s)),l=FOt(TOt,ICt(r)),B=FOt(DCt(r),l),j=FOt(MOt(w6e),B),k=FOt(a,FOt(LQt(LJ),j)),p=FOt(ICt(r),k),m=FOt(pQt(ECt(r),TOt),p),d=FOt(a,FOt(MQt(3),m)),_=FOt(QQt(4,LJ),d);return FOt(u,FOt(FOt(ICt(r),_),b))}function MCt(r,e,n){var t=FCt(r,e,n),a=FOt(QQt(4,LJ),t);return FOt(QQt(0,NC(7,0,0)),a)}function PCt(r){return MOt([11,[0,O9n,aQt(r,h6e)]])}function UCt(r){return MOt([12,[0,O9n,aQt(r,_6e)]])}function GCt(r,e,n,t){var a=TCt(r,rV(n,j6e)),u=FOt(UCt(r),a),f=FOt(MOt(k6e),u),i=FOt(PCt(r),f),v=FOt(yQt(r,p6e),i),c=FOt(MQt(0),v),A=FOt(ICt(r),c),o=FOt(PCt(r),A),s=FOt(uz(t,0),o),b=FOt(UCt(r),s),l=FOt(ICt(r),b),B=FOt(MOt(m6e),l),j=FOt(PCt(r),B);return FOt(NCt(r,rV(n,d6e)),j)}function $Ct(r,e){var n=MOt([13,[0,1,3,cV(rV(e,B6e),LJ),0]]);return FOt(PCt(r),n)}function KCt(r,e){var n=MOt([13,[0,1,3,cV(rV(e,b6e),LJ),0]]),t=FOt(MOt(l6e),n);return FOt(PCt(r),t)}function OCt(r,e){var n=cV(rV(e,o6e),LJ);return bCt(1,r,HI+iV($M,e),s6e,0,function(r,e){var t=FOt(e,MOt([14,[0,1,3,n,0]]));return FOt(PCt(r),t)})}function RCt(r){return uz(lQt(r),c6e)}function QCt(r){return uz(lQt(r),i6e)}function CCt(r){return r?a6e:u6e}function HCt(r){return $Qt(CCt(r))}function VCt(r){return KQt(uV(CCt(r)))}var LCt=FOt(MOt(5),xCt),zCt=PQt(0),SCt=MOt([21,[1,1]]),ZCt=MOt([21,[0,2]]),WCt=MQt(1),XCt=FOt($Qt(tan),WCt);function JCt(r,e,n,t){var a=dQt(r,e,t,n);return FOt(QQt(7,t6e),a)}function YCt(r,e,n,t){var a=dQt(r,e,t,n),u=FOt(QQt(7,e6e),a);return FOt(MOt(n6e),u)}function rHt(r){if(Z8n[1])switch(r){case 14:return 21;case 2:case 7:return 62;case 6:case 11:return 60;case 4:case 9:return 16;case 3:case 8:return 8;case 5:case 10:case 13:return 32;default:throw gQ([0,xz,Gtn],1)}switch(r){case 14:return 21;case 2:case 7:case 6:case 11:return 63;case 4:case 9:return 16;case 3:case 8:return 8;case 5:case 10:case 13:return 32;default:throw gQ([0,xz,$tn],1)}}function eHt(r){return rHt(r)-1|0}function nHt(r,e){switch(r){case 5:case 6:var n=kV(Y3e,rHt(r)),t=DV(r6e,e);return t?EV(e,n):t;case 2:case 7:case 10:case 11:var a=eHt(r),u=DV(fV(kV(X3e,a)),e),f=kV(J3e,a);return u?EV(e,f):u;default:throw gQ([0,xz,W3e],1)}}function tHt(r,e){if(12>r)switch(r){case 0:case 1:case 3:case 4:case 8:case 9:break;default:var n=kV(e,64-rHt(r)|0);return jV(kRt(r),n)}throw gQ([0,xz,Z3e],1)}function aHt(r,e,n,t,a){switch(e){case 6:var u=dQt(r,n,t,a);return FOt(bCt(1,r,SOt(e,H3e),C3e,Q3e,function(r,n){var t=FOt(PQt(0),TOt);return FOt(n,FOt(QQt(CQt,aV(rHt(e))),t))}),u);case 2:case 7:case 11:var f=dQt(r,n,t,a);return FOt(bCt(1,r,SOt(e,S3e),z3e,L3e,function(r,n){var t=FOt(PQt(0),TOt),a=FOt(QQt(CQt,aV(eHt(e))),t),u=FOt(MOt(R3e),a);return FOt(n,FOt(n,FOt(QQt(HQt,aV(64-eHt(e)|0)),u)))}),f);default:throw gQ([0,xz,V3e],1)}}function uHt(r,e){var n=aV(rHt(e)),t=zQt(kRt(e));return FOt(QQt(VQt,dV(O3e,n)),t)}function fHt(r,e,n){var t=n-2|0;if(11>=t>>>0)switch(t){case 10:break;case 1:case 2:case 3:case 4:case 11:return FOt(TOt,QQt(CQt,dV(K3e,aV(rHt(n)))));default:return FOt(TOt,QQt(HQt,dV($3e,aV(rHt(n)))))}throw gQ([0,xz,G3e],1)}function iHt(r,e){return cL(kRt(e),U3e)?QQt(7,hV(dV(kV(Ez,64-rHt(e)|0),Ez),Iz)):TOt}function vHt(r){if("number"==typeof r)switch(r){case 0:return A3e;case 1:return o3e;case 2:return s3e;case 3:return b3e;case 4:return l3e;case 5:return B3e;case 6:return j3e;case 7:return k3e;case 8:return p3e;case 9:return m3e;case 10:return d3e;case 11:return _3e;case 12:return h3e;case 13:return x3e;default:return y3e}switch(r[0]){case 0:switch(r[1]){case 0:return w3e;case 1:return g3e;case 2:return q3e;default:return I3e}case 1:switch(r[1]){case 0:return D3e;case 1:return E3e;default:return N3e}default:switch(r[1]){case 0:return T3e;case 1:return F3e;case 2:return M3e;default:return P3e}}}var cHt=$Qt(zJ);function AHt(r){return FOt(cHt,MQt(1))}function oHt(r,e,n){if(!ZH(e,f3e))throw gQ([0,xz,i3e],1);var t=uV(vHt(n));return sCt(1,r,fz(H6(v3e),uV(e),t),c3e,function(r){var t=rCt(r,u3e),a=t[2],u=t[1],f=FOt(a,FOt(a,FOt(wCt(WJ),a))),i=FOt(wCt(ZJ),f),v=FOt(u,FOt(a,FOt($Qt(vHt(n)),i))),c=uz(lQt(r),V6e);return FOt(FOt($Qt(e),c),v)})}function sHt(r){var e=yCt(ZJ);return FOt(yCt(WJ),e)}function bHt(r,e){return FOt(TOt,yCt(e))}function lHt(r,e){return FOt(TOt,wCt(e))}function BHt(r,e,n,t){var a=rCt(r,a3e),u=a[2];var f=FOt(a[1],function t(a){if(!a)return n;var f=a[1],i=f[2],v=f[1],c=dQt(r,e,i,t(a[2]));return FOt(u,FOt(WQt(vHt(v)),c))}(t));return FOt(sHt(),f)}function jHt(r){return uz(lQt(r),t3e)}function kHt(r){var e=rCt(r,Y2e),n=e[2],t=e[1],a=rCt(r,r3e),u=a[2],f=a[1],i=FOt(u,FOt(n,BRt[4])),v=FOt(SCt,pQt(FOt(u,FOt(n,uz(lQt(r),e3e))),i));return FOt(t,FOt(f,FOt(uz(lQt(r),n3e),v)))}function pHt(r,e,n){var t=rV(P9n(G0(n)),SJ),a=rCt(r,J2e),u=a[2],f=a[1],i=FOt(u,jHt(r)),v=FOt(f,FOt(UOt(function(r,e){return FOt(u,FOt(e,wCt(rV(P9n(r),SJ))))},n),i));return FOt(oHt(r,t,e),v)}function mHt(r,e,n){return[1,DQt(e,r,n)]}function dHt(r,e){return 0===e[0]?$Qt(e[1]):qCt(r,e[1])}function _Ht(r,e){return dHt(r,mHt(2175,r,e))}function hHt(r){return pHt(r,1,[0,OQt,0])}function xHt(r){var e=bHt(0,SJ);return FOt(yCt(WJ),e)}function yHt(r){var e=rCt(r,X2e),n=e[2],t=e[1],a=FOt(n,lHt(0,SJ));return FOt(t,FOt(yCt(WJ),a))}function wHt(r){return DQt(r,2207,hHt)}function gHt(r,e){return pHt(r,3,[0,e,0])}function qHt(r,e){var n=Jct(e);r:{if("number"==typeof n){if(0!==n)break r}else switch(n[0]){case 2:if(n[1])break r;break;case 1:case 6:break;default:break r}return 0}return 1}function IHt(r,e,n){return qHt(0,e)?n:FOt(n,bCt(1,r,W2e,Z2e,S2e,function(r,e){var n=gHt(r,e),t=dQt(r,V2e,FOt(e,BHt(r,H2e,e,[0,[0,3,gHt(r,e)],0])),n),a=dQt(r,L2e,e,FOt(e,FOt(AHt(),t)));return FOt(e,JCt(r,z2e,e,FOt(e,FOt(WQt(CJ),a))))}))}function DHt(r,e){return FOt(e,yCt(WJ))}function EHt(r,e){return qHt(0,e)?TOt:bCt(1,r,C2e,Q2e,R2e,function(r,e){var n=bHt(0,SJ),t=dQt(r,K2e,e,FOt(e,BHt(r,$2e,e,[0,[0,3,FOt(e,FOt(yCt(WJ),n))],0])));return FOt(e,JCt(r,O2e,e,FOt(e,FOt(WQt(CJ),t))))})}function NHt(r){var e=bHt(0,SJ);return FOt(yCt(WJ),e)}var THt=NC(3,0,0);function FHt(r){return function(e){return JRt(r,e)}}function MHt(r,e,n){return pHt(r,4,[0,$Qt(FHt(r)(e)),[0,n,0]])}function PHt(r){var e=bHt(0,THt);return FOt(yCt(WJ),e)}function UHt(r,e){var n=WQt(FHt(r)(e)),t=bHt(0,SJ);return FOt(FOt(yCt(WJ),t),n)}var GHt=NC(4,0,0);function $Ht(r,e,n){var t=uCt(Hrt(n,1)),a=[0,[0,1,Hrt(e,1)],t],u=oQt(r)(a),f=vCt(r,Hrt(n,1)),i=FOt(MOt([7,[0,O9n,0],[0,O9n,u]]),f),v=FOt(bHt(0,SJ),i);return FOt(yCt(WJ),v)}function KHt(r,e){if(6===e)return g2e;if(11===e)return w2e;throw gQ([0,xz,y2e],1)}function OHt(r,e,n){var t=rCt(r,h2e),a=t[2],u=t[1],f=FOt(a,jHt(r)),i=FOt(u,FOt(a,FOt(n,FOt(lHt(0,SJ),f))));return FOt(oHt(r,x2e,KHt(0,e)),i)}function RHt(r,e){return bCt(1,r,SOt(e,_2e),d2e,m2e,function(r,n){var t=OHt(r,e,n);return FOt(n,aHt(r,e,p2e,FOt(n,uHt(0,e)),t))})}function QHt(r,e){return bCt(1,r,SOt(e,k2e),j2e,B2e,function(r,n){var t=bHt(0,SJ);KHt(0,e);var a=FOt(TOt,t),u=FOt(n,FOt(yCt(WJ),a));return FOt(n,JCt(r,l2e,FOt(n,fHt(0,0,e)),u))})}function CHt(r){return MOt(b2e)}function HHt(r){return MOt(s2e)}function VHt(r){return lCt(1,r,f2e,u2e,a2e,function(r,e,n){var t=FOt(e,FOt(n,MOt(n2e))),a=FOt(xQt(r,t2e),t);return FOt(e,FOt(n,FOt(MQt(3),a)))})}function LHt(r){return lCt(0,r,SOt(6,Y1e),e2e,r2e,function(r,e,n){var t=LOt(e),a=LOt(n),u=rCt(r,z1e),f=u[2],i=u[1],v=FOt(f,FOt(e,MOt(S1e))),c=FOt(a,MOt([3,[0,O9n,1]])),A=FOt(t,FOt(n,FOt(QQt(CQt,Z1e),c))),o=FOt(e,FOt(e,FOt(MOt(W1e),A))),s=FOt(pQt(TOt,FOt(f,FOt(e,FOt(MOt(X1e),i)))),o),b=FOt(PQt(0),s),l=pQt(TOt,FOt(n,FOt(QQt(VQt,J1e),b))),B=mQt(1,f,FOt(QOt(FOt(n,FOt(RQt,FOt(MQt(7),l)))),v));return FOt(RQt,FOt(i,FOt(n,FOt(PQt(0),B))))})}function zHt(r){var e=rCt(r,K1e),n=e[2],t=e[1],a=MOt(O1e);return FOt(t,FOt(RQt,FOt(n,FOt(MOt(R1e),a))))}function SHt(r){switch(r){case 14:return 21;case 3:case 8:return 8;case 4:case 9:return 16;case 5:case 10:return 32;case 6:case 11:return 64;default:throw gQ([0,xz,G1e],1)}}function ZHt(r){switch(r){case 6:case 11:return U1e;case 3:case 4:case 5:case 8:case 9:case 10:case 14:return kRt(r);default:throw gQ([0,xz,P1e],1)}}function WHt(r){return aV(64-SHt(r)|0)}function XHt(r,e){return kV(e,uV(WHt(r)))}function JHt(r){return dV(XHt(r,T1e),Ez)}function YHt(r){return hV(JHt(r),Iz)}function rVt(r){if(6!==r&&11!==r){switch(r){case 3:case 8:var e=OJ;break;case 4:case 9:e=RJ;break;case 5:case 10:e=QJ;break;default:e=WOt(M1e,Abt(r),F1e)}return QQt(7,e)}return TOt}function eVt(r){switch(r){case 14:case 3:case 4:case 5:return QQt(CQt,WHt(r));case 6:case 11:return TOt;case 8:case 9:case 10:return QQt(HQt,WHt(r));default:throw gQ([0,xz,N1e],1)}}function nVt(r){return 6!==r&&11!==r?QQt(VQt,WHt(r)):TOt}function tVt(r){return 6!==r&&11!==r?QQt(7,YHt(r)):TOt}function aVt(r){return 6!==r&&11!==r?zQt(JHt(r)):TOt}function uVt(r){var e=nVt(r),n=FOt(MOt(E1e),e);return FOt(aVt(r),n)}function fVt(r){var e=nVt(r),n=FOt(MOt(D1e),e),t=FOt(QQt(14,WHt(r)),n);return FOt(aVt(r),t)}function iVt(r,e){var n=rCt(r,g1e),t=n[2],a=n[1],u=nVt(e),f=FOt(MOt(q1e),u),i=FOt(MOt(I1e),f),v=FOt(RQt,FOt(t,FOt(rVt(e),i))),c=FOt(a,FOt(eVt(e),v));return FOt(eVt(e),c)}function vVt(r){return eVt(14)}var cVt=nVt(14);function AVt(r){return bCt(0,r,w1e,y1e,x1e,function(r,e){var n=FOt(e,cVt),t=FOt(xQt(r,k1e),n),a=FOt(MOt(p1e),t),u=FOt(MQt(5),a),f=FOt(e,FOt($Qt(m1e),u)),i=FOt(MOt(d1e),f),v=FOt(MQt(3),i),c=FOt(e,FOt($Qt(_1e),v)),A=FOt(MQt(9),c);return FOt(e,FOt($Qt(h1e),A))})}function oVt(r,e){var n=kV(e,uV(WHt(r)));return jV(ZHt(r),n)}function sVt(r,e){return lCt(0,r,SOt(e,b1e),B1e,l1e,function(r,n,t){var a=LOt(n),u=LOt(t),f=rCt(r,f1e),i=f[2],v=f[1],c=FOt(i,FOt(n,MOt(i1e))),A=FOt(u,MOt([3,[0,O9n,1]])),o=FOt(a,FOt(t,FOt(QQt(CQt,v1e),A))),s=FOt(n,FOt(n,FOt(MOt(c1e),o))),b=FOt(pQt(TOt,FOt(i,FOt(n,FOt(MOt(A1e),v)))),s),l=FOt(PQt(0),b),B=pQt(TOt,FOt(t,FOt(QQt(VQt,o1e),l))),j=mQt(1,i,FOt(QOt(FOt(t,FOt(RQt,FOt(MQt(7),B)))),c)),k=FOt(v,FOt(t,FOt(PQt(0),j))),p=FOt(a,FOt($Qt(XHt(e,s1e)),k)),m=FOt(u,FOt(n,FOt(QQt(CQt,WHt(e)),p)));return FOt(t,FOt(QQt(CQt,WHt(e)),m))})}function bVt(r,e){var n=e-3|0;if(11>=n>>>0)switch(n){case 3:case 4:case 8:case 9:case 10:break;default:return zQt(ZHt(e))}throw gQ([0,xz,H0e],1)}function lVt(r,e){var n=e-3|0;if(11>=n>>>0)switch(n){case 3:case 4:case 8:case 9:case 10:break;default:return FOt(TOt,iHt(0,e))}throw gQ([0,xz,C0e],1)}function BVt(r){return MOt([16,[0,O9n,[3,r]]])}function jVt(r){return bCt(1,r,Q0e,R0e,O0e,function(r,e){var n=rCt(r,$0e),t=n[2],a=n[1],u=FOt(t,jHt(r)),f=FOt(a,FOt(t,FOt(e,FOt(FOt(TOt,MOt([14,[0,3,3,rV(NC(16,0,0),BRt[2]),0]])),u))));return FOt(oHt(r,NC(4,0,0),K0e),f)})}function kVt(r){var e=FOt(TOt,FOt(TOt,MOt([13,[0,3,3,rV(NC(16,0,0),BRt[2]),0]])));return FOt(yCt(WJ),e)}function pVt(r){return FOt(r,MOt(G0e))}function mVt(r){return FOt(r,MOt([13,[0,1,3,LJ,0]]))}function dVt(r,e){return FOt(r,FOt(e,MOt(U0e)))}function _Vt(r,e){return FOt(r,FOt(e,MOt([14,[0,1,3,LJ,0]])))}function hVt(r,e){var n=FOt(e,MOt(P0e));return _Vt(r,FOt(pVt(r),n))}function xVt(r,e){var n=FOt(e,MOt(M0e));return dVt(r,FOt(pVt(r),n))}function yVt(r,e){return FOt(e,uz(lQt(r),F0e))}function wVt(r,e){return FOt(e,uz(lQt(r),T0e))}function gVt(r,e,n){var t=yQt(r,E0e),a=FOt(MQt(7),t),u=FOt(MOt(N0e),a),f=FOt(pVt(e),u);return FOt(n,FOt(mVt(e),f))}function qVt(r,e){var n=MQt(0),t=FOt(pVt(e),n);return FOt(mVt(e),t)}function IVt(r,e){var n=xVt(e,RQt),t=FOt(MOt(g0e),n),a=FOt(MOt(q0e),t),u=FOt(pVt(e),a);return FOt(gVt(r,e,RQt),u)}function DVt(r,e){var n=xVt(e,$Qt(p0e)),t=FOt(MOt(m0e),n),a=FOt(MOt(d0e),t),u=FOt(pVt(e),a);return FOt(gVt(r,e,$Qt(_0e)),u)}function EVt(r,e){var n=xVt(e,$Qt(v0e)),t=FOt(MOt(c0e),n),a=FOt(pVt(e),t);return FOt(gVt(r,e,$Qt(A0e)),a)}function NVt(r,e,n){var t=xVt(e,n),a=FOt(n,FOt(gCt(),t)),u=FOt(pVt(e),a);return FOt(gVt(r,e,n),u)}function TVt(r){return FOt(r,MOt(XYe))}function FVt(r){var e=MOt(SYe),n=FOt(r,FOt(MOt(ZYe),e));return FOt(r,FOt(QQt(VQt,WYe),n))}function MVt(r,e){var n=QQt(4,LYe),t=FOt(MOt(zYe),n),a=FOt(uz(r,e),t);return FOt(e,FOt(XCt,mQt(1,FOt($Qt(NC(70,0,0)),a),RQt)))}function PVt(r,e,n){var t=MVt(TVt,e);return FOt(e,FOt(n,FOt(uz(lQt(r),VYe),t)))}function UVt(r){return uz(lQt(r),rJe)}function GVt(r){return uz(lQt(r),YXe)}function $Vt(r){return uz(lQt(r),JXe)}function KVt(r){return uz(lQt(r),NXe)}function OVt(r){return uz(lQt(r),EXe)}function RVt(r){return uz(lQt(r),DXe)}function QVt(r){var e=bCt(1,r,$Xe,GXe,UXe,function(r,e){var n=FOt(SCt,FOt(xQt(r,MXe),e));return FOt(e,FOt(uz(lQt(r),PXe),n))});return FOt(uz(lQt(r),gXe),e)}function CVt(r){return uz(lQt(r),xXe)}function HVt(r){return uz(lQt(r),hXe)}function VVt(r,e){var n=MQt(7),t=FOt($Qt(aV(e)),n);return FOt(uz(lQt(r),lXe),t)}function LVt(r){return VVt(r,rHt(7))}function zVt(r){return iHt(0,7)}function SVt(r){return zQt(kRt(7))}function ZVt(r){var e=aV(rHt(7)),n=$Vt(r);return FOt(QQt(HQt,dV(PYe,e)),n)}function WVt(r,e,n,t){return lCt(0,t,r,MYe,FYe,function(r,t,a){var u=rCt(r,DYe),f=u[2],i=u[1],v=uHt(0,7),c=mQt(1,FOt(f,FOt(UVt(r),v)),f),A=FOt(i,FOt(f,FOt(LVt(r),c))),o=FOt(uz(n,r),A),s=FOt(a,FOt(JCt(r,EYe,FOt(a,ZVt(r)),a),o)),b=FOt(t,FOt(JCt(r,NYe,FOt(t,ZVt(r)),t),s)),l=FOt(f,ZVt(r)),B=FOt(f,SVt()),j=aV(rHt(7)),k=aHt(r,7,TYe,B,l),p=FOt(i,FOt(f,FOt(QQt(HQt,dV(KYe,j)),k))),m=FOt(uz(e,r),p),d=FOt(a,FOt(zVt(),m)),_=mQt(1,FOt(t,FOt(zVt(),d)),b),h=WQt(UYe),x=FOt(QQt(7,GYe),h);return FOt(FOt(t,FOt(a,FOt(MOt($Ye),x))),_)})}function XVt(r){return WVt(MJ,CHt,KVt,r)}function JVt(r){var e=MOt(o2e);return FOt(QQt(HQt,aV(64-rHt(7)|0)),e)}function YVt(r){return WVt(PJ,JVt,OVt,r)}function rLt(r){return lCt(0,r,IYe,qYe,gYe,function(r,e,n){var t=rCt(r,hYe),a=t[2],u=t[1],f=uHt(0,7),i=mQt(1,FOt(a,FOt(UVt(r),f)),a),v=FOt(u,FOt(a,FOt(LVt(r),i))),c=FOt(CVt(r),v),A=FOt(n,FOt(JCt(r,xYe,FOt(n,ZVt(r)),n),c)),o=FOt(e,FOt(JCt(r,yYe,FOt(e,ZVt(r)),e),A)),s=LOt(e),b=LOt(n),l=uHt(0,7),B=mQt(1,FOt(a,FOt(UVt(r),l)),a),j=FOt(u,FOt(a,FOt(LVt(r),B))),k=FOt(CVt(r),j),p=FOt(n,FOt($Vt(r),k)),m=FOt(b,FOt(e,FOt($Vt(r),p))),d=FOt(s,FOt(n,FOt(fHt(0,0,7),m)));return FOt(e,FOt(n,YCt(r,wYe,FOt(e,FOt(fHt(0,0,7),d)),o)))})}function eLt(r){return lCt(0,r,_Ye,dYe,mYe,function(r,e,n){var t=LOt(e),a=FOt(e,FOt(n,HVt(r))),u=FOt(n,HVt(r)),f=FOt(e,FOt(GVt(r),u)),i=uHt(0,7),v=mQt(1,FOt(e,FOt(n,FOt(MOt(bYe),i))),f),c=FOt(MOt(lYe),v),A=FOt(n,FOt(ZQt(7,BYe),c)),o=FOt(WQt(jYe),A),s=FOt(t,FOt(e,FOt(QQt(7,kYe),o))),b=FOt(e,JCt(r,pYe,FOt(e,FOt(fHt(0,0,7),s)),a)),l=FOt(LOt(n),b);return FOt(n,FOt(eVt(5),l))})}function nLt(r){return lCt(0,r,sYe,oYe,AYe,function(r,e,n){var t=rCt(r,fYe),a=t[2],u=t[1],f=uHt(0,7),i=mQt(1,FOt(a,FOt(UVt(r),f)),a),v=FOt(u,FOt(a,FOt(LVt(r),i))),c=FOt(e,FOt(n,FOt(uz(lQt(r),_Xe),v))),A=SVt(),o=FOt(MOt(iYe),A),s=FOt(n,FOt(ZQt(7,aV(rHt(7))),o)),b=FOt(QQt(7,kV(Nz,64-rHt(7)|0)),s),l=FOt(n,FOt(MOt(vYe),b)),B=FOt(e,JCt(r,cYe,FOt(e,FOt(zVt(),l)),c)),j=FOt(LOt(n),B);return FOt(n,FOt(eVt(5),j))})}function tLt(r,e){if(Sbt(e)&&nHt(7,Ybt(e)))return[0,tHt(7,Ybt(e))];var n=0<=e[1]?0:1,t=Pbt(e),a=nlt(2,60);var u=function r(e){if(0===e[1])return 0;var n=Vbt(e,a),t=n[2],u=r(n[1]);return QY([0,[1,Ybt(t)],0],u)}(t),f=G0(u),i=QY([0,[0,f],[0,[0,f],[0,[0,n],KXe]]],u);return mHt(3715,r,function(r){return pHt(r,6,H0($Qt,function(r){return function r(e,n){if(n>mH(e))throw gQ([0,xz,Utn],1);return mH(e)===n?0:QY([0,pC(e,n),0],r(e,n+8|0))}(y1(ORt(r)),0)}(i)))})}function aLt(r){return lCt(0,r,HJe,CJe,QJe,function(r,e,n){var t=FOt(uz(lQt(r),dXe),SCt),a=FOt(n,FOt(JCt(r,KJe,FOt(n,ZVt(r)),n),t)),u=FOt(e,FOt(JCt(r,OJe,FOt(e,ZVt(r)),e),a)),f=FOt(e,FOt(n,YCt(r,RJe,HCt(0),u))),i=mQt(1,HCt(1),f);return FOt(e,FOt(n,FOt(MQt(0),i)))})}function uLt(r,e){function n(r){switch(e){case 0:return FOt(uz(lQt(r),BXe),SCt);case 1:return FOt(uz(lQt(r),jXe),SCt);case 2:return FOt(uz(lQt(r),kXe),SCt);default:return FOt(uz(lQt(r),pXe),SCt)}}function t(r){switch(e){case 0:var n=2;break;case 1:n=6;break;case 2:n=8;break;default:n=4}return MQt(n)}switch(e){case 0:var a=JYe;break;case 1:a=YYe;break;case 2:a=r0e;break;default:a=e0e}return lCt(0,r,a,ZJe,SJe,function(r,e,a){var u=n(r),f=FOt(a,FOt(JCt(r,VJe,FOt(a,ZVt(r)),a),u)),i=FOt(e,FOt(JCt(r,LJe,FOt(e,ZVt(r)),e),f)),v=t(),c=FOt(a,FOt(zVt(),v));return FOt(e,FOt(a,YCt(r,zJe,FOt(e,FOt(zVt(),c)),i)))})}function fLt(r,e){var n=rCt(r,FJ),t=n[2],a=n[1],u=MQt(7),f=FOt($Qt(aV(e)),u);r:{e:{var i=1,v=FOt(t,FOt(uz(lQt(r),bXe),f));if(17<=e){if(32!==e){if(64!==e)break e;var c=HCt(1),A=FOt(MOt(2),c);break r}}else if(8!==e&&16>e)break e;var o=PQt(0);A=FOt(QQt(7,kV(Nz,e+(64-rHt(7)|0)|0)),o);break r}throw gQ([0,xz,$Je],1)}return FOt(a,FOt(t,JCt(r,[0,i,0],FOt(t,A),v)))}function iLt(r,e){var n=rCt(r,GJe),t=n[2],a=n[1],u=rCt(r,FJ),f=u[2],i=u[1];r:{e:{var v=1,c=FOt(f,VVt(r,e));if(17<=e){if(32!==e){if(64!==e)break e;var A=HCt(1),o=FOt(MOt(2),A);break r}}else if(8!==e&&16>e)break e;var s=FOt(PQt(0),TOt),b=FOt(QQt(7,kV(Nz,(e-1|0)+(64-rHt(7)|0)|0)),s),l=FOt(MOt(PJe),b);o=FOt(a,FOt(t,FOt(t,FOt(QQt(HQt,UJe),l))));break r}throw gQ([0,xz,MJe],1)}return FOt(i,FOt(f,JCt(r,[0,v,0],FOt(f,o),c)))}function vLt(r,e,n){var t=rCt(r,xJe),a=t[2],u=t[1],f=rCt(r,"eom"),i=f[2],v=f[1],c=FOt(e,uz(lQt(r),n?qJe:IJe)),A=FOt(a,FOt(i,FOt(MOt(yJe),c))),o=mQt(1,FOt(e,uz(lQt(r),n?OXe:RXe)),A),s=FOt(v,FOt(i,FOt(PQt(0),o))),b=FOt(QQt(7,wJe),s),l=FOt(u,FOt(a,FOt(SQt(gJe),b))),B=MOt(o0e),j=FOt(pVt(e),B),k=mQt(1,$Qt(s0e),j),p=FOt(QQt(0,b0e),QQt(CQt,I0e)),m=FOt(QQt(7,D0e),p);return FOt(FOt(FOt(pVt(e),m),k),l)}function cLt(r){var e=rCt(r,BJe),n=e[2],t=e[1],a=FOt(n,$Vt(r));return FOt(t,FOt(n,aHt(r,7,jJe,FOt(n,uHt(0,7)),a)))}function ALt(r){var e=rCt(r,bJe),n=e[2],t=e[1],a=FOt(n,GVt(r)),u=FOt(n,uHt(0,7)),f=aV(eHt(7)),i=dQt(r,lJe,u,a),v=FOt(PQt(0),i);return FOt(t,FOt(n,FOt(QQt(CQt,f),v)))}function oLt(r){var e=rCt(r,oJe),n=e[2],t=e[1],a=FOt(n,UVt(r));return FOt(t,FOt(n,JCt(r,sJe,FOt(n,fHt(0,0,7)),a)))}function sLt(r){var e=rCt(r,cJe),n=e[2],t=e[1],a=MOt(eJe),u=FOt(n,FOt(uz(lQt(r),nJe),a));return FOt(t,FOt(n,JCt(r,AJe,FOt(n,fHt(0,0,7)),u)))}function bLt(r){var e=rCt(r,iJe),n=e[2],t=e[1],a=FOt(n,uz(lQt(r),aJe));return FOt(t,FOt(n,JCt(r,vJe,FOt(n,fHt(0,0,7)),a)))}function lLt(r,e){var n=rCt(r,uJe),t=n[2],a=n[1],u=FOt(t,FOt(e,uz(lQt(r),tJe)));return FOt(a,FOt(t,JCt(r,fJe,FOt(t,fHt(0,0,7)),u)))}var BLt=NC(2,0,0);function jLt(r){var e=bHt(0,BLt);return FOt(yCt(WJ),e)}function kLt(r,e,n){var t=jHt(r),a=FOt(n,FOt(uz(lQt(r),cXe),t));return FOt($Qt(vHt([2,e])),a)}function pLt(r){var e=QQt(0,rV(BRt[2],NC(24,0,0)));return FOt(yCt(WJ),e)}function mLt(r,e,n){return mHt(3844,r,function(r){var t=ORt([0,[3,n],0]),a=zRt[18].call(null,t,r[11][1]),u=aV(AV(n));if(a)var f=a[1];else{var i=wQt(r,t),v=zRt[2].call(null,t,i,r[11][1]);r[11][1]=v;f=i}var c=$Qt(u),A=rCt(r,iXe),o=A[2],s=A[1],b=FOt(MOt([15,[0,O9n,f]]),o),l=FOt(c,FOt(MOt(vXe),b)),B=FOt(KQt(0),l),j=FOt(s,FOt(o,FOt(pLt(),B)));return FOt(kLt(r,e,c),j)})}function dLt(r,e,n){if(2<=e)var t=mLt(r,e,n);else t=IQt(r,[7,0===e?[7,n]:[6,n]],function(t){return mLt(r,e,n)});return dHt(r,t)}function _Lt(r){return bCt(1,r,fXe,uXe,aXe,function(r,e){var n=FOt(e,jLt());return FOt(e,FOt(pLt(),n))})}function hLt(r,e,n){var t=_Lt(r);return FOt(dLt(r,e,n),t)}function xLt(r,e,n,t){var a=rCt(r,nXe),u=a[2],f=a[1],i=FOt(MOt([15,[0,O9n,n]]),u),v=FOt(t,FOt(MOt(tXe),i)),c=FOt(KQt(0),v),A=FOt(f,FOt(u,FOt(pLt(),c)));return FOt(kLt(r,e,t),A)}function yLt(r,e,n){var t=iV($M,vHt([2,n])),a=iV($M,vHt([2,e]));return bCt(1,r,fz(H6(ZWe),a,t),XWe,WWe,function(r,e){var t=rCt(r,SWe),a=t[2],u=t[1],f=FOt(gCt(),a),i=FOt(e,FOt(TOt,FOt(_Lt(r),f))),v=FOt(u,FOt(a,FOt(pLt(),i)));return FOt(kLt(r,n,FOt(e,jLt())),v)})}function wLt(r,e,n,t,a){var u=rCt(r,LWe),f=u[2],i=u[1],v=rCt(r,zWe),c=v[2],A=v[1],o=FOt(f,FOt(uz(t,r),c)),s=FOt(uz(a,r),o),b=FOt(A,FOt(c,FOt(pLt(),s))),l=FOt(i,FOt(kLt(r,e,f),b));return FOt(uz(n,r),l)}function gLt(r,e){var n=$Qt(_We),t=$Qt(hWe);if(e)switch(e[1]){case 0:var a=xWe;break;case 1:a=yWe;break;case 2:a=wWe;break;case 3:a=gWe;break;case 4:a=qWe;break;default:a=IWe}else a=DWe;return lCt(0,r,a,NWe,EWe,function(r,a,u){if(e)switch(e[1]){case 1:return FOt(a,FOt(u,FOt(gLt(r,oWe),zCt)));case 2:return FOt(a,FOt(u,FOt(gLt(r,sWe),zCt)));case 3:return FOt(a,FOt(u,FOt(gLt(r,bWe),zCt)))}var f=LOt(a),i=LOt(u),v=rCt(r,lWe),c=v[2],A=v[1],o=rCt(r,BWe),s=o[2],b=o[1],l=rCt(r,jWe),B=l[1],j=l[2],k=rCt(r,kWe),p=k[2],m=k[1],d=rCt(r,pWe),_=d[2],h=d[1];if(e)switch(e[1]){case 0:var x=HCt(1);break;case 4:x=FOt(c,FOt(s,MQt(7)));break;case 5:x=FOt(c,FOt(s,MQt(9)));break;default:throw gQ([0,xz,mWe],1)}else{var y=mQt(1,RQt,t),w=mQt(1,n,FOt(c,FOt(s,FOt(MQt(5),y))));x=FOt(c,FOt(s,FOt(MQt(3),w)))}var g=FOt(j,FOt(tCt(r,function(r){var t=MOt(4);if(e)switch(e[1]){case 0:var f=HCt(0);break;case 4:f=FOt(p,FOt(_,MQt(7)));break;case 5:f=FOt(p,FOt(_,MQt(9)));break;default:throw gQ([0,xz,fWe],1)}else{var i=mQt(1,n,RQt);f=FOt(p,FOt(_,FOt(MQt(3),i)))}var v=pQt(TOt,FOt(f,t)),c=FOt(h,FOt(p,FOt(_,FOt(MQt(0),v)))),A=FOt(MOt(iWe),c),o=FOt(r,FOt(MOt(vWe),A)),s=FOt(m,FOt(u,FOt(pLt(),o))),b=FOt(MOt(cWe),s),l=FOt(r,FOt(MOt(AWe),b));return FOt(a,FOt(pLt(),l))}),x));if(OH(e,dWe))var q=FOt(c,B),I=MOt(4),D=FOt(pQt(TOt,FOt(HCt(0),I)),q),E=FOt(c,FOt(s,FOt(MQt(0),D)));else{var N=FOt(s,B),T=pQt(FOt(c,B),N);E=FOt(c,FOt(s,FOt(MQt(7),T)))}var F=FOt(b,FOt(E,g)),M=FOt(A,FOt(u,FOt(jLt(),F))),P=FOt(i,FOt(a,FOt(jLt(),M))),U=FOt(f,FOt(u,FOt(yCt(WJ),P)));return FOt(a,FOt(yCt(WJ),U))})}function qLt(r){var e=rCt(r,TWe),n=e[2],t=e[1],a=pLt();return FOt(t,FOt(kLt(r,0,n),a))}var ILt=NC(3,0,0),DLt=NC(2,0,0),ELt=dut([0,z1]);function NLt(r,e){for(var n=V0(function(r,e){return[0,e[2],aV(r)]},s1(nH,H0(function(e){var n=e[1];return[0,JRt(r,n),n]},e))),t=n,a=ELt[1];t;){var u=t[1];t=t[2],a=ELt[2].call(null,u[1],u[2],a)}var f=aV(ELt[9].call(null,a)),i=dLt(r,0,ORt([0,$Rt(s1(function(r,e){return VC(r,e)},H0(function(e){return JRt(r,e[1])},e))),0]));return function(r){var n=YQt(r,1,"obj"),t=n[2],u=n[1],v=FOt(t,jHt(r)),c=FOt(POt(function(e){var n=e[2],u=lHt(0,rV(ILt,ELt[17].call(null,e[1],a)));return FOt(t,FOt(uz(n,r),u))},e),v),A=FOt(u,FOt(t,FOt(i,FOt(lHt(0,DLt),c))));return FOt(oHt(r,rV(ILt,f),0),A)}}function TLt(r,e){return NLt(r,H0(function(r){var e=r[2];return[0,r[1],function(r){return uz(e,0)}]},e))(r)}function FLt(r,e){return lCt(0,r,uz(H6(nWe),e),aWe,tWe,function(r,n,t){var a=LOt(n),u=rCt(r,eWe),f=u[2],i=u[1],v=MOt(0),c=FOt(a,MOt([3,[0,O9n,1]])),A=FOt(i,FOt(n,FOt(QQt(0,LJ),c))),o=FOt(f,FOt(QQt(0,LJ),A)),s=pQt(FOt(n,MOt(4)),o),b=FOt(t,FOt(MQt(0),s)),l=FOt(a,FOt(QOt(FOt(f,FOt(BRt[3],b))),v)),B=FOt(i,FOt(n,FOt(QQt(0,cV(LJ,rV(ILt,aV(e)))),l))),j=FOt(QQt(0,cV(LJ,aV(e))),B),k=FOt(pLt(),j),p=FOt(a,FOt(n,FOt(bHt(0,DLt),k)));return FOt(n,FOt(yCt(WJ),p))})}function MLt(r,e,n){var t=cAt(UAt(n,yAt([0,n,0],e)[2])),a=H0(function(r){return r[2][1]},s1(function(r,e){var n=e[1],t=r[1];return EV(t,itn)&&SH(n,vtn)?1:SH(t,ctn)&&EV(n,Atn)?-1:VC(t,n)},H0(function(e){return[0,JRt(r,e[1]),e]},yAt([0,n,0],e)[2]))),u=Srt(n)(a);if(!u)throw gQ([0,xz,XZe],1);var f=u[1],i=t?lCt(1,r,uz(H6(JZe),f),rWe,YZe,function(r,e,n){var t=QQt(0,NC(16,0,0)),a=FOt(yCt(WJ),t),u=FOt(BRt[5],a);return FOt(e,FOt(n,FOt(FLt(r,f),u)))}):FLt(r,f);return FOt($Qt(JRt(r,n)),i)}function PLt(r,e){var n=BRt[5],t=FLt(r,0);return FOt(FOt($Qt(JRt(r,e)),t),n)}function ULt(r,e,n){var t=BRt[5];return FOt(MLt(r,e,n),t)}function GLt(r){return uz(lQt(r),SZe)}function $Lt(r){return uz(lQt(r),LZe)}function KLt(r){return TQt(r),uz(lQt(r),HZe)}function OLt(r){return TQt(r),uz(lQt(r),CZe)}function RLt(r){return TQt(r),uz(lQt(r),QZe)}function QLt(r){return TQt(r),uz(lQt(r),RZe)}function CLt(r){return TQt(r),uz(lQt(r),OZe)}function HLt(r){return TQt(r),uz(lQt(r),KZe)}function VLt(r){return TQt(r),uz(lQt(r),$Ze)}function LLt(r){return TQt(r),uz(lQt(r),GZe)}function zLt(r){return TQt(r),uz(lQt(r),UZe)}function SLt(r){return TQt(r),uz(lQt(r),PZe)}function ZLt(r){return TQt(r),uz(lQt(r),MZe)}function WLt(r){return TQt(r),uz(lQt(r),FZe)}function XLt(r){return TQt(r),uz(lQt(r),TZe)}function JLt(r){return TQt(r),uz(lQt(r),NZe)}function YLt(r){return uz(lQt(r),IZe)}function rzt(r){return uz(lQt(r),dZe)}function ezt(r,e){switch(e){case 1:throw gQ([0,xz,fZe],1);case 0:var n=uZe;break;case 2:n=iZe;break;case 3:n=vZe;break;case 4:n=cZe;break;default:n=AZe}return lCt(1,r,n,sZe,oZe,function(r,n,t){switch(e){case 0:var a=MQt(0);break;case 1:throw gQ([0,xz,nZe],1);case 2:a=MQt(2);break;case 3:a=MQt(4);break;case 4:a=MQt(6);break;default:a=MQt(8)}var u=FOt($Qt(tZe),a),f=FOt(uz(lQt(r),aZe),u),i=FOt(t,FOt(yCt(WJ),f));return FOt(n,FOt(yCt(WJ),i))})}var nzt=NC(3,0,0),tzt=NC(2,0,0);function azt(r){var e=bHt(0,tzt);return FOt(yCt(WJ),e)}function uzt(r,e){var n=bHt(0,rV(e,nzt));return FOt(yCt(WJ),n)}function fzt(r){return lCt(1,r,eZe,rZe,YSe,function(r,e,n){var t=MOt(JSe),a=FOt(e,FOt(yCt(WJ),t)),u=FOt(LQt(XJ),a);return FOt(n,FOt(QQt(0,nzt),u))})}function izt(r,e,n){return pHt(r,[0,e],QY([0,$Qt(P9n(G0(n))),0],n))}function vzt(r,e,n){return mHt(4527,r,function(r){return izt(r,e,H0(function(e){return dHt(r,e)},n))})}function czt(r,e,n){var t=FOt(n,uz(lQt(r),RSe));return FOt($Qt(vHt([0,e])),t)}function Azt(r,e,n){var t=rCt(r,GSe),a=t[2],u=t[1],f=rCt(r,$Se),i=f[2],v=f[1],c=LOt(e),A=FOt(i,FOt(QQt(0,XJ),v)),o=FOt(uz(n,i),A),s=FOt(u,nCt(0,FOt(i,FOt(a,MQt(3))),o)),b=FOt(i,FOt(MOt(KSe),s)),l=FOt(LQt(XJ),b),B=FOt(v,FOt(e,FOt(bHt(0,tzt),l))),j=FOt(e,FOt(MOt(OSe),B)),k=FOt(LQt(XJ),j),p=FOt(c,FOt($Qt(nzt),k));return FOt(e,FOt(yCt(WJ),p))}function ozt(r,e){var n=rCt(r,NSe),t=n[2],a=n[1],u=rCt(r,TSe),f=u[2],i=u[1],v=rCt(r,FSe),c=v[2],A=v[1],o=FOt(f,jHt(r)),s=FOt(A,FOt(Azt(r,f,function(e){var n=FOt(c,FOt(QQt(0,ESe),A)),a=FOt(BRt[6],n),u=FOt(t,FOt($Ht(r,1,1),a)),f=FOt(c,FOt(ALt(r),u));return FOt(e,FOt(t,FOt(yCt(WJ),f)))}),o)),b=FOt(i,FOt($Qt(MSe),s)),l=FOt(i,FOt(czt(r,e,f),b));return FOt(a,FOt(bLt(r),l))}function szt(r,e){if(1===e)var n=qSe;else{if(e)throw gQ([0,xz,wSe],1);n=gSe}return bCt(0,r,n,DSe,ISe,function(r,n){var t=rCt(r,xSe),a=t[2],u=t[1],f=rCt(r,ySe),i=f[2],v=f[1],c=FOt(i,jHt(r)),A=FOt(v,FOt(a,FOt(tCt(r,function(e){var t=BRt[6],a=FOt(bVt(0,3),t),u=FOt(nVt(3),a),f=FOt(MOt(_Se),u),v=FOt(e,FOt(MOt(hSe),f)),c=FOt(n,FOt(pLt(),v));return FOt(i,FOt(e,FOt(fzt(r),c)))}),c))),o=FOt(u,FOt(czt(r,e,a),A));return FOt(n,FOt(jLt(),o))})}function bzt(r,e){var n=FOt(TOt,bHt(0,rV(nzt,e)));return FOt(yCt(WJ),n)}function lzt(r,e){if(0===e)return $Qt(GRt);for(var n=0,t=e,a=uz(H6(sSe),e);0!==t;)n=[0,[0,uz(H6(oSe),t-1|0),1],n],t=t-1|0;return oCt(1,r,a,n,bSe,function(r,n){for(var t=0,a=e;;){if(0===a)return izt(r,2,t);t=[0,O0(n,a-1|0),t],a=a-1|0}})}function Bzt(r){switch(r){case 0:return Rze;case 1:return Qze;case 2:return Cze;case 3:return Hze;case 4:return Vze;case 5:return Lze;case 6:return zze;case 7:return Sze;case 8:return Zze;case 9:return Wze;case 10:return Xze;default:return Jze}}function jzt(r){var e=BRt[3];return FOt($Qt(NC(Yd,0,0)),e)}function kzt(r,e){var n=BRt[4],t=FOt($Qt(Bzt(e)),n);return FOt($Qt(NC(Yd,0,0)),t)}function pzt(r){var e=MOt(Dze),n=FOt(WQt(Bzt(11)),e),t=FOt(jzt(),n),a=FOt(WQt(Bzt(10)),t);return FOt(jzt(),a)}function mzt(r,e){return sCt(0,r,Tl+iV($M,Bzt(e)),0,function(r){var n=kzt(0,e);switch(e){case 0:var t=0;break;case 1:t=Eze;break;case 2:t=Nze;break;case 3:t=Tze;break;case 4:t=Fze;break;case 5:t=Mze;break;case 6:t=Pze;break;case 7:t=Uze;break;case 8:t=Gze;break;case 9:t=$ze;break;case 10:t=Kze;break;default:t=Oze}return FOt(ROt(rJ,function n(t){if(t){var a=t[1],u=n(t[2]),f=FOt(pQt(MOt([3,[0,O9n,1]]),TOt),u),i=FOt(WQt(Bzt(a)),f);return FOt(jzt(),i)}switch(e){case 0:var v=Yze;break;case 1:v=rSe;break;case 2:v=eSe;break;case 3:v=nSe;break;case 4:v=tSe;break;case 5:v=aSe;break;case 6:v=uSe;break;case 7:v=fSe;break;case 8:v=iSe;break;case 9:v=vSe;break;case 10:v="InStabilization";break;default:v="InDestabilization"}var c=hQt(r,IO+v),A=pQt(hQt(r,"Messages are blocked during stabilization"),c);return FOt(pzt(),A)}(t)),n)})}function dzt(r,e){var n=WQt(Bzt(e));return FOt(jzt(),n)}function _zt(r){return MOt([11,[0,O9n,aQt(r,hze)]])}function hzt(r){return MOt([12,[0,O9n,aQt(r,_ze)]])}function xzt(r){return MOt([12,[0,O9n,aQt(r,mze)]])}function yzt(r){return Hrt(r,1)}function wzt(r,e){return bQt(r)(IHe,e)}function gzt(r,e){return 1>>0?hQt(e,uz(H6(oHe),r)):wzt(e,r)}function qzt(r){var e=MOt(iHe);return FOt(gzt(vHe,r),e)}function Izt(r){return MOt([6,[0,O9n,AQt(r,tHe)]])}function Dzt(r){var e=r[1];if(!e)return MOt(0);if(3<=e){var n=MOt(0);return FOt(Izt(r),n)}var t=MOt(0);return FOt(lCt(0,r,"ic_trap",YCe,0,function(r,e,n){return FOt(e,FOt(n,wzt(r,JCe)))}),t)}function Ezt(r){var e=MOt([6,[0,O9n,AQt(r,ICe)]]),n=pQt(FOt(mzt(r,8),e),TOt),t=FOt(MOt([11,[0,O9n,aQt(r,pze)]]),n);return FOt(MOt([6,[0,O9n,AQt(r,JJ)]]),t)}function Nzt(r){return MOt([6,[0,O9n,AQt(r,YJ)]])}function Tzt(r){return 1>>0?hQt(r,bCe):sCt(1,r,BCe,lCe,function(r){return wLt(r,3,function(r){return wzt(r,ACe)},function(r){return wzt(r,oCe)},function(r){return $Qt(sCe)})})}function Fzt(r){return 1>>0?hQt(r,sQe):wLt(r,0,function(r){return wzt(r,cQe)},function(r){return wzt(r,AQe)},function(r){return $Qt(oQe)})}function Mzt(r){return sCt(1,r,XRe,WRe,function(r){return wLt(r,1,function(r){return wzt(r,zRe)},function(r){return wzt(r,SRe)},function(r){return $Qt(ZRe)})})}function Pzt(r){return lCt(1,r,HRe,CRe,0,function(r,e,n){var t=wzt(r,RRe);return FOt(e,FOt(n,FOt(wzt(r,QRe),t)))})}function Uzt(r){var e=Pzt(r);return FOt(hLt(r,0,ORe),e)}function Gzt(r,e){var n=lCt(1,r,KRe,$Re,GRe,function(r,e,n){return izt(r,3,[0,e,[0,n,0]])});return FOt(TOt,FOt(dLt(r,1,e),n))}function $zt(r){var e=rCt(r,ERe),n=e[2],t=e[1],a=rCt(r,NRe),u=a[2],f=a[1],i=$Qt(TRe),v=mQt(1,FOt(n,MCt(r,FRe,function(e){return FOt(u,MCt(r,DRe,function(t){var a=WQt(yRe),f=MOt(C6e),i=FOt(e,FOt(t,FOt(n,FOt(FOt(uz(lQt(r),H6e),f),a)))),v=FOt(n,FOt(wzt(r,wRe),i)),c=FOt(e,FOt($Qt(gRe),v)),A=FOt(u,FOt(wzt(r,qRe),c));return FOt(t,FOt($Qt(IRe),A))}))})),i),c=FOt(f,FOt(n,FOt(u,FOt(MQt(0),v)))),A=FOt(t,FOt(wzt(r,MRe),c));return FOt(wzt(r,PRe),A)}function Kzt(r){var e=yQt(r,jRe),n=FOt(MOt(kRe),e),t=rCt(r,dRe),a=t[2],u=FOt(t[1],FOt(a,MCt(r,_Re,function(e){var n=FOt(e,FOt(a,qzt(r))),t=FOt(a,FOt(wzt(r,pRe),n));return FOt(e,FOt($Qt(mRe),t))}))),f=FOt(FOt(wzt(r,hRe),u),n);return FOt($zt(r),f)}function Ozt(r){return bCt(1,r,WOe,ZOe,SOe,function(r,e){var n=rCt(r,COe),t=n[2],a=n[1],u=WVt(MJ,CHt,KVt,r),f=FOt(eLt(r),u),i=FOt(nVt(5),f),v=FOt($Qt(HOe),i),c=FOt(ALt(r),v),A=mQt(1,t,FOt(t,FOt(e,FOt(MOt(VOe),c)))),o=FOt(PQt(0),A),s=FOt(a,FOt(e,FOt(MOt(LOe),o))),b=FOt(ALt(r),s);return FOt(e,FOt(MOt(zOe),b))})}function Rzt(r){var e=rCt(r,OOe),n=e[2],t=e[1],a=FOt(n,oLt(r)),u=FOt(oLt(r),a),f=FOt(nLt(r),u),i=FOt(nVt(5),f),v=FOt(n,FOt($Qt(ROe),i)),c=FOt(yQt(r,QOe),v),A=FOt(uLt(r,0),c);return FOt(t,FOt(n,FOt(dHt(r,tLt(r,nlt(2,Ih))),A)))}function Qzt(r){return TQt(r),1>>0?bCt(0,r,mOe,pOe,kOe,function(r,e){var n=rCt(r,lOe),t=n[2],a=n[1],u=mQt(1,$Qt(BOe),t),f=FOt(MQt(0),u),i=FOt(a,FOt(t,FOt($Qt(jOe),f)));return FOt(e,FOt(MOt(10),i))}):wzt(r,dOe)}function Czt(r){return TQt(r),1>>0?sCt(0,r,sOe,oOe,function(r){return MOt(9)}):wzt(r,bOe)}function Hzt(r){return TQt(r),1>>0?BCt(0,r,cOe,vOe,0,function(r,e,n,t){return FOt(e,FOt(n,FOt(t,MOt(11))))}):wzt(r,AOe)}function Vzt(r){return TQt(r),1>>0?BCt(0,r,fOe,uOe,0,function(r,e,n,t){return FOt(e,FOt(n,FOt(t,MOt(12))))}):wzt(r,iOe)}var Lzt=NC(3,0,0),zzt=NC(4,0,0),Szt=NC(5,0,0),Zzt=NC(6,0,0);function Wzt(r){return MOt([11,[0,O9n,aQt(r,eOe)]])}function Xzt(r){return MOt([12,[0,O9n,aQt(r,rOe)]])}function Jzt(r){return MOt([11,[0,O9n,aQt(r,YKe)]])}function Yzt(r){return MOt([12,[0,O9n,aQt(r,JKe)]])}function rSt(r){var e=xQt(r,SKe),n=FOt(MQt(9),e),t=FOt(MOt(ZKe),n),a=FOt($Qt(NC(16,0,0)),t);return FOt(Wzt(r),a)}function eSt(r){return lCt(0,r,zKe,LKe,0,function(r,e,n){var t=xQt(r,RKe),a=FOt(MQt(5),t),u=FOt(MOt(QKe),a),f=FOt($Qt(NC(16,0,0)),u),i=FOt(Wzt(r),f),v=FOt(e,FOt(n,FOt(MOt(CKe),i))),c=FOt(xQt(r,HKe),v),A=FOt(e,FOt(MQt(3),c)),o=FOt(n,FOt(MOt(VKe),A)),s=FOt($Qt(Nz),o),b=pQt(FOt(e,rSt(r)),s);return FOt(n,FOt(RQt,FOt(MQt(7),b)))})}function nSt(r,e,n,t){if(!e)return TOt;if(OH(t,OKe))var a=rSt(r);else{var u=eSt(r);a=FOt($Qt(t),u)}return FOt(n,a)}function tSt(r,e,n,t,a,u){var f=[0,t,0],i=e?$Ke:"";return bCt(1,r,fz(H6(KKe),i,n),GKe,f,function(r,n){var t=nV(rV(a,PKe),MKe),f=rCt(r,UKe),i=f[2],v=f[1],c=TCt(r,t),A=FOt(i,u),o=FOt(Hzt(r),A),s=FOt(v,FOt(FOt(i,FOt(n,FOt($Qt(a),o))),c)),b=FOt(NCt(r,t),s);return FOt(nSt(r,e,n,a),b)})}function aSt(r,e,n,t,a,u){var f=[0,NKe,[0,EKe,t]],i=e?TKe:"";return lCt(1,r,fz(H6(FKe),i,n),f,0,function(r,n,t){var f=nV(rV(a,IKe),qKe),i=rCt(r,DKe),v=i[2],c=i[1],A=TCt(r,f),o=Vzt(r),s=FOt(c,FOt(FOt(v,FOt(t,FOt(u,FOt(n,FOt(v,FOt($Qt(a),o)))))),A)),b=FOt(NCt(r,f),s);return FOt(nSt(r,e,n,a),b)})}var uSt=MOt(aan),fSt=MOt(uan);function iSt(r){return aSt(r,0,gKe,0,wKe,fSt)}function vSt(r){return tSt(r,0,hKe,0,_Ke,uSt)}function cSt(r){return bCt(0,r,pKe,kKe,jKe,function(r,e){var n=rCt(r,sKe),t=n[2],a=n[1],u=rCt(r,bKe),f=u[2],i=u[1],v=mQt(1,FOt(f,Qzt(r)),t),c=FOt(MQt(4),v),A=FOt(i,FOt(f,FOt($Qt(lKe),c))),o=FOt(a,FOt(e,FOt(t,FOt(MOt(BKe),A))));return FOt(Czt(r),o)})}function ASt(r){return bCt(0,r,tKe,nKe,eKe,function(r,e){var n=rCt(r,S$e),t=n[2],a=n[1],u=rCt(r,Z$e),f=u[2],i=u[1],v=rCt(r,W$e),c=v[2],A=v[1],o=mQt(1,c,FOt(f,FOt(Xzt(r),t))),s=FOt(MQt(2),o),b=FOt(A,FOt(c,FOt($Qt(X$e),s))),l=FOt(i,FOt(f,FOt(cSt(r),b))),B=FOt(t,FOt(e,FOt(MOt(J$e),l))),j=MOt(4),k=mQt(1,FOt($Qt(Y$e),j),B),p=FOt(MQt(5),k),m=FOt($Qt(NC(Xf,0,0)),p),d=FOt(a,FOt(t,FOt(e,FOt(MOt(rKe),m))));return FOt(Wzt(r),d)})}function oSt(r,e,n,t,a){var u=FOt(e,uz(a,r)),f=FOt(e,uz(t,r)),i=dQt(r,n,FOt(uz(lQt(r),gJ),f),u),v=FOt(MQt(0),i),c=FOt($Qt(Zzt),v);return FOt(Jzt(r),c)}function sSt(r){return uz(lQt(r),xGe)}function bSt(r){return uz(lQt(r),hGe)}function lSt(r){return 1===r?0:[0,r]}function BSt(r){var e=Xct(r);if("number"!=typeof e)switch(e[0]){case 2:var n=e[1];switch(n){case 1:case 2:case 7:case 15:case 16:case 18:return 0;case 12:return 1;case 13:return 2;case 0:case 17:case 19:break;default:return[1,n]}break;case 3:if(1===e[1])return 0;break;case 8:if(e[1])return 0}return WOt(cUe,qUt(e),0)}function jSt(r,e){if("number"==typeof e)switch(e){case 0:return uUe;case 1:return fUe;case 2:return iUe;default:return 0}switch(e[0]){case 0:return Hrt(e[1],1);case 1:return vUe;default:return 0}}function kSt(r){if("number"==typeof r)switch(r){case 0:return JPe;case 1:return YPe;case 2:return rUe;default:return eUe}switch(r[0]){case 0:var e=r[1];return uz(H6(nUe),e);case 1:return SOt(r[1],tUe);default:return aUe}}function pSt(r,e){if(LRt(r,e))return r;r:{e:{n:{if("number"==typeof r){if(3===r)return e}else switch(r[0]){case 0:var n=r[1];if("number"!=typeof e)switch(e[0]){case 0:if(n===e[1])return r;break r;case 2:break e;default:break r}switch(e){case 3:break;case 0:break e;default:break r}break;case 2:if("number"!=typeof e){if(2===e[0])return 0;break n}if(3!==e)break n}if("number"==typeof e&&3<=e)return r}if("number"!=typeof r&&2===r[0])return e}if("number"==typeof e){if(0===e)return 0}else if(2===e[0])return r;if("number"==typeof r&&!r)return 0}var t=kSt(e),a=kSt(r);return fz(R6(HY,XPe),a,t),r}function mSt(r,e){r:{if("number"==typeof e){if(3!==e)break r}else switch(e[0]){case 0:return GOt(e[1],function(r){return MOt(2)});case 1:break r}return TOt}return MOt(2)}function dSt(r,e){return IQt(r,e,function(n){return function(r,e){if("number"==typeof e)return[0,GRt];switch(e[0]){case 0:var n=$9n(gQt(r,uz(e[2],0)));return mHt(2465,r,function(r){var e=[0,$Qt(q2e),0];return pHt(r,2,[0,$Qt(n),e])});case 1:throw gQ([0,xz,CPe],1);case 2:return mHt(4172,r,NLt(r,H0(function(r){var e=r[2];return[0,r[1],function(r){return dHt(r,e)}]},H0(function(e){return[0,e[1],dSt(r,e[2])]},e[1]))));case 3:return vzt(r,0,H0(function(e){return dSt(r,e)},e[1]));case 4:return vzt(r,2,H0(function(e){return dSt(r,e)},e[1]));case 5:var t=e[1],a=t[1],u=dSt(r,t[2]);return mHt(6653,r,function(r){return MHt(r,a,dHt(r,u))});case 6:var f=dSt(r,e[1]);if(0!==f[0])return mHt(2286,r,function(r){return IHt(r,0,dHt(r,f))});var i=f[1];return OH(i,zJ)?mHt(2283,r,function(r){return gHt(r,cHt)}):[0,i];default:var v=e[1];if("number"==typeof v)return[0,zJ];switch(v[0]){case 0:return[0,v[1]];case 1:return tLt(r,v[1]);case 2:return[0,CCt(v[1])];case 3:var c=v[2],A=v[1];return nHt(A,c)?[0,tHt(A,c)]:mHt(2510,r,function(r){return OHt(r,A,$Qt(c))});case 4:var o=v[1];return mHt(2871,r,function(r){var e=jVt(r);return FOt(BVt(o),e)});case 5:var s=v[1],b=kRt(13);return[0,jV(kV(aV(d9n(s)),32),b)];case 6:return mLt(r,1,v[1]);default:return mLt(r,0,v[1])}}}(r,e)})}function _St(r,e){return dHt(r,dSt(r,e))}function hSt(r,e,n){if(LRt(e,n))return TOt;if("number"==typeof e)switch(e){case 0:if("number"==typeof n)switch(n){case 1:return kVt();case 2:var t=MOt(HPe),a=FOt(MOt(VPe),t);return FOt(fHt(0,0,13),a)}else switch(n[0]){case 0:var u=n[1];if(0===u)return MOt(2);var f=uz(H6(cSe),u);return bCt(1,r,f,ASe,Hrt(u,1),function(r,e){return GOt(u,function(r){return FOt(e,bzt(0,aV(r)))})});case 1:var i=n[1];switch(i){case 6:case 11:return QHt(r,i);case 3:case 4:case 5:case 8:case 9:case 10:case 14:return lVt(0,i)}}break;case 1:if("number"==typeof n&&!n)return jVt(r);break;case 2:if("number"==typeof n&&!n){var v=uHt(0,13),c=FOt(MOt(LPe),v);return FOt(MOt(zPe),c)}break;default:return"number"==typeof n&&3<=n?TOt:MOt(0)}else r:switch(e[0]){case 0:if("number"==typeof n&&!n)return lzt(r,e[1]);break;case 1:var A=e[1];switch(A){case 6:case 11:if("number"==typeof n&&!n)return RHt(r,A);break;case 3:case 4:case 5:case 8:case 9:case 10:case 14:if("number"==typeof n&&!n)return bVt(0,A)}break;default:var o=e[1];if("number"==typeof n)switch(n){case 0:return _St(r,o);case 3:break r}else switch(n[0]){case 0:if(0===n[1])return TOt;break;case 1:break;default:break r}if("number"!=typeof o)switch(o[0]){case 4:if("number"!=typeof n&&0===n[0]){var s=o[1];if(n[1]===G0(s))return POt(function(e){return _St(r,e)},s);throw gQ([0,xz,SPe],1)}break;case 7:var b=o[1];if("number"!=typeof b)switch(b[0]){case 0:if("number"!=typeof n&&1===n[0]){var l=b[1],B=lVt(0,n[1]);return FOt($Qt(l),B)}break;case 3:if("number"!=typeof n&&1===n[0]){var j=b[2];if(b[1]===n[1])return $Qt(j)}break;case 4:if("number"==typeof n&&2>n)return BVt(b[1]);break;case 5:if("number"==typeof n&&2<=n)return MOt([16,[0,O9n,[2,b[1]]]])}}}var k=kSt(n),p=kSt(e);throw fz(R6(HY,ZPe),p,k),gQ([0,xz,WPe],1)}function xSt(r){return r[0]<2?0:1}var ySt=dut([0,z1]),wSt=[0,0,ySt[1],ySt[1]];function gSt(r){var e=r[3];return[0,1,ySt[27].call(null,function(r,e){return xSt(e[1])},r[2]),e]}function qSt(r,e){var n=ySt[18].call(null,e,r[2]);return n?[0,n[1]]:(uz(R6(HY,QPe),e),0)}function ISt(r,e){var n=qSt(r,e);return n?[0,n[1][1]]:0}function DSt(r,e,n,t){var a=YRt(r,1);rQt(r,a,n);var u=e[3],f=ySt[2].call(null,n,[0,[1,a],t],e[2]);return[0,[0,e[1],f,u],a]}function ESt(r,e,n,t){var a=r[3],u=ySt[2].call(null,e,[0,[2,n],t],r[2]);return[0,r[1],u,a]}function NSt(r,e,n,t,a,u){var f=e[3],i=ySt[2].call(null,n,[0,[0,t,a],u],e[2]);return[0,e[1],i,f]}function TSt(r,e,n,t,a){if("number"==typeof t)switch(t){case 0:var u=1;break;case 1:u=3;break;case 2:u=2;break;default:u=JOt(Ftn)}else switch(t[0]){case 0:u=JOt(Mtn);break;case 1:u=1;break;default:u=JOt(Ptn)}var f=YRt(r,u);return rQt(r,f,n),[0,NSt(0,e,n,t,f,a),f]}function FSt(r,e,n,t){for(var a=e,u=t;;){if(!u)return a;var f=u[2],i=u[1],v=i[2],c=i[1];if(uz(n,c)){var A=YRt(r,1);rQt(r,A,c);var o=a[3],s=ySt[2].call(null,c,[0,[0,0,A],v],a[2]);a=[0,a[1],s,o],u=f}else a=ESt(a,c,wHt(r),v),u=f}}function MSt(r){return r}function PSt(r){for(var e=r,n=0;;){var t=Xct(e);r:{if("number"==typeof t){if(1!==t)break r}else switch(t[0]){case 2:switch(t[1]){case 0:case 1:case 3:case 4:case 8:case 9:case 14:break;default:break r}break;case 6:var a=t[1];if(n)return 1;e=a,n=1;continue;case 7:if(t[1])break r;break;case 10:e=t[1];continue;default:break r}return 0}return 1}}function USt(r,e,n){var t=qSt(e,n);if(!t)return uz(JOt(KPe),n);var a=t[1],u=a[1];switch(u[0]){case 0:return[0,TOt,u[1],MOt([9,[0,O9n,u[2]]])];case 1:var f=u[1];if(PSt(a[2])){var i=kHt(r),v=QQt(0,NC(16,0,0)),c=FOt(QQt(0,BRt[2]),v),A=FOt(yCt(WJ),c);return[0,FOt(MOt([8,[0,O9n,f]]),A),0,i]}var o=yHt(r);return[0,MOt([8,[0,O9n,f]]),0,o];case 2:var s=u[1];if(PSt(a[2])){var b=kHt(r),l=QQt(0,NC(16,0,0)),B=FOt(QQt(0,BRt[2]),l),j=FOt(yCt(WJ),B);return[0,FOt(qCt(r,s),j),0,b]}var k=yHt(r);return[0,qCt(r,s),0,k];case 3:return uz(JOt(GPe),n);default:return uz(JOt($Pe),n)}}function GSt(r,e,n){var t=USt(r,e,n),a=t[1],u=t[3],f=FOt(hSt(r,0,t[2]),u);if(zOt(a))return f;var i=rCt(r,UPe);return FOt(i[1],FOt(a,FOt(i[2],f)))}function $St(r,e,n){var t=ISt(e,n);if(!t)throw gQ([0,xz,PPe],1);var a=t[1];switch(a[0]){case 0:return[0,a[1],MOt([8,[0,O9n,a[2]]])];case 1:var u=a[1],f=xHt();return[0,0,FOt(MOt([8,[0,O9n,u]]),f)];case 2:var i=a[1],v=xHt();return[0,0,FOt(qCt(r,i),v)];case 3:return[0,[2,a[1]],TOt];default:var c=Gzt(r,a[2]);return[0,0,FOt(Tzt(r),c)]}}function KSt(r,e,n){var t=ISt(e,n);if(t){var a=t[1];if(3===a[0]){var u=a[1];if("number"!=typeof u&&0===u[0])return FOt(OQt,MOt([6,[0,O9n,uz(u[2],0)]]))}}throw gQ([0,xz,NPe],1)}function OSt(r,e){var n=ISt(e,"@dedup");if(n){var t=n[1];if(3===t[0]){var a=t[1];if("number"!=typeof a&&0===a[0])return void(r[28][1]=[0,a[2]])}}throw gQ([0,xz,IPe],1)}function RSt(r,e){return Xd+r+Bm+Zst(e)+b_}function QSt(r){var e=LOt(r);return FOt(r,FOt(MOt(wPe),e))}function CSt(r,e,n){var t=LOt(e);return FOt(e,FOt(e,FOt(QQt(0,n),t)))}function HSt(r,e,n){var t=rCt(r,yPe),a=t[2],u=t[1],f=QSt(e);return FOt(n,FOt(u,FOt(PVt(r,a,e),f)))}function VSt(r,e,n){var t=QSt(e),a=FOt($Qt(_Pe),t),u=FOt(MOt(hPe),a);return FOt(e,FOt(n,FOt(MOt(xPe),u)))}function LSt(r,e,n){var t=FOt(RQt,QSt(e)),a=FOt(MOt(mPe),t);return FOt(e,FOt(n,FOt(MOt(dPe),a)))}function zSt(r,e,n){var t=rCt(r,pPe),a=t[2],u=t[1],f=FOt(a,QSt(e)),i=FOt(a,FOt(gCt(),f)),v=FOt(e,FOt(n,FOt(pLt(),i))),c=FOt(u,FOt(HSt(r,e,a),v));return FOt(n,FOt(jLt(),c))}function SSt(r){var e=r[26][1];if(e)return e[1];throw gQ([0,xz,APe],1)}function ZSt(r){return MOt([11,[0,O9n,aQt(r,$Me)]])}function WSt(r){return MOt([12,[0,O9n,aQt(r,GMe)]])}function XSt(r){return MOt([12,[0,O9n,aQt(r,PMe)]])}function JSt(r){return MOt([12,[0,O9n,aQt(r,FMe)]])}function YSt(r){return MOt([11,[0,O9n,aQt(r,TMe)]])}function rZt(r){return MOt([12,[0,O9n,aQt(r,NMe)]])}function eZt(r){return MOt([11,[0,O9n,aQt(r,EMe)]])}function nZt(r){return MOt([12,[0,O9n,aQt(r,DMe)]])}function tZt(r){return MOt([11,[0,O9n,aQt(r,IMe)]])}function aZt(r){return MOt([12,[0,O9n,aQt(r,qMe)]])}function uZt(r){return MOt([12,[0,O9n,aQt(r,wMe)]])}function fZt(r){return MOt([12,[0,O9n,aQt(r,xMe)]])}function iZt(r){return MOt([12,[0,O9n,aQt(r,_Me)]])}function vZt(r){return MOt([11,[0,O9n,aQt(r,oMe)]])}function cZt(r){return MOt([12,[0,O9n,aQt(r,AMe)]])}function AZt(r){return MOt([11,[0,O9n,aQt(r,cMe)]])}function oZt(r){return MOt([11,[0,O9n,aQt(r,iMe)]])}function sZt(r){return MOt([11,[0,O9n,aQt(r,uMe)]])}function bZt(r){return MOt([11,[0,O9n,aQt(r,SFe)]])}function lZt(r){return MOt([11,[0,O9n,aQt(r,LFe)]])}function BZt(r){return MOt([6,[0,O9n,AQt(r,OFe)]])}function jZt(r){return s1(function(r,e){return Drt(r[1],e[1])},H0(function(r){return[0,mft(r[1]),r]},r))}var kZt=U2(_ct);function pZt(r){return function(e){r:{if("number"!=typeof e){switch(e[0]){case 2:switch(e[1]){case 1:return hFe;case 2:return xFe;case 3:return yFe;case 4:return wFe;case 6:return gFe;case 7:return qFe;case 8:return IFe;case 9:return DFe;case 10:return EFe;case 11:return NFe;case 12:return TFe;case 13:return FFe;case 15:return MFe;case 16:return r?PFe:0;case 18:return UFe;case 19:return GFe;case 17:break r;case 0:break;default:return $Fe}break;case 7:if(e[1])break r;break;default:break r}return KFe}switch(e){case 0:return dFe;case 1:return _Fe}}return 0}}var mZt=-19;var dZt=NC(3,0,0);function _Zt(r){return sCt(1,r,LRe,VRe,function(r){var e=lzt(r,2),n=FOt(Mzt(r),e);return FOt(function(r){return sCt(0,r,aQe,tQe,function(r){var e=rCt(r,JRe),n=e[2],t=FOt(e[1],S0(function(e,t){var a=e[2],u=e[1],f=mQt(1,MHt(r,u,$Qt(GRt)),t),i=FOt(MQt(0),f);return FOt(n,FOt($Qt(a),i))},rQe,MHt(r,YRe,FOt(n,uHt(0,5))))),a=FOt(MOt(eQe),t);return FOt(wzt(r,nQe),a)})}(r),n)})}var hZt=NC(2,0,0);function xZt(r,e,n){var t=qSt(e,n);if(t){var a=t[1],u=a[1];switch(u[0]){case 0:var f=a[2],i=u[2],v=hSt(r,u[1],0);return[0,FOt(MOt([8,[0,O9n,i]]),v),function(r,e){var t=TSt(r,e,n,0,f),a=t[1],u=MOt([9,[0,O9n,t[2]]]);return[0,a,function(r){return FOt(u,r)}]}];case 1:var c=a[2];return[0,MOt([8,[0,O9n,u[1]]]),function(r,e){var t=DSt(r,e,n,c),a=t[1],u=MOt([9,[0,O9n,t[2]]]);return[0,a,function(r){return FOt(u,r)}]}]}}throw gQ([0,xz,MPe],1)}function yZt(r){return _Ht(r,function(r){var e=SSt(r),n=MOt([11,[0,O9n,aQt(r,bPe)]]);return xLt(r,0,e[1],n)})}function wZt(r){return _Ht(r,function(r){var e=SSt(r),n=MOt([11,[0,O9n,aQt(r,sPe)]]);return xLt(r,0,e[2],n)})}function gZt(r,e,n){var t=[0,eJ],a=[0,kZt[1]];L0(function r(n){r:{var u=n;e:for(;;){var f=Xct(u);if(0!==pZt(e)(f))return 0;if(kZt[32].call(null,f,a[1]))return 0;var i=YOt(t[1],f),v=i[1];if(t[1]=i[2],a[1]=kZt[2].call(null,f,v,a[1]),"number"!=typeof f)switch(f[0]){case 2:if(16===f[1])return 0;break;case 3:break r;case 4:break e;case 5:var c=f[1];if("number"==typeof c){u=c;continue}if(10===c[0]){u=[5,c[1]];continue}u=c;continue;case 7:return L0(r,f[1]);case 8:var A=f[5];return L0(r,f[4]),L0(r,A);case 6:case 10:case 12:u=f[1];continue}var o=yst(f);throw uz(R6(HY,cFe),o),gQ([0,xz,AFe],1)}for(var s=f[1];;){if(!s)return 0;var b=s[2];r(s[1][2]),s=b}}for(var l=f[2];;){if(!l)return 0;var B=l[2];r(l[1][2]),l=B}},n);var u=a[1],f=rRt(t[1]),i=z2(16);function v(r){return J2(i,T0(r&LK))}function c(r){for(var e=r;;){var n=e&lj;if(DV(0,e)&&EV(e,Ih))return v(n);v(n|Ih),e=e>>>7|0}}function A(r){if(0<=r)return c(r);throw gQ([0,xz,pFe],1)}function o(r){for(var e=r;;){var n=e&lj;if(DV(-64,e)&&EV(e,64))return v(n);v(n|Ih),e>>=7}}function s(r){var n=Xct(r),t=pZt(e)(n);if(t)return o(0|-t[1]);var a=Xct(n);return o(kZt[17].call(null,a,u))}function b(r){r:{e:{n:{t:{var n=r;a:for(;;){if("number"==typeof n){if(1===n)throw gQ([0,xz,oFe],1);break r}switch(n[0]){case 2:var t=n[1];if(16!==t){if(19>t)throw gQ([0,xz,sFe],1);return o(1),s(n)}if(0!==e)throw gQ([0,xz,bFe],1);n=lFe;break;case 3:break e;case 4:break n;case 5:var a=n[1];if("number"!=typeof a&&10===a[0]){var u=a[1];return o(1),s([5,u])}return o(mZt),s(a);case 6:var f=n[1];return o(-18),s(f);case 7:break t;case 8:break a;case 10:var b=n[1];return o(1),s(b);case 12:var l=n[1];return o(-131),s(l);default:break r}}var B=n[5],j=n[4],k=n[1],p=n[2];if(0===k)throw gQ([0,xz,BFe],1);if(o(-22),A(G0(j)),L0(s,j),A(G0(B)),L0(s,B),!p)return A(1),v(2);if(k)switch(k[1]){case 0:return A(1),v(1);case 1:return A(0);default:return A(1),v(3)}throw gQ([0,xz,jFe],1)}var m=n[1];o(e?-130:-20),A(G0(m));for(var d=m,_=0;;){if(!d)return;var h=d[2],x=d[1];A(_),s(x),d=h,_=_+1|0}}var y=n[1];o(-21),A(G0(y));for(var w=jZt(y);;){if(!w)return;var g=w[1],q=w[2],I=g[2];c(g[1]),s(I[2]),w=q}}switch(n[1]){case 1:var D=n[2];o(-23),A(G0(D));for(var E=D;;){if(!E)return;var N=E[1],T=E[2];A(AV(N[1])),r3(i,N[1]),s(N[2]),E=T}break;case 0:case 4:var F=n[2];o(-20),A(G0(F));for(var M=jZt(F);;){if(!M)return;var P=M[1],U=M[2],G=P[2];c(P[1]),s(G[2]),M=U}}}throw gQ([0,xz,kFe],1)}r3(i,mFe),A(G0(f));var l=H0(function(r){var e=i[2];return b(r),e},f);A(G0(n)),L0(s,n);var B=H0(function(r){var n=Xct(r),t=pZt(e)(n);if(t)return 0|-t[1];var a=Xct(n);return kZt[17].call(null,a,u)},n);return[0,S2(i),l,B]}function qZt(r,e){var n=Xct(e);return bCt(0,r,pR+Sst(n)+b_,UDe,PDe,function(r,e){var t=rCt(r,bDe),a=t[2],u=t[1],f=rCt(r,lDe),i=f[2],v=f[1];function c(r){return FOt(a,FOt(r,FOt(MOt(sDe),u)))}function A(r,e){var n=rCt(r,oDe);return FOt(e,FOt(n[1],c(MVt(TVt,n[2]))))}function o(r,e){var n=rCt(r,"inc"),t=n[1],a=FOt(v,FOt(t,c(n[2]))),u=FOt(i,FOt(MOt(ADe),a));return FOt(qZt(r,e),u)}var s=rCt(r,BDe),b=s[2],l=s[1],B=mQt(1,$Qt(vHt(jDe)),b),j=FOt(MOt(kDe),B),k=FOt(MQt(9),j),p=FOt(b,FOt($Qt(vHt(12)),k)),m=FOt(MOt(pDe),p),d=FOt(MQt(1),m),_=FOt(b,FOt($Qt(vHt(14)),d)),h=FOt(MQt(1),_),x=FOt(l,FOt(b,FOt($Qt(vHt(13)),h)));function y(n){var t=rCt(r,eDe),a=t[2],u=t[1],f=uz(n,0),i=wCt(ZJ),v=FOt($Qt(vHt(13)),i),A=FOt(e,FOt(FOt(yCt(WJ),v),f)),o=FOt(c($Qt(nDe)),A),s=pQt(c($Qt(tDe)),o),b=FOt(a,FOt(WQt(vHt(13)),s)),l=FOt(yQt(r,aDe),b),B=FOt(MOt(uDe),l),j=FOt(a,FOt(WQt(vHt(10)),B)),k=FOt(MOt(fDe),j),p=FOt(a,FOt(WQt(vHt(iDe)),k)),m=FOt(MOt(vDe),p),d=FOt(a,FOt(WQt(vHt(1)),m)),_=FOt(a,FOt(WQt(vHt(13)),d)),h=FOt(MOt(cDe),_),y=FOt(a,FOt(WQt(vHt(11)),h)),w=FOt(xQt(r,"object_size/Mut: Unexpected tag WeakRef"),y),g=FOt(x,FOt(u,FOt(a,FOt(WQt(vHt(11)),w))));return FOt(e,FOt(sHt(),g))}var w=FOt(a,i),g=FOt(yQt(r,mDe),w),q=FOt(PQt(0),g);r:{e:{var I=FOt(a,FOt(QQt(CQt,dDe),q));if("number"!=typeof n){switch(n[0]){case 2:switch(n[1]){case 1:var D=c(RQt);break r;case 2:var E=rCt(r,FJ),N=E[2],T=E[1],F=FOt(N,uz(lQt(r),XXe)),M=rCt(r,pJe),P=FOt(M[1],MVt(TVt,M[2]));D=c(FOt(e,FOt(T,FOt(N,JCt(r,[0,1,0],FOt(N,FOt(fHt(0,0,7),P)),F)))));break r;case 7:var U=rCt(r,FJ),G=U[2],$=U[1],K=FOt(G,uz(lQt(r),WXe)),O=rCt(r,kJe),R=FOt(O[1],MVt(FVt,O[2]));D=c(FOt(e,FOt($,FOt(G,JCt(r,[0,1,0],FOt(G,FOt(fHt(0,0,7),R)),K)))));break r;case 15:var Q=rCt(r,hDe),C=Q[2],H=Q[1],V=c(C),L=FOt(H,FOt(A(r,C),V));D=FOt(e,FOt(YLt(r),L));break r;case 16:var z=rCt(r,xDe),S=z[2],Z=z[1],W=c(S),X=FOt(Z,FOt(A(r,S),W));D=FOt(e,FOt(jLt(),X));break r;case 19:D=y(function(n){var t=o(r,iS),a=FOt(e,FOt($Lt(r),t));return FOt(c($Qt(rDe)),a)});break r;case 17:break e;case 18:break;case 0:D=TOt;break r;case 3:case 8:D=c(RQt);break r;case 4:case 9:D=c($Qt(yDe));break r;case 6:case 11:case 12:D=c($Qt(gDe));break r;default:D=c($Qt(wDe));break r}break;case 3:switch(n[1]){case 1:break;case 0:case 4:D=POt(function(n){var t=n[2],a=o(r,t[2]);return FOt(e,FOt(PLt(r,t[1]),a))},jZt(n[2]));break r;default:break e}break;case 4:var J=n[1],Y=hQt(r,qDe);D=S0(function(n,t){var a=n[2],u=a[1],f=n[1],i=o(r,a[2]),v=FOt(e,FOt(PHt(),i)),c=pQt(FOt(A(r,$Qt(aV(f))),v),t);return FOt(e,FOt(UHt(r,u),c))},V0(function(r,e){return[0,r,e[2]]},jZt(J)),Y);break r;case 5:var rr=n[1];if("number"!=typeof rr&&10===rr[0]){var er=rr[1];D=y(function(n){return FOt(e,o(r,[5,er]))});break r}var nr=tCt(r,function(n){var t=o(r,rr),a=FOt(BRt[5],t);return FOt(e,FOt(n,FOt(fzt(r),a)))}),tr=FOt(e,FOt(azt(),nr));D=FOt(A(r,FOt(e,azt())),tr);break r;case 6:var ar=n[1],ur=o(r,ar),fr=pQt(FOt(e,FOt(EHt(r,ar),ur)),TOt),ir=FOt(e,FOt(AHt(),fr));D=FOt(c(RQt),ir);break r;case 7:var vr=n[1];if(vr){D=UOt(function(n,t){var a=o(r,t);return FOt(e,FOt(bzt(0,aV(n)),a))},vr);break r}D=TOt;break r;case 8:var cr=o(r,IDe),Ar=FOt(e,FOt(uzt(0,DDe),cr)),or=FOt(o(r,EDe),Ar),sr=FOt(e,FOt(uzt(0,NDe),or));D=FOt(c(RQt),sr);break r;case 10:var br=n[1];D=y(function(n){var t=o(r,br);return FOt(e,FOt(xHt(),t))});break r;case 12:var lr=n[1],Br=y(function(n){var t=o(r,lr);return FOt(e,FOt(NHt(),t))});D=FOt(hQt(r,"buffer_size: Weak"),Br);break r;default:break e}var jr=FOt(e,o(r,iS));D=FOt(c(RQt),jr);break r}switch(n){case 1:D=hQt(r,_De);break r;case 2:break;default:D=TOt;break r}}D=WOt(TDe,qUt(n),TOt)}var kr=FOt(v,FOt(D,I)),pr=FOt(u,FOt($Qt(FDe),kr));return FOt($Qt(MDe),pr)})}function IZt(r,e){var n=Xct(e);return BCt(0,r,RSt(BEe,[0,n,0]),kEe,jEe,function(r,e,t,a){var u=LOt(a);function f(r,e){var n=FOt(u,LOt(t));return FOt(t,FOt(a,FOt(IZt(r,e),n)))}function i(n){var a=rCt(r,KDe),u=a[2],f=a[1],i=rCt(r,ODe),v=i[2],c=i[1],A=VSt(0,t,v),o=FOt(yQt(r,"64-bit offsets not yet supported during serialization"),A),s=FOt(MQt(8),o),b=FOt(v,FOt($Qt(RDe),s)),l=FOt(yQt(r,QDe),b),B=FOt(MQt(2),l),j=FOt(c,FOt(v,FOt($Qt(CDe),B))),k=FOt(u,FOt(t,FOt(MOt(HDe),j))),p=FOt(xQt(r,VDe),k),m=FOt(u,FOt(WQt(vHt(10)),p)),d=FOt(xQt(r,LDe),m),_=FOt(u,FOt(WQt(vHt(zDe)),d)),h=FOt(xQt(r,SDe),_),x=FOt(u,FOt(WQt(vHt(1)),h)),y=FOt(xQt(r,"unvisited mutable data in serialize_go (WeakRef)"),x),w=FOt(u,FOt(WQt(vHt(11)),y)),g=FOt(LSt(0,t,RQt),w),q=uz(n,0),I=FOt(VSt(0,t,$Qt(ZDe)),q),D=FOt(VSt(0,t,$Qt(WDe)),I),E=FOt(t,FOt(lHt(0,ZJ),D)),N=FOt(e,FOt(yCt(WJ),E)),T=pQt(FOt(LSt(0,t,$Qt(XDe)),N),g),F=FOt(f,FOt(u,FOt(WQt(vHt(13)),T)));return FOt(e,FOt(sHt(),F))}r:{e:{var v=FOt(t,a);if("number"!=typeof n){switch(n[0]){case 2:var c=n[1];switch(c){case 1:var A=LSt(0,t,e);break r;case 2:var o=QSt(t),s=rCt(r,_Je),b=s[2],l=s[1],B=rCt(r,hJe),j=B[2],k=B[1],p=rCt(r,FJ),m=p[2],d=p[1],_=rCt(r,LXe),h=_[2],x=_[1],y=rCt(r,zXe),w=y[2],g=y[1],q=FOt(w,uz(lQt(r),SXe)),I=FOt(j,FOt(b,FOt(g,FOt(x,FOt(w,FOt(h,FOt(uz(lQt(r),ZXe),q))))))),D=FOt(m,FOt(MOt(2),I)),E=FOt(l,PVt(r,b,j));A=FOt(t,FOt(e,FOt(FOt(l,FOt(k,FOt(b,FOt(d,FOt(m,JCt(r,[0,1,0],FOt(m,FOt(fHt(0,0,7),E)),D)))))),o)));break r;case 7:var N=QSt(t),T=rCt(r,mJe),F=T[2],M=T[1],P=rCt(r,dJe),U=P[2],G=P[1],$=rCt(r,FJ),K=$[2],O=$[1],R=rCt(r,QXe),Q=R[2],C=R[1],H=rCt(r,CXe),V=H[2],L=H[1],z=FOt(V,uz(lQt(r),HXe)),S=FOt(U,FOt(F,FOt(L,FOt(C,FOt(V,FOt(Q,FOt(uz(lQt(r),VXe),z))))))),Z=FOt(K,FOt(MOt(2),S)),W=MVt(FVt,F),X=FOt(M,FOt(F,FOt(U,FOt(uz(lQt(r),HYe),W))));A=FOt(t,FOt(e,FOt(FOt(M,FOt(G,FOt(F,FOt(O,FOt(K,JCt(r,[0,1,0],FOt(K,FOt(fHt(0,0,7),X)),Z)))))),N)));break r;case 12:var J=MOt(YDe),Y=FOt(e,FOt(kVt(),J));A=FOt(CSt(0,t,rEe),Y);break r;case 13:var rr=MOt(eEe),er=FOt(e,FOt(hSt(r,0,2),rr));A=FOt(CSt(0,t,nEe),er);break r;case 14:A=VSt(0,t,FOt(e,vVt()));break r;case 15:var nr=rCt(r,kPe),tr=nr[2],ar=nr[1],ur=FOt(tr,QSt(t)),fr=FOt(e,FOt(t,FOt(uz(lQt(r),qZe),ur))),ir=FOt(ar,FOt(HSt(r,t,tr),fr));A=FOt(e,FOt(YLt(r),ir));break r;case 16:A=zSt(r,t,e);break r;case 19:A=i(function(n){var a=zSt(r,t,FOt(e,$Lt(r))),u=FOt(VSt(0,t,FOt(e,uz(lQt(r),zZe))),a),f=FOt(MOt(GDe),u),i=FOt(e,FOt(GLt(r),f));return FOt(CSt(0,t,$De),i)});break r;case 17:break e;case 18:break;case 0:A=TOt;break r;case 6:case 11:var vr=MOt(tEe),cr=FOt(e,FOt(QHt(r,c),vr));A=FOt(CSt(0,t,aEe),cr);break r;case 5:case 10:A=VSt(0,t,FOt(e,eVt(c)));break r;case 4:case 9:var Ar=MOt(uEe),or=FOt(MOt(fEe),Ar),sr=FOt(e,FOt(eVt(c),or));A=FOt(CSt(0,t,iEe),sr);break r;default:A=LSt(0,t,FOt(e,eVt(c)));break r}break;case 3:switch(n[1]){case 1:break;case 0:case 4:A=POt(function(n){var t=n[2],a=f(r,t[2]);return FOt(e,FOt(PLt(r,t[1]),a))},jZt(n[2]));break r;default:break e}break;case 4:var br=n[1],lr=hQt(r,vEe);A=S0(function(n,a){var u=n[2],i=u[1],v=n[1],c=f(r,u[2]),A=FOt(e,FOt(PHt(),c)),o=pQt(FOt(HSt(r,t,$Qt(aV(v))),A),a);return FOt(e,FOt(UHt(r,i),o))},V0(function(r,e){return[0,r,e[2]]},jZt(br)),lr);break r;case 5:var Br=n[1];if("number"!=typeof Br&&10===Br[0]){var jr=Br[1];A=i(function(n){return FOt(e,f(r,[5,jr]))});break r}var kr=tCt(r,function(n){var t=f(r,Br),a=FOt(BRt[5],t);return FOt(e,FOt(n,FOt(fzt(r),a)))}),pr=FOt(e,FOt(azt(),kr));A=FOt(HSt(r,t,FOt(e,azt())),pr);break r;case 6:var mr=n[1],dr=LSt(0,t,$Qt(cEe)),_r=f(r,mr),hr=FOt(e,FOt(EHt(r,mr),_r)),xr=pQt(FOt(LSt(0,t,RQt),hr),dr);A=FOt(e,FOt(AHt(),xr));break r;case 7:var yr=n[1];if(yr){A=UOt(function(n,t){var a=f(r,t);return FOt(e,FOt(bzt(0,aV(n)),a))},yr);break r}A=TOt;break r;case 8:var wr=f(r,AEe),gr=FOt(e,FOt(uzt(0,oEe),wr)),qr=FOt(f(r,sEe),gr),Ir=FOt(e,FOt(uzt(0,bEe),qr));A=FOt(LSt(0,t,RQt),Ir);break r;case 10:var Dr=n[1];A=i(function(n){var t=f(r,Dr);return FOt(e,FOt(xHt(),t))});break r;case 12:var Er=n[1],Nr=i(function(n){var t=f(r,Er);return FOt(e,FOt(NHt(),t))});A=FOt(hQt(r,"serialize_go: Weak"),Nr);break r;default:break e}var Tr=FOt(e,f(r,iS));A=FOt(LSt(0,t,RQt),Tr);break r}switch(n){case 1:A=hQt(r,JDe);break r;case 2:break;default:A=TOt;break r}}A=WOt(lEe,qUt(n),TOt)}return FOt(A,v)})}function DZt(r,e){var n=$9n(eRt(r[15],e)),t=lCt(0,r,aFe,tFe,nFe,function(r,e,n){var t=MOt(XTe),a=FOt(uz(lQt(r),JTe),t),u=FOt(n,FOt(MOt(YTe),a)),f=FOt(e,FOt(MOt(rFe),u)),i=FOt(MOt([11,[0,O9n,aQt(r,hMe)]]),f),v=FOt(tZt(r),i),c=FOt(MOt([11,[0,O9n,aQt(r,yMe)]]),v),A=FOt(eZt(r),c),o=FOt(MOt([11,[0,O9n,aQt(r,gMe)]]),A),s=FOt(YSt(r),o),b=FOt(ZSt(r),s),l=FOt(yQt(r,eFe),b);return FOt(ZSt(r),l)}),a=FOt(MOt([13,[0,1,0,cV(n,fan),0]]),t),u=FOt(pLt(),a);return FOt(_Ht(r,function(r){var e=SSt(r),n=MOt([11,[0,O9n,aQt(r,oPe)]]);return xLt(r,0,e[3],n)}),u)}function EZt(r,e){var n=Xct(e);return sCt(0,r,Dk+Sst(n)+b_,lTe,function(r){var e=$Ct(r,rY),t=$Ct(r,eY),a=$Ct(r,nY),u=ZSt(r),f=MOt([11,[0,O9n,aQt(r,UMe)]]);aQt(r,MMe);var i=YSt(r);eZt(r);var v=tZt(r),c=rCt(r,HNe),A=c[2];function o(r,e,n){return GCt(e,0,CNe,function(t){var a=EZt(e,n),u=FOt(OCt(e,nY),a),i=FOt(r?RQt:KCt(e,KNe),u),v=FOt(OCt(e,eY),i),c=$Qt(ONe),o=QQt(0,RNe),s=mQt(1,FOt(KCt(e,QNe),o),c),b=FOt(A,FOt(MQt(0),s)),l=FOt(FOt(pVt(f),b),v);return FOt(OCt(e,rY),l)})}function s(r,e){return o(0,r,e)}function b(r,e){return o(1,r,e)}function l(e){var n=uz(lQt(r),GNe),t=FOt(KQt(0),n);return FOt(f,FOt(i,FOt(e,FOt(MOt($Ne),t))))}var B=c[1],j=rCt(r,VNe),k=j[2],p=FOt(RQt,j[1]);function m(r){var e=pQt(p,TOt);return FOt(r,FOt(WQt(xJ),e))}function d(e){var n=FOt(p,$Qt(xJ));return FOt(a,FOt(yQt(r,e),n))}function _(r){return FOt(e,WQt(aV(0|-g0(pZt(0)(r)))))}function h(r,n){var t=d(HM+yst(r)),a=mQt(1,n,FOt(l(e),t));return FOt(_(r),a)}function x(e){if(e){var n=e[2];if(n&&!n[2]){var t=n[1],a=e[1],u=rCt(r,TNe),i=u[2],v=u[1],c=FOt(yQt(r,FNe),t),A=mQt(1,a,FOt(i,FOt(WQt(MNe),c))),o=FOt(v,FOt(i,FOt(WQt(PNe),A)));return FOt(IVt(r,f),o)}}throw gQ([0,xz,UNe],1)}function y(e){var n=rCt(r,ENe),t=n[2],a=n[1],u=rCt(r,NNe),i=u[2],v=u[1],c=FOt(NVt(r,f,t),i),A=FOt(v,FOt(i,FOt(pLt(),c))),o=FOt(a,FOt(kLt(r,0,t),A));return FOt(yVt(r,f),o)}function w(e,n){var t=rCt(r,gNe),a=t[2],u=t[1],i=rCt(r,qNe),v=i[2],c=i[1],A=FOt(NVt(r,f,a),v),o=FOt(c,FOt(v,FOt(pLt(),A))),s=FOt(kLt(r,e,a),o),b=FOt(yQt(r,INe),s),l=FOt(MQt(7),b),B=FOt(u,FOt(a,FOt($Qt(DNe),l)));return FOt(yVt(r,f),B)}function g(e){var n=rCt(r,xNe),t=n[2],a=n[1],u=rCt(r,yNe),i=u[2],v=u[1],c=FOt(i,FOt(t,uz(lQt(r),EZe))),A=FOt(i,FOt(t,FOt(uz(lQt(r),wNe),c))),o=FOt(v,FOt(xVt(f,t),A)),s=FOt(a,FOt(pVt(f),o));return FOt(yVt(r,f),s)}function q(e){var n=[0,w(3),0];return x([0,hQt(r,hNe),n])}function I(e,t,a){var u=d(HM+yst(n)),v=FOt(l(e),u),c=rCt(r,KJ),A=c[2],o=c[1],s=TCt(r,$J),b=d(HM+yst(n)),B=FOt(l(e),b),j=mQt(1,uz(a,A),B),k=FOt(WQt(aV(t)),j),p=FOt(wVt(r,A),k),m=FOt(_Vt(A,mVt(f)),p),_=BRt[3],h=FOt(MOt(kNe),_),x=FOt(o,FOt(FOt(dVt(A,FOt(i,FOt(e,FOt(LQt(LJ),h)))),m),s)),y=mQt(1,FOt(NCt(r,$J),x),v),w=FOt(MQt(8),y);return FOt(e,FOt($Qt(pNe),w))}function D(n){return I(e,-20,function(e){var t=rCt(r,bNe),a=t[2],u=t[1],f=TCt(r,BJ),i=fz(n,e,a),v=FOt(BRt[4],i),c=FOt(u,FOt(FOt(a,FOt(yVt(r,e),v)),f));return FOt(NCt(r,BJ),c)})}var E=MOt(LNe);function N(e){var n=FOt(yQt(r,lNe),e),t=FOt(e,FOt(WQt(aV(0|-g0(pZt(0)(BNe)))),n)),a=mQt(1,I(e,1,function(e){return wVt(r,e)}),t),u=FOt(MQt(8),a);return FOt(e,FOt($Qt(jNe),u))}var T=FOt(MOt(zNe),E);function F(r){var e=rCt(r,cNe),n=e[2],t=e[1],a=FOt(n,T),u=FOt(yQt(r,"Pointer cannot be compressed to 32 bit"),a),f=FOt(MQt(7),u),i=FOt(t,FOt(n,FOt($Qt(ANe),f))),v=FOt(QQt(0,BRt[1]),i),c=FOt(QQt(CQt,jJ),v);return FOt(QQt(0,BRt[2]),c)}function M(r,e){var n=rCt(r,iNe),t=n[2],a=n[1],u=QQt(0,BRt[1]),f=FOt(QQt(VQt,jJ),u),i=mQt(1,t,FOt(t,FOt(QQt(0,BRt[2]),f))),v=FOt(a,FOt(t,FOt(WQt(vNe),i)));return FOt(DVt(r,e),v)}function P(r,n,t){var a=rCt(r,ZEe),u=a[2],i=a[1],v=rCt(r,WEe),c=v[2],A=v[1],o=rCt(r,"cur"),s=o[2],b=o[1],l=rCt(r,XEe),B=l[2],j=l[1],k=rCt(r,JEe),p=k[2],m=k[1],d=FOt(u,FOt(pQt(dVt(f,s),TOt),c)),_=yQt(r,El+Sst(n)),h=FOt(gLt(r,YEe),_),x=FOt(dLt(r,0,Sst(n)),h),y=FOt(M(r,f),x),w=fz(t,p,function(e){var t=F(r),a=FOt(dLt(r,0,Sst(n)),t),u=FOt(B,FOt(QQt(0,SEe),a));return FOt(e,FOt(A,FOt(B,FOt(c,FOt(F(r),u)))))}),g=FOt(yQt(r,rNe),w),q=FOt(WQt(eNe),g),I=FOt(pQt(FOt(DVt(r,f),q),y),d),D=FOt(A,FOt(c,FOt(WQt(nNe),I))),E=FOt(j,FOt(M(r,f),D)),T=FOt(pVt(f),E),P=rCt(r,tNe),U=P[2],G=P[1],$=FOt(b,xVt(f,FOt(U,QQt(0,aNe)))),K=FOt(pVt(f),$),O=FOt(yQt(r,uNe),K),R=FOt(MQt(2),O),Q=FOt(G,FOt(U,FOt($Qt(fNe),R))),C=xVt(f,$Qt(l0e)),H=FOt(MOt(B0e),C),V=FOt(MOt(j0e),H),L=FOt(pVt(f),V),z=FOt(i,FOt(u,FOt(pQt(FOt(FOt(gVt(r,f,$Qt(k0e)),L),Q),TOt),T))),S=FOt(m,FOt(IVt(r,f),z));return FOt(N(e),S)}var U=MOt(4);r:{var G=FOt(k,pQt(FOt($Qt(xJ),U),TOt));if("number"==typeof n)switch(n){case 0:var $=FOt(l(e),cHt);break r;case 1:var K=d(SNe);$=FOt(l(e),K);break r}else switch(n[0]){case 2:var O=n[1];switch(O){case 0:$=h(n,cHt);break r;case 1:var R=[0,HCt(1),0];$=h(n,x([0,HCt(0),R]));break r;case 2:$=h(n,vLt(r,f,0));break r;case 7:var Q=h(n,vLt(r,f,1)),C=mQt(1,vLt(r,f,0),Q);$=FOt(_(ZNe),C);break r;case 12:var H=jVt(r),V=xVt(f,$Qt(u0e)),L=FOt(MOt(f0e),V),z=FOt(pVt(f),L);$=h(n,FOt(FOt(gVt(r,f,$Qt(i0e)),z),H));break r;case 13:var S=hSt(r,2,0),Z=xVt(f,$Qt(n0e)),W=FOt(MOt(t0e),Z),X=FOt(pVt(f),W);$=h(n,FOt(FOt(gVt(r,f,$Qt(a0e)),X),S));break r;case 14:var J=bVt(0,14),Y=FOt(AVt(r),J);$=h(n,FOt(DVt(r,f),Y));break r;case 15:$=h(n,g());break r;case 16:var rr=rCt(r,WNe),er=r[28][1],nr=rr[2],tr=rr[1];if(!er)throw gQ([0,xz,xtn],1);var ar=FOt(tr,FOt(OQt,FOt(nr,MOt([6,[0,O9n,uz(er[1],0)]])))),ur=FOt(y(),ar);$=I(e,mZt,function(n){var t=d(oNe),a=mQt(1,ur,FOt(l(e),t)),u=FOt(WQt(sNe),a);return FOt(wVt(r,n),u)});break r;case 18:var fr=[0,w(2),0];$=h(n,x([0,hQt(r,XNe),fr]));break r;case 19:$=P(r,JNe,function(e,n){var t=rCt(r,CEe),a=t[2],u=t[1],i=uz(lQt(r),ZZe),v=FOt(y(),i),c=FOt(DVt(r,f),v),A=FOt(a,FOt(EVt(r,f),c)),o=FOt(u,FOt(uz(n,a),A)),s=FOt(uz(lQt(r),WZe),o),b=FOt(dLt(r,0,""),s),l=FOt($Qt(HEe),b),B=FOt($Qt(VEe),l),j=FOt(yQt(r,LEe),B);return FOt(e,FOt(WQt(aV(0|-g0(pZt(0)(zEe)))),j))});break r;case 17:break;case 6:case 11:var ir=RHt(r,O);$=h(n,FOt(EVt(r,f),ir));break r;case 5:case 10:var vr=bVt(0,O),cr=FOt(nVt(O),vr);$=h(n,FOt(DVt(r,f),cr));break r;case 4:case 9:var Ar=bVt(0,O),or=FOt(nVt(O),Ar),sr=xVt(f,$Qt(h0e)),br=FOt(MOt(x0e),sr),lr=FOt(MOt(y0e),br),Br=FOt(pVt(f),lr);$=h(n,FOt(FOt(gVt(r,f,$Qt(w0e)),Br),or));break r;default:var jr=bVt(0,O),kr=FOt(nVt(O),jr);$=h(n,FOt(IVt(r,f),kr));break r}break;case 3:switch(n[1]){case 1:var pr=d(YNe),mr=FOt(l(e),pr),dr=mQt(1,I(e,-23,function(r){return q()}),mr),_r=HCt(1);$=FOt(u,FOt(mQt(1,FOt(e,DZt(r,n)),_r),dr));break r;case 0:case 4:var hr=n[2];$=D(function(e,n){var t=rCt(r,REe),a=t[2],u=t[1],v=FOt(e,FOt(f,FOt(i,FOt(n,uz(lQt(r),QEe)))));return FOt(TLt(r,H0(function(t){var v=t[2],c=t[1];return[0,v[1],function(t){var A=Xct(v[2]);e:{if("number"==typeof A){if(0===A){var o=cHt;break e}}else switch(A[0]){case 2:if(!A[1]){o=cHt;break e}break;case 6:o=cHt;break e}var b=v[1];o=d(uz(H6(KEe),b))}var l=FOt(u,FOt(m(a),a)),B=FOt(s(r,v[2]),l),j=FOt(SCt,mQt(1,FOt(wVt(r,e),B),o)),k=FOt(n,FOt(uz(lQt(r),OEe),j));return FOt(e,FOt(f,FOt(i,FOt(KQt(c),k))))}]},jZt(hr))),v)});break r}break;case 4:var xr=n[1],yr=rCt(r,rTe),wr=yr[2],gr=yr[1];$=I(e,-21,function(e){var n=rCt(r,FEe),t=n[2],a=n[1],u=rCt(r,MEe),i=u[2],v=u[1],c=rCt(r,PEe),A=c[2],o=c[1],b=rCt(r,UEe),B=b[2],j=b[1],k=d(GEe),p=FOt(l(B),k),_=FOt(j,S0(function(e,n){var t=e[2],a=t[2],u=t[1],f=e[1],i=FOt(gr,FOt(m(wr),wr)),v=mQt(1,MHt(r,u,FOt(B,FOt(s(r,a),i))),n);return FOt(A,FOt(WQt($9n(f)),v))},jZt(xr),p)),h=FOt(o,FOt(wVt(r,e),_)),x=FOt(yVt(r,e),h),y=FOt(i,FOt(tCt(r,function(n){var t=FOt(e,uz(lQt(r),NEe));return FOt(e,FOt(uz(lQt(r),TEe),t))}),x)),w=FOt(yQt(r,$Ee),y),g=FOt(v,FOt(i,FOt(t,FOt(MQt(3),w)))),q=FOt(a,FOt(yVt(r,f),g));return FOt(yVt(r,e),q)});break r;case 5:var qr=n[1];if("number"!=typeof qr&&10===qr[0]){var Ir=qr[1];$=P(r,[5,[10,Ir]],function(e,n){var t=rCt(r,qEe),a=t[2],u=t[1],i=rCt(r,IEe),v=i[2],c=i[1],A=rCt(r,DEe),o=A[2],b=A[1],l=rCt(r,EEe),B=l[2],j=l[1],k=MOt(2),p=FOt(v,FOt(jHt(r),k)),d=FOt(a,FOt(tCt(r,function(e){var n=FOt(o,BRt[6]),t=FOt(b,FOt(m(o),n)),a=FOt(B,FOt(s(r,Ir),t));return FOt(v,FOt(e,FOt(fzt(r),a)))}),p)),_=FOt(c,FOt(uz(n,v),d)),h=FOt(u,FOt(czt(r,1,a),_)),x=FOt(j,FOt(yVt(r,f),h));return FOt(I(e,mZt,function(e){return wVt(r,e)}),x)});break r}var Dr=rCt(r,eTe),Er=Dr[2],Nr=Dr[1],Tr=rCt(r,nTe),Fr=Tr[2],Mr=Tr[1],Pr=rCt(r,tTe),Ur=Pr[2],Gr=Pr[1],$r=rCt(r,aTe),Kr=$r[2],Or=$r[1];$=I(e,mZt,function(e){var n=FOt(Fr,jHt(r)),t=FOt(Mr,FOt(Er,FOt(tCt(r,function(e){var n=FOt(Ur,BRt[6]),t=FOt(Gr,FOt(m(Ur),n)),a=FOt(Kr,FOt(s(r,qr),t));return FOt(Fr,FOt(e,FOt(fzt(r),a)))}),n))),a=FOt(czt(r,0,Er),t),u=FOt(Er,FOt(BZt(r),a)),i=FOt(Nr,FOt(VCt(0),u)),v=FOt(Or,FOt(yVt(r,f),i));return FOt(wVt(r,e),v)});break r;case 6:var Rr=n[1],Qr=rCt(r,uTe),Cr=Qr[2],Hr=Qr[1],Vr=mQt(1,cHt,IHt(r,Rr,Cr)),Lr=FOt(Hr,FOt(Cr,FOt(WQt(xJ),Vr))),zr=FOt(e,FOt(b(r,Rr),Lr)),Sr=rCt(r,fTe),Zr=Sr[2],Wr=Sr[1],Xr=rCt(r,iTe),Jr=Xr[2],Yr=Xr[1],re=mQt(1,cHt,IHt(r,Rr,Jr)),ee=FOt(Yr,FOt(Jr,FOt(WQt(xJ),re))),ne=FOt(Wr,x([0,cHt,[0,FOt(Zr,FOt(b(r,Rr),ee)),0]])),te=mQt(1,FOt(I(e,-18,function(e){return wVt(r,e)}),ne),zr),ae=$Qt(dNe),ue=rCt(r,KJ),fe=ue[2],ie=ue[1],ve=TCt(r,$J),ce=WQt(NC(16777198,zK,Fn)),Ae=FOt(wVt(r,fe),ce),oe=FOt(_Vt(fe,mVt(f)),Ae),se=BRt[3],be=FOt(MOt(mNe),se),le=FOt(ie,FOt(FOt(dVt(fe,FOt(i,FOt(e,FOt(LQt(LJ),be)))),oe),ve)),Be=mQt(1,FOt(NCt(r,$J),le),ae),je=FOt(MQt(8),Be),ke=mQt(1,cHt,FOt(FOt(e,FOt($Qt(_Ne),je)),te)),pe=mQt(1,cHt,FOt(_(0),ke));$=FOt(_(vTe),pe);break r;case 7:var me=n[1];if(me){$=D(function(e,n){var t=rCt(r,wEe),a=t[2],u=t[1],v=lzt(r,G0(me)),c=FOt(e,FOt(f,FOt(i,FOt(n,FOt(uz(lQt(r),gEe),v)))));return FOt(UOt(function(t,v){var c=Xct(v);e:{if("number"==typeof c){if(0===c){var A=cHt;break e}}else switch(c[0]){case 2:if(!c[1]){A=cHt;break e}break;case 6:A=cHt;break e}A=d(xEe)}var o=FOt(u,FOt(m(a),a)),b=FOt(s(r,v),o),l=FOt(SCt,mQt(1,FOt(wVt(r,e),b),A)),B=FOt(n,FOt(uz(lQt(r),yEe),l));return FOt(e,FOt(f,FOt(i,FOt(KQt(t),B))))},me),c)});break r}$=h(n,lzt(r,0));break r;case 8:var de=d(cTe),_e=FOt(l(e),de),he=mQt(1,I(e,-22,function(e){var n=rCt(r,dEe),t=n[2],a=n[1],u=rCt(r,_Ee),f=FOt(u[1],izt(r,3,[0,t,[0,u[2],0]])),i=FOt(a,FOt(g(),f)),v=[0,FOt(q(),i),0];return x([0,hQt(r,hEe),v])}),_e),xe=HCt(1);$=FOt(u,FOt(mQt(1,FOt(e,DZt(r,n)),xe),he));break r;case 10:var ye=n[1];$=P(r,[10,ye],function(e,n){var t=rCt(r,mEe),a=t[2],u=t[1],f=yHt(r),i=FOt(a,FOt(e,FOt(s(r,ye),f))),v=FOt(u,FOt(uz(n,a),i));return FOt(hHt(r),v)});break r;case 12:var we=n[1],ge=P(r,[12,we],function(e,n){var t=rCt(r,pEe),a=t[2],u=t[1],f=rCt(r,"weak_value"),i=f[2],v=f[1],c=FOt(i,lHt(0,SJ)),A=FOt(v,FOt(yCt(WJ),c)),o=FOt(a,FOt(e,FOt(s(r,we),A))),b=FOt(u,FOt(uz(n,a),o));return FOt(pHt(r,11,[0,OQt,0]),b)});$=FOt(hQt(r,"deserialize_go: Weak"),ge);break r}$=JQt(r,ATe,qUt(n))}var qe=FOt(B,FOt($,G)),Ie=FOt(pVt(f),qe),De=FOt(yQt(r,oTe),Ie),Ee=FOt(MQt(7),De),Ne=FOt(LQt(sTe),Ee),Te=FOt(t,FOt(v,FOt(QQt(0,bTe),Ne))),Fe=FOt(RQt,FOt(BZt(r),Te));return FOt(VCt(1),Fe)})}function NZt(r,e){return bCt(0,r,RSt(STe,e),WTe,ZTe,function(r,n){var t=rCt(r,KTe),a=t[2],u=t[1],f=rCt(r,OTe),i=f[2],v=f[1],c=gZt(0,0,e)[1],A=aV(AV(c)),o=rCt(r,RTe),s=o[2],b=o[1],l=rCt(r,QTe),B=l[2],j=l[1],k=FOt(a,QQt(0,A)),p=FOt(s,FOt(QQt(1,A),k)),m=FOt(yQt(r,CTe),p),d=FOt(i,FOt(WQt(HTe),m)),_=yQt(r,gPe),h=FOt(MQt(0),_),x=FOt(FOt(s,FOt(a,FOt(MOt(qPe),h))),d),y=FOt(yQt(r,VTe),x),w=FOt(MQt(0),y),g=FOt(MOt(LTe),w),q=FOt(B,FOt(i,FOt(LQt(LJ),g))),I=FOt(j,FOt(n,FOt(s,FOt(B,FOt(IZt(r,$ct(e)),q))))),D=FOt(qLt(r),I),E=aV(AV(c)),N=FOt(i,FOt(LQt(LJ),D)),T=FOt(s,FOt(QQt(0,E),b)),F=FOt(gCt(),T),M=FOt($Qt(E),F),P=FOt(pLt(),M),U=FOt(b,FOt(s,FOt(dLt(r,0,c),P))),G=FOt(qLt(r),U),$=FOt(FOt(a,FOt(QQt(0,E),G)),N),K=FOt(xQt(r,zTe),$),O=FOt(MQt(3),K),R=FOt($Qt(A),O),Q=FOt(v,FOt(u,FOt(a,FOt(QQt(0,A),R))));return FOt(n,FOt(qZt(r,$ct(e)),Q))})}function TZt(r,e,n){var t=Zst(n);return lCt(0,e,r?"@deserialize_extended<"+t+b_:"@deserialize<"+t+b_,$Te,H0(function(r){return 1},n),function(e,a,u){var f=rCt(e,ETe),i=f[2],v=f[1],c=rCt(e,NTe),A=c[2],o=c[1],s=rCt(e,TTe),b=s[2],l=s[1],B=rCt(e,FTe)[2],j=rCt(e,MTe),k=j[2],p=j[1],m=rCt(e,PTe),d=m[2],_=m[1],h=rCt(e,UTe),x=h[2],y=h[1],w=TCt(e,hJ),g=rCt(e,DTe),q=g[2],I=g[1],D=TCt(e,_J),E=rCt(e,ITe),N=E[2],T=E[1],F=TCt(e,dJ),M=rCt(e,"get_global_typtbl_ptr"),P=M[2],U=M[1],G=TCt(e,mJ),$=rCt(e,"get_global_typtbl_end_ptr"),K=$[2],O=$[1],R=TCt(e,pJ),Q=rCt(e,"get_global_typtbl_size_ptr"),C=Q[2],H=Q[1],V=TCt(e,kJ),L=rCt(e,KJ),z=L[2],S=L[1],Z=TCt(e,$J),W=rCt(e,KJ),X=W[2],J=W[1],Y=TCt(e,$J),rr=aV(AV(gZt(0,0,n)[1])),er=MOt(yTe),nr=FOt(lZt(e),er),tr=FOt(MOt(wTe),nr),ar=FOt(bZt(e),tr),ur=FOt($Qt(rr),ar),fr=FOt(C,BRt[3]),ir=function(r,e,n,t,a){if(e)return uz(a,$Qt(fFe));var u=FCt(r,iFe,function(e){var u=uz(a,e);return FOt(e,FOt(n,FOt(t,FOt(uz(lQt(r),uFe),u))))});return FOt(n,FOt(t,FOt(uz(lQt(r),vFe),u)))}(e,r,FOt(x,BRt[3]),fr,function(r){var f=rCt(e,KJ),i=f[2],v=f[1],c=TCt(e,$J),A=iZt(e),o=FOt($Qt(sMe),A),s=FOt(fZt(e),o),b=FOt($Qt(bMe),s),l=FOt(uZt(e),b),B=FOt($Qt(lMe),l),j=FOt(aZt(e),B),m=FOt($Qt(BMe),j),h=FOt(nZt(e),m),y=FOt($Qt(jMe),h),w=FOt(rZt(e),y),g=FOt($Qt(kMe),w),I=FOt(JSt(e),g),D=FOt($Qt(pMe),I),E=FOt(XSt(e),D),T=FOt($Qt(mMe),E),F=FOt(WSt(e),T),M=FOt($Qt(dMe),F),U=FOt(yQt(e,_f+t),M),G=FOt(qVt(0,X),U),$=FOt(yQt(e,Dq+t),G),O=FOt(qVt(0,z),$),R=FOt(k,FOt(QQt(1,dTe),p)),Q=FOt(uz(lQt(e),_Te),R),H=FOt(KQt(0),Q),V=FOt(MOt(hTe),H),L=FOt(wVt(e,i),V),S=FOt(z,FOt(q,FOt(BRt[3],L))),Z=FOt(nCt(0,FOt(k,ZQt(5,xTe)),S),O),W=FOt(p,FOt(POt(function(r){function n(r){return cHt}var a=Xct(r);r:{e:{if("number"==typeof a){if(0!==a)break e}else switch(a[0]){case 2:if(a[1])break e;var f=function(r){return $Qt(xJ)},v=n,c=u;break r;case 6:break;default:break e}f=n,v=n,c=HCt(1);break r}var A=function(r){var n=hQt(e,r);return FOt(u,mQt(1,$Qt(xJ),n))};f=A,v=A,c=u}var o=mQt(1,f(jTe),d),s=FOt(p,FOt(d,FOt(WQt(xJ),o))),b=FOt(_,FOt(k,FOt(QQt(1,kTe),s))),l=FOt(GCt(e,0,pTe,function(n){var t=EZt(e,r),a=FOt(c,FOt(OCt(e,nY),t)),u=FOt(OCt(e,eY),a),f=FOt($Qt(BTe),u),v=FOt(OCt(e,rY),f);return FOt(wVt(e,i),v)}),b),B=mQt(1,v(ri+t),l);return FOt(k,FOt(WQt(mTe),B))},n),Z)),J=FOt(yVt(e,i),W),Y=FOt(_Vt(i,mVt(z)),J),rr=FOt(v,FOt(FOt(dVt(i,FOt(N,BRt[3])),Y),c)),er=FOt(NCt(e,$J),rr),nr=rCt(e,ZFe),tr=nr[2],ar=nr[1],ur=rCt(e,WFe),fr=ur[2],ir=ur[1],vr=cZt(e),cr=pQt(FOt($Qt(XFe),vr),TOt),Ar=FOt(tr,FOt(MQt(3),cr)),or=FOt(vZt(e),Ar),sr=FOt(cZt(e),or),br=FOt(MOt(JFe),sr),lr=FOt(tr,FOt(sZt(e),br)),Br=pQt(FOt($Qt(YFe),ar),TOt),jr=FOt(fr,FOt(MQt(3),Br)),kr=FOt(MOt(rMe),jr),pr=FOt(AZt(e),kr),mr=FOt(pQt(FOt($Qt(eMe),pr),TOt),lr),dr=FOt(ar,FOt(AZt(e),mr)),_r=FOt(MOt(nMe),dr),hr=FOt(oZt(e),_r),xr=FOt(MOt(tMe),hr),yr=FOt(ir,FOt(fr,FOt(AZt(e),xr))),wr=FOt(r,pQt(FOt(a,FOt(jLt(),yr)),TOt)),gr=FOt(iZt(e),wr),qr=FOt(C,FOt(BRt[3],gr)),Ir=FOt(fZt(e),qr),Dr=FOt(K,FOt(BRt[3],Ir)),Er=FOt(uZt(e),Dr),Nr=FOt(P,FOt(BRt[3],Er)),Tr=FOt(aZt(e),Nr),Fr=FOt(x,FOt(BRt[3],Tr)),Mr=FOt(nZt(e),Fr),Pr=FOt(N,FOt(BRt[3],Mr)),Ur=FOt(rZt(e),Pr),Gr=FOt(q,FOt(BRt[3],Ur)),$r=FOt(X,FOt(JSt(e),Gr)),Kr=FOt(z,FOt(XSt(e),$r));return FOt(FOt(r,FOt(WSt(e),Kr)),er)});if(r)var vr=TOt;else{var cr=FOt(P,FOt(K,FOt(C,uz(lQt(e),gTe)))),Ar=FOt(wZt(e),cr);vr=FOt(yZt(e),Ar)}var or=FOt(vr,ir),sr=FOt(z,FOt(ur,FOt(q,FOt(x,FOt(N,FOt(uz(lQt(e),qTe),or)))))),br=FOt(FOt(HCt(r),ZCt),sr),lr=FOt(hVt(X,FOt(A,LQt(LJ))),br),Br=FOt(dVt(X,B),lr),jr=FOt(hVt(z,i),Br),kr=FOt(J,FOt(FOt(dVt(z,b),jr),Y)),pr=FOt(S,FOt(FOt(NCt(e,$J),kr),Z)),mr=FOt(H,FOt(FOt(NCt(e,$J),pr),V)),dr=FOt(O,FOt(FOt(NCt(e,kJ),mr),R)),_r=FOt(U,FOt(FOt(NCt(e,pJ),dr),G)),hr=FOt(T,FOt(FOt(NCt(e,mJ),_r),F)),xr=FOt(I,FOt(FOt(NCt(e,dJ),hr),D)),yr=FOt(y,FOt(FOt(NCt(e,_J),xr),w)),wr=FOt(o,FOt(NCt(e,hJ),yr)),gr=FOt(l,FOt($Qt(GTe),wr)),qr=FOt(v,FOt(a,FOt(pLt(),gr)));return FOt(a,FOt(jLt(),qr))})}function FZt(r,e){var n=TZt(0,r,e),t=FOt(HCt(0),n);return FOt(Fzt(r),t)}function MZt(r){var e=QQt(VQt,NC(16,0,0));return FOt(wzt(r,YIe),e)}function PZt(r,e,n,t){if(1===n)var a=aSt(r,0,yKe,1,xKe,BRt[4]);else{if(n)throw gQ([0,xz,JIe],1);a=iSt(r)}var u=FOt(t,a),f=FOt(QQt(1,e),u);return FOt(MZt(r),f)}function UZt(r,e,n){if(1===n)var t=tSt(r,0,dKe,1,mKe,BRt[3]);else{if(n)throw gQ([0,xz,XIe],1);t=vSt(r)}var a=FOt(QQt(1,e),t);return FOt(MZt(r),a)}function GZt(r,e,n){if(1===n)var t=$Qt(WIe);else{if(n)throw gQ([0,xz,ZIe],1);t=KQt(0)}return PZt(r,e,n,t)}function $Zt(r){return uz(lQt(r),GIe)}function KZt(r,e){var n=gZt(0,1,[0,e,0]),t=n[3],a=n[1],u=ORt([0,$Rt(H0(aV,n[2])),0]);if(!OH(t,FIe))throw gQ([0,xz,MIe],1);var f=dLt(r,0,u);return FOt(dLt(r,0,a),f)}function OZt(r,e){var n=uz(lQt(r),TIe);return FOt(KZt(r,e),n)}function RZt(r,e){var n=uz(lQt(r),NIe);return FOt(KZt(r,e),n)}function QZt(r,e){var n=rCt(r,"old_actor"),t=n[2];return FOt(n[1],TLt(r,H0(function(e){return[0,e[1],function(n){var a=mQt(1,OH(e[2],EIe)?IHt(r,rS,$Qt(GRt)):FOt(t,PLt(r,e[1])),cHt),u=e[1],f=FOt(uz(lQt(r),uWe),SCt);return FOt(t,FOt(FOt($Qt(JRt(r,u)),f),a))}]},oAt(e)[2])))}function CZt(r){return FOt(uz(lQt(r),DIe),SCt)}function HZt(r){return FOt(uz(lQt(r),qIe),SCt)}function VZt(r,e,n,t,a,u,f){var i=H0(function(r){return[0,r[2],1]},t),v=Hrt(G0(u),1),c=gSt(e);return cCt(r,QY(dIe,i),v,function(r){for(var e=yCt(WJ),u=iz(n,r,c,FOt(MOt([8,[0,O9n,0]]),e)),i=1,v=u[1],A=t,o=u[2];;){if(!A)return $Ot(f,uz(o,fz(a,r,v)));var s=A[1],b=A[2],l=NSt(0,v,s[2],0,i,s[3]);i=i+1|0,v=l,A=b}})}function LZt(r,e){if(e)switch(e[1]){case 0:return mzt(r,4);case 1:return mzt(r,3);default:return mzt(r,9)}throw gQ([0,xz,mIe],1)}function zZt(r,e){if(e)switch(e[1]){case 0:return mzt(r,5);case 1:var n=mzt(r,2),t=pQt(TOt,FOt(hCt(r),n)),a=FOt(MOt(kIe),t),u=FOt(WQt(Bzt(11)),a),f=FOt(jzt(),u),i=FOt(WQt(Bzt(10)),f);return FOt(jzt(),i);default:return mzt(r,9)}throw gQ([0,xz,pIe],1)}function SZt(r){var e=pQt(TOt,LZt(r,jIe));return FOt(dzt(0,9),e)}function ZZt(r){var e=pQt(TOt,zZt(r,BIe));return FOt(dzt(0,9),e)}function WZt(r,e,n,t,a,u,f,i){var v=gSt(e);return cCt(r,0,0,function(r){var f=H0(function(r){return[0,r[2],r[3]]},a),c=H0(function(r){return r[2]},a),A=H0(function(r){return r[3]},a),o=function(r,e){function n(r){return 1}return function(t){return FSt(r,e,n,t)}}(r,v)(f),s=zZt(r,n),b=FOt(fz(u,r,o),s),l=FOt(POt(function(e){return GSt(r,o,e)},Q0(c)),b),B=FOt(FZt(r,A),l);if(0===t)var j=Pzt(r),k=FOt(NZt(r,0),j),p=FOt($Qt(GRt),k);else p=TOt;var m=FOt(p,B),d=FOt(KSt(0,e,DPe),m),_=FOt(KSt(0,e,EPe),d);return $Ot(i,FOt(LZt(r,n),_))})}function XZt(r,e,n,t,a,u,f,i,v){if(0!==e){var c=fQt(r)(t),A=c[2];return[0,[1,c[1]],function(r,t){return uz(A,WZt(r,t,e,n,a,u,0,v))}]}if(0!==n)throw gQ([0,xz,lIe],1);var o=vQt(r,t),s=r[27][1];return r[27][1]=s+1|0,[0,[0,s,function(r){return fet(o)},f],function(r,e){function n(r,e,n){return[0,e,MSt]}return uet(o,[W,function(t){return VZt(r,e,n,a,u,i,v)}])}]}function JZt(r,e,n,t,a,u,f,i,v,c){var A=a1(function(r){var n=ISt(e,r);if(n)return 1-xSt(n[1]);throw gQ([0,xz,RPe],1)},u);if(0===e[1]&&0!==A)throw gQ([0,xz,oIe],1);if(0===A){var o=XZt(r,t,a,n,f,i,0,v,c),s=o[1];return fz(o[2],r,e),[0,[2,s],TOt]}var b=0===t?1:0,l=rCt(r,n+LN),B=l[2],j=l[1],k=P9n(G0(A));var p=function n(t,a){if(!a)return[0,TOt,function(r,e,n){return[0,e,MSt]}];var u=a[1],f=n(t+1|0,a[2]),i=f[2],v=f[1],c=xZt(r,e,u),A=c[2],o=c[1],s=P9n(t),b=rCt(r,I2e),l=b[2],j=b[1],k=FOt(l,lHt(0,rV(GHt,s)));return[0,FOt(B,FOt(o,FOt(FOt(j,FOt(yCt(WJ),k)),v))),function(r,e,n){var a=A(r,e),u=a[2],f=i(r,a[1],n),v=f[2];return[0,f[1],function(r){var e=u(uz(v,r)),a=bHt(0,rV(GHt,P9n(t)));return FOt(n,FOt(FOt(yCt(WJ),a),e))}]}]}(0,A),m=p[2],d=p[1];if(!b)throw gQ([0,xz,sIe],1);var _=VZt(r,e,m,f,i,v,c),h=iQt(r)(n,_),x=MOt(2),y=FOt(d,FOt(B,FOt(jHt(r),x))),w=FOt(lHt(0,dZt),y),g=FOt(B,FOt($Qt(k),w)),q=FOt(lHt(0,SJ),g),I=FOt(j,FOt(B,FOt($Qt($9n(gQt(r,h))),q))),D=FOt(oHt(r,rV(GHt,k),2),I);if(b)return[0,0,FOt(D,B)];throw gQ([0,xz,bIe],1)}function YZt(r,e){if(e)var n=e[1],t=Og+Sst([7,n])+b_,a=function(r){return FZt(r,n)},u=t,f=G0(n);else a=function(r){return wLt(r,0,function(r){return wzt(r,aIe)},function(r){return wzt(r,uIe)},function(r){return $Qt(fIe)})},u=iIe,f=1;return ACt(r,u,vIe,0,function(r){var e=rCt(r,nIe),n=e[2],t=e[1],u=ZZt(r),i=FOt(n,FOt($Ht(r,f,0),u)),v=FOt(a(r),i),c=FOt(t,FOt(n,FOt(yCt(WJ),v))),A=FOt(uzt(0,tIe),c),o=FOt(RCt(r),A),s=FOt(MOt([8,[0,O9n,0]]),o);return FOt(SZt(r),s)}),ACt(r,lJ,cIe,0,function(r){var e=rCt(r,rIe),n=e[2],t=e[1],a=ZZt(r),u=FOt(n,FOt($Ht(r,1,0),a)),f=FOt(_Zt(r),u),i=FOt(t,FOt(n,FOt(yCt(WJ),f))),v=FOt(uzt(0,eIe),i),c=FOt(RCt(r),v),A=FOt(MOt([8,[0,O9n,0]]),c);return FOt(SZt(r),A)}),function(e){var n=rCt(r,Yqe),t=n[2],a=n[1],f=FOt(t,FOt($Qt($9n(gQt(r,AQt(r,lJ)))),t)),i=FOt(a,FOt($Qt($9n(gQt(r,AQt(r,u)))),f)),v=FOt(uz(lQt(r),A6e),i);return FOt(izt(r,2,e),v)}}function rWt(r,e){return YZt(r,[0,e])}function eWt(r,e,n,t,a,u){if(1>>0)return hQt(r,uz(H6(Kqe),e));var f=uz(H6(Oqe),e),i=rCt(r,Rqe),v=i[2],c=i[1],A=MOt(2),o=pQt(FOt(v,FOt(RCt(r),A)),TOt),s=FOt(MQt(1),o),b=FOt($Qt(Qqe),s),l=FOt(_zt(r),b),B=FOt(xzt(r),l),j=FOt(dLt(r,1,f),B),k=FOt(hzt(r),j),p=FOt(MOt(Cqe),k),m=FOt(u,FOt(wzt(r,Hqe),p)),d=FOt(wzt(r,Vqe),m),_=FOt(uz(a,v),d),h=FOt(v,FOt(wzt(r,Lqe),_));ACt(r,sJ,Jqe,0,function(r){var e=rCt(r,Wqe),n=e[2],t=e[1],a=FOt(n,$Ht(r,0,0)),u=FOt(t,FOt(n,FOt(yCt(WJ),a))),f=FOt(uzt(0,Xqe),u),i=FOt(RCt(r),f);return FOt(MOt([8,[0,O9n,0]]),i)});var x=FOt($Qt($9n(gQt(r,AQt(r,sJ)))),h),y=FOt(t,FOt(c,FOt(v,FOt(wzt(r,zqe),x)))),w=FOt(_Lt(r),y),g=FOt(n,FOt(uzt(0,Sqe),w)),q=FOt(_Lt(r),g);return FOt(n,FOt(uzt(0,Zqe),q))}function nWt(r){return MOt([11,[0,O9n,aQt(r,eqe)]])}function tWt(r){var e=xQt(r,"Async stabilization increment call failed"),n=FOt(MOt(Zge),e),t=FOt(wzt(r,Wge),n),a=FOt(wzt(r,Xge),t),u=FOt($Qt(Jge),a),f=FOt($Qt(aV(gQt(r,AQt(r,vY)))),u),i=FOt($Qt(Yge),f),v=FOt($Qt(aV(gQt(r,AQt(r,iY)))),i),c=FOt(hLt(r,1,fY),v),A=FOt(_Lt(r),c);return FOt(Tzt(r),A)}function aWt(r,e){var n=uz(lQt(r),IIe),t=FOt(KZt(r,e),n),a=FOt(Nzt(r),t),u=pQt(TOt,FOt(uz(lQt(r),Vge),a));return FOt(CZt(r),u)}function uWt(r){var e=xQt(r,"Async destabilization increment call failed"),n=FOt(MOt(Oge),e),t=FOt(wzt(r,Rge),n),a=FOt(wzt(r,Qge),t),u=FOt($Qt(Cge),a),f=FOt($Qt(aV(gQt(r,AQt(r,oY)))),u),i=FOt($Qt(Hge),f),v=FOt($Qt(aV(gQt(r,AQt(r,AY)))),i),c=FOt(hLt(r,1,cY),v),A=FOt(_Lt(r),c);return FOt(Tzt(r),A)}function fWt(r,e){var n=mzt(r,2),t=FOt(uz(lQt(r),Kge),n),a=FOt(Ezt(r),t),u=FOt(MOt([12,[0,O9n,aQt(r,rqe)]]),a),f=QZt(r,e),i=pQt(FOt(FOt(uz(lQt(r),yIe),f),u),TOt),v=pQt(FOt(FOt(uz(lQt(r),wIe),SCt),i),TOt),c=FOt(PQt(0),v);return FOt(nWt(r),c)}function iWt(r){return MOt([11,[0,O9n,aQt(r,Nge)]])}function vWt(r){return MOt([11,[0,O9n,aQt(r,Dge)]])}function cWt(r){var e=MQt(7),n=FOt($Qt(hZt),e);return FOt(iWt(r),n)}function AWt(r){var e=MOt(qge),n=FOt(WQt(zzt),e),t=FOt(iWt(r),n),a=FOt(WQt(Lzt),t);return FOt(iWt(r),a)}function oWt(r){var e=MOt(gge),n=FOt(WQt(Zzt),e),t=FOt(iWt(r),n),a=FOt(WQt(Szt),t);return FOt(iWt(r),a)}var sWt=[1,function(r){return r}];function bWt(r){if(0===r[0]){var e=r[1];return function(r){if(0===r[0])return[0,FOt(e,r[1])];var n=r[1];return[1,function(r){return FOt(e,uz(n,r))}]}}var n=r[1];return function(r){if(0===r[0]){var e=r[1];return[1,function(r){return FOt(uz(n,r),e)}]}var t=r[1];return[1,function(r){var e=uz(t,r);return FOt(uz(n,r),e)}]}}function lWt(r,e){return 0===e[0]?e[1]:uz(e[1],r)}function BWt(r){if(0===r[0]){var e=r[1];return function(r){return[0,e]}}var n=r[1];return function(r){if(0===r[0]){var e=r[1],t=[0,0],a=HOt(t),u=FOt(HCt(0),a),f=pQt(TOt,e),i=HCt(1);return[0,FOt(VOt(1,t,FOt(uz(n,u),i)),f)]}var v=r[1];return[1,function(r){var e=[0,0],t=HOt(e),a=FOt(HCt(0),t),u=pQt(TOt,uz(v,r)),f=HCt(1);return FOt(VOt(1,e,FOt(uz(n,a),f)),u)}]}}function jWt(r,e){return lWt(hQt(r,cJ),e)}function kWt(r,e){return jWt(r,S0(BWt,e,sWt))}function pWt(r,e,n){return uz(JOt(hge),r)}var mWt=GFt[8];function dWt(r,e,n){r:{e:{n:{t:{a:{u:{f:if("number"==typeof e){switch(e){case 0:if("number"==typeof n){if(0!==n)break f;var t=0;break r}if(0===n[0])break e;break n;case 1:if("number"!=typeof n||2>n)break u;break;default:if("number"!=typeof n)break a;switch(n){case 2:break f;case 0:break a}}t=JOt(_ge);break r}if("number"!=typeof n)break a;switch(n){case 0:break a;case 1:break;default:break t}}t=1;break r}if("number"!=typeof e)break n}t=2;break r}if("number"==typeof n||0===n[0]){if("number"==typeof e)break e;if(0===e[0])break e;a=e[1]}else var a=n[1];t=[1,a];break r}t=[0,"number"==typeof n?e[1]:n[1]]}return[0,t]}var _Wt=GFt[8];function hWt(r,e){return _Wt(dWt,r,e)}function xWt(r){var e=sQt(r);function n(r,n,t){return e(b4e,r,n,t)}iz(n,l4e,0,0),iz(n,B4e,0,0),iz(n,j4e,0,0),iz(n,p4e,k4e,0),iz(n,_4e,d4e,m4e),iz(n,x4e,0,h4e),iz(n,w4e,y4e,0),iz(n,q4e,g4e,0),iz(n,D4e,0,I4e),iz(n,N4e,0,E4e),iz(n,F4e,T4e,0),iz(n,M4e,0,0),iz(n,G4e,U4e,P4e),iz(n,K4e,$4e,0),iz(n,Q4e,R4e,O4e),iz(n,H4e,C4e,0),iz(n,L4e,V4e,0),iz(n,S4e,0,z4e),iz(n,X4e,W4e,Z4e),iz(n,Y4e,0,J4e),iz(n,e5e,r5e,0),iz(n,t5e,n5e,0),iz(n,f5e,u5e,a5e),iz(n,v5e,i5e,0),iz(n,o5e,A5e,c5e),iz(n,l5e,b5e,s5e),iz(n,k5e,j5e,B5e),iz(n,d5e,m5e,p5e),iz(n,x5e,h5e,_5e),iz(n,g5e,w5e,y5e),iz(n,D5e,I5e,q5e),iz(n,T5e,N5e,E5e),iz(n,P5e,M5e,F5e),iz(n,$5e,G5e,U5e),iz(n,R5e,O5e,K5e),iz(n,H5e,C5e,Q5e),iz(n,z5e,L5e,V5e),iz(n,W5e,Z5e,S5e),iz(n,Y5e,J5e,X5e),iz(n,n7e,e7e,r7e),iz(n,u7e,a7e,t7e),iz(n,v7e,i7e,f7e),iz(n,o7e,A7e,c7e),iz(n,l7e,b7e,s7e),iz(n,k7e,j7e,B7e),iz(n,d7e,m7e,p7e),iz(n,x7e,h7e,_7e),iz(n,g7e,w7e,y7e),iz(n,D7e,I7e,q7e),iz(n,T7e,N7e,E7e),iz(n,P7e,M7e,F7e),iz(n,$7e,G7e,U7e),iz(n,R7e,O7e,K7e),iz(n,H7e,C7e,Q7e),iz(n,L7e,V7e,0),iz(n,Z7e,S7e,z7e),iz(n,J7e,X7e,W7e),iz(n,e8e,r8e,Y7e),iz(n,t8e,n8e,0),iz(n,f8e,u8e,a8e),iz(n,c8e,v8e,i8e),iz(n,o8e,A8e,0),iz(n,b8e,s8e,0),iz(n,j8e,B8e,l8e),iz(n,p8e,k8e,0),iz(n,d8e,m8e,0),iz(n,h8e,_8e,0),iz(n,w8e,y8e,x8e),iz(n,q8e,g8e,0),iz(n,E8e,D8e,I8e),iz(n,F8e,T8e,N8e),iz(n,U8e,P8e,M8e),iz(n,$8e,0,G8e),iz(n,O8e,0,K8e),iz(n,C8e,Q8e,R8e),iz(n,L8e,V8e,H8e),iz(n,Z8e,S8e,z8e),iz(n,J8e,X8e,W8e),iz(n,e9e,r9e,Y8e),iz(n,a9e,t9e,n9e),iz(n,i9e,f9e,u9e),iz(n,A9e,c9e,v9e),iz(n,b9e,s9e,o9e),iz(n,j9e,B9e,l9e),iz(n,p9e,k9e,0),iz(n,_9e,d9e,m9e),iz(n,y9e,x9e,h9e),iz(n,g9e,w9e,0),iz(n,D9e,I9e,q9e),iz(n,N9e,E9e,0),iz(n,F9e,0,T9e),iz(n,U9e,P9e,M9e),iz(n,K9e,$9e,G9e),iz(n,Q9e,R9e,O9e),iz(n,V9e,H9e,C9e),iz(n,S9e,z9e,L9e),iz(n,X9e,W9e,Z9e),iz(n,Y9e,J9e,0),iz(n,nrn,ern,rrn),iz(n,arn,trn,0),iz(n,irn,frn,urn),iz(n,crn,vrn,0),iz(n,srn,orn,Arn),iz(n,lrn,brn,0),iz(n,krn,jrn,Brn),iz(n,mrn,prn,0),iz(n,hrn,_rn,drn),iz(n,yrn,xrn,0),iz(n,grn,0,wrn),iz(n,Drn,Irn,qrn),iz(n,Trn,Nrn,Ern),iz(n,Prn,Mrn,Frn),iz(n,$rn,Grn,Urn),iz(n,Rrn,Orn,Krn),iz(n,Hrn,Crn,Qrn),iz(n,zrn,Lrn,Vrn),iz(n,Wrn,Zrn,Srn),iz(n,Yrn,Jrn,Xrn),iz(n,nen,een,ren),iz(n,uen,aen,ten),iz(n,ven,ien,fen),iz(n,oen,Aen,cen),iz(n,len,ben,sen),iz(n,ken,jen,Ben),iz(n,den,men,pen),iz(n,xen,hen,_en),iz(n,gen,wen,yen),iz(n,Den,Ien,qen),iz(n,Ten,Nen,Een),iz(n,Pen,Men,Fen),iz(n,$en,Gen,Uen),iz(n,Ren,Oen,Ken),iz(n,Hen,Cen,Qen),iz(n,zen,Len,Ven),iz(n,Wen,Zen,Sen),iz(n,Jen,0,Xen),iz(n,rnn,0,Yen),iz(n,tnn,nnn,enn),iz(n,unn,0,ann),iz(n,inn,0,fnn),iz(n,Ann,cnn,vnn),iz(n,bnn,snn,onn),iz(n,Bnn,0,lnn),iz(n,jnn,0,0),iz(n,knn,0,0),iz(n,mnn,0,pnn),iz(n,_nn,dnn,0),iz(n,xnn,0,hnn),iz(n,wnn,ynn,0),iz(n,qnn,0,gnn),iz(n,Dnn,0,Inn),iz(n,Nnn,0,Enn),iz(n,Mnn,Fnn,Tnn),iz(n,Gnn,Unn,Pnn),iz(n,Knn,0,$nn),iz(n,Rnn,Onn,0),iz(n,Cnn,0,Qnn),iz(n,Vnn,Hnn,0)}function yWt(r){return MOt(c2e)}function wWt(r){return MOt(i2e)}function gWt(r){return WVt(UJ,HHt,RVt,r)}function qWt(r){var e=QQt(VQt,aV(64-rHt(7)|0));return FOt(MOt(A2e),e)}function IWt(r){var e=QQt(VQt,aV(64-rHt(7)|0));return FOt(MOt(v2e),e)}function DWt(r){return WVt(GJ,VHt,QVt,r)}function EWt(r){return uz(lQt(r),IXe)}function NWt(r){return uz(lQt(r),qXe)}function TWt(r){return uz(lQt(r),wXe)}function FWt(r){return uz(lQt(r),yXe)}function MWt(r){return lCt(1,r,QWe,RWe,OWe,function(r,e,n){var t=bVt(0,3),a=FOt(nVt(3),t),u=FOt(MOt(GWe),a),f=FOt(MOt($We),u),i=FOt(e,FOt(yCt(WJ),f)),v=FOt(n,FOt(QQt(0,rV(BRt[2],NC(24,0,0))),i)),c=FOt(yQt(r,KWe),v),A=FOt(MQt(3),c);return FOt(n,FOt(e,FOt(jLt(),A)))})}function PWt(r,e){var n=Dzt(r);return FOt(hLt(r,1,e),n)}function UWt(r){return lCt(0,r,m$e,p$e,k$e,function(r,e,n){var t=rCt(r,j$e),a=t[2],u=t[1],f=FOt(e,FOt(n,FOt(Hzt(r),a))),i=FOt(u,FOt(a,FOt(pLt(),f))),v=FOt(kLt(r,0,n),i);return FOt(e,FOt(n,FOt(eSt(r),v)))})}function GWt(r){return lCt(0,r,B$e,l$e,0,function(r,e,n){var t=rCt(r,b$e),a=t[2],u=t[1],f=FOt(a,Vzt(r)),i=FOt(e,FOt(n,FOt(pLt(),f))),v=FOt(u,FOt(e,FOt(a,FOt(eSt(r),i))));return FOt(n,FOt(jLt(),v))})}function $Wt(r){return r[14][2][1]=1,sCt(0,r,"initialize_root_array",0,function(r){var e=aV(r[14][1][1][1]),n=function(r,e){return UOt(e,H0(function(r){return r[2]},rRt(r[14][1][1])))}(r,function(e,n){return sCt(0,r,uz(H6(hIe),e),0,function(r){var t=uz(lQt(r),_Ie),a=FOt(uz(n,r),t);return FOt($Qt(aV(e)),a)})}),t=FOt(uz(lQt(r),xIe),n);return FOt($Qt(e),t)})}function KWt(r,e){return mWt(pWt,r,e)}var OWt=GFt[1];function RWt(r,e){return"number"!=typeof e&&0!==e[0]?1:0}function QWt(r,e){return"number"==typeof e?0:1}function CWt(r,e,n,t){if(r){var a=$Ft[8].call(null,t,n),u=XFt(GFt[27].call(null,QWt,e)),f=$Ft[6].call(null,u,a),i=XFt(GFt[27].call(null,RWt,e)),v=$Ft[6].call(null,i,t);return WFt(1,$Ft[5].call(null,v,f))}var c=XFt(GFt[27].call(null,QWt,e));return WFt(2,$Ft[6].call(null,c,t))}function HWt(r){var e=Xct(r);if("number"!=typeof e&&2===e[0]){var n=e[1];switch(n){case 12:return 1;case 13:return 2;case 3:case 4:case 5:case 6:case 8:case 9:case 10:case 11:case 14:return[1,n]}}return 0}function VWt(r,e,n,t,a){var u=GFt[17].call(null,t,n);if("number"==typeof u)switch(u){case 0:return[0,e,TOt];case 1:var f=DSt(r,e,t,a),i=f[1],v=MOt([9,[0,O9n,f[2]]]);return[0,i,FOt(hHt(r),v)];default:return[0,ESt(e,t,wHt(r),a),TOt]}return[0,TSt(r,e,t,u[1],a)[1],TOt]}function LWt(r){if("number"==typeof r)return 0;switch(r[0]){case 0:return[2,r[1]];case 2:return[0,oVt(3,uz(Rlt[23],r[1]))];case 3:return[0,oVt(4,uz(Qlt[23],r[1]))];case 4:return[0,oVt(5,uz(Clt[23],r[1]))];case 5:var e=uz(Hlt[25],r[1]);return[3,6,Ybt(Kbt(e,nlt(2,63))?Hbt(e,nlt(2,64)):e)];case 7:return[0,oVt(8,uz(Vlt[23],r[1]))];case 8:return[0,oVt(9,uz(Llt[23],r[1]))];case 9:return[0,oVt(10,uz(zlt[23],r[1]))];case 10:return[3,11,Ybt(uz(Slt[25],r[1]))];case 11:return[4,r[1]];case 12:return[5,r[1]];case 13:return[0,oVt(14,aV(r[1]))];case 14:return[6,r[1]];case 15:return[7,r[1]];default:return[1,uz(Klt[25],r[1])]}}function zWt(r){return[0,[2,[7,LWt(r)]],TOt]}function SWt(r,e,n){var t=zWt(n);return FOt(t[2],hSt(r,t[1],e))}function ZWt(r,e,n,t,a){var u=mQt(1,FOt(n,FOt(t,r)),a),f=FOt(PQt(0),u),i=FOt(MOt(wwe),f),v=FOt(QQt(CQt,gwe),i),c=FOt(MOt(qwe),v),A=FOt(t,FOt(t,FOt(QQt(VQt,Iwe),c))),o=FOt(QQt(CQt,Dwe),A),s=FOt(MOt(Ewe),o);return FOt(n,FOt(n,FOt(QQt(VQt,Nwe),s)))}function WWt(r,e,n,t){return lCt(0,r,SOt(11,e),fwe,uwe,function(r,e,a){var u=rCt(r,awe),f=u[2],i=u[1],v=FOt(f,oLt(r)),c=FOt(yQt(r,nJ),v),A=FOt(i,FOt(f,FOt(iLt(r,64),c))),o=FOt(uz(n,r),A),s=FOt(a,FOt(cLt(r),o));return vz(t,r,e,a,FOt(e,FOt(cLt(r),s)))})}function XWt(r,e,n,t,a){var u=mQt(1,FOt(n,FOt(t,r)),a),f=FOt(PQt(0),u),i=FOt(MOt(ewe),f),v=FOt(t,FOt(QQt(CQt,nwe),i));return FOt(n,FOt(QQt(CQt,twe),v))}function JWt(r,e,n,t){return lCt(0,r,SOt(6,e),Hye,Cye,function(r,e,a){var u=rCt(r,Qye),f=u[2],i=u[1],v=FOt(f,oLt(r)),c=FOt(yQt(r,nJ),v),A=FOt(i,FOt(f,FOt(fLt(r,64),c))),o=FOt(uz(n,r),A),s=FOt(a,FOt(ALt(r),o));return vz(t,r,e,a,FOt(e,FOt(ALt(r),s)))})}function YWt(r){var e=yQt(r,nJ),n=FOt(PQt(0),e);return FOt(QQt(7,Rye),n)}function rXt(r,e,n){return lCt(0,r,SOt(10,e),$ye,Gye,function(r,e,t){var a=rCt(r,Fye),u=a[2],f=a[1],i=FOt(u,QQt(VQt,Mye)),v=YWt(r),c=FOt(MOt(Kye),v),A=FOt(f,FOt(u,FOt(u,FOt(FOt(QQt(VQt,Oye),c),i)))),o=FOt(MOt([20,[1,n]]),A),s=FOt(t,FOt(QQt(HQt,Pye),o));return FOt(e,FOt(QQt(HQt,Uye),s))})}function eXt(r,e,n){return lCt(0,r,SOt(5,e),Tye,Nye,function(r,e,t){var a=rCt(r,qye),u=a[2],f=a[1],i=FOt(u,QQt(VQt,Iye)),v=FOt(f,FOt(u,FOt(YWt(r),i))),c=FOt(MOt([20,[1,n]]),v),A=FOt(t,FOt(QQt(CQt,Dye),c));return FOt(e,FOt(QQt(CQt,Eye),A))})}function nXt(r,e){var n=yQt(r,nJ),t=FOt(PQt(0),n);return FOt(QQt(7,kV(Nz,e)),t)}function tXt(r,e){var n=nXt(r,e),t=FOt(MOt(wye),n);return FOt(QQt(VQt,gye),t)}function aXt(r,e,n,t){return lCt(0,r,SOt(e,n),yye,xye,function(r,e,n){var a=rCt(r,mye),u=a[2],f=a[1],i=FOt(u,QQt(VQt,dye)),v=FOt(t,FOt(f,FOt(u,FOt(u,FOt(tXt(r,16),i))))),c=FOt(n,FOt(QQt(HQt,_ye),v));return FOt(e,FOt(QQt(HQt,hye),c))})}function uXt(r,e,n,t){return aXt(r,e,n,MOt([20,[1,t]]))}function fXt(r,e,n,t){return lCt(0,r,SOt(e,n),pye,kye,function(r,e,n){var a=rCt(r,bye),u=a[2],f=a[1],i=FOt(u,QQt(VQt,lye)),v=FOt(t,FOt(f,FOt(u,FOt(nXt(r,16),i)))),c=FOt(n,FOt(QQt(CQt,Bye),v));return FOt(e,FOt(QQt(CQt,jye),c))})}function iXt(r,e,n,t){return fXt(r,e,n,MOt([20,[1,t]]))}function vXt(r,e,n){if(1===e)return[0,0,3,MOt(0)];r:{e:if("number"==typeof e){if(1===e){var t=MOt(0);break r}}else if(2===e[0]){var a=e[1];n:{t:{a:{switch(a){case 2:switch(n){case 1:t=WVt(GJ,VHt,QVt,r);break r;case 3:t=WVt(QYe,IWt,FWt,r);break r;case 4:t=WVt(CYe,wWt,TWt,r);break r;case 5:t=rLt(r);break r;default:break n}case 3:if(2!==n)break a;var u=MOt(Khe);t=fXt(r,3,Rhe,FOt(QQt(CQt,Ohe),u));break r;case 4:if(2!==n)break a;t=iXt(r,4,Qhe,2);break r;case 5:if(3<=n)break a;switch(n){case 0:t=eXt(r,Che,0);break r;case 1:t=eXt(r,Hhe,1);break r;default:t=eXt(r,Vhe,2);break r}case 6:switch(n){case 0:var f=MOt(Lhe);t=JWt(r,zhe,XVt,function(r,e,n,t){return XWt(f,0,e,n,t)});break r;case 1:t=JWt(r,She,DWt,function(r,e,n){var t=FOt(e,FOt(n,MOt($he))),a=FOt(yQt(r,nJ),t),u=FOt(MQt(9),a);return function(r){return XWt(u,0,e,n,r)}});break r;case 2:var i=MOt(Zhe);t=JWt(r,Whe,YVt,function(r,e,n,t){var a=mQt(1,FOt(e,FOt(n,i)),t),u=FOt(MQt(9),a),f=FOt($Qt(Xye),u),v=FOt(MOt(Jye),f),c=FOt(n,FOt(MOt(Yye),v));return FOt(e,FOt(MOt(rwe),c))});break r;case 3:t=MOt(Xhe);break r;case 4:t=MOt(Jhe);break r;case 5:var v=LHt(r);t=JWt(r,Yhe,rLt,function(r,e,n,t){var a=mQt(1,FOt(e,FOt(n,v)),t),u=FOt(MQt(8),a),f=FOt($Qt(Vye),u),i=FOt(n,FOt(MOt(Lye),f)),c=FOt(QQt(1,zye),i),A=FOt(e,FOt(MOt(Sye),c)),o=FOt(xQt(r,tJ),A),s=FOt(MQt(9),o),b=mQt(1,e,FOt(n,FOt($Qt(Zye),s))),l=FOt(PQt(0),b),B=mQt(1,RQt,FOt(e,FOt(QQt(CQt,Wye),l)));return FOt(n,FOt(PQt(0),B))});break r;case 10:t=MOt(rxe);break r;case 16:t=LHt(r);break r}break;case 7:switch(n){case 1:t=WVt(UJ,HHt,RVt,r);break r;case 3:t=WVt(OYe,qWt,EWt,r);break r;case 4:t=WVt(RYe,yWt,NWt,r);break r;case 5:var c=rLt(r),A=rCt(r,exe),o=A[2],s=A[1],b=rCt(r,nxe),l=b[2],B=b[1],j=FOt(o,FOt(l,c)),k=FOt(xQt(r,txe),j),p=rCt(r,tYe),m=p[2],d=p[1],_=FOt(m,FOt(uz(lQt(r),mXe),SCt)),h=MQt(2),x=FOt($Qt(aYe),h);t=FOt(B,FOt(s,FOt(l,FOt(FOt(d,FOt(m,JCt(r,uYe,FOt(m,FOt(zVt(),x)),_))),k))));break r;default:break n}case 8:if(2!==n)break a;var y=MOt(axe);t=aXt(r,8,fxe,FOt(QQt(HQt,uxe),y));break r;case 9:if(2!==n)break a;t=uXt(r,9,ixe,2);break r;case 10:if(3<=n)break a;switch(n){case 0:t=rXt(r,vxe,0);break r;case 1:t=rXt(r,cxe,1);break r;default:t=rXt(r,Axe,2);break r}case 11:switch(n){case 0:var w=MOt(oxe);t=WWt(r,sxe,XVt,function(r,e,n,t){return ZWt(w,0,e,n,t)});break r;case 1:var g=MOt(bxe);t=WWt(r,lxe,gWt,function(r,e,n,t){return ZWt(g,0,e,n,t)});break r;case 2:var q=MOt(Bxe);t=WWt(r,jxe,YVt,function(r,e,n,t){var a=mQt(1,FOt(e,FOt(n,q)),t),u=FOt(MQt(9),a),f=FOt($Qt(kwe),u),i=FOt(MOt(pwe),f),v=FOt(MOt(mwe),i),c=FOt(MOt(dwe),v),A=FOt(n,FOt(n,FOt(QQt(VQt,_we),c))),o=FOt(MOt(hwe),A),s=FOt(MOt(xwe),o);return FOt(e,FOt(e,FOt(QQt(VQt,ywe),s)))});break r;case 3:t=MOt(kxe);break r;case 4:t=MOt(pxe);break r;case 5:var I=rCt(r,mxe),D=I[2],E=I[1],N=LHt(r),T=FOt(D,WWt(r,dxe,rLt,function(r,e,n,t){var a=mQt(1,FOt(e,FOt(n,N)),t),u=FOt(MQt(8),a),f=FOt($Qt(iwe),u),i=FOt(n,FOt(MOt(vwe),f)),v=FOt(QQt(1,cwe),i),c=FOt(MOt(Awe),v),A=FOt(MOt(owe),c),o=FOt(e,FOt(e,FOt(QQt(VQt,swe),A))),s=FOt(xQt(r,tJ),o),b=FOt(MQt(9),s),l=mQt(1,e,FOt(n,FOt($Qt(bwe),b))),B=FOt(PQt(0),l),j=FOt(e,FOt(QQt(HQt,lwe),B)),k=mQt(1,RQt,e),p=FOt(PQt(0),k),m=mQt(1,FOt(n,FOt(RQt,FOt(MOt(Bwe),p))),j),d=FOt(MQt(0),m),_=mQt(1,RQt,FOt(e,FOt($Qt(jwe),d)));return FOt(n,FOt(PQt(0),_))})),F=FOt(xQt(r,_xe),T),M=FOt(MQt(2),F);t=FOt(E,FOt(D,FOt($Qt(hxe),M)));break r;case 10:t=MOt(xxe);break r;case 16:t=lCt(1,r,L1e,V1e,H1e,function(r,e,n){var t=FOt(e,FOt(n,LHt(r))),a=FOt(yQt(r,Q1e),t),u=FOt(MQt(8),a);return FOt(n,FOt($Qt(C1e),u))});break r}break;case 12:switch(n){case 0:t=MOt(yxe);break r;case 1:t=MOt(wxe);break r;case 2:t=MOt(gxe);break r;case 3:t=MOt(qxe);break r;case 4:t=uz(lQt(r),Ixe);break r;case 5:t=uz(lQt(r),Dxe);break r;default:break e}case 13:switch(n){case 0:t=MOt(Exe);break r;case 1:t=MOt(Nxe);break r;case 2:t=MOt(Txe);break r;case 3:t=MOt(Fxe);break r;case 4:t=uz(lQt(r),Mxe);break r;case 5:t=uz(lQt(r),Pxe);break r;default:break e}case 15:if(17>n)break e;t=uz(lQt(r),DZe);break r;default:break e}switch(n){case 9:t=MOt(Uxe);break r;case 11:t=MOt(Gxe);break r;case 12:t=MOt($xe);break r;case 13:t=MOt(Kxe);break r;case 14:t=MOt(Oxe);break r;case 15:t=MOt(Rxe);break r;case 6:case 7:case 8:break t;default:break e}}switch(n){case 9:var P=MOt(Qxe),U=FOt(rVt(a),P);t=FOt(eVt(a),U);break r;case 11:t=lCt(1,r,SOt(a,r1e),Y0e,J0e,function(r,e,n){var t=QQt(14,aV(SHt(a))),u=tVt(a),f=FOt(MOt(W0e),u),i=FOt(rVt(a),f),v=FOt(n,FOt(eVt(a),i));return FOt(e,FOt(e,FOt(t,FOt(MOt(X0e),v))))});break r;case 12:t=lCt(1,r,SOt(a,Z0e),S0e,z0e,function(r,e,n){var t=QQt(13,aV(SHt(a))),u=tVt(a),f=FOt(MOt(V0e),u),i=FOt(rVt(a),f),v=FOt(n,FOt(eVt(a),i));return FOt(e,FOt(e,FOt(t,FOt(MOt(L0e),v))))});break r;case 13:t=MOt(Cxe);break r;case 14:t=MOt(Hxe);break r;case 15:var G=MOt(j1e);t=FOt(eVt(a),G);break r;case 0:case 1:switch(a-3|0){case 5:case 6:if(n){t=uXt(r,a,Vxe,1);break r}t=uXt(r,a,Lxe,0);break r;case 2:case 7:break e;default:if(n){t=iXt(r,a,zxe,1);break r}t=iXt(r,a,Sxe,0);break r}case 2:case 17:break e;case 6:case 7:case 8:break;default:if(8<=a)switch(n-3|0){case 1:t=MOt(Zxe);break r;case 2:t=lCt(0,r,SOt(a,Jxe),Xxe,Wxe,function(r,e,n){var t=rCt(r,Ehe),u=t[2],f=t[1],i=SHt(a),v=LOt(e),c=LOt(n);a:{var A=FOt(RQt,nVt(a));if(10<=a){if(11>a){var o=11;break a}}else if(8<=a){o=10;break a}throw gQ([0,xz,Nhe],1)}var s=0|-((2*SHt(o)|0)-2|0),b=FOt(u,nVt(a)),l=FOt(f,FOt(u,FOt(u,FOt(tXt(r,i),b)))),B=FOt(e,FOt(n,FOt(sVt(r,6),l))),j=FOt(xQt(r,tJ),B),k=FOt(MQt(2),j),p=FOt($Qt(aV(s)),k),m=FOt(n,FOt(MOt(The),p)),d=FOt(QQt(1,aV(i-1|0)),m),_=FOt(FVt(e),d),h=FOt(xQt(r,tJ),_),x=FOt(MQt(9),h),y=FOt(n,FOt($Qt(Fhe),x)),w=FOt(e,nVt(a)),g=$Qt(kV(Ez,uV(WHt(a)))),q=mQt(1,FOt(e,nVt(a)),g),I=mQt(1,FOt(n,FOt(RQt,FOt(MOt(Mhe),q))),w),D=mQt(1,FOt(e,FOt(OQt,FOt(MQt(2),I))),y),E=FOt(MOt(Phe),D),N=FOt(MQt(8),E),T=FOt(e,FOt($Qt(Uhe),N)),F=FOt(n,FOt(XCt,mQt(1,FOt(e,FOt(RQt,FOt(MQt(6),T))),A))),M=FOt(xQt(r,Ghe),F),P=FOt(c,FOt(n,FOt(OQt,FOt(MQt(2),M)))),U=FOt(v,FOt(n,FOt(eVt(a),P)));return FOt(e,FOt(eVt(a),U))});break r;case 7:var $=tVt(a),K=FOt(MOt(Yxe),$),O=FOt(rVt(a),K);t=FOt(eVt(a),O);break r;case 13:t=lCt(1,r,SOt(a,t1e),u1e,a1e,function(r,e,n){switch(a){case 3:case 8:var t=3;break;case 4:case 9:t=4;break;case 5:case 10:t=5;break;case 6:case 11:t=6;break;default:throw gQ([0,xz,$1e],1)}var u=FOt(e,FOt(n,sVt(r,t))),f=FOt(yQt(r,e1e),u),i=FOt(MQt(8),f);return FOt(n,FOt($Qt(n1e),i))});break r;default:t=lCt(0,r,SOt(a,"div"),eye,rye,function(r,e,n){var t=rCt(r,yhe),u=t[2],f=t[1],i=dQt(r,whe,MOt(0),u),v=FOt(WQt(ghe),i),c=dQt(r,qhe,FOt(n,FOt(eVt(a),v)),u),A=FOt(f,FOt(e,FOt(WQt(Ihe),c))),o=FOt(nVt(a),A);return FOt(e,FOt(n,FOt(MOt(Dhe),o)))});break r}switch(n-3|0){case 1:t=MOt(nye);break r;case 2:t=lCt(0,r,SOt(a,uye),aye,tye,function(r,e,n){var t=rCt(r,mhe),u=t[2],f=t[1],i=SHt(a),v=LOt(e),c=LOt(n),A=FOt(RQt,nVt(a));a:{var o=FOt(e,nVt(a));if(5<=a){if(6>a){var s=6;break a}}else if(3<=a){s=5;break a}throw gQ([0,xz,dhe],1)}var b=0|-((2*SHt(s)|0)-2|0),l=FOt(u,nVt(a)),B=FOt(f,FOt(u,FOt(nXt(r,i),l))),j=FOt(e,FOt(n,FOt(sVt(r,6),B))),k=FOt(xQt(r,tJ),j),p=FOt(MQt(2),k),m=FOt($Qt(aV(b)),p),d=FOt(n,FOt(MOt(_he),m)),_=FOt(QQt(1,aV(i)),d),h=FOt(TVt(e),_),x=FOt(xQt(r,tJ),h),y=FOt(MQt(9),x),w=FOt(XCt,mQt(1,FOt(n,FOt($Qt(hhe),y)),o)),g=FOt(c,FOt(n,FOt(XCt,mQt(1,FOt(e,FOt(QQt(CQt,xhe),w)),A)))),q=FOt(v,FOt(n,FOt(eVt(a),g)));return FOt(e,FOt(eVt(a),q))});break r;case 7:var R=tVt(a),Q=FOt(MOt(fye),R),C=FOt(rVt(a),Q);t=FOt(eVt(a),C);break r;case 13:t=sVt(r,a);break r;default:var H=nVt(a);t=FOt(MOt(iye),H);break r}}}switch(n-6|0){case 0:t=MOt(vye);break r;case 1:t=MOt(cye);break r;default:t=MOt(Aye);break r}}if(3>n)switch(n){case 0:t=WVt(MJ,CHt,KVt,r);break r;case 2:t=WVt(PJ,JVt,OVt,r);break r}}var V=[0,lbt(e),0];t=JQt(r,sye,[1,oye,[0,zjt(n),V]])}var L=BSt(e);return[0,BSt(e),L,t]}function cXt(r){return function(e){r:{if("number"!=typeof e){switch(e[0]){case 2:switch(e[1]){case 12:return UQt(0);case 13:var n=MOt(Bhe);return FOt(MOt(jhe),n);case 15:return ezt(r,0);case 2:case 7:return aLt(r);case 16:case 18:break;case 0:case 17:case 19:break r;default:return MQt(0)}break;case 3:if(1!==e[1])break r;break;case 8:if(!e[1])break r;var t=rCt(r,pqe),a=t[2],u=t[1],f=rCt(r,mqe),i=f[2],v=f[1],c=HCt(0),A=gLt(r,dqe),o=FOt(i,FOt(uzt(0,_qe),A)),s=mQt(1,FOt(a,FOt(uzt(0,hqe),o)),c),b=FOt(gLt(r,xqe),s),l=FOt(i,FOt(uzt(0,yqe),b));return FOt(v,FOt(u,FOt(a,FOt(uzt(0,wqe),l))));default:break r}return gLt(r,phe)}if(1===e)return MOt(0)}return JQt(r,khe,lbt(e))}}function AXt(r,e,n,t){var a=lCt(1,r,LSe,VSe,HSe,function(r,e,n){var t=function(r){return lCt(1,r,XSe,WSe,ZSe,function(r,e,n){var t=MOt(zSe),a=FOt(e,FOt(yCt(WJ),t)),u=FOt(LQt(XJ),a),f=FOt(n,FOt(QQt(0,nzt),u)),i=FOt(yQt(r,SSe),f),v=FOt(MQt(3),i);return FOt(n,FOt(e,FOt(azt(),v)))})}(r);return FOt(e,FOt(n,FOt(lLt(r,dLt(r,1,CSe)),t)))}),u=FOt(BXt(r,e,t),a);return FOt(BXt(r,e,n),u)}function oXt(r,e,n,t,a){r:{e:{n:{t:{a:{u:{f:{i:{v:{c:{A:{o:{s:{b:{l:{B:{j:{k:{p:{var f=n,i=t;m:for(;;){let n=i;var v=function(t,a){return[0,t,FOt(POt(function(n){return bXt(r,e,t,n)},n),a)]};if("number"==typeof f)break n;switch(f[0]){case 0:if(!i)break r;var c=i[2];if(!c)break r;if(c[2])break r;var A=c[1],o=i[1],s=jAt(Jct(o[3][1])),b=s[2],l=s[1],B=s[5],j=G0(s[4]);switch(b){case 0:var k=G0(B);break;case 1:throw gQ([0,xz,$Be],1);default:k=0}var p=sXt(r,e,o),m=p[2],d=p[1];d:{if("number"!=typeof d&&2===d[0]){var _=d[1];if("number"!=typeof _&&0===_[0]&&_[3]){var h=A[2];if(0===j){var x=1;break d}if(1===j){x=1;break d}if(0===h[0]){var w=h[1],g=w[1];if("number"==typeof g&&!g&&G0(w[2])===j){x=1;break d}}x=0;break d}}x=0}if("number"==typeof d)break t;if(2!==d[0])break t;var I=d[1];if("number"==typeof I)break t;if(0!==I[0])break t;var D=I[3];if(D){var E=D[1];if(x){if(0!==l)throw gQ([0,xz,KBe],1);var N=A[2];if(0===j){var T=oXt(r,e,E,0,a),F=T[2];return[0,T[1],FOt(m,FOt(bXt(r,e,lSt(0),A),F))]}if(1===j){f=E,i=[0,A,0];break}if(0===N[0]){var M=N[1],P=M[1];if("number"==typeof P&&!P){var U=M[2];if(G0(U)!==j)throw gQ([0,xz,OBe],1);f=E,i=U;break}}throw gQ([0,kz,RBe],1)}}var G=I[2];if(0!==l)throw gQ([0,xz,QBe],1);var $=vCt(r,Hrt(k,1)),K=FOt(MOt([6,[0,O9n,uz(G,0)]]),$),O=FOt(m,FOt(OQt,FOt(bXt(r,e,lSt(j),A),K)));return[0,lSt(k),O];case 1:break a;case 2:break u;case 3:break f;case 4:if(!i)break r;if(i[2])break r;var Q=i[1],C=bzt(0,aV(f[1]));return[0,0,FOt(BXt(r,e,Q),C)];case 5:if(!i)break r;if(i[2])break r;var H=f[1];return[0,0,MHt(r,H,BXt(r,e,i[1]))];case 6:break i;case 7:if(!i)break r;if(i[2])break r;var V=i[1],L=Gzt(r,f[1]);return[0,0,FOt(BXt(r,e,V),L)];case 8:break v;case 9:break c;case 12:break A;case 13:break o;case 14:break s;case 15:break b;case 16:break l;case 17:if(!i)break r;if(i[2])break r;return sXt(r,e,i[1]);case 18:break B;case 19:if(i)break r;return[0,0,Tzt(r)];case 20:break j;case 23:break k;case 24:break p;case 25:break m;case 26:if(!i)break r;if(i[2])break r;return[0,xde,hQt(r,"Deprecated with enhanced orthogonal persistence")];case 27:if(i)break r;return[0,VJ,RZt(r,f[1])];default:break r}}if(i)break r;var z=f[1],S=uz(lQt(r),WKe),Z=FOt($Qt(XKe),S),W=hQt(r,"Detected implicit upgrade from classical orthogonal persistence to enhanced orthogonal persistence. Recompile with explicit flag --enhanced-orthogonal-persistence and redeploy to enable this irreversible migration."),X=FOt(yQt(r,yge),W),J=FOt(cWt(r),X),Y=OZt(r,z),rr=Yzt(r),nr=$Qt(Zzt),tr=FOt(yQt(r,"Unsupported stable memory version when upgrading from graph-copy-based stabilization"),nr),ar=FOt(WQt(zzt),tr),ur=FOt(Jzt(r),ar),fr=FOt(mQt(1,$Qt(Szt),ur),rr),ir=FOt(WQt(Lzt),fr),vr=FOt(FOt(Jzt(r),ir),Y),cr=nWt(r),Ar=FOt(xQt(r,"Destabilization is not yet completed: Call __motoko_destabilize_after_upgrade"),cr),or=FOt(PQt(0),Ar),sr=mQt(1,FOt(FOt(nWt(r),or),vr),J),br=FOt(AWt(r),sr),lr=bSt(r),Br=FOt(MOt(_Ge),lr),jr=FOt(jCt(r),Br),kr=FOt(sSt(r),jr),pr=eCt(r,KIe),dr=pr[2],_r=pr[1],hr=FOt(dr,iSt(r)),xr=FOt($Qt(OIe),hr),yr=FOt(GZt(r,uY,0),xr),wr=FOt(GZt(r,aY,0),yr),qr=FOt(GZt(r,tY,1),wr),Ir=FOt(Xzt(r),qr),Dr=FOt(_r,FOt(UZt(r,tY,1),Ir)),Er=FOt(UZt(r,aY,0),Dr),Nr=FOt(yQt(r,fz(H6(RIe),iV($M,Szt),iV($M,Zzt))),Er),Tr=FOt(MOt(QIe),Nr),Fr=FOt(WQt(Zzt),Tr),Mr=FOt(Jzt(r),Fr),Pr=FOt(WQt(Szt),Mr),Ur=FOt(Jzt(r),Pr),Gr=FOt(Yzt(r),Ur),Kr=FOt(MOt(CIe),Gr),Rr=FOt(UZt(r,uY,0),Kr),Qr=Xzt(r),Cr=pQt(FOt($Qt(HIe),Qr),Rr),Hr=FOt(PQt(0),Cr),Vr=FOt(FOt(MZt(r),Hr),kr),Lr=uz(lQt(r),PIe),zr=FOt(QZt(r,z),Lr),Zr=FOt($Zt(r),zr),Wr=FOt(mQt(1,TLt(r,H0(function(r){return[0,r[1],function(r){return cHt}]},oAt(z)[2])),Zr),Vr),Xr=FOt(PQt(0),Wr),Jr=FOt($Zt(r),Xr),Yr=FOt(mQt(1,FOt(OZt(r,z),Jr),br),Z);return[0,0,FOt(oWt(r),Yr)]}if(i)break r;var re=f[1],ee=bSt(r),ne=FOt(jCt(r),ee),te=eCt(r,VIe),ae=te[2],ue=te[1],fe=MOt(LIe),ie=PZt(r,uY,0,FOt(Jzt(r),fe)),ve=FOt(PZt(r,aY,0,ae),ie),ce=FOt(PZt(r,tY,1,Wzt(r)),ve),Ae=lCt(0,r,oKe,AKe,0,function(r,e,n){var t=rCt(r,"sum"),a=t[2],u=t[1],f=xQt(r,aKe),i=FOt(MQt(2),f),v=FOt($Qt(uKe),i),c=FOt(cSt(r),v),A=FOt(QQt(0,fKe),c),o=FOt(MOt(iKe),A),s=FOt(a,FOt($Qt(NC(16,0,0)),o)),b=FOt(xQt(r,vKe),s),l=FOt(u,FOt(a,FOt(e,FOt(MQt(3),b))));return FOt(e,FOt(n,FOt(MOt(cKe),l)))}),oe=FOt($Qt(tY),Ae),se=FOt(QQt(VQt,NC(16,0,0)),oe),be=FOt(FOt(Wzt(r),se),ce),le=FOt(iSt(r),be),Be=FOt(KQt(0),le),je=FOt(ue,FOt($Qt(zIe),Be)),ke=FOt(vSt(r),je),pe=pQt(TOt,FOt($Qt(SIe),ke)),de=FOt(PQt(0),pe),_e=FOt(FOt(MZt(r),de),ne),he=FOt(uz(lQt(r),UIe),_e),xe=FOt(Nzt(r),he),ye=FOt(RZt(r,re),xe),we=pQt(TOt,MOt([3,[0,O9n,1]])),ge=QOt(FOt(HZt(r),we)),qe=pQt(FOt(aWt(r,re),ge),ye);return[0,VJ,FOt(CZt(r),qe)]}if(!i)break r;if(i[2])break r;var De=i[1],Ee=f[1];if(1>>0)var Ne=hQt(r,hde);else{var Te=Pzt(r),Fe=FOt(NZt(r,Ee),Te);Ne=FOt(BXt(r,e,De),Fe)}return[0,VJ,Ne]}var Me=f[1],Pe=YC(Me,Jg);if(0>Pe){var Ue=YC(Me,jE);if(0>Ue){var Ge=YC(Me,$u);if(0<=Ge){if(0>=Ge){if(!i)break r;var $e=i[2];if(!$e)break r;if($e[2])break r;return v(hke,iVt(r,9))}var Ke=YC(Me,n_);if(0<=Ke){if(0>=Ke){if(!i)break r;if(i[2])break r;return pXt(r,e,i[1],_ke)}var Oe=YC(Me,SU);if(0<=Oe){if(0>=Oe){if(!i)break r;if(i[2])break r;var Re=i[1],Qe=uVt(5);return[0,dke,FOt(bXt(r,e,mke,Re),Qe)]}if(Me===y){if(!i)break r;if(i[2])break r;var Ce=i[1],He=MOt(jke);return[0,pke,FOt(bXt(r,e,kke,Ce),He)]}if(Me===vj){if(!i)break r;if(i[2])break r;var Ve=i[1],Le=uVt(3);return[0,Bke,FOt(bXt(r,e,lke,Ve),Le)]}if(Me===mo){if(!i)break r;if(i[2])break r;var ze=i[1],Se=uVt(9);return[0,bke,FOt(bXt(r,e,ske,ze),Se)]}if(Me!==dF){if(Me!==JA)break r;if(!i)break r;if(i[2])break r;var Ze=i[1],We=MOt(ike);return[0,cke,FOt(bXt(r,e,vke,Ze),We)]}if(!i)break r;if(i[2])break r;var Xe=i[1],Je=uVt(10);return[0,oke,FOt(bXt(r,e,Ake,Xe),Je)]}if(Me===XG){if(!i)break r;if(i[2])break r;return pXt(r,e,i[1],fke)}if(Me===nw){if(!i)break r;if(i[2])break r;return pXt(r,e,i[1],uke)}if(Me===Pg){if(!i)break r;if(i[2])break r;return kXt(r,e,i[1],ake)}if(Me!==sx){if(Me!==Or)break r;if(!i)break r;if(i[2])break r;var rn=i[1],en=uVt(4);return[0,nke,FOt(bXt(r,e,eke,rn),en)]}if(!i)break r;if(i[2])break r;return kXt(r,e,i[1],tke)}var nn=YC(Me,nq);if(0<=nn){if(0>=nn){if(i)break r;var tn=1>>0?hQt(r,dQe):sCt(1,r,hQe,_Qe,function(r){return wLt(r,0,function(r){return wzt(r,kQe)},function(r){return wzt(r,pQe)},function(r){return $Qt(mQe)})});return[0,0,tn]}if(Me===_l){if(i)break r;var an=1>>0?hQt(r,gQe):sCt(1,r,IQe,qQe,function(r){return wLt(r,0,function(r){return wzt(r,xQe)},function(r){return wzt(r,yQe)},function(r){return $Qt(wQe)})});return[0,0,an]}if(Me===Wd){if(i)break r;return[0,0,Tzt(r)]}if(Me===$r){if(i)break r;var un=1>>0?hQt(r,iCe):sCt(1,r,cCe,vCe,function(r){return wLt(r,3,function(r){return wzt(r,aCe)},function(r){return wzt(r,uCe)},function(r){return $Qt(fCe)})});return[0,0,un]}if(Me!==Gp){if(Me!==L_)break r;if(!i)break r;if(i[2])break r;return pXt(r,e,i[1],Yje)}if(i)break r;return[0,rke,gzt(aHe,r)]}if(Me===$o){if(!i)break r;var fn=i[2];if(!fn)break r;if(fn[2])break r;return v(Jje,iVt(r,10))}if(Me===kR){if(!i)break r;var vn=i[2];if(!vn)break r;if(vn[2])break r;return v(Xje,zHt(r))}if(Me===Ew){if(!i)break r;var cn=i[2];if(!cn)break r;if(cn[2])break r;return v(Wje,iVt(r,8))}if(Me!==bO){if(Me!==Yy)break r;if(i)break r;var An=nVt(5);return[0,Zje,FOt(_zt(r),An)]}if(i)break r;return[0,0,MOt([11,[0,O9n,aQt(r,dze)]])]}var on=YC(Me,Xc);if(0<=on){if(0>=on)return v(0,yLt(r,2,0));var sn=YC(Me,Kx);if(0<=sn){if(0>=sn){if(!i)break r;if(i[2])break r;var bn=i[1],ln=bCt(1,r,sXe,oXe,AXe,function(r,e){var n=ALt(r);return FOt(e,FOt(jLt(),n))});return[0,0,FOt(BXt(r,e,bn),ln)]}if(Me===sy){if(!i)break r;if(i[2])break r;var Bn=i[1],jn=uz(lQt(r),VWe);return[0,0,FOt(BXt(r,e,Bn),jn)]}if(Me===ny){if(!i)break r;var kn=i[2];if(!kn)break r;if(kn[2])break r;return v(Sje,iVt(r,4))}if(Me===Ie){if(!i)break r;var pn=i[2];if(!pn)break r;if(pn[2])break r;return v(zje,iVt(r,5))}if(Me!==WM){if(Me!==sd)break r;if(!i)break r;var mn=i[2];if(!mn)break r;if(mn[2])break r;return v(Vje,iVt(r,3))}if(!i)break r;var dn=i[2];if(!dn)break r;if(dn[2])break r;return v(Lje,zHt(r))}if(Me===CA)return v(0,szt(r,0));if(Me===AI)return v(0,szt(r,1));if(Me===mr){if(!i)break r;var _n=i[2];if(!_n)break r;if(_n[2])break r;var hn=_n[1],xn=i[1],yn=nVt(8),wn=FOt(gLt(r,0),yn),gn=FOt(BXt(r,e,hn),wn);return[0,Hje,FOt(BXt(r,e,xn),gn)]}if(Me!==_q){if(Me!==EE)break r;if(!i)break r;if(i[2])break r;var qn=i[1],In=nVt(3),Dn=FOt(uz(lQt(r),CWe),In);return[0,Cje,FOt(BXt(r,e,qn),Dn)]}if(!i)break r;if(i[2])break r;var En=i[1],Nn=uz(lQt(r),HWe);return[0,0,FOt(BXt(r,e,En),Nn)]}var Tn=YC(Me,Ex);if(0<=Tn){if(0>=Tn){if(!i)break r;if(i[2])break r;var Fn=i[1],Mn=kV(FJe,eHt(7)),Pn=kV(Mn,64-rHt(7)|0),Un=rCt(r,FJ),Gn=Un[2],$n=Un[1],Kn=FOt(Gn,uz(lQt(r),FXe)),On=rCt(r,DJe),Rn=On[2],Qn=On[1],Cn=FOt(Rn,zQt(kRt(7))),Hn=SVt(),Vn=FOt(Rn,FOt(MOt(EJe),Hn)),Ln=FOt($Qt(NJe),Vn),zn=GVt(r),Sn=mQt(1,FOt($Qt(Mn),zn),Ln),Zn=mQt(1,FOt(Rn,FOt(WQt(Pn),Sn)),Cn),Wn=FOt(MQt(2),Zn),Xn=FOt(Qn,FOt(Rn,FOt($Qt(TJe),Wn))),Jn=FOt($n,FOt(Gn,JCt(r,[0,1,0],FOt(Gn,FOt(zVt(),Xn)),Kn)));return[0,0,FOt(BXt(r,e,Fn),Jn)]}if(Me===WT)return v(0,yLt(r,2,3));if(Me===Qv){if(!i)break r;if(i[2])break r;var Yn=i[1],rt=uz(lQt(r),Qje);return[0,0,FOt(FOt(BXt(r,e,Yn),bCt(1,r,"weak_try_inject",G2e,U2e,function(r,e){var n=gHt(r,e),t=[0,[0,D2e,hQt(r,"weak reference of Float")],0],a=[0,[0,E2e,hQt(r,"weak reference of Int64")],t],u=[0,[0,N2e,hQt(r,"weak reference of Nat64")],a],f=[0,[0,6,hQt(r,"weak reference of Int")],u],i=dQt(r,F2e,FOt(e,BHt(r,T2e,e,[0,[0,3,gHt(r,e)],f])),n),v=FOt(e,FOt(AHt(),i)),c=dQt(r,M2e,hQt(r,"weak reference of `true`"),v),A=FOt(e,FOt(WQt(CJ),c)),o=FOt(e,JCt(r,P2e,hQt(r,"weak reference of non-reference"),A)),s=FOt(xQt(r,"weak reference of null"),o);return FOt(e,FOt(WQt(zJ),s))})),rt)]}if(Me!==gA&&Me!==dd){if(Me!==Au)break r;if(!i)break r;if(i[2])break r;var et=i[1],nt=ALt(r),at=FOt(azt(),nt);return[0,0,FOt(BXt(r,e,et),at)]}return v(0,bCt(0,r,dSe,mSe,pSe,function(r,e){var n=rCt(r,jSe),t=n[2],a=n[1],u=rCt(r,kSe),f=u[2],i=FOt(u[1],FOt(t,FOt(tCt(r,function(n){var t=MOt(lSe),a=FOt(eVt(3),t),u=FOt(BRt[5],a),i=FOt(e,FOt(n,FOt(fzt(r),u))),v=FOt(n,FOt(MOt(BSe),i));return FOt(f,FOt(pLt(),v))}),f))),v=FOt(a,FOt(kLt(r,0,t),i));return FOt(e,FOt(azt(),v))}))}if(Me===kD){if(!i)break r;var ft=i[2];if(!ft)break r;if(ft[2])break r;var it=rCt(r,PSe),vt=it[2],ct=it[1],At=rCt(r,USe),ot=At[2],st=At[1],bt=FOt(ot,jHt(r)),lt=FOt(st,FOt(Azt(r,ot,function(r){return FOt(r,FOt(vt,BRt[6]))}),bt)),Bt=FOt(st,FOt(czt(r,1,ot),lt));return v(0,FOt(ct,FOt(bLt(r),Bt)))}if(Me===Xw){if(!i)break r;var jt=i[2];if(!jt)break r;if(jt[2])break r;return v(0,ozt(r,0))}if(Me===Ww){if(!i)break r;var kt=i[2];if(!kt)break r;if(kt[2])break r;return v(0,ozt(r,1))}if(Me!==tN){if(Me!==VN)break r;if(!i)break r;if(i[2])break r;var pt=i[1],mt=uz(lQt(r),Pje),_t=FOt($Qt(oVt(3,Uje)),mt),ht=FOt($Qt(oVt(3,Gje)),_t),xt=FOt(MOt($je),ht);return[0,0,FOt(bXt(r,e,2,pt),xt)]}if(!i)break r;if(i[2])break r;var yt=i[1],wt=uz(lQt(r),Kje),gt=FOt($Qt(oVt(3,Oje)),wt),qt=FOt($Qt(oVt(3,Rje)),gt);return[0,0,FOt(bXt(r,e,1,yt),qt)]}if(0>=Ue){if(!i)break r;if(i[2])break r;var It=i[1],Dt=uVt(8);return[0,ype,FOt(bXt(r,e,xpe,It),Dt)]}var Et=YC(Me,uG);j:{if(0>Et){var Nt=YC(Me,BP);if(0>Nt){var Tt=YC(Me,pd);if(0<=Tt){if(0>=Tt){if(!i)break r;var Ft=i[2];if(!Ft)break r;if(Ft[2])break r;var Mt=Ft[1],Pt=i[1],Ut=lCt(0,r,Xwe,[0,[0,Wwe,1],Zwe],[0,1,Swe],function(r,e,n){var t=rCt(r,zwe),a=t[2],u=t[1],f=TCt(r,aJ),i=FOt(a,Ozt(r)),v=FOt(hSt(r,Hwe,0),i),c=FOt(nVt(5),v),A=FOt(MOt(Vwe),c),o=FOt(n,FOt(a,FOt(gzt(Lwe,r),A))),s=FOt(_Lt(r),o),b=FOt(u,FOt(FOt(e,FOt(rzt(r),s)),f));return FOt(NCt(r,aJ),b)}),Gt=FOt(MOt(Qke),Ut),$t=FOt(eVt(5),Gt),Kt=FOt(bXt(r,e,Cke,Mt),$t);return[0,Hke,FOt(BXt(r,e,Pt),Kt)]}if(Me===y$){if(!i)break r;if(i[2])break r;var Ot=i[1],Rt=nVt(5),Qt=FOt(MOt(Kke),Rt),Ct=FOt(uz(lQt(r),Oke),Qt);return[0,Rke,FOt(BXt(r,e,Ot),Ct)]}if(Me===kf){if(!i)break r;if(i[2])break r;var Ht=i[1],Vt=fVt(4);return[0,$ke,FOt(bXt(r,e,Gke,Ht),Vt)]}if(Me===cI){if(!i)break r;if(i[2])break r;var Lt=i[1],zt=fVt(5);return[0,Uke,FOt(bXt(r,e,Pke,Lt),zt)]}if(Me!==VU){if(Me!==me)break r;if(!i)break r;if(i[2])break r;var St=i[1],Zt=fVt(3);return[0,Nke,FOt(bXt(r,e,Eke,St),Zt)]}if(!i)break r;if(i[2])break r;var Wt=i[1],Xt=MOt(Tke);return[0,Mke,FOt(bXt(r,e,Fke,Wt),Xt)]}if(Me===$c){if(!i)break r;if(i[2])break r;var Yt=i[1],ra=uz(lQt(r),_Ze),ea=FOt(MOt(hZe),ra),na=FOt(vVt(),ea);return[0,0,FOt(BXt(r,e,Yt),na)]}if(Me===Yq){if(!i)break r;var ta=i[2];if(!ta)break r;if(ta[2])break r;var aa=ta[1],ua=i[1],fa=lCt(0,r,kge,jge,[0,1,0],function(r,e,n){var t=rCt(r,Bge),a=t[2],u=t[1],f=TCt(r,vJ),i=FOt(a,Ozt(r)),v=FOt(u,FOt(FOt(e,FOt(n,FOt(a,FOt(gzt(lge,r),i)))),f));return FOt(NCt(r,vJ),v)}),ia=FOt(bXt(r,e,Ike,aa),fa);return[0,0,FOt(bXt(r,e,Dke,ua),ia)]}if(Me===X_){if(i)break r;return[0,0,sCt(0,r,bge,sge,function(r){var e=rCt(r,oge),n=e[2],t=e[1],a=TCt(r,iJ),u=FOt(n,Ozt(r)),f=FOt(t,FOt(FOt(n,FOt(gzt(Age,r),u)),a));return FOt(NCt(r,iJ),f)})]}if(Me!==SR){if(Me!==Cj)break r;if(!i)break r;var va=i[2];if(!va)break r;if(va[2])break r;var ca=va[1],Aa=i[1],oa=lCt(0,r,uge,[0,[0,age,1],tge],[0,1,nge],function(r,e,n){var t=rCt(r,ege),a=t[2],u=t[1],f=TCt(r,uJ),i=FOt(a,Ozt(r)),v=FOt(hSt(r,Jwe,0),i),c=FOt(nVt(5),v),A=FOt(MOt(Ywe),c),o=FOt(n,FOt(a,FOt(gzt(rge,r),A))),s=FOt(_Lt(r),o),b=FOt(u,FOt(FOt(e,FOt(rzt(r),s)),f));return FOt(NCt(r,uJ),b)}),sa=FOt(MOt(xke),oa),la=FOt(eVt(5),sa),Ba=FOt(bXt(r,e,yke,ca),la);return[0,wke,FOt(BXt(r,e,Aa),Ba)]}if(!i)break r;var ja=i[2];if(!ja)break r;if(ja[2])break r;var ka=ja[1],pa=i[1],ma=lCt(0,r,cge,vge,[0,1,0],function(r,e,n){var t=rCt(r,ige),a=t[2],u=t[1],f=TCt(r,fJ),i=FOt(a,Ozt(r)),v=FOt(u,FOt(FOt(e,FOt(n,FOt(a,FOt(gzt(fge,r),i)))),f));return FOt(NCt(r,fJ),v)}),da=FOt(bXt(r,e,gke,ka),ma);return[0,0,FOt(bXt(r,e,qke,pa),da)]}if(0>=Nt){if(!i)break r;if(i[2])break r;var _a=i[1],ha=fVt(9);return[0,Yke,FOt(bXt(r,e,Jke,_a),ha)]}var xa=YC(Me,yR);if(0>xa){if(Me===hf){if(!i)break r;if(i[2])break r;var ya=i[1],wa=fVt(10);return[0,Xke,FOt(bXt(r,e,Wke,ya),wa)]}if(Me===oA){if(!i)break r;if(i[2])break r;var ga=i[1],qa=MOt(zke);return[0,Zke,FOt(bXt(r,e,Ske,ga),qa)]}if(Me!==ss){if(Me===pq)break e;if(Me!==Wi)break r;if(!i)break r;if(i[2])break r;var Ia=i[1],Da=1>>0?hQt(r,KQe):bCt(1,r,RQe,[0,OQe,1],[0,1,0],function(r,e){var n=rCt(r,FQe),t=n[2],a=n[1],u=rCt(r,MQe),f=u[2],i=u[1],v=rCt(r,PQe),c=v[2],A=v[1],o=DHt(0,c),s=FOt(OQt,FOt(f,FOt(wzt(r,UQe),o))),b=FOt(t,FOt(c,FOt(pLt(),s))),l=FOt(A,FOt(e,FOt(pLt(),b))),B=FOt(i,FOt(kLt(r,1,f),l)),j=FOt(t,FOt(wzt(r,GQe),B)),k=FOt(SCt,mQt(1,FOt(e,FOt(pLt(),j)),cHt)),p=FOt(t,FOt(wzt(r,$Qe),k)),m=FOt(a,FOt(e,FOt(pLt(),p)));return FOt(e,FOt(jLt(),m))});return[0,0,FOt(BXt(r,e,Ia),Da)]}if(!i)break r;if(i[2])break r;var Ea=i[1],Na=fVt(8);return[0,Lke,FOt(bXt(r,e,Vke,Ea),Na)]}if(0>=xa){if(i)break r;var Ta=1>>0?hQt(r,ZQe):sCt(1,r,WQe,[0,1,0],function(r){var e=rCt(r,LQe),n=e[2],t=e[1],a=rCt(r,zQe),u=a[2],f=a[1],i=FOt(u,jHt(r)),v=FOt(f,FOt(n,FOt(tCt(r,function(e){var n=rCt(r,QQe),t=n[2],a=n[1],f=rCt(r,CQe),i=f[2],v=f[1],c=FOt(OQt,FOt(t,FOt(wzt(r,HQe),i))),A=FOt(e,FOt(i,FOt(pLt(),c))),o=FOt(i,FOt(BRt[6],A)),s=FOt(v,FOt(u,FOt(e,FOt(fzt(r),o)))),b=FOt(a,FOt(kLt(r,1,t),s));return FOt(e,FOt(wzt(r,VQe),b))}),i))),c=FOt(t,FOt(czt(r,0,n),v));return FOt(wzt(r,SQe),c)});return[0,0,Ta]}k:if(Me!==oT){if(Me!==FB){if(Me===Ly)break j;if(Me===aG)break k;if(Me!==ed)break r}if(!i)break r;if(i[2])break r;var Ma=i[1],Ua=rCt(r,$me),Ga=Ua[2],$a=function(r){var e=bVt(0,3),n=FOt(QQt(VQt,oBe),e);return FOt(Ga,FOt(QQt(CQt,r),n))},Ka=Ua[1],Oa=$a(Kme),Ca=FOt($a(Ome),Oa),La=FOt($a(Rme),Ca),za=FOt(bVt(0,3),La),Za=FOt(Ka,FOt(Ga,FOt(QQt(7,Qme),za))),Wa=FOt(lVt(0,Me===ed?5:10),Za);return[0,Cme,FOt(BXt(r,e,Ma),Wa)]}if(!i)break r;if(i[2])break r;var Xa=i[1],Ja=rCt(r,Mme),Ya=Ja[2],ru=Ja[1],eu=bVt(0,3),nu=FOt(Ya,FOt(QQt(VQt,Pme),eu)),tu=FOt(bVt(0,3),nu),uu=FOt(ru,FOt(Ya,FOt(QQt(7,Ume),tu))),fu=FOt(lVt(0,Me===aG?4:9),uu);return[0,Gme,FOt(BXt(r,e,Xa),fu)]}if(0=iu){if(!i)break r;var vu=i[2];if(!vu)break r;if(vu[2])break r;var cu=vu[1],ou=i[1],su=MOt(hpe),bu=FOt(bXt(r,e,1,cu),su);return[0,1,FOt(bXt(r,e,1,ou),bu)]}var Bu=YC(Me,vc);if(0<=Bu){if(0>=Bu){if(!i)break r;if(i[2])break r;var ju=i[1],ku=uz(lQt(r),_pe);return[0,1,FOt(bXt(r,e,1,ju),ku)]}if(Me===ZI){if(!i)break r;if(i[2])break r;var pu=i[1],mu=MOt(dpe);return[0,1,FOt(bXt(r,e,1,pu),mu)]}if(Me===si){if(i)break r;var _u=bVt(0,5),hu=FOt(nVt(5),_u),xu=FOt(sZt(r),hu),yu=FOt(bVt(0,5),xu),gu=FOt(nVt(5),yu),qu=FOt(oZt(r),gu),Iu=FOt(bVt(0,5),qu),Du=FOt(nVt(5),Iu);return[0,mpe,FOt(AZt(r),Du)]}if(Me===nc){if(i)break r;var Eu=bVt(0,5),Nu=FOt(nVt(5),Eu),Tu=FOt(lZt(r),Nu),Fu=FOt(bVt(0,5),Tu),Mu=FOt(nVt(5),Fu);return[0,ppe,FOt(bZt(r),Mu)]}if(Me!==Rp){if(Me!==Kp)break r;if(i)break r;return[0,0,uz(lQt(r),jpe)]}if(i)break r;return[0,0,uz(lQt(r),kpe)]}if(Me===lq){if(!i)break r;var Pu=i[2];if(!Pu)break r;if(Pu[2])break r;var Uu=Pu[1],Gu=i[1],Ku=MOt(Bpe),Ou=FOt(bXt(r,e,1,Uu),Ku);return[0,1,FOt(bXt(r,e,1,Gu),Ou)]}if(Me===tt){if(!i)break r;var Ru=i[2];if(!Ru)break r;var Qu=Ru[2];if(!Qu)break r;if(Qu[2])break r;var Cu=Qu[1],Hu=Ru[1],Vu=i[1],Lu=uz(lQt(r),lpe),zu=FOt(BXt(r,e,Cu),Lu),Su=FOt(BXt(r,e,Hu),zu);return[0,0,FOt(bXt(r,e,1,Vu),Su)]}if(Me===a_){if(!i)break r;if(i[2])break r;var Wu=i[1],Xu=MOt(bpe);return[0,1,FOt(bXt(r,e,1,Wu),Xu)]}if(Me!==vE){if(Me!==jN)break r;if(!i)break r;if(i[2])break r;var Ju=i[1],Yu=MOt(ope);return[0,1,FOt(bXt(r,e,1,Ju),Yu)]}if(!i)break r;if(i[2])break r;var rf=i[1],ef=uz(lQt(r),spe);return[0,1,FOt(bXt(r,e,1,rf),ef)]}var nf=YC(Me,$I);if(0<=nf){if(0>=nf){if(!i)break r;if(i[2])break r;var tf=i[1],af=MOt(Ape);return[0,1,FOt(bXt(r,e,1,tf),af)]}if(Me===LB){if(!i)break r;var uf=i[2];if(!uf)break r;if(uf[2])break r;var ff=uf[1],vf=i[1],cf=MOt(cpe),Af=FOt(bXt(r,e,1,ff),cf);return[0,1,FOt(bXt(r,e,1,vf),Af)]}if(Me===wT){if(!i)break r;if(i[2])break r;var of=i[1],sf=uz(lQt(r),vpe);return[0,1,FOt(bXt(r,e,1,of),sf)]}if(Me===em){if(!i)break r;if(i[2])break r;var bf=i[1],lf=uz(lQt(r),ipe);return[0,1,FOt(bXt(r,e,1,bf),lf)]}if(Me!==Fa){if(Me!==md)break r;if(!i)break r;if(i[2])break r;var Bf=i[1],jf=uz(lQt(r),upe);return[0,1,FOt(bXt(r,e,1,Bf),jf)]}if(!i)break r;if(i[2])break r;var pf=i[1],mf=MOt(fpe);return[0,1,FOt(bXt(r,e,1,pf),mf)]}if(Me===PU){if(!i)break r;if(i[2])break r;var df=i[1],_f=MOt(ape);return[0,1,FOt(bXt(r,e,1,df),_f)]}if(Me===u){if(!i)break r;if(i[2])break r;var yf=i[1],wf=uz(lQt(r),tpe);return[0,1,FOt(bXt(r,e,1,yf),wf)]}if(Me===gv){if(!i)break r;if(i[2])break r;var gf=i[1],qf=uz(lQt(r),npe);return[0,1,FOt(bXt(r,e,1,gf),qf)]}if(Me!==Jt){if(Me!==OB)break r;if(!i)break r;var If=i[2];if(!If)break r;if(If[2])break r;var Df=If[1],Ef=i[1],Nf=uz(lQt(r),rpe),Tf=FOt(bXt(r,e,1,Df),Nf);return[0,1,FOt(bXt(r,e,1,Ef),Tf)]}if(!i)break r;if(i[2])break r;var Ff=i[1],Mf=uz(lQt(r),epe);return[0,1,FOt(bXt(r,e,1,Ff),Mf)]}}if(!i)break r;if(i[2])break r;var Pf=i[1],Uf=rCt(r,Hme),Gf=Uf[2],$f=function(r){var e=bVt(0,3),n=FOt(QQt(VQt,cBe),e),t=OH(r,ABe)?TOt:QQt(CQt,r);return FOt(Gf,FOt(t,n))},Kf=Uf[1],Of=$f(Vme),Rf=FOt($f(Lme),Of),Qf=FOt($f(zme),Rf),Cf=FOt($f(Sme),Qf),Hf=FOt($f(Zme),Cf),Vf=FOt($f(Wme),Hf),Lf=FOt($f(Xme),Vf),zf=FOt(bVt(0,3),Lf),Sf=FOt(Kf,FOt(Gf,FOt(QQt(7,Jme),zf)));return[0,Yme,FOt(bXt(r,e,[1,Me===uG?6:11],Pf),Sf)]}if(0>=Pe){if(!i)break r;if(i[2])break r;var Zf=i[1],Wf=wzt(r,Nme);return[0,Fme,FOt(bXt(r,e,Tme,Zf),Wf)]}var Xf=YC(Me,lu);if(0<=Xf){if(0>=Xf){if(i)break r;var Jf=ALt(r);return[0,0,FOt(mCt(r),Jf)]}var Yf=YC(Me,BQ);j:{k:{if(0>Yf){var ri=YC(Me,I$);if(0>ri){var ei=YC(Me,Mv);if(0<=ei){if(0>=ei){if(i)break r;var ni=ALt(r);return[0,0,FOt(uz(lQt(r),z6e),ni)]}if(Me===gc){if(i)break r;var ti=ALt(r);return[0,0,FOt(Czt(r),ti)]}if(Me===ao){if(i)break r;var ai=ALt(r);return[0,0,FOt(uz(lQt(r),S6e),ai)]}if(Me===rG){if(i)break r;var ui=ALt(r);return[0,0,FOt(sSt(r),ui)]}if(Me!==R){if(Me!==eA)break r;if(!i)break r;var fi=i[2];if(!fi)break r;var ii=fi[2];if(!ii)break r;if(ii[2])break r;var vi=ii[1],ci=fi[1],Ai=i[1],oi=MOt([12,[0,O9n,aQt(r,aMe)]]),bi=FOt(eVt(5),oi),li=FOt(bXt(r,e,Ame,vi),bi),Bi=FOt(yQt(r,ome),li),ji=FOt(oZt(r),Bi),ki=FOt(MOt([12,[0,O9n,aQt(r,fMe)]]),ji),pi=FOt(eVt(5),ki),mi=FOt(bXt(r,e,sme,ci),pi),di=FOt(MOt([12,[0,O9n,aQt(r,vMe)]]),mi),_i=FOt(eVt(5),di);return[0,VJ,FOt(bXt(r,e,bme,Ai),_i)]}if(i)break r;return[0,0,uz(lQt(r),lme)]}if(Me===xl){if(i)break r;var hi=ALt(r);return[0,0,FOt(Wzt(r),hi)]}if(Me===du){if(i)break r;var xi=ALt(r);return[0,0,FOt(uz(lQt(r),L6e),xi)]}if(Me===eb){if(i)break r;var yi=ALt(r);return[0,0,FOt($Qt(NC(Yd,0,0)),yi)]}if(Me!==hP){if(Me!==UU)break r;if(i)break r;var wi=ALt(r);return[0,0,FOt(kCt(r),wi)]}if(i)break r;return[0,0,FOt(LCt,ALt(r))]}if(0>=ri){if(!i)break r;var gi=i[2];if(!gi)break r;if(gi[2])break r;var qi=gi[1],Ii=i[1],Di=MOt([12,[0,O9n,aQt(r,VFe)]]),Ei=FOt(eVt(5),Di),Ni=FOt(bXt(r,e,hme,qi),Ei),Ti=FOt(MOt([12,[0,O9n,aQt(r,zFe)]]),Ni),Fi=FOt(eVt(5),Ti);return[0,VJ,FOt(bXt(r,e,xme,Ii),Fi)]}var Mi=YC(Me,NA);if(0>Mi){if(Me===Qa){if(!i)break r;if(i[2])break r;var Pi=i[1],Ui=uz(lQt(r),_me);return[0,VJ,FOt(BXt(r,e,Pi),Ui)]}if(Me===RO){if(!i)break r;if(i[2])break r;var Gi=i[1],$i=uz(lQt(r),dme);return[0,VJ,FOt(BXt(r,e,Gi),$i)]}if(Me===KM){if(!i)break r;if(i[2])break r;var Ki=i[1];TQt(r);var Oi=bCt(0,r,c$e,v$e,i$e,function(r,e){var n=FOt(e,ASt(r)),t=FOt(e,OLt(r)),a=dQt(r,f$e,FOt(uz(lQt(r),gJ),t),n),u=FOt(MQt(0),a),f=FOt($Qt(Zzt),u);return FOt(Jzt(r),f)});return[0,mme,FOt(bXt(r,e,pme,Ki),Oi)]}if(Me!==GD){if(Me!==qI)break r;if(!i)break r;if(i[2])break r;var Ri=i[1];TQt(r);var Qi=bCt(1,r,DGe,IGe,qGe,function(r,e){var n=FOt(e,tSt(r,1,w$e,3,y$e,MOt(x$e))),t=FOt(e,XLt(r)),a=dQt(r,gGe,FOt(uz(lQt(r),gJ),t),n),u=FOt(MQt(0),a),f=FOt($Qt(Zzt),u);return FOt(Jzt(r),f)});return[0,1,FOt(bXt(r,e,Bme,Ri),Qi)]}if(!i)break r;var Ci=i[2];if(!Ci)break r;if(Ci[2])break r;var Hi=Ci[1],Vi=i[1];TQt(r);var Li=lCt(1,r,u$e,a$e,t$e,function(r,e,n){return oSt(r,FOt(e,n),n$e,RLt,UWt)}),zi=FOt(lLt(r,dLt(r,1,jme)),Li),Si=FOt(bXt(r,e,0,Hi),zi);return[0,0,FOt(bXt(r,e,kme,Vi),Si)]}p:if(0cv){var Av=YC(Me,Ys);m:{if(0<=Av){d:if(0=Lv){if(!i)break r;if(i[2])break r;var zv=i[1],Sv=bCt(1,r,gZe,wZe,yZe,function(r,e){var n=ALt(r);return FOt(e,FOt(uz(lQt(r),xZe),n))});return[0,0,FOt(BXt(r,e,zv),Sv)]}if(Me===tm){if(!i)break r;if(i[2])break r;var Zv=i[1],Wv=uz(lQt(r),mZe);return[0,0,FOt(BXt(r,e,Zv),Wv)]}if(Me===cb){if(!i)break r;if(i[2])break r;var Xv=i[1],Jv=uz(lQt(r),pZe);return[0,0,FOt(BXt(r,e,Xv),Jv)]}if(Me===Uh){if(!i)break r;if(i[2])break r;var Yv=i[1],rc=Dzt(r),ec=FOt(_Lt(r),rc),tc=FOt(rzt(r),ec);return[0,3,FOt(BXt(r,e,Yv),tc)]}if(Me!==NO){if(Me!==Fw)break r;if(!i)break r;if(i[2])break r;var ac=i[1],uc=FOt(uz(lQt(r),Eme),SCt);return[0,0,FOt(BXt(r,e,ac),uc)]}if(!i)break r;if(i[2])break r;var fc=i[1],ic=NHt();return[0,0,FOt(BXt(r,e,fc),ic)]}if(Me===RA){if(i)break r;var cc=Gzt(r,lS);return[0,0,FOt(Tzt(r),cc)]}if(Me===op){if(!i)break r;var Ac=i[2];if(!Ac)break r;if(Ac[2])break r;var oc=Ac[1],sc=i[1],bc=nVt(8),lc=FOt(uz(lQt(r),Ime),bc),Bc=FOt(BXt(r,e,oc),lc);return[0,Dme,FOt(BXt(r,e,sc),Bc)]}if(Me===vb){if(!i)break r;if(i[2])break r;var jc=i[1],kc=uz(lQt(r),BZe);return[0,0,FOt(BXt(r,e,jc),kc)]}if(Me!==Gb){if(Me!==PT)break r;if(!i)break r;if(i[2])break r;var pc=i[1],mc=FOt(SCt,cVt),dc=FOt(uz(lQt(r),bZe),mc);return[0,qme,FOt(BXt(r,e,pc),dc)]}if(!i)break r;if(i[2])break r;var _c=i[1],hc=uz(lQt(r),lZe);return[0,0,FOt(BXt(r,e,_c),hc)]}}if(!i)break r;var xc=i[2];if(!xc)break r;if(xc[2])break r;var yc=xc[1],wc=i[1],qc=Me===Bp?3:8;TQt(r);var Ic=lCt(1,r,ZGe,SGe,0,function(r,e,n){var t=FOt(e,n),a=FOt(t,aSt(r,1,$$e,0,G$e,MOt(U$e))),u=FOt(t,HLt(r)),f=dQt(r,0,FOt(uz(lQt(r),gJ),u),a),i=FOt(MQt(0),f),v=FOt($Qt(Zzt),i);return FOt(Jzt(r),v)}),Dc=FOt(MOt(Bde),Ic),Ec=FOt(eVt(qc),Dc),Nc=FOt(bXt(r,e,[1,qc],yc),Ec);return[0,VJ,FOt(bXt(r,e,jde,wc),Nc)]}}if(!i)break r;if(i[2])break r;var Tc=i[1],Fc=Me===BQ?6:11;TQt(r);var Mc=bCt(1,r,PGe,MGe,FGe,function(r,e){var n=FOt(e,tSt(r,1,D$e,1,I$e,BRt[3])),t=FOt(e,ZLt(r)),a=dQt(r,TGe,FOt(uz(lQt(r),gJ),t),n),u=FOt(MQt(0),a),f=FOt($Qt(Zzt),u);return FOt(Jzt(r),f)});return[0,[1,Fc],FOt(bXt(r,e,dde,Tc),Mc)]}if(!i)break r;if(i[2])break r;var Pc=i[1],Uc=Me===ay?3:8,Gc=nVt(Uc),Kc=FOt(MOt([21,[1,3===Uc?1:0]]),Gc);TQt(r);var Oc=FOt(bCt(1,r,YGe,JGe,XGe,function(r,e){var n=FOt(e,tSt(r,1,R$e,0,O$e,MOt(K$e))),t=FOt(e,CLt(r)),a=dQt(r,WGe,FOt(uz(lQt(r),gJ),t),n),u=FOt(MQt(0),a),f=FOt($Qt(Zzt),u);return FOt(Jzt(r),f)}),Kc);return[0,[1,Uc],FOt(bXt(r,e,lde,Pc),Oc)]}var Rc=YC(Me,Ra);j:{k:{p:{if(0<=Rc){if(0=Cc){if(!i)break r;var Hc=i[2];if(!Hc)break r;if(Hc[2])break r;var Lc=Hc[1],zc=i[1],Sc=nLt(r),Zc=FOt(bXt(r,e,cme,Lc),Sc);return[0,0,FOt(BXt(r,e,zc),Zc)]}if(Me===mP){if(i)break r;var Wc=ALt(r);return[0,0,FOt(QCt(r),Wc)]}if(Me===ZF){if(i)break r;var Jc=ALt(r);return[0,0,FOt(uz(lQt(r),f6e),Jc)]}if(Me===HP){if(i)break r;var Yc=ALt(r);return[0,0,FOt(pCt(r),Yc)]}if(Me!==Qj){if(Me!==ba)break r;if(i)break r;if(!W8n[1])throw gQ([0,xz,vme],1);var rA=FOt(Czt(r),XCt),nA=FOt(yQt(r,xge),rA),tA=FOt(cWt(r),nA),aA=mQt(1,HCt(1),tA),uA=FOt(AWt(r),aA),fA=mQt(1,FOt(uz(lQt(r),$Ie),SCt),uA);return[0,0,FOt(oWt(r),fA)]}if(i)break r;var iA=ALt(r);return[0,0,FOt(uz(lQt(r),K6e),iA)]}if(Me===Ye)break _;if(Me===Sr)break d;if(Me===Sa)break m;if(Me!==SI){if(Me!==jw)break r;if(i)break r;var vA=1>>0?hQt(r,nCe):sCt(1,r,tCe,[0,1,0],function(r){return wLt(r,3,function(r){return wzt(r,YQe)},function(r){return wzt(r,rCe)},function(r){return $Qt(eCe)})});return[0,0,vA]}if(i)break r;var cA=MOt(uHe);return[0,0,FOt(gzt(fHe,r),cA)]}}else{var AA=YC(Me,vg);if(0>AA){if(Me===Gh)break p;if(Me===yP)break k;if(Me===Ji)break j;if(Me!==Zp){if(Me!==yG)break r;if(!i)break r;if(i[2])break r;var sA=i[1],bA=KLt(r);return[0,ume,FOt(bXt(r,e,0,sA),bA)]}if(i)break r;return TQt(r),[0,0,uz(lQt(r),VZe)]}if(0>=AA){if(!i)break r;var lA=i[2];if(!lA)break r;var BA=lA[2];if(!BA)break r;if(BA[2])break r;var jA=BA[1],kA=lA[1],pA=i[1],mA=QLt(r),dA=FOt(bXt(r,e,0,jA),mA),_A=FOt(bXt(r,e,ime,kA),dA);return[0,VJ,FOt(bXt(r,e,0,pA),_A)]}if(Me===RT){if(!i)break r;var hA=i[2];if(!hA)break r;var xA=hA[2];if(!xA)break r;if(xA[2])break r;var yA=xA[1],wA=hA[1],qA=i[1],IA=JLt(r),DA=FOt(bXt(r,e,1,yA),IA),EA=FOt(bXt(r,e,fme,wA),DA);return[0,VJ,FOt(bXt(r,e,0,qA),EA)]}if(Me!==lF){if(Me===Ey)break _;if(Me===M_)break d;if(Me!==Nx)break r;break m}}if(!i)break r;var TA=i[2];if(!TA)break r;var FA=TA[2];if(!FA)break r;if(FA[2])break r;var MA=FA[1],PA=TA[1],UA=i[1],GA=Me===dq?4:9,$A=LLt(r),KA=FOt(MOt(ade),$A),OA=FOt(eVt(GA),KA),QA=FOt(bXt(r,e,[1,GA],MA),OA),HA=FOt(bXt(r,e,ude,PA),QA);return[0,VJ,FOt(bXt(r,e,0,UA),HA)]}if(!i)break r;var VA=i[2];if(!VA)break r;var LA=VA[2];if(!LA)break r;if(LA[2])break r;var zA=LA[1],SA=VA[1],ZA=i[1],WA=Me===Ye?5:10,XA=SLt(r),YA=FOt(MOt(ide),XA),ro=FOt(eVt(WA),YA),eo=FOt(bXt(r,e,[1,WA],zA),ro),no=FOt(bXt(r,e,vde,SA),eo);return[0,VJ,FOt(bXt(r,e,0,ZA),no)]}if(!i)break r;var to=i[2];if(!to)break r;var uo=to[2];if(!uo)break r;if(uo[2])break r;var fo=uo[1],io=to[1],vo=i[1],co=Me===Sr?6:11,Ao=WLt(r),oo=FOt(bXt(r,e,[1,co],fo),Ao),so=FOt(bXt(r,e,Ade,io),oo);return[0,VJ,FOt(bXt(r,e,0,vo),so)]}if(!i)break r;var bo=i[2];if(!bo)break r;var lo=bo[2];if(!lo)break r;if(lo[2])break r;var Bo=lo[1],jo=bo[1],ko=i[1],po=Me===Sa?3:8,_o=HLt(r),ho=FOt(MOt(ede),_o),xo=FOt(eVt(po),ho),yo=FOt(bXt(r,e,[1,po],Bo),xo),wo=FOt(bXt(r,e,nde,jo),yo);return[0,VJ,FOt(bXt(r,e,0,ko),wo)]}}else{var go=YC(Me,q);if(0>go){var qo=YC(Me,Ha);if(0<=qo){if(0>=qo){if(!i)break r;if(i[2])break r;var Io=i[1],Do=nVt(5),Eo=FOt(MOt(Spe),Do);return[0,Wpe,FOt(bXt(r,e,Zpe,Io),Eo)]}if(Me===Bj){if(!i)break r;if(i[2])break r;var No=i[1],To=MOt(Vpe);return[0,zpe,FOt(bXt(r,e,Lpe,No),To)]}if(Me===Dy){if(!i)break r;if(i[2])break r;var Fo=i[1],Mo=nVt(3),Po=FOt(MOt(Qpe),Mo);return[0,Hpe,FOt(bXt(r,e,Cpe,Fo),Po)]}if(Me===ty){if(!i)break r;if(i[2])break r;var Uo=i[1],Go=nVt(9),Ko=FOt(MOt(Kpe),Go);return[0,Rpe,FOt(bXt(r,e,Ope,Uo),Ko)]}if(Me!==u$){if(Me!==CF)break r;if(!i)break r;if(i[2])break r;var Oo=i[1],Ro=MOt(Fpe);return[0,Ppe,FOt(bXt(r,e,Mpe,Oo),Ro)]}if(!i)break r;if(i[2])break r;var Qo=i[1],Co=nVt(10),Ho=FOt(MOt(Upe),Co);return[0,$pe,FOt(bXt(r,e,Gpe,Qo),Ho)]}if(Me===Z_){if(!i)break r;if(i[2])break r;return[0,0,hQt(r,Tpe)]}if(Me===kP){if(!i)break r;if(i[2])break r;var Vo=i[1],Lo=rCt(r,Npe),zo=Lo[2],So=Lo[1],Zo=qzt(r),Wo=FOt(zo,FOt(jLt(),Zo)),Xo=FOt(So,FOt(zo,FOt(pLt(),Wo)));return[0,0,FOt(BXt(r,e,Vo),Xo)]}if(Me===Id){if(!i)break r;var Jo=i[2];if(!Jo)break r;if(Jo[2])break r;var Yo=Jo[1],rs=i[1],es=eLt(r),ns=FOt(bXt(r,e,Epe,Yo),es);return[0,0,FOt(BXt(r,e,rs),ns)]}if(Me!==lK){if(Me!==AM)break r;if(!i)break r;if(i[2])break r;var ts=i[1],as=nVt(4),us=FOt(MOt(wpe),as);return[0,qpe,FOt(bXt(r,e,gpe,ts),us)]}if(!i)break r;if(i[2])break r;var fs=i[1],is=gzt(cHe,r),vs=FOt(MOt(AHe),is);return[0,Dpe,FOt(bXt(r,e,Ipe,fs),vs)]}if(0>=go){if(!i)break r;if(i[2])break r;var cs=i[1],As=nVt(8),os=FOt(MOt(nme),As);return[0,ame,FOt(bXt(r,e,tme,cs),os)]}var bs=YC(Me,Pb);if(0>bs){if(Me===wu)return v(0,yLt(r,3,2));if(Me===Vc)return v(0,yLt(r,0,2));if(Me===jU){if(!i)break r;if(i[2])break r;var ls=i[1],Bs=bCt(1,r,nHe,eHe,0,function(r,e){var n=rCt(r,rHe),t=n[2],a=n[1],u=Izt(r),f=FOt(t,FOt(jLt(),u)),i=FOt(a,FOt(t,FOt(pLt(),f)));return FOt(e,FOt(rzt(r),i))});return[0,VJ,FOt(BXt(r,e,ls),Bs)]}if(Me!==Pa){if(Me!==Al)break r;if(!i)break r;if(i[2])break r;var js=i[1],ks=ALt(r),ps=FOt(GLt(r),ks);return[0,0,FOt(bXt(r,e,0,js),ps)]}if(!i)break r;var ms=i[2];if(!ms)break r;if(ms[2])break r;var ds=ms[1],_s=i[1],hs=OLt(r),xs=FOt(bXt(r,e,Xpe,ds),hs);return[0,Jpe,FOt(bXt(r,e,0,_s),xs)]}if(0>=bs){if(!i)break r;var ys=i[2];if(!ys)break r;var ws=ys[2];if(!ws)break r;if(ws[2])break r;var gs=ws[1],qs=ys[1],Is=i[1],Ds=RLt(r),Es=FOt(lLt(r,dLt(r,1,rme)),Ds),Ns=FOt(bXt(r,e,0,gs),Es),Ts=FOt(bXt(r,e,eme,qs),Ns);return[0,0,FOt(bXt(r,e,0,Is),Ts)]}if(Me===rv){if(!i)break r;var Fs=i[2];if(!Fs)break r;if(Fs[2])break r;var Ms=Fs[1],Ps=i[1],Us=XLt(r),Gs=FOt(bXt(r,e,Ype,Ms),Us);return[0,1,FOt(bXt(r,e,0,Ps),Gs)]}if(Me!==IG){if(Me===t$)break p;if(Me===Zu)break k;if(Me!==SO)break r;break j}}if(!i)break r;var $s=i[2];if(!$s)break r;if($s[2])break r;var Ks=$s[1],Os=i[1],Rs=Me===Ra?4:9,Qs=nVt(Rs),Cs=FOt(MOt([21,[1,4===Rs?1:0]]),Qs),Hs=FOt(VLt(r),Cs),Vs=FOt(bXt(r,e,tde,Ks),Hs);return[0,[1,Rs],FOt(bXt(r,e,0,Os),Vs)]}if(!i)break r;var Ls=i[2];if(!Ls)break r;if(Ls[2])break r;var zs=Ls[1],Ss=i[1],Zs=Me===Gh?5:10,Ws=nVt(Zs),Xs=FOt(MOt([21,[1,5===Zs?1:0]]),Ws),Js=FOt(zLt(r),Xs),rb=FOt(bXt(r,e,fde,zs),Js);return[0,[1,Zs],FOt(bXt(r,e,0,Ss),rb)]}if(!i)break r;var nb=i[2];if(!nb)break r;if(nb[2])break r;var tb=nb[1],ab=i[1],ub=Me===yP?6:11,fb=ZLt(r),ib=FOt(bXt(r,e,cde,tb),fb);return[0,[1,ub],FOt(bXt(r,e,0,ab),ib)]}if(!i)break r;var Ab=i[2];if(!Ab)break r;if(Ab[2])break r;var ob=Ab[1],sb=i[1],bb=Me===Ji?3:8,lb=nVt(bb),Bb=FOt(MOt([21,[1,3===bb?1:0]]),lb),jb=FOt(CLt(r),Bb),kb=FOt(bXt(r,e,rde,ob),jb);return[0,[1,bb],FOt(bXt(r,e,0,sb),kb)]}if(!i)break r;if(i[2])break r;var pb=i[1],mb=rCt(r,Tje),db=mb[2],_b=mb[1],hb=FOt(db,yLt(r,0,3)),xb=FOt(yQt(r,Fje),hb),yb=FOt(MQt(7),xb),wb=FOt($Qt(Mje),yb),gb=FOt(_b,FOt(db,FOt(jLt(),wb)));return[0,0,FOt(BXt(r,e,pb),gb)]}if(!i)break r;if(i[2])break r;var qb=i[1],Ib=f[2],Db=f[1];l:{B:{j:{switch(Db){case 3:if(8===Ib)break B;break l;case 4:if(9===Ib)break B;break l;case 5:if(10===Ib)break j;break l;case 6:if(11!==Ib)break l;break;case 8:if(3===Ib)break B;break l;case 9:if(4===Ib)break B;break l;case 10:if(5===Ib)break j;break l;case 11:if(6!==Ib)break l;break;case 14:if(5!==Ib)break l;var Eb=nVt(5),Nb=FOt(vVt(),Eb);return[0,Eje,FOt(bXt(r,e,[1,Db],qb),Nb)];case 2:case 7:switch(Ib){case 6:case 11:var Tb=oLt(r);return[0,[1,Ib],FOt(BXt(r,e,qb),Tb)];case 3:case 4:case 5:case 8:case 9:case 10:var Fb=QQt(VQt,WHt(Ib)),Mb=FOt(oLt(r),Fb);return[0,[1,Ib],FOt(BXt(r,e,qb),Mb)];default:break l}default:break l}return[0,[1,Ib],bXt(r,e,[1,Db],qb)]}return[0,[1,Ib],bXt(r,e,[1,Db],qb)]}return[0,[1,Ib],bXt(r,e,[1,Db],qb)]}return[0,3,JQt(r,Nje,MUt(f))]}if(!i)break r;if(i[2])break r;var Ub=i[1],$b=f[2],Kb=f[1];b:{l:{B:{j:{k:{p:{switch(Kb){case 2:if(6<=$b){if(7<=$b)break b;var Ob=bCt(1,r,JBe,XBe,WBe,function(r,e){var n=FOt(e,oLt(r)),t=FOt(yQt(r,BBe),n);return FOt(e,FOt(fLt(r,64),t))});return[0,YBe,FOt(BXt(r,e,Ub),Ob)]}if(3>$b)break b;var Rb=bCt(1,r,SOt($b,nje),eje,rje,function(r,e){var n=nVt($b),t=FOt(e,FOt(sLt(r),n)),a=FOt(yQt(r,lBe),t);return FOt(e,FOt(fLt(r,SHt($b)),a))}),Qb=FOt(BXt(r,e,Ub),Rb);return[0,BSt([2,$b]),Qb];case 3:if(4===$b)break B;break l;case 4:var Cb=$b-3|0;if(2>>0)break l;switch(Cb){case 1:break l;case 2:break B;default:break j}case 5:var Hb=$b-4|0;if(10>>0)break l;switch(Hb){case 10:var Vb=AVt(r),Lb=FOt(eVt(5),Vb);return[0,aje,FOt(bXt(r,e,tje,Ub),Lb)];case 2:break B;case 0:break j;default:break l}case 6:if(2===$b){var zb=ALt(r);return[0,0,FOt(bXt(r,e,uje,Ub),zb)]}if(5===$b)break j;break b;case 7:if(8<=$b)switch($b-8|0){case 3:var Sb=bCt(1,r,vje,ije,fje,function(r,e){var n=FOt(e,oLt(r)),t=FOt(yQt(r,bBe),n);return FOt(e,FOt(iLt(r,64),t))});return[0,cje,FOt(BXt(r,e,Ub),Sb)];case 4:var Zb=rCt(r,Aje),Wb=Zb[2],Xb=Zb[1],Jb=FOt(Wb,uz(lQt(r),oje)),Yb=MOt(sje),rl=FOt(Xb,FOt(Wb,JCt(r,bje,FOt(Wb,FOt(fHt(0,0,7),Yb)),Jb)));return[0,1,FOt(BXt(r,e,Ub),rl)];case 0:case 1:case 2:var el=bCt(1,r,SOt($b,jje),Bje,lje,function(r,e){var n=nVt($b),t=FOt(e,FOt(sLt(r),n)),a=FOt(yQt(r,sBe),t);return FOt(e,FOt(iLt(r,SHt($b)),a))}),nl=FOt(BXt(r,e,Ub),el);return[0,BSt([2,$b]),nl];default:break b}break b;case 8:if(9===$b)break p;break k;case 9:var tl=$b-8|0;if(2>>0)break k;switch(tl){case 1:break k;case 2:break p}break;case 10:var al=$b-9|0;if(2>>0)break k;switch(al){case 1:break k;case 2:break p}break;case 11:var ul=$b-7|0;if(5